JP7787692B2 - Communication Information Optimizer - Google Patents
Communication Information OptimizerInfo
- Publication number
- JP7787692B2 JP7787692B2 JP2021182682A JP2021182682A JP7787692B2 JP 7787692 B2 JP7787692 B2 JP 7787692B2 JP 2021182682 A JP2021182682 A JP 2021182682A JP 2021182682 A JP2021182682 A JP 2021182682A JP 7787692 B2 JP7787692 B2 JP 7787692B2
- Authority
- JP
- Japan
- Prior art keywords
- encoding
- encoding setting
- throughput
- calculation unit
- communication information
- 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
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Description
本発明は、ビットレートなどの通信情報を最適化する通信情報最適化装置に関する。 The present invention relates to a communication information optimization device that optimizes communication information such as bit rate.
ライブ映像配信技術において、webRTC SFU(web Real-TimeCommunication Selective Forwarding Unit)という方式が知られている。このwebRTCSFUは多対多で相互の映像配信を実現する仕組みである。webRTC SFUにはサイマル通信という機能がある。サイマル通信とは、映像データを配信する配信サーバ側で複数のエンコーディング設定に基づいて映像データをエンコードし、各クライアント端末は、当該クライアント端末が置かれている通信状況に適したエンコーディング設定を選択する機能である。これによって、配信サーバから現在の通信状況に適した映像データを受信することが可能となる。非特許文献1は、webRTC SFUについての標準化資料である。 A method known in live video streaming technology is webRTC SFU (web Real-Time Communication Selective Forwarding Unit). This webRTC SFU is a mechanism for realizing many-to-many mutual video streaming. The webRTC SFU has a function called simultaneous communication. Simultaneous communication is a function in which the video data is encoded based on multiple encoding settings on the distribution server that distributes the video data, and each client terminal selects the encoding setting that is appropriate for the communication conditions in which the client terminal is located. This makes it possible to receive video data from the distribution server that is appropriate for the current communication conditions. Non-Patent Document 1 is standardization material for the webRTC SFU.
しかしながら、非特許文献1などにおいて規定されているwebRTC SFUにおいては、どのようにサイマル通信におけるエンコーディング設定を最適化すべきか、規定されていない。 However, the webRTC SFU specified in Non-Patent Document 1 and elsewhere does not specify how encoding settings should be optimized for simultaneous communication.
したがって、例えば多くのユーザが通信状況がよい状況にも関わらず、誰にも選択されない低いビットレートでエンコーディングする映像データが存在する場合がある。 Therefore, for example, even if many users have good communication conditions, there may be video data that is encoded at a low bitrate that no one selects.
そこで、上述の課題を解決するために、本発明は、映像データなどのデータを配信する際に適切なエンコーディング設定を行うことができる通信情報最適化装置を提供することを目的とする。 To solve the above-mentioned problems, the present invention aims to provide a communication information optimization device that can set appropriate encoding settings when distributing data such as video data.
本発明の通信情報最適化装置は、クライアント端末のスループット情報を元にしてエンコーディング設定の更新の要否を判定するエンコーディング設定更新判定部と、判定結果を元に,エンコーディング設定計算を行うエンコーディング設定計算部と、を備える。 The communication information optimization device of the present invention includes an encoding setting update determination unit that determines whether or not an encoding setting update is necessary based on the throughput information of the client terminal, and an encoding setting calculation unit that calculates the encoding setting based on the determination result.
本発明によると、映像データなどのデータを配信する際に適切なエンコーディング設定を行うことができる。 This invention allows appropriate encoding settings to be made when distributing data such as video data.
添付図面を参照しながら本開示の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。 Embodiments of the present disclosure will be described with reference to the accompanying drawings. Where possible, identical parts will be designated by the same reference numerals, and duplicate descriptions will be omitted.
図1は、本開示における通信情報最適化装置として機能するエンコーディング設定計算装置100を含む機能構成を示すブロック図である。図に示されるとおり、配信サーバ300は、エンコーディング設定計算装置100により計算されたエンコーディング設定に基づいてソース映像をエンコーディングし、webRTCサーバ200にエンコーディングされた映像データを送信する。 Figure 1 is a block diagram showing a functional configuration including an encoding setting calculation device 100 that functions as a communication information optimization device in this disclosure. As shown in the figure, a distribution server 300 encodes source video based on the encoding settings calculated by the encoding setting calculation device 100 and transmits the encoded video data to a webRTC server 200.
クライアント端末400は、webRTCサーバ200に対して、エンコーディング設定を決定して、映像データ要求を送信する。 The client terminal 400 determines the encoding settings and sends a video data request to the webRTC server 200.
webRTCサーバ200は、クライアント端末400から要求された映像データをクライアントに送信する。 The webRTC server 200 transmits the video data requested by the client terminal 400 to the client.
エンコーディング設定計算装置100は、webRTCサーバ200から各クライアント端末400のスループット情報を収集し、エンコード設定を変更すべきタイミング(または常時)で配信サーバ300に対してエンコード設定情報を送る。 The encoding setting calculation device 100 collects throughput information for each client terminal 400 from the webRTC server 200 and sends encoding setting information to the distribution server 300 when the encoding settings should be changed (or at all times).
つぎに、エンコーディング設定計算装置100の機能構成について説明する。図に示される通り、エンコーディング設定計算装置100は、スループットDB101、エンコーディング設定更新判定ユニット102、およびエンコーディング設定計算ユニット103から構成される。 Next, we will explain the functional configuration of the encoding setting calculation device 100. As shown in the figure, the encoding setting calculation device 100 is composed of a throughput DB 101, an encoding setting update determination unit 102, and an encoding setting calculation unit 103.
このエンコーディング設定計算装置100は、クライアント端末400全体に対して最適化されたエンコード設定計算を行い、そのエンコード設定を配信サーバ300に対して行う。配信サーバ300は、最適化されたエンコーディングに従った映像データの配信を行う。クライアント端末400は、受け取った最適化された映像データを再生して表示する。 This encoding setting calculation device 100 calculates encoding settings optimized for the entire client terminal 400 and transmits these encoding settings to the distribution server 300. The distribution server 300 distributes video data according to the optimized encoding. The client terminal 400 plays back and displays the received optimized video data.
スループットDB101は、ユーザを識別するユーザid、時刻、およびスループットを対応付けて記憶している。図2は、その具体例を示す図である。時刻は、クライアント端末400からスループット情報が送信された時刻を示す。スループットは、各クライアント端末400におけるスループットを示す。図2では、データ転送量(kbps)を示すが、これ以外に単位時間あたりの処理量を示すようにしてもよい。 The throughput DB 101 stores a user ID that identifies a user, a time, and a throughput, in association with each other. Figure 2 shows a specific example. The time indicates the time when the throughput information was sent from the client terminal 400. The throughput indicates the throughput at each client terminal 400. Figure 2 shows the data transfer rate (kbps), but it may also be possible to show the processing rate per unit time.
エンコーディング設定更新判定ユニット102は、配信サーバ300におけるエンコーディング設定を変更すべきかを判定する部分である。このエンコーディング設定更新判定ユニット102は、スループットDB101の情報に基づいて現在接続しているクライアント端末400のスループット分布p(x)と前回更新時のスループット分布q(x)との距離が一定値以上になる場合に更新を行い、そうでない場合には更新を行わないものとする。 The encoding setting update determination unit 102 is a part that determines whether the encoding settings in the distribution server 300 should be changed. This encoding setting update determination unit 102 performs an update if the distance between the throughput distribution p(x) of the currently connected client terminal 400 and the throughput distribution q(x) at the time of the previous update is equal to or greater than a certain value based on the information in the throughput DB 101; otherwise, it does not perform an update.
分布p(x)およびq(x)は、スループットDB101に基づいて経験分布として構成してもよいし、経験分布に対してフィッティングした分布としてもよい。距離の指標としては、KLダイバージェンスもしくはJSダイバージェンスを用いるが、これら以外の指標を用いてもよい。 The distributions p(x) and q(x) may be constructed as empirical distributions based on the throughput DB101, or may be distributions fitted to the empirical distributions. KL divergence or JS divergence is used as the distance index, but other indices may also be used.
この判定処理は、一定時間おきに実行してもよいし、webRTCサーバ200と通信している接続ユーザ数(通信しているクライアント端末数)が変更となったタイミングごとに実行してもよい。更新を行う場合にはエンコーディング設定計算ユニットに更新指示を出す。 This determination process may be performed at regular intervals, or whenever there is a change in the number of connected users (number of communicating client terminals) communicating with the webRTC server 200. When an update is required, an update instruction is issued to the encoding setting calculation unit.
エンコーディング設定計算ユニット103は、エンコーディング設定更新判定ユニット102から指示を受けた時に動作し、エンコーディング設定の更新を行う部分である。各エンコーディング設定は、映像コーデック(映像符号化方式)、映像ビットレート、映像解像度、フレームレート、音声コーデック(音声符号化方式)、および音声ビットレートの組で表される。エンコーディング設定計算ユニット103は、映像ビットレートを決定し、他の要素については固定、もしくは映像ビットレートに応じて決定するものとする。 The encoding setting calculation unit 103 operates when instructed by the encoding setting update determination unit 102 and updates the encoding settings. Each encoding setting is represented by a set of video codec (video encoding method), video bitrate, video resolution, frame rate, audio codec (audio encoding method), and audio bitrate. The encoding setting calculation unit 103 determines the video bitrate, and the other elements are fixed or determined according to the video bitrate.
例えば、映像解像度は、映像ビットレートが100kbps以上300kbps未満のときには360p、300kbps以上600kbps未満のときには480p、600kbps以上1000kbps未満のときには720p、1000kbps以上3000kbps未満のときには1080p、3000kbps以上のときには2160pのように設定してもよい。また、音声ビットレートについても、映像ビットレートが300kbps未満のときには128kbps、300kbps以上のときには192kbpsのように設定してもよい。 For example, the video resolution may be set to 360p when the video bitrate is between 100 kbps and 300 kbps, 480p when it is between 300 kbps and 600 kbps, 720p when it is between 600 kbps and 1000 kbps, 1080p when it is between 1000 kbps and 3000 kbps, and 2160p when it is 3000 kbps or higher. The audio bitrate may also be set to 128 kbps when the video bitrate is less than 300 kbps, and 192 kbps when it is 300 kbps or higher.
以下では映像ビットレートを単にビットレートと称し、ビットレートを決定する方法について述べる。 In the following, video bitrate will be referred to simply as bitrate, and we will explain how to determine the bitrate.
エンコーディング設定計算ユニット103は、以下の数式で示される目的関数h(x)を最大化するよう、最適化問題を解くことにより、配信サーバ300に設定するビットレート数Nおよびビットレートb1、b2・・・bNを決定する。 The encoding setting calculation unit 103 determines the number of bit rates N and the bit rates b 1 , b 2 , . . . b N to be set in the distribution server 300 by solving an optimization problem to maximize the objective function h(x ) shown in the following formula:
上記の式で示した通り、目的関数h(x)は、2つの項から構成される。第1項はあるビットレートで視聴することによって得られる効用の和であり、第2項は最低レートにも満たないスループットのユーザによる損失を表す。
As shown in the above formula, the objective function h(x) consists of two terms: the first term is the sum of the utility gained by viewing at a certain bitrate, and the second term represents the loss due to users whose throughput is below the minimum rate.
第1項の効用は、ビットレートに対する効用は効用関数f(x)を通じて得られるものとする。効用関数f(x)は、広義の単調増加関数である。この効用関数f(x)は、ITU-T P.1203 mode 3で計算される体感品質としてもよいし、カメラに映る物体の認識率といった任意の指標を設定することに基づいて定義づけてもよい。 The utility in the first term is assumed to be obtained through the utility function f(x), which is a monotonically increasing function in the broad sense. This utility function f(x) may be the quality of experience calculated using ITU-T P.1203 mode 3, or may be defined based on an arbitrary index such as the recognition rate of objects captured by the camera.
第2項は、設定した最低ビットレートにも満たないユーザが存在することに対するペナルティ項を表す。通信品質の悪いユーザをどの程度重視するかは、パラメータを操作することで調整することができるものとする。ここで、パラメータλは0以上の実数とする。 The second term represents the penalty term for the presence of users who do not meet the set minimum bit rate. The degree of importance given to users with poor communication quality can be adjusted by manipulating the parameter. Here, the parameter λ is a real number greater than or equal to 0.
ここで、制約条件は、以下の2つとする。 Here, the constraints are the following two:
1つめの制約は、コスト制約である。ここでコストとは,計算にかかるコストのことを指す。各ビットレートbiに対して計算コストg(bi)がかかるものし、その和がコスト最大値C以下となる制約をおく。計算コスト関数g(x)は、広義の単調増加関数とする。事前に異なるビットレートxでエンコードをしておき、任意のビットレートxに対して計算コストが求められるようにしておく。
The first constraint is a cost constraint. Here, cost refers to the cost required for calculation. A calculation cost g(b i ) is required for each bit rate b i , and the sum must be less than or equal to a maximum cost value C. The calculation cost function g(x) is a monotonically increasing function in the broad sense. Encoding is performed in advance at different bit rates x, so that the calculation cost can be calculated for any bit rate x.
2つめの制約は、ネットワーク帯域に関する制約である。配信元からのアップロード帯域の上限を最大値Bと置き、エンコード設定に含まれるビットレートbiの合計は最大値Bを超えないものとする。最大値Bは事前に与えてもよいし、直近のスループット履歴から推定してもよい。推定方法として,直近で計測したスループットデータの単純平均、調和平均を用いても良いし,ARIMAモデル(自己回帰和分移動平均モデル)を用いてもよい。 The second constraint is a constraint related to the network bandwidth. The upper limit of the upload bandwidth from the distribution source is set to maximum value B, and the sum of the bit rates b i included in the encoding settings must not exceed maximum value B. Maximum value B may be given in advance, or may be estimated from the most recent throughput history. As an estimation method, a simple average or harmonic average of the most recently measured throughput data may be used, or an ARIMA model (autoregressive integrated moving average model) may be used.
つぎに、本開示のエンコーディング設定計算装置100の最適化問題の解を算出する動作について説明する。図3は、エンコーディング設定計算装置100の動作を示すフローチャートである。エンコーディング設定計算ユニット103は、初期値として、N=2、Nbest=N、bbest=0、sbest=h(b)を定義する(S101)。なお、bおよびbbestは、ベクトル形式で表され、N個の0(ゼロ)で表記される。例えば、bbest=(b1、b2…bN)=(0,0,0・・・、0)である。bbestは、スコアが最大となるビットレートbである。Nは、ビットレート数を示す。Nbestは、ビットレート数の最大値を示す。bbestは、いくつか算出したビットレートのうち目的関数h(x)の値を最大にしたビットレートを示す。sbestは、目的関数h(x)のスコアのうち最大値を示す。なお、図3および図4においては、スコアs=h(x)としている。 Next, the operation of the encoding setting calculation device 100 of the present disclosure for calculating a solution to an optimization problem will be described. FIG. 3 is a flowchart showing the operation of the encoding setting calculation device 100. The encoding setting calculation unit 103 defines N=2, N best =N, b best =0, and s best =h(b) as initial values (S101). Note that b and b best are expressed in vector format and are represented by N zeros. For example, b best = (b 1 , b 2 ... b N ) = (0, 0, 0 ... , 0). b best is the bit rate b that maximizes the score. N indicates the number of bit rates. N best indicates the maximum number of bit rates. b best indicates the bit rate that maximizes the value of the objective function h(x) among several calculated bit rates. s best indicates the maximum score of the objective function h(x). Note that in FIGS. 3 and 4, the score s = h(x).
エンコーディング設定計算ユニット103は、ビットレート数Nにおける目的関数h(x)のスコアsおよび探索したビットレートbを算出する(S102)。この処理の詳細については後述する。 The encoding setting calculation unit 103 calculates the score s of the objective function h(x) for the number of bit rates N and the searched bit rate b (S102). Details of this process will be described later.
エンコーディング設定計算ユニット103は、算出したスコアsがsbestより大きいか否かを判断する(S103)。エンコーディング設定計算ユニット103は、大きいと判断した場合(S103:Yes)、Nbest=N、bbest=b、sbest=sに更新する(S104)。エンコーディング設定計算ユニット103は、大きいと判断しない場合(S103:No)、更新処理をしない。 The encoding setting calculation unit 103 determines whether the calculated score s is greater than s best (S103). If the encoding setting calculation unit 103 determines that the score is greater than s best (S103: Yes), it updates N best to N, b best to b, and s best to s (S104). If the encoding setting calculation unit 103 does not determine that the score is greater than s best (S103: No), it does not perform the update process.
エンコーディング設定計算ユニット103は、これら処理が終了すると、N=N+1とし、Nを一つインクリメントする(S105)。エンコーディング設定計算ユニット103は、N>Nmaxであるか否かを判断し(S106)、大きいと判断しない場合(S106:No)、さらにN=N+1としたスコアsおよびビットレートbを算出する(S102)。このNmaxは、ビットレート数Nの最大値であり、予め規定された数値である。この処理では、Nmaxになるまで、Nを増やしながら適正なNを探索している。 After completing these steps, the encoding setting calculation unit 103 sets N to N+1 and increments N by one (S105). The encoding setting calculation unit 103 determines whether N> Nmax (S106). If it determines that N is not greater than Nmax (S106: No), it further calculates the score s and bit rate b with N=N+1 (S102). This Nmax is the maximum value of the number of bit rates N and is a predetermined value. In this process, the appropriate N is searched for by increasing N until it reaches Nmax .
エンコーディング設定計算ユニット103は、大きいと判断すると、処理を終了し、処理S104で更新したビットレートbbest、およびビットレート数Nを出力する。 If the encoding setting calculation unit 103 determines that it is larger, it ends the process and outputs the updated bit rate b best and the number of bit rates N in process S104.
このようにして、適正なビットレートbおよびビットレート数Nを求めることができる。 In this way, the appropriate bit rate b and number of bit rates N can be determined.
つぎに、処理S102のフローチャートについて説明する。図4は、その処理内容を示すフローチャートである。エンコーディング設定計算ユニット103は、b′best=0、s′best=h(b′best)とし、初期化する(S201)。ビットレートb′bestは、N個の識別子ごとのビットレートを示したベクトルであり、(0,0,0・・・)とN個の数値で表される。 Next, the flowchart of process S102 will be described. Fig. 4 is a flowchart showing the process contents. The encoding setting calculation unit 103 initializes b' best = 0 and s' best = h(b' best ) (S201). The bit rate b' best is a vector indicating the bit rate for each of the N identifiers, and is expressed as N numerical values (0, 0, 0...).
エンコーディング設定計算ユニット103は、b′next=0、Snext=-∞、Bnb=Φ(空集合)として、初期値の設定を行う(S202)。本明細書において、Φは、空集合を表すものとする。なお、Bnbは、ビットレートbの集合である。 The encoding setting calculation unit 103 sets initial values as b'next = 0, Snext = -∞, and Bnb = Φ (empty set) (S202). In this specification, Φ represents an empty set. Note that Bnb is a set of bit rates b.
エンコーディング設定計算ユニット103は、b′tmp=b′bestとし、b′tmp,i=b′tmp,i+Δ、Bnb=Bnb∪Btmpとする(S203)。ここで、iは、設定されるビットレートの識別子を示す。本開示においては、b′tmpは、ベクトルで表記され、i=1は、一番目のビットレートを示す。そして、b′tmp,i=b′tmp,i+Δとは、識別子iで示されるビットレートにΔを加算する。Δは、ビットレートを探索するための探索幅であり、あらかじめ定められた値である。 The encoding setting calculation unit 103 sets b'tmp = b'best , b'tmp ,i = b'tmp ,i + Δ, and Bnb = Bnb ∪ Btmp (S203). Here, i indicates the identifier of the bit rate to be set. In this disclosure, b'tmp is expressed as a vector, and i = 1 indicates the first bit rate. And, b'tmp ,i = b'tmp ,i + Δ means adding Δ to the bit rate indicated by the identifier i. Δ is the search width for searching for the bit rate and is a predetermined value.
例えば、Nが2であるときの、b′tmp,1の初期値は、(0,0)であり、Δを加算することで、b′tmp,1=(Δ、0)となる。識別子i=1は、ベクトル表記の1番目を示す。同様に、b′tmp,2=(0,Δ)で表される。これら処理をi=1からNまで行う。そして、すべてのb′tmp,1~b′tmp,N、およびb′tmpを、集合Btmpとして集合で表す。 For example, when N is 2, the initial value of b'tmp ,1 is (0,0), and by adding Δ, b'tmp ,1 = (Δ,0). Identifier i = 1 indicates the first vector notation. Similarly, b'tmp,2 = (0,Δ). This process is performed from i = 1 to N. Then, all b'tmp ,1 to b'tmp ,N and b'tmp are represented as a set called set Btmp .
同様にして、エンコーディング設定計算ユニット103は、b′tmp=b′bestとし、b′tmp,i=b′tmp,i+Δ、b′tmp,j=b′tmp,j-Δ、Bnb=Bnb∪Btmpとする(S204)。なお、ここでは、すべてのN以下のi,jの組み合わせ(i≠jの条件あり)を使って、b′tmp,i、b′tmp,jを求める。また、b′tmp,j>0とする。 Similarly, the encoding setting calculation unit 103 sets b'tmp = b'best , b'tmp ,i = b'tmp ,i + Δ, b'tmp, j = b'tmp, j - Δ, and Bnb = Bnb ∪ Btmp (S204). Note that here, b'tmp ,i and b'tmp,j are calculated using all combinations of i and j less than or equal to N (subject to the condition i≠ j ). Also, b'tmp ,j > 0 is set.
このようにして、処理S203および処理S204により、Δだけずれた複数のビットレート(ビットレートの集合Bnb)が得られる。 In this way, a plurality of bit rates (a set of bit rates B nb ) shifted by Δ are obtained by steps S203 and S204.
そしてエンコーディング設定計算ユニット103は、集合Bnbから一のビットレートxを取り出し、またその集合Bnbからビットレートxを除去し(S205)、スコアs′next<h(x)を満たし、さらに制約条件を満たすか、を判断する(S206)。 Then, the encoding setting calculation unit 103 extracts one bit rate x from the set B nb and removes the bit rate x from the set B nb (S205), and determines whether the score s′ next <h(x) is satisfied and whether the constraint is also satisfied (S206).
制約条件とは、上述した通り以下の数式により示される。 As mentioned above, the constraints are expressed by the following formula:
ここで、エンコーディング設定計算ユニット103は、スコアs′next<h(x)を満たし、さらに制約条件を満たす場合には(S206:Yes)、スコアs′next=h(x)とし、b′next=xとする(S207)。
Here, if the score s' next <h(x) is satisfied and further the constraint condition is satisfied (S206: Yes), the encoding setting calculation unit 103 sets the score s' next =h(x) and b' next =x (S207).
エンコーディング設定計算ユニット103は、すべての集合Bnb=Φになるまで、すなわち、集合Bnbに含まれているビットレートに対するスコアを算出するまで、繰り返し処理S205~S207の処理を行う(S208:No)。 The encoding setting calculation unit 103 repeats the processes of S205 to S207 until all sets B nb =Φ, that is, until the scores for the bit rates included in the set B nb are calculated (S208: No).
エンコーディング設定計算ユニット103は、すべてのビットレートに対するスコアsを算出すると(S208:Yes)、スコアs′next>スコアs′bestであるか否か判断する(S210)。ここで、スコアs′next>スコアs′bestである場合には(S209:Yes)、b′best=b′next、s′best=s′nextとして(S210)、処理S202まで戻り、さらにb′tmpにおける各ベクトル要素(ビットレート)をΔずらした集合Btmpを作り処理を繰り返す。 After calculating the scores s for all bit rates (S208: Yes), the encoding setting calculation unit 103 determines whether score s'next > score s'best (S210). If score s'next > score s'best (S209: Yes), b'best = b'next and s'best = s'next (S210), and the process returns to S202, where a set Btmp is created by shifting each vector element (bit rate) in b'tmp by Δ, and the process is repeated.
エンコーディング設定計算ユニット103は、スコアs′next>スコアs′bestではないと判断する場合には(S209:No)、スコアs′best、b′bestを、それぞれスコアs、ビットレートbとして、出力する(S211)。 If the encoding setting calculation unit 103 determines that the score s' next is not greater than the score s' best (S209: No), it outputs the scores s' best and b' best as the score s and the bit rate b, respectively (S211).
これにより、上記目的関数h(x)における最適解を算出することができる。なお、ここでは山登り法に基づくアルゴリズムを実施例として示したが,焼き鈍し法を組み合わせたアルゴリズムで求解してもよい。 This allows the optimal solution for the objective function h(x) to be calculated. Note that while an algorithm based on hill-climbing is shown here as an example, a solution can also be found using an algorithm that combines simulated annealing.
つぎに、本開示の通信情報最適化装置であるエンコーディング設定計算装置100の作用効果について説明する。エンコーディング設定計算装置100は、クライアント端末400のスループット情報を元にしてエンコーディング設定の更新の要否を判定するエンコーディング設定更新判定ユニット102と、判定結果を元に、エンコーディング設定計算を行うエンコーディング設定計算ユニット103と、を備える。 Next, we will explain the effects of the encoding setting calculation device 100, which is the communication information optimization device disclosed herein. The encoding setting calculation device 100 includes an encoding setting update determination unit 102 that determines whether or not an encoding setting update is required based on throughput information from the client terminal 400, and an encoding setting calculation unit 103 that calculates the encoding setting based on the determination result.
この構成により、適切なエンコーディング設定に更新することができる。よって、映像配信の品質が向上する。 This configuration allows you to update to the appropriate encoding settings, thereby improving the quality of video distribution.
また、エンコーディング設定計算装置100は、配信サーバ300からデータを受け取り一または複数のクライアント端末400にデータ配信を行う中継サーバであるwebRTCサーバ200から一または複数のクライアント端末400におけるスループット情報を取得する取得部に相当するスループットDB101をさらに備える。 The encoding setting calculation device 100 also includes a throughput DB 101, which corresponds to an acquisition unit that acquires throughput information for one or more client terminals 400 from the webRTC server 200, which is a relay server that receives data from the distribution server 300 and distributes the data to one or more client terminals 400.
そして、エンコーディング設定更新判定ユニット102は、現在のスループット情報と、直近に取得したスループット情報とに基づいて、エンコーディング設定を更新するか否かを判定する。より具体的には、エンコーディング設定更新判定ユニット102は、スループット情報からスループット分布p(x)を求め、当該スループット分布p(x)に基づいて、エンコーディング設定を更新するか否かを判定する。 The encoding setting update determination unit 102 then determines whether to update the encoding settings based on the current throughput information and the most recently acquired throughput information. More specifically, the encoding setting update determination unit 102 calculates the throughput distribution p(x) from the throughput information, and determines whether to update the encoding settings based on this throughput distribution p(x).
エンコーディング設定計算ユニット103は、エンコーディング設定に応じたユーザのデータ配信に対する効用と最低エンコーディング設定以下のスループットを経験するユーザの効用に対する損失とに基づいて、エンコーディング設定計算を行う。 The encoding setting calculation unit 103 performs encoding setting calculations based on the user's utility for data delivery according to the encoding setting and the loss in utility of a user who experiences throughput below the minimum encoding setting.
より具体的には、エンコーディング設定計算ユニット103は、ユーザに対する効用を定義した関数の出力値(上記目的関数h(x)の第一項)と、ユーザの効用に対する損失を定義した関数の出力値(上記目的関数h(x)の第二項)との差分を最大化したときの値に基づいてエンコーディング設定計算を行う。 More specifically, the encoding setting calculation unit 103 performs encoding setting calculations based on the value obtained by maximizing the difference between the output value of a function defining the utility for the user (the first term of the above-mentioned objective function h(x)) and the output value of a function defining the loss relative to the user's utility (the second term of the above-mentioned objective function h(x)).
エンコーディング設定計算ユニット103は、あるエンコーディング設定(あるビットレート)におけるエンコーディングコストg(x)と、ネットワークにおける最大帯域Bとに基づいて複数のエンコーディング設定を行う。 The encoding setting calculation unit 103 generates multiple encoding settings based on the encoding cost g(x) for a certain encoding setting (certain bit rate) and the maximum bandwidth B in the network.
エンコーディング設定とは、ビットレートの設定を示すが、それ以外にも、映像符号化方式、音声符号化方式、映像ビットレート、音声ビットレート、解像度、FPSの一つまたは複数の組み合わせを含む。 Encoding settings refer to bitrate settings, but also include one or more combinations of video encoding method, audio encoding method, video bitrate, audio bitrate, resolution, and FPS.
上記実施形態の説明に用いたブロック図は、機能単位のブロックを示している。これらの機能ブロック(構成部)は、ハードウェアおよびソフトウェアの少なくとも一方の任意の組み合わせによって実現される。また、各機能ブロックの実現方法は特に限定されない。すなわち、各機能ブロックは、物理的または論理的に結合した1つの装置を用いて実現されてもよいし、物理的または論理的に分離した2つ以上の装置を直接的または間接的に(例えば、有線、無線などを用いて)接続し、これら複数の装置を用いて実現されてもよい。機能ブロックは、上記1つの装置または上記複数の装置にソフトウェアを組み合わせて実現されてもよい。 The block diagrams used to explain the above embodiments show functional blocks. These functional blocks (components) are realized by any combination of hardware and/or software. Furthermore, there are no particular limitations on how each functional block is realized. That is, each functional block may be realized using a single device that is physically or logically coupled, or may be realized using two or more physically or logically separated devices that are connected directly or indirectly (e.g., using wires, wirelessly, etc.) and these multiple devices. A functional block may also be realized by combining software with the single device or multiple devices.
機能には、判断、決定、判定、計算、算出、処理、導出、調査、探索、確認、受信、送信、出力、アクセス、解決、選択、選定、確立、比較、想定、期待、見做し、報知(broadcasting)、通知(notifying)、通信(communicating)、転送(forwarding)、構成(configuring)、再構成(reconfiguring)、割り当て(allocating、mapping)、割り振り(assigning)などがあるが、これらに限られない。たとえば、送信を機能させる機能ブロック(構成部)は、送信部(transmitting unit)や送信機(transmitter)と呼称される。いずれも、上述したとおり、実現方法は特に限定されない。 Functions include, but are not limited to, judgment, determination, assessment, calculation, computation, processing, derivation, investigation, search, confirmation, reception, transmission, output, access, resolution, selection, election, establishment, comparison, assumption, expectation, regard, broadcasting, notifying, communicating, forwarding, configuring, reconfiguring, allocating, mapping, and assignment. For example, a functional block (component) that performs transmission functions is called a transmitting unit or transmitter. As mentioned above, there are no particular limitations on how these functions are implemented.
例えば、本開示の一実施の形態におけるエンコーディング設定計算装置100は、本開示のエンコーディング設定計算方法の処理を行うコンピュータとして機能してもよい。図5は、本開示の一実施の形態に係るエンコーディング設定計算装置100のハードウェア構成の一例を示す図である。上述のエンコーディング設定計算装置100は、物理的には、プロセッサ1001、メモリ1002、ストレージ1003、通信装置1004、入力装置1005、出力装置1006、バス1007などを含むコンピュータ装置として構成されてもよい。 For example, the encoding setting calculation device 100 according to an embodiment of the present disclosure may function as a computer that performs processing of the encoding setting calculation method of the present disclosure. FIG. 5 is a diagram showing an example of the hardware configuration of the encoding setting calculation device 100 according to an embodiment of the present disclosure. The encoding setting calculation device 100 described above may be physically configured as a computer device including a processor 1001, memory 1002, storage 1003, a communication device 1004, an input device 1005, an output device 1006, a bus 1007, etc.
なお、以下の説明では、「装置」という文言は、回路、デバイス、ユニットなどに読み替えることができる。エンコーディング設定計算装置100のハードウェア構成は、図に示した各装置を1つまたは複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。 In the following description, the term "apparatus" can be interpreted as a circuit, device, unit, etc. The hardware configuration of the encoding setting calculation apparatus 100 may be configured to include one or more of the devices shown in the figure, or may be configured to exclude some of the devices.
エンコーディング設定計算装置100における各機能は、プロセッサ1001、メモリ1002などのハードウェア上に所定のソフトウェア(プログラム)を読み込ませることによって、プロセッサ1001が演算を行い、通信装置1004による通信を制御したり、メモリ1002およびストレージ1003におけるデータの読み出しおよび書き込みの少なくとも一方を制御したりすることによって実現される。 Each function of the encoding setting calculation device 100 is realized by loading specific software (programs) onto hardware such as the processor 1001 and memory 1002, causing the processor 1001 to perform calculations, control communications via the communication device 1004, and control at least one of reading and writing data from and to the memory 1002 and storage 1003.
プロセッサ1001は、例えば、オペレーティングシステムを動作させてコンピュータ全体を制御する。プロセッサ1001は、周辺装置とのインターフェース、制御装置、演算装置、レジスタなどを含む中央処理装置(CPU:Central Processing Unit)によって構成されてもよい。例えば、上述のエンコーディング設定更新判定ユニット102、エンコーディング設定計算ユニット103などは、プロセッサ1001によって実現されてもよい。 The processor 1001, for example, runs an operating system to control the entire computer. The processor 1001 may be configured as a central processing unit (CPU) that includes an interface with peripheral devices, a control unit, an arithmetic unit, registers, etc. For example, the encoding setting update determination unit 102 and encoding setting calculation unit 103 described above may be realized by the processor 1001.
また、プロセッサ1001は、プログラム(プログラムコード)、ソフトウェアモジュール、データなどを、ストレージ1003および通信装置1004の少なくとも一方からメモリ1002に読み出し、これらに従って各種の処理を実行する。プログラムとしては、上述の実施の形態において説明した動作の少なくとも一部をコンピュータに実行させるプログラムが用いられる。例えば、エンコーディング設定計算ユニット103は、メモリ1002に格納され、プロセッサ1001において動作する制御プログラムによって実現されてもよく、他の機能ブロックについても同様に実現されてもよい。上述の各種処理は、1つのプロセッサ1001によって実行される旨を説明してきたが、2以上のプロセッサ1001により同時または逐次に実行されてもよい。プロセッサ1001は、1以上のチップによって実装されてもよい。なお、プログラムは、電気通信回線を介してネットワークから送信されても良い。 The processor 1001 also reads programs (program code), software modules, data, etc. from at least one of the storage 1003 and the communication device 1004 into the memory 1002 and executes various processes in accordance with these. The programs used are those that cause a computer to execute at least some of the operations described in the above-described embodiments. For example, the encoding setting calculation unit 103 may be implemented by a control program stored in the memory 1002 and running on the processor 1001, and similar implementations may be made for other functional blocks. While the above-described various processes have been described as being executed by a single processor 1001, they may also be executed simultaneously or sequentially by two or more processors 1001. The processor 1001 may be implemented on one or more chips. The programs may also be transmitted from a network via telecommunications lines.
メモリ1002は、コンピュータ読み取り可能な記録媒体であり、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)などの少なくとも1つによって構成されてもよい。メモリ1002は、レジスタ、キャッシュ、メインメモリ(主記憶装置)などと呼ばれてもよい。メモリ1002は、本開示の一実施の形態に係るエンコーディング設定計算方法を実施するために実行可能なプログラム(プログラムコード)、ソフトウェアモジュールなどを保存することができる。 Memory 1002 is a computer-readable recording medium and may be composed of, for example, at least one of ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), RAM (Random Access Memory), etc. Memory 1002 may also be referred to as a register, cache, main memory (primary storage device), etc. Memory 1002 can store executable programs (program code), software modules, etc. for implementing an encoding setting calculation method according to one embodiment of the present disclosure.
ストレージ1003は、コンピュータ読み取り可能な記録媒体であり、例えば、CD-ROM(Compact Disc ROM)などの光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、デジタル多用途ディスク、Blu-ray(登録商標)ディスク)、スマートカード、フラッシュメモリ(例えば、カード、スティック、キードライブ)、フロッピー(登録商標)ディスク、磁気ストリップなどの少なくとも1つによって構成されてもよい。ストレージ1003は、補助記憶装置と呼ばれてもよい。上述の記憶媒体は、例えば、メモリ1002およびストレージ1003の少なくとも一方を含むデータベース、サーバその他の適切な媒体であってもよい。 Storage 1003 is a computer-readable recording medium, and may be composed of at least one of an optical disk such as a CD-ROM (Compact Disc ROM), a hard disk drive, a flexible disk, a magneto-optical disk (e.g., a compact disk, a digital versatile disk, a Blu-ray® disk), a smart card, a flash memory (e.g., a card, a stick, a key drive), a floppy disk, a magnetic strip, etc. Storage 1003 may also be referred to as an auxiliary storage device. The above-mentioned storage medium may be, for example, a database, a server, or other suitable medium that includes at least one of memory 1002 and storage 1003.
通信装置1004は、有線ネットワークおよび無線ネットワークの少なくとも一方を介してコンピュータ間の通信を行うためのハードウェア(送受信デバイス)であり、例えばネットワークデバイス、ネットワークコントローラ、ネットワークカード、通信モジュールなどともいう。通信装置1004は、例えば周波数分割複信(FDD:Frequency Division Duplex)および時分割複信(TDD:Time Division Duplex)の少なくとも一方を実現するために、高周波スイッチ、デュプレクサ、フィルタ、周波数シンセサイザなどを含んで構成されてもよい。 The communication device 1004 is hardware (transmission/reception device) for communicating between computers via at least one of a wired network and a wireless network, and is also referred to as a network device, network controller, network card, or communication module. The communication device 1004 may be configured to include a high-frequency switch, duplexer, filter, frequency synthesizer, etc. to realize at least one of frequency division duplex (FDD) and time division duplex (TDD).
入力装置1005は、外部からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサなど)である。出力装置1006は、外部への出力を実施する出力デバイス(例えば、ディスプレイ、スピーカー、LEDランプなど)である。なお、入力装置1005および出力装置1006は、一体となった構成(例えば、タッチパネル)であってもよい。 The input device 1005 is an input device (e.g., a keyboard, mouse, microphone, switch, button, sensor, etc.) that accepts input from the outside. The output device 1006 is an output device (e.g., a display, speaker, LED lamp, etc.) that outputs to the outside. Note that the input device 1005 and the output device 1006 may be integrated into one device (e.g., a touch panel).
また、プロセッサ1001、メモリ1002などの各装置は、情報を通信するためのバス1007によって接続される。バス1007は、単一のバスを用いて構成されてもよいし、装置間ごとに異なるバスを用いて構成されてもよい。 Furthermore, each device, such as the processor 1001 and memory 1002, is connected by a bus 1007 for communicating information. The bus 1007 may be configured using a single bus, or may be configured using different buses between each device.
また、エンコーディング設定計算装置100は、マイクロプロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを含んで構成されてもよく、当該ハードウェアにより、各機能ブロックの一部または全てが実現されてもよい。例えば、プロセッサ1001は、これらのハードウェアの少なくとも1つを用いて実装されてもよい。 The encoding setting calculation device 100 may also be configured to include hardware such as a microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a field-programmable gate array (FPGA), and some or all of the functional blocks may be realized by this hardware. For example, the processor 1001 may be implemented using at least one of these pieces of hardware.
情報の通知は、本開示において説明した態様/実施形態に限られず、他の方法を用いて行われてもよい。例えば、情報の通知は、物理レイヤシグナリング(例えば、DCI(Downlink Control Information)、UCI(Uplink Control Information))、上位レイヤシグナリング(例えば、RRC(Radio Resource Control)シグナリング、MAC(Medium Access Control)シグナリング、報知情報(MIB(Master Information Block)、SIB(System Information Block)))、その他の信号またはこれらの組み合わせによって実施されてもよい。また、RRCシグナリングは、RRCメッセージと呼ばれてもよく、例えば、RRC接続セットアップ(RRC Connection Setup)メッセージ、RRC接続再構成(RRC Connection Reconfiguration)メッセージなどであってもよい。 The notification of information is not limited to the aspects/embodiments described in the present disclosure and may be performed using other methods. For example, the notification of information may be performed using physical layer signaling (e.g., Downlink Control Information (DCI), Uplink Control Information (UCI)), higher layer signaling (e.g., Radio Resource Control (RRC) signaling, Medium Access Control (MAC) signaling, broadcast information (Master Information Block (MIB), System Information Block (SIB))), other signals, or a combination of these. Furthermore, RRC signaling may be referred to as an RRC message, such as an RRC Connection Setup message or an RRC Connection Reconfiguration message.
本開示において説明した各態様/実施形態の処理手順、シーケンス、フローチャートなどは、矛盾の無い限り、順序を入れ替えてもよい。例えば、本開示において説明した方法については、例示的な順序を用いて様々なステップの要素を提示しており、提示した特定の順序に限定されない。 The order of the procedures, sequences, flowcharts, etc. of each aspect/embodiment described in this disclosure may be changed unless inconsistent. For example, the methods described in this disclosure present elements of various steps using an example order, and are not limited to the particular order presented.
入出力された情報等は特定の場所(例えば、メモリ)に保存されてもよいし、管理テーブルを用いて管理してもよい。入出力される情報等は、上書き、更新、または追記され得る。出力された情報等は削除されてもよい。入力された情報等は他の装置へ送信されてもよい。 Input and output information may be stored in a specific location (e.g., memory) or managed using a management table. Input and output information may be overwritten, updated, or added to. Output information may be deleted. Input information may be sent to another device.
判定は、1ビットで表される値(0か1か)によって行われてもよいし、真偽値(Boolean:trueまたはfalse)によって行われてもよいし、数値の比較(例えば、所定の値との比較)によって行われてもよい。 The determination may be made based on a value represented by a single bit (0 or 1), a Boolean value (true or false), or a numerical comparison (e.g., comparison with a predetermined value).
本開示において説明した各態様/実施形態は単独で用いてもよいし、組み合わせて用いてもよいし、実行に伴って切り替えて用いてもよい。また、所定の情報の通知(例えば、「Xであること」の通知)は、明示的に行うものに限られず、暗黙的(例えば、当該所定の情報の通知を行わない)ことによって行われてもよい。 Each aspect/embodiment described in this disclosure may be used alone, in combination, or switched depending on the implementation. Furthermore, notification of specified information (e.g., notification that "X is true") is not limited to being done explicitly, but may also be done implicitly (e.g., not notifying the specified information).
以上、本開示について詳細に説明したが、当業者にとっては、本開示が本開示中に説明した実施形態に限定されるものではないということは明らかである。本開示は、請求の範囲の記載により定まる本開示の趣旨および範囲を逸脱することなく修正および変更態様として実施することができる。したがって、本開示の記載は、例示説明を目的とするものであり、本開示に対して何ら制限的な意味を有するものではない。 Although the present disclosure has been described in detail above, it will be clear to those skilled in the art that the present disclosure is not limited to the embodiments described herein. The present disclosure can be implemented in modified and altered forms without departing from the spirit and scope of the present disclosure, which are defined by the claims. Therefore, the description of the present disclosure is intended for illustrative purposes only and does not have any limiting meaning on the present disclosure.
ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、他の名称で呼ばれるかを問わず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行スレッド、手順、機能などを意味するよう広く解釈されるべきである。 Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise.
また、ソフトウェア、命令、情報などは、伝送媒体を介して送受信されてもよい。例えば、ソフトウェアが、有線技術(同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL:Digital Subscriber Line)など)および無線技術(赤外線、マイクロ波など)の少なくとも一方を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、これらの有線技術および無線技術の少なくとも一方は、伝送媒体の定義内に含まれる。 Software, instructions, information, etc. may also be transmitted or received via a transmission medium. For example, if software is transmitted from a website, server, or other remote source using wired technologies (such as coaxial cable, fiber optic cable, twisted pair, or Digital Subscriber Line (DSL)) and/or wireless technologies (such as infrared or microwave), these wired and/or wireless technologies are included within the definition of transmission media.
本開示において説明した情報、信号などは、様々な異なる技術のいずれかを使用して表されてもよい。例えば、上記の説明全体に渡って言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、チップなどは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光子、またはこれらの任意の組み合わせによって表されてもよい。 The information, signals, etc. described in this disclosure may be represented using any of a variety of different technologies. For example, data, instructions, commands, information, signals, bits, symbols, chips, etc. that may be referred to throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or magnetic particles, optical fields or photons, or any combination thereof.
なお、本開示において説明した用語および本開示の理解に必要な用語については、同一のまたは類似する意味を有する用語と置き換えてもよい。例えば、チャネルおよびシンボルの少なくとも一方は信号(シグナリング)であってもよい。また、信号はメッセージであってもよい。また、コンポーネントキャリア(CC:Component Carrier)は、キャリア周波数、セル、周波数キャリアなどと呼ばれてもよい。 Note that terms explained in this disclosure and terms necessary for understanding this disclosure may be replaced with terms having the same or similar meanings. For example, at least one of a channel and a symbol may be a signal (signaling). Furthermore, a signal may be a message. Furthermore, a component carrier (CC) may be called a carrier frequency, a cell, a frequency carrier, etc.
また、本開示において説明した情報、パラメータなどは、絶対値を用いて表されてもよいし、所定の値からの相対値を用いて表されてもよいし、対応する別の情報を用いて表されてもよい。例えば、無線リソースはインデックスによって指示されるものであってもよい。 Furthermore, the information, parameters, etc. described in this disclosure may be expressed using absolute values, relative values from a predetermined value, or other corresponding information. For example, radio resources may be indicated by an index.
上述したパラメータに使用する名称はいかなる点においても限定的な名称ではない。さらに、これらのパラメータを使用する数式等は、本開示で明示的に開示したものと異なる場合もある。様々なチャネル(例えば、PUCCH、PDCCHなど)および情報要素は、あらゆる好適な名称によって識別できるので、これらの様々なチャネルおよび情報要素に割り当てている様々な名称は、いかなる点においても限定的な名称ではない。 The names used for the parameters described above are not intended to be limiting in any way. Furthermore, the mathematical formulas using these parameters may differ from those explicitly disclosed in this disclosure. The various channels (e.g., PUCCH, PDCCH, etc.) and information elements may be identified by any suitable names, and therefore the various names assigned to these various channels and information elements are not intended to be limiting in any way.
本開示においては、「移動局(MS:Mobile Station)」、「ユーザ端末(user terminal)」、「ユーザ装置(UE:User Equipment)」、「端末」などの用語は、互換的に使用され得る。 In this disclosure, terms such as "Mobile Station (MS)," "user terminal," "User Equipment (UE)," and "terminal" may be used interchangeably.
移動局は、当業者によって、加入者局、モバイルユニット、加入者ユニット、ワイヤレスユニット、リモートユニット、モバイルデバイス、ワイヤレスデバイス、ワイヤレス通信デバイス、リモートデバイス、モバイル加入者局、アクセス端末、モバイル端末、ワイヤレス端末、リモート端末、ハンドセット、ユーザエージェント、モバイルクライアント、クライアント、またはいくつかの他の適切な用語で呼ばれる場合もある。 A mobile station may also be referred to by those skilled in the art as a subscriber station, mobile unit, subscriber unit, wireless unit, remote unit, mobile device, wireless device, wireless communication device, remote device, mobile subscriber station, access terminal, mobile terminal, wireless terminal, remote terminal, handset, user agent, mobile client, client, or some other suitable terminology.
本開示で使用する「判断(determining)」、「決定(determining)」という用語は、多種多様な動作を包含する場合がある。「判断」、「決定」は、例えば、判定(judging)、計算(calculating)、算出(computing)、処理(processing)、導出(deriving)、調査(investigating)、探索(looking up、search、inquiry)(例えば、テーブル、データベースまたは別のデータ構造での探索)、確認(ascertaining)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、受信(receiving)(例えば、情報を受信すること)、送信(transmitting)(例えば、情報を送信すること)、入力(input)、出力(output)、アクセス(accessing)(例えば、メモリ中のデータにアクセスすること)した事を「判断」「決定」したとみなす事などを含み得る。また、「判断」、「決定」は、解決(resolving)、選択(selecting)、選定(choosing)、確立(establishing)、比較(comparing)などした事を「判断」「決定」したとみなす事を含み得る。つまり、「判断」「決定」は、何らかの動作を「判断」「決定」したとみなす事を含み得る。また、「判断(決定)」は、「想定する(assuming)」、「期待する(expecting)」、「みなす(considering)」などで読み替えられてもよい。 As used in this disclosure, the terms "determining" and "determining" may encompass a wide variety of actions. "Determining" and "determining" may include, for example, judging, calculating, computing, processing, deriving, investigating, looking up, searching, inquiring (e.g., searching a table, database, or other data structure), and ascertaining something that is considered a "determination." Also, "determining" and "determining" may include receiving (e.g., receiving information), transmitting (e.g., sending information), input, output, accessing (e.g., accessing data in memory), and other actions that are considered a "determination." Furthermore, "judgment" and "decision" can include regarding actions such as resolving, selecting, choosing, establishing, and comparing as having been "judgment" or "decision." In other words, "judgment" and "decision" can include regarding some action as having been "judgment" or "decision." Furthermore, "judgment (decision)" can be interpreted as "assuming," "expecting," "considering," etc.
「接続された(connected)」、「結合された(coupled)」という用語、またはこれらのあらゆる変形は、2またはそれ以上の要素間の直接的または間接的なあらゆる接続または結合を意味し、互いに「接続」または「結合」された2つの要素間に1またはそれ以上の中間要素が存在することを含むことができる。要素間の結合または接続は、物理的なものであっても、論理的なものであっても、或いはこれらの組み合わせであってもよい。例えば、「接続」は「アクセス」で読み替えられてもよい。本開示で使用する場合、2つの要素は、1またはそれ以上の電線、ケーブルおよびプリント電気接続の少なくとも一つを用いて、並びにいくつかの非限定的かつ非包括的な例として、無線周波数領域、マイクロ波領域および光(可視および不可視の両方)領域の波長を有する電磁エネルギーなどを用いて、互いに「接続」または「結合」されると考えることができる。 The terms "connected," "coupled," or any variation thereof, refer to any direct or indirect connection or coupling between two or more elements, and may include the presence of one or more intermediate elements between two elements that are "connected" or "coupled" to each other. The coupling or connection between elements may be physical, logical, or a combination thereof. For example, "connected" may be read as "access." As used in this disclosure, two elements may be considered to be "connected" or "coupled" to each other using one or more wires, cables, and/or printed electrical connections, as well as electromagnetic energy having wavelengths in the radio frequency range, microwave range, and optical (both visible and invisible) range, as some non-limiting and non-exhaustive examples.
本開示において使用する「に基づいて」という記載は、別段に明記されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という記載は、「のみに基づいて」と「に少なくとも基づいて」の両方を意味する。 As used in this disclosure, the phrase "based on" does not mean "based only on," unless expressly stated otherwise. In other words, the phrase "based on" means both "based only on" and "based at least on."
本開示において使用する「第1の」、「第2の」などの呼称を使用した要素へのいかなる参照も、それらの要素の量または順序を全般的に限定しない。これらの呼称は、2つ以上の要素間を区別する便利な方法として本開示において使用され得る。したがって、第1および第2の要素への参照は、2つの要素のみが採用され得ること、または何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。 As used in this disclosure, any reference to an element using a designation such as "first," "second," etc. does not generally limit the quantity or order of those elements. These designations may be used in this disclosure as a convenient method of distinguishing between two or more elements. Thus, a reference to a first and a second element does not imply that only two elements may be employed or that the first element must in some way precede the second element.
本開示において、「含む(include)」、「含んでいる(including)」およびそれらの変形が使用されている場合、これらの用語は、用語「備える(comprising)」と同様に、包括的であることが意図される。さらに、本開示において使用されている用語「または(or)」は、排他的論理和ではないことが意図される。 When the terms "include," "including," and variations thereof are used in this disclosure, these terms are intended to be inclusive, similar to the term "comprising." Furthermore, when the term "or" is used in this disclosure, it is not intended to be an exclusive or.
本開示において、例えば、英語でのa, anおよびtheのように、翻訳により冠詞が追加された場合、本開示は、これらの冠詞の後に続く名詞が複数形であることを含んでもよい。 In this disclosure, where articles are added by translation, such as a, an, and the in English, this disclosure may include the noun following these articles being plural.
本開示において、「AとBが異なる」という用語は、「AとBが互いに異なる」ことを意味してもよい。なお、当該用語は、「AとBがそれぞれCと異なる」ことを意味してもよい。「離れる」、「結合される」などの用語も、「異なる」と同様に解釈されてもよい。 In this disclosure, the term "A and B are different" may mean "A and B are different from each other." It should be noted that the term may also mean "A and B are each different from C." Terms such as "separate" and "combined" may also be interpreted in the same way as "different."
100…エンコーディング設定計算装置、200…webRTCサーバ、300…配信サーバ、400…クライアント端末、101…スループットDB、102…エンコーディング設定更新判定ユニット、103…エンコーディング設定計算ユニット。 100...Encoding setting calculation device, 200...WebRTC server, 300...Distribution server, 400...Client terminal, 101...Throughput DB, 102...Encoding setting update determination unit, 103...Encoding setting calculation unit.
Claims (7)
判定結果を元に、エンコーディング設定計算を行うエンコーディング設定計算部と、
を備え、
前記エンコーディング設定計算部は、
エンコーディング設定に応じたユーザのデータ配信に対する効用と最低エンコーディング設定以下のスループットを経験するユーザの効用の損失とに基づいて、エンコーディング設定計算を行う、通信情報最適化装置。 an encoding setting update determination unit that determines whether or not an encoding setting needs to be updated based on throughput information of the client terminal;
an encoding setting calculation unit that calculates encoding settings based on the determination result;
Equipped with
The encoding setting calculation unit:
A communication information optimization device that performs encoding setting calculations based on a user's utility for data delivery according to the encoding setting and a loss of utility for a user who experiences throughput below the minimum encoding setting .
をさらに備える、請求項1に記載の通信情報最適化装置。 an acquisition unit that acquires throughput information of one or more client terminals from a relay server that receives data from a distribution server and distributes the data to the one or more client terminals;
The communication information optimization device according to claim 1 , further comprising:
請求項2に記載の通信情報最適化装置。 the encoding setting update determination unit determines whether to update the encoding setting based on current throughput information and most recently acquired throughput information.
The communication information optimization device according to claim 2 .
請求項3に記載の通信情報最適化装置。 the encoding setting update determination unit obtains a throughput distribution from the throughput information, and determines whether to update the encoding setting based on the throughput distribution.
The communication information optimization device according to claim 3 .
前記効用を定義した関数の出力値と、前記損失を定義した関数の出力値との差分を最大化したときの値に基づいてエンコーディング設定計算を行う、
請求項1に記載の通信情報最適化装置。 The encoding setting calculation unit:
An encoding setting calculation is performed based on a value obtained by maximizing a difference between an output value of the function that defines the utility and an output value of the function that defines the loss.
The communication information optimization device according to claim 1 .
判定結果を元に、エンコーディング設定計算を行うエンコーディング設定計算部と、
を備え、
前記エンコーディング設定計算部は、
あるエンコーディング設定におけるエンコーディングコストと、ネットワークにおける最大帯域とに基づいて複数のエンコーディング設定計算を行う、通信情報最適化装置。 an encoding setting update determination unit that determines whether or not an encoding setting needs to be updated based on throughput information of the client terminal;
an encoding setting calculation unit that calculates encoding settings based on the determination result;
Equipped with
The encoding setting calculation unit:
A communication information optimization device that performs a plurality of encoding setting calculations based on an encoding cost for a certain encoding setting and a maximum bandwidth in a network.
請求項1~6のいずれか一項に記載の通信情報最適化装置。
The encoding settings include at least bit rate settings, and settings for at least one or a combination of a video encoding method, an audio encoding method, a video bit rate, an audio bit rate, a resolution, and a frame rate.
The communication information optimization device according to any one of claims 1 to 6 .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021182682A JP7787692B2 (en) | 2021-11-09 | 2021-11-09 | Communication Information Optimizer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021182682A JP7787692B2 (en) | 2021-11-09 | 2021-11-09 | Communication Information Optimizer |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023070477A JP2023070477A (en) | 2023-05-19 |
| JP7787692B2 true JP7787692B2 (en) | 2025-12-17 |
Family
ID=86331468
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021182682A Active JP7787692B2 (en) | 2021-11-09 | 2021-11-09 | Communication Information Optimizer |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7787692B2 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012530469A (en) | 2009-06-16 | 2012-11-29 | クゥアルコム・インコーポレイテッド | Managing video adaptation algorithms |
| US20200106815A1 (en) | 2018-10-01 | 2020-04-02 | At&T Intellectual Property I, L.P. | Method and apparatus for streaming video applications in cellular networks |
-
2021
- 2021-11-09 JP JP2021182682A patent/JP7787692B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012530469A (en) | 2009-06-16 | 2012-11-29 | クゥアルコム・インコーポレイテッド | Managing video adaptation algorithms |
| US20200106815A1 (en) | 2018-10-01 | 2020-04-02 | At&T Intellectual Property I, L.P. | Method and apparatus for streaming video applications in cellular networks |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023070477A (en) | 2023-05-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6754734B2 (en) | Resource management device in RAN slice and resource management method in RAN slice | |
| US20240113976A1 (en) | Quality of experience (qoe) optimization of device and network configuration | |
| WO2018034321A1 (en) | Slice management system and slice management method | |
| WO2015101092A1 (en) | Transmission mechanism adjusting method, server and client | |
| WO2018173564A1 (en) | Slice management device and slice management method | |
| CN112314003A (en) | Cellular telecommunications network including multiple network slices | |
| CN112868265A (en) | Network resource management method, management device, electronic device and storage medium | |
| KR20200077516A (en) | Communication quality adjustment system | |
| US20040105458A1 (en) | Communication control method, server apparatus, and client apparatus | |
| EP3235258B1 (en) | Adjusting quality level of media streaming | |
| JP2018056868A (en) | Device, method and system for slice management | |
| US10349344B2 (en) | Network element selection method and network element selector | |
| JP2018186450A (en) | Communication control method | |
| JP2020025210A (en) | Resource allocation device and resource allocation method | |
| JP7787692B2 (en) | Communication Information Optimizer | |
| WO2016161647A1 (en) | Base station cell access method and terminal, and base station | |
| JP7053846B2 (en) | Communication control device, selection device, communication control method and selection method | |
| WO2019159372A1 (en) | Information transfer method and node group | |
| EP4169174A1 (en) | Beam management for user equipment in a network | |
| WO2020158094A1 (en) | Information processing device, server device, and information processing system | |
| CN115175197B (en) | Data transmission method, data transmission device, storage medium and electronic device | |
| WO2020031303A1 (en) | Communication connection device and communication connection method | |
| CN117676724A (en) | Network access methods, devices, equipment and storage media | |
| WO2019035287A1 (en) | Communication control method and communication system | |
| CN114244847A (en) | Network switching method, device, computer-readable storage medium and device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240805 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250728 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250805 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250912 |
|
| 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: 20251118 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20251205 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7787692 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |