<第1の実施形態>
[構成の説明]
以下、本発明の第1の実施形態を、図面を参照して説明する。図1は、本発明による映像再生システム10の第1の実施形態の構成例を示すブロック図である。
図1に示す映像再生システム10は、通信ネットワークを介して配信された映像の再生において、配信端末から配信された映像データの通信ネットワーク変動等による到着遅延やバースト到着が発生しても、映像の再生停止を防いでユーザにとっての体感品質を維持する映像再生システムである。なお、バースト到着は、一度に大量の映像データがまとまって到着する事象である。
図1に示すように、本実施形態の映像再生システム10は、配信端末100と、再生端末200と、通信ネットワーク300とを含む。配信端末100は、通信ネットワーク300を介して再生端末200と通信可能に接続されている。
本実施形態の配信端末100および再生端末200は、例えばネットワークインタフェースカード等の通信装置を備えたパーソナルコンピュータである。また、配信端末100および再生端末200は、パーソナルコンピュータ以外の端末装置でもよい。
また、本実施形態の通信ネットワーク300は、例えばインターネットやモバイルネットワーク等のWAN(Wide Area Network)で構成される通信ネットワークである。
また、本実施形態において配信端末100から再生端末200に伝送されるデータは、例えば配信端末100がキャプチャした映像データが符号化されたストリーム情報である。
図1に示すように、配信端末100は、符号化部101と、送信部102と、スループット計測部103と、パラメータ決定部104とを含む。
符号化部101は、指定されたパラメータが設定されたエンコーダ(図示せず)を用いて、配信対象の映像フレームを符号化する機能を有する。
送信部102は、符号化部101により符号化された映像フレームを、通信ネットワーク300を介して再生端末200に送信する機能を有する。送信部102は、例えば符号化された映像フレームをTCPで送信する。
スループット計測部103は、送信部102による送信のスループットを計測する機能を有する。また、パラメータ決定部104は、スループット計測部103による計測結果に基づいて、次の映像フレームを符号化するエンコーダに設定されるパラメータを決定する機能を有する。
なお、本実施形態の映像再生システム10に含まれる配信端末100は、符号化された映像フレームを送信する送信部102のみを含む単純な配信端末でもよい。
また、図1に示すように、再生端末200は、受信部201と、復号部202と、映像フレームバッファリング部203と、受信間隔計測部204と、第2の閾値決定部205と、フレーム表示時間決定部206と、フレーム表示部207とを含む。
受信部201は、配信端末100から配信される符号化された映像フレームを受信する機能を有する。また、復号部202は、受信部201により受信された、符号化された映像フレームを復号する機能を有する。
映像フレームバッファリング部203は、復号部202により復号された映像フレームを再生バッファにバッファリングする機能を有する。映像フレームバッファリング部203は、再生バッファを有する。図1に示す映像フレームバッファリング部203の下に位置する複数の矩形が、バッファリングされた映像フレームを表す。
受信間隔計測部204は、受信部201により受信された映像フレームの、再生端末200への到着の間隔を計測する機能を有する。また、第2の閾値決定部205は、受信間隔計測部204による到着間隔の計測値に基づいて、後述する第2の閾値を決定する機能を有する。
フレーム表示時間決定部206は、映像フレームの表示時間を決定する機能を有する。フレーム表示時間決定部206は、予め与えられる第1の閾値、第2の閾値決定部205から与えられる第2の閾値、および映像フレームバッファリング部203にバッファリングされている映像フレームの再生バッファ時間に基づいて、後述するように映像フレームの表示時間を決定する。なお、本実施形態の第1の閾値は、映像の撮影が開始されてから、撮影された映像が視聴可能な状態になるまでの遅延目標時間である。
フレーム表示部207は、映像フレームバッファリング部203からバッファリングされている映像フレームを取り出し、フレーム表示時間決定部206が決定した映像フレームの表示時間だけ取り出された映像フレームを表示する機能を有する。
[動作の説明]
以下、本実施形態の映像再生システム10の再生端末200の動作を図2〜図4を参照して説明する。
最初に、再生端末200の受信部201による受信処理を説明する。図2は、受信部201による受信処理の動作を示すフローチャートである。
受信部201は、配信端末100から配信されたi番目の映像フレーム(i = 1, 2, ・・・, n)を受信する(ステップS101)。以下、i番目の映像フレームを「フレームi」ともいう。
次いで、受信部201は、フレームiが受信された時刻をt(i)として保持する。また、受信部201は、フレームiに含まれるタイムスタンプpts_iを取得する(ステップS102)。
次いで、受信部201は、フレームiに設定されたフレームレートfps_iを算出する(ステップS103)。図2に示すように、受信部201は、フレームレートfps_iを以下の式で算出する。
fps_i = 1000 / (pts_i - pts_(i-1)) [fps]・・・式(1)
なお、fps(frames per second)は、式(1)で算出されるfps_iの単位である。また、フレームレートの算出方法は、タイムスタンプの種類に応じて変更される。受信部201は、ステップS103で式(1)以外の式でフレームレートfps_iを算出してもよい。
受信部201は、受信時刻t(i)およびフレームレートfps_iを保持する。保持した後、受信部201は、受信されたi番目の映像フレームがn番目の映像フレームであるか否かを確認する(ステップS104)。
i<nである場合、すなわち映像フレームがn番目の映像フレームでない場合(ステップS104におけるTrue)、受信部201は、iに1を加算する(ステップS105)。次いで、受信部201は、再度ステップS101の処理を行う。
i<nでない場合、すなわち映像フレームがn番目の映像フレームである場合(ステップS104におけるFalse)、受信部201は、受信処理を終了する。
上記のように、受信部201は、映像フレームに設定されているタイムスタンプの差分を基に、受信されたi番目の映像フレームのフレームレートfps_iを算出する。算出されるフレームレートの単位は、例えばfpsである。
具体的な算出方法として、例えば、実時間に対応したタイムスタンプが映像フレームに設定されている場合、式(1)で表現される算出方法が用いられる。ただし、i = 1の時、fps_i = 1とする。
また、タイムスタンプの設定形式は、符号化部101が用いるエンコーダに依存する。すなわち、i番目の映像フレームのフレームレートfps_iの算出方法も、符号化部101が用いるエンコーダに依存する。
次に、再生端末200の第2の閾値決定部205による閾値決定処理を説明する。図3は、第2の閾値決定部205による閾値決定処理の動作を示すフローチャートである。
再生端末200の受信部201がi番目の映像フレームを受信した時、上述したようにi番目の映像フレームの到着時刻は、受信時刻t(i)として受信部201に保持される。
第2の閾値決定部205は、受信されたi番目の映像フレームに関して、受信間隔interval_iを算出する(ステップS201)。図3に示すように、第2の閾値決定部205は、受信間隔interval_iを以下の式で算出する。
interval_i = t(i) - t(i-1) [sec]・・・式(2)
次いで、受信間隔計測部204は、受信部201からi番目の映像フレームのフレームレートfps_iを受け取り、i番目の映像フレームの到着遅延Ad_iを算出する(ステップS202)。図3に示すように、受信間隔計測部204は、到着遅延Ad_iを以下の式で算出する。
Ad_i = interval_i - (1/fps_i) [sec] ・・・式(3)
ただし、受信間隔計測部204は、i = 1の時、Ad_i = 0とする。また、算出されたAd_iが負の値である時、受信間隔計測部204は、Ad_i = 0とする。
第2の閾値決定部205は、ステップS202で算出された映像フレームの到着遅延Ad_iを受信間隔計測部204から受け取る。次いで、第2の閾値決定部205は、受け取った到着遅延Ad_iと、(i-1)番目の映像フレームに関する第2の閾値p_lower_(i-1)との大小関係を確認する(ステップS203)。
p_lower_(i-1) <= Ad_iである場合(ステップS203におけるFalse)、第2の閾値決定部205は、図3に示すようにi番目の映像フレームに関する第2の閾値p_lower_iを以下の式で算出する(ステップS204)。
p_lower_i = coef_2 * p_lower_(i-1) + (1.0 - coef_2) * Ad_i・・・式(4)
p_lower_(i-1) > Ad_iである場合(ステップS203におけるTrue)、第2の閾値決定部205は、図3に示すようにi番目の映像フレームに関する第2の閾値p_lower_iを以下の式で算出する(ステップS205)。
p_lower_i = coef_1 * p_lower_(i-1) + (1.0 - coef_1) * Ad_i・・・式(5)
なお、式(4)におけるcoef_2、および式(5)におけるcoef_1は、それぞれ任意のパラメータである。具体的には、例えばcoef_1 = 0.95、coef_2 = 0.2とそれぞれ設定される。
なお、i = 1の時、第2の閾値決定部205は、p_lower_i = Ad_iとする。また、算出された第2の閾値p_lower_iが予め与えられる第1の閾値p_upperを超えた場合、第2の閾値決定部205は、p_lower_i = p_upperとする。
次いで、第2の閾値決定部205は、第2の閾値p_lower_iが算出されたi番目の映像フレームがn番目の映像フレームであるか否かを確認する(ステップS206)。
i<nである場合、すなわち映像フレームがn番目の映像フレームでない場合(ステップS206におけるTrue)、第2の閾値決定部205は、iに1を加算する(ステップS207)。次いで、第2の閾値決定部205は、再度ステップS201の処理を行う。
i<nでない場合、すなわち映像フレームがn番目の映像フレームである場合(ステップS206におけるFalse)、第2の閾値決定部205は、閾値決定処理を終了する。
以下、第2の閾値決定部205による閾値決定処理におけるステップS204の処理およびステップS205の処理の意味を説明する。映像フレームバッファリング部203にバッファリングされている未再生の映像の再生バッファ時間が第2の閾値p_lowerを下回ると、表示時間係数d_coefが大きくなり、映像がスローで再生される。すなわち、ユーザにとっての体感品質が若干下がる。
第2の閾値p_lowerが小さくなると等倍速で再生される範囲が広がるが、再生バッファに格納されている映像データが枯渇するリスクも増える。第2の閾値p_lowerが大きくなると再生バッファに格納されている映像データが枯渇するリスクが減るが、等倍速で再生される範囲が狭くなる。第2の閾値決定部205は、閾値決定処理において、上記の対応関係の因子である第2の閾値p_lowerを映像フレームの到着のゆらぎに応じて動的に制御する。
具体的には、到着遅延Ad_iが第2の閾値p_lower_(i-1)より小さい場合、すなわち映像フレームの到着が遅延していない場合、再生バッファに格納されている映像データが枯渇するリスクは小さい。よって、第2の閾値決定部205は、等倍速で再生される再生バッファ時間の範囲を広げる。
等倍速で再生される範囲を広げるために、第2の閾値決定部205は、第2の閾値p_lower_iを小さくする。しかし、到着遅延Ad_iのゆらぎが大きいため、第2の閾値決定部205は、ステップS205で第2の閾値p_lower_iを、1.0に近い平滑化係数coef_1を用いて式(5)のように計算することによって平滑化する。
また、到着遅延Ad_iが第2の閾値p_lower_(i-1)以上である場合、すなわち映像フレームの到着が遅延している場合、再生バッファに格納されている映像データが枯渇するリスクは大きい。よって、第2の閾値決定部205は、等倍速で再生される再生バッファ時間の範囲を狭める。
等倍速で再生される範囲を狭めるために、第2の閾値決定部205は、第2の閾値p_lower_iを大きくする。しかし、一般的に再生バッファに格納されている映像データの枯渇による再生停止が生じると、再生速度の微小な変化がユーザにとっての体感品質に及ぼす影響度は大きい。
上記の場合、第2の閾値決定部205は、第2の閾値p_lower_iを到着遅延Ad_iに追従するように増加させるため、ステップS204で第2の閾値p_lower_iを、0.0に近い平滑化係数coef_2を用いて式(4)のように計算することによって平滑化する。その理由は、等倍速で再生される再生バッファ時間の範囲が広げられやすくするためである。
すなわち、第2の閾値決定部205は、直近のデータの方が重視される指数平滑移動平均法を用いて第2の閾値p_lower_iを算出している。
次に、再生端末200のフレーム表示時間決定部206による表示時間決定処理を説明する。図4は、フレーム表示時間決定部206による表示時間決定処理の動作を示すフローチャートである。
表示時間決定処理において、フレーム表示時間決定部206は、予め与えられる第1の閾値p_upperと、映像フレームバッファリング部203が有する再生バッファ時間p_iを比較する。また、フレーム表示時間決定部206は、第2の閾値決定部205から与えられる第2の閾値p_lower_iと、再生バッファ時間p_iを比較する。比較の結果に基づいて、フレーム表示時間決定部206は、表示時間係数d_coefを決定する。
フレーム表示時間決定部206には、第1の閾値p_upperが入力として与えられる。また、フレーム表示時間決定部206には、第2の閾値決定部205から第2の閾値p_lower_iが与えられる(ステップS301)。なお、本例において、第1の閾値p_upperの単位、および第2の閾値p_lower_iの単位は秒(sec)である。
次いで、映像フレームバッファリング部203は、再生バッファ時間p_iを算出する(ステップS302)。ステップS103の処理で算出されたi番目の映像フレームに設定されているフレームレートfps_iの逆数が、i番目の映像フレームの表示時間disp_i、すなわち再生バッファ時間p_iに相当する。
よって、映像フレームバッファリング部203に格納されている映像フレームの集合をBとすると、映像フレームバッファリング部203は、再生バッファ時間p_iを以下の式で算出する。
なお、本例において、表示時間disp_iの単位、および再生バッファ時間p_iの単位は秒(sec)である。フレーム表示時間決定部206は、ステップS302で算出された再生バッファ時間p_iを映像フレームバッファリング部203から受け取る。
次いで、フレーム表示時間決定部206は、受け取った再生バッファ時間p_iと、予め与えられる第1の閾値p_upperとの大小関係を確認する(ステップS303)。
p_upper < p_iである場合(ステップS303におけるTrue)、フレーム表示時間決定部206は、図4に示すように以下の式に従ってi番目の映像フレームに関する表示時間係数d_coefを決定する(ステップS307)。
d_coef = fast_coef・・・式(7)
p_upper >= p_iである場合(ステップS303におけるFalse)、フレーム表示時間決定部206は、受け取った再生バッファ時間p_iと、i番目の映像フレームに関する第2の閾値p_lower_iとの大小関係を確認する(ステップS304)。
p_lower_i > p_iである場合(ステップS304におけるTrue)、フレーム表示時間決定部206は、図4に示すように以下の式に従ってi番目の映像フレームに関する表示時間係数d_coefを決定する(ステップS306)。
d_coef = slow_coef・・・式(8)
p_lower_i <= p_iである場合(ステップS304におけるFalse)、フレーム表示時間決定部206は、図4に示すように以下の式に従ってi番目の映像フレームに関する表示時間係数d_coefを決定する(ステップS305)。
d_coef = 1.0・・・式(9)
映像フレームが到着する度に、表示時間係数d_coefは更新される。なお、fast_coefおよびslow_coefは、それぞれ予め与えられる係数である。具体的には、fast_coefは0より大きく1.0より小さい係数であり、slow_coefは1.0より大きい係数である。
次いで、フレーム表示時間決定部206は、表示時間係数d_coefが算出されたi番目の映像フレームがn番目の映像フレームであるか否かを確認する(ステップS308)。
i<nである場合、すなわち映像フレームがn番目の映像フレームでない場合(ステップS308におけるTrue)、フレーム表示時間決定部206は、iに1を加算する(ステップS309)。次いで、フレーム表示時間決定部206は、再度ステップS301の処理を行う。
i<nでない場合、すなわち映像フレームがn番目の映像フレームである場合(ステップS308におけるFalse)、フレーム表示時間決定部206は、表示時間決定処理を終了する。
フレーム表示部207は、映像フレームバッファリング部203に格納されている映像フレームの集合Bの先頭のフレームであるj番目のフレームを取得する。なお、jはi以下の整数である。また、フレーム表示部207は、フレーム表示時間決定部206から決定された表示時間係数d_coefを取得する。
フレーム表示部207は、取得された情報に基づいて、j番目のフレームを表示時間(disp_j * d_coef)だけ表示する。表示時間の単位は、例えば秒(sec)である。
j番目のフレームを表示した後、(j+1)番目のフレームが映像フレームバッファリング部203に格納されていれば、フレーム表示部207は、(j+1)番目のフレームの表示処理を行う。
以下、本発明の実施例を、図面を参照して説明する。本実施例では、配信端末100の動作、および再生端末200の動作を具体的な数値を用いて説明する。
本実施例では、配信端末100が再生端末200に向けて10fpsで映像配信を続ける場合を想定する。10fpsのフレームレートで映像配信が行われる場合、フレームの到着間隔は100msecである。
再生端末200の受信部201は、i番目の映像フレーム(i = 1, 2, ・・・, n)を受信した後、復号部202にi番目のフレームを入力する。復号部202は、入力されたi番目のフレームを復号し、復号されたフレームを映像フレームバッファリング部203に格納する。
映像フレームバッファリング部203が、直前にバッファリングされたi番目のフレームを含めて3フレームをバッファリングしている場合を想定する。3フレームがバッファリングされている場合の再生バッファ時間p_iは、式(6)に従って以下のように算出される。
p_i = Σ(1/fpsb) = (1/0.01) * 3 = 300 [msec]
受信間隔計測部204は、i番目のフレームの受信時刻と(i-1)番目のフレームの受信時刻との差分を受信間隔interval_iとして保持する。次いで、受信間隔計測部204は、式(3)に従って映像フレームの到着遅延Ad_iを算出する。
受信間隔interval_iが130msecである場合、受信間隔計測部204は、式(3)に従って映像フレームの到着遅延Ad_iを以下のように算出する。
Ad_i = interval_i - (1/fps_i) = 130 - 100 = 30 [msec]
次いで、第2の閾値決定部205は、(i-1)番目の映像フレームに関する第2の閾値p_lower_(i-1)と、算出された映像フレームの到着遅延Ad_iを比較する。本例において、各値が以下のように設定されている。
p_lower_(i-1) = 60 [msec]、coef_1 = 0.95、coef_2 = 0.2
すなわち、第2の閾値p_lower_(i-1)が映像フレームの到着遅延Ad_iより大きいため、第2の閾値決定部205は、式(5)に従って以下のようにi番目の映像フレームに関する第2の閾値p_lower_iを算出する。
p_lower_i = coef_1 * p_lower_(i-1) + (1.0 - coef_1) * Ad_i
= 0.95 * 60 + 0.05 * 30 = 58.5 [msec]
次いで、フレーム表示時間決定部206は、現在の再生バッファ時間p_iを、第1の閾値p_upperおよび第2の閾値p_lower_iとそれぞれ比較する。比較の結果に基づいて、フレーム表示時間決定部206は、映像フレームバッファリング部203において先頭にバッファリングされているj番目のフレームの表示時間係数d_coefを更新する。なお、jはi以下の整数である。
入力として与えられる遅延目標時間である第1の閾値p_upperが500msecである場合を想定する。現在の再生バッファ時間p_iが300msec、第2の閾値p_lower_iが58.5msecであるため、以下の関係式が成立する。
p_lower_i <= p_i <= p_upper
よって、フレーム表示時間決定部206は、図4に示す表示時間決定処理に従って表示時間係数d_coefを1.0に更新する。
次いで、フレーム表示部207は、映像フレームバッファリング部203に格納されているj番目のフレームを取り出す。また、フレーム表示部207は、フレーム表示時間決定部206から表示時間係数d_coefを取得する。取得された情報に基づいて、フレーム表示部207は、j番目のフレームの表示時間を以下のように算出する。
disp_j * d_coef = 100 * 1.0 = 100 [msec]
フレーム表示部207は、j番目のフレームを算出された表示時間、すなわち100msecだけ表示する。
次に、受信部201が(i+1)番目の映像フレームを受信し、受信間隔interval_(i+1)が220msecである場合を想定する。受信間隔interval_(i+1)が220msecであることは、i番目のフレームが受信されてから(i+1)番目のフレームが受信されるまでに220msecが経過したことを意味する。
上記の例と同様に、受信部201は、復号部202に(i+1)番目のフレームを入力する。復号部202は、入力された(i+1)番目のフレームを復号し、復号されたフレームを映像フレームバッファリング部203に格納する。
フレーム表示時間決定部206が有する表示時間係数d_coefは、1.0のままである。よって、フレーム表示部207は、j番目のフレームを表示した後、映像フレームバッファリング部203から(j+1)番目のフレームを取り出し、100msecだけ(j+1)番目のフレームを表示する。
同様に、(j+1)番目のフレームを表示した後、フレーム表示部207は、映像フレームバッファリング部203から(j+2)番目のフレームを取り出し、100msecだけ(j+2)番目のフレームを表示する。すなわち、(i+1)番目のフレームが受信された時は、(j+2)番目のフレームが表示されている最中である。具体的には、(i+1)番目のフレームが受信された時は、(j+2)番目のフレームの表示が開始されてから20msec経過した時である。
(j+2)番目のフレームの表示が開始されてから20msecが経過した段階で、最初にバッファリングされていた3フレームは既に表示されている。よって、映像フレームバッファリング部203には、直前にバッファリングされた(i+1)番目のフレームを含めて1フレームがバッファリングされている。すなわち、再生バッファ時間p_(i+1)は、式(6)に従って以下のように算出される。
p_(i+1) =Σ(1/fpsb) = (1/0.01) * 1 = 100 [msec]
受信間隔interval_(i+1)が220msecである場合、受信間隔計測部204は、式(3)に従って映像フレームの到着遅延Ad_(i+1)を以下のように算出する。
Ad_(i+1) = interval_(i+1) - (1/fps_(i+1)) = 220 - 100 = 120 [msec]
次いで、第2の閾値決定部205は、i番目の映像フレームに関する第2の閾値p_lower_iと、算出された映像フレームの到着遅延Ad_(i+1)を比較する。上記の計算でp_lower_iが58.5msecと求められたため、第2の閾値p_lower_iは、到着遅延Ad_(i+1)以下である。よって、第2の閾値決定部205は、式(4)に従って以下のように(i+1)番目の映像フレームに関する第2の閾値p_lower_(i+1)を算出する。
p_lower_(i+1) = coef_2 * p_lower_i + (1.0 - coef_2) * Ad_(i+1)
= 0.2 * 58.5 + 0.8 * 120 = 107.7 [msec]
次いで、フレーム表示時間決定部206は、映像フレームバッファリング部203において先頭にバッファリングされている(j+3)番目のフレームの表示時間係数d_coefを更新する。現在の再生バッファ時間p_(i+1)が100msec、第1の閾値p_upperが500msec、第2の閾値p_lower_(i+1)が107.7msecであるため、以下の関係式が成立する。
p_(i+1) < p_lower_(i+1)
よって、フレーム表示時間決定部206は、図4に示す表示時間決定処理に従って表示時間係数d_coefをslow_coefに更新する。fast_coef = 0.8、slow_coef = 1.2とそれぞれ設定されている場合、d_coefは、1.2に更新される。
現在表示されている(j+2)番目のフレームの表示が完了した後、フレーム表示部207は、映像フレームバッファリング部203に格納されている(j+3)番目のフレームを取り出す。また、フレーム表示部207は、フレーム表示時間決定部206から表示時間係数d_coefを取得する。取得された情報に基づいて、フレーム表示部207は、(j+3)番目のフレームの表示時間を以下のように算出する。
disp_(j+3) * d_coef = 100 * 1.2 = 120 [msec]
フレーム表示部207は、(j+3)番目のフレームを算出された表示時間、すなわち120msecだけ表示する。
以上のように、第2の閾値決定部205は、映像フレームの受信間隔に応じてフレーム表示時間が変動する閾値を動的に変更する。閾値が動的に変更されることによって、映像が等倍速で再生される再生バッファ時間の範囲が拡張されつつ、映像の再生停止の防止が実現される。
図5は、本実施形態の映像再生システム10が使用された時の映像フレームの受信間隔と第2の閾値との対応関係を示す説明図である。図5(a)は、到着フレーム数に対する到着遅延Adを示す説明図である。また、図5(b)は、到着フレーム数に対する第2の閾値Plowerを示す説明図である。
図5(a)に示す到着遅延Adの単位、および図5(b)に示す第2の閾値Plowerの単位はmsecである。図5に示すように、第2の閾値決定部205は、到着遅延、すなわち映像フレームの受信間隔が変動した時、到着遅延の変動に合わせて第2の閾値を変更する。
[効果の説明]
上記の課題を解決する本実施形態および本実施例の映像再生制御方式に従う再生端末は、符号化された映像データを受信する受信部と、符号化された映像データを復号する復号部と、復号された映像フレームをバッファリングするバッファリング部とを有する。
また、再生端末は、受信部により受信された映像フレームの到着間隔を計測する受信間隔計測部と、第1の閾値および受信間隔計測部が計測した受信間隔の変動情報に基づいた第2の閾値を用いて、表示時間を決定するフレーム表示時間決定部とを有する。
また、再生端末は、フレーム表示時間決定部から通知された表示時間だけ、バッファリングされた映像フレームを表示するフレーム表示部を有する。すなわち、再生速度が調節されることによって再生停止が防止されるため、本実施形態の映像再生制御方式に従う再生端末が使用されると、ユーザにとっての体感品質が向上する。
本実施形態の映像再生システムは、ユーザにとっての体感品質を低下させずに、再生バッファに格納されている映像データの枯渇による映像の再生停止を防ぐことができる。その理由は、再生端末200の第2の閾値決定部205が、映像フレームの到着間隔に応じて再生速度の調節用の閾値を動的に変更するためである。
具体的には、映像フレームの到着が遅延している場合、第2の閾値決定部205は、第2の閾値を大きくすることによって低速で再生される再生バッファ時間の範囲を広げ、再生バッファに格納されている映像データの枯渇による再生停止を防ぐ。また、映像フレームの到着間隔が概ね所定の間隔である場合、第2の閾値決定部205は、第2の閾値を小さくすることによって等倍速で再生される再生バッファ時間の範囲を広げ、ユーザにとっての体感品質を維持する。
よって、本実施形態の映像再生システムは、モバイルネットワークのような帯域幅の変動が激しい環境下で配信された映像が視聴される際、再生バッファに格納されている映像データの枯渇を防止しつつ、等倍速で再生される再生バッファ時間の範囲を拡張する再生制御を行う。映像再生システムは、等倍速で再生される再生バッファ時間の範囲を最大にすることも可能である。再生制御が行われることによって、ユーザにとっての体感品質の低下が防止される。
なお、本実施形態の再生端末200は、例えば、記憶媒体に格納されているプログラムに従って処理を実行するCPU(Central Processing Unit)によって実現される。すなわち受信部201、復号部202、映像フレームバッファリング部203、受信間隔計測部204、第2の閾値決定部205、フレーム表示時間決定部206、およびフレーム表示部207は、例えば、プログラム制御に従って処理を実行するCPUによって実現される。
また、本実施形態の再生端末200における各部は、ハードウェア回路によって実現されてもよい。一例として、受信部201、復号部202、映像フレームバッファリング部203、受信間隔計測部204、第2の閾値決定部205、フレーム表示時間決定部206、およびフレーム表示部207が、それぞれLSI(Large Scale Integration)で実現される。また、それらが1つのLSIで実現されていてもよい。
次に、本発明の概要を説明する。図6は、本発明による映像再生装置の概要を示すブロック図である。本発明による映像再生装置20は、映像フレームが受信された時刻の間隔である受信間隔を計測する計測部21(例えば、受信間隔計測部204)と、未再生の映像が撮影された時間である撮影時間(例えば、再生バッファ時間)と同じ時間で再生される撮影時間の下限値を計測された受信間隔に基づいて決定する決定部22(例えば、第2の閾値決定部205)とを備える。
そのような構成により、映像再生装置は、未再生の映像の枯渇を防止しつつ等倍速で再生される再生バッファ時間の範囲を拡張できる。
また、映像再生装置20は、未再生の映像が撮影時間と同じ時間で再生される撮影時間の上限値および下限値に基づいて未再生の映像の再生時間を調節する調節部(例えば、フレーム表示時間決定部206)を備えてもよい。
そのような構成により、映像再生装置は、通信ネットワークの帯域幅の変動に応じて未再生の映像の再生時間を調節できる。
また、映像再生装置20は、調節部により調節された再生時間で未再生の映像を再生する再生部(例えば、フレーム表示部207)を備えてもよい。
そのような構成により、映像再生装置は、通信ネットワークの帯域幅の変動に応じて調節された再生時間で未再生の映像を再生できる。
また、決定部22は、指数平滑移動平均法で下限値を決定してもよい。
そのような構成により、映像再生装置は、映像フレームの到着のゆらぎに応じて下限値を動的に制御できる。
また、決定部22は、第1の平滑化係数(例えば、coef_1)および第2の平滑化係数(例えば、coef_2)が用いられる指数平滑移動平均法で下限値を決定してもよい。
そのような構成により、映像再生装置は、前回制御された下限値と到着遅延との関係に応じて下限値を制御できる。
また、映像再生装置20は、受信された映像フレームを格納する格納部(例えば、映像フレームバッファリング部203)を備え、未再生の映像は、格納部に格納されている映像フレームで構成されていてもよい。
そのような構成により、映像再生装置は、現在の通信ネットワークの状態に応じてバッファリングされている映像フレームの再生速度を調節できる。