JP2017220796A - Client device and method - Google Patents

Client device and method Download PDF

Info

Publication number
JP2017220796A
JP2017220796A JP2016113780A JP2016113780A JP2017220796A JP 2017220796 A JP2017220796 A JP 2017220796A JP 2016113780 A JP2016113780 A JP 2016113780A JP 2016113780 A JP2016113780 A JP 2016113780A JP 2017220796 A JP2017220796 A JP 2017220796A
Authority
JP
Japan
Prior art keywords
segment
congestion
bit rate
client device
network
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.)
Pending
Application number
JP2016113780A
Other languages
Japanese (ja)
Inventor
クォック ディン グェン
Dung Nguyen Quoc
クォック ディン グェン
一暁 植田
Kazuaki Ueda
一暁 植田
敦士 田上
Atsushi Tagami
敦士 田上
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.)
KDDI Corp
Original Assignee
KDDI 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 KDDI Corp filed Critical KDDI Corp
Priority to JP2016113780A priority Critical patent/JP2017220796A/en
Publication of JP2017220796A publication Critical patent/JP2017220796A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To make it possible to determine a bit rate to be required by more accurately grasping a situation of congestion in a network or to determine the bit rate to be required by considering impartiality with respect to utilization of a network resource.SOLUTION: A client device comprises: an acquisition unit that through a network, acquires segment data on a content that is divided into a plurality of segments, each of which has a bit rate capable of being designated so as to differ from those of the others, together with congestion information showing the degree of congestion in the network; and a determination unit that on the basis of the congestion information acquired by the acquisition unit, determines a bit rate for a segment to be required next.SELECTED DRAWING: Figure 1

Description

本発明は、クライアント装置および方法に関する。   The present invention relates to a client apparatus and method.

近年、オンライン動画配信サービスにおいてDASH(dynamic adaptive streaming over hypertext transfer protocol)型配信に代表される配信ビットレートを動的に変更する配信形態が広く採用されている(例えば、非特許文献1、2参照)。本方式によれば、予めあるコンテンツについて、異なるビットレートのデータを用意し、かつ、セグメント単位に分割しておくことで、ネットワーク状況に応じて最適かつ最高の品質のコンテンツを要求できるようになる。具体的には、コンテンツビットレートと直近で計測したスループットの指標とが比較され、スループットを超えない範囲のビットレートのセグメントファイルが要求される。   2. Description of the Related Art In recent years, a distribution form that dynamically changes a distribution bit rate typified by DASH (dynamic adaptive streaming over hypertext transfer protocol) type distribution has been widely adopted in online video distribution services (for example, see Non-Patent Documents 1 and 2). ). According to this method, by preparing data of different bit rates for content in advance and dividing the data into segments, it is possible to request content with optimum and highest quality according to network conditions. . Specifically, the content bit rate is compared with the latest measured throughput index, and a segment file with a bit rate in a range not exceeding the throughput is requested.

I. Sodagar, “The MPEG-DASH Standard for Multimedia Streaming Over the Internet,” IEEE MultiMedia, vol.18, pp.62-67, 2011.I. Sodagar, “The MPEG-DASH Standard for Multimedia Streaming Over the Internet,” IEEE MultiMedia, vol.18, pp.62-67, 2011. Z. Li et al., “Probe and Adapt: Rate Adaptation for HTTP Video Streaming At Scale,” IEEE Journal on Selected Areas in Communications, vol.32, 719-733, 2014Z. Li et al., “Probe and Adapt: Rate Adaptation for HTTP Video Streaming At Scale,” IEEE Journal on Selected Areas in Communications, vol.32, 719-733, 2014 W.-H. Wang et al., “Application-Oriented Flow Control: Fundamentals, Algorithms and Fairness,” IEEE/ACM Transactions on Networking, 2006, 14, 1282-1291W.-H. Wang et al., “Application-Oriented Flow Control: Fundamentals, Algorithms and Fairness,” IEEE / ACM Transactions on Networking, 2006, 14, 1282-1291

しかしながら、DASHでビットレート決定のために使用されるスループットはクライアント装置で計測されるものであるため、クライアント装置の状況にも左右され、ネットワーク状況の指標として正確でない場合がある。また、現状のDASHではネットワークリソースの利用についての公平さは考慮されていない。   However, since the throughput used for determining the bit rate in DASH is measured by the client device, it depends on the status of the client device and may not be accurate as an index of the network status. In addition, current DASH does not consider fairness in the use of network resources.

本発明はこうした課題に鑑みてなされたものであり、その目的は、ネットワークにおける輻輳の状況をより正確に把握して要求するビットレートを決定できる、またはネットワークリソースの利用についての公平さを考慮して要求するビットレートを決定できる配信技術の提供にある。   The present invention has been made in view of these problems, and the purpose of the present invention is to determine the required bit rate by more accurately grasping the state of congestion in the network, or considering the fairness of the use of network resources. Providing distribution technology that can determine the required bit rate.

本発明のある態様はクライアント装置に関する。このクライアント装置は、複数のセグメントに分割され、セグメントごとに異なるビットレートを指定可能なコンテンツのセグメントデータを、ネットワークにおける輻輳の度合いを示す輻輳情報と共にネットワークを介して取得する取得部と、取得部によって取得された輻輳情報に基づいて、次に要求するセグメントのビットレートを決定する決定部と、を備える。   One embodiment of the present invention relates to a client device. This client device is divided into a plurality of segments, an acquisition unit that acquires content segment data that can specify different bit rates for each segment together with congestion information indicating the degree of congestion in the network, and an acquisition unit And a determination unit that determines the bit rate of the next requested segment based on the congestion information acquired by the above.

なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を装置、方法、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で相互に置換したものもまた、本発明の態様として有効である。   It should be noted that any combination of the above-described constituent elements, or those obtained by replacing the constituent elements and expressions of the present invention with each other between apparatuses, methods, systems, computer programs, recording media storing computer programs, and the like are also included in the present invention. It is effective as an embodiment of

本発明によれば、ネットワークにおける輻輳の状況をより正確に把握して要求するビットレートを決定できる、またはネットワークリソースの利用についての公平さを考慮して要求するビットレートを決定できる。   According to the present invention, the required bit rate can be determined by more accurately grasping the state of congestion in the network, or the required bit rate can be determined in consideration of fairness in the use of network resources.

実施の形態に係る配信システムのネットワークトポロジの一例を示す模式図である。It is a schematic diagram which shows an example of the network topology of the delivery system which concerns on embodiment. 配信サーバに保持されるコンテンツの説明図である。It is explanatory drawing of the content hold | maintained at a delivery server. 実施の形態に係るクライアント装置の機能および構成を示すブロック図である。It is a block diagram which shows the function and structure of a client apparatus which concern on embodiment. ユーティリティ関数の一例を示すグラフである。It is a graph which shows an example of a utility function. 図3のクライアント装置における一連の処理を示すフローチャートである。It is a flowchart which shows a series of processes in the client apparatus of FIG.

以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。   Hereinafter, the same or equivalent components, members, and processes shown in the drawings are denoted by the same reference numerals, and repeated description is appropriately omitted. In addition, in the drawings, some of the members that are not important for explanation are omitted.

図1は、実施の形態に係る配信システム100のネットワークトポロジの一例を示す模式図である。配信システム100は7つのノードを含む。ノード1〜4はそれぞれ、デスクトップPC(Personal Computer)やラップトップPCや携帯端末などのクライアント装置であり、ノード7はコンテンツのソースとなる配信サーバである。ノード5はルータ等のネットワーク機器であり、ノード6はコンテンツのキャッシュとなるキャッシュサーバである。一例では、ノード7とノード1〜4とはインターネットなどのネットワークを介して接続され、ノード5、6はこのネットワークに含まれるノードである。   FIG. 1 is a schematic diagram illustrating an example of a network topology of a distribution system 100 according to an embodiment. Distribution system 100 includes seven nodes. Each of the nodes 1 to 4 is a client device such as a desktop PC (Personal Computer), a laptop PC, or a portable terminal, and the node 7 is a distribution server serving as a content source. The node 5 is a network device such as a router, and the node 6 is a cache server serving as a content cache. In one example, the node 7 and the nodes 1 to 4 are connected via a network such as the Internet, and the nodes 5 and 6 are nodes included in this network.

以下では、ノード間の接続をリンクと称する。各リンクには、そのリンクにおける輻輳の度合いを示す輻輳プライス(Congestion price)が対応付けられている。   Below, the connection between nodes is called a link. Each link is associated with a congestion price indicating the degree of congestion in the link.

配信サーバ(ノード7)は、映画やアニメーションや他の動画像などのコンテンツを保持し、クライアント装置(ノード1〜4)からの要求に応じてストリーミング形式で配信する。   The distribution server (node 7) holds contents such as movies, animations, and other moving images, and distributes them in a streaming format in response to requests from client devices (nodes 1 to 4).

図2は、配信サーバに保持されるコンテンツの説明図である。配信サーバはひとつのコンテンツを複数のビットレート(符号化速度)で保持する。複数のビットレートは300kbps、1.2Mbps、5Mbpsを含むがこれらに限定されない。配信サーバでは、ひとつのコンテンツはN個(Nは2以上の自然数)のセグメントに分割される。各セグメントは所定の再生長またはデータ量に対応する。本実施の形態ではセグメントは3秒、5秒、10秒のいずれかの再生長に対応するものとする。各セグメントには複数のビットレートのそれぞれに対応するセグメントファイルが存在する。   FIG. 2 is an explanatory diagram of content held in the distribution server. The distribution server holds one content at a plurality of bit rates (encoding speeds). The multiple bit rates include, but are not limited to, 300 kbps, 1.2 Mbps, and 5 Mbps. In the distribution server, one content is divided into N segments (N is a natural number of 2 or more). Each segment corresponds to a predetermined playback length or data amount. In the present embodiment, the segment corresponds to a playback length of 3 seconds, 5 seconds, or 10 seconds. Each segment has a segment file corresponding to each of a plurality of bit rates.

図2には、3秒の再生長でN個のセグメントに分割されたコンテンツが示される。すなわちこのコンテンツの総再生長は3・N秒となる。各セグメントについて、ビットレートが高いほどセグメントファイルのデータ量は多くなる。図2に示されるように、配信サーバにはセグメントごとに異なるビットレートのデータが用意されており、セグメントごとに異なるビットレートを指定可能となっている。例えば、セグメント1については300kbpsのセグメントファイル202、セグメント2については1.2Mbpsのセグメントファイル204、セグメント3については5Mbpsのセグメントファイル206、がそれぞれ指定され、クライアント装置に配信されてもよい。ビットレートの指定はクライアント装置からのセグメントの要求に含まれる。   FIG. 2 shows content divided into N segments with a playback length of 3 seconds. That is, the total playback length of this content is 3 · N seconds. For each segment, the amount of data in the segment file increases as the bit rate increases. As shown in FIG. 2, the distribution server prepares data with different bit rates for each segment, and can specify different bit rates for each segment. For example, a segment file 202 of 300 kbps for segment 1, a segment file 204 of 1.2 Mbps for segment 2, and a segment file 206 of 5 Mbps for segment 3 may be designated and distributed to the client device. The bit rate specification is included in the segment request from the client device.

