(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-07
(45)【発行日】2025-05-15
(54)【発明の名称】データ中継装置、配信システム、データ中継方法、及びプログラム
(51)【国際特許分類】
H04N 21/2387 20110101AFI20250508BHJP
H04N 21/222 20110101ALI20250508BHJP
H04N 21/61 20110101ALI20250508BHJP
【FI】
H04N21/2387
H04N21/222
H04N21/61
(21)【出願番号】P 2023531180
(86)(22)【出願日】2021-06-29
(86)【国際出願番号】 JP2021024478
(87)【国際公開番号】W WO2023275969
(87)【国際公開日】2023-01-05
【審査請求日】2023-12-15
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】向谷地 有
【審査官】川中 龍太
(56)【参考文献】
【文献】国際公開第2020/158844(WO,A1)
【文献】特開2009-206841(JP,A)
【文献】国際公開第2011/018868(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 - 21/858
(57)【特許請求の範囲】
【請求項1】
クライアント端末と、動画データを配信する配信サーバと、の間に配置され、前記配信サーバから配信された動画データを前記クライアント端末に送信するデータ中継装置であって、
前記クライアント端末から前記配信サーバに送信されるアップロードデータを受信し、
前記アップロードデータが所定のアップロードデータであるか否かを判定する第1の判定部と、
前記判定された前記所定のアップロードデータの送信間隔に基づいて、前記クライアント端末で前記動画データの倍速再生が行われているか否かを判定する第2の判定部と、
前記第2の判定部による倍速再生の判定結果に基づいて、前記クライアント端末に送信する前記動画データの送信ビットレートをコントロールする制御部と、
を備える、データ中継装置。
【請求項2】
前記第1の判定部は、前記アップロードデータのデータサイズに基づいて、前記アップロードデータが前記所定のアップロードデータであるか否かを判定する、
請求項1に記載のデータ中継装置。
【請求項3】
前記第1の判定部は、前記クライアント端末から前記配信サーバに送信される前記アップロードデータのデータサイズに基づいて、前記アップロードデータが、前記動画データをリクエストするリクエストデータであるか、又は、前記動画データを受信したことを通知する確認応答データであるかを判定し、
前記所定のアップロードデータは、前記リクエストデータである、
請求項2に記載のデータ中継装置。
【請求項4】
前記第2の判定部は、前記クライアント端末で前記動画データの倍速再生が行われていると判定した場合は、前記リクエストデータの送信間隔に基づいて、前記クライアント端末で行われている倍速再生の再生速度をさらに判定する、
請求項3に記載のデータ中継装置。
【請求項5】
前記制御部は、前記第2の判定部による倍速再生の再生速度の判定結果に基づいて、前記クライアント端末に送信する前記動画データの送信ビットレートをコントロールする、
請求項4に記載のデータ中継装置。
【請求項6】
クライアント端末と、
動画データを配信する配信サーバと、
請求項1から5のいずれか1項に記載のデータ中継装置と、
を備える、配信システム。
【請求項7】
クライアント端末と、動画データを配信する配信サーバと、の間に配置され、前記配信サーバから配信された動画データを前記クライアント端末に送信するデータ中継装置によるデータ中継方法であって、
前記クライアント端末から前記配信サーバに送信されるアップロードデータを受信する受信ステップと、
前記アップロードデータが所定のアップロードデータであるか否かを判定する第1の判定ステップと、
前記判定された前記所定のアップロードデータの送信間隔に基づいて、前記クライアント端末で前記動画データの倍速再生が行われているか否かを判定する第2の判定ステップと、
前記倍速再生の判定結果に基づいて、前記クライアント端末に送信する前記動画データの送信ビットレートをコントロールする制御ステップと、
を含む、データ中継方法。
【請求項8】
クライアント端末と、動画データを配信する配信サーバと、の間に配置され、前記配信サーバから配信された動画データを前記クライアント端末に送信するコンピュータに、
前記クライアント端末から前記配信サーバに送信されるアップロードデータを受信する受信手順と、
前記アップロードデータが所定のアップロードデータであるか否かを判定する第1の判定手順と、
前記判定された前記所定のアップロードデータの送信間隔に基づいて、前記クライアント端末で前記動画データの倍速再生が行われているか否かを判定する第2の判定手順と、
前記倍速再生の判定結果に基づいて、前記クライアント端末に送信する前記動画データの送信ビットレートをコントロールする制御手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ中継装置、配信システム、データ中継方法、及びコンピュータ可読媒体に関する。
【背景技術】
【0002】
近年、動画配信の方式として、アダプティブビットレート(Adaptive Bitrate。以下、ABRと称す)を採用する動画配信サイトが増加している。ABRは、動画データを、視聴環境に合わせて、できるだけ高い画質でスムーズに再生できるようにするための動画配信技術である。動画配信に係る規格としては、複数の規格が存在する。代表的な規格としては、例えば、HLS(HTTP(Hypertext Transfer Protocol)Live Streaming)、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)等がある。
【0003】
ABRでは、携帯電話機等であるクライアント端末(クライアント(Client)。以下、CLと称す)の処理能力、解像度、回線速度等に応じて、動画データの画質を自動的に変更し、CLで快適な動画データの視聴を可能としている。動画データの画質を動的に変えるため、動画データは、数秒~数十秒ごとに、セグメントとして分割され、複数の画質の動画データが配信サーバ(オリジンサーバ(Origin Server)。以下、OSと称す)上に予め用意されている。CLは、視聴環境に合わせて、取得するセグメントと画質を選択して、OSに動画データをリクエストする。CLがOSに動画データをリクエストする際には、HTTPプロトコルが使われている。CLは、HTTPプロトコルを使用したリクエストデータ(HTTPリクエストパケット)にセグメントと画質を指定して、そのリクエストデータをOSに送信し、OSから、レスポンスデータとして、動画データを取得する。
【0004】
図1には、ABRの動画データの画質の時間変化の例が示されている。
図1において、横軸は時間であり、縦軸は動画データの画質である。
図1に示されるように、CLは、00:00~00:10の間は、画質が1080pのセグメントを選択し、00:10~00:20の間は、画質が480pのセグメントを選択し、00:20~00:30の間及び00:30~00:40の間は、画質が720pのセグメントを選択している。
【0005】
ABRの動画データの配信は、大きく2つのフェーズに分けられる。1つは、バッファリングフェーズ(buffering phase)であり、もう1つは、安定フェーズ(steady phase)である(
図2)。
図2には、CLが、OSから受信したデータ量の時系列変化の例が示されている。
図2において、横軸は時間であり、縦軸はデータ量である。
【0006】
バッファリングフェーズでは、CLとOSとの間のネットワークの状態を観測し、視聴環境に合った適切な動画の画質及び音声の音質が決定される。また、CL側で動画データの再生を開始するのに十分な動画データをバッファリングするために、OSからバースト的に動画データが送られる。
【0007】
安定フェーズでは、バッファリングフェーズで動画の画質及び音声の音質が決定された後、CLは、動画データの再生の進み具合に応じて、CL上にバッファリングされた動画データが枯渇しないように、一定の時間間隔で、OSから分割された動画データ(セグメント)を取得する。
【0008】
図2に示されるように、CLにおいて、動画データの再生を開始する際は、まず、バッファリングフェーズが開始され、その後、安定フェーズに移行する。また、安定フェーズに移行した後、再度、バッファリングフェーズに移行する場合もある。この再度のバッファリングは、再バッファと称される。例えば、ネットワークの状態が変化し、ABRの仕組みにより画質が変更された場合には、CL側で動画データを新たにダウンロードする必要があり、再バッファが発生する。CL側で再バッファが発生する要因となるものは、再バッファイベントと称される。
【0009】
近年、動画配信サイトでは、動画コンテンツのジャンルの多様化が進み、エンターテインメント系だけではなく、ビジネスや教育をテーマに扱った動画コンテンツも増加している。そんな中、視聴時間を短縮して効率的に動画を視聴したいユーザのニーズに応えるため、動画データの再生速度を速める倍速再生に対応する動画配信サイトも増えている。
【0010】
その一方、近年の動画トラフィックの増加に伴い、無駄なトラフィックを抑制して通信帯域を削減するために、CLとOSとの間に配置されたデータ中継装置において、動画データの送信ビットレートをコントロールするトラフィック最適化の処理を行う関連技術が知られている(例えば、特許文献1を参照)。
【0011】
トラフィック最適化には、ABRの動画データの配信に対応するものも存在する。例えば、データ中継装置において、CLに送信するABRの動画データの送信ビットレートをコントロールすると、ABRの仕組みにより、その送信ビットレートに合わせた画質がCLで選択される。このようにして、OSからCLに配信される動画データの画質を変化させる。
【0012】
動画データの画質が高ければデータ量も大きく、動画データの画質が低ければデータ量も小さい。そのため、ABRの動画データの送信ビットレートをコントロールすることで、動画データの画質をコントロールし、ネットワーク上に流れる動画データのデータ量もコントロールする。
【0013】
図3には、データ中継装置によるABRの動画データのトラフィック最適化の例を説明するシーケンス図が示されている。
図3に示されるように、CL10は、動画データをリクエストするリクエストデータ(画質、セグメント等が指定された、HTTPプロトコルを使用したリクエストデータ)をOS20に送信する(ステップS11)。データ中継装置30は、CL10からのリクエストデータをOS20に転送する(ステップS12)。
【0014】
OS20は、CL10からリクエストされた動画データ(指定された画質のセグメント)を、レスポンスデータとして、CL10に送信する(ステップS13)。
データ中継装置30は、OS20からの動画データの送信ビットレートをコントロールしつつ、動画データをCL10に送信する(ステップS14)。例えば、ネットワークが輻輳している場合には、データ中継装置30からCL10に送信する動画データの送信ビットレートを下げて、ABRの仕組みにより、CL10に低画質な動画データを選択させる。これにより、OS20から配信される動画データのデータ量を減らしてネットワークの輻輳を緩和する。このような送信ビットレートのコントロールは、ペーシング(pacing)、シェーピング(shaping)、又はスロットリング(throttling)と称されるが、以下では、ペーシングと称す。
【0015】
CL10は、ABRの仕組みにより、ステップS14の動画データの送信ビットレートに合わせた画質を選択する。ここでは、CL10は、より低い画質(小さいデータ量)を選択したとする。この場合、CL10は、より低い画質の動画データをリクエストするリクエストデータをOS20に送信し(ステップS15)、データ中継装置30は、CL10からのリクエストデータをOS20に転送する(ステップS16)。
【0016】
OS20は、CL10からリクエストされた、より低い画質の動画データを、レスポンスデータとして、CL10に送信する(ステップS17)。データ中継装置30は、OS20からの、より低い画質の動画データをCL10に送信する(ステップS18)。これにより、OS20からCL10に配信される動画データの画質は、より低い画質に変化する。
【先行技術文献】
【特許文献】
【0017】
【発明の概要】
【発明が解決しようとする課題】
【0018】
ところで、
図3に示されるようなペーシングの処理においては、動画データのターゲット画質に合わせて送信ビットレートを決定する。
ただし、CL10で動画データを倍速再生する場合は、同じ画質でも動画データのダウンロード(download。以下、DLと称す)速度が速くなる。
【0019】
図4には、ペーシング時にデータ中継装置30からCL10へ送信される動画データの現状の送信ビットレートの例が示されている。
図4において、横軸は時間であり、縦軸は動画データの送信ビットレートである。
【0020】
図4に示されるように、CL10で同じ画質で倍速再生されても、データ中継装置30が同じ送信ビットレート(図中の通常配信レート)でペーシングを行うと仮定する。この場合、動画データの倍速再生時に必要な配信レートに対して、データ中継装置30からの送信ビットレートは低くなるため、送信ビットレートが不足する。その結果、CL10では、DLが追い付かず、動画データの再生停止や画質の低下が発生し、ユーザが体感するQoE(Quality of Experience)が悪化してしまう。
【0021】
そのため、QoEの悪化を防止しつつ、トラフィックを最適化するには、データ中継装置30は、CL10で動画データが倍速再生されているか否かを判定し、倍速再生されていれば、CL10に送信する動画データの送信ビットレートを変化させる必要がある。
【0022】
図5には、ペーシング時にデータ中継装置30からCL10へ送信される動画データの理想的な送信ビットレートの例が示されている。
図5において、横軸及び縦軸は
図4と同様である。
【0023】
図5に示されるように、データ中継装置30は、CL10で動画データが倍速再生されていることを判定できた場合には、CL10に送信する動画データの送信ビットレートを上げる。これにより、CL10では、倍速再生にDLが追いつけるようになるため、QoEの悪化を防止しつつ、トラフィックを最適化することが可能となる。
【0024】
しかし、データ中継装置30では、CL10で動画データが倍速再生されているか否かを判定することは困難である。その理由は、近年の動画データは、例えば、TLS(Transport Layer Security)により暗号化されており、データ中継装置30は、動画データの内容(ヘッダ情報のようなメタデータや動画データ自体)を参照することができないためである。現状では、データ中継装置30が、CL10からOS20に送信されるアップロードデータや、OS20からCL10に送信されるレスポンスデータ(動画データ)について取得できるのは、これらデータのデータサイズや流量(ビットレート)のみである。データ中継装置30において、これらの限られた情報から倍速再生を判定することは困難である。
【0025】
そこで本開示の目的は、上述した課題を解決し、データ中継装置において、クライアント端末で動画データが倍速再生されているか否かの判定を可能とするデータ中継装置、配信システム、データ中継方法、及びコンピュータ可読媒体を提供することにある。
【課題を解決するための手段】
【0026】
一態様によるデータ中継装置は、
クライアント端末と、動画データを配信する配信サーバと、の間に配置され、前記配信サーバから配信された動画データを前記クライアント端末に送信するデータ中継装置であって、
前記クライアント端末から前記配信サーバに送信されるアップロードデータを受信し、前記アップロードデータのデータサイズに基づいて、前記アップロードデータが所定のアップロードデータであるか否かを判定する第1の判定部と、
前記判定された前記所定のアップロードデータの送信間隔に基づいて、前記クライアント端末で前記動画データの倍速再生が行われているか否かを判定する第2の判定部と、
を備える。
【0027】
一態様による配信システムは、
クライアント端末と、
動画データを配信する配信サーバと、
前記データ中継装置と、
を備える。
【0028】
一態様によるデータ中継方法は、
クライアント端末と、動画データを配信する配信サーバと、の間に配置され、前記配信サーバから配信された動画データを前記クライアント端末に送信するデータ中継装置によるデータ中継方法であって、
前記クライアント端末から前記配信サーバに送信されるアップロードデータを受信する受信ステップと、
前記アップロードデータのデータサイズに基づいて、前記アップロードデータが所定のアップロードデータであるか否かを判定する第1の判定ステップと、
前記判定された前記所定のアップロードデータの送信間隔に基づいて、前記クライアント端末で前記動画データの倍速再生が行われているか否かを判定する第2の判定ステップと、
を含む。
【0029】
一態様によるコンピュータ可読媒体は、
クライアント端末と、動画データを配信する配信サーバと、の間に配置され、前記配信サーバから配信された動画データを前記クライアント端末に送信するコンピュータに、
前記クライアント端末から前記配信サーバに送信されるアップロードデータを受信する受信手順と、
前記アップロードデータのデータサイズに基づいて、前記アップロードデータが所定のアップロードデータであるか否かを判定する第1の判定手順と、
前記判定された前記所定のアップロードデータの送信間隔に基づいて、前記クライアント端末で前記動画データの倍速再生が行われているか否かを判定する第2の判定手順と、
を実行させるためのプログラムが格納された非一時的なコンピュータ可読媒体である。
【発明の効果】
【0030】
上述の態様によれば、データ中継装置において、クライアント端末で動画データが倍速再生されているか否かの判定を可能とするデータ中継装置、配信システム、データ中継方法、及びコンピュータ可読媒体を提供できるという効果が得られる。
【図面の簡単な説明】
【0031】
【
図1】ABRの動画データの画質の時間変化の例を説明する図である。
【
図2】CLが、OSから受信したデータ量の時系列変化の例を説明する図である。
【
図3】データ中継装置によるABRの動画データのトラフィック最適化の例を説明するシーケンス図である。
【
図4】ペーシング時にデータ中継装置からCLへ送信される動画データの現状の送信ビットレートの例を説明する図である。
【
図5】ペーシング時にデータ中継装置からCLへ送信される動画データの理想的な送信ビットレートの例を説明する図である。
【
図6】データ中継装置がTCP/UDPの通信を終端する例を説明する図である。
【
図7】データ中継装置がTCP/UDPの通信を終端しない例を説明する図である。
【
図8】CLとOSとの間の動画データの送受信時のシーケンスの例を説明するシーケンス図である。
【
図9】ABRの動画データのプロトコルスタックの例を説明する図である。
【
図10】CLで同じ画質の同じ動画データを異なる再生速度で再生している場合における、CLからのリクエストデータを観察したグラフの例を説明する図である。
【
図11】CLで同じ画質の同じ動画データを異なる再生速度で再生している場合における、CLからのリクエストデータを観察したグラフの例を説明する図である。
【
図12】CLで同じ画質の同じ動画データを異なる再生速度で再生している場合における、CLからのリクエストデータを観察したグラフの例を説明する図である。
【
図13】実施の形態1に係るデータ中継装置の構成例を示すブロック図である。
【
図14】実施の形態1に係るデータ中継装置の動作例を説明する図である。
【
図15】実施の形態1に係るデータ中継装置の動作例を説明するフロー図である。
【
図16】実施の形態2に係るデータ中継装置の構成例を示すブロック図である。
【
図17】実施の形態3に係るデータ中継装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0032】
以下、図面を参照して本開示の概要及び実施の形態について説明する。なお、以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。また、以下の各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0033】
本開示の実施の形態を説明する前に、本開示の概要について説明する。
<本開示の概要>
本開示においては、本開示に係るデータ中継装置30Aが、CL10からOS20へ送信されるアップロードデータのデータサイズ及び送信間隔を分析することで、CL10でABRの動画データの倍速再生が行われているか否かを判定する手法を提案する。ここで、アップロードデータのデータサイズ及び送信間隔は、データ中継装置30Aでも取得可能な情報である。
【0034】
本提案手法は、データ中継装置30Aでも取得可能な情報から倍速再生を判定するため、ABRの動画データの暗号化/非暗号化に関わらず有効である。また、本提案手法は、動画プロトコルとしては、TCP(Transmission Control Protocol)だけでなく、UDP(User Datagram Protocol)(QUIC(Quick UDP Internet Connections)等)でも有効である。また、本提案手法は、データ中継装置30AによりTCP/UDPの通信が終端されている/されていないに関わらず有効である。
【0035】
図6には、データ中継装置30AがTCP/UDPの通信を終端している場合のイメージ例が示されている。
図6に示されるように、データ中継装置30AがTCP/UDPの通信を終端している場合、CL10とデータ中継装置30Aとの間、及び、データ中継装置30AとOS20との間では、別々のTCPセッションで通信が行われる。すなわち、データ中継装置30Aは、CL10及びOS20と通信する際、それぞれにTCPセッションを生成する。
【0036】
一方、
図7には、データ中継装置30AがTCP/UDPの通信を終端していない場合のイメージ例が示されている。
図7に示されるように、データ中継装置30AがTCP/UDPの通信を終端していない場合、CL10は、OS20との間では直接のTCPセッションでデータをやり取りし、データ中継装置30Aは、データを転送するのみである。すなわち、CL10及びOS20が1つのTCPセッションで直接通信を行い、データ中継装置30Aはデータを転送する。
【0037】
以下、本提案手法について説明する。
ABRの動画データの再生中に、CL10からOS20に送信されるアップロードデータは、大きく2種類に分けられる。1つは、動画データをリクエストするリクエストデータ(HTTPリクエストパケット)であり、もう1つは、動画データを受信したことを通知する確認応答データ(ACK(ACKnowledgement)パケット)である。
【0038】
図8には、CL10とOS20との間の動画データの送受信時のシーケンスが示されている。
図8に示されるように、まず、CL10とOS20との間で、データ中継装置30Aを経由するセッションを確立する(ステップS21)。
【0039】
次に、CL10は、取得したい動画データをリクエストするリクエストデータ(HTTPリクエストパケット)をOS20に送信する(ステップS22)。次に、データ中継装置30Aは、CL10からのリクエストデータをOS20に転送する(ステップS23)。
【0040】
OS20は、CL10からデータ中継装置30A経由でリクエストデータを受信すると、そのリクエストデータに対するレスポンスデータ(HTTPレスポンス)として、CL10からリクエストされた動画データをCL10に送信する(ステップS24)。次に、データ中継装置30Aは、OS20からの動画データをCL10に転送する(ステップS25)。
【0041】
CL10は、OS20からデータ中継装置30A経由で動画データを受信すると、その動画データを受信したことを通知するために、確認応答データ(ACKパケット)をOS20に送信する(ステップS26)。次に、データ中継装置30Aは、CL10からの確認応答データをOS20に転送する(ステップS27)。
以降、セッションが切断されるまで、ステップS24~S27と同様のステップS28~S31が継続して行われる。
【0042】
図8に示されるように、OS20は、CL10からデータ中継装置30A経由で確認応答データを受信することで、動画データをCL10に送信できたことを確認する。この動作は、TCP通信の信頼性確保ための動作である。この動作は、TCP/IP(Internet Protocol)による通信だけでなく、近年増加傾向にあるUDP/IPのプロトコルスタック上で動作するQUICトラフィックでも行われる。
【0043】
図9には、ABRの動画データのプロトコルスタックの例が示されている。
図9に示されるように、QUICプロトコルは、TCPでなく、UDPを使用する。ただし、QUICプロトコルは、通信の信頼性を確保するために、TCPの機能に相当する再送制御、輻輳制御、ロスリカバリー等の機能を提供しており、TCPと同様に、確認応答データ(ACKパケット)が送信される。
【0044】
ABRの代表的規格(HSLやMPEG-DASH等)では、HTTPプロトコルで動画の取得及び配信を制御する。ABRによるリクエストデータ(HTTPリクエストパケット)のデータサイズは比較的大きくなる。ただし、TCPやQUICプロトコルにおける確認応答データ(ACKパケット)のデータサイズは、リクエストデータ(HTTPリクエストパケット)に比べて小さい。
【0045】
そのため、リクエストデータ(HTTPリクエストパケット)と確認応答データ(ACKパケット)とは、そのデータサイズによって見分けることが可能である。
ABRの動画データの場合、リクエストデータには、取得する動画データの画質やセグメント等の情報が含まれている。そのため、1つのリクエストデータのデータサイズは少なくとも数百バイト以上になる。
一方、確認応答データは、複雑な情報は含まれず、そのデータサイズは、リクエストデータよりも十分小さくなる(100バイト程度)。
【0046】
そこで本開示に係るデータ中継装置30Aは、CL10からOS20に送信されるアップロードデータのデータサイズによって、そのアップロードデータが、リクエストデータであるか、又は、確認応答データであるかを判定する。なお、この手法は、アップロードデータの暗号化/非暗号化に関わらず、適用可能である。
【0047】
データ中継装置30Aは、上述した手法により、リクエストデータを判定した上で、そのリクエストデータがCL10からOS20に送信される送信間隔によって、CL10で倍速再生が行われているか否かを判定する。
【0048】
図10~
図12には、CL10で同じ画質の同じ動画データを異なる再生速度で再生している場合における、CL10からのリクエストデータを観察したグラフが示されている。
図10~
図12において、横軸は時間であり、縦軸はリクエストデータのデータサイズである。また、
図10は、1倍速での再生時のリクエストデータを示し、
図11は、1.5倍速での再生時のリクエストデータを示し、
図12は、2倍速での再生時のリクエストデータを示している。
【0049】
図10~
図12に示されるように、CL10からのリクエストデータの送信間隔は、1倍速での再生時に最も長くなり(
図10)、2倍速での再生時に最も短くなっている(
図12)。このことから、倍速の再生速度が大きいほど、リクエストデータが短い間隔でCL10から送信されていることがわかる。
【0050】
そのため、データ中継装置30Aは、CL10からのリクエストデータの送信間隔に基づいて、CL10で倍速再生が行われているか否かを判定する。
【0051】
以下、本開示の実施の形態について説明する。
<実施の形態1>
図13には、本実施の形態1に係るデータ中継装置30Aの構成例が示されている。
図13に示されるように、本実施の形態1に係るデータ中継装置30Aは、CL(Client)10と、OS(Origin Server)20と、の間に配置される。
図13に示される、CL10、OS20、及びデータ中継装置30Aによって配信システムが構成される。
【0052】
CL10とデータ中継装置30Aとの間、及び、データ中継装置30AとOS20との間は、それぞれ異なるネットワークで接続される。典型的には、CL10とデータ中継装置30Aとの間は無線網で接続され、データ中継装置30AとOS20との間は有線網で接続される。ただし、ネットワークの組み合わせは、これに限定されず、それ以外の組合せであっても良い。
【0053】
CL10は、OS20に対して動画データの送信をリクエストし、そのリクエストに対するレスポンスとして配信される動画データを受信するクライアント端末である。CL10の具体例としては、スマートフォンを含む携帯電話機、タブレット端末、パーソナルコンピュータ、及びネットワーク接続機能付きテレビ等が挙げられる。
OS20は、CL10からのリクエストに対するレスポンスとして、動画データを配信する配信サーバである。
【0054】
本実施の形態1に係るデータ中継装置30Aは、CL10とOS20間の通信を中継すると共に、トラッフィク最適化処理を適用する装置である。
本実施の形態1に係るデータ中継装置30Aは、通信処理部301と、ABR動画判定部302と、倍速再生判定部303と、判定閾値データベース304と、最適化適用部305と、最適化ポリシーデータベース306と、を備えている。
【0055】
通信処理部301は、データ中継装置30A内で通信の中継を担う。データ中継装置30AがTCP/UDPの通信を終端する場合は、通信処理部301は、OS20に対するプロキシ(代理サーバ)として動作するアプリケーションに相当する。
【0056】
ABR動画判定部302は、CL10からのアップロードデータやOS20からのレスポンスデータに基づいて、CL10とOS20との間で行われている通信が、ABRの動画データの配信に係る通信であるか否かを判定する。例えば、ABR動画判定部302は、ヘッダ情報に含まれるIPアドレスの情報や、データサイズの情報等に基づいて、ABRの動画データの配信に係る通信であるか否かを判定する。ただし、判定方法はこれに限定されない。
【0057】
倍速再生判定部303は、CL10からOS20へ送信されるアップロードデータを観測し、アップロードデータのデータサイズ及び送信間隔に基づいて、CL10で動画データの倍速再生が行われているか否かを判定する。具体的には、倍速再生判定部303は、アップロードデータのデータサイズに基づいて、アップロードデータがリクエストデータであるか否かを判定し、さらに、リクエストデータの送信間隔に基づいて、倍速再生が行われているか否かを判定する。
【0058】
倍速再生判定部303の動作の詳細は以下の通りである。
すなわち、倍速再生判定部303は、ABR動画判定部302により、ABRの動画データの配信に係る通信であると判定された通信を観察する。そして、倍速再生判定部303は、CL10からOS20へ送信されるアップロードデータのデータサイズに基づいて、アップロードデータがリクエストデータであるか否かを判定する。
【0059】
また、倍速再生時のCL10からのリクエストデータの送信間隔は、OS20毎に異なる。そのため、倍速再生判定部303は、判定閾値データベース304に対して、OS20の情報をキー情報として渡して、そのOS20について、倍速再生を判定するためのリクエストデータの送信間隔の閾値を取得する。そして、倍速再生判定部303は、CL10からのリクエストデータの送信間隔を、判定閾値データベース304から取得した閾値と比較することで、CL10で倍速再生が行われているか否かを判定し、さらに、倍速再生が行われていると判定した場合には、倍速再生の再生速度も判定する。なお、倍速再生判定部303は、判定閾値データベース304からは、OS20について、複数の閾値を取得し、CL10からのリクエストデータの送信間隔が、複数の閾値によって区分される複数の範囲のうちのどの範囲に属するかで、CL10で倍速再生が行われているか否かの判定や、再生速度の判定を行っても良い。
【0060】
倍速再生判定部303は、CL10で倍速再生が行われていると判定した場合、倍速再生の再生速度を最適化適用部305に通知する。
【0061】
上述したように、倍速再生時のCL10からのリクエストデータの送信間隔は、OS20毎に異なる。そのため、判定閾値データベース304は、OS20毎に、倍速再生を判定するためのリクエストデータの送信間隔の閾値を保存しておく。判定閾値データベース304は、倍速再生判定部303からの問い合わせを受けた時に、OS20の情報をキー情報として受け取り、そのOS20についての閾値を返却する。なお、判定閾値データベース304は、OS20毎に複数の閾値を保存しておき、倍速再生判定部303からの問い合わせに対して、OS20についての複数の閾値を返却しても良い。
【0062】
最適化適用部305は、OS20からのレスポンスデータである動画データを通信処理部301から受け取り、その動画データに対して、送信ビットレートをコントロールするトラフィック最適化処理を実施する。
【0063】
最適化適用部305の動作の詳細は以下の通りである。
すなわち、最適化適用部305は、最適化ポリシーデータベース306に対して、CL10とOS20との間で行われている通信の情報(CL10やOS20のIPアドレス等)をキー情報として渡して、その通信に対して適用する最適化ポリシーを問い合わせる。また、最適化適用部305は、倍速再生判定部303から倍速再生の再生速度の通知を受けている場合は、最適化ポリシーデータベース306に対して、上述した通信の情報と共に倍速再生の再生速度の情報をキー情報として渡して、最適化ポリシーを問い合わせる。
【0064】
最適化適用部305は、最適化ポリシーデータベース306から、問い合わせの結果として、最適化ポリシーを取得する。この最適化ポリシーには、ABRの動画データの送信ビットレートの情報も含まれる。最適化適用部305は、最適化ポリシーデータベース306から取得した最適化ポリシーに基づいて、動画データのトラフィック最適化処理を実施する。
【0065】
最適化ポリシーデータベース306は、最適化適用部305からの、CL10とOS20との間で行われている通信の情報(CL10やOS20のIPアドレス等)を含む問い合わせに対して、その通信に適用する最適化ポリシーを決定し、決定した最適化ポリシーを最適化適用部305に返却する。また、最適化適用部305が倍速再生判定部303から倍速再生の再生速度の通知を受けている場合は、最適化ポリシーデータベース306は、最適化適用部305からの、上述した通信の情報と倍速再生の再生速度とを含む問い合わせに対して、その通信に適用する最適化ポリシーを決定し、決定した最適化ポリシーを最適化適用部305に返却する。
【0066】
図14及び
図15には、本実施の形態1に係るデータ中継装置30Aの動作例を説明する図が示されている。なお、
図14及び
図15において、同じステップには、同じ符号が付されている。
【0067】
図14及び
図15に示されるように、通信処理部301は、CL10から、動画データのリクエストデータ(HTTPリクエストパケット)を受信すると(ステップS41)、CL10とOS20との間で行われている通信の情報(CL10やOS20のIPアドレス等)をABR動画判定部302に渡す(ステップS42)。
【0068】
ABR動画判定部302は、通信処理部301から受け取った通信の情報に基づいて、CL10とOS20との間で行われている通信が、ABRの動画データの配信に係る通信であるか否かを判定する(ステップS43)。例えば、ABR動画判定部302は、リクエストデータのヘッダ情報に含まれる宛先IPアドレスに基づいて、リクエストデータの宛先がOSであることを特定した場合に、ABRの動画データの配信に係る通信であると判定しても良い。さらに、ABR動画判定部302は、ABRの動画データの配信に係る通信であると判定した場合、OS20からCL10に送信されるレスポンスデータ(動画データ)を、トラフィック最適化の実施対象と判定する。
【0069】
なお、ABR動画判定部302は、CL10からのアップロードデータだけでなく、後述するステップS48でOS20からのレスポンスデータ(動画データ)を受信した際にも、同様の判定を行っても良い。例えば、ABR動画判定部302は、レスポンスデータのヘッダ情報に含まれる送信元IPアドレスに基づいて、レスポンスデータの送信元がOSであることを特定した場合に、ABRの動画データの配信に係る通信であると判定しても良い。
【0070】
ABR動画判定部302は、CL10とOS20との間で行われている通信が、ABRの動画データの配信に係る通信であるか否かの判定結果を通信処理部301に返却する(ステップS43)。また、ABR動画判定部302は、ABRの動画データの配信に係る通信であると判定した場合、OS20からCL10に送信されるレスポンスデータ(動画データ)が、トラフィック最適化の実施対象であることも、通信処理部301に通知する。
【0071】
ここで、ABR動画判定部302により、通信が、ABRの動画データの配信に係る通信であると判定されている場合、通信処理部301は、倍速再生判定部303を動作させる(ステップS44)。
【0072】
倍速再生判定部303は、判定閾値データベース304に対して、OS20の情報をキー情報として渡して、そのOS20について、倍速再生を判定するためのリクエストデータの送信間隔の閾値を取得する(ステップS45)。
【0073】
また、倍速再生判定部303は、ABR動画判定部302により、ABRの動画データの配信に係る通信であると判定された通信を観察し、アップロードデータのデータサイズに基づいて、アップロードデータがリクエストデータであるか否かを判定する。倍速再生判定部303は、リクエストデータであると判定した場合には、リクエストデータの送信間隔を、ステップS45で判定閾値データベース304から取得した閾値と比較することで、CL10で倍速再生が行われているか否かを判定し、さらに、倍速再生が行われていると判定した場合には、倍速再生の再生速度も判定する。
【0074】
倍速再生判定部303は、CL10で倍速再生が行われていと判定した場合には、倍速再生の再生速度を最適化適用部305に通知する(ステップS46)。
【0075】
通信処理部301は、CL10からのリクエストデータをOS20に転送する(ステップS47)。
なお、ABR動画判定部302により、通信が、ABRの動画データの配信に係る通信でないと判定されている場合、通信処理部301は、倍速再生判定部303を動作させることなく、CL10からのリクエストデータをOS20に転送する(ステップS47)。
【0076】
通信処理部301は、OS20から、CL10のリクエストデータに応じたレスポンスデータ(動画データ)を受信する(ステップS48)。
【0077】
ここで、ABR動画判定部302により、OS20からのレスポンスデータ(動画データ)がトラフィック最適化の実施対象であると判定されている場合、通信処理部301は、レスポンスデータ(動画データ)を最適化適用部305に渡す(ステップS49)。
【0078】
最適化適用部305は、最適化ポリシーデータベース306に対して、CL10とOS20との間で行われている通信の情報(CL10やOS20のIPアドレス等)をキー情報として渡して、その通信に対して適用する最適化ポリシーを問い合わせる。また、最適化適用部305は、倍速再生判定部303から倍速再生の再生速度の通知を受けている場合は、最適化ポリシーデータベース306に対して、上述した通信の情報と共に倍速再生の再生速度の情報をキー情報として渡して、最適化ポリシーを問い合わせる。
【0079】
最適化ポリシーデータベース306は、最適化適用部305からの問い合わせに対して、CL10とOS20との間で行われている通信に適用する最適化ポリシーを決定し、決定した最適化ポリシーを最適化適用部305に返却する(ステップS50)。この最適化ポリシーには、レスポンスデータ(動画データ)の送信ビットレートの情報も含まれる。
【0080】
最適化適用部305は、最適化ポリシーデータベース306から取得した最適化ポリシーに基づいて、レスポンスデータ(動画データ)に対し、送信ビットレートをコントロールするトラフィック最適化処理を実施し、トラフィック最適化処理を実施した動画データを通信処理部301に返却する(ステップS51)。
【0081】
通信処理部301は、最適化適用部305から返却された動画データをCL10に送信する(ステップS52)。
なお、ABR動画判定部302により、OS20からのレスポンスデータ(動画データ)がトラフィック最適化の実施対象でないと判定されている場合、通信処理部301は、レスポンスデータ(動画データ)を、最適化適用部305に渡すことなく、そのままCL10に送信する(ステップS52)。
【0082】
ステップS41~S52を繰り返している間に、ステップS44,S45において、CL10で倍速再生が行われていると判定された場合、倍速再生判定部303は、倍速再生の再生速度を最適化適用部305に通知する(ステップS46)。これを受けて、最適化適用部305は、倍速再生時の最適化ポリシーに基づいて、トラフィック最適化処理を実施する(ステップS50)。
【0083】
本実施の形態1によれば、データ中継装置30Aは、CL10からOS20へ送信されるアップロードデータのデータサイズに基づいて、そのアップロードデータがリクエストデータであるか否かを判定し、さらに、リクエストデータの送信間隔に基づいて、CL10で動画データの倍速再生が行われているか否かを判定する。
【0084】
ここで、アップロードデータのデータサイズや送信間隔は、データ中継装置30Aでも取得可能な情報である。そのため、データ中継装置30Aは、データ中継装置30Aで取得可能な情報から、CL10で動画データの倍速再生が行われているか否かを判定可能である。
【0085】
また、データ中継装置30Aは、倍速再生の判定が可能となるため、CL10で動画データの倍速再生が行われていると判定したら、例えば、
図5に示されるように、CL10に送信する動画データの送信ビットレートを上げる、といったトラフィック最適化処理を実施可能となる。これにより、CL10で動画データの倍速再生中のQoEの悪化を防止しつつ、トラフィックを最適化することが可能となる。
【0086】
<実施の形態2>
図16には、本実施の形態2に係るデータ中継装置30Bの構成例が示されている。なお、本実施の形態2は、上述した実施の形態1を上位概念化した実施形態に相当する。
【0087】
図16に示されるように、本実施の形態2に係るデータ中継装置30Bは、CL(クライアント端末)10と、動画データを配信するOS(配信サーバ)20と、の間に配置され、OS20から配信された動画データをCL10に送信する装置である。
【0088】
本実施の形態2に係るデータ中継装置30Bは、第1の判定部311と、第2の判定部312と、を備えている。第1の判定部311及び第2の判定部312は、上述した実施の形態1に係る通信処理部301及び倍速再生判定部303を組み合わせたものに相当する。
【0089】
第1の判定部311は、CL10からOS20に送信されるアップロードデータを受信し、そのアップロードデータのデータサイズに基づいて、そのアップロードデータが所定のアップロードデータであるか否かを判定する。
【0090】
第2の判定部312は、第1の判定部311で判定された所定のアップロードデータの送信間隔に基づいて、CL10で動画データの倍速再生が行われているか否かを判定する。
【0091】
本実施の形態2によれば、データ中継装置30Bは、CL10からOS20へ送信されるアップロードデータのデータサイズに基づいて、そのアップロードデータが所定のアップロードデータであるか否かを判定し、さらに、その判定された所定のアップロードデータの送信間隔に基づいて、CL10で動画データの倍速再生が行われているか否かを判定する。
【0092】
ここで、アップロードデータのデータサイズや送信間隔は、データ中継装置30Bでも取得可能な情報である。そのため、データ中継装置30Bは、データ中継装置30Bで取得可能な情報から、CL10で動画データの倍速再生が行われているか否かを判定可能である。
【0093】
なお、本実施の形態2に係るデータ中継装置30Bは、第2の判定部312による倍速再生の判定結果に基づいて、CL10に送信する動画データの送信ビットレートをコントロールする制御部をさらに備えていても良い。この制御部は、上述した実施の形態1に係る通信処理部301及び最適化適用部305を組み合わせたものに相当する。
【0094】
また、第1の判定部311は、CL10からOS20に送信されるアップロードデータのデータサイズに基づいて、そのアップロードデータが、動画データをリクエストするリクエストデータであるか、又は、動画データを受信したことを通知する確認応答データであるかを判定しても良い。また、所定のアップロードデータは、リクエストデータであっても良い。
【0095】
また、第2の判定部312は、CL10で動画データの倍速再生が行われていると判定した場合は、リクエストデータの送信間隔に基づいて、CL10で行われている倍速再生の再生速度をさらに判定しても良い。
また、制御部は、第2の判定部312による倍速再生の再生速度の判定結果に基づいて、CL10に送信する動画データの送信ビットレートをコントロールしても良い。
【0096】
<実施の形態3>
図17には、本実施の形態3に係るデータ中継装置30Cのハードウェア構成例が示されている。
図17に示されるように、本実施の形態3に係るデータ中継装置30Cは、プロセッサ321と、メモリ322と、を備えている。
【0097】
プロセッサ321は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であっても良い。プロセッサ321は、複数のプロセッサを含んでも良い。
【0098】
メモリ322は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ322は、プロセッサ321から離れて配置されたストレージを含んでも良い。この場合、プロセッサ321は、図示されていないI(Input)/O(Output)インタフェースを介してメモリ322にアクセスしても良い。
【0099】
上述した実施の形態1,2に係るデータ中継装置30A,30Bは、
図17に示されるハードウェア構成を有することができる。メモリ322には、プログラムが記憶される。このプログラムは、コンピュータに読み込まれた場合に、上述した実施の形態1,2で説明されたデータ中継装置30A,30Bの1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。上述したデータ中継装置30A,30Bにおける、通信処理部301、ABR動画判定部302、倍速再生判定部303、最適化適用部305、第1の判定部311、及び第2の判定部312は、プロセッサ321がメモリ322に記憶されたプログラムを読み込んで実行することにより実現されても良い。また、上述したデータ中継装置30Aにおける、判定閾値データベース304及び最適化ポリシーデータベース306は、メモリ322により実現されても良い。
【0100】
また、上述したプログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されても良い。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されても良い。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、又はその他の形式の伝搬信号を含む。
【0101】
以上、実施の形態を参照して本開示を説明したが、本開示は上述した実施の形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0102】
また、以上の説明により、本開示の産業上利用可能性は明らかであるが、本開示は、例えば、移動体通信(セルラネットワーク)において、CLとOSの間のTCP/UDP通信を対象とした通信流量制御に利用可能である。
【0103】
また、本開示は、セルラネットワークの代わりに、無線LAN(Local Area Network)、有線LAN、光ファイバ等の各種アクセス網を通したTCP/UDP通信を対象とした通信流量制御にも利用可能である。
【符号の説明】
【0104】
10 CL(クライアント端末)
20 OS(配信サーバ)
30,30A,30B,30C データ中継装置
301 通信処理部
302 ABR動画判定部
303 倍速再生判定部
304 判定閾値データベース
305 最適化適用部
306 最適化ポリシーデータベース
311 第1の判定部
312 第2の判定部
321 プロセッサ
322 メモリ