(57)【特許請求の範囲】
【請求項１】
映像フレームが受信された時刻の間隔である受信間隔を計測する計測部と、
受信された前記映像フレームを格納する格納部と、
未再生の映像が撮影された時間である撮影時間と同じ時間で再生される前記撮影時間の下限値を計測された前記受信間隔に基づいて決定する決定部と、
前記未再生の映像が前記撮影時間と同じ時間で再生される前記撮影時間の上限値および下限値に基づいて前記未再生の映像の再生時間を調節する調節部と、
前記調節部により調節された前記再生時間で前記未再生の映像を再生する再生部とを備え、
前記未再生の映像は、
前記格納部に格納されている前記映像フレームで構成されている
ことを特徴とする映像再生装置。
【請求項２】
決定部は、指数平滑移動平均法で下限値を決定する
請求項１記載の映像再生装置。
【請求項３】
決定部は、第１の平滑化係数および第２の平滑化係数が用いられる指数平滑移動平均法で下限値を決定する
請求項２記載の映像再生装置。
【請求項４】
格納部を備える映像再生装置において実行される映像再生方法であって、
前記映像再生装置は、
映像フレームが受信された時刻の間隔である受信間隔を計測し、
受信された前記映像フレームを前記格納部に格納し、
未再生の映像が撮影された時間である撮影時間と同じ時間で再生される前記撮影時間の下限値を計測された前記受信間隔に基づいて決定し、
前記未再生の映像が前記撮影時間と同じ時間で再生される前記撮影時間の上限値および下限値に基づいて前記未再生の映像の再生時間を調節し、
調節された前記再生時間で前記未再生の映像を再生し、
前記未再生の映像は、
前記格納部に格納されている前記映像フレームで構成されている
ことを特徴とする映像再生方法。
【請求項５】
映像再生装置は、指数平滑移動平均法で下限値を決定する
請求項４記載の映像再生方法。
【請求項６】
映像再生装置は、第１の平滑化係数および第２の平滑化係数が用いられる指数平滑移動平均法で下限値を決定する
請求項５記載の映像再生方法。
【請求項７】
格納部を備えるコンピュータに、
映像フレームが受信された時刻の間隔である受信間隔を計測する計測処理、
受信された前記映像フレームを前記格納部に格納する格納処理、
未再生の映像が撮影された時間である撮影時間と同じ時間で再生される前記撮影時間の下限値を計測された前記受信間隔に基づいて決定する決定処理、
前記未再生の映像が前記撮影時間と同じ時間で再生される前記撮影時間の上限値および下限値に基づいて前記未再生の映像の再生時間を調節する調節処理、および
調節された前記再生時間で前記未再生の映像を再生する再生処理を実行させるための映像再生プログラムであって、
前記未再生の映像は、
前記格納部に格納されている前記映像フレームで構成されている
映像再生プログラム。
【請求項８】
コンピュータに、
決定処理で、指数平滑移動平均法で下限値を決定させる
請求項７記載の映像再生プログラム。
【請求項９】
コンピュータに、
決定処理で、第１の平滑化係数および第２の平滑化係数が用いられる指数平滑移動平均法で下限値を決定させる
請求項８記載の映像再生プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像再生装置、映像再生方法および映像再生プログラムに関し、特に映像を配信する通信ネットワークに変動が生じた場合であっても映像の再生停止を防いでユーザにとっての体感品質を維持する映像再生装置、映像再生方法および映像再生プログラムに関する。
【背景技術】
【０００２】
通信ネットワークを介した映像配信では、例えば適応レート制御技術が用いられる。適応レート制御技術は、帯域幅の変動に合わせて配信対象の映像のビットレート（画質）を動的に変更しながら映像を配信することによって、映像データの到着の遅延による映像の再生停止を防ぐ技術である。
【０００３】
しかし、帯域幅の変動が激しい通信ネットワークを介して映像が配信される場合、映像の再生停止を防ぐためには、配信端末が配信する映像のビットレートを制御するだけでは不十分である。
【０００４】
その理由は、帯域幅の変動が激しい通信ネットワークを介して映像が配信される場合、例えば帯域幅が狭い時に、映像再生端末の再生映像用のバッファ（以下、再生バッファという。）に格納されている配信された映像データが枯渇する可能性があるためである。再生バッファに格納されている映像データが枯渇すると、映像の再生停止が発生する。
【０００５】
再生バッファに格納されている映像データの枯渇による映像の再生停止は、映像配信サービスに対して映像視聴者が感じたサービス品質である体感品質(QoE:quality of experience)を大きく下げる要因である。
【０００６】
再生バッファに格納されている映像データの枯渇による映像の再生停止が発生する問題を解決するために、例えば映像再生端末が配信された映像の再生速度を調節することによって再生停止を防ぐ映像再生制御技術が用いられる。映像再生制御技術が用いられると、映像視聴者にとっての体感品質の低下が防止される。
【０００７】
映像再生制御技術の例に、特許文献１に記載されているTCP(Transmission Control Protocol)でのデータ転送における品質を推定するTCP品質測定システムがある。特許文献１に記載されているTCP品質測定システムは、再生バッファに格納されている未再生の映像の再生時間である再生バッファ時間に予め上限値と下限値を設ける。再生バッファ時間は、未再生の映像が撮影された時間に相当する。
【０００８】
特許文献１に記載されているTCP品質測定システムは、再生バッファ時間が上限値以上の場合に未再生の映像を等倍速よりも高速で再生し、再生バッファ時間が下限値以下の場合に未再生の映像を等倍速よりも低速で再生する。また、特許文献１に記載されているTCP品質測定システムは、再生バッファ時間が下限値より大きく上限値より小さい場合に未再生の映像を等倍速で再生する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−１４０５９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載されているTCP品質測定システムにおいて、制御の最小単位は再生バッファ時間である。再生バッファ時間は、１フレームあたりの表示時間の総和である。よって、フレームレートが小さく１フレームあたりの表示時間が長い場合、各フレームに対する制御時間も長くなるため、TCP品質測定システムによる各制御の間隔は長くなる。
【００１１】
また、特許文献１に記載されているTCP品質測定システムは、予め定められた閾値を基準にして、再生バッファ時間の変動に応じて映像の再生速度を調節している。特許文献１に記載されているTCP品質測定システムには、通信ネットワークの状態の変化に応じて映像の再生速度を細かく調節することが困難であるという問題がある。
【００１２】
例えば、映像の到着の大きな遅延が発生しないことが求められるライブ映像配信等で特許文献１に記載されているTCP品質測定システムが使用された場合、TCP品質測定システムには、再生バッファに格納される未再生の映像の量を比較的小さくすることが求められる。その理由は、再生バッファに格納される未再生の映像の量が多いと、撮影されてから視聴されるまでの時間差が大きい映像が生じる可能性があるためである。
【００１３】
すなわち、ライブ映像配信等で特許文献１に記載されているTCP品質測定システムが使用された場合、閾値である上限値と下限値の差分である、映像が等倍速で再生される再生バッファ時間の範囲が縮小される。
【００１４】
映像が等倍速で再生される範囲が縮小されると、再生バッファ時間が頻繁に閾値を超えるため、映像の再生速度が度々変更される。すなわち、映像が等倍速で再生される範囲が縮小されることは、映像視聴者にとっての体感品質を下げる要因になる可能性がある。
【００１５】
また、下限値が上限値に対する極小値に変更されると、映像が等倍速で再生される範囲が広げられる。しかし、映像が等倍速で再生される範囲が広げられると、映像が低速で再生される機会が減る。
【００１６】
すなわち、帯域幅の変動が激しい通信ネットワークを介して映像が配信される場合、上記の内容が原因である再生バッファに格納されている映像データの枯渇による映像の再生停止の発生が懸念される。
【００１７】
以上のように、帯域幅の変動が激しい通信ネットワークを介した映像配信で予め定められた閾値を基準にして再生速度を制御する映像再生技術が使用される場合、再生停止の防止のために映像が等倍速で再生される範囲が縮小される。しかし、映像が等倍速で再生される範囲が縮小されると、映像視聴者にとっての体感品質が下がるという問題がある。
【００１８】
上記の内容を踏まえると、未再生の映像が枯渇しないように映像が等倍速で再生される範囲を、映像配信で使用される通信ネットワークの状態に合わせて拡張できる手法が求められている。
【００１９】
そこで、本発明は、未再生の映像の枯渇を防止しつつ等倍速で再生される再生バッファ時間の範囲を拡張できる映像再生装置、映像再生方法および映像再生プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
本発明による映像再生装置は、映像フレームが受信された時刻の間隔である受信間隔を計測する計測部と、受信された映像フレームを格納する格納部と、未再生の映像が撮影された時間である撮影時間と同じ時間で再生される撮影時間の下限値を計測された受信間隔に基づいて決定する決定部と、未再生の映像が撮影時間と同じ時間で再生される撮影時間の上限値および下限値に基づいて未再生の映像の再生時間を調節する調節部と、調節部により調節された再生時間で未再生の映像を再生する再生部とを備え、未再生の映像は、格納部に格納されている映像フレームで構成されていることを特徴とする。
【００２１】
本発明による映像再生方法は、格納部を備える映像再生装置において実行される映像再生方法であって、映像再生装置は、映像フレームが受信された時刻の間隔である受信間隔を計測し、受信された映像フレームを格納部に格納し、未再生の映像が撮影された時間である撮影時間と同じ時間で再生される撮影時間の下限値を計測された受信間隔に基づいて決定し、未再生の映像が撮影時間と同じ時間で再生される撮影時間の上限値および下限値に基づいて未再生の映像の再生時間を調節し、調節された再生時間で未再生の映像を再生し、未再生の映像は、格納部に格納されている映像フレームで構成されていることを特徴とする。
【００２２】
本発明による映像再生プログラムは、格納部を備えるコンピュータに、映像フレームが受信された時刻の間隔である受信間隔を計測する計測処理、受信された映像フレームを格納部に格納する格納処理、未再生の映像が撮影された時間である撮影時間と同じ時間で再生される撮影時間の下限値を計測された受信間隔に基づいて決定する決定処理、未再生の映像が撮影時間と同じ時間で再生される撮影時間の上限値および下限値に基づいて未再生の映像の再生時間を調節する調節処理、および調節された再生時間で未再生の映像を再生する再生処理を実行させるための映像再生プログラムであって、未再生の映像は、格納部に格納されている映像フレームで構成されていることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、未再生の映像の枯渇を防止しつつ等倍速で再生される再生バッファ時間の範囲を拡張できる。
【図面の簡単な説明】
【００２４】
【図１】本発明による映像再生システム10の第１の実施形態の構成例を示すブロック図である。
【図２】受信部201による受信処理の動作を示すフローチャートである。
【図３】第２の閾値決定部205による閾値決定処理の動作を示すフローチャートである。
【図４】フレーム表示時間決定部206による表示時間決定処理の動作を示すフローチャートである。
【図５】本実施形態の映像再生システム10が使用された時の映像フレームの受信間隔と第２の閾値との対応関係を示す説明図である。
【図６】本発明による映像再生装置の概要を示すブロック図である。
【発明を実施するための形態】
【００２５】
＜第１の実施形態＞
［構成の説明］
以下、本発明の第１の実施形態を、図面を参照して説明する。図１は、本発明による映像再生システム10の第１の実施形態の構成例を示すブロック図である。
【００２６】
図１に示す映像再生システム10は、通信ネットワークを介して配信された映像の再生において、配信端末から配信された映像データの通信ネットワーク変動等による到着遅延やバースト到着が発生しても、映像の再生停止を防いでユーザにとっての体感品質を維持する映像再生システムである。なお、バースト到着は、一度に大量の映像データがまとまって到着する事象である。
【００２７】
図１に示すように、本実施形態の映像再生システム10は、配信端末100と、再生端末200と、通信ネットワーク300とを含む。配信端末100は、通信ネットワーク300を介して再生端末200と通信可能に接続されている。
【００２８】
本実施形態の配信端末100および再生端末200は、例えばネットワークインタフェースカード等の通信装置を備えたパーソナルコンピュータである。また、配信端末100および再生端末200は、パーソナルコンピュータ以外の端末装置でもよい。
【００２９】
また、本実施形態の通信ネットワーク300は、例えばインターネットやモバイルネットワーク等のWAN(Wide Area Network)で構成される通信ネットワークである。
【００３０】
また、本実施形態において配信端末100から再生端末200に伝送されるデータは、例えば配信端末100がキャプチャした映像データが符号化されたストリーム情報である。
【００３１】
図１に示すように、配信端末100は、符号化部101と、送信部102と、スループット計測部103と、パラメータ決定部104とを含む。
【００３２】
符号化部101は、指定されたパラメータが設定されたエンコーダ（図示せず）を用いて、配信対象の映像フレームを符号化する機能を有する。
【００３３】
送信部102は、符号化部101により符号化された映像フレームを、通信ネットワーク300を介して再生端末200に送信する機能を有する。送信部102は、例えば符号化された映像フレームをTCPで送信する。
【００３４】
スループット計測部103は、送信部102による送信のスループットを計測する機能を有する。また、パラメータ決定部104は、スループット計測部103による計測結果に基づいて、次の映像フレームを符号化するエンコーダに設定されるパラメータを決定する機能を有する。
【００３５】
なお、本実施形態の映像再生システム10に含まれる配信端末100は、符号化された映像フレームを送信する送信部102のみを含む単純な配信端末でもよい。
【００３６】
また、図１に示すように、再生端末200は、受信部201と、復号部202と、映像フレームバッファリング部203と、受信間隔計測部204と、第２の閾値決定部205と、フレーム表示時間決定部206と、フレーム表示部207とを含む。
【００３７】
受信部201は、配信端末100から配信される符号化された映像フレームを受信する機能を有する。また、復号部202は、受信部201により受信された、符号化された映像フレームを復号する機能を有する。
【００３８】
映像フレームバッファリング部203は、復号部202により復号された映像フレームを再生バッファにバッファリングする機能を有する。映像フレームバッファリング部203は、再生バッファを有する。図１に示す映像フレームバッファリング部203の下に位置する複数の矩形が、バッファリングされた映像フレームを表す。
【００３９】
受信間隔計測部204は、受信部201により受信された映像フレームの、再生端末200への到着の間隔を計測する機能を有する。また、第２の閾値決定部205は、受信間隔計測部204による到着間隔の計測値に基づいて、後述する第２の閾値を決定する機能を有する。
【００４０】
フレーム表示時間決定部206は、映像フレームの表示時間を決定する機能を有する。フレーム表示時間決定部206は、予め与えられる第１の閾値、第２の閾値決定部205から与えられる第２の閾値、および映像フレームバッファリング部203にバッファリングされている映像フレームの再生バッファ時間に基づいて、後述するように映像フレームの表示時間を決定する。なお、本実施形態の第１の閾値は、映像の撮影が開始されてから、撮影された映像が視聴可能な状態になるまでの遅延目標時間である。
【００４１】
フレーム表示部207は、映像フレームバッファリング部203からバッファリングされている映像フレームを取り出し、フレーム表示時間決定部206が決定した映像フレームの表示時間だけ取り出された映像フレームを表示する機能を有する。
【００４２】
［動作の説明］
以下、本実施形態の映像再生システム10の再生端末200の動作を図２〜図４を参照して説明する。
【００４３】
最初に、再生端末200の受信部201による受信処理を説明する。図２は、受信部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）。図２に示すように、受信部201は、フレームレートfps_iを以下の式で算出する。
【００４７】
fps_i = 1000 / (pts_i - pts_(i-1)) [fps]・・・式（１）
【００４８】
なお、fps(frames per second)は、式（１）で算出されるfps_iの単位である。また、フレームレートの算出方法は、タイムスタンプの種類に応じて変更される。受信部201は、ステップS103で式（１）以外の式でフレームレート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である。
【００５３】
具体的な算出方法として、例えば、実時間に対応したタイムスタンプが映像フレームに設定されている場合、式（１）で表現される算出方法が用いられる。ただし、i = 1の時、fps_i = 1とする。
【００５４】
また、タイムスタンプの設定形式は、符号化部101が用いるエンコーダに依存する。すなわち、i番目の映像フレームのフレームレートfps_iの算出方法も、符号化部101が用いるエンコーダに依存する。
【００５５】
次に、再生端末200の第２の閾値決定部205による閾値決定処理を説明する。図３は、第２の閾値決定部205による閾値決定処理の動作を示すフローチャートである。
【００５６】
再生端末200の受信部201がi番目の映像フレームを受信した時、上述したようにi番目の映像フレームの到着時刻は、受信時刻t(i)として受信部201に保持される。
【００５７】
第２の閾値決定部205は、受信されたi番目の映像フレームに関して、受信間隔interval_iを算出する（ステップS201）。図３に示すように、第２の閾値決定部205は、受信間隔interval_iを以下の式で算出する。
【００５８】
interval_i = t(i) - t(i-1) [sec]・・・式（２）
【００５９】
次いで、受信間隔計測部204は、受信部201からi番目の映像フレームのフレームレートfps_iを受け取り、i番目の映像フレームの到着遅延Ad_iを算出する（ステップS202）。図３に示すように、受信間隔計測部204は、到着遅延Ad_iを以下の式で算出する。
【００６０】
Ad_i = interval_i - (1/fps_i) [sec] ・・・式（３）
【００６１】
ただし、受信間隔計測部204は、i = 1の時、Ad_i = 0とする。また、算出されたAd_iが負の値である時、受信間隔計測部204は、Ad_i = 0とする。
【００６２】
第２の閾値決定部205は、ステップS202で算出された映像フレームの到着遅延Ad_iを受信間隔計測部204から受け取る。次いで、第２の閾値決定部205は、受け取った到着遅延Ad_iと、(i-1)番目の映像フレームに関する第２の閾値p_lower_(i-1)との大小関係を確認する（ステップS203）。
【００６３】
p_lower_(i-1) <= Ad_iである場合（ステップS203におけるFalse）、第２の閾値決定部205は、図３に示すようにi番目の映像フレームに関する第２の閾値p_lower_iを以下の式で算出する（ステップS204）。
【００６４】
p_lower_i = coef_2 * p_lower_(i-1) + (1.0 - coef_2) * Ad_i・・・式（４）
【００６５】
p_lower_(i-1) > Ad_iである場合（ステップS203におけるTrue）、第２の閾値決定部205は、図３に示すようにi番目の映像フレームに関する第２の閾値p_lower_iを以下の式で算出する（ステップS205）。
【００６６】
p_lower_i = coef_1 * p_lower_(i-1) + (1.0 - coef_1) * Ad_i・・・式（５）
【００６７】
なお、式（４）におけるcoef_2、および式（５）におけるcoef_1は、それぞれ任意のパラメータである。具体的には、例えばcoef_1 = 0.95、coef_2 = 0.2とそれぞれ設定される。
【００６８】
なお、i = 1の時、第２の閾値決定部205は、p_lower_i = Ad_iとする。また、算出された第２の閾値p_lower_iが予め与えられる第１の閾値p_upperを超えた場合、第２の閾値決定部205は、p_lower_i = p_upperとする。
【００６９】
次いで、第２の閾値決定部205は、第２の閾値p_lower_iが算出されたi番目の映像フレームがn番目の映像フレームであるか否かを確認する（ステップS206）。
【００７０】
i<nである場合、すなわち映像フレームがn番目の映像フレームでない場合（ステップS206におけるTrue）、第２の閾値決定部205は、iに1を加算する（ステップS207）。次いで、第２の閾値決定部205は、再度ステップS201の処理を行う。
【００７１】
i<nでない場合、すなわち映像フレームがn番目の映像フレームである場合（ステップS206におけるFalse）、第２の閾値決定部205は、閾値決定処理を終了する。
【００７２】
以下、第２の閾値決定部205による閾値決定処理におけるステップS204の処理およびステップS205の処理の意味を説明する。映像フレームバッファリング部203にバッファリングされている未再生の映像の再生バッファ時間が第２の閾値p_lowerを下回ると、表示時間係数d_coefが大きくなり、映像がスローで再生される。すなわち、ユーザにとっての体感品質が若干下がる。
【００７３】
第２の閾値p_lowerが小さくなると等倍速で再生される範囲が広がるが、再生バッファに格納されている映像データが枯渇するリスクも増える。第２の閾値p_lowerが大きくなると再生バッファに格納されている映像データが枯渇するリスクが減るが、等倍速で再生される範囲が狭くなる。第２の閾値決定部205は、閾値決定処理において、上記の対応関係の因子である第２の閾値p_lowerを映像フレームの到着のゆらぎに応じて動的に制御する。
【００７４】
具体的には、到着遅延Ad_iが第２の閾値p_lower_(i-1)より小さい場合、すなわち映像フレームの到着が遅延していない場合、再生バッファに格納されている映像データが枯渇するリスクは小さい。よって、第２の閾値決定部205は、等倍速で再生される再生バッファ時間の範囲を広げる。
【００７５】
等倍速で再生される範囲を広げるために、第２の閾値決定部205は、第２の閾値p_lower_iを小さくする。しかし、到着遅延Ad_iのゆらぎが大きいため、第２の閾値決定部205は、ステップS205で第２の閾値p_lower_iを、1.0に近い平滑化係数coef_1を用いて式（５）のように計算することによって平滑化する。
【００７６】
また、到着遅延Ad_iが第２の閾値p_lower_(i-1)以上である場合、すなわち映像フレームの到着が遅延している場合、再生バッファに格納されている映像データが枯渇するリスクは大きい。よって、第２の閾値決定部205は、等倍速で再生される再生バッファ時間の範囲を狭める。
【００７７】
等倍速で再生される範囲を狭めるために、第２の閾値決定部205は、第２の閾値p_lower_iを大きくする。しかし、一般的に再生バッファに格納されている映像データの枯渇による再生停止が生じると、再生速度の微小な変化がユーザにとっての体感品質に及ぼす影響度は大きい。
【００７８】
上記の場合、第２の閾値決定部205は、第２の閾値p_lower_iを到着遅延Ad_iに追従するように増加させるため、ステップS204で第２の閾値p_lower_iを、0.0に近い平滑化係数coef_2を用いて式（４）のように計算することによって平滑化する。その理由は、等倍速で再生される再生バッファ時間の範囲が広げられやすくするためである。
【００７９】
すなわち、第２の閾値決定部205は、直近のデータの方が重視される指数平滑移動平均法を用いて第２の閾値p_lower_iを算出している。
【００８０】
次に、再生端末200のフレーム表示時間決定部206による表示時間決定処理を説明する。図４は、フレーム表示時間決定部206による表示時間決定処理の動作を示すフローチャートである。
【００８１】
表示時間決定処理において、フレーム表示時間決定部206は、予め与えられる第１の閾値p_upperと、映像フレームバッファリング部203が有する再生バッファ時間p_iを比較する。また、フレーム表示時間決定部206は、第２の閾値決定部205から与えられる第２の閾値p_lower_iと、再生バッファ時間p_iを比較する。比較の結果に基づいて、フレーム表示時間決定部206は、表示時間係数d_coefを決定する。
【００８２】
フレーム表示時間決定部206には、第１の閾値p_upperが入力として与えられる。また、フレーム表示時間決定部206には、第２の閾値決定部205から第２の閾値p_lower_iが与えられる（ステップS301）。なお、本例において、第１の閾値p_upperの単位、および第２の閾値p_lower_iの単位は秒(sec)である。
【００８３】
次いで、映像フレームバッファリング部203は、再生バッファ時間p_iを算出する（ステップS302）。ステップS103の処理で算出されたi番目の映像フレームに設定されているフレームレートfps_iの逆数が、i番目の映像フレームの表示時間disp_i、すなわち再生バッファ時間p_iに相当する。
【００８４】
よって、映像フレームバッファリング部203に格納されている映像フレームの集合をBとすると、映像フレームバッファリング部203は、再生バッファ時間p_iを以下の式で算出する。
【００８５】
【数１】
0006711120.tif 000002
【００８６】
なお、本例において、表示時間disp_iの単位、および再生バッファ時間p_iの単位は秒(sec)である。フレーム表示時間決定部206は、ステップS302で算出された再生バッファ時間p_iを映像フレームバッファリング部203から受け取る。
【００８７】
次いで、フレーム表示時間決定部206は、受け取った再生バッファ時間p_iと、予め与えられる第１の閾値p_upperとの大小関係を確認する（ステップS303）。
【００８８】
p_upper < p_iである場合（ステップS303におけるTrue）、フレーム表示時間決定部206は、図４に示すように以下の式に従ってi番目の映像フレームに関する表示時間係数d_coefを決定する（ステップS307）。
【００８９】
d_coef = fast_coef・・・式（７）
【００９０】
p_upper >= p_iである場合（ステップS303におけるFalse）、フレーム表示時間決定部206は、受け取った再生バッファ時間p_iと、i番目の映像フレームに関する第２の閾値p_lower_iとの大小関係を確認する（ステップS304）。
【００９１】
p_lower_i > p_iである場合（ステップS304におけるTrue）、フレーム表示時間決定部206は、図４に示すように以下の式に従ってi番目の映像フレームに関する表示時間係数d_coefを決定する（ステップS306）。
【００９２】
d_coef = slow_coef・・・式（８）
【００９３】
p_lower_i <= p_iである場合（ステップS304におけるFalse）、フレーム表示時間決定部206は、図４に示すように以下の式に従ってi番目の映像フレームに関する表示時間係数d_coefを決定する（ステップS305）。
【００９４】
d_coef = 1.0・・・式（９）
【００９５】
映像フレームが到着する度に、表示時間係数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番目のフレームを含めて３フレームをバッファリングしている場合を想定する。３フレームがバッファリングされている場合の再生バッファ時間p_iは、式（６）に従って以下のように算出される。
【０１０６】
p_i = Σ(1/fpsb) = (1/0.01) * 3 = 300 [msec] 
【０１０７】
受信間隔計測部204は、i番目のフレームの受信時刻と(i-1)番目のフレームの受信時刻との差分を受信間隔interval_iとして保持する。次いで、受信間隔計測部204は、式（３）に従って映像フレームの到着遅延Ad_iを算出する。
【０１０８】
受信間隔interval_iが130msecである場合、受信間隔計測部204は、式（３）に従って映像フレームの到着遅延Ad_iを以下のように算出する。
【０１０９】
Ad_i = interval_i - (1/fps_i) = 130 - 100 = 30 [msec] 
【０１１０】
次いで、第２の閾値決定部205は、(i-1)番目の映像フレームに関する第２の閾値p_lower_(i-1)と、算出された映像フレームの到着遅延Ad_iを比較する。本例において、各値が以下のように設定されている。
【０１１１】
p_lower_(i-1) = 60 [msec]、coef_1 = 0.95、coef_2 = 0.2
【０１１２】
すなわち、第２の閾値p_lower_(i-1)が映像フレームの到着遅延Ad_iより大きいため、第２の閾値決定部205は、式（５）に従って以下のようにi番目の映像フレームに関する第２の閾値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を、第１の閾値p_upperおよび第２の閾値p_lower_iとそれぞれ比較する。比較の結果に基づいて、フレーム表示時間決定部206は、映像フレームバッファリング部203において先頭にバッファリングされているj番目のフレームの表示時間係数d_coefを更新する。なお、jはi以下の整数である。
【０１１５】
入力として与えられる遅延目標時間である第１の閾値p_upperが500msecである場合を想定する。現在の再生バッファ時間p_iが300msec、第２の閾値p_lower_iが58.5msecであるため、以下の関係式が成立する。
【０１１６】
p_lower_i <= p_i <= p_upper
【０１１７】
よって、フレーム表示時間決定部206は、図４に示す表示時間決定処理に従って表示時間係数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が経過した段階で、最初にバッファリングされていた３フレームは既に表示されている。よって、映像フレームバッファリング部203には、直前にバッファリングされた(i+1)番目のフレームを含めて１フレームがバッファリングされている。すなわち、再生バッファ時間p_(i+1)は、式（６）に従って以下のように算出される。
【０１２６】
p_(i+1) =Σ(1/fpsb) = (1/0.01) * 1 = 100 [msec] 
【０１２７】
受信間隔interval_(i+1)が220msecである場合、受信間隔計測部204は、式（３）に従って映像フレームの到着遅延Ad_(i+1)を以下のように算出する。
【０１２８】
Ad_(i+1) = interval_(i+1) - (1/fps_(i+1)) = 220 - 100 = 120 [msec] 
【０１２９】
次いで、第２の閾値決定部205は、i番目の映像フレームに関する第２の閾値p_lower_iと、算出された映像フレームの到着遅延Ad_(i+1)を比較する。上記の計算でp_lower_iが58.5msecと求められたため、第２の閾値p_lower_iは、到着遅延Ad_(i+1)以下である。よって、第２の閾値決定部205は、式（４）に従って以下のように(i+1)番目の映像フレームに関する第２の閾値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、第１の閾値p_upperが500msec、第２の閾値p_lower_(i+1)が107.7msecであるため、以下の関係式が成立する。
【０１３２】
p_(i+1) < p_lower_(i+1) 
【０１３３】
よって、フレーム表示時間決定部206は、図４に示す表示時間決定処理に従って表示時間係数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だけ表示する。
【０１３７】
以上のように、第２の閾値決定部205は、映像フレームの受信間隔に応じてフレーム表示時間が変動する閾値を動的に変更する。閾値が動的に変更されることによって、映像が等倍速で再生される再生バッファ時間の範囲が拡張されつつ、映像の再生停止の防止が実現される。
【０１３８】
図５は、本実施形態の映像再生システム10が使用された時の映像フレームの受信間隔と第２の閾値との対応関係を示す説明図である。図５（ａ）は、到着フレーム数に対する到着遅延Adを示す説明図である。また、図５（ｂ）は、到着フレーム数に対する第２の閾値Plowerを示す説明図である。
【０１３９】
図５（ａ）に示す到着遅延Adの単位、および図５（ｂ）に示す第２の閾値Plowerの単位はmsecである。図５に示すように、第２の閾値決定部205は、到着遅延、すなわち映像フレームの受信間隔が変動した時、到着遅延の変動に合わせて第２の閾値を変更する。
【０１４０】
［効果の説明］
上記の課題を解決する本実施形態および本実施例の映像再生制御方式に従う再生端末は、符号化された映像データを受信する受信部と、符号化された映像データを復号する復号部と、復号された映像フレームをバッファリングするバッファリング部とを有する。
【０１４１】
また、再生端末は、受信部により受信された映像フレームの到着間隔を計測する受信間隔計測部と、第１の閾値および受信間隔計測部が計測した受信間隔の変動情報に基づいた第２の閾値を用いて、表示時間を決定するフレーム表示時間決定部とを有する。
【０１４２】
また、再生端末は、フレーム表示時間決定部から通知された表示時間だけ、バッファリングされた映像フレームを表示するフレーム表示部を有する。すなわち、再生速度が調節されることによって再生停止が防止されるため、本実施形態の映像再生制御方式に従う再生端末が使用されると、ユーザにとっての体感品質が向上する。
【０１４３】
本実施形態の映像再生システムは、ユーザにとっての体感品質を低下させずに、再生バッファに格納されている映像データの枯渇による映像の再生停止を防ぐことができる。その理由は、再生端末200の第２の閾値決定部205が、映像フレームの到着間隔に応じて再生速度の調節用の閾値を動的に変更するためである。
【０１４４】
具体的には、映像フレームの到着が遅延している場合、第２の閾値決定部205は、第２の閾値を大きくすることによって低速で再生される再生バッファ時間の範囲を広げ、再生バッファに格納されている映像データの枯渇による再生停止を防ぐ。また、映像フレームの到着間隔が概ね所定の間隔である場合、第２の閾値決定部205は、第２の閾値を小さくすることによって等倍速で再生される再生バッファ時間の範囲を広げ、ユーザにとっての体感品質を維持する。
【０１４５】
よって、本実施形態の映像再生システムは、モバイルネットワークのような帯域幅の変動が激しい環境下で配信された映像が視聴される際、再生バッファに格納されている映像データの枯渇を防止しつつ、等倍速で再生される再生バッファ時間の範囲を拡張する再生制御を行う。映像再生システムは、等倍速で再生される再生バッファ時間の範囲を最大にすることも可能である。再生制御が行われることによって、ユーザにとっての体感品質の低下が防止される。
【０１４６】
なお、本実施形態の再生端末200は、例えば、記憶媒体に格納されているプログラムに従って処理を実行するCPU(Central Processing Unit)によって実現される。すなわち受信部201、復号部202、映像フレームバッファリング部203、受信間隔計測部204、第２の閾値決定部205、フレーム表示時間決定部206、およびフレーム表示部207は、例えば、プログラム制御に従って処理を実行するCPUによって実現される。
【０１４７】
また、本実施形態の再生端末200における各部は、ハードウェア回路によって実現されてもよい。一例として、受信部201、復号部202、映像フレームバッファリング部203、受信間隔計測部204、第２の閾値決定部205、フレーム表示時間決定部206、およびフレーム表示部207が、それぞれLSI(Large Scale Integration)で実現される。また、それらが１つのLSIで実現されていてもよい。
【０１４８】
次に、本発明の概要を説明する。図６は、本発明による映像再生装置の概要を示すブロック図である。本発明による映像再生装置20は、映像フレームが受信された時刻の間隔である受信間隔を計測する計測部21（例えば、受信間隔計測部204）と、未再生の映像が撮影された時間である撮影時間（例えば、再生バッファ時間）と同じ時間で再生される撮影時間の下限値を計測された受信間隔に基づいて決定する決定部22（例えば、第２の閾値決定部205）とを備える。
【０１４９】
そのような構成により、映像再生装置は、未再生の映像の枯渇を防止しつつ等倍速で再生される再生バッファ時間の範囲を拡張できる。
【０１５０】
また、映像再生装置20は、未再生の映像が撮影時間と同じ時間で再生される撮影時間の上限値および下限値に基づいて未再生の映像の再生時間を調節する調節部（例えば、フレーム表示時間決定部206）を備えてもよい。
【０１５１】
そのような構成により、映像再生装置は、通信ネットワークの帯域幅の変動に応じて未再生の映像の再生時間を調節できる。
【０１５２】
また、映像再生装置20は、調節部により調節された再生時間で未再生の映像を再生する再生部（例えば、フレーム表示部207）を備えてもよい。
【０１５３】
そのような構成により、映像再生装置は、通信ネットワークの帯域幅の変動に応じて調節された再生時間で未再生の映像を再生できる。
【０１５４】
また、決定部22は、指数平滑移動平均法で下限値を決定してもよい。
【０１５５】
そのような構成により、映像再生装置は、映像フレームの到着のゆらぎに応じて下限値を動的に制御できる。
【０１５６】
また、決定部22は、第１の平滑化係数（例えば、coef_1）および第２の平滑化係数（例えば、coef_2）が用いられる指数平滑移動平均法で下限値を決定してもよい。
【０１５７】
そのような構成により、映像再生装置は、前回制御された下限値と到着遅延との関係に応じて下限値を制御できる。
【０１５８】
また、映像再生装置20は、受信された映像フレームを格納する格納部（例えば、映像フレームバッファリング部203）を備え、未再生の映像は、格納部に格納されている映像フレームで構成されていてもよい。
【０１５９】
そのような構成により、映像再生装置は、現在の通信ネットワークの状態に応じてバッファリングされている映像フレームの再生速度を調節できる。
【符号の説明】
【０１６０】
10  映像再生システム
20  映像再生装置
21  計測部
22  決定部
100  配信端末
101  符号化部
102  送信部
103  スループット計測部
104  パラメータ決定部
200  再生端末
201  受信部
202  復号部
203  映像フレームバッファリング部
204  受信間隔計測部
205  第２の閾値決定部
206  フレーム表示時間決定部
207  フレーム表示部
300  通信ネットワーク
【図１】
0006711120.tif 000003
【図２】
0006711120.tif 000004
【図３】
0006711120.tif 000005
【図４】
0006711120.tif 000006
【図５】
0006711120.tif 000007
【図６】
0006711120.tif 000008