本実施の形態では、クライアント装置が次に要求するセグメントのビットレートを決定する際、ネットワークにおける輻輳の度合いとユーザ間のネットワークリソース利用の公平さとを考慮する。これにより、ビットレートの決定にネットワークの輻輳の状態をより正確に反映することができ、かつユーザ間の公平さも担保することができる。   In the present embodiment, when determining the bit rate of the next segment requested by the client device, the degree of congestion in the network and the fairness of network resource usage among users are considered. Thereby, the state of network congestion can be more accurately reflected in the determination of the bit rate, and fairness among users can be ensured.

図3は、実施の形態に係るクライアント装置106の機能および構成を示すブロック図である。ここに示す各ブロックは、ハードウエア的には、コンピュータのCPU(Central Processing Unit)をはじめとする素子や機械装置で実現でき、ソフトウエア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウエア、ソフトウエアの組合せによっていろいろなかたちで実現できることは、本明細書に触れた当業者には理解されるところである。   FIG. 3 is a block diagram illustrating functions and configurations of the client device 106 according to the embodiment. Each block shown here can be realized by hardware such as a computer (CPU) (Central Processing Unit) and other elements and mechanical devices, and software can be realized by a computer program or the like. The functional block realized by those cooperation is drawn. Therefore, it is understood by those skilled in the art who have touched this specification that these functional blocks can be realized in various forms by a combination of hardware and software.

クライアント装置106はコンテンツをネットワーク104を介して取得する。クライアント装置106は受信したデータをバッファしつつ既にバッファされているデータを順次再生する。クライアント装置106は、アクセスクライアント108と、メディアエンジン110と、制御エンジン112と、ディスプレイ114と、ユーザ操作受付部118と、を備える。   The client device 106 acquires content via the network 104. The client device 106 sequentially reproduces the already buffered data while buffering the received data. The client device 106 includes an access client 108, a media engine 110, a control engine 112, a display 114, and a user operation reception unit 118.

アクセスクライアント108はネットワーク104とのインタフェースとして機能する。アクセスクライアント108はネットワーク104を介してクライアント装置106宛に送られてきたデータを受信して他の部材に提供すると共に、他の部材から送信対象のデータを取得してネットワーク104に送信する。   The access client 108 functions as an interface with the network 104. The access client 108 receives the data sent to the client device 106 via the network 104 and provides it to other members, and acquires data to be transmitted from the other members and transmits it to the network 104.

メディアエンジン110はクライアント装置106が受信したコンテンツを再生するための復号等の処理を行い、ディスプレイ114にコンテンツを表示させる。メディアエンジン110は受信したコンテンツのセグメントファイルを保持するためのバッファ136を含む。配信サーバから送信されたセグメントファイルはネットワーク104を介してアクセスクライアント108で受信され、アクセスクライアント108からメディアエンジン110に送信され、メディアエンジン110においてバッファ136に格納される。また、メディアエンジン110は再生対象のセグメントファイルをバッファ136から読み出して処理し、ディスプレイ114に表示させる。   The media engine 110 performs processing such as decryption for reproducing the content received by the client device 106 and causes the display 114 to display the content. Media engine 110 includes a buffer 136 for holding segment files of received content. The segment file transmitted from the distribution server is received by the access client 108 via the network 104, transmitted from the access client 108 to the media engine 110, and stored in the buffer 136 in the media engine 110. Further, the media engine 110 reads out the segment file to be reproduced from the buffer 136, processes it, and displays it on the display 114.

ユーザ操作受付部118は不図示のタッチパネル等の入力装置と接続され、ユーザから再生対象のコンテンツの指定を受け付ける。ユーザ操作受付部118は、コンテンツの再生に関するユーザ操作、例えばコンテンツの再生開始や再生停止の指示、を受け付ける。   The user operation accepting unit 118 is connected to an input device such as a touch panel (not shown), and accepts designation of content to be reproduced from the user. The user operation accepting unit 118 accepts a user operation related to content reproduction, for example, an instruction to start or stop content reproduction.

制御エンジン112は、配信サーバに対するコンテンツの要求および配信サーバからのコンテンツの受信を制御する。制御エンジン112は、セグメント要求部126と、輻輳情報処理部128と、基準レート算出部130と、フィルタ部132と、ビットレート決定部134と、要求スケジュール部138と、を含む。   The control engine 112 controls the content request to the distribution server and the reception of the content from the distribution server. The control engine 112 includes a segment request unit 126, a congestion information processing unit 128, a reference rate calculation unit 130, a filter unit 132, a bit rate determination unit 134, and a request schedule unit 138.

セグメント要求部126は、ビットレート決定部134によって決定されたビットレートを指定して次のセグメントを、ネットワーク104を介して配信サーバに要求する。セグメント要求部126は、要求する次のセグメントのIDと該セグメントについて指定するビットレートとを含むセグメント要求信号を生成し、アクセスクライアント108およびネットワーク104を介して配信サーバに送信する。配信サーバは、受信したセグメント要求信号で指定されるビットレートのセグメントファイルをクライアント装置106に送信する。メディアエンジン110は、ネットワーク104における輻輳の度合いを示す輻輳値を伴うセグメントファイルをネットワーク104を介して取得する。バッファ136は取得されたセグメントファイルを保持する。   The segment request unit 126 specifies the bit rate determined by the bit rate determination unit 134 and requests the next segment from the distribution server via the network 104. The segment request unit 126 generates a segment request signal including the ID of the next segment to be requested and the bit rate specified for the segment, and transmits the segment request signal to the distribution server via the access client 108 and the network 104. The distribution server transmits to the client device 106 a segment file having a bit rate specified by the received segment request signal. The media engine 110 acquires a segment file with a congestion value indicating the degree of congestion in the network 104 via the network 104. The buffer 136 holds the acquired segment file.

