(57)【要約】【課題】ネットワーク特性が変化する状況においても通信品質を高めることができる通信装置を提供する。【解決手段】可用帯域推定手段８１は、通信ネットワークの可用帯域を推定する。往復遅延時間計測手段８２は、通信ネットワークの往復遅延時間を計測する。最適ビットレート算出手段８３は、往復遅延時間と単位時間に送信するデータサイズであるビットレートとにより定義されるユーザの体感品質を模した関数である評価関数を用いて、可用帯域推定手段８１で推定された可用帯域以下のビットレートにて、その評価関数の値を最大にするビットレートを算出する。【選択図】図１７
2014229956.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介してデータをリアルタイムに通信する通信装置であって、
前記通信ネットワークの可用帯域を推定する可用帯域推定手段と、
前記通信ネットワークの往復遅延時間を計測する往復遅延時間計測手段と、
前記往復遅延時間と単位時間に送信するデータサイズであるビットレートとにより定義されるユーザの体感品質を模した関数である評価関数を用いて、前記可用帯域推定手段で推定された可用帯域以下のビットレートにて当該評価関数の値を最大にするビットレートを算出する最適ビットレート算出手段とを備えた
ことを特徴とする通信装置。
【請求項２】
最適ビットレート算出手段は、往復遅延時間に関して単調減少であり、かつビットレートに関して単調増加である評価関数を用いて、当該評価関数の値を最大にするビットレートを算出する
請求項１記載の通信装置。
【請求項３】
最適ビットレート算出手段は、確率的にビットレートを増減させ、前記ビットレートの増減による評価関数の値の増減を判定し、前記評価関数の値の増減に基づいて評価関数値を最大にするビットレートを探索する
請求項１または請求項２に記載の通信装置。
【請求項４】
最適ビットレート算出手段は、確率的にビットレートを増減させたときに、評価関数の値が所定の回数連続して増加したときのビットレートを、評価関数値を最大にするビットレートして採用する
請求項３記載の通信装置。
【請求項５】
可用帯域推定手段は、データの送信先装置から通知される受信時刻の差に基づいて可用帯域を推定する
請求項１から請求項４のうちのいずれか１項に記載の通信装置。
【請求項６】
通信ネットワークを介してデータをリアルタイムに通信する通信方法であって、
前記通信ネットワークの可用帯域を推定し、
前記通信ネットワークの往復遅延時間を計測し、
前記往復遅延時間と単位時間に送信するデータサイズであるビットレートとにより定義されるユーザの体感品質を模した関数である評価関数を用いて、推定された可用帯域以下のビットレートにて当該評価関数の値を最大にするビットレートを算出する
ことを特徴とする通信方法。
【請求項７】
往復遅延時間に関して単調減少であり、かつビットレートに関して単調増加である評価関数を用いて、当該評価関数の値を最大にするビットレートを算出する
請求項６記載の通信方法。
【請求項８】
通信ネットワークを介してデータをリアルタイムに通信するコンピュータに適用される通信プログラムであって、
前記コンピュータに、
前記通信ネットワークの可用帯域を推定する可用帯域推定処理、
前記通信ネットワークの往復遅延時間を計測する往復遅延時間計測処理、および、
前記往復遅延時間と単位時間に送信するデータサイズであるビットレートとにより定義されるユーザの体感品質を模した関数である評価関数を用いて、前記可用帯域推定処理で推定された可用帯域以下のビットレートにて当該評価関数の値を最大にするビットレートを算出する最適ビットレート算出処理
を実行させるための通信プログラム。
【請求項９】
コンピュータに、
最適ビットレート算出処理で、往復遅延時間に関して単調減少であり、かつビットレートに関して単調増加である評価関数を用いて、当該評価関数の値を最大にするビットレートを算出させる
請求項８記載の通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像や音声等のマルチメディアデータをリアルタイムに通信する通信装置、通信方法および通信プログラムに関する。
【背景技術】
【０００２】
通信ネットワークを介して映像や音声等のマルチメディアデータをリアルタイムに通信する装置が知られている。
【０００３】
一方、通信ネットワークを通じて単位時間に通信できるデータサイズや通信遅延（通信スループット）は、クロストラヒック（他のユーザの通信トラヒック）や電波環境によって大きく変動する。そのため、マルチメディアデータをリアルタイムに通信する際に、通信遅延が大きいことにより応答性が低下したり、ネットワーク内でデータを転送しきれずにデータが失われたりすることがある。
【０００４】
特許文献１には、ボトルネックリンク帯域に依存せずにエンドツーエンド遅延を目標値に近づける品質制御装置が記載されている。特許文献１に記載された品質制御装置は、往復遅延時間（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ：ＲＴＴ）を計測し、計測されたＲＴＴと目標とするＲＴＴとの差分量に基づいて、単位時間あたりに送信するマルチメディアデータサイズ（ビットレート）を制御することで、目標とするＲＴＴを実現する。ここで、ＲＴＴは、応答性と同義であり、また、ビットレートの単位は、ビット／秒（ｂｐｓ）である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１９９４２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
まず、特許文献１に記載されている一般的なビットレートの制御方法を図１８を参照して説明する。図１８は、一般的なビットレートの制御方法を示す説明図である。
【０００７】
まず、送信側装置５０がＵＤＰ（User Datagram Protocol）パケットを用いてビットレートｕで映像や表示画面を送信すると、受信側装置２０（例えば、表示部２１）がこれを受信して表示する。なお、上述するように、ビットレートとは単位時間に送信するデータサイズ（送信レート）を意味する。リアルタイム・マルチメディア配信において、ビットレートは、メディアの単位再生時間のデータサイズ（符号化レート）に等しい。以下の説明では、ビットレートは、送信レートと符号化レートの双方の意味を含むものとする。
【０００８】
受信側装置２０は、あるＵＤＰパケット（例えば、フレームを構成する最後のパケット）を受信したタイミングでＡＣＫ（応答）を送信側装置５０に返信する。送信側装置５０のＲＴＴ計測部５２は、このＡＣＫを受けてＲＴＴを計測できる。送信側装置５０のレート制御部５１は、計測されたＲＴＴをフィードバックし、このＲＴＴを目標値に近づけるようにビットレートを制御する。
【０００９】
ビットレート制御では、ＲＴＴの目標値との差分に基づいたＰ（Proportional）制御が行われる。計測されたＲＴＴをｄ、ＲＴＴの目標値をｄｒ、それらの差分をｅ＝ｄｒ−ｄとする。このとき、１回のフィードバックループにおいて、ビットレートｕは、以下に示す式１〜式３を用いて更新される。なお、τは、フィードバックループの時間間隔である。また、Ｋは、フィードバックゲインであり、正の定数である。
【００１０】
Δｕ＝ＫＰ（ｅ）・ｅ  ・・・  （式１）
ＫＰ（ｅ）＝Ｋ（ｅ≧０のとき）  ，  ｗＫ（ｅ＜０のとき）  ・・・（式２）
ｕ＋Δｕ→ｕ  ・・・  （式３）
【００１１】
式２において、差分ｅの符号により、フィードバックゲインＫＰの大きさを変えている。これは、ｅ＜０、すなわち、計測されたＲＴＴが目標とするＲＴＴを超えてしまっているときは、より速くビットレートを下げるように重みｗ（ｗ≧１）が乗じられることを示す。
【００１２】
上述するビットレートの制御方法は、ビットレートとＲＴＴとの関係が（広義）単調増加であるという前提の上に成り立っており、ＲＴＴを目標値に近づける制御としては非常に有効である。しかし、適切に制御できるか否かは、ＲＴＴ目標値ｄｒに大きく依存する。この点について、図１９および図２０を用いて説明する。
【００１３】
図１９は、目標ＲＴＴを過小に設定した場合のビットレート制御の挙動の例を示す説明図である。また、図２０は、目標ＲＴＴを過大に設定した場合のビットレート制御の挙動の例を示す説明図である。図１９および図２０において、グラフの横軸はビットレートを示し、グラフの縦軸はＲＴＴを示し、曲線は、通信ネットワークにおけるビットレートとＲＴＴの関係を示している。なお、この曲線は、当然に通常未知である。さらに、図１９および図２０において、横方向の破線は目標ＲＴＴを示し、縦方向の破線は可用帯域を示している。
【００１４】
図１９に示すように、目標ＲＴＴを過小に設定した場合の通信ネットワークでは、ビットレートをどんなに小さくしても、計測されるＲＴＴは、目標ＲＴＴに到達しない。したがって、この場合、たとえ十分な可用帯域があったとしても、ビットレートを小さくし続ける制御が行われる。
【００１５】
一方、図２０に示すように、目標ＲＴＴを過大に設定した場合の通信ネットワークでは、ビットレートをどんなに大きくしても、計測されるＲＴＴは、目標ＲＴＴに到達することはない。この場合、ビットレートは増加し続けてしまうため、可用帯域を超えてしまうと、ＲＴＴが目標ＲＴＴ未満でもパケットロスが多発する。
【００１６】
図２１および図２２は、ネットワークエミュレータを用いて、上述するビットレートの制御方法を実施したときのビットレートとＲＴＴとの関係の例を示す説明図である。図２１および図２２において、一点破線ｌａは可用帯域を示し、破線ｌｒは目標ＲＴＴを示し、実線ｌｂはビットレートを示す。
【００１７】
ここでは、可用帯域を３Ｍｂｐｓ、ＲＴＴを２００ｍｓｅｃに設定した。また、図２１に示す制御では、目標ＲＴＴを１００ｍｓｅｃに設定し、図２２に示す制御では、目標ＲＴＴを５００ｍｓｅｃに設定した。ただし、最小ビットレートを０．２Ｍｂｐｓ、最大ビットレートを５Ｍｂｐｓと設定した。また、制御パラメータを、Ｋ＝０．０００３Ｍｂｐｓ／ｓ、ｗ＝３、τ＝１ｓｅｃと設定した。
【００１８】
上述した通り、図２１に示すように、目標ＲＴＴが過小な場合、ビットレートが最小値まで減少してしまうことが分かる。また、図２２に示すように、目標ＲＴＴが過大な場合、ビットレートが最大値まで増加してしまうことが分かる。
【００１９】
ビットレートとＲＴＴの関係や可用帯域など、このようなネットワーク特性が変わらなければ、目標値をチューニングすることで通信遅延やデータ消失などの問題が解決される。しかし、インターネットやモバイル網において、それらの特性は、時と場所によって大きく異なるため、チューニングで対応することは困難である。特に、モバイル網では、例えば３ＧとＬＴＥ（Long Term Evolution ）との切り替わりや電波状態により、時々刻々と特性が変動するため、上記の問題は特に顕著である。
【００２０】
そこで、本発明は、ネットワーク特性が変化する状況においても通信品質を高めることができる通信装置、通信方法および通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明による通信装置は、通信ネットワークを介してデータをリアルタイムに通信する通信装置であって、通信ネットワークの可用帯域を推定する可用帯域推定手段と、通信ネットワークの往復遅延時間を計測する往復遅延時間計測手段と、往復遅延時間と単位時間に送信するデータサイズであるビットレートとにより定義されるユーザの体感品質を模した関数である評価関数を用いて、可用帯域推定手段で推定された可用帯域以下のビットレートにて評価関数の値を最大にするビットレートを算出する最適ビットレート算出手段とを備えたことを特徴とする。
【００２２】
本発明による通信方法は、通信ネットワークを介してデータをリアルタイムに通信する通信方法であって、通信ネットワークの可用帯域を推定し、通信ネットワークの往復遅延時間を計測し、往復遅延時間と単位時間に送信するデータサイズであるビットレートとにより定義されるユーザの体感品質を模した関数である評価関数を用いて、推定された可用帯域以下のビットレートにて評価関数の値を最大にするビットレートを算出することを特徴とする。
【００２３】
本発明による通信プログラムは、通信ネットワークを介してデータをリアルタイムに通信するコンピュータに適用される通信プログラムであって、コンピュータに、通信ネットワークの可用帯域を推定する可用帯域推定処理、通信ネットワークの往復遅延時間を計測する往復遅延時間計測処理、および、往復遅延時間と単位時間に送信するデータサイズであるビットレートとにより定義されるユーザの体感品質を模した関数である評価関数を用いて、可用帯域推定処理で推定された可用帯域以下のビットレートにて評価関数の値を最大にするビットレートを算出する最適ビットレート算出処理を実行させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、ネットワーク特性が変化する状況においても適切に通信品質を高めることができる。
【図面の簡単な説明】
【００２５】
【図１】本発明による通信装置の一実施形態を示すブロック図である。
【図２】ＲＴＴと体感品質との関係の例を示す説明図である。
【図３】ビットレートと体感品質との関係の例を示す説明図である。
【図４】ＲＴＴとビットレートと体感品質との関係の例を示す説明図である。
【図５】最適解を探索するアルゴリズムの例を示す説明図である。
【図６】第１の実施例によるビットレート制御の挙動の例を示す説明図である。
【図７】第１のネットワークデータの例を示す説明図である。
【図８】一般的制御方法（目標ＲＴＴ：１００ｍｓｅｃ）によるビットレート制御の挙動の実験結果を示す説明図である。
【図９】一般的制御方法（目標ＲＴＴ：３００ｍｓｅｃ）によるビットレート制御の挙動の実験結果を示す説明図である。
【図１０】本発明による制御方法を用いた場合のビットレート制御の挙動の実験結果を示す説明図である。
【図１１】第２のネットワークデータの例を示す説明図である。
【図１２】一般的制御方法（目標ＲＴＴ：１００ｍｓｅｃ）によるビットレート制御の挙動の他の実験結果を示す説明図である。
【図１３】一般的制御方法（目標ＲＴＴ：３００ｍｓｅｃ）によるビットレート制御の挙動の他の実験結果を示す説明図である。
【図１４】本発明による制御方法を用いた場合のビットレート制御の挙動の他の実験結果を示す説明図である。
【図１５】第１のネットワークデータを用いた場合の実験結果を示す説明図である。
【図１６】第２のネットワークデータを用いた場合の実験結果を示す説明図である。
【図１７】本発明による通信装置の概要を示すブロック図である。
【図１８】一般的なビットレートの制御方法を示す説明図である。
【図１９】目標ＲＴＴを過小に設定した場合のビットレート制御の挙動の例を示す説明図である。
【図２０】目標ＲＴＴを過大に設定した場合のビットレート制御の挙動の例を示す説明図である。
【図２１】一般的な制御方法を用いた場合のビットレートとＲＴＴとの関係の例を示す説明図である。
【図２２】一般的な制御方法を用いた場合のビットレートとＲＴＴとの他の関係の例を示す説明図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態を図面を参照して説明する。
【００２７】
図１は、本発明による通信装置を含む通信システムの一実施形態を示すブロック図である。図１に例示する通信システムは、送信側装置１０と、受信側装置２０とを備えている。図１に例示する送信側装置１０が、本発明の通信装置に相当する。送信側装置１０は、通信ネットワークを介してデータ（例えば、映像や音声などのマルチメディアデータ）をリアルタイムに通信する。送信側装置１０と、受信側装置２０は、ネットワーク網９９を介して相互に接続される。
【００２８】
受信側装置２０は、送信側装置１０から送信されるデータを受信して各種処理を行う。受信側装置２０は、例えば、送信側装置１０から通信ネットワークを介して送信される映像や音声などのマルチメディアデータを受信すると、表示部２１が、それらのデータを表示する。また、受信側装置２０は、データを受信したことを示す信号（ＡＣＫ信号）を送信側装置１０に送信してもよい。
【００２９】
一般的な制御方法では、制御の挙動が目標ＲＴＴに大きく依存することが課題であった。本発明によるビットレート制御方法では、ある一つの目標値を定めるのではなく、ユーザの体感品質を模した評価関数を定め、これを最大化するようビットレートを制御することで、所望の挙動を得ようとするものである。
【００３０】
送信側装置１０は、可用帯域推定部１１と、評価関数１４を利用するビットレート制御部１２と、ＲＴＴ計測部１３とを含む。すなわち、本実施形態の送信側装置１０は、図１８に示す一般的な構成と比較して、可用帯域推定部１１を含む点、および、ビットレート制御部１２が評価関数１４を利用する点において異なる。評価関数１４は、例えば、送信側装置１０が備える記憶装置（図示せず）に記憶される。
【００３１】
評価関数１４は、ＲＴＴとビットレートを変数とする２次元領域で定義される関数である。評価関数１４は、ＲＴＴが小さいほど（すなわち、レスポンスが速いほど）値が大きくなるように、また、ビットレートが大きいほど（すなわち、品質が高いほど）値が大きくなるように定義され、このように定義されることでユーザの体感品質を模している。
【００３２】
可用帯域推定部１１は、対象とする通信ネットワーク（例えば、データが経由される通信ネットワーク）の可用帯域を推定する。可用帯域推定部１１は、後述するビットレート制御部１２が、実行可能領域を可用帯域以下に制限するために設けられる。
【００３３】
ビットレート制御部１２は、実行可能領域内、つまり通信ネットワークで実現可能なビットレートとＲＴＴの集合内で評価関数１４の値を最大化するようにビットレートを制御する。通信ネットワークで実現可能なビットレートとは、可用帯域推定部１１が推定した可用帯域以下のビットレートと言うことができる。
【００３４】
ＲＴＴ計測部１３は、対象とする通信ネットワークの往復遅延時間（ＲＴＴ）を計測する。なお、往復遅延時間を計測する方法は任意である。ＲＴＴ計測部１３は、広く知られた方法を用いて往復遅延時間を計測すればよい。
【００３５】
可用帯域推定部１１と、ビットレート制御部１２と、ＲＴＴ計測部１３とは、プログラム（通信プログラム）に従って動作するコンピュータのＣＰＵによって実現される。例えば、プログラムは、送信側装置１０の記憶部（図示せず）に記憶され、ＣＰＵは、そのプログラムを読み込み、プログラムに従って、可用帯域推定部１１、ビットレート制御部１２及びＲＴＴ計測部１３として動作してもよい。また、可用帯域推定部１１と、ビットレート制御部１２と、ＲＴＴ計測部１３とは、それぞれが専用のハードウェアで実現されていてもよい。
【００３６】
以下、本実施形態の送信側装置１０の動作についてさらに説明する。
これまで、映像や音声の品質を表す指標について、数多くの提案がされている。例えば、画質についてはＰＳＮＲ（Ｐｅａｋ  Ｓｉｇｎａｌ−ｔｏ−Ｎｏｉｓｅ  Ｒａｔｉｏ）、音質についてはＰＥＳＱ（Ｐｅｒｃｅｐｔｕａｌ  Ｅｖａｌｕａｔｉｏｎ  ｏｆ  Ｓｐｅｅｃｈ  Ｑｕａｌｉｔｙ）、映像・音声双方に適用できるＭＯＳ（Ｍｅａｎ  Ｏｐｉｎｉｏｎ  Ｓｃｏｒｅ）などがある。また、ネットワークを介した音声通話については、遅延も考慮したＲ値がある。しかし、これらの指標は、遅延とビットレートに一対一に対応する指標ではないため、リアルタイムなビットレート制御には適さない。
【００３７】
そこで、本実施形態の送信側装置１０は、ビットレート制御するために単純な評価関数１４を用いる。リアルタイム・マルチメディアコミュニケーションにおいては、レスポンス（ＲＴＴ）とメディア品質（ビットレート）がユーザの体感品質に重要であると考えられる。そこで、評価関数１４の変数に、ＲＴＴとビットレートを含める。
【００３８】
また、パケットロスもメディア品質に大きな影響を与えるが、本実施形態では、可用帯域推定部１１が可用帯域を推定し、ビットレート制御部１２がビットレートを可用帯域以下に制限することでパケットロスを回避する。なお、ビットレートに関係のないランダムなパケットロスは、ビットレート制御によって回避できないため、評価関数１４には含めない。
【００３９】
以下、評価関数ｆを定義する方法を説明する。まず、ＲＴＴと体感品質との関係を定式化する。ＲＴＴが大きくなることは、レスポンスが低下することに等しい。そのため、体感品質は、ＲＴＴに関して単調減少であると仮定できる。
【００４０】
次に、ＲＴＴが０のとき体感品質が１、ＲＴＴが∞のとき体感品質が０になるような正規化を行う。この正規化には、例えば、指数関数を用いることができる。この場合、ＲＴＴと体感品質との関係は、以下に示す式４のように定義できる。
【００４１】
ｆｄ（ｄ）＝ｅｘｐ（−ａｄ）  ・・・（式４）
【００４２】
式４において、ｄはＲＴＴ、ｆｄはＲＴＴに関する体感品質、ａは正の定数である。なお、図２は、式４に示すように定義した場合のＲＴＴと体感品質との関係の例を示す説明図である。図２に例示するように、体感品質は、ＲＴＴに関して単調減少する。
【００４３】
次に、ビットレートと体感品質の関係式を定義する。ビットレートが高ければ品質も向上すると言える。そのため、ビットレートと体感品質との関係は単調増加と仮定できる。ビットレートが０のとき体感品質が０、ビットレート∞で体感品質が１となるような正規化を行う。この正規化にも、例えば、指数関数を用いることができる。この場合、ビットレートと体感品質との関係は、以下に示す式５のように定義できる。
【００４４】
ｆｕ（ｕ）＝１−ｅｘｐ（−ｂｕ）  ・・・（式５）
【００４５】
式５において、ｕはビットレート、ｆｕはビットレートに関する体感品質、ｂは正の定数である。なお、図３は、式５に示すように定義した場合のビットレートと体感品質との関係の例を示す説明図である。図３に例示するように、体感品質は、ビットレートに関して単調増加する。
【００４６】
そして、上述するｆｄとｆｕを用いて評価関数ｆを定義する。評価関数ｆは、例えば、以下の式６に示すように、ｆｄとｆｕの線形結合で定義される。
【００４７】
ｆ（ｄ、ｕ）＝λｆｄ（ｄ）＋（１−λ）ｆｕ（ｕ）  ・・・（式６）
【００４８】
式６において、λは、ｆｄとｆｕの混合比であり、０≦λ≦１を満たす。なお、図４は、式６に示すように定義した場合のＲＴＴとビットレートと体感品質との関係の例を示す説明図である。図４では、式６におけるλの値を０．６に設定している。図４に例示するように、体感品質は、ＲＴＴに関して単調減少し、ビットレートに関して単調増加する。
【００４９】
ここでは、指数関数を用いたｆｄとｆｕの線形結合で評価関数ｆを定義する方法を説明した。ただし、評価関数に利用する関数を定義する方法は、指数関数を用いる方法に限定されず、また、ｆｄとｆｕとを線形結合する方法に限定されない。例えば、ｆｄとｆｕの積で評価関数ｆを定義してもよい。また、学習や測定結果等に基づいてより好適な関数が定義できた場合、ビットレート制御部１２は、その関数を評価関数として利用してもよい。
【００５０】
評価関数が得られると、ビットレート制御部１２は、評価関数の値を実行可能領域内で最大化するようにビットレートｕを制御する。すなわち、ビットレート制御部１２は、定義された評価関数の値を最大にするビットレートを算出し、その算出結果に基づいてビットレートｕを制御する。
【００５１】
制御操作量であるｕには最小値ｕｍｉｎと最大値ｕｍａｘが定められているものとする。ただし、ビットレート制御部１２は、予め与えられた最大値と後述する可用帯域推定値の小さい方をｕｍａｘに採用する。
【００５２】
実行可能領域とは、対象とする通信ネットワークで実現可能なＲＴＴであるｄと、ビットレートｕの集合である。もし、ＲＴＴがビットレートと時間ｔとの関数（ｄ＝ｄ（ｕ，ｔ））で表されるならば、実行可能領域Ｖは、以下に示す式（７）のように定義できる。
【００５３】
Ｖ＝｛ｄ（ｕ，ｔ），ｕ｜ｕｍｉｎ≦ｕ≦ｕｍａｘ｝  ・・・（式７）
【００５４】
以上のことから、ビットレート制御部１２は、集合Ｖの中で評価関数ｆを最大化するビットレートｕ＊を求めることが目的になる。
【００５５】
しかし、ｄ（ｕ，ｔ）がどのような関数であるかは全くの未知であるため、解析的に最適解を得ることは困難である。そこで、ビットレート制御部１２は、ヒューリスティックな手法によって最適解を探索する。図５は、ビットレート制御部１２が最適解を探索するアルゴリズムの例を示す説明図である。
【００５６】
図５に例示するように、探索アルゴリズムは、状態維持モードＭ１と、レート探索モードＭ２に分けられる。
【００５７】
状態維持モードＭ１では、ビットレート制御部１２は、指定回数（ｍ回）分のフィードバックループの間はレート変更を行わない（ステップＳ１１）。指定回数の後、ビットレート制御部１２は、再びレート変更しない（ステップＳ１１）、レートを増加させる（ステップＳ２３）、または、レートを減少させる（ステップＳ２４）のいずれかに、それぞれ確率ｐ、確率ｑ、確率ｒで遷移する条件分岐Ａを行う（ステップＳ１２）。すなわち、最初のｍ回未満では、必ず現状維持（ステップＳ１１）に戻ることになり、ｍ回目にｐ，ｑ，ｒの確率でレート増加／レート減少／現状維持に遷移する。
【００５８】
一方、レートを増加またはレートを減少させる場合、レート探索モードＭ２に遷移する。ステップＳ２３におけるレート増加では、ビットレート制御部１２は、ビットレートｕをｕ＋Δｕ＋→ｕと変更する。一方、ステップＳ２４におけるレート減少では、ビットレート制御部１２は、ビットレートｕをｕ−Δｕ−→ｕと変更する。
【００５９】
その後、ビットレート制御部１２は、ビットレートを変更した結果を検査する（ステップＳ２１、ステップＳ２２）。具体的には、ビットレート制御部１２は、この検査において、ｎ回分のループの間評価関数値を検査し、評価関数値が変更直前よりも大きな値になった場合をビットレート変更成功と判定し、それ以外を失敗と判定する。また、ビットレート制御部１２は、ｕｍｉｎ≦ｕ≦ｕｍａｘの制限によってレートを増加（または減少）できなかった場合も失敗と判定する。
【００６０】
上述のように、ビットレート制御部１２は、レートを増加させた場合、または、レートを減少させた場合、評価関数値が増加したか否かで成功可否を判断している。ここで、検査を１回しか行わない場合、誤差などで偶然に評価関数値が増加する場合も考えられる。本実施形態では、連続してｎ回評価関数値が増加した場合に成功と判断するため、上述する誤差による誤判定を抑制できる。
【００６１】
成功と判定された場合、ビットレート制御部１２は、再びレート増加（またはレート減少）を繰り返す。一方、失敗と判定された場合、ビットレート制御部１２は、レートの変更を取り消して（ステップＳ１３）、再度状態維持モードＭ１の処理をやり直す（ステップＳ１１）。
【００６２】
以上に説明したレート探索アルゴリズムは、基本的にはランダムサーチであり、ヒューリスティックに最適解を探索する構成になっている。これは、ビットレートとＲＴＴとの関係ｄ（ｕ，ｔ）が未知である上に、経由するネットワークおよび時間によって異なるため、解析的な手法（例えば、最急降下法など）を適用できないためである。
【００６３】
ここで、ビットレートの上限ｕｍａｘを可用帯域以下に抑えるためには、可用帯域を推定しなければならない。そこで、可用帯域推定部１１は、経由する通信ネットワークの可用帯域を推定する。
【００６４】
本実施形態では、メディアパケット以外に可用推定用のパケットトレインを送信することでネットワークに負荷がかかることを避けるため、可用帯域推定部１１は、メディアパケットをパケットトレインとして代用するインライン推定を行う。そのとき、可用帯域推定部１１は、例えば映像や画面であれば１フレームを構成する複数のパケットをパケットトレインに用いる。
【００６５】
このとき、このフレームによって、構成可能なトレインは限定されてしまう。そのため、可用帯域推定部１１は、トレインに特別な構成を含めずに、以下に説明するような簡易な推定方法を採用して可用帯域を推定してもよい。ただし、可用帯域推定部１１は、可用帯域を推定可能な手法であれば、どのような方法を用いても構わない。
【００６６】
ここでは、１フレームがｋ個のパケットを含み、各パケットのサイズをＰｉ、送信時刻をＳｉ、受信時刻をＲｉとする。ただし、Ｓｉは送信側装置１０の時計で計測される値、Ｒｉは受信側装置２０の時計で計測される値であり、ＳｉとＲｉの値の差に意味を持たない。ΔＳｉ＝Ｓｉ−Ｓｉ−１、ΔＲｉ＝Ｒｉ−Ｒｉ−１、可用帯域をＡとすると、以下の式８に示す関係が成立する。
【００６７】
ΔＲｉ＝ｍａｘ（ΔＳｉ，Ｐｉ／Ａ）  ・・・（式８）
【００６８】
また、トレイン全体では、以下の式９に示す関係が成立する。
【００６９】
Σｍａｘ（ΔＳｉ，Ｐｉ／Ａ）＝Ｒｋ−Ｒ１  ・・・（式９）
【００７０】
受信側装置２０からＲｋ−Ｒ１（つまり、トレインの最初のパケットの受信時刻と、最後のパケットの受信時刻との差）をＡＣＫとして通知してもらうことで、可用帯域推定部１１は、可用帯域の推定が可能になる。
【００７１】
以上のように、本実施形態によれば、可用帯域推定部１１が、通信ネットワークの可用帯域を推定し、ＲＴＴ計測部１３が、通信ネットワークの往復遅延時間（ＲＴＴ）を計測する。そして、ビットレート制御部１２が、推定された可用帯域以下のビットレートにて評価関数１４の値を最大にするビットレートを算出する。よって、ネットワーク特性が変化する状況においても通信品質を高めることができる。すなわち、本実施形態の送信側装置１０を用いることで、応答性とメディア品質の双方を高めることができる。
【実施例１】
【００７２】
以下、具体的な実施例により本発明を説明するが、本発明の範囲は以下に説明する内容に限定されない。
【００７３】
本実施例では、図５に例示する探索アルゴリズムによるビットレートの変化の様子を説明する。本実施例では、図１８に例示する一般的な制御方法（以下、一般的制御方法と記す。）で動作を検証した場合と同様のネットワーク構成で、ビットレートの変化の様子を実験した。すなわち、可用帯域を３Ｍｂｐｓ、ＲＴＴを２００ｍｓｅｃに設定した。
【００７４】
図６は、本実施例によるビットレート制御の挙動の例を示す説明図である。なお、図６で示す内容は、図１９および図２０と同様である。また、本実施例では、レート探索のパラメータを、τ＝１ｓｅｃ、ｍ＝４、ｎ＝４、ｐ＝ｑ＝ｒ＝１／３、Δｕ＋＝Δｕ−＝０．１Ｍｂｐｓとした。
【００７５】
ここで、τは、フィードバックループの時間間隔を示し、ｐ，ｑ，ｒは、図５に示す探索アルゴリズムにおける遷移確率を示す。また、ｍは、図５に示す探索アルゴリズムにおける条件分岐Ａにおいて現状維持（ステップＳ１１）に戻る回数を示す。また、ｎは、条件分岐Ｂにおいて評価関数値が増加したと判定する回数を示す。
【００７６】
図６のグラフに例示するように、可用帯域ｌａの少し下方にて評価関数値が最大となり、平衡状態に入った。なお、ビットレートのプロットをよく見ると、わずかに上下に揺れていることが確認できるが、これは確率的に探索を繰り返しているためである。
【実施例２】
【００７７】
次に、後述する２つのネットワークデータをツールＤｕｍｍｙｎｅｔでエミュレートし、本発明によるビットレートの制御方法と一般的制御方法との比較評価を行う。ただし、この一般的制御方法は、ビットレートを可用帯域以下に抑える機能を含まないため、ビットレート過大によるパケットロスを回避できない。そこで、この一般的制御方法に上述のインライン推定による可用帯域推定機能とビットレートを推定値以下に抑える機能を追加して実験を行った。
【００７８】
本実施例では、ビットレート制御を行う際の制御パラメータとして、実施例１と同じパラメータを用いた。また、一般的制御方法については、目標ＲＴＴが１００ｍｓｅｃと３００ｍｓｅｃの二つの場合を評価した。このとき、一般的制御方法のパラメータには、Ｋ＝０．０００３Ｍｂｐｓ／ｓ、ｗ＝３、τ＝１ｓｅｃと設定した。なお、ｕｍｉｎとｕｍａｘは共通で、それぞれ、ｕｍｉｎ＝０．２Ｍｂｐｓ、ｕｍａｘ＝５Ｍｂｐｓと設定した。
【００７９】
第１のネットワークデータを図７に示す。図７は、第１のネットワークデータの例を示す説明図である。図７における実線ｌａは可用帯域を示し、破線ｌｆは、固定的な遅延を示す。第１のネットワークデータは、可用帯域が３ｍｉｎ（１８０ｓｅｃ）ごとに１Ｍｂｐｓと３Ｍｂｐｓを繰り返し、ＲＴＴが同じく３ｍｉｎごとに２００ｍｓｅｃと４０ｍｓｅｃを繰り返すような人工データである。本実施例は、ネットワーク特性が切り替わった場合の挙動を調べるものである。ネットワーク特性の切り替わりとしては、例えば３ＧとＬＴＥの切り替わりや、３ＧとＷｉ−Ｆｉ（登録商標）の切り替わりなどが挙げられる。また、ネットワークのバッファは、ドロップテイルとし、バッファサイズは３２ｋｂｙｔｅとした。
【００８０】
第１のネットワークデータを用いて実験を行った結果を図８，図９，図１０に示す。図８は、一般的制御方法で目標ＲＴＴを１００ｍｓｅｃに設定した場合の実験結果を示し、図９は、一般的制御方法で目標ＲＴＴを３００ｍｓｅｃに設定した場合の実験結果を示し、図１０は、本発明による制御方法を用いた場合の実験結果を示す。図８〜図１０において、太い破線ｌｒはＲＴＴを示し、太い実線ｌｂはビットレートを示す。また、図８〜図１０において、細い破線および実線は、それぞれ、図７に例示する可用帯域ｌａおよび固定的な遅延ｌｆを示す。
【００８１】
図８に例示するように、目標ＲＴＴを１００ｍｓｅｃに設定した一般的制御方法では、ＲＴＴが２００ｍｓｅｃの区間では、ビットレートを最低値まで低下させる制御が行われる。一方で、ＲＴＴが４０ｍｓｅｃの区間では、ビットレートを上昇させるが、目標値と観測値の差分ｅ＝ｄｒ−ｄが小さく、ビットレートの上昇は緩やかになる。
【００８２】
図９に例示するように、目標ＲＴＴを３００ｍｓｅｃに設定した一般的制御方法では、観測されるＲＴＴよりも常に目標値の方が大きいため、可用帯域推定値の制限までビットレートを上昇させる制御が行われる。その結果、可用帯域周辺のビットレートで送信が行われるため、通信ネットワークは輻輳状態に近づき、ＲＴＴが上に振れる現象が確認できる。
【００８３】
図１０に例示するように、本発明の制御方法でも、目標ＲＴＴを３００ｍｓｅｃに設定した一般的制御方法と同様に、可用帯域近傍までビットレートを上昇させているように見える。しかし、実際には、可用帯域とビットレートとの間に少し余裕がある。これは、ビットレートを可用帯域に近づけすぎることによるＲＴＴの増加が評価関数値を低下させるからである。実際、一般的制御方法の実測ＲＴＴと比較しても、ビットレートは安定して最小値（つまりＤｕｍｍｙｎｅｔに設定した値）付近にとどまっている。なお、３つの制御方法のいずれにも見られるＲＴＴのスパイク的な増加は、可用帯域設定値の切り替わりによって発生している。
【００８４】
次に、第２のネットワークデータを用いた場合の実験結果を説明する。図１１は、第２のネットワークデータの例を示す説明図である。図１１に例示するグラフに示される実線および破線の内容は、図７と同様である。なお、図１１に例示する第２のネットワークデータは、インターネット上のサーバからモバイル網経由でアクセスしたときの実測データであり、実線における菱形および破線における四角は、その際計測された点を示す。
【００８５】
第２のネットワークデータは、計測場所を徒歩で移動した際に採取されたデータであり、初めはＨＳＤＰＡ（High Speed Downlink Packet Access ）で接続していたが、５００ｓｅｃ付近でＬＴＥに切り替わり、その後１４００ｓｅｃ付近で再びＨＳＤＰＡに戻ったことを示している。このとき、ＲＴＴは、ＨＳＤＰＡ区間で約３００ｍｓｅｃと大きく、ＬＴＥ区間では約４０ｍｓｅｃと低遅延であった。可用帯域は、ＬＴＥ区間の方が大きかったが変動も大きく、ＨＳＤＰＡ区間では約３Ｍｂｐｓと安定していた。
【００８６】
第２のネットワークデータを用いて実験を行った結果を図１２，図１３，図１４に示す。図１２は、一般的制御方法で目標ＲＴＴを１００ｍｓｅｃに設定した場合の実験結果を示し、図１３は、一般的制御方法で目標ＲＴＴを３００ｍｓｅｃに設定した場合の実験結果を示し、図１４は、本発明における制御方法を用いた場合の実験結果を示す。なお、図１２〜図１４に示す線の内容は、図８〜図１０に示す線の内容と同様である。
【００８７】
図１２および図１３に例示するように、一般的制御方法では、目標ＲＴＴをいずれに設定した場合も、ＨＳＤＰＡ区間ではビットレートを最低値まで下げる制御が行われ、ＬＴＥ区間ではビットレートを最大値（可用帯域推定値）まで上げる制御が行われた。ただし、目標ＲＴＴを３００ｍｓｅｃに設定したときの方が、ビットレートの増加速度は速い。また、ビットレートを可用帯域まで増加させた時間帯ではＲＴＴが荒れている。
【００８８】
図１４に例示するように、本発明の制御方法では、評価関数値は、可用帯域の少し下（すなわち、可用帯域よりも若干低い箇所）で極大になる。また、ＲＴＴは、急激に可用帯域が減少することによるスパイク的な増加以外は安定している。
【００８９】
図１５は、第１のネットワークデータを用いた場合の実験結果を示す説明図である。また、図１６は、第２のネットワークデータを用いた場合の実験結果を示す説明図である。図１５および図１６には、各実験結果におけるＲＴＴ、ビットレート、パケットロス率、及び評価関数値の平均値を示している。
【００９０】
本発明による制御方法では、ＲＴＴとビットレートのトレードオフの関係において、評価関数値を最大にするように制御される。そのため、必要以上のビットレート低下や、可用帯域までビットレートを増加させることによるＲＴＴの増加を防ぐことができる。また、ＲＴＴの増加を防ぐことで、パケットロス率を抑制することもできる。
【００９１】
なお、本発明では、独自に定義した関数に基づく関数値（評価関数値）を用いているが、ユーザの体感品質をより適切に表わす他の指標を用いてもよい。このように、より適切な体感品質を示す指標を用いることで、本発明による制御方法の有用性が、より示せることになる。
【００９２】
次に、本発明の概要を説明する。図１７は、本発明による通信装置の概要を示すブロック図である。本発明による通信装置は、通信ネットワーク（例えば、ネットワーク網９９）を介してデータ（例えば、マルチメディアデータ）をリアルタイムに通信する通信装置（例えば、送信側装置１０）であって、通信ネットワークの可用帯域を推定する可用帯域推定手段８１（例えば、可用帯域推定部１１）と、通信ネットワークの往復遅延時間（ＲＴＴ）を計測する往復遅延時間計測手段８２（例えば、ＲＴＴ計測部１３）と、往復遅延時間と単位時間に送信するデータサイズであるビットレートとにより定義されるユーザの体感品質を模した関数である評価関数（例えば、評価関数１４）を用いて、可用帯域推定手段８１で推定された可用帯域以下のビットレートにて、その評価関数の値を最大にするビットレートを算出する最適ビットレート算出手段８３（例えば、ビットレート制御部１２）とを備えている。
【００９３】
そのような構成により、ネットワーク特性が変化する状況においても通信品質を高めることができる。
【００９４】
また、最適ビットレート算出手段８３は、往復遅延時間に関して単調減少であり、かつビットレートに関して単調増加である評価関数（例えば、式６）を用いて、その評価関数の値を最大にするビットレートを算出してもよい。すなわち、ＲＴＴが短いほど、また、ビットレートが高いほどユーザの体感品質は向上するため、このような評価関数を用いることで、ユーザの所望する通信品質に近づけることが可能になる。
【００９５】
また、最適ビットレート算出手段８３は、確率的に（例えば、確率ｐ，ｑ，ｒで）ビットレートを増減させ（例えば、図５に例示する条件分岐Ａ）、ビットレートの増減による評価関数の値の増減を判定し（例えば、図５に例示する条件分岐Ｂ）、評価関数の値の増減に基づいて評価関数値を最大にするビットレートを探索してもよい。
【００９６】
これは、本発明で想定する通信ネットワークでは、ビットレートとＲＴＴとの関係ｄ（ｕ，ｔ）が未知である上に、経由するネットワークおよび時間によって異なるため、このような処理を行うことで、より適切にビットレートを算出することできる。
【００９７】
具体的には、最適ビットレート算出手段８３は、確率的にビットレートを増減させたときに、評価関数の値が所定の回数（例えば、ｎ回）連続して増加したときのビットレートを、評価関数値を最大にするビットレートして採用してもよい。このようにすることで、誤差などで偶然に評価関数値が増加する場合の誤判定を抑制できる。
【００９８】
また、可用帯域推定手段８１は、データの送信先装置（例えば、受信側装置２０）から通知される受信時刻の差（例えば、トレインの最初のパケットの受信時刻と、最後のパケットの受信時刻との差）に基づいて可用帯域を推定してもよい。
【産業上の利用可能性】
【００９９】
本発明は、例えば、マルチメディア通信装置に好適に適用可能である。
【符号の説明】
【０１００】
１０  送信側装置
１１  可用帯域推定部
１２  ビットレート制御部
１３  ＲＴＴ計測部
１４  評価関数
２０  受信側装置
２１  表示部
５０  送信側装置
５１  レート制御部
５２  ＲＴＴ計測部
９９  ネットワーク網
ｌａ  可用帯域
ｌｒ  ＲＴＴ
ｌｂ  ビットレート
ｌｆ  固定された遅延
【図１】
2014229956.tif 000003
【図２】
2014229956.tif 000004
【図３】
2014229956.tif 000005
【図５】
2014229956.tif 000006
【図６】
2014229956.tif 000007
【図７】
2014229956.tif 000008
【図８】
2014229956.tif 000009
【図９】
2014229956.tif 000010
【図１０】
2014229956.tif 000011
【図１１】
2014229956.tif 000012
【図１２】
2014229956.tif 000013
【図１３】
2014229956.tif 000014
【図１４】
2014229956.tif 000015
【図１５】
2014229956.tif 000016
【図１６】
2014229956.tif 000017
【図１７】
2014229956.tif 000018
【図１８】
2014229956.tif 000019
【図１９】
2014229956.tif 000020
【図２０】
2014229956.tif 000021
【図２１】
2014229956.tif 000022
【図２２】
2014229956.tif 000023
【図４】
2014229956.tif 000024