本願発明の理解を容易にするため、図25を参照しながら、本発明が解決しようとする課題を詳細に説明する。図25は、通信システムに関して、ビットレートと、通信が遅延している程度(たとえば、遅延時間)と、該ビットレート、及び、該遅延が観測された場合における通信ネットワークを介して実行される通信の品質を表すユーザ体感品質とを表す図である。横軸は、タイミングを表し、右側であるほど時間が進んでいることを表す。図25の(a)において、縦軸は、ビットレートを表し、上側であるほどビットレートが増えることを表す。図25の(b)において、縦軸は、遅延している程度を表し、上側であるほど遅延している程度が増えることを表す。図25の(c)において、縦軸は、ユーザ体感品質を表し、上側であるほどユーザ体感品質が良いことを表す。
図25において、L1は、可用帯域の推移を表す。L2は、ビットレートの推移を表す。L3は、遅延する程度(たとえば、遅延時間)を表す。L4は、ユーザ体感品質を表す。
説明の便宜上、通信システムに関して、可用帯域L1は、タイミングt1にて増大するとする。通信システムにおいて、タイミングt1にて可用帯域が増大したことが、タイミングt2にて検知されたとする。
特許文献1に開示された通信装置は、たとえば、可用帯域が変更された場合に、ビットレートを増やす処理、該ビットレートを変更しない処理、または、ビットレートを減らす処理の中から、確率的に、次に実行する処理を選択する。該通信装置は、タイミングt2にて「増やす処理」を選択した場合に、選択した処理に従いビットレートを増やす処理を実行する。図25の(a)を参照すると、タイミングt2からタイミングt3までの期間において、ビットレートL2は増大している。これは、たとえば、該通信装置がタイミングt2からタイミングt3までの期間に、継続的に「増やす処理」を選択し続けることによって、ビットレートL2が増えることを表す。
また、ビットレートL2が可用帯域L1を超えている場合に、特許文献1に開示された通信装置は、「変更しない処理」、または、「減らす処理」の中から、確率的に、次に実行する処理を選択する。たとえば、図25の(a)を参照すると、タイミングt3以降の期間において、ビットレートL2は、一定の値である。これは、たとえば、該通信装置がタイミングt3以降の期間に、継続的に「変更しない処理」を選択し続けることによって、ビットレートL2が一定であることを表す。ただし、特許文献1に開示された通信装置が、次に実行する処理を確率的に選択するので、ビットレートL2は、必ずしも、一定であるとは限らない。
図25の(b)に示されているように遅延L3が一定であり、図25の(a)に示されているように、タイミングt2からタイミングt3までの期間においてビットレートL2が増大した場合に、ユーザ体感品質L4は、該期間にて増大する(図25の(c))。この場合に、特許文献1に開示された通信装置は、ビットレートL2を増やす処理が成功したと判定する。
しかし、特許文献1に開示された通信装置は、必ずしも、ユーザ体感品質に関して最適なビットレートを算出しているとは限らない。この理由を、図26を参照しながら説明する。図26は、通信システムに関して、ビットレートと、通信が遅延している程度と、該ビットレート、及び、該遅延が観測された場合における通信ネットワークに関する品質を表すユーザ体感品質とを表す図である。図26において、(a)、(b)、(c)、縦軸、及び、横軸は、図25と同様である。
図26において、L1は、可用帯域の推移を表す。L5は、ビットレートの推移を表す。L3は、遅延する程度(たとえば、遅延時間)を表す。L6は、ユーザ体感品質を表す。
説明の便宜上、通信システムに関して、可用帯域L1は、タイミングt1にて増大するとする。通信システムにおいて、タイミングt1にて可用帯域L1が増大したことが、タイミングt2にて検知されたとする。また、通信システムにおいて、ビットレートL5は、タイミングt2にて、可用帯域L1まで増大するとする。このような場合に、該ビットレートL5は、最適な制御方法である。
ビットレートL5がタイミングt2にて可用帯域L1まで増大することによって、ユーザ体感品質L6は、タイミングt2にて増大する。図25の(c)に示されたユーザ体感品質L4と、図26の(c)に示されたユーザ体感品質L6と比較すると、タイミングt2からタイミングt3までの期間において、ユーザ体感品質L4は、ユーザ体感品質L6よりも低い。言い換えると、ある期間(たとえば、タイミングt2からタイミングt3までの期間)におけるユーザ体感品質の平均値は、ユーザ体感品質L6よりも、ユーザ体感品質L4の方が低い。したがって、図26に例示されているようにビットレートを制御する方法は、特許文献1に開示された方法よりも、ユーザ体感品質の高い制御方法である。
図27に例示されているように可用帯域が減少する場合であっても、特許文献1に開示された方法よりも、ユーザ体感品質の高い制御方法があることについて説明する。図27は、通信システムに関して、ビットレートと、通信が遅延している程度と、該ビットレート、及び、該遅延が観測された場合における通信ネットワークに関する品質を表すユーザ体感品質とを表す図である。図27において、(a)、(b)、(c)、縦軸、及び、横軸は、図25と同様である。
図27において、L1は、可用帯域の推移を表す。L2は、ビットレートの推移を表す。L3は、遅延する程度(たとえば、遅延時間)を表す。L4は、ユーザ体感品質を表す。
説明の便宜上、通信システムに関して、可用帯域L1は、タイミングt1にて減少するとする。通信システムにおいて、可用帯域L1がタイミングt1に減少したことが、タイミングt2にて検知されたとする。
図27の(a)を参照すると、タイミングt1からタイミングt2までの期間において、ビットレートL2は、可用帯域L1よりも高い。したがって、該期間にて送信することができなかったデータは、通信システムにおけるバッファに一時的に格納される。該バッファに格納されているデータが、通信ネットワークを介して通信することが可能になるのに応じて通信されるので、遅延L3は、タイミングt1からタイミングt2までの期間において増大する。この結果、ユーザ体感品質L4は、タイミングt1からタイミングt2までの期間において低下する。
説明の便宜上、通信装置が、たとえば、可用帯域L1がタイミングt1にて低下したことをタイミングt2にて検知することによって、タイミングt2にてビットレートL2を可用帯域L1未満になるまで「減らす処理」を選択すると仮定したとする。この場合に、タイミングt2からタイミングt3までの期間において、ビットレートL2が可用帯域L1未満になるので、遅延L3は減少する。この結果、タイミングt2からタイミングt3までの期間において、ユーザ体感品質L4は増える。
説明の便宜上、通信装置は、バッファに格納されているデータに関する処理が完了するまで(タイミングt3からタイミングt4までの期間であるとする)、ビットレートL2を継続的に「減らす処理」を選択したとする。この場合に、タイミングt3からタイミングt4までの期間において、ビットレートL2が可用帯域L1未満になるので、遅延L3は減少する。この結果、タイミングt3からタイミングt4までの期間において、ユーザ体感品質L4は増える。
図27の(a)に例示されているように、通信装置は、タイミングt4からタイミングt5までの期間において、ビットレートL2を継続的に「増やす処理」を選択したとする。この場合に、タイミングt4からタイミングt5までの期間において、遅延L3が増大することなくビットレートL2が増大するので、ユーザ体感品質L4は、増大する。
しかし、図27に例示されているようにビットレートを制御する通信装置は、必ずしも、ユーザ体感品質に関して最適なビットレートを算出しているとは限らない。この理由を、図28を参照しながら説明する。図28は、通信システムに関して、ビットレートと、通信が遅延している程度と、該ビットレート、及び、該遅延が観測された場合における通信ネットワークに関する品質を表すユーザ体感品質とを表す図である。図28において、(a)、(b)、(c)、縦軸、及び、横軸は、図27と同様である。
図28において、L1は、可用帯域の推移を表す。L5は、ビットレートの推移を表す。L3は、遅延する程度(たとえば、遅延時間)を表す。L6は、ユーザ体感品質を表す。
ビットレートに関して、図27の(a)に示されたビットレートL2と、図28の(a)に示されたビットレートL5とを比較すると、通信装置は、タイミングt2にて、ビットレートL5を、ビットレートL2よりも、さらに少ない値まで減らす。この結果、遅延が解消されるタイミングを比較すると、図27の(b)に示された遅延L3に関しては、タイミングt4であるのに対し、図28の(b)に示された遅延L3に関しては、タイミングt4よりも前のタイミングt3である。
さらに、通信装置が、遅延が解消されたタイミングt3にて、ビットレートL5を可用帯域L1まで増大すると仮定すると、ユーザ体感品質L6は、タイミングt3にて向上する。この結果、ユーザ体感品質L6(図28に例示)と、ユーザ体感品質L4(図27に例示)とを比較すると、タイミングt2からタイミングt5までの期間において、ユーザ体感品質L4は、ユーザ体感品質L6よりも低い。言い換えると、ある期間(たとえば、タイミングt2からタイミングt5までの期間)におけるユーザ体感品質の平均値は、ユーザ体感品質L6よりも、ユーザ体感品質L4の方が低い。したがって、図28に例示されているようにビットレートを制御する方法は、図27に例示されているようにビットレートを制御する方法よりも、ユーザ体感品質の高い制御方法である。
本願発明者は、図25乃至図28を参照しながら説明したような課題を見出すとともに、係る課題を解決する手段を導出するに至った。以降、このような課題を解決可能な、本発明を実施する実施形態について、図面を参照しながら詳細に説明する。
<第1の実施形態>
図1を参照しながら、本発明の第1の実施形態に係るストリーム配信システム4が有する構成について詳細に説明する。図1は、本発明の第1の実施形態に係るストリーム配信システム4が有する構成を示すブロック図である。
本発明の第1の実施形態に係るストリーム配信システム4は、ストリームデータを配信するストリーム配信装置1と、ストリームデータを受信するストリーム受信装置2と、通信ネットワーク3とを有する。
ストリーム配信装置1とストリーム受信装置2とは、通信ネットワーク3を介して通信接続することが可能である。通信ネットワーク3は、たとえば、インターネット、モバイル通信ネットワーク、組織内通信ネットワーク(イントラネット)、家庭内LAN(Local_Area_Network)、または、これらの通信ネットワークが組み合わされた通信ネットワークである。
ストリーム配信システム4においては、1台のストリーム配信装置1に対して、複数台のストリーム受信装置2が通信接続されていてもよい。また、ストリーム配信システム4は、ストリーム受信装置2からストリーム配信装置1に対してもストリームデータを配信する双方向の構成を有していてもよい。
図2を参照しながら、本発明の第1の実施形態に係るストリーム配信装置1が有する構成について詳細に説明する。図2は、本発明の第1の実施形態に係るストリーム配信装置1が有する構成を示すブロック図である。
本発明の第1の実施形態に係るストリーム配信装置1は、ストリームデータ入力部11と、符号化部12と、送信部13と、可用帯域部14と、バッファ量推定部15と、遅延モデル作成部16と、品質モデル作成部17と、ビットレートモデル選択部18と、伝送遅延推定部19と、ビットレート情報記憶部20とを有する。
ストリームデータ入力部11は、外部装置(不図示)から送信対象であるストリームデータを入力する。ストリームデータは、たとえば、映像データ、音声データ、操作情報、センサ情報等の情報である。外部装置(不図示)は、たとえば、カメラ等の撮像装置、マイクロフォン、コントローラー、または、センサ(いずれも図示せず)等である。ストリームデータ入力部11は、入力したストリームデータを、符号化部12に対して出力する。
符号化部12は、ストリームデータ入力部11が出力したストリームデータを入力し、入力したストリームデータを、ビットレートモデル選択部18からの指示(後述する)に基づき符号化する符号化処理を実行する。符号化部12は、たとえば、映像データを入力した場合に、H.264やH.265(HEVC)等のコーデックに従い、符号化処理を実行してもよい。符号化部12は、たとえば、音声データを入力した場合に、G.711やAMR、AAC等のコーデックに従い符号化処理を実行してもよい。符号化部12は、ストリームデータを符号化処理することによって作成されたストリームデータ(以降、「符号化済みストリームデータ」と表す)を、送信部13に対して出力する。
尚、HEVCは、High_Efficiency_Video_Codingの略称を表す。AACは、Advanced_Audio_Codingの略称を表す。AMRは、Adaptive_Multi−Rateの略称を表す。
送信部13は、符号化部12が出力した符号化済みストリームデータを入力し、入力した符号化済みストリームデータに関するパケットを作成し、作成したパケットをストリーム受信装置2に送信する。送信部13は、送信対象である符号化済みストリームデータに対して、RTP(Real−time_Transport_Protocol)等のヘッダが付加されたデータを作成し、作成したデータに関するパケットを送信してもよい。
次に、ビットレートに関する制御処理について説明する。
可用帯域部14は、ストリーム配信装置1と、ストリーム受信装置2との間における通信ネットワーク3に関して、たとえば、未来において利用可能な通信帯域(可用帯域)の分布を算出し、算出した分布を含む帯域分布情報を作成する。帯域分布情報は、たとえば、可用帯域の確率分布を含み、この場合に、可用帯域が、ある範囲内である確率を表す情報を含む。たとえば、可用帯域部14は、通信ネットワーク3に関する可用帯域が時間の経過に伴い推移する程度を表す可用帯域モデルを、複数個、参照し、各可用帯域モデルが表す通信帯域が、あるタイミングにて該ある範囲内である可能性を算出することによって、該可用帯域の分布を算出する。可用帯域部14は、作成した帯域分布情報を、ビットレートモデル選択部18に対して出力する。以降、予測された可用帯域を、未来の可用帯域と表すこともある。
バッファ量推定部15は、ストリーム配信装置1と、通信ネットワーク3に通信接続されている各装置とが有するバッファに格納されているデータ量(以降、「送信バッファ量」と表す)を取得(または、推定、測定)する。バッファ量推定部15は、取得(または、推定、測定)したデータ量を遅延モデル作成部16に対して出力する。
伝送遅延推定部19は、ストリーム配信装置1からストリーム受信装置2にデータを送信する場合の伝送遅延を取得(または、推定)する。ここで、伝送遅延は、たとえば、ストリーム配信装置1からストリーム受信装置2までパケットを伝送するのに要する所要時間を表す。該所要時間は、バッファに格納されている期間を含まないとする。伝送遅延推定部19は、取得(または、推定)した該所要時間を遅延モデル作成部16に対して出力する。
ビットレートモデル選択部18は、ビットレートを制御する場合に従うビットレートモデルを複数含むビットレート情報が格納されているビットレート情報記憶部20から、あるビットレートモデルを選択する。次に、ビットレートモデル選択部18は、少なくとも、可用帯域部14が出力した帯域分布情報に含まれている各可用帯域に関して、選択したあるビットレートモデルと、該可用帯域に関する確率を含む帯域分布情報とを、遅延モデル作成部16に対して出力する。尚、帯域分布情報は、後述する図29、または、図30に示された例に含まれている。さらに、ビットレートモデル選択部18は、遅延モデル作成部16が出力した遅延モデルと、ビットレートモデルとを品質モデル作成部17に対して出力する。尚、図5等を参照しながら後述するように、ビットレートモデルは、通信ネットワーク3を介して通信されるデータの単位時間あたりのデータ量が、時間の経過に伴い推移する(関係している)程度を表す。
遅延モデル作成部16は、バッファ量推定部15が出力したデータ量(すなわち、バッファに格納されているデータ量)と、ビットレートモデル選択部18が出力したビットレートモデル、及び、帯域分布情報と、伝送遅延推定部19が出力した伝送遅延とを入力する。遅延モデル作成部16は、入力した値に基づき、式1乃至式5等を参照しながら後述するような手順に従い、遅延モデルを算出する。尚、遅延モデルは、通信ネットワーク3を介して実行される通信の遅延時間が、時間の経過に伴い推移する(関係している)程度を表す。
品質モデル作成部17は、ビットレートモデル選択部18が出力したビットレートモデルと、該ビットレートモデルに関する遅延モデルとを入力し、入力したビットレートモデルと、遅延モデルとに基づき、式6を参照しながら後述するような手順に従い、品質モデルを算出する。
ビットレートモデル選択部18は、品質モデル作成部17が算出した品質モデルに基づき、図4A等を参照しながら後述するような手順に従い、ある期間における品質を算出する。
ビットレートモデル選択部18、遅延モデル作成部16、及び、品質モデル作成部17は、ビットレート情報記憶部20に格納されている各ビットレートモデルに関して、上述したような処理を実行する。その後、ビットレートモデル選択部18は、ビットレート情報記憶部20に格納されている各ビットレートモデルと、各可用帯域モデルとの組み合わせに対して算出される品質モデルと、該可用帯域モデルのうち、ある可用帯域である確率との積和を算出することによって、該ビットレートモデルに関する品質の期待値(平均値)を算出する。期待値を算出する処理については、図29、または、図30等を参照しながら後述する。次に、ビットレートモデル選択部18は、ビットレートモデルのうち、たとえば、算出した品質の期待値が最大(または、略最大)であるビットレートモデルを選択し、選択したビットレートモデルに従い符号化するよう、符号化部12に対して要求する。ここで、略最大は、最大から所定の範囲内の数値を表す。略最大は、たとえば、(最大×0.95)から(最大×1.0)までの範囲内の数値を表す。
次に、図3を参照しながら、本発明の第1の実施形態に係るストリーム配信装置1における処理について詳細に説明する。図3は、第1の実施形態に係るストリーム配信装置1における処理の流れを示すフローチャートである。
ストリームデータ入力部11は、たとえば、外部装置(不図示)等から、ストリームデータを受信する(ステップS1101)。ストリームデータが映像データである場合に、ストリームデータ入力部11は、たとえば、該映像データに含まれている1つのフレームごとにストリームデータを受信する。ストリームデータが音声情報、操作情報、センサ情報等である場合に、ストリームデータ入力部11は、たとえば、20ミリ秒等の一定周期にてストリームデータを受信してもよい。ストリームデータ入力部11は、入力したストリームデータを、符号化部12に対して出力する。
次に、符号化部12は、ストリームデータ入力部11が出力したストリームデータを入力し、入力したストリームデータを、ビットレートモデル選択部18が出力したビットレートモデルに従い符号化する符号化処理を実行する(ステップS1102)。符号化部12は、ストリームデータを符号化処理した結果を表す符号化済みストリームデータを、送信部13に対して出力する。
送信部13は、符号化部12が出力した符号化済みストリームデータを入力し、入力した符号化済みストリームデータを含むパケットを作成し、作成したパケットをストリーム受信装置2に送信する(ステップS1103)。
ストリーム配信装置1は、ストリームデータを配信する処理が完了したか否かを判定する(ステップS1104)。ストリームデータを配信する処理が完了していない場合に(ステップS1104にてNO)、ステップS1101に示す処理が実行される。ストリームデータを配信する処理が完了した場合に(ステップS1104にてYES)、ストリーム配信装置1は、処理を終了する。すなわち、ストリーム配信装置1は、ステップS1101乃至ステップS1104に示された処理を、配信する処理が完了するまで繰り返し実行する。
次に、図4Aを参照しながら、本発明の第1の実施形態に係るストリーム配信装置1がビットレートモデルに従いビットレートを指示する処理について詳細に説明する。図4Aは、第1の実施形態に係るストリーム配信装置1がビットレートモデルに従いビットレートを指示する処理の流れを示すフローチャートである。ストリーム配信装置1は、所定のタイミング(たとえば、一定な周期、1秒周期)にて、ビットレートモデルを決定する処理を実行してもよいし、通信ネットワーク3における通信量が急激に変化する等のイベントが発生するのに応じて、ビットレートモデルを決定する処理を実行してもよい。
可用帯域部14は、ストリーム配信装置1と、ストリーム受信装置2との間の通信ネットワーク3に関する未来において利用可能な通信帯域(可用帯域)の分布(たとえば、確率分布)を予測し(ステップS2201)、予測した分布を含む帯域分布情報を作成する。
可用帯域部14は、可用帯域の分布を予測する場合に、たとえば、あるタイミングにて、複数のパケットをストリーム受信装置2に送信する。可用帯域部14は、複数のパケットのサイズと、該複数のパケットを送信してからストリーム受信装置2が該複数のパケットを受信し終えるまでに要した所要時間とに基づき、該サイズを、該所要時間にて割り算することにより、該あるタイミングにおける可用帯域を推定する。可用帯域部14は、推定した可用帯域の時系列情報(すなわち、可用帯域モデル)に対して、たとえば、特許文献2に開示された方法に従い演算処理することによって、未来において利用可能な可用帯域の分布を算出してもよい。
または、可用帯域部14は、可用帯域を推定する場合に、ストリーム受信装置2があるタイミングにて送信した複数のパケットを受信する。可用帯域部14は、受信したパケットのサイズと、ストリーム受信装置2が該複数のパケットを送信してから該複数のパケットを受信し終えるまでに要した所要時間とに基づき、該サイズを、該所要時間にて割り算することにより、あるタイミングでの可用帯域を推定する。可用帯域部14は、推定した可用帯域の時系列情報(すなわち、可用帯域モデル)に対して、たとえば、特許文献2に開示された方法に従い、未来において利用可能な可用帯域の分布を算出してもよい。
バッファ量推定部15は、ストリーム配信装置1と、通信ネットワーク3に通信接続された装置(図9を参照しながら後述する)とが有するバッファに格納されているデータ量を取得(または、推定)する(ステップS1202)。たとえば、ストリーム配信装置1において、オペレーティングシステム等がバッファ量を取得することが可能なAPIを提供している場合には、該APIを介して該データ量を取得してもよい。あるいは、ストリーム配信装置1からストリーム受信装置2までの間をパケットが往復する場合の遅延時間(RTT、Round_Trip_Time)を計測し、RTTの現在値と最小値の差から推定してもよい。尚、APIは、Application_Programming_Interfaceの略称を表す。
伝送遅延推定部19は、ストリーム配信装置1からストリーム受信装置2までデータを伝送するのに要する所要時間を表す伝送遅延時間を取得(または、推定)する(ステップS1203)。ただし、伝送遅延時間は、バッファを介した処理時間を含まない所要時間であるとする。伝送遅延推定部19は、たとえば、伝送遅延時間に関する推定値として、ストリーム配信装置1がストリーム受信装置2にICMP_Echo等のプローブパケットを送信してから、該プローブパケットに呼応する確認応答を受信するまでに要した往復遅延時間の2分の1を算出してもよい。また、送信部13がパケットを送信し、送信した該パケットに呼応してストリーム受信装置2が送信する確認応答を受信するまでに要した所要時間の最小値の半分(2分の1)を、伝送遅延推定部19は、伝送遅延時間として推定してもよい。
尚、ICMPは、Internet_Control_Message_Protocolの略称を表す。
次に、伝送遅延推定部19、品質モデル作成部17、及び、ビットレートモデル選択部18は、ビットレート情報記憶部20に格納されているビットレートモデルに関して、式6を参照しながら後述する手順に従い、品質モデルの期待値を算出する(ステップS2205)。ステップS2205に示された処理は、ビットレート情報記憶部20に格納されている各ビットレートモデルに対して実行される。
図4Bと図5とを参照しながら、ステップS2205にて、ビットレートモデルに基づき品質モデルの期待値を算出する手順について説明する。図4Bは、ステップS2205における詳細な処理の流れを示すフローチャートである。図5は、ビットレート情報記憶部20に格納されているビットレート情報におけるビットレートモデルの一例を概念的に表す図である。図5において、横軸は、タイミングを表し、右側であるほど時間が進んでいることを表す。図5において、縦軸は、ビットレートを表し、上側であるほどビットレートが増えることを表す。
説明の便宜上、基準であるタイミングをt0[秒(s)]、タイミングt(ただし、t≧t0)における通信ネットワークに関する伝送遅延時間をdT(t)、タイミングtにおける可用帯域を表す値をC(t)[毎秒ビット(bps)]と表すとする。また、タイミングtにおけるバッファ量をB(t)[ビット(bit)]と表し、タイミングtにおけるビットレートモデルをr(t)と表すとする。
ビットレート情報記憶部20には、たとえば、図5に例示されているようなビットレートモデルr1(t)、ビットレートモデルr2(t)、ビットレートモデルr3(t)、及び、ビットレートモデルr4(t)を含むビットレート情報が格納されている。ビットレート情報記憶部20に格納されているビットレートモデルは、必ずしも、図5に例示されているようなビットレートモデルでなくともよい。また、ビットレート情報記憶部20には、さらに、多くのビットレートモデルが格納されていてもよい。すなわち、ビットレート情報記憶部20に格納されているビットレートモデルは、図5に例示されたビットレートモデルに限定されない。
図4Bを参照すると、遅延モデル作成部16は、ビットレートモデルr(t)(たとえば、図5に例示されているビットレートモデルri(t)、ただし、i=1、2、3、または、4)に対する遅延モデルd(t)を算出する(ステップS22051)。たとえば、遅延モデル作成部16は、式1に示す処理に従い、通信ネットワークに関する伝送遅延時間dT(t)と、該通信ネットワークにおけるバッファに関する処理(すなわち、バッファリング)に要する所要時間dB(t)とを足し算することによって、遅延モデルd(t)を算出する。すなわち、
遅延モデルd(t)=dT(t)+dB(t)・・・(式1)。
次に、遅延モデル作成部16がバッファリングに要する所要時間dB(t)を算出する処理について説明する。
遅延モデル作成部16は、式2に従い、バッファにデータが格納される速度を表す入力速度から、該バッファに格納されているデータが送信され、その後、該バッファから消去される速度を表す出力速度を引き算することによって、該バッファに格納されているデータが増減する速度を算出する。すなわち、
ただし、バッファ量B(t)は、0以上である。
遅延モデル作成部16は、式2に示された微分方程式を解くことによって、タイミングtにおけるバッファ量B(t)を算出する。次に、遅延モデル作成部16は、タイミングtにてバッファに格納されているバッファ量B(t)に関する処理が完了するまでに要する所要時間を、バッファリングに要する所要時間dB(t)として算出する。バッファに格納されているバッファ量B(t)に関する処理が完了するタイミングをtxと表す場合に、遅延モデル作成部16は、式3に従い、タイミングtxを算出する。すなわち、
遅延モデル作成部16は、タイミングtxからタイミングtを引き算することによって、バッファリングに要する所要時間dB(t)を算出する。すなわち、遅延モデル作成部16は、式4に従い、所要時間dB(t)を算出する。
dB(t)=tx−t・・・(式4)。
遅延モデル作成部16は、式5に従い、タイミングtにおけるバッファ量B(t)を、タイミングtにおける可用帯域C(t)にて割り算することによって、バッファリングに要する所要時間dB(t)を算出してもよい。すなわち、
dB(t)=B(t)÷C(t)・・・(式5)。
遅延モデル作成部16は、ビットレート情報記憶部20に格納されている各ビットレートモデル(図5に例示)に対して、図6に示された遅延モデルを算出する。図6は、遅延モデルの一例を概念的に表す図である。図6において、横軸は、タイミングを表し、右側であるほど時間が進んでいることを表す。図6において、縦軸は、遅延を表し、上側であるほど遅延が増えることを表す。説明の便宜上、図6においては、ビットレートモデルr1(t)に対して算出された所要時間dB(t)に対して、符号「r1(t)」を付して表す。同様に、ビットレートモデルr2(t)に対して算出された所要時間dB(t)に対して、符号「r2(t)」を付して表す。ビットレートモデルr3(t)に対して算出された所要時間dB(t)に対して、符号「r3(t)」を付して表す。ビットレートモデルr4(t)に対して算出された所要時間dB(t)に対して、符号「r4(t)」を付して表す。
ステップS22051に示された処理の後、品質モデル作成部17は、ビットレート情報記憶部20に格納されているビットレートモデルr(t)と、該ビットレートモデルr(t)に基づき、式1乃至式5に従い算出した遅延モデルd(t)とを入力する。品質モデル作成部17は、入力したビットレートモデルr(t)と、該遅延モデルd(t)とに関して、たとえば、特許文献1に開示された方法に従い品質モデルq(t)を算出する(ステップS22052)。たとえば、特許文献1に開示されているように、品質モデルq(t)は、パラメタとして、少なくとも、ビットレートと、遅延時間とを含む関数である。品質モデル作成部17は、たとえば、ITU−T_G.1070に規定された手順に従い、品質モデルq(t)を算出してもよい。品質モデルq(t)が、ビットレート、及び、遅延以外のパラメータ(たとえば、パケットロス率)を含んでいる場合に、品質モデル作成部17は、該パラメタの値として、所定の値を用いてもよい。言い換えれば、品質モデル作成部17は、特許文献1、または、ITU−T_G.1070等の文献に開示された手順に従い、タイミングtに関して、式6に示された処理を実行することによって、品質モデルq(t)を算出する。すなわち、
q(t)=f(r(t),d(t),・・・)・・・(式6)。
ただし、ITUは、国際電気通信連合(International_Telecommunication_Union)の略称を表す。
品質モデル作成部17は、式6に従い、図7に例示されているようなユーザ体感品質モデルを算出する。図7は、図5に例示されたビットレートモデルと、図6に例示された遅延モデルとに基づき算出されたユーザ体感品質モデルの一例を概念的に表す図である。図7において、横軸は、タイミングを表し、右側であるほど時間が進んでいることを表す。図7において、縦軸は、品質を表し、上側であるほど品質がよい(増大する)ことを表す。説明の便宜上、図7においては、ビットレートモデルr1(t)に対して算出されたユーザ体感品質モデルに対して、符号「r1(t)」を付して表す。同様に、ビットレートモデルr2(t)に対して算出されたユーザ体感品質モデルに対して、符号「r2(t)」を付して表す。ビットレートモデルr3(t)に対して算出されたユーザ体感品質モデルに対して、符号「r3(t)」を付して表す。ビットレートモデルr4(t)に対して算出されたユーザ体感品質モデルに対して、符号「r4(t)」を付して表す。
ステップS22051及びステップS22052に示された処理(図4B)は、ステップS2201(図4A)にて作成された帯域分布情報に含まれている各可用帯域に対して実行される。すなわち、品質モデル作成部17は、各ビットレートモデルに対して、複数のC(t)に対して、ステップS22051及びステップS22052に示された処理を実行する。
次に、品質モデル作成部17は、たとえば、後述する式13に従い、品質モデルの期待値を算出する(ステップS22053)。可用帯域がxである場合の確率密度関数をp(x)と表し、可用帯域がxである場合の品質モデルをq(t,x)と表す場合に、品質モデル作成部17は、式13に従い、品質モデルの期待値E(q(t))を算出する。すなわち、
尚、図4A内のステップS2205に示された処理は、必ずしも、連続している時間に関して実行される必要はなく、離散的に与えられたタイミングtに関して実行されてもよい。この場合に、図6に例示された遅延モデル、及び、図7に例示された品質モデルは、該離散的に与えられたタイミングtに関してのみ算出される。ただし、説明の便宜上、図5乃至図7においては、遅延モデル、ビットレートモデル、及び、品質モデルを、連続的な関数として表している。
図4A内のステップS2205に示された処理が、ビットレート情報記憶部20に格納されている各ビットレートモデルに関して実行される。その後、ビットレートモデル選択部18は、算出した品質モデルに基づき、ビットレート情報記憶部20に格納されているビットレート情報に含まれているビットレートモデルの中から、あるビットレートモデルを選択する(ステップS1206)。ビットレートモデル選択部18は、たとえば、ビットレート情報記憶部20に格納されているビットレートモデルの中から、算出したユーザ体感品質モデルに関して、該関数の平均値が最大(または、略最大)である場合のビットレートモデルを選択する。この場合に、ビットレートモデル選択部18は、タイミングt0から(t0+(一定時間T)[s])までの期間における品質モデルq(t)が積分された積分値を算出し、算出した積分値が最大(または、略最大)であるビットレートモデルを選択してもよい。ビットレートモデル選択部18は、たとえば、数値積分を算出する手順に従い、品質モデルに関する積分値(すなわち、期待値E(q(t)))を算出する。
図7に示された例において、ビットレートモデル選択部18は、たとえば、区間[t0,t0+T](すなわち、t0から「t0+T」までの区間)における品質モデルに関する積分値が最大(または、略最大)であるビットレートモデルr4(t)を選択する。
上述した説明において、ビットレートモデル選択部18は、各ビットレートモデルに対して、品質モデルの期待値を算出した後に積分値を算出したが、品質モデルの積分値に対して期待値を求めてもよい。したがって、ビットレートモデル選択部18における処理は、上述した例に限定されない。ビットレートモデル選択部18は、式14の値が最大になるビットレートモデルを選択してもよい。
図29を参照しながら、ビットレートモデルを選択する処理について説明する。図29は、ビットレートモデルを選択する処理にて算出される値の一例を概念的に表す図である。図29に示された例においては、3つのビットレートモデル(すなわち、ビットレートモデル1、乃至、ビットレートモデル3)の中からビットレートが選択される。
図29における1〜3行目に含まれている値は、帯域分布情報の一例を表している。たとえば、該帯域分布情報の第1列には、可用帯域「[0,1)」と、確率「0.05」と、代表値「0.5」が記載されている。これは、該帯域分布情報において、可用帯域が0Mbps(毎秒メガビット)以上1Mbps未満である確率が5%である、該可用帯域の代表値が0.5(すなわち、該可用帯域の平均)であることを表す。尚、可用帯域の表記に関して、大括弧「[」、及び、「]」は、閉区間を表す。可用帯域の表記に関して、小括弧「(」、及び、「)」は、開区間を表す。同様に、該帯域分布情報の第3列には、可用帯域「[2,3)」と、確率「0.3」と、代表値「2.5」が記載されている。これは、該帯域分布情報において、可用帯域が2Mbps以上3Mbps未満である確率が30%である、該可用帯域の代表値が2.5(すなわち、該可用帯域の平均)であることを表す。
次に、ビットレートモデル選択部18は、各ビットレートモデルに関して、帯域分布情報内の各可用帯域の代表値に対する品質モデルの積分値を算出する。図29においては、あるビットレートモデルに関して、ビットレートモデル選択部18によって算出された積分値(すなわち、品質モデルの積分値)が、該あるビットレートモデルを表す識別子に関連付けされている(たとえば、「ビットレートモデル2」に示された行)。ビットレートモデル選択部18は、各可用帯域に関して算出した積分値と、該可用帯域である確率との積和を算出することにより、ビットレートモデルに関する品質モデルの期待値を算出する(図29における「期待値」に示された列)。たとえば、図29に示された例では、「ビットレートモデル2」に示された行であり、「期待値」に示された列である領域に、期待値「3.095」が記載されている。これは、ビットレートモデル2に関する品質モデルの期待値が3.095であることを表す。図29に示された例において、ビットレートモデル選択部18は、該3つのビットレートモデルのうち、品質モデルの期待値が最大であるビットレートモデル3を選択する。
図29に示された例において、ビットレートモデル選択部18は、1Mbps間隔ごとの確率に基づき品質モデルの期待値を算出したが、ビットレートモデル選択部18が確率を算出する間隔は、必ずしも、1Mbps間隔でなくてもよい。たとえば、該間隔(すなわち、刻み幅)を小さくするほど、品質モデルがより正確に表されるので、ビットレートモデル選択部18は、より正確に、品質モデルの期待値を算出することができる。
また、期待値を算出する処理を実際に実行する情報処理装置に関する処理余力(または、処理能力)に応じて刻み幅を決めてもよい。たとえば、可用帯域部14は、処理余力が多い場合に細かい刻み幅を用いて算出された確率に基づき期待値を算出し、処理余力が少ない場合に粗い刻み幅を用いて算出された確率に基づき期待値を算出してもよい。この場合に、本実施形態に係るストリーム配信装置1によれば、処理余力に応じて、品質モデルの期待値を正確に算出することができる。
ビットレートモデル選択部18は、選択したビットレートモデルに従いビットレートを制御することを要求する要求情報を符号化部12に対して指示する(ステップS1207)。ビットレートモデル選択部18は、符号化部12に対して、選択したビットレートモデルを出力してもよいし、該ビットレートモデルに関するパラメタ、または、ビットレートを表す数値を出力してもよい。たとえば、ビットレートモデル選択部18は、選択したビットレートモデルr(t)が「−0.1×t+1.0[毎秒メガビット、Mbps]」である場合に、タイミングが0から1までの区間にて該ビットレートモデルr(t)に関する積分値(図8において網掛けされた部分(この例の場合は、0.95Mbps))を算出し、算出した積分値を符号化部12に対して出力してもよい。図8は、ビットレートモデルの一例を概念的に表す図である。図8において、横軸は、タイミングを表し、右側であるほど時間が進んでいることを表す。図8において、縦軸は、ビットレートを表し、上側であるほどビットレートが増えることを表す。
符号化部12は、ビットレートモデル選択部18が算出したビットレートモデル(または、積分値、パラメタの値)を入力する。符号化部12は、入力するストリームデータに応じて、該ストリームデータを符号化するコーデック種別を選択する。コーデック種別に関して設定可能なビットレートがあらかじめ決められている場合に、符号化部12は、選択したコーデック種別に関して設定可能なビットレートのうち、入力したビットレートモデル(または、積分値、パラメタの値)に基づき、ビットレートを選択してもよい。たとえば、音声コーデックのうち、G.711に関しては、ビットレートが64kbps(毎秒キロビット)と設定されており、G.726に関しては、ビットレートが16,24,32,または、48kbpsと設定されており、G.729に関しては、ビットレートが8kbpsと設定されている。この場合に、符号化部12は、たとえば、入力した積分値に最も近いビットレートに関するコーデック種別を選択してもよい。
次に、本発明の第1の実施形態に係るストリーム配信システム4に関する効果について説明する。
第1の実施形態に係るストリーム配信システム4によれば、通信ネットワークを介して、情報(データ)の通信の品質を短時間に向上することができる。この理由は、特許文献1に開示された通信装置より長い期間に亘るビットレートを算出し、算出したビットレートに従い通信を制御することができるからである。したがって、特許文献1に開示された通信装置よりも通信を制御する回数が減少するので、本実施形態に係るストリーム配信システム4によれば、情報の通信の品質を短時間に向上することができる。
また、ユーザ体感品質モデルが最大(または、略最大)であるビットレートモデルを選択することによって、品質がさらに良好な通信を実現することができる。この理由は、ストリーム配信システム4が、ビットレート情報に含まれているビットレートモデルのうち、品質モデルの期待値が最大(または、略最大)であるビットレートモデルを選択するからである。
<第2の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第2の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図9を参照しながら、本発明の第2の実施形態に係るストリーム配信システム6が有する構成について詳細に説明する。図9は、本発明の第2の実施形態に係るストリーム配信システム6が有する構成を示すブロック図である。
本発明の第2の実施形態に係るストリーム配信システム6は、ストリームデータを配信するストリーム配信装置1と、ストリームデータを受信するストリーム受信装置2と、通信ネットワーク5とを有する。
ストリーム配信装置1とストリーム受信装置2とは、通信ネットワーク5を介して通信接続することが可能である。ストリーム配信システム6においては、1台のストリーム配信装置1に対して、複数台のストリーム受信装置2が通信接続されてもよい。また、ストリーム配信システム6においては、ストリーム受信装置2からストリーム配信装置1に対してもストリームデータを配信する双方向の構成を有していてもよい。
第2の実施形態に係る通信ネットワーク5は、基地局装置51と、モバイルコアネットワーク52と、インターネット53とを含む。ストリーム配信装置1は、たとえば、スマートフォン(または、パーソナルコンピュータ)と、USB等のインターフェースを介して通信接続される通信デバイスとを有する装置である。ストリーム配信システム6において、ストリーム配信装置1と基地局装置51とを通信接続可能な通信ネットワーク5は、たとえば、無線による通信ネットワーク(以降、「無線通信ネットワーク」と表す)である。基地局装置51は、該無線通信ネットワークを構成している無線リソースを管理している。USBは、Universal_Serial_Busの略称を表す。
ストリーム配信装置1について説明する。第2の実施形態に係るストリーム配信装置1は、図2に示された第1の実施形態に係るストリーム配信装置1と同様な構成を含む。
ストリームデータ入力部11は、たとえば、スマートフォン等に内蔵(または、接続)されているカメラ等の撮像装置、マイク、センサ等の入力デバイスである。送信部13は、たとえば、スマートフォン、または、通信デバイスに内蔵されている通信モデム等である。また、符号化部12、可用帯域部14、バッファ量推定部15、遅延モデル作成部16、品質モデル作成部17、ビットレートモデル選択部18、及び、伝送遅延推定部19は、たとえば、スマートフォン等が有しているプロセッサにて実行されるプログラムによって実現されている機能である。送信部13は、図10に例示されているような送信バッファ131を有する。図10は、第2の実施形態に係るストリーム配信装置1における送信部13が有する構成の一例を概念的に表す図である。
送信バッファ131は、入力されたデータが先入れ先出し処理されるキュー構造を有している。たとえば、送信部13は、符号化部12が出力した符号化済みストリームデータを入力し、入力した符号化済みストリームデータを含むパケットを作成し、作成したパケットを、一時的に、送信バッファ131に格納する。送信部13は、基地局装置51(図9)によって無線リソースが割り当てられるのに応じて、送信バッファ131に格納されているパケットのうち、最先にて格納されたパケットを読み取り、読み取ったパケットを、通信ネットワーク5を介して送信する。この場合に、送信部13は、送信したパケットを、送信バッファ131から削除する。
したがって、符号化部12から入力する符号化済みストリームデータが、基地局装置51によって割り当てられた無線リソースを用いて送信可能なデータ量よりも多い場合に、送信バッファ131に格納されているデータ量は増加する。符号化部12から入力する符号化済みストリームデータが、基地局装置51によって割り当てられた無線リソースを用いて送信可能なデータ量よりも少ない場合に、送信バッファ131に格納されているデータ量は減少する。
次に、図11を参照しながら、本発明の第2の実施形態に係るストリーム配信装置1における処理について詳細に説明する。図11は、第2の実施形態に係るストリーム配信装置1における処理の流れを示すフローチャートである。
可用帯域部14は、送信部13が単位時間当たりに送信したデータ量を取得し、取得した値に基づき、たとえば、未来の可用帯域の分布を予測し(ステップS2301)、予測した分布を含む帯域分布情報を作成する。該分布は、たとえば、確率分布である。この場合に、可用帯域部14は、送信部13から送信されたデータ量を測定してもよいし、送信部13からデータ量を入力してもよい。また、バッファ量推定部15は、送信部13から送信バッファ131に格納されているデータ量を取得し(ステップS1302)、取得した値をバッファ量の推定値としてもよい。以降、図4Aを参照しながら上述したステップS1203、ステップS2205、ステップS1206、及び、ステップS1207と同様な処理が実行される。
次に、本発明の第2の実施形態に係るストリーム配信システム6に関する効果について説明する。
第2の実施形態に係るストリーム配信システム6によれば、通信ネットワークを介して、情報の通信の品質を短時間に向上することができる。この理由は、第1の実施形態にて上述した理由と同様である。
<第3の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第3の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図12を参照しながら、本発明の第3の実施形態に係るストリーム配信装置210が有する構成について詳細に説明する。図12は、本発明の第3の実施形態に係るストリーム配信装置210が有する構成を示すブロック図である。
本発明の第3の実施形態に係るストリーム配信装置210は、ストリームデータ入力部11と、符号化部12と、送信部13と、可用帯域部14と、バッファ量推定部15と、遅延モデル作成部16と、品質モデル作成部17と、ビットレートモデル選択部18と、伝送遅延推定部19と、ビットレート情報記憶部21とを有する。
ビットレートモデルを決定する処理が、たとえば、1秒以下の時間にて実行される場合に、ストリーム配信装置210は、ビットレート情報記憶部21に格納されているビットレート情報からビットレートモデルを選択する処理を、短時間に実行する必要がある。本実施形態においては、短時間な処理を実現することを1つの目的として、ビットレートモデルの個数が、上述した実施形態に比べて少ない。
ITU−T_G.1070等によれば、ストリーム配信においては、ビットレートが高く、遅延モデルd(t)によって表される遅延時間が短いほど高品質な配信である。遅延モデルd(t)のうち、通信ネットワークに関する伝送遅延時間dT(t)は、該通信ネットワークのうち伝送経路の距離等に依存している。したがって、ストリーム配信においては、ビットレートが可用帯域に等しく、遅延モデルd(t)のうち、バッファリングに要する所要時間dB(t)が0となる場合に、高品質な配信が可能である。
本実施形態において、ビットレート情報記憶部21には、たとえば、図13に例示されているように、あるビットレートから可用帯域まで線形に増大(または、減少)し、その後、可用帯域(または、略可用帯域)である値であるビットレートモデルr(t)を含む。図13は、ビットレートモデルの一例を概念的に表す図である。図13において、横軸は、タイミングを表し、右側であるほど時間が進んでいることを表す。図13において、縦軸は、ビットレートを表し、上側であるほどビットレートが増えることを表す。
説明の便宜上、タイミングt0にて、ビットレートモデルr(t)の値はr0であるとする。可用帯域C(t)の値は、タイミングt0以降にて、c0であるとする。ただし、r0>0であり、c0>0であるとする。
図13に示された例において、ビットレートモデルr(t)の値は、タイミングt0からタイミングt2の期間において、たとえば、タイミングが1だけ増えた場合に、値がa2(ただし、a2>0)だけ増えるとする。図13に示された例において、タイミングt2以降に、ビットレートモデルr(t)の値は、可用帯域の値c0である。すなわち、ビットレートモデルr(t)は、式Aに示されたビットレートモデルである。
r(t)=a2×(t−t0)+r0(ただし、t0≦t≦t2)、
=c0(ただし、t2<t))・・・(式A)。
したがって、タイミングt2は、式7に従い算出される。すなわち、
タイミングt2=(c0―r0)÷a2+t0・・・(式7)。
ビットレート情報記憶部21には、たとえば、図13に例示されているようなビットレートモデルに関して、r0と、a2とのうち少なくともいずれかが異なっているビットレートモデルが格納されている。
ビットレートモデル選択部18は、ビットレート情報記憶部21に格納されているビットレートモデルのうち、タイミングt0から、タイミング「t0+T」までの期間における品質モデルの期待値が最大(または、略最大)であるビットレートモデルを選択する。
ビットレート情報記憶部21に格納されているビットレートモデルが多いほど(すなわち、a2とr0との組み合わせが多いほど)、品質モデルの最大値が大きい可能性は高い。すなわち、ビットレート情報記憶部21に格納されているビットレートモデルが多いほど、より、得られるユーザ品質が高くなる可能性が高いという効果を奏する。
尚、ビットレートモデルを選択する間隔(すなわち、該選択処理に要する所要時間)に基づき、ビットレート情報記憶部21に格納されているビットレートモデルの個数を決定してもよい。この場合に、ストリーム配信装置210によれば、ビットレートモデルを選択するタイミングが決められている場合であっても、高品質にてビットレートを決定することができる。
さらに、ビットレートモデル選択部18は、タイミングt2において、バッファに格納されているデータ量が0(または、略0)になるように、ビットレートモデル(すなわち、本実施形態においては、a2とr0との組)を選択してもよい。略0は、0付近の値であればよく、たとえば、0から(バッファの容量×0.05)までの範囲内の数値を表す。具体的に、ビットレートモデル選択部18がビットレートモデルを選択する手順について説明する。
たとえば、可用帯域C(t)が、タイミングt0からタイミング(t0+T)までの期間にてc0で一定である場合に、タイミングt0からタイミングt2までの期間にてバッファから減少するデータ量は、可用帯域C(t)と、ビットレートモデルr(t)との差(すなわち、領域Xの面積)である。ビットレートモデル選択部18は、たとえば、領域Xの面積を、式8に従い算出する。すなわち、
領域Xの面積=(c0―r0)×(t2―t0)÷2・・・(式8)。
タイミングt0にバッファに格納されているデータ量をB(t0)と表す場合に、ビットレートモデル選択部18は、B(t0)と領域Xの面積とが等しいという条件が成り立つ、a2とr0とを選択する。式7、及び、式8に従えば、a2と、r0とは、関係している。すなわち、a2と、r0とのうち、いずれか一方が算出されれば、他方も算出することが可能であるので、第3の実施形態に係るストリーム配信装置210によれば、より短い計算時間にて、体感性能が高い制御を行うことができる。
ビットレートモデル選択部18は、上記の方法に従い、c0を変更しながら求めた複数のビットレートモデル(図30に例示)のうち、品質モデルの期待値が最大であるビットレートモデルを、選択してもよい。図30は、ビットレートモデルを選択する処理にて算出される値の一例を概念的に表す図である。尚、図30は、図29と同様な図であるので、図30に関する説明を省略する。
図30においては、ビットレートモデル1乃至ビットレートモデル6が例示されている。ビットレートモデル1乃至ビットレートモデル6は、図13等を参照しながら説明したようなc0を、それぞれ、0.5、1.5、2.5、3.5、4.5、及び、5.5(Mbps)に設定した場合に求められる品質モデルを表す。ビットレートモデル選択部18は、各ビットレートモデルに対して、図29等を参照しながら説明した処理と同様な処理を実行することによって、品質モデルの期待値を求め、求めた期待値が最大になるビットレートモデル(図30の例では、ビットレートモデル4)を選択する。
次に、本発明の第3の実施形態に係るストリーム配信装置210に関する効果について説明する。
第3の実施形態に係るストリーム配信装置210によれば、通信ネットワークを介して、情報の通信の品質を短時間に向上することができる。この理由は、第1の実施形態にて上述した理由と同様である。
さらに、本実施形態に係るストリーム配信装置210によれば、情報の通信の品質を、さらに、短時間に向上することができる。この理由は、ビットレート情報記憶部21に格納されているビットレートモデルが、第1の実施形態、及び、第2の実施形態に比べて少ないからである。
また、第3の実施形態に係るストリーム配信装置210によれば、品質が、さらに良好な通信を実現することができる。この理由は、ビットレート情報に含まれているビットレートモデルに従えば、タイミングt2以降において、通信ネットワークに関して利用可能な帯域を表す可用帯域モデルに一致(または、類似)している値を用いて、ストリーム配信装置210が通信を制御することができるからである。すなわち、可用帯域モデルは、通信ネットワーク3の通信帯域が、時間の経過に伴い推移する(関係している)程度を表す。
さらに、第3の実施形態に係るストリーム配信装置210によれば、情報の通信の品質を、さらに短時間に向上することができる。この理由は、ビットレートモデルが折れ線によって構成されているので、ストリーム配信装置210が、該ビットレートモデルに含まれているパラメタを、少ない計算量にて算出することができるからである。
尚、本実施形態においては、ビットレート情報記憶部21にビットレートモデルが格納されているとしたが、第3の実施形態に係るストリーム配信装置210が、上述した式等に従いビットレートモデルを算出するパラメタ算出部を有していてもよい。
<第4の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第4の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図14を参照しながら、本発明の第4の実施形態に係るストリーム配信装置220が有する構成について詳細に説明する。図14は、本発明の第4の実施形態に係るストリーム配信装置220が有する構成を示すブロック図である。
本発明の第4の実施形態に係るストリーム配信装置220は、ストリームデータ入力部11と、符号化部12と、送信部13と、可用帯域部14と、バッファ量推定部15と、遅延モデル作成部16と、品質モデル作成部17と、ビットレートモデル選択部18と、伝送遅延推定部19と、ビットレート情報記憶部22とを有する。
本実施形態において、ビットレート情報記憶部22には、たとえば、図15に例示されているように、タイミングt0にて、ビットレートモデルの値がr0であり、時間が経過するにつれて可用帯域C(t)に収束する指数関数であるビットレートモデルが格納されている。図15は、ビットレートモデルの一例を概念的に表す図である。図15において、横軸は、タイミングを表し、右側であるほど時間が進んでいることを表す。図15において、縦軸は、ビットレートを表し、上側であるほど、ビットレートが増えることを表す。
具体的に、ビットレート情報記憶部22には、式9に例示されているビットレートモデルが格納されている。すなわち、
r(t)=(r0−c0)×exp(b×(t−t0))+c0・・・(式9)、
ただし、b<0、0<r0≦c0。exp(x)は、ネイピア数eに関する指数関数を表す(以降の数式においても同様)。
ビットレート情報記憶部22には、たとえば、図15に例示されているようなビットレートモデルに関して、bが異なっているビットレートモデルが格納されている。
ビットレートモデル選択部18は、ビットレート情報記憶部22に格納されているビットレートモデルのうち、図30等を参照しながら説明した処理と同様に、c0ごとに最適なビットレートモデルを算出する。ビットレートモデル選択部18は、c0ごとに算出した最適なビットレートモデルのうち、タイミングt0からタイミング「t0+T」までの期間における品質モデルの期待値が最大(または、略最大)であるビットレートモデルを選択する。
次に、本発明の第4の実施形態に係るストリーム配信装置220に関する効果について説明する。
本実施形態では、第3の実施形態と同様に、ビットレート情報記憶部22に格納されているビットレートモデルが少ないので、ビットレートモデルを選択する処理に要する所要時間が短いという効果がある。
尚、第3の実施形態においては、ビットレートモデルが直線を用いて表され、また、第4の実施形態においては、ビットレートモデルが指数関数を用いて表されると説明したが、上述した例に限定されない。ビットレートモデルは、タイミングtと一つ以上のパラメタによって定義される関数であればよい。また、ビットレート情報記憶部22には、直線と指数関数とから構成されている集合のように、複数種類のビットレートモデルを含むビットレート情報が格納されていてもよい。
次に、本発明の第4の実施形態に係るストリーム配信装置220に関する効果について説明する。
第4の実施形態に係るストリーム配信装置220によれば、通信ネットワークを介して、情報の通信の品質を短時間に向上することができる。この理由は、第1の実施形態にて上述した理由と同様である。
尚、本実施形態においては、ビットレート情報記憶部22にビットレートモデルが格納されているとしたが、第4の実施形態に係るストリーム配信装置220が、上述した式等に従いビットレートモデルを算出するパラメタ算出部を有していてもよい。
<第5の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第5の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図16を参照しながら、本発明の第5の実施形態に係るストリーム配信装置230が有する構成について詳細に説明する。図16は、本発明の第5の実施形態に係るストリーム配信装置230が有する構成を示すブロック図である。
本発明の第5の実施形態に係るストリーム配信装置230は、ストリームデータ入力部11と、符号化部12と、送信部13と、可用帯域部14と、バッファ量推定部15と、遅延モデル作成部16と、品質モデル作成部17と、ビットレートモデル選択部18と、伝送遅延推定部19と、ビットレート情報記憶部23とを有する。
本実施形態において、ビットレート情報記憶部23には、たとえば、図17乃至図19に例示されているように、タイミングt0の直前のビットレートに基づき(たとえば、タイミングt0の直前のビットレートの値と同一の値、または、類似している値)決定される値r0であるビットレートモデルが格納されている。図17乃至図19は、ビットレートモデルの一例を概念的に表す図である。図17乃至図19において、横軸は、タイミングを表し、右側であるほど時間が進んでいることを表す。図17乃至図19において、縦軸は、ビットレートを表し、上側であるほどビットレートが増えることを表す。
具体的に、図17乃至図19を参照しながら、各図に例示されているビットレートモデルについて説明する。説明の便宜上、図17乃至図19に示された例の場合に、可用帯域C(t)は、タイミングt0における可用帯域c0にて一定であるとする。
ビットレート情報記憶部23には、式10に示されたビットレートモデル(図17に例示)が格納されている。すなわち、
r(t)=a1×(t−t0)+r0(ただし、t0≦t≦t1)、
a2×(t−t1)+a1×(t1−t0)+r0(ただし、t1<t≦t2)、
C(t)(ただし、t2<t)・・・(式10)。
説明の便宜上、タイミングt0におけるビットレートをr0と表す。該ビットレートモデルは、タイミングt0にてr0であり、タイミングt0からタイミングt1までの期間において、傾きa1(ただし、a1<0)にて減少するとする。該ビットレートモデルは、タイミングt1からタイミングt2までの期間において、傾きa2(ただし、a2>0)にて増加するとする。タイミングt2以降にて、該ビットレートモデルは、可用帯域c0(または、略可用帯域c0)を表す値である。
ビットレート情報記憶部23には、たとえば、図17に例示されているようなビットレートモデルに関して、a1と、a2と、t1(t0≦t1≦t0+T)とのうち少なくともいずれかが異なっているビットレートモデルが格納されている。
ビットレートモデル選択部18は、ビットレート情報記憶部23に格納されているビットレートモデルのうち、第3の実施形態、または、第4の実施形態にて上述した処理と同様に、c0ごとに、タイミングt0からタイミング「t0+T」までの期間における品質モデルが最大(または、略最大)であるビットレートモデルを、複数個、選択する。ビットレートモデル選択部18は、選択した複数個のビットレートモデルのうち、該ビットレートモデルに関する品質モデルの期待値(平均値)が最大(または、略最大)となるビットレートモデルを選択する。
ビットレート情報記憶部23に格納されているビットレートモデルが多いほど(すなわち、a1とa2とt1との組み合わせが多いほど)、品質モデルの最大値が大きい可能性は高い。すなわち、ビットレート情報記憶部23に格納されているビットレートモデルが多いほど、より、得られるユーザ品質が高くなる可能性が高いという効果を奏する。
尚、ビットレートモデルを選択するのに要する時間(すなわち、選択処理に要する所要時間)に基づき、ビットレート情報記憶部23に格納されているビットレートモデルの個数を決定してもよい。この場合に、ストリーム配信装置230によれば、ビットレートモデルを選択するタイミングが決められている場合であっても、高品質にビットレートを決定することができる。
さらに、ビットレートモデル選択部18は、タイミングt2にてバッファに格納されているデータ量が0(または、略0)になるように、ビットレートモデル(すなわち、本実施形態においては、a1とa2とt1との組)を選択してもよい。具体的に、ビットレートモデル選択部18がビットレートモデルを選択する手順について説明する。
バッファに格納されているデータ量(すなわち、バッファ量B(t))は、ビットレートモデルr(t)が表すビットレートが可用帯域よりも多い場合に(すなわち、r(t)>C(t))の場合に増加し、ビットレートモデルr(t)が表すビットレートが可用帯域よりも少ない場合に(すなわち、r(t)<C(t))の場合に減少する。図17を参照すると、ビットレートモデルr(t)が表すビットレートが可用帯域より超過しているデータ量は、領域aの面積を表す。ビットレートモデルr(t)が表すビットレートが可用帯域より少ないデータ量は、領域bの面積を表す。したがって、ビットレートモデル選択部18は、a1とa2とt1とのうち、いずれか2つの値を算出する。その後、ビットレートモデル選択部18は、タイミングt0においてバッファに格納されているデータ量(すなわち、バッファ量B(t0))と、バッファに格納されるデータ量(すなわち、領域aの面積)との和が、バッファから削除される量(すなわち、領域bの面積)と等しいという条件式に従い、残りの1つの値を算出する。この場合に、ビットレートモデル選択部18は、条件式「B(t0)+(領域aの面積)=(領域bの面積)」に従い、残りの1つの値を算出する。
次に、図18を参照しながら、ビットレート情報記憶部23に格納されているビットレートモデルについて説明する。ビットレート情報記憶部23には、上述した式Aに示されたビットレートモデル(図18に例示)が格納されている。ただし、タイミングt0におけるビットレートr0は、タイミングt0の直前のビットレートに基づき(たとえば、タイミングt0の直前のビットレートと同一の値、または、類似している値)算出された値である。
式Aに関する説明は、上述した説明と同様であるので、本実施形態においては、説明を省略する。
次に、図19を参照しながら、ビットレート情報記憶部23に格納されているビットレートモデルについて説明する。ビットレート情報記憶部23には、式11に示されたビットレートモデル(図19に例示)が格納されている。すなわち、
r(t)=a1×(t−t0)+r0(ただし、t0≦t≦t1)、
a2×(t−t1)+a1×(t1−t0)+r0(ただし、t1<t≦t2)、
C(t)(ただし、t2<t)・・・(式11)。
説明の便宜上、タイミングt0におけるビットレートをr0と表す。該ビットレートモデルは、タイミングt0にてr0なる値であり、タイミングt0からタイミングt1までの期間において、傾きa1(ただし、a1<0)にて減少するとする。該ビットレートモデルは、タイミングt1からタイミングt2までの期間において、傾きa2(ただし、a2>0)にて増加するとする。タイミングt2以降にて、該ビットレートモデルは、可用帯域c0(または、略可用帯域c0)となる値である。ただし、ビットレートモデルr(t)は、タイミングt0からタイミング(t0+T)までの期間において、可用帯域C(t)よりも小さな値(すなわち、r(t)<C(t))である。略可用帯域c0は、たとえば、可用帯域c0から誤差が5%以内程度の範囲内の数値を表す。
ビットレート情報記憶部23には、たとえば、図19に例示されているようなビットレートモデルに関して、a1と、a2と、t1(t0≦t1≦t0+T)とのうち少なくともいずれかが異なっているビットレートモデルが格納されている。
ビットレートモデル選択部18は、ビットレート情報記憶部23に格納されているビットレートモデルのうち、第3の実施形態、または、第4の実施形態にて上述した処理と同様に、c0ごとにタイミングt0からタイミング「t0+T」までの期間における品質モデルが最大(または、略最大)であるビットレートモデルを、複数個、選択する。ビットレートモデル選択部18は、選択した複数個のビットレートモデルのうち、品質モデルの期待値が最大(または、略最大)となるビットレートモデルを選択する。
ビットレート情報記憶部23に格納されているビットレートモデルが多いほど(すなわち、a1とa2とt1との組み合わせが多いほど)、品質モデルの最大値が大きい可能性は高い。すなわち、ビットレート情報記憶部23に格納されているビットレートモデルが多いほど、より、得られる品質が高くなる可能性が高いという効果を奏する。
尚、ビットレートモデルを選択する処理に要する所要時間(すなわち、選択処理に要する所要時間)に基づき、ビットレート情報記憶部23に格納されているビットレートモデルの個数を決定してもよい。この場合に、ストリーム配信装置230によれば、ビットレートモデルを選択する所要時間が決められている場合であっても、高品質にてビットレートを決定することができる。
さらに、ビットレートモデル選択部18は、タイミングt2において、バッファに格納されているデータ量が0(または、略0)になるように、ビットレートモデル(すなわち、本実施形態においては、a1とa2とt1との組)を選択してもよい。具体的に、ビットレートモデル選択部18がビットレートモデルを選択する手順について説明する。
図19に示された例においては、ビットレートモデルr(t)が、タイミングt0からタイミングt2までの期間において可用帯域C(t)よりも少ないので、バッファに格納されているデータ量は、該期間において減少する。ビットレートモデル選択部18は、a1とa2とt1とのうち、いずれか2つの値を算出する。その後、ビットレートモデル選択部18は、タイミングt0においてバッファに格納されているデータ量(すなわち、バッファ量B(t0))と、バッファから削除される量(すなわち、領域Yの面積)と等しいという条件式に従い、残りの1つの値を算出する。この場合に、ビットレートモデル選択部18は、条件式「B(t0)=(領域Yの面積)」に従い、残りの1つの値を算出する。
また、ビットレート情報記憶部23には、バッファに格納されているデータ量(すなわち、バッファ量B(t0))が所定の値より大きな値である場合に関するビットレートモデルが格納されていてもよい。このようなビットレートモデルは、ビットレートを一時的に、可用帯域よりも一層減少させ、その後、可用帯域まで増大させることによって、ユーザ体感品質が良化する程度が、より一層、大きい。したがって、本実施形態に係るストリーム配信装置230によれば、ビットレートが急激に変化することを低減することによって、ユーザ体感品質が良化する可能性が高いという効果を奏する。
第5の実施形態においては、ビットレートモデルの例として、直線が連続的につながれたモデル(すなわち、折れ線によって表されるモデル)が例示されているが、ビットレートモデルは、上述した例に限定されない。ビットレートモデルは、タイミングに関する関数であればよい。
次に、本発明の第5の実施形態に係るストリーム配信装置230に関する効果について説明する。
第5の実施形態に係るストリーム配信装置230によれば、通信ネットワークを介して、情報の通信の品質を短時間に向上することができる。この理由は、第1の実施形態にて上述した理由と同様である。
さらに、第5の実施形態に係るストリーム配信装置230によれば、より高品質な情報の通信を短時間に実現することができる。この理由は、タイミングt0にて品質が悪くなる可能性を低減しているからである。ストリーム配信装置230は、たとえば、タイミングt0におけるビットレートr0を、タイミングt0の直前のビットレートと同じ値(または、類似している値)に設定することによって、タイミングt0にて品質が悪くなる可能性を低減する。
尚、本実施形態においては、ビットレート情報記憶部23にビットレートモデルが格納されているとしたが、第5の実施形態に係るストリーム配信装置230が、上述した式等に従いビットレートモデルを算出するパラメタ算出部を有していてもよい。
<第6の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第6の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図20を参照しながら、本発明の第6の実施形態に係るストリーム配信装置240が有する構成について詳細に説明する。図20は、本発明の第6の実施形態に係るストリーム配信装置240が有する構成を示すブロック図である。
本発明の第6の実施形態に係るストリーム配信装置240は、ストリームデータ入力部11と、符号化部12と、送信部13と、可用帯域部14と、バッファ量推定部15と、遅延モデル作成部16と、品質モデル作成部17と、ビットレートモデル選択部18と、伝送遅延推定部19と、ビットレート情報記憶部24とを有する。
本実施形態において、ビットレート情報記憶部24には、たとえば、後述する式12に示されているように、2つの指数関数に基づき算出されるビットレートモデル(図21に例示)が格納されている。図21は、ビットレートモデルの一例を概念的に表す図である。図21において、横軸は、タイミングを表し、右側であるほど時間が進んでいることを表す。図21において、縦軸は、ビットレートを表し、上側であるほど、ビットレートが増えることを表す。
具体的に、図21を参照しながら、ビットレートモデルについて説明する。説明の便宜上、図21に示された例の場合に、可用帯域C(t)は、タイミングt0における可用帯域c0にて一定であるとする。
ビットレート情報記憶部24には、式12に示されたビットレートモデル(図21に例示)が格納されている。すなわち、
r(t)=a1×exp(b1×(t−t0))+c0+a2×exp(d×b2×(t−t0))・・・(式12)、
ただし、a1<0、a2≧0、b1<0、b2<0、d>1、a1+a2+c0=r0。
式12に示されたビットレートモデルr(t)のうち、「a1×exp(b1×(t−t0))+c0」は、タイミングtが十分大きな値である場合に、第4の実施形態と同様にc0に収束する指数関数である。すなわち、a2が0である場合に、式12は、第4の実施形態に示された式9と等価な式を表す。また、式12に示されたビットレートモデルr(t)のうち、「a2×exp(d×b2×(t−t0))」は、タイミングtが十分大きな値である場合に、0に収束する指数関数である。また、「a2×exp(d×b2×(t−t0))」は、d×b2<b1である場合に、「a1×exp(b1×(t−t0))+c0」に比べて急速に収束する。したがって、式12に示されたビットレートモデルは、図21に例示されているように、該ビットレートモデルの値が、時間が経過するにつれて、一旦低下した後に可用帯域c0に収束する関数である。
ビットレート情報記憶部24には、たとえば、図21に例示されているようなビットレートモデルに関して、a1と、a2と、b1と、b2と、dとのうち少なくともいずれかが異なっているビットレートモデルが格納されている。
第3の実施形態乃至第5の実施形態にて上述した処理と同様に、ビットレートモデル選択部18は、ビットレート情報記憶部24に格納されているビットレートモデルのうち、c0ごとに、タイミングt0からタイミング「t0+T」までの期間における品質モデルが最大(または、略最大)であるビットレートモデルを、複数個、選択する。ビットレートモデル選択部18は、さらに、図29等を参照しながら説明したような処理に従い、選択した複数個のビットレートモデルのうち、品質モデルの期待値が最大(または、略最大)となるビットレートモデルを選択する。
ビットレート情報記憶部24に格納されているビットレートモデルが多いほど(すなわち、a1と、a2と、b1と、b2と、dとの組み合わせが多いほど)、品質モデルの最大値が大きい可能性は高い。すなわち、ビットレート情報記憶部24に格納されているビットレートモデルが多いほど、より、得られるユーザ品質が高くなる可能性が高いという効果を奏する。
尚、ビットレートモデルを選択するのに要する時間(すなわち、選択処理に要する所要時間)に基づき、ビットレート情報記憶部24に格納されているビットレートモデルの個数を決定してもよい。この場合に、ストリーム配信装置240によれば、ビットレートモデルを選択するタイミングが決められている場合であっても、高品質にてビットレートを決定することができる。
第6の実施形態においては、ビットレートモデルの例として、指数関数を用いて記載されたモデルが例示されているが、ビットレートモデルは、上述した例に限定されない。ビットレートモデルは、タイミングに関する関数であればよい。
次に、本発明の第6の実施形態に係るストリーム配信装置240に関する効果について説明する。
第6の実施形態に係るストリーム配信装置240によれば、通信ネットワークを介して、情報の通信の品質を短時間に向上することができる。この理由は、第1の実施形態にて上述した理由と同様である。
さらに、第6の実施形態に係るストリーム配信装置240によれば、より高品質な情報の通信の品質を短時間に向上することができる。この理由は、ビットレート情報記憶部24に格納されているビットレートモデルが指数関数の和として設定されているので、ビットレートが急激に変化してしまう可能性が低いからである。この結果、第6の実施形態に係るストリーム配信装置240によれば、品質が悪化してしまう可能性が低いので、より高品質な情報の通信を短時間に実現することができる。
尚、本実施形態においては、ビットレート情報記憶部24にビットレートモデルが格納されているとしたが、第6の実施形態に係るストリーム配信装置240が、上述した式等に従いビットレートモデルを算出するパラメタ算出部を有していてもよい。
<第7の実施形態>
次に、本発明の第7の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図22を参照しながら、本発明の第7の実施形態に係るビットレート指示装置71が有する構成について詳細に説明する。図22は、本発明の第7の実施形態に係るビットレート指示装置71が有する構成を示すブロック図である。
本発明の第7の実施形態に係るビットレート指示装置71は、品質モデル作成部72と、遅延モデル作成部73と、ビットレート指示部74とを有する。
ビットレート指示装置71は、通信ネットワーク3を制御している制御装置75と接続(または、通信接続)することができる。ビットレート指示装置71は、図5、図13、図15、図17乃至図19、または、図21等を参照しながら説明したようなビットレートモデルを複数含むビットレート情報76を参照することができる。すなわち、ビットレート指示装置71は、通信ネットワーク3を介して通信されるデータの単位時間あたりのデータ量が時間の経過に伴い推移する程度を表すビットレートモデルを、複数含むビットレート情報76を参照することができる。
遅延モデル作成部73は、ビットレート情報76に含まれているビットレートモデルと、上述したような可用帯域モデルとの差分に基づき、通信ネットワーク3を介してデータが通信される場合に遅延する時間を決定可能な遅延モデルを作成する。すなわち、遅延モデル作成部73は、ビットレート情報76に含まれているビットレートモデルと、通信ネットワーク3の通信帯域が、時間の経過に伴い推移する程度を表す可用帯域モデルとの差分に基づき、該遅延モデルを作成する。遅延モデル作成部73は、該ビットレートモデルと、該可用帯域関数とに関する遅延モデルを、たとえば、式1乃至式5等に従い作成する。遅延モデルは、通信ネットワーク3を介した通信の遅延時間が、時間の経過に伴い推移する程度を表す。
次に、品質モデル作成部72は、遅延モデル作成部73が作成した遅延モデルに従い遅延が生じ、さらに、該ビットレートモデルに従いビットレートが制御された場合における通信の品質を決定可能な品質モデルを、たとえば、特許文献1等に開示された方法に従い算出する。この場合に、品質モデル作成部72は、遅延モデル作成部73が作成した遅延モデルと、該ビットレートモデルとを用いて該品質モデルを作成する。
品質モデル作成部72、及び、遅延モデル作成部73は、たとえば、ビットレート情報76に含まれている各ビットレートモデルに対して、上述した処理を実行する。
ビットレート指示部74は、ビットレート情報76に含まれているビットレートモデルのうち、該ビットレートモデルに対して品質モデル作成部72が作成した品質モデルの期待値が大きいビットレートモデルを選択する。すなわち、ビットレート指示部74は、ビットレート情報76に含まれているビットレートモデルのうち、品質モデルに従い決定される品質が、ある期間に関して大きなビットレートモデルを選択する。ビットレート指示部74は、選択したビットレートモデルに従い通信速度を制御するよう要求する要求情報を、通信ネットワーク3を制御している制御装置75に対して送信する。
制御装置75は、ビットレート指示部74が送信した要求情報を受信し、受信した要求情報にて指示されたビットレートモデルに従い、通信ネットワーク3における通信を制御する。
遅延モデル作成部73は、たとえば、図2に示された遅延モデル作成部16が有している機能を用いて実現することができる。品質モデル作成部72は、たとえば、図2に示された品質モデル作成部17が有している機能を用いて実現することができる。ビットレート指示部74は、図2に示されたビットレートモデル選択部18が有している機能、送信部13が有している機能を用いて実現することができる。まとめると、ビットレート指示装置71は、図2に示されたストリーム配信装置1、図12に示されたストリーム配信装置210、図14に示されたストリーム配信装置220、図16に示されたストリーム配信装置230、または、図20に示されたストリーム配信装置240等が有している機能を用いて実現することができる。
次に、第7の実施形態に係るビットレート指示装置71に関する効果について説明する。
第7の実施形態に係るビットレート指示装置71によれば、通信ネットワークを介して、情報の通信の品質を短時間に向上することができる。この理由は、特許文献1に開示された通信装置より長い期間に亘るビットレートを算出し、算出したビットレートに従い通信を制御することができるからである。したがって、特許文献1に開示された通信装置より通信を制御する回数が減少するので、本実施形態に係るビットレート指示装置71によれば、高品質な情報の通信を短時間に実現することができる。
<第8の実施形態>
次に、本発明の第8の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図23を参照しながら、本発明の第8の実施形態に係るビットレート指示装置91が有する構成について詳細に説明する。図23は、本発明の第8の実施形態に係るビットレート指示装置91が有する構成を示すブロック図である。
本発明の第8の実施形態に係るビットレート指示装置91は、品質モデル作成部92と、ビットレート指示部93とを有する。
ビットレート指示装置91は、通信ネットワーク3を制御している制御装置75と接続(または、通信接続)することができる。ビットレート指示装置91は、図5、図13、図15、図17乃至図19、または、図21等を参照しながら説明したようなビットレートモデルが複数格納されているビットレート情報記憶部94を参照することができる。すなわち、ビットレート指示装置91は、通信ネットワーク3を介して通信されるデータの単位時間あたりのデータ量が時間の経過に伴い推移する程度を表すビットレートモデルが複数格納されているビットレート情報記憶部94を参照することができる。また、ビットレート情報記憶部94には、さらに、通信ネットワーク3に関する可用帯域が時間の経過に伴い推移する程度を表す可用帯域モデルと、該可用帯域モデルが生じる可能性とが格納されている。説明の便宜上、ビットレート情報記憶部94には、可用帯域モデルが格納されているとしたが、たとえば、第1の実施形態に示された可用帯域部14(図2)によって、通信ネットワーク3に関する可用帯域モデルが作成されてもよい。
品質モデル作成部92は、ビットレート情報記憶部94に含まれているビットレートモデルと、可用帯域モデルとを読み取る。ビットレートモデルは、通信ネットワーク3を介して通信されるデータに関する単位時間あたりのデータ量が、時間の経過に伴い推移する程度を表す。ビットレートモデルの一例は、図5等に示されている。可用帯域モデルの一例は、図13、図15等に示されている。品質モデル作成部92は、読み取ったビットレートモデルと、可用帯域モデルとに基づき、図4A、図4B、及び、図5乃至図7等を参照しながら説明したような処理と同様な処理を実行することによって、通信ネットワーク3にて実行される通信の品質が時間の経過に伴い推移する程度を表す品質モデルを作成する。品質モデル作成部92は、各ビットレートモデルに関して品質モデル(図7に例示)を作成する。
ビットレート指示部93は、品質モデル作成部92が読み取った該可用帯域モデルが生じる可能性を、ビットレート情報記憶部94から読み取り、読み取った可能性に基づき、品質モデル作成部92が該可用帯域モデルに関して作成した品質モデルに関する期待値を算出する。たとえば、ビットレート指示部93は、式13、または、式14を参照しながら説明した処理と同様な処理に従い、該品質モデルに関する期待値を算出する。ビットレート指示部93は、各ビットレートモデルに関して該期待値を算出する。
ビットレート指示部93は、ビットレート情報記憶部94に含まれているビットレートモデルのうち、該ビットレートモデルに関して算出された品質モデルの期待値が大きいビットレートモデルを選択する。ビットレート指示部93は、選択したビットレートモデルに従い通信速度を制御するよう要求する要求情報を、通信ネットワーク3を制御している制御装置75に対して送信する。
制御装置75は、ビットレート指示部93が送信した要求情報を受信し、受信した要求情報にて指示されたビットレートモデルに従い、通信ネットワーク3における通信を制御する。
品質モデル作成部92は、たとえば、図2に示された品質モデル作成部17が有している機能等を用いて実現することができる。ビットレート指示部93は、図2に示されたビットレートモデル選択部18が有している機能、送信部13が有している機能等を用いて実現することができる。まとめると、ビットレート指示装置91は、図2に示されたストリーム配信装置1、図12に示されたストリーム配信装置210、図14に示されたストリーム配信装置220、図16に示されたストリーム配信装置230、または、図20に示されたストリーム配信装置240等が有している機能を用いて実現することができる。
次に、第8の実施形態に係るビットレート指示装置91に関する効果について説明する。
第8の実施形態に係るビットレート指示装置91によれば、通信ネットワーク3に関して、ある期間における通信帯域を一意に決めることができない場合に、情報の通信の品質を短時間に向上することができる。この理由は、通信ネットワーク3に関して、可用帯域が生じる可能性に基づき、期待される通信の品質を算出するからである。
また、本発明の各実施形態に係るストリーム配信装置、または、ビットレート指示装置に関しても、上述した理由と同様な理由に基づき、同様な効果を奏する。
(ハードウェア構成例)
上述した本発明の第1の実施形態乃至第6の実施形態に係るストリーム配信装置、または、第7の実施形態乃至第8の実施形態に係るビットレート指示装置を、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、係るストリーム配信装置、または、係るビットレート指示装置は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現してもよい。また、係るストリーム配信装置、または、係るビットレート指示装置は、専用の装置として実現してもよい。
図24は、第1の実施形態乃至第6の実施形態に係るストリーム配信装置、または、第7の実施形態乃至第8の実施形態に係るビットレート指示装置を実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。計算処理装置80は、中央処理演算装置(Central_Processing_Unit、以降「CPU」と表す)81、メモリ82、ディスク83、不揮発性記録媒体84、通信インターフェース(以降、「通信IF」と表す)87、及び、ディスプレー88を有する。計算処理装置80は、入力装置85、出力装置86に接続可能であってもよい。計算処理装置80は、通信IF87を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
不揮発性記録媒体84は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact_Disc)、デジタルバーサタイルディスク(Digital_Versatile_Disc)である。また、不揮発性記録媒体84は、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid_State_Drive)等であってもよい。不揮発性記録媒体84は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体84は、上述した媒体に限定されない。また、不揮発性記録媒体84の代わりに、通信IF87、及び、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
すなわち、CPU81は、ディスク83に格納されているソフトウェア・プログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際にメモリ82にコピーし、演算処理を実行する。CPU81は、プログラム実行に必要なデータをメモリ82から読み取る。表示が必要な場合には、CPU81は、ディスプレー88に出力結果を表示する。外部への出力が必要な場合には、CPU81は、出力装置86に出力結果を出力する。外部からプログラムを入力する場合、CPU81は、入力装置85からプログラムを読み取る。CPU81は、上述した図1、図2、図9、図12、図14、図16、図20、図22、または、図23に示す各部が表す機能(処理)に対応するところのメモリ82にあるストリーム配信プログラム(図3、図4A、図4B、図11)、または、ビットレート指示プログラムを解釈し実行する。CPU81は、上述した本発明の各実施形態において説明した処理を順次実行する。
すなわち、このような場合、本発明は、係るストリーム配信プログラム、または、係るビットレート指示プログラムによっても成し得ると捉えることができる。さらに、係るストリーム配信プログラム、または、係るビットレート指示プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかし、上述した各実施形態により例示的に説明した本発明は、以下には限られない。
(付記1)
通信ネットワークを介して通信されるデータに関する単位時間あたりのデータ量が、時間の経過に伴い推移する程度を表すビットレートモデルを複数含むビットレート情報内の前記ビットレートモデルと、前記通信ネットワークに関する通信帯域が時間の経過に伴い推移する程度を表す可用帯域モデルとに基づき、前記通信の品質が時間の経過に伴い推移する程度を表す品質モデルを作成する品質モデル作成手段と、
作成された前記品質モデルに関する期待値を、前記可用帯域モデルが生じる可能性に基づき求め、前記ビットレート情報に含まれている複数の前記ビットレートモデルのうち、前記期待値が他のビットレートモデルよりも大きなビットレートモデルに従い、前記単位時間あたりのデータ量を制御するよう、前記通信を制御している制御装置に指示するビットレート指示手段と
を備えるビットレート指示装置。
(付記2)
複数の前記可用帯域モデルに基づき、あるタイミングに前記通信帯域が、ある可用帯域である前記可能性を算出する可用帯域手段
をさらに備え、
前記ビットレート指示手段は、前記可用帯域手段が算出した前記可能性に基づき、前記期待値を求める
付記1に記載のビットレート指示装置。
(付記3)
前記可用帯域手段は、自装置が有する処理余力に応じて前記ある可用帯域の幅を決定する
付記2に記載のビットレート指示装置。
(付記4)
前記ビットレートモデルと、前記可用帯域モデルとの差分に基づき、前記通信ネットワークを介して行われる通信の遅延時間が、時間の経過に伴い推移する程度を表す遅延モデルを作成する遅延モデル作成手段
をさらに備え、
前記品質モデル作成手段は、前記遅延モデルと、前記ビットレートモデルと、前記遅延モデルに基づき前記品質モデルを作成する
付記1乃至付記3のいずれかに記載のビットレート指示装置。
(付記5)
前記ビットレート指示手段は、前記品質モデルが表す前記品質の期待値が、ある期間において、最大、または、略最大である前記ビットレートモデルを前記ビットレート情報から選択する
付記1乃至付記4のいずれかに記載のビットレート指示装置。
(付記6)
前記ビットレート情報が格納されているビットレート情報記憶手段
をさらに備え、
前記ビットレート情報は、第1タイミング以降に関して、前記可用帯域モデルから決定される前記通信帯域の確率分布に含まれている値を含む
付記1乃至付記5のいずれかに記載のビットレート指示装置。
(付記7)
前記ビットレート情報に含まれている前記ビットレートモデルは、複数の直線から構成されている折れ線を表す情報である
付記6に記載のビットレート指示装置。
(付記8)
前記ビットレートモデルは、前記第1タイミング以前の第2タイミングまでの期間にて負の傾きであり、前記第2タイミングから前記第1タイミングまでの期間に正の傾きであり、前記第1タイミング以降にて傾きが0または略0である
付記6、または、付記7に記載のビットレート指示装置。
(付記9)
前記ビットレートモデルは、前記第1タイミング以前にて正の傾きであり、前記第1タイミング以降にて傾きが0または略0である
付記6、または、付記7に記載のビットレート指示装置。
(付記10)
前記通信ネットワークにて遅延している通信にて処理される対象であるデータが先入れ先出しにて格納されているバッファに格納されているデータ量が、前記第1タイミングにて0または略0である条件が成立している前記正の傾き、前記負の傾き、及び、前記第2タイミングをパラメタとして算出し、算出した前記パラメタが表す前記ビットレートモデルを前記ビットレート情報記憶手段に格納するパラメタ算出手段
をさらに備える付記8に記載のビットレート指示装置。
(付記11)
前記ビットレート情報は、時間が経過するのに応じて、前記可用帯域モデルが表す前記通信帯域に近づく指数関数を用いて表されるビットレートモデルを含む
付記5乃至付記10のいずれかに記載のビットレート指示装置。
(付記12)
情報処理装置によって、通信ネットワークを介して通信されるデータに関する単位時間あたりのデータ量が、時間の経過に伴い推移する程度を表すビットレートモデルを複数含むビットレート情報内の前記ビットレートモデルと、前記通信ネットワークに関する通信帯域が時間の経過に伴い推移する程度を表す可用帯域モデルとに基づき、前記通信の品質が時間の経過に伴い推移する程度を表す品質モデルを作成し、作成された前記品質モデルに関する期待値を、前記可用帯域モデルが生じる可能性に基づき求め、前記ビットレート情報に含まれている複数の前記ビットレートモデルのうち、前記期待値が他のビットレートモデルよりも大きなビットレートモデルに従い、前記単位時間あたりのデータ量を制御するよう、前記通信を制御している制御装置に指示する
ビットレート指示方法。
(付記13)
通信ネットワークを介して通信されるデータに関する単位時間あたりのデータ量が、時間の経過に伴い推移する程度を表すビットレートモデルを複数含むビットレート情報内の前記ビットレートモデルと、前記通信ネットワークに関する通信帯域が時間の経過に伴い推移する程度を表す可用帯域モデルとに基づき、前記通信の品質が時間の経過に伴い推移する程度を表す品質モデルを作成する品質モデル作成機能と、
作成された前記品質モデルに関する期待値を、前記可用帯域モデルが生じる可能性に基づき求め、前記ビットレート情報に含まれている複数の前記ビットレートモデルのうち、前記期待値が他のビットレートモデルよりも大きなビットレートモデルに従い、前記単位時間あたりのデータ量を制御するよう、前記通信を制御している制御装置に指示するビットレート指示機能と
をコンピュータに実現させるビットレート指示プログラム。
この出願は、2016年8月17日に出願された日本出願特願2016−160018を基礎とする優先権を主張し、その開示の全てをここに取り込む。