図1に示されるように、本実施の形態ではセグメントファイルはコンテンツのソースである配信サーバ(ノード7)からクライアント装置(ノード1〜4)へ複数のリンクを通じて伝送される。輻輳値は、該輻輳値を伴うセグメントファイルが通過する複数のリンクのそれぞれにおける輻輳プライスの累計である。例えば、ノード1がノード7から取得するセグメントファイルに対応する輻輳値は、ノード7とノード5との間のリンクの輻輳プライスλ7,5と、ノード5とノード1との間のリンクの輻輳プライスλ5,1と、の和である(λ7,5+λ5,1)。ソースである配信サーバは輻輳値を初期化する、すなわち輻輳値としてゼロを設定する。そして、配信サーバは対応するセグメントファイルをノード1に向けて送信する際に輻輳値をλ7,5に更新する。該セグメントファイルを受信したノード5は、ノード1へ該セグメントファイルを転送する際に、輻輳値にλ5,1を加算する。すなわち、セグメントファイルの伝送経路上にある各ノードにおいて、セグメントファイルを転送する際に輻輳値に送り先のリンクの輻輳プライスが加算される。輻輳プライスは例えばキュー遅延(queuing delay)や呼損率(loss probability)であってもよく、またはそのいずれかに関連するパラメータであってもよい。 As shown in FIG. 1, in this embodiment, a segment file is transmitted from a distribution server (node 7) that is a content source to client devices (nodes 1 to 4) through a plurality of links. The congestion value is the cumulative congestion price in each of the plurality of links through which the segment file with the congestion value passes. For example, the congestion value corresponding to the segment file acquired by the node 1 from the node 7 is the congestion price λ 7,5 of the link between the node 7 and the node 5 and the congestion of the link between the node 5 and the node 1. The sum of the price λ 5,17,5 + λ 5,1 ). The source distribution server initializes the congestion value, that is, sets zero as the congestion value. The distribution server updates the congestion value to λ 7,5 when transmitting the corresponding segment file to the node 1. When receiving the segment file, the node 5 adds λ 5,1 to the congestion value when transferring the segment file to the node 1. That is, at each node on the segment file transmission path, the congestion price of the destination link is added to the congestion value when the segment file is transferred. The congestion price may be, for example, a queuing delay, a loss probability, or a parameter related to either.

輻輳情報処理部128は、取得された輻輳値を伴うセグメントファイルから輻輳値を抽出する。輻輳情報処理部128は、異常値を除去するために、抽出された輻輳値にローパスEWMA(Exponentially Weighted Moving Average)を行う。より具体的には、輻輳情報処理部128は、t番目(tは1より大きくNより小さい自然数)のセグメントのセグメントファイルと共に取得された輻輳値q(t)から、以下の式(1)にしたがいフィルタされた輻輳値Q(t)を算出する。
Q(t)=β・Q(t−1)+(1−β)・q(t) …(1)
ここで、βは0以上で1より小さい定数である。
The congestion information processing unit 128 extracts the congestion value from the segment file with the acquired congestion value. The congestion information processing unit 128 performs low-pass EWMA (Exponentially Weighted Moving Average) on the extracted congestion value in order to remove abnormal values. More specifically, the congestion information processing unit 128 calculates the following equation (1) from the congestion value q (t) acquired together with the segment file of the t-th segment (t is a natural number greater than 1 and less than N). Accordingly, the filtered congestion value Q (t) is calculated.
Q (t) = β · Q (t−1) + (1−β) · q (t) (1)
Here, β is a constant greater than or equal to 0 and less than 1.

基準レート算出部130は、輻輳情報処理部128からフィルタされた輻輳値Q(t)を取得し、取得された輻輳値Q(t)に基づいてビットレートの基準値x(t+1)を算出する。基準レート算出部130は、基準値x(t+1)の算出に際して、クライアント装置106におけるサービス品質(Quality of Service)とビットレートとの関係を示すユーティリティ関数(Utility Function)U(x)に、輻輳値Q(t)をサービス品質の指標として適用する。より具体的には、基準レート算出部130は、以下の式2にしたがい基準値x(t+1)を算出する。

Figure 2017220796
…(2)
ここで、[・] は関数max(min(・、b)、a)を表す。また、Mはクライアント装置106が要求しうるビットレートの最大値、mはクライアント装置106が要求しうるビットレートの最小値であり、それぞれクライアント装置106の性能、特性により決まる。例えば、配信サーバにおいて0.1Mbps、0.35Mbps、0.7Mbps、1.3Mbps、2.8Mbps、4.5Mbpsの6種類のビットレートのセグメントファイルが利用可能であっても、クライアント装置106のデコーダが3.0Mbpsまでしか対応できない場合、Mは2.8Mbpsとなる。 The reference rate calculation unit 130 acquires the filtered congestion value Q (t) from the congestion information processing unit 128, and calculates the bit rate reference value x (t + 1) based on the acquired congestion value Q (t). . When calculating the reference value x (t + 1), the reference rate calculation unit 130 adds a congestion value to a utility function U (x) indicating the relationship between the quality of service in the client device 106 and the bit rate. Q (t) is applied as an indicator of service quality. More specifically, the reference rate calculation unit 130 calculates the reference value x (t + 1) according to the following equation 2.
Figure 2017220796
... (2)
Here, [·] b a represents a function max (min (·, b), a). Further, M is the maximum value of the bit rate that can be requested by the client apparatus 106, and m is the minimum value of the bit rate that can be requested by the client apparatus 106, and is determined by the performance and characteristics of the client apparatus 106, respectively. For example, even if a distribution server can use segment files of six bit rates of 0.1 Mbps, 0.35 Mbps, 0.7 Mbps, 1.3 Mbps, 2.8 Mbps, and 4.5 Mbps, the decoder of the client device 106 Is capable of handling only up to 3.0 Mbps, M is 2.8 Mbps.

