(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024036728
(43)【公開日】2024-03-18
(54)【発明の名称】情報処理プログラム、情報処理装置および情報処理方法
(51)【国際特許分類】
H04L 43/04 20220101AFI20240311BHJP
H04L 43/0852 20220101ALI20240311BHJP
【FI】
H04L43/04
H04L43/0852
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022141147
(22)【出願日】2022-09-06
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】大浦 淳貴
(72)【発明者】
【氏名】菊月 達也
(72)【発明者】
【氏名】和田 章宏
(72)【発明者】
【氏名】椎▲崎▼ 耕太郎
(72)【発明者】
【氏名】二宮 照尚
(72)【発明者】
【氏名】横尾 郁
(57)【要約】
【課題】通信装置の動作に依存した遅延分布の推論を行う。
【解決手段】制御部11は、通信装置2-1とのネットワーク4を介した通信状態st1において、通信装置2-1からネットワーク4に送信された映像フレームに含まれる複数のパケットの遅延時間td1を測定し、遅延時間td1にもとづいてパケットをグループ分けする。制御部11は、通信装置2-2がネットワーク4に通信負荷をかける通信負荷状態st2において、通信装置2-1から送信された映像フレームに含まれる複数のパケットの遅延時間td2と、映像フレームの送信時におけるネットワーク4の通信負荷d1とを測定する。そして、制御部11は、遅延時間td2にもとづいてグループごとの遅延分布を算出し、通信負荷d1とグループごとの遅延分布との関係を機械学習して学習済みモデルm0を作成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータに、
複数の通信装置のうち第1の通信装置がネットワークを介して通信を行う第1の状態において、前記第1の通信装置から前記ネットワークに送信された映像フレームに含まれる複数のパケットのそれぞれについての第1の遅延時間を測定し、前記第1の遅延時間にもとづいて前記複数のパケットをグループ分けし、
前記第1の通信装置を除く他の通信装置が前記ネットワークに通信負荷をかける第2の状態において、前記第1の通信装置から送信された前記映像フレームに含まれる前記複数のパケットのそれぞれについての第2の遅延時間と、前記映像フレームの送信時における前記ネットワークの第1の通信負荷とを測定し、前記第2の遅延時間にもとづいてグループごとの第1の遅延分布を算出し、前記第1の通信負荷と前記グループごとの前記第1の遅延分布との関係を機械学習することによって学習済みモデルを作成する、
処理を実行させる情報処理プログラム。
【請求項2】
前記コンピュータに、
運用状態で、前記映像フレームを複数含む映像データを前記第1の通信装置から送信した際の前記ネットワークの第2の通信負荷を測定し、
前記第2の通信負荷を前記学習済みモデルに入力して、前記映像データの送信時における前記グループごとの第2の遅延分布を算出し、
前記グループごとの前記第2の遅延分布にもとづいて、前記映像データの送信時におけるグループ全体の遅延分布を算出する、
処理をさらに実行させる請求項1記載の情報処理プログラム。
【請求項3】
前記コンピュータに、前記映像データを前記第1の通信装置から送信した際の前記グループごとのパケット数比率を算出する処理をさらに実行させ、
前記グループ全体の遅延分布の算出では、
前記グループごとの前記第2の遅延分布のそれぞれを前記グループごとの前記パケット数比率で重み付けし、
重み付けされた前記グループごとの前記第2の遅延分布を足し合わせて、前記グループ全体の遅延分布を算出する、
請求項2記載の情報処理プログラム。
【請求項4】
前記コンピュータに、
前記遅延分布をガンマ分布とした場合、形状母数、尺度母数および位相を前記グループごとに学習する前記学習済みモデルを作成する、処理を実行させる請求項1記載の情報処理プログラム。
【請求項5】
前記コンピュータに、
前記複数のパケットのうち、隣接するパケット間の前記第1の遅延時間の差が閾値以下の場合に前記隣接するパケットを同一グループに分類する、処理を実行させる請求項1記載の情報処理プログラム。
【請求項6】
前記コンピュータに、
前記通信装置の通信アプリケーションにもとづく1フレームあたりのパケット数の出現頻度を測定し、前記出現頻度をパケット位置ごとのパケット数に変換し、前記パケット位置とグループ番号との対応関係にもとづいて、前記グループごとの前記パケット数比率を算出する、処理を実行させる請求項3記載の情報処理プログラム。
【請求項7】
複数の通信装置のうち第1の通信装置がネットワークを介して通信を行う第1の状態において、前記第1の通信装置から前記ネットワークに送信された映像フレームに含まれる複数のパケットのそれぞれについての第1の遅延時間を測定し、前記第1の遅延時間にもとづいて前記複数のパケットをグループ分けし、
前記第1の通信装置を除く他の通信装置が前記ネットワークに通信負荷をかける第2の状態において、前記第1の通信装置から送信された前記映像フレームに含まれる前記複数のパケットのそれぞれについての第2の遅延時間と、前記映像フレームの送信時における前記ネットワークの第1の通信負荷とを測定し、前記第2の遅延時間にもとづいてグループごとの第1の遅延分布を算出し、前記第1の通信負荷と前記グループごとの前記第1の遅延分布との関係を機械学習することによって学習済みモデルを作成する制御部、
を有する情報処理装置。
【請求項8】
コンピュータが、
複数の通信装置のうち第1の通信装置がネットワークを介して通信を行う第1の状態において、前記第1の通信装置から前記ネットワークに送信された映像フレームに含まれる複数のパケットのそれぞれについての第1の遅延時間を測定し、前記第1の遅延時間にもとづいて前記複数のパケットをグループ分けし、
前記第1の通信装置を除く他の通信装置が前記ネットワークに通信負荷をかける第2の状態において、前記第1の通信装置から送信された前記映像フレームに含まれる前記複数のパケットのそれぞれについての第2の遅延時間と、前記映像フレームの送信時における前記ネットワークの第1の通信負荷とを測定し、前記第2の遅延時間にもとづいてグループごとの第1の遅延分布を算出し、前記第1の通信負荷と前記グループごとの前記第1の遅延分布との関係を機械学習することによって学習済みモデルを作成する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
近年、AI(Artificial Intelligence)による情報処理技術や5Gの無線技術等を利用して業務を支援する情報配信サービスの導入が進展している。このようなサービスでは、低遅延の制御を実現するために情報データの遅延分布の推論が行われる場合がある。
【0003】
関連技術としては、例えば、ネットワークのリンクの遅延確率分布とデータロス率の確率分布とから各リンクの通信スループットを推論する技術が提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報配信として映像データを送信する通信装置では、映像データを複数のパケットに分割して送信することが行われる。しかし、通信装置からバースト的なトラフィックのパケット送信が行われるため、通信装置ごとにパケットの遅延分布が変化し、通信装置それぞれの動作に依存した遅延分布を推論することが難しいという問題がある。
【0006】
1つの側面では、本発明は、通信装置の動作に依存した遅延分布の推論を可能にした情報処理プログラム、情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、情報処理プログラムが提供される。情報処理プログラムは、コンピュータに、複数の通信装置のうち第1の通信装置がネットワークを介して通信を行う第1の状態において、第1の通信装置からネットワークに送信された映像フレームに含まれる複数のパケットのそれぞれについての第1の遅延時間を測定し、第1の遅延時間にもとづいて複数のパケットをグループ分けし、第1の通信装置を除く他の通信装置がネットワークに通信負荷をかける第2の状態において、第1の通信装置から送信された映像フレームに含まれる複数のパケットのそれぞれについての第2の遅延時間と、映像フレームの送信時におけるネットワークの第1の通信負荷とを測定し、第2の遅延時間にもとづいてグループごとの第1の遅延分布を算出し、第1の通信負荷とグループごとの第1の遅延分布との関係を機械学習することによって学習済みモデルを作成する、処理を実行させる。
【0008】
また、上記課題を解決するために、上記情報処理プログラムと同様の制御を実行する情報処理装置が提供される。
さらに、上記課題を解決するために、コンピュータが上記情報処理プログラムと同様の制御を実行する情報処理方法が提供される。
【発明の効果】
【0009】
1側面によれば、通信装置の動作に依存した遅延分布の推論が可能になる。
【図面の簡単な説明】
【0010】
【
図1】情報処理装置の一例を説明するための図である。
【
図2】情報処理システムの構成の一例を示す図である。
【
図3】通信装置をドローンとした場合のシステム構成の一例を示す図である。
【
図4】情報処理装置のハードウェア構成の一例を示す図である。
【
図5】背景負荷が無い状態で行われる制御を説明するための図である。
【
図6】背景負荷が有る状態で行われる制御を説明するための図である。
【
図7】パケットのバースト伝送の一例を示す図である。
【
図8】パケットのグループ分けの一例を示す図である。
【
図9】パケット位置とグループ番号との対応テーブルの一例を示す図である。
【
図10】パケットのグループ分けの処理の一例を示すフローチャートである。
【
図11】学習済みモデルの作成の流れの一例を示すフローチャートである。
【
図13】ガンマ分布のパラメータの算出の一例を示す図である。
【
図14】平均二乗誤差が最小になる場合の例を示すである。
【
図15】平均二乗誤差が最小になる場合の例を示すである。
【
図16】学習済みモデルのデータの一例を示す図である。
【
図17】学習済みモデルを用いて運用時の推論モデルを算出する動作の一例を示す図である。
【
図18】パケット数比率の算出の一例を示す図である。
【
図19】パケット数比率の算出の一例を示す図である。
【
図20】パケット数比率の算出の変形例を示す図である。
【
図21】トータル遅延分布を利用した要件判定の一例を示す図である。
【
図22】トータル遅延分布を利用した要件判定の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。
図1は情報処理装置の一例を説明するための図である。情報処理装置10は、制御部11および記憶部12を備え、ネットワーク4を介して、通信装置2-1、2-2に対する通信制御を行う。例えば、通信装置2-1、2-2が無線通信装置の場合、情報処理装置10によって、無線ネットワークを介した通信制御が行われる。また、情報処理装置10は、通信装置2-1、2-2から送信されるパケットの遅延分布の学習済みモデルを作成する。
【0012】
制御部11の機能は、例えば、情報処理装置10が備える図示しないプロセッサが、所定のプログラムを実行することによって実現する。また、記憶部12は、情報処理装置10の主記憶装置として使用され、例えば、通信装置2-1、2-2を運用するための制御情報が記憶される。
【0013】
通信装置2-1から送信されるパケットの遅延分布の学習済みモデルを作成する場合の動作について説明する。
〔ステップS1〕複数の通信装置2-1、2-2のうち、通信装置2-1がネットワーク4を介して通信を行う第1の状態を通信状態st1とする。なお、通信状態st1は、通信装置2-2がネットワーク4に通信負荷をかけない状態である。
【0014】
制御部11は、通信状態st1において、通信装置2-1からネットワーク4に送信された映像フレームに含まれる複数のパケットのそれぞれについての遅延時間td1(第1の遅延時間)を測定する。そして、制御部11は、遅延時間td1にもとづいて複数のパケットをグループ分けする。
【0015】
例えば、制御部11によって、通信装置2-1から送信された映像フレームf1に含まれるパケットp1、・・・、p8、および映像フレームf2に含まれるパケットp11、・・・、p16の各パケットの遅延時間td1が測定されてグループ分けが行われる。
【0016】
図1の例では、パケットp1、p2、p3、p11、p12、p13がグループg1に、パケットp4、p5、p6、p14、p15、p16がグループg2にグループ分けされている。さらに、パケットp7、p8がグループg3にグループ分けされている。
【0017】
〔ステップS2〕通信装置2-2がネットワーク4に通信負荷をかける第2の状態を通信負荷状態st2とする。制御部11は、通信負荷状態st2において、通信装置2-1から送信された映像フレームに含まれる複数のパケットのそれぞれについての遅延時間td2(第2の遅延時間)と、映像フレームの送信時におけるネットワーク4の通信負荷d1(第1の通信負荷)とを測定する。
【0018】
そして、制御部11は、遅延時間td2にもとづいてグループごとの遅延分布を算出し、通信負荷d1とグループごとの遅延分布との関係を機械学習することによって学習済みモデルm0を作成する。
【0019】
図1の例では、制御部11は、遅延時間td2にもとづいてグループgnの遅延分布Pgnを算出し、通信負荷d1とグループgnの遅延分布Pgnとの関係を機械学習することによって学習済みモデルm0を作成している。遅延分布Pgnがガンマ分布である場合、通信負荷d1に対応するグループgnの学習済みモデルm0として、例えば、ガンマ分布の関数(確率密度関数)を決定するパラメータである、形状母数、尺度母数および位相が求められる。
【0020】
このように、情報処理装置10では、通信装置2-1から送信されるパケットの遅延分布の学習済みモデルを作成する場合、通信装置2-2がネットワークに通信負荷をかけない通信状態st1において、通信装置2-1から測定した遅延時間にもとづいてパケットをグループ分けする。
【0021】
そして、情報処理装置10は、通信装置2-2がネットワークに通信負荷をかける通信負荷状態st2において、通信装置2-1から測定した遅延時間にもとづいてグループごとの遅延分布を算出し、通信負荷とグループごとの遅延分布との関係を機械学習して学習済みモデルを作成する。
【0022】
一方、通信装置2-2から送信されるパケットの遅延分布の学習済みモデルを作成する場合も同様である。すなわち、情報処理装置10では、通信装置2-1がネットワークに通信負荷をかけない通信状態st1において、通信装置2-2から測定した遅延時間にもとづいてパケットをグループ分けする。
【0023】
そして、情報処理装置10は、通信装置2-1がネットワークに通信負荷をかける通信負荷状態st2において、通信装置2-2から測定した遅延時間にもとづいてグループごとの遅延分布を算出し、通信負荷とグループごとの遅延分布との関係を機械学習して学習済みモデルを作成する。これにより、学習済みモデルを用いて、通信装置2-1、2-2それぞれの動作に依存した遅延分布を推論することが可能になる。
【0024】
<システム構成>
図2は情報処理システムの構成の一例を示す図である。
図2に示す情報処理システムは、
図1の情報処理装置10を無線通信システムのサーバに適用した例であり、通信装置2-1、・・・、2-n、情報処理装置10および基地局3を備える。通信装置2-1、・・・、2-nおよび情報処理装置10は、基地局3に接続され、通信装置2-1、・・・、2-nは、ネットワーク4を介して無線通信を行う。
【0025】
通信装置2-1、・・・、2-nそれぞれは、映像伝送を行う映像アプリケーションを有し、映像アプリケーションに設定されるパラメータにもとづいて、撮像した映像データを情報処理装置10に送信する。映像アプリケーションのパラメータとしては、フレームレート、圧縮率等がある。
【0026】
情報処理装置10は、通信装置2-1、・・・、2-nから送信された映像データを収集して、映像データのAI処理を行い、AI処理の結果にもとづいて、通信装置2-1、・・・、2-nを制御する。
【0027】
また、情報処理装置10では、通信装置2-1、・・・、2-nそれぞれから送信されるパケットの遅延分布の学習済みモデルを作成し、学習済みモデルにもとづく遅延分布の推論を行う。そして、情報処理装置10は、遅延分布の推論結果にもとづいて、通信装置2-1、・・・、2-nそれぞれに搭載されている映像アプリケーションのパラメータを制御する。このような制御が行われることで、低遅延を保証したサービスを行うことができる。
【0028】
なお、上記では、情報処理装置10で学習・推論処理を行うとしたが、各通信装置の映像データ送信先の情報処理装置10に限らず、ネットワーク上の他の装置で学習・推論処理が実現されてもよい。
【0029】
<通信装置をドローンとした場合のシステム構成>
図3は通信装置をドローンとした場合のシステム構成の一例を示す図である。
図2に示した通信装置2-1、・・・、2-nがドローン(drone:小型無人飛行機)dr-1、・・・、dr-nである場合、ドローンdr-1、・・・、dr-nの飛行制御が情報処理装置10によって行われる。
【0030】
情報処理装置10は、飛行制御として例えば、ドローン間の衝突判定を行い、判定結果から、衝突を防ぐためのドローン間の調停協調制御にもとづく飛行指示をドローンdr-1、・・・、dr-nに送信する。
【0031】
このような飛行制御が行われる場合、情報処理装置10からドローンdr-1、・・・、dr-nへ送信される飛行指示に遅延が生じると、障害物に対する回避が遅れてドローンが障害物に衝突したり、ドローン同士が衝突したりする危険性がある。
【0032】
このため、情報処理装置10では、ドローンdr-1、・・・、dr-nそれぞれから送信されるパケットに対する遅延分布の学習済みモデルを作成し、学習済みモデルにもとづく遅延分布の推論を行う。そして、情報処理装置10は、遅延分布の推論結果にもとづいて、ドローンdr-1、・・・、dr-nそれぞれに搭載されている映像アプリケーションのパラメータを制御する。
【0033】
このような遅延分布の推論にもとづく飛行制御が行われることで、飛行指示の低遅延制御が保証され、ドローンdr-1、・・・、dr-nによる安全な飛行サービスを実現することができる。
【0034】
なお、ドローンに限らず、例えば、通信装置が作業用ロボットであってもよい。この場合、遅延分布の推論にもとづくロボット動作の制御が行われることで、動作指示の低遅延制御が保証され、ロボット同士の協働作業による現場作業の効率的な自動化サービスを実現することができる。
【0035】
<ハードウェア>
図4は情報処理装置のハードウェア構成の一例を示す図である。情報処理装置10は、例えば、
図4に示すようなコンピュータとして実現される。
図4に示す情報処理装置10は、プロセッサ101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、グラフィックインタフェース(I/F)104、入力インタフェース(I/F)105、読み取り装置106および通信インタフェース(I/F)107を備える。
【0036】
プロセッサ101は、情報処理装置10全体を統括的に制御する。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0037】
RAM102は、情報処理装置10の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
【0038】
HDD103は、情報処理装置10の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
【0039】
グラフィックインタフェース104には、表示装置104aが接続されている。グラフィックインタフェース104は、プロセッサ101からの命令にしたがって、映像を表示装置104aに表示させる。
【0040】
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0041】
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。通信インタフェース107は、ネットワーク4を介して通信装置2-1、・・・、2-nとの間でデータの送受信を行う。
【0042】
以上のようなハードウェア構成によって、情報処理装置10の処理機能を実現することができる。例えば、情報処理装置10は、プロセッサ101が所定のプログラムを実行することで本発明の処理を行うことができる。
【0043】
情報処理装置10は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。情報処理装置10に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【0044】
例えば、情報処理装置10に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ101は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
【0045】
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ101からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0046】
<背景負荷>
次に背景負荷について説明する。背景負荷が無い状態は、
図1で上述した通信状態st1に対応し、背景負荷が有る状態は、
図1で上述した通信負荷状態st2に対応する。
図5、
図6を用いて、背景負荷が無い状態と有る状態で行われる制御について説明する。また、通信装置をドローンとし、3台のドローンで映像伝送が行われるものとする。
【0047】
図5は背景負荷が無い状態で行われる制御を説明するための図である。情報処理装置10では、3台のドローンdr-1、dr-2、dr-3それぞれから送信されるパケットの遅延分布の推論を行う。最初に、ドローンdr-1に対して、遅延分布の学習済みモデルを作成するものとする。
【0048】
この場合、制御部11は、ドローンdr-1、dr-2、dr-3のうち、ドローンdr-1のみを飛行させる。ドローンdr-2、dr-3は飛行していないので、ドローンdr-2、dr-3は、ネットワークに通信負荷をかけない状態である。すなわち、ドローンdr-1の通信状態は、ドローンdr-2、dr-3の通信負荷の影響を受けない背景負荷の無い状態となる。
【0049】
制御部11は、背景負荷の無い状態において、遅延分布の学習済みモデルを作成する前のパケットのグループ分け処理を、飛行しているドローンdr-1から送信されるパケットに対して行う。
【0050】
図6は背景負荷が有る状態で行われる制御を説明するための図である。制御部11は、
図5に示したような背景負荷の無い状態でパケットのグループ分けを行った後、飛行中のドローンdr-1に加えてさらにドローンdr-2、dr-3を飛行させる。
【0051】
ドローンdr-2、dr-3が飛行することで、ドローンdr-2、dr-3は、ネットワークに通信負荷をかける状態になる。すなわち、ドローンdr-1の通信状態は、ドローンdr-2、dr-3の通信負荷の影響を受ける背景負荷の有る状態となる。制御部11は、背景負荷の有る状態において、飛行しているドローンdr-1に対してグループごとの遅延分布の学習済みモデルを作成する。
【0052】
同様にして、制御部11は、ドローンdr-1に対する遅延分布の学習済みモデルを作成した後は、次にドローンdr-1、dr-2、dr-3のうちのドローンdr-2のみを飛行させる。
【0053】
ドローンdr-2の通信状態は、ドローンdr-1、dr-3の通信負荷の影響を受けない背景負荷の無い状態になり、制御部11は、背景負荷の無い状態において、ドローンdr-2から送信されるパケットのグループ分けを行う。
【0054】
その後、制御部11は、ドローンdr-1、dr-3を飛行させて、ドローンdr-2の通信状態がドローンdr-1、dr-3の通信負荷の影響を受ける背景負荷の有る状態にして、ドローンdr-2に対する遅延分布の学習済みモデルを生成する。ドローンdr-3についても同様な制御が行われる。
【0055】
<パケットのバースト伝送>
図7はパケットのバースト伝送の一例を示す図である。なお、以降の説明では、通信装置2-1、・・・、2-nのうちの学習済みモデル作成対象の通信装置を通信装置2と呼ぶ場合がある。
【0056】
通信装置2は、映像フレームf1を複数のパケットに分割して、複数のパケットを送信し、映像フレームf2を複数のパケットに分割して、複数のパケットを送信する。また、制御部11は、複数のパケットを受信する。
【0057】
このように、通信装置2では、リアルタイムに映像データを送信する場合、1映像フレーム分の映像データを複数パケットに分割し、映像フレーム内の先頭のパケットから順にバースト的にパケットを送信する。このようなバースト伝送が行われるので、フレームサイズが大きい(1度に送信するパケットが多い)ほど、後半のパケット送信に時間がかかり、受信側での遅延時間は増えることになる。
【0058】
<パケットのグループ分け>
次に背景負荷の無い状態で行われる、パケットのグループ分けについて、
図8から
図10を用いて説明する。
図8はパケットのグループ分けの一例を示す図である。縦軸は遅延時間di、横軸はパケット位置iである。パケットp1、・・・、p11の1映像フレーム内での各位置をパケット位置1、・・・、11とする。
【0059】
〔ステップS11〕制御部11は、隣接するパケットp1、p2、p3それぞれの間の遅延時間の差が閾値th以下であり、パケットp3とパケットp4との差が閾値thを超えると判定する。この場合、制御部11は、パケットp1、p2、p3を1つのグループにする。
【0060】
〔ステップS12〕制御部11は、隣接するパケットp4、・・・、p7それぞれの間の遅延時間の差が閾値th以下であり、パケットp7とパケットp8との差が閾値thを超えると判定する。この場合、制御部11は、パケットp4、・・・、p7を1つのグループにする。
【0061】
〔ステップS13〕制御部11は、遅延時間の差が閾値th以下である隣接するパケットp8、・・・、p11を1つのグループにする。
このように、制御部11では、パケットp1、・・・、p11を受信した場合、隣接するパケット間の遅延時間の差が閾値th以下の場合に隣接するパケットを同一グループに分類する。これにより、遅延時間にもとづくパケットのグループ分けを効率よく行うことが可能になる。
【0062】
図9はパケット位置とグループ番号との対応テーブルの一例を示す図である。制御部11は、映像フレーム内のパケット位置iとグループ番号g(i)との項目を有するパケット位置・グループ番号対応テーブルT1を作成して管理する。パケット位置・グループ番号対応テーブルT1は、記憶部12に保持される。
【0063】
パケット位置・グループ番号対応テーブルT1において、パケット位置1、2、3のパケットp1、p2、p3はグループ番号1のグループに含まれ、パケット位置4、・・・、7のパケットp4、・・・、p7はグループ番号2のグループに含まれることが示されている。また、パケット位置8、・・・、11のパケットp8、・・・、p11はグループ番号3のグループに含まれることが示されている。
【0064】
図10はパケットのグループ分けの処理の一例を示すフローチャートである。
〔ステップS21〕通信装置2は、映像フレームを分割したパケットの送信を開始する。
【0065】
〔ステップS22〕通信装置2は、各パケットの1映像フレーム内のパケット位置と、送信タイムスタンプとを記録する(パケット位置の情報は、パケットの所定フィールドに記載されてもよい)。
【0066】
〔ステップS23〕制御部11は、パケットを受信し、受信タイムスタンプを記録する。
〔ステップS24〕通信装置2は、パケット送信の動作が一定時間経過すると、パケット送信を終了する。
【0067】
〔ステップS25〕制御部11は、パケット単位で送信タイムスタンプと受信タイムスタンプとの差である遅延時間を算出する。
〔ステップS26〕制御部11は、パケット位置iごとの遅延時間diを集計する。
【0068】
〔ステップS27〕制御部11は、パケット位置i=2から、遅延時間に対する閾値thとの比較を行う。
〔ステップS28〕制御部11は、パケット位置iのパケットpiの遅延時間diから、パケット位置i-1のパケットpi-1の遅延時間di-1を減算した値(di-di-1)が閾値thを超えるか否かを判定する。減算値(di-di-1)が閾値thを超える場合はステップS29aの処理に進み、減算値(di-di-1)が閾値th以下の場合はステップS29bの処理に進む。
【0069】
〔ステップS29a〕制御部11は、グループ番号g(i-1)を1つインクリメントしたグループ番号g(i)をパケット位置iのパケットpiのグループ番号とする。
〔ステップS29b〕制御部11は、グループ番号g(i-1)をグループ番号g(i)とし、グループ番号g(i)をパケット位置iのパケットpiのグループ番号とする。
【0070】
<学習済みモデルの作成>
図11は学習済みモデルの作成の流れの一例を示すフローチャートである。
〔ステップS31〕制御部11は、背景負荷が有る状態において、通信装置2から送信された映像フレームに含まれる複数のパケットのそれぞれについての遅延時間を取得する。
【0071】
〔ステップS32〕制御部11は、通信装置2による映像フレームの送信時におけるネットワークの背景負荷情報(第1の通信負荷)を測定する。
〔ステップS33〕制御部11は、取得した遅延時間にもとづいてグループごとの遅延分布を算出し、背景負荷と、グループごとの遅延分布との関係を機械学習することによって学習済みモデルm0を作成する。なお、制御部11では、遅延時間計測による遅延分布の計算および背景負荷の計測を複数回実行して、グループごとの遅延分布を含む学習データを多数生成し、それらを用いた学習を実行して学習済みモデルm0を作成することになる。
【0072】
ここで、遅延時間の分布が確率分布になると仮定した場合、制御部11は、確率分布のパラメータを求める。例えば、遅延時間の確率分布がガンマ分布になると仮定した場合、制御部11は、ガンマ分布の関数のパラメータである、形状母数、尺度母数および位相の値を求める。
【0073】
ガンマ分布の関数は以下の式(1)で定義される。なお、式(1)のkは形状母数、θは尺度母数、locは位相である。
【0074】
【0075】
制御部11では、背景負荷と、グループごとのガンマ分布のパラメータ(k、θ、loc)との関係を学習済みモデルm0から作成するので、所定の背景負荷における、グループg(i)に対応する遅延分布であるガンマ分布を得ることができる。
【0076】
図12は背景負荷情報の一例を示す図である。制御部11は、背景負荷を測定する場合、例えば、pingパケットを通信装置2に送信して、通信装置2から応答が返信されるまでの時間から背景負荷を測定する。
【0077】
すなわち、制御部11は、pingパケットを通信装置2に送信し、pingパケットのRTT(Round Trip Time:パケットが宛先に送信されるのに要する時間と、パケットの応答が発信元で受信されるのに要する時間との和)を測定する。そして、制御部11は、測定したRTTから、例えば、pingパケットの平均遅延時間、分散および標準偏差等の統計値を求めて、これらの統計値を背景負荷情報d10とする。
【0078】
図12の例では、pingパケットのRTT(ping_RTT(ms))が30、15、60、45、・・・と測定され、この測定値から背景負荷情報d10として、平均遅延時間(ping_mean:26.462)、分散(ping_var:1840.329)および標準偏差(ping_std:42.899)が求められている。
【0079】
図13はガンマ分布のパラメータの算出の一例を示す図である。縦軸はガンマ分布の関数y、横軸は遅延時間xである。上述したように、制御部11は、遅延時間の確率分布がガンマ分布になるとした場合、ガンマ分布の関数のパラメータである、形状母数、尺度母数および位相の最適な値を求める。
【0080】
ここで、グループg(i)の遅延分布の関数をf(x)とし、ガンマ分布の関数をg(x)とする。この場合、制御部11は、関数f(x)と関数g(x)とが最も近くなるときのパラメータ(k、θ、loc)を最適値として求める。
【0081】
パラメータ(k、θ、loc)の求め方は、例えば、経験的に(k、θ、loc)の範囲を絞って総当たりするか、既存の曲線近似アルゴリズム(Pythonのscipyライブラリに含まれるcurve_fit関数など)を用いることができる。
【0082】
図14、
図15は平均二乗誤差が最小になる場合の例を示すである。制御部11は、関数f(x)と関数g(x)との平均二乗誤差MSE(Mean Squared Error)を求め、平均二乗誤差MSEが最小になる場合に、関数f(x)と関数g(x)とが最も近くなると判定する。そして、制御部11は、平均二乗誤差MSEが最小になる場合のパラメータ(k、θ、loc)を最適値とする。
【0083】
図14において、例えば、関数f(x)と関数g(x)との平均二乗誤差MSE(a)、MSE(b)、MSE(c)が最小になる場合、関数f(x)と関数g(x)とが最も近くなる。このときの平均二乗誤差MSEの算出式(2)は以下のように定義される。
【0084】
【0085】
図15において、制御部11は、関数f(x)と関数g(x)それぞれの確率分布関数を相補累積分布関数ccdfに変換し、2つの相補累積分布関数ccdfに対して平均二乗誤差MSEを求める。そして、制御部11は、2つの相補累積分布関数ccdfの平均二乗誤差MSEが最小になる場合に関数f(x)と関数g(x)とが最も近くなると判定する。
【0086】
図15の例では、関数f(x)は相補累積分布関数ccdf_f(x)に変換され、関数g(x)は相補累積分布関数ccdf_g(x)に変換されている。
相補累積分布関数ccdf_f(x)と相補累積分布関数ccdf_g(x)との平均二乗誤差MSE(a)、MSE(b)、MSE(c)が最小になる場合、関数f(x)と関数g(x)とが最も近くなる。このときの平均二乗誤差MSEの算出式(3)は以下のように定義される。
【0087】
【0088】
なお、
図15において、所定値以上の遅延時間には重み付けを行ってから平均二乗誤差MSEを求めてもよい。このときの平均二乗誤差MSEの算出式(4)は、以下のように定義される。
【0089】
【0090】
図16は学習済みモデルのデータの一例を示す図である。テーブルT2は、学習済みモデルのデータをテーブル化したものであり、項目として、背景負荷情報(ping_mean、ping_var、ping_std)、グループ番号およびガンマ分布のパラメータ(k、loc、θ)を有し、記憶部12に保持されて制御部11により管理される。
【0091】
テーブルT2において、グループ番号1のグループの遅延分布における背景負荷情報(ping_mean、ping_var、ping_std)は(26.462、1840.329、42.899)であり、ガンマ分布のパラメータ(k、loc、θ)は(0.673009、0.000953、21.358576)である。このときに生成されるグループ番号1のグループの遅延分布は、遅延分布(ガンマ分布)γg1として生成される。
【0092】
なお、一組の学習データでは、各グループに対して背景負荷の値は共通になりうる。このように、背景負荷情報およびグループごとの遅延分布のパラメータの関係性が機械学習により学習されて、グループごとの遅延分布が作成される。
【0093】
<学習済みモデルを用いた推論モデルの算出>
図17は学習済みモデルを用いて運用時の推論モデルを算出する動作の一例を示す図である。
【0094】
〔ステップS41〕制御部11は、映像フレームを複数含む映像データを通信装置2から送信した際のグループごとのパケット数比率を算出する。
〔ステップS42〕制御部11は、運用状態において、通信装置2から映像データを送信した際のネットワークの背景負荷(第2の通信負荷)を測定する。
【0095】
〔ステップS43〕制御部11は、運用状態で測定した背景負荷を学習済みモデルm0に入力して、映像データの送信時におけるグループg1、・・・、gnの各グループの遅延分布(第2の遅延分布)を算出する。
【0096】
〔ステップS44〕制御部11は、グループg1、・・・、gnの各グループの遅延分布のそれぞれをグループg1、・・・、gnの各グループのパケット数比率で重み付けを行う。そして、制御部11は、重み付けされたグループg1、・・・、gnごとの遅延分布を足し合わせて、映像データの送信時におけるグループ全体のトータル遅延分布Pto(運用時の推論モデル)を算出する。
【0097】
このように、制御部11では、学習済みモデルに対して運用状態で測定した背景負荷を入力してグループごとの遅延分布を求め、グループごとの遅延分布にパケット数比率を重み付けして、グループ全体のトータル遅延分布を求める。これにより、通信装置2の運用時における遅延分布を精度よく推論することが可能になる。
【0098】
<パケット数比率の算出>
図18、
図19はパケット数比率の算出の一例を示す図である。
〔ステップS51〕制御部11は、通信装置2に対して、通信装置2が有している映像アプリケーションを実行させ、1映像フレームあたりのパケット数を測定する。例えば、制御部11は、映像アプリケーションのログやパケットキャプチャによって1映像フレームあたりのパケット数を測定する。
【0099】
〔ステップS52〕制御部11は、一定時間の測定を行って、通信装置2から出現する映像フレームの出現フレーム数に対する、1映像フレームあたりのパケット数の出現頻度を求める。
【0100】
ここで、グラフgf1は、縦軸が出現フレーム数FNであり。横軸が1映像フレームあたりのパケット数の出現頻度Nである。グラフgf1において例えば、N=3のときは、1映像フレームあたりのパケット数の出現頻度が3であり、このときの出現フレーム数FNは100映像フレームであることが示されている。
【0101】
〔ステップS53〕制御部11は、パケット数の出現頻度Nを映像フレーム内のパケット位置iごとのパケット数Piに変換する。ここで、グラフgf2は、縦軸がパケット数Piであり、横軸が映像フレーム内のパケット位置iである。
【0102】
グラフgf2において例えば、i=1のとき、映像フレーム内のパケット位置1にはパケット数P1として550個のパケットがあることが示されている。なお、パケット数Piは以下の式(5)で算出される。
【0103】
【0104】
例えば、式(5)において、n=6とした場合にi=1のとき、P1=F1+F2+F3+F4+F5+F6=0+0+100+200+100+150=550となり、映像フレーム内のパケット位置1にはパケットが550個あることが算出される。
【0105】
〔ステップS54〕制御部11は、パケット位置・グループ番号対応テーブルT1を用いて、グループごとのパケット数比率の分布を算出して保存する。ここで、グラフgf3は、縦軸がパケット数Piであり。横軸がグループ番号である。グラフgf3において例えば、グループ番号1のグループには、パケットが1650個あることが示されている。このような手順の制御によって、グループごとのパケット数比率を精度よく求めることが可能になる。
【0106】
図20はパケット数比率の算出の変形例を示す図である。通信装置2の映像アプリケーションの設定において、例えば、映像エンコード時のビットレートが1Mbpsに設定されているとする。そして、上記のステップS52のグラフgf1のように1映像フレームあたりのパケット数の出現頻度を求めていたとする。
【0107】
その後、通信装置2において映像エンコード時のビットレートを2Mbpsにしたときのグループごとのパケット数比率の算出を行うとする。この場合、映像エンコード時のビットレートが2倍になっているので、1映像フレームあたりの容量が平均2倍になる。
【0108】
このため、1映像フレームあたりのパケット数の出現頻度Nは、事前に求めておいた出現頻度の横軸のパケット数出現頻度を2倍した分布になると予想でき、グラフgf1-1のようになる。その後の手順はステップS53以降の処理を同様に行うことで、映像エンコード時のビットレートが2Mbpsのときのグループごとのパケット数比率を算出することができる。
【0109】
<パケット数比率の重み付け加算>
次にパケット数比率の重み付け加算について説明する。制御部11では、グループごとの遅延分布にパケット数比率を重み付けして、重み付けした遅延分布を足し合わせてグループ全体のトータル遅延分布を生成する。
【0110】
ここで、グループが1、・・・、Nまであり、各グループのパケット数比率がw1、w2、・・・、wNであるとする。また、グループ1、・・・、Nの遅延分布がそれぞれf1(x)、f2(x)、・・・、fN(x)で表現されるとき、トータルの遅延分布g(x)は以下の式(6)で表される。
【0111】
【0112】
なお、式(6)の変数Wnは、パケット数比率w1、w2、・・・、wNを正規化した値であり、以下の式(7)で表される。
【0113】
【0114】
また、式(6)の変数Fn(x)は、遅延分布f1(x)、f2(x)、・・・、fN(x)を正規化した値であり、以下の式(8)で表される。
【0115】
【0116】
<トータル遅延分布を利用した低遅延制御>
次にトータル遅延分布を利用した低遅延制御について、
図21、
図22を用いて説明する。なお、通信装置2の映像アプリケーションの映像送信の要件が「全体の99.9%のパケットを100ms以内に伝送」であるとする。
【0117】
図21、
図22はトータル遅延分布を利用した要件判定の一例を示す図である。
〔ステップS61〕制御部11は、一定時間周期で通信装置2の遅延分布の推論を行ってトータル遅延分布を作成する。
【0118】
〔ステップS62〕制御部11は、トータル遅延分布を相補累積分布に変換する。
〔ステップS63〕制御部11は、相補累積分布において、要件を満たさない遅延時間taがあることを検出する。
【0119】
〔ステップS64〕制御部11は、要件が満たされるように通信装置2の映像アプリケーションの設定を変更した場合に、グループごとのパケット数比率がどのように変化し、その結果、トータル遅延分布または相補累積分布がどのように変化するかを計算する。
【0120】
〔ステップS64a〕制御部11は、映像アプリケーションの設定変更として、映像のビットレートを10%低下させる指示を通信装置2に与え、映像のビットレートが10%低下した場合の映像データの相補累積分布ccdf1を算出する。
【0121】
〔ステップS64b〕制御部11は、映像アプリケーションの設定変更として、映像のビットレートを20%低下させる指示を通信装置2に与え、映像のビットレートが20%低下した場合の映像データの相補累積分布ccdf2を算出する。
【0122】
〔ステップS64c〕制御部11は、映像アプリケーションの設定変更として、映像のビットレートを30%低下させる指示を通信装置2に与え、映像のビットレートが30%低下した場合の映像データの相補累積分布ccdf3を算出する。
【0123】
〔ステップS65〕制御部11は、算出した相補累積分布ccdf1、ccdf2、ccdf3にもとづいて、要件が満たされる場合の映像アプリケーションを検出する。この例では、相補累積分布ccdf2、ccdf3では、全体の99.9%のパケットの100ms以内の伝送が可能であることが示されているが、相補累積分布ccdf1では、100ms以内で全体の99.9%のパケット伝送は行えないことが示されている。
【0124】
したがって、相補累積分布ccdf1は要件を満たさず、相補累積分布ccdf2、ccdf3において要件が満たされている。すなわち、映像のビットレートが20%および30%低下した場合の映像データが送信された場合、全体の99.9%のパケットが100ms以内に伝送可能となる。
【0125】
また、要件が満たされる条件のうちでは、映像のビットレートが30%低下よりも映像のビットレートが20%低下の方が画質は高い。このため、制御部11は、通信装置2に対する映像パラメータの変更指示として、映像のビットレートを20%低下させる指示を選択することで、画質低下を抑制し、かつ低遅延を保証した制御を実現する。
【0126】
上記で説明した本発明の情報処理装置10は、コンピュータによって実現することができる。この場合、情報処理装置10が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0127】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶部、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶部には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等がある。光ディスクには、CD-ROM(Compact Disk Read Only Memory)/RW(Read Write)等がある。光磁気記録媒体には、MO(Magneto Optical disk)等がある。
【0128】
プログラムを流通させる場合、例えば、そのプログラムが記録されたCD-ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶部に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0129】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶部に格納する。そして、コンピュータは、自己の記憶部からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【0130】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLD等の電子回路で実現することもできる。
【0131】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0132】
10 情報処理装置
11 制御部
12 記憶部
2-1、2-2 通信装置
4 ネットワーク
st1 通信状態
st2 通信負荷状態
f1、f2 映像フレーム
g1、g2、g3 グループ
p1、・・・、p8、p11、・・・、p16 パケット
td1、td2 遅延時間
d1 通信負荷
Pgn グループgnの遅延分布
m0 学習済みモデル