上記の式2は、ネットワークリソースをユーザ間で公平に利用することを目指して設定される。特に、式2はユーティリティ公平フレームワーク(Utility Faireness Framework)を使用して決定される。ユーティリティ公平フレームワークについては非特許文献3に詳述されているので、本明細書では説明を省略する。   The above Equation 2 is set aiming at fair use of network resources among users. In particular, Equation 2 is determined using the Utility Faireness Framework. Since the utility fair framework is described in detail in Non-Patent Document 3, the description thereof is omitted in this specification.

図4は、ユーティリティ関数U(x)の一例を示すグラフである。グラフの横軸はビットレートxを示し、縦軸はサービス品質の指標を示す。破線はユーティリティ関数U(x)を示す。ユーティリティ関数U(x)は階段関数V(x)を、マルチレベルシグモイド関数で近似する。階段関数V(x)の各ステップは、次に要求するセグメントに対して指定可能な異なる複数のビットレート(300kbps、1.2Mbps、5Mbps)のひとつに対応する。   FIG. 4 is a graph showing an example of the utility function U (x). The horizontal axis of the graph represents the bit rate x, and the vertical axis represents an index of service quality. The broken line indicates the utility function U (x). The utility function U (x) approximates the step function V (x) with a multilevel sigmoid function. Each step of the step function V (x) corresponds to one of a plurality of different bit rates (300 kbps, 1.2 Mbps, 5 Mbps) that can be specified for the next requested segment.

より一般的には、Kを次に要求するセグメントに対して指定可能な異なる複数のビットレートの数、r<r<…<rを次に要求するセグメントに対して指定可能な異なる複数のビットレートのそれぞれ、とするとき、マルチレベルロジスティック関数を使用した近似により得られるユーザnについてのユーティリティ関数Un(x)は、

Figure 2017220796
…(3)
のように表される。
yをユーティリティ値とするとき、上記のユーティリティ関数の逆関数U−1 (y)は、
Figure 2017220796
…(4)
のように表される。
なお、他のタイプのアプリケーションは異なる形状のユーティリティ関数を有する。例えば、FTPやWebアプリケーションは一般に対数関数的なユーティリティ関数を有する。 More generally, different can be specified relative to the next segment to request the number of possible different bit rates, r 1 <r 2 <... <r K for the segment to be next request K When each of a plurality of bit rates, the utility function Un (x) for user n obtained by approximation using a multi-level logistic function is
Figure 2017220796
... (3)
It is expressed as
When y is a utility value, the inverse function U −1 n (y) of the above utility function is
Figure 2017220796
(4)
It is expressed as
Note that other types of applications have utility functions of different shapes. For example, FTP and Web applications generally have logarithmic utility functions.

図3に戻り、フィルタ部132は、ビットレート決定のために使用するビットレートの基準値から揺動成分を除去するために、基準レート算出部130によって算出された基準値x(t+1)にローパスEWMAを行う。より具体的には、フィルタ部132は、基準レート算出部130によって算出された基準値x(t+1)から、以下の式(5)にしたがいフィルタされた基準値X(t+1)を算出する。
X(t+1)=(1−α)・X(t)+α・x(t+1) …(5)
ここで、αは0より大きく1以下の定数である。
Returning to FIG. 3, the filter unit 132 low-passes the reference value x (t + 1) calculated by the reference rate calculation unit 130 in order to remove the fluctuation component from the reference value of the bit rate used for determining the bit rate. Perform EWMA. More specifically, the filter unit 132 calculates the filtered reference value X (t + 1) from the reference value x (t + 1) calculated by the reference rate calculation unit 130 according to the following equation (5).
X (t + 1) = (1−α) · X (t) + α · x (t + 1) (5)
Here, α is a constant greater than 0 and less than or equal to 1.

αを1に設定することで、フィルタ部132を無効化することができる。基準レート算出部130により算出される基準値が速く収束する場合、αを1に設定してもよいし、フィルタ部132を設けなくてもよい。   By setting α to 1, the filter unit 132 can be invalidated. When the reference value calculated by the reference rate calculation unit 130 converges quickly, α may be set to 1 or the filter unit 132 may not be provided.

ビットレート決定部134は、フィルタ部132によって算出されたフィルタされた基準値X(t+1)にしたがい、次に要求するセグメントについて指定するビットレートを決定する。ビットレート決定部134は、ビットレートの決定の際、フィルタされた基準値X(t+1)と次に要求するセグメントに対して指定可能な異なる複数のビットレートとを比較する。より具体的には、ビットレート決定部134は、次に要求するセグメントに対して指定可能な異なる複数のビットレートのなかから、フィルタされた基準値X(t+1)以下であり、かつそれに最も近いビットレートを選択する。すなわち、低い方から数えてp番目のビットレートrが選択された場合、
≦X(t+1)<rp+1 …(6)
が成立する。
The bit rate determination unit 134 determines the bit rate to be designated for the next requested segment according to the filtered reference value X (t + 1) calculated by the filter unit 132. When determining the bit rate, the bit rate determining unit 134 compares the filtered reference value X (t + 1) with a plurality of different bit rates that can be specified for the next requested segment. More specifically, the bit rate determination unit 134 is equal to or less than the filtered reference value X (t + 1) from among a plurality of different bit rates that can be specified for the next requested segment. Select the bit rate. That is, if the p-th bit rate r p counted from the lower is selected,
r p ≦ X (t + 1) <r p + 1 (6)
Is established.

要求スケジュール部138は、バッファ136の残量が最小値Bminと最大値Bmaxとの間になるように、次にセグメントを要求するタイミングを制御する。要求スケジュール部138は、現在のバッファ136の残量BがBmaxを下回っている場合、ビットレート決定部134によってビットレートが決定されるとすぐにセグメント要求部126に次のセグメントを要求させる。現在のバッファ136の残量BがBmax以上である場合、要求スケジュール部138はΔt(=B−Bmax+τ)の間、次のセグメントの要求を延期する。ここで、B、Bmax、Bminの単位はいずれも再生長であり、τは1セグメントの再生長である。   The request scheduling unit 138 controls the next segment request timing so that the remaining amount of the buffer 136 is between the minimum value Bmin and the maximum value Bmax. When the remaining amount B of the current buffer 136 is lower than Bmax, the request schedule unit 138 causes the segment request unit 126 to request the next segment as soon as the bit rate is determined by the bit rate determination unit 134. When the remaining amount B of the current buffer 136 is equal to or greater than Bmax, the request scheduling unit 138 suspends the request for the next segment for Δt (= B−Bmax + τ). Here, the units of B, Bmax, and Bmin are all reproduction lengths, and τ is the reproduction length of one segment.

以上の構成によるクライアント装置106の動作を説明する。
図5は、クライアント装置106における一連の処理を示すフローチャートである。クライアント装置106はネットワーク104を介して配信サーバから、セグメントファイルおよびそれに伴う輻輳値を取得する(S502)。クライアント装置106は取得した情報から輻輳値を抽出する(S504)。クライアント装置106は抽出された輻輳値を平滑化する(S506)。クライアント装置106は、ネットワークリソースの利用についてユーザ間の公平を実現するよう設定された計算式を用いて、輻輳値からビットレートの基準値を算出する(S508)。クライアント装置106は、得られた基準値をEWMAにより平滑化する(S510)。クライアント装置106は、基準値から次に要求するセグメントのビットレートを決定する(S512)。クライアント装置106は、現在のバッファ残量Bと最大値Bmaxとを比較する(S514)。B≧Bmaxの場合(S514のYES)クライアント装置106はΔtだけ待機する(S516)。ステップS516の待機の後、またはB<Bmaxの場合(S514のNO)、クライアント装置106はネットワーク104を介して、決定されたビットレートを指定して次のセグメントを配信サーバに要求する(S518)。
The operation of the client device 106 configured as above will be described.
FIG. 5 is a flowchart showing a series of processing in the client device 106. The client device 106 acquires the segment file and the associated congestion value from the distribution server via the network 104 (S502). The client device 106 extracts a congestion value from the acquired information (S504). The client device 106 smoothes the extracted congestion value (S506). The client device 106 calculates a reference value of the bit rate from the congestion value using a calculation formula set to realize fairness among users regarding the use of network resources (S508). The client device 106 smoothes the obtained reference value by EWMA (S510). The client device 106 determines the bit rate of the next requested segment from the reference value (S512). The client device 106 compares the current remaining buffer capacity B with the maximum value Bmax (S514). If B ≧ Bmax (YES in S514), the client device 106 waits for Δt (S516). After waiting in step S516, or when B <Bmax (NO in S514), the client device 106 requests the next segment from the distribution server by designating the determined bit rate via the network 104 (S518). .

上述の実施の形態について、本明細書の記載に基づき、各部を、図示しないCPUや、インストールされたアプリケーションプログラムのモジュールや、システムプログラムのモジュールや、ハードディスクから読み出したデータの内容を一時的に記憶する半導体メモリなどにより実現できることは本明細書に触れた当業者には理解される。   Based on the description of the present embodiment, each unit temporarily stores a CPU (not shown), an installed application program module, a system program module, and the contents of data read from the hard disk. It will be understood by those skilled in the art who have touched this specification that it can be realized by a semiconductor memory or the like.

本実施の形態に係るクライアント装置106によると、輻輳についてのフィードバックである輻輳値を利用して、ユーティリティ公平フレームワークにしたがい公平なビットレート基準値が決定される。したがって、多くのクライアント装置が輻輳フィードバックのガイドの下で協調して動作するので、公平さを担保することができ、またシステム全体のユーティリティを最大化することができる。   According to the client device 106 according to the present embodiment, a fair bit rate reference value is determined according to the utility fair framework by using a congestion value that is feedback about congestion. Therefore, since many client devices operate cooperatively under the guidance of congestion feedback, fairness can be ensured and the utility of the entire system can be maximized.

また、本実施の形態に係るクライアント装置106によると、多くのユーザの間でサービス品質と公平さを最適化することができる。特に、複数のユーザがネットワークのボトルネックを共有する場合、それらのユーザにおける輻輳値はボトルネックにおける輻輳プライスが支配的となり、同等となる。したがってそれらのユーザの間での公平さを担保することができる。   Further, according to the client device 106 according to the present embodiment, it is possible to optimize service quality and fairness among many users. In particular, when a plurality of users share a network bottleneck, the congestion value of these users becomes equivalent because the congestion price at the bottleneck dominates. Therefore, fairness among those users can be ensured.

また、本実施の形態に係るクライアント装置106では、マルチレベルシグモイド関数がユーティリティ関数として使用される。マルチレベルシグモイド関数は階段関数よりもビットレートの増大に対してより保守的なので、バッファ136のアンダーラン(underrun)が発生する確率をより低減できる。   In the client device 106 according to the present embodiment, a multilevel sigmoid function is used as a utility function. Since the multi-level sigmoid function is more conservative with respect to the bit rate increase than the step function, the probability of underrun of the buffer 136 can be further reduced.

また、本実施の形態に係るクライアント装置106によると、同じまたは同様な経路でセグメントファイルを受信する複数のクライアント装置が指定する次のセグメントのビットレートは同じになる場合が多くなる。したがって、その経路上に設けられたキャッシュに要求される容量を低減することができる。例えば、図1に示されるトポロジにおいて、ノード2、3、4が同時にノード7から同じコンテンツを要求する場合を考える。ノード2、3、4における輻輳値はそれぞれ(λ7,6+λ6,2)、(λ7,6+λ6,3)、(λ7,6+λ6,4)である。キャッシュであるノード6からノード2、3、4へのリンクの輻輳プライスλ6,2、λ6,3、λ6,4が同等である場合、各ノード2、3、4における輻輳値も同等となり、したがって指定されるビットレートも同じになる。この場合、キャッシュ(ノード6)は指定される同じビットレートのセグメントファイルのみをキャッシュすればよいので、指定されるビットレートがばらばらの場合と比較して必要な容量を低減できる。 In addition, according to the client device 106 according to the present embodiment, the bit rates of the next segments specified by a plurality of client devices that receive the segment file through the same or similar route are often the same. Therefore, the capacity required for the cache provided on the path can be reduced. For example, in the topology shown in FIG. 1, consider a case where the nodes 2, 3, 4 request the same content from the node 7 at the same time. The congestion values at the nodes 2, 3 and 4 are (λ 7,6 + λ 6,2 ), (λ 7,6 + λ 6,3 ), and (λ 7,6 + λ 6,4 ), respectively. When the congestion prices λ 6,2 , λ 6,3 , λ 6,4 of the links from the node 6 to the nodes 2, 3 , 4 are equivalent, the congestion values at the nodes 2, 3 , 4 are also equivalent Therefore, the specified bit rate is the same. In this case, since the cache (node 6) only needs to cache the segment files having the same specified bit rate, the required capacity can be reduced compared to the case where the specified bit rates are different.

また、本実施の形態に係るクライアント装置106ではユーティリティ公平フレームワークが使用される。該フレームワークは非弾性的アプリケーション(例えば、ストリーミング)および弾性的アプリケーション(例えば、FTP、Web、ダウンロード)が混ざったネットワークをサポートしている。したがって、配信システム100もまたそのようなネットワークをサポートできる。   In addition, the utility fair framework is used in the client device 106 according to the present embodiment. The framework supports networks that mix inelastic applications (eg, streaming) and elastic applications (eg, FTP, Web, download). Accordingly, distribution system 100 can also support such a network.

以上、実施の形態に係るクライアント装置106の構成と動作について説明した。この実施の形態は例示であり、各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解される。   The configuration and operation of the client device 106 according to the embodiment has been described above. This embodiment is an exemplification, and it will be understood by those skilled in the art that various modifications can be made to each component and combination of processes, and such modifications are within the scope of the present invention.

実施の形態では、輻輳値に基づいてビットレートの基準値が算出される場合について説明したが、これに限られず、ネットワークにおける輻輳の度合いを示す輻輳情報に基づいて次に要求するセグメントのビットレートを決定してもよい。この場合、輻輳情報は複数のリンクのそれぞれにおける輻輳プライスの累計を反映してもよい。あるいはまた、輻輳情報は、TCP/IPの拡張機能であるECN(Explicit Congestion Notification)などのネットワークにおける輻輳の状況を示す情報を含んでもよい。   In the embodiment, the case where the reference value of the bit rate is calculated based on the congestion value has been described. However, the present invention is not limited to this, and the bit rate of the segment to be requested next based on the congestion information indicating the degree of congestion in the network. May be determined. In this case, the congestion information may reflect the accumulated congestion price in each of the plurality of links. Alternatively, the congestion information may include information indicating the congestion status in the network such as ECN (Explicit Congestion Notification) which is an extended function of TCP / IP.

実施の形態では、輻輳プライスの累計の始点を配信サーバ(ソース)とする場合について説明したが、これに限られず、例えばキャッシュを累計の始点としてもよい。   In the embodiment, the case where the starting point of the accumulated congestion price is the distribution server (source) has been described. However, the present invention is not limited to this. For example, a cache may be used as the starting point of the accumulation.

実施の形態に係る配信システム100はHTTP(Hypertext Transfer Protocol)環境で実装されてもよい。あるいはまた、配信システム100はUDP(User Datagram Protocol)環境やCCN(Content-Centric Networks)環境で実現されてもよい。   The distribution system 100 according to the embodiment may be implemented in an HTTP (Hypertext Transfer Protocol) environment. Alternatively, the distribution system 100 may be realized in a UDP (User Datagram Protocol) environment or a CCN (Content-Centric Networks) environment.

100 配信システム、 104 ネットワーク、 106 クライアント装置、 108 アクセスクライアント、 110 メディアエンジン、 112 制御エンジン。   100 distribution system, 104 network, 106 client device, 108 access client, 110 media engine, 112 control engine.

Claims (8)

複数のセグメントに分割され、セグメントごとに異なるビットレートを指定可能なコンテンツのセグメントデータを、ネットワークにおける輻輳の度合いを示す輻輳情報と共にネットワークを介して取得する取得部と、
前記取得部によって取得された輻輳情報に基づいて、次に要求するセグメントのビットレートを決定する決定部と、を備えるクライアント装置。
An acquisition unit that acquires segment data of content that is divided into a plurality of segments and that can specify different bit rates for each segment, together with congestion information that indicates the degree of congestion in the network, and
A client device comprising: a determination unit that determines a bit rate of a segment to be requested next based on the congestion information acquired by the acquisition unit.
前記取得部によって取得された輻輳情報に基づいてビットレートの基準値を算出する算出部をさらに備え、
前記決定部は、前記算出部によって算出された基準値と次に要求するセグメントに対して指定可能な異なる複数のビットレートとの比較によりビットレートを決定する請求項1に記載のクライアント装置。
A calculation unit that calculates a reference value of the bit rate based on the congestion information acquired by the acquisition unit;
The client device according to claim 1, wherein the determination unit determines a bit rate by comparing the reference value calculated by the calculation unit with a plurality of different bit rates that can be specified for a next requested segment.
前記算出部は、前記クライアント装置におけるサービス品質とビットレートとの関係を示すユーティリティ関数に、前記取得部によって取得された輻輳情報をサービス品質の指標として適用することで、基準値を算出する請求項2に記載のクライアント装置。   The calculation unit calculates a reference value by applying congestion information acquired by the acquisition unit as a service quality index to a utility function indicating a relationship between service quality and bit rate in the client device. 3. The client device according to 2. 前記ユーティリティ関数は階段関数を近似し、該階段関数の各ステップは次に要求するセグメントに対して指定可能な異なる複数のビットレートのひとつに対応する請求項3に記載のクライアント装置。   4. The client apparatus according to claim 3, wherein the utility function approximates a step function, and each step of the step function corresponds to one of a plurality of different bit rates that can be specified for a next requested segment. 前記決定部によって決定されたビットレートを指定して次のセグメントをネットワークを介して要求する要求部をさらに備えることを特徴とする請求項1から4のいずれか1項に記載のクライアント装置。   5. The client device according to claim 1, further comprising a requesting unit that requests the next segment via the network by designating the bit rate determined by the determining unit. セグメントデータはコンテンツのソースまたはキャッシュから前記クライアント装置へ複数のリンクを通じて伝送され、
前記取得部によって取得された輻輳情報は、前記複数のリンクのそれぞれにおける輻輳の度合いの累計を反映する請求項1から5のいずれか1項に記載のクライアント装置。
Segment data is transmitted from the content source or cache to the client device through multiple links,
The client apparatus according to claim 1, wherein the congestion information acquired by the acquisition unit reflects a cumulative degree of congestion in each of the plurality of links.
複数のセグメントに分割され、セグメントごとに異なるビットレートを指定可能なコンテンツのセグメントデータを、ネットワークにおける輻輳の度合いを示す輻輳情報と共にネットワークを介して取得することと、
前記取得された輻輳情報に基づいて、次に要求するセグメントのビットレートを決定することと、を含む方法。
Obtaining segment data of content that is divided into a plurality of segments and that can specify different bit rates for each segment together with congestion information indicating the degree of congestion in the network;
Determining a bit rate of a next requested segment based on the acquired congestion information.
複数のセグメントに分割され、セグメントごとに異なるビットレートを指定可能なコンテンツのセグメントデータを、ネットワークにおける輻輳の度合いを示す輻輳情報と共にネットワークを介して取得する機能と、
前記取得された輻輳情報に基づいて、次に要求するセグメントのビットレートを決定する機能と、をコンピュータに実現させるコンピュータプログラム。
A function for acquiring segment data of content that is divided into a plurality of segments and that can specify different bit rates for each segment together with congestion information indicating the degree of congestion in the network, and
A computer program for causing a computer to realize a function of determining a bit rate of a segment to be requested next based on the acquired congestion information.
JP2016113780A 2016-06-07 2016-06-07 Client device and method Pending JP2017220796A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016113780A JP2017220796A (en) 2016-06-07 2016-06-07 Client device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016113780A JP2017220796A (en) 2016-06-07 2016-06-07 Client device and method

Publications (1)

Publication Number Publication Date
JP2017220796A true JP2017220796A (en) 2017-12-14

Family

ID=60656531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016113780A Pending JP2017220796A (en) 2016-06-07 2016-06-07 Client device and method

Country Status (1)

Country Link
JP (1) JP2017220796A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016500986A (en) * 2012-10-29 2016-01-14 アルカテル−ルーセント Method and apparatus for congestion management in a wireless network using mobile HTTP adaptive streaming

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016500986A (en) * 2012-10-29 2016-01-14 アルカテル−ルーセント Method and apparatus for congestion management in a wireless network using mobile HTTP adaptive streaming

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEI-HUA WANG ET AL.: "Application-Oriented Flow Control: Fudamentals, Algorithms and Fairness", IEEE/ACM TRANSACTION ON NETWORKING, vol. Vol. 14, No. 6, JPN6019008969, 19 December 2006 (2006-12-19), pages pp. 1282-1291 *

Similar Documents

Publication Publication Date Title
Wang et al. Intelligent edge-assisted crowdcast with deep reinforcement learning for personalized QoE
US10757453B2 (en) Distributed multi-datacenter video packaging system
US7783773B2 (en) Glitch-free media streaming
JP4972409B2 (en) System for service location management considering node and network characteristics
US10659512B1 (en) Optimizing adaptive bit rate streaming at edge locations
US11064230B2 (en) Optimizing adaptive bit rate streaming for content delivery
Wang et al. A joint online transcoding and delivery approach for dynamic adaptive streaming
JP2018110387A (en) Method and system for bandwidth measurement and adaptive data transmission based on buffer in real time live environment
KR100671635B1 (en) Service management using multiple service location managers
KR100755617B1 (en) Method for adapting service location placement based on recent data received from service nodes and actions of the service location manager
JP2014192566A (en) Video processing device, video processing method, and computer program
CN110191362B (en) Data transmission method and device, storage medium and electronic equipment
EP1625724B1 (en) System and method for selecting a service provider
JP2017220796A (en) Client device and method
JP6466870B2 (en) Client device and method
JP2009163440A (en) Load distribution method, load distribution system, load distribution server and load distribution program
WO2018038789A1 (en) Scalable, real-time messaging system
US11201901B2 (en) Methods and systems for streaming media data over a content delivery network
Younus et al. A model for a practical evaluation of a DASH-based rate adaptive algorithm over HTTP
US11470145B2 (en) Server selection apparatus, server selection method and program
Khan et al. Bandwidth Estimation Techniques for Relative'Fair'Sharing in DASH
JP7270344B2 (en) Terminal equipment, bandwidth prediction equipment, and program
US11863615B2 (en) Content management systems providing zero recovery time objective
Yoshihisa et al. Models for Stream Data Distribution with Progressive Quality Improvement
Wang et al. Joint Online Processing and Geo-Distributed Delivery for Dynamic Social Streaming

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190315

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191004