モバイルネットワークに代表される、ベストエフォートかつリソースを共有するネットワークにおいて、高品質な映像を安定した品質で伝送することは困難である。例えば、通信端末の電界強度や、無線ネットワークの輻輳によって、伝送路におけるパケットロスが発生する。このようなパケットロスは受信側で検知し、送信元に映像品質とビットレートの変更を指示するのが一般的である。しかし、ネットワークの輻輳が収束したことを検知することは難しく、安定的に任意の品質で伝送することは困難である。本実施形態に係る通信システム10では、例えば、受信サーバ又は送信端末がパケットロス又は映像品質の劣化を検知して、それに基づいて、「受信サーバ又は送信端末からモバイルネットワークに対して優先制御を要求すること」、「送信端末側で送信帯域幅を絞ること」、及び「受信サーバ側における混雑(例えば、パケットロス又は受信側でデコードした映像品質)に応じて適合する機械学習モデルによる映像補正」、の少なくともいずれかを実施することによって、安定した品質での映像伝送の実現に貢献可能な技術を提供する。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、通信システム10の一例を概略的に示す。通信システム10は、送信端末200を備えてよい。通信システム10は、受信サーバ300を備えてよい。通信システム10は、モバイルネットワーク100を備えてよい。
送信端末200は、通信端末の一例であってよい。送信端末200は、データを送信する機能を有する任意の通信端末であってよい。送信端末200は、例えば、スマートフォン等の携帯電話、タブレット端末、及びPC(Personal Computer)等であってよい。送信端末200は、いわゆるIoT(Internet of Things)端末であってもよい。
送信端末200が送信するデータは、例えば、映像データである。映像データは、動画像データであってよい。映像データは、例えば、オンライン会議において、カメラで撮像されて送信される動画像データであってよい。映像データは、放送データであってもよい。これらは例示であり、映像データは、任意の動画像データであってよい。映像データは、音声を含んでも含まなくてもよい。送信端末200が送信するデータは、音声データであってもよい。
受信サーバ300は、受信装置の一例であってよい。受信サーバ300は、通信装置の一例であってよい。受信サーバ300は、送信端末200からデータを受信する機能を有する任意の通信装置であってよい。受信サーバ300は、例えば、オンライン会議のサーバであってよいが、これに限らず、任意のサーバであってよい。通信装置の例として、受信サーバ300の他、スマートフォン等の携帯電話、タブレット端末、及びPC等が挙げられる。
送信端末200と受信サーバ300は、ネットワーク100を介して通信してよい。ネットワーク100は、モバイルネットワークを含んでよい。モバイルネットワークは、LTE(Long Term Evolution)通信方式、5G(5th Generation)通信方式、3G(3rd Generation)通信方式、及び6G(6th Generation)通信方式以降の通信方式のいずれに準拠していてもよい。ネットワーク100は、インターネットを含んでもよい。送信端末200及び受信サーバ300は、無線基地局及びWi-Fi(登録商標)アクセスポイント等を介して、ネットワーク100にアクセス可能であってよい。受信サーバ300は、MEC(Mobile Edge Computing又はMulti-access Edge Computing)に構築してもよい。
通信システム10は、受信サーバ300が送信端末200から受信したデータの品質を判定して、品質に応じた処理を実行する。当該処理は、受信サーバ300が主体となって実行されてよい。また、当該処理は、送信端末200が主体となって実行されてもよい。以下、それぞれの場合について説明する。
図2は、送信端末200及び受信サーバ300の機能構成の一例を概略的に示す。ここでは、受信サーバ300が主体となった場合について説明する。
図2に示す例において、送信端末200は、データ格納部202、データ送信部204、通知情報受信部206、制御部208、及びデータ補正部210を備える。受信サーバ300は、データ受信部302、データ出力部304、品質判定部306、処理選択部308、及び処理実行部310を備える。
データ格納部202は、各種データを格納する。例えば、データ格納部202は、映像データを格納する。データ格納部202は、例えば、送信端末200に接続されたカメラによって撮像された映像データを格納する。データ格納部202は、外部から受信したり、可搬型の記憶媒体等から読み取ったりした映像データを格納してもよい。データ格納部202は、送信端末200において生成された映像データを格納してもよい。また、例えば、データ格納部202は、音声データを格納する。データ格納部202は、例えば、送信端末200に接続されたマイクによって取得された音声の音声データを格納する。データ格納部202は、外部から受信したり、可搬型の記憶媒体等から読み取ったりした音声データを格納してもよい。データ格納部202は、送信端末200において生成された音声データを格納してもよい。
データ送信部204は、データ格納部202に格納されているデータを受信サーバ300に送信する。データ送信部204は、ネットワーク100を介してデータを受信サーバ300に送信する。
データ受信部302は、データ送信部204によって送信されたデータを受信する。データ受信部302は、ネットワーク100を介してデータを受信する。
データ出力部304は、データ受信部302が受信したデータを出力する。データ出力部304は、例えば、受信サーバ300が備えるディスプレイに映像データを表示出力する。データ出力部304は、例えば、他の通信端末等に映像データを送信出力してもよい。データ出力部304は、例えば、受信サーバ300が備えるスピーカに音声データを音声出力させる。データ出力部304は、例えば、他の通信端末等に音声データを送信出力してもよい。
品質判定部306は、データ受信部302が受信したデータの品質を判定する。品質判定部306は、例えば、送信端末200との間の通信のパケットロスに基づいて、データの品質を判定する。品質判定部306は、送信端末200から受信するデータのパケットロスに基づいて、データの品質を判定してよい。品質判定部306は、パケットロス率が高いほど、データの品質がより低いと判定してよい。品質判定部306は、パケットロス率が低いほど、データの品質がより高いと判定してよい。
品質判定部306は、パケットロス率からデータの品質を推定するための数理的な品質推定モデルにパケットロス率を入力することで、データの品質を判定してもよい。品質判定部306は、例えば、ネットワーク100を介してデータを送信したときのパケットロス率と、送信前のデータと受信後のデータとから導出した受信後のデータの品質を教師データとして用い、パケットロス率からデータの品質を推定する推定モデルを数理的に構築し、記憶しておいてよい。品質判定部306は、推定モデルを機械学習により生成してもよい。品質判定部306は、パケットロス率からデータの品質を推定するための機械学習を行った学習済みの品質推定モデルにパケットロス率を入力することで、データの品質を判定してもよい。
処理選択部308は、品質判定部306によって判定されたデータの品質に応じて、実行する処理を選択する。処理選択部308は、例えば、送信端末200に対する通知処理、データの補正処理、及びネットワーク100に対する通信品質の変更要求処理から、実行する処理を選択する。処理実行部310は、処理選択部308によって選択された処理を実行する。
送信端末200に対する通知処理は、送信端末200に対して通知情報を送信することであってよい。処理実行部310は、処理選択部308によって、送信端末200に対する通知処理が選択された場合に、通知情報を送信端末200に送信してよい。
通知情報は、送信端末200が、受信サーバ300に送信するデータのビットレートを変更する契機となる情報であってよい。通知情報は、例えば、データの品質が低いことを通知する情報である。通知情報は、パケットロス率が高いことを通知する情報であってもよい。通知情報は、ネットワーク100が混雑していることを通知する情報であってもよい。通知情報は、データのビットレートを下げることを要求する情報であってもよい。通知情報は、送信端末200が送信するデータ量を低減することを要求する情報であってもよい。
データの補正処理は、受信サーバ300において、データを補正することであってよい。処理実行部310は、処理選択部308によって、データの補正処理が選択された場合に、データ受信部302が受信したデータを補正してよい。処理実行部310は、データ受信部302が受信したデータの品質を高める補正を実行してよい。データが映像データである場合、データの補正方法の例として、超解像、画像のノイズ除去、特徴点からのレンダリング、及び音声の雑音除去等が挙げられるが、これらに限らない。データが音声データである場合、雑音除去及び音声超解像等が挙げられるが、これらに限らない。処理実行部310は、処理選択部308によって、データの補正処理が選択された場合に、利用する補正技術を送信端末200に通知した後、当該補正技術を用いてデータ受信部302が受信するデータを補正してもよい。処理実行部310は、例えば、特定のフォーマットを送信端末200に指定する。送信端末200は、指定されたフォーマットでデータを受信サーバ300に送信する。処理実行部310は、指定したフォーマットのデータに対して、当該フォーマットに適した補正処理を実行する。
データの補正処理は、送信端末200に対して、データの補正を依頼することであってもよい。処理実行部310は、処理選択部308によって、データの補正処理が選択された場合に、データの補正を依頼する依頼情報を送信端末200に送信してよい。
依頼情報は、送信端末200が、データを補正する契機となる情報であってよい。依頼情報は、明示的にデータの補正を依頼する内容を含んでよい。依頼情報は、データの補正を依頼する内容を含まなくてもよい。例えば、依頼情報は、データの品質が低いことを通知する情報である。依頼情報は、パケットロス率が高いことを通知する情報であってもよい。依頼情報は、ネットワーク100が混雑していることを通知する情報であってもよい。
ネットワーク100に対する通信品質の変更要求処理は、ネットワーク100に対して通信品質の変更要求を送信することであってよい。処理実行部310は、処理選択部308によって、変更要求処理が選択された場合に、通信品質の変更要求をネットワーク100に送信してよい。
ネットワーク100は、変更要求を受信したことに応じて、受信サーバ300の通信品質を変更する変更処理を実行する。
ネットワーク100は、例えば、受信サーバ300に対する優先制御を実行する。ネットワーク100は、受信サーバ300の通信を優先することができれば、どのような方法を用いてもよい。例えば、ネットワーク100が5G通信方式に準拠している場合、ネットワーク100は、受信サーバ300の通信を優先すべく、受信サーバ300に対する5QI(5G QoS(Quality of Service) Indicator)を変更する。また、例えば、ネットワーク100がLTE通信方式に準拠している場合、ネットワーク100は、受信サーバ300の通信を優先すべく、受信サーバ300に対するQCI(QoS Class Identifier)を変更する。
ネットワーク100は、例えば、受信サーバ300に対する帯域幅制御を実行する。ネットワーク100は、例えば、受信サーバ300に対して専用のBWP(BandWidth Part)を割り当てる。
ネットワーク100は、例えば、受信サーバ300のユーザプレーン切替を実行する。ネットワーク100は、例えば、伝送距離が最短となるユーザプレーンへの切り替えを実行する。
情報受信部206は、受信サーバ300から各種情報を受信する。情報受信部206は、例えば、受信サーバ300から通知情報を受信する。情報受信部206は、例えば、受信サーバ300から依頼情報を受信する。
制御部208は、情報受信部206が受信サーバ300から通知情報を受信したことに応じて、データ送信部204が受信サーバ300に送信するデータのビットレート制御を実行して、受信サーバ300に送信するデータのデータ量を低減する。制御部208は、例えば、データのビットレートを低減する。データが映像データである場合、制御部208は、例えば、データを低解像度化する。
データ補正部210は、情報受信部206が依頼情報を受信したことに応じて、データを補正して、当該データよりもデータ量が少ない補正データを生成する。データ送信部204は、情報受信部206が依頼情報を受信したことに応じて、当該データに代えて、データ補正部210によって生成された補正データを、受信サーバ300に送信してよい。
データが映像データである場合、例えば、データ補正部210は、データから抽出した特徴点のみを含む補正データを生成する。また、データ補正部210は、例えば、公知のAIを用いた映像圧縮技術を用いて、補正データを生成する。また、データ補正部210は、例えば、データから取得した深層特徴量データを圧縮することによって、補正データを生成する。例えば、データ補正部210は映像データの一部を簡易表示化した補正映像データを生成する。データ補正部210は、例えば、映像データに人物が含まれる場合に、人物をアバタ化した補正映像データを生成する。
データが音声データである場合、例えば、データ補正部210は、公知の音声圧縮技術を用いて、補正データを生成する。データ補正部210は、公知のAIを用いた音声圧縮技術を用いもよい。
図3は、受信サーバ300による処理の流れの一例を概略的に示す。ここでは、映像データの品質に応じた処理を実行する場合における、初期設定を行う状態を開始状態として説明する。
ステップ(ステップをSと省略して記載する場合がある。)102では、受信サーバ300が、映像データの品質を判定する品質判定モデルの入力を受け付ける。S104では、受信サーバ300が、判定閾値の入力を受け付ける。
品質判定モデル及び判定閾値の入力は、受信サーバ300の管理者及び使用者等によって行われてよい。受信サーバ300への入力は、受信サーバ300が備える入力デバイスを用いて行われてよく、外部から受信サーバ300に入力情報を送信することによって行われてもよい。品質判定部306は、入力された品質判定モデルを取得する。処理選択部308は、入力された判定閾値を取得する。
なお、ここでは、判定閾値として、閾値C、閾値Cよりも高い閾値B、閾値Bよりも高い閾値Aが入力された場合を例示している。閾値Cは、第1閾値の一例であってよい。閾値Bは、第2閾値の一例であってよい。閾値Aは、第3閾値の一例であってよい。
S106では、データ受信部302が、送信端末200から映像データを受信する。S108では、品質判定部306が、S106においてデータ受信部302が受信した映像データの品質を判定して、判定結果Xを出力する。品質判定部306は、S102において入力された品質判定モデルを用いて、映像データの品質を判定してよい。
S110では、処理選択部308が、Xが閾値A以上であるか否かを判定する。閾値A以上であると判定した場合、S122に進み、閾値A以上でないと判定した場合、S112に進む。本例において、処理選択部308は、閾値A以上であると判定した場合、通知処理、補正処理、及び変更要求処理のいずれも選択しない。
S112では、処理選択部308が、Xが閾値B以上であるか否かを判定する。閾値B以上であると判定した場合、S114に進み、閾値B以上でないと判定した場合、S116に進む。S114では、処理選択部308が、通知処理を選択し、処理実行部310が、通知処理を実行する。
S116では、処理選択部308が、Xが閾値C以上であるか否かを判定する。閾値C以上であると判定した場合、S118に進み、閾値C以上でないと判定した場合、S120に進む。S118では、処理選択部308が、通知処理及び補正処理を選択し、処理実行部310が、通知処理及び補正処理を実行する。処理実行部310は、補正処理を実行する場合に、映像データの画像部分に対する補正処理を実行してよい。処理実行部310は、映像データの音声部分に対する補正処理をさらに実行してもよい。S120では、処理選択部308が、通知処理、補正処理、及び変更要求処理を選択し、処理実行部310が、通知処理、補正処理、及び変更要求処理を実行する。
S122では、映像データの受信が終了したか否かを判定し、終了していない場合、S106に戻り、終了したと判定した場合、処理を終了する。
上述したように、処理選択部308は、映像データの品質が第1閾値より低い場合、通知処理、補正処理、及び変更要求処理を選択肢、映像データの品質が第1閾値より高く、第2閾値より低い場合、通知処理及び補正処理を選択し、映像データの品質が第2閾値より高く、第3閾値より低い場合、通知処理を選択する。これにより、映像データの品質が高い場合には、処理を実行せず、品質が少し下がった場合に、通知処理を実行し、品質がさらに下がった場合に、通知処理に加えて補正処理を実行し、品質がさらに下がった場合に、通知処理、補正処理、及び変更要求処理を実行することになる。
全体的にみると、補正処理は、送信端末200及び受信サーバ300の少なくともいずれかで映像補正を実行することになり、通知処理よりも負荷が高まる可能性がある。また、変更要求処理は、ネットワーク100による調整が実行されることになって、他の通信端末や通信装置に影響を与える可能性がある。よって、本実施形態に係る処理選択部308によれば、映像データの品質の低下に応じて、より影響の少ない処理を段階的に増やして実行することを可能とすることができる。
なお、S114において選択される処理は、通知処理に限らない。また、S118において選択される処理は、通知処理及び補正処理に限らない。
処理選択部308は、映像データの品質が第1閾値より低い場合に、通知処理、補正処理、及び変更要求処理を選択し、映像データの品質が第1閾値より高く、第2閾値より低い場合、通知処理、補正処理、及び変更要求処理のうち2つを選択し、映像データの品質が第2閾値より高く、第3閾値より低い場合、通知処理、補正処理、及び変更要求処理のうち1つを選択してよい。
図3では、3つの判定閾値が入力された場合を例に挙げて説明したが、これに限らない。判定閾値は1つであっても、2つであってもよく、4つ以上であってもよい。1つの判定閾値が入力された場合、処理選択部308は、Xが閾値以上である場合、処理を選択せず、Xが閾値以上でない場合、通知処理、補正処理、及び変更要求処理を選択してよい。2つの判定閾値が入力された場合、処理選択部308は、Xが第1閾値より低い場合、通知処理、補正処理、及び変更要求処理を選択し、Xが第1閾値より高い第2閾値より低い場合、通知処理、補正処理、及び変更要求処理のうち、1つ又は2つの処理を選択し、Xが第2閾値より高い場合、処理を選択しない。
図3では、通信システム10が映像データを対象とする場合を例に挙げて説明したが、音声データを対象とする場合も、同様のフローによって実現可能である。
図4は、送信端末200及び受信サーバ300の機能構成の一例を概略的に示す。ここでは、送信端末200が主体となった場合について、図2とは異なる点について主に悦明する。
図4に示す例において、送信端末200は、データ格納部202、データ送信部204、データ受信部212、品質判定部214、処理選択部216、及び処理実行部218を備える。受信サーバ300は、データ受信部302、データ出力部304、及び処理実行部312を備える。
データ格納部202は、各種データを格納する。データ格納部202は、例えば、映像データを格納する。データ格納部202は、例えば、音声データを格納する。データ送信部204は、データ格納部202に格納されているデータを受信サーバ300に送信する。
データ受信部302は、データ送信部204によって送信されたデータを受信する。データ出力部304は、データ受信部302が受信したデータを出力する。図4に示すデータ出力部304は、データ受信部302が受信したデータを送信端末200に送信する。
データ受信部212は、データ出力部304が送信したデータを受信する。データ受信部212は、ネットワーク100を介してデータを受信する。
品質判定部214は、データ受信部212が受信したデータの品質を判定する。品質判定部214は、データ送信部204が送信したデータ、及びデータ受信部212が受信したデータに基づいて、受信サーバ300が受信したデータの品質を判定してよい。
品質判定部214は、データ送信部204が送信したデータ、及びデータ受信部212が受信したデータから、データ受信部212が受信したデータの品質を推定するための数理的な品質推定モデルを用いて、データの品質を推定してよい。品質判定部214は、例えば、ネットワーク100を介してデータを送信したときの、送信データ及び受信データと、受信データの品質を教師データとして用い、送信データ及び受信データからデータの品質を推定する推定モデルを数理的に構築して、記憶しておいてよい。品質判定部214は、推定モデルを機械学習により生成してもよい。データ受信部212が受信したデータの品質を推定するための機械学習を行った学習済みの品質推定モデルを用いて、データの品質を判定してもよい。
また、品質判定部214は、例えば、データ送信部204が送信したデータと、データ受信部212が受信したデータを用いて、ピーク信号対雑音比(PSNR:Peak Signal-to-Noise Ratio)を計算する。品質判定部214は、ピーク信号対雑音比が高いほど、データの品質が低いと判定してよい。
また、品質判定部214は、画像が映像データである場合に、例えば、データ送信部204が送信したデータと、データ受信部212が受信したデータを用いて、構造類似度(SSIM:Structual SIMilarity)を計算する。品質判定部214は、構造類似度が低いほど、データの品質が低いと判定してよい。
これらは例示であり、品質判定部214は、既知の他の手法を用いて、データ送信部204が送信したデータと、データ受信部212が受信したデータを用いて、データ受信部212が受信したデータの品質を判定してよい。
処理選択部216は、品質判定部214によって判定されたデータの品質に応じて、実行する処理を選択する。処理選択部216は、例えば、データ送信部204が送信するデータのビットレートの変更処理、データの補正処理、及びネットワーク100に対する通信品質の変更要求処理から、実行する処理を選択する。処理実行部218は、処理選択部216によって選択された処理を実行する。
データ送信部204が送信するデータのビットレートの変更処理は、データのビットレートを低減する処理であってよい。処理実行部218は、処理選択部216によって当該変更処理が選択された場合に、データ送信部204が送信するデータのビットレートを低減してよい。
映像データの補正処理は、送信端末200において、データを補正することであってよい。処理実行部218は、例えば、処理選択部216によって、データの補正処理が選択された場合に、データを補正して、当該データよりもデータ量が少ない補正データを生成する。例えば、データが映像データである場合、処理実行部218は、公知のAIを用いた映像圧縮技術を用いて、補正データを生成する。処理実行部218は、例えば、データから取得した深層特徴量データを圧縮することによって、補正データを生成する。また、処理実行部218は、例えば、データの一部を簡易表示化した補正データを生成する。処理実行部218は、例えば、データに人物が含まれる場合に、人物をアバタ化した補正データを生成する。例えば、データが音声データである場合、処理実行部218は、公知の音声圧縮技術を用いて、補正データを生成する。データ送信部204は、データに代えて、処理実行部218によって生成された補正データを受信サーバ300に送信してよい。
データの補正処理は、受信サーバ300に対して、データの補正を依頼することであってもよい。処理実行部218は、処理選択部216によって、データの補正処理が選択された場合に、データの補正を依頼する依頼情報を受信サーバ300に送信してよい。
依頼情報は、受信サーバ300が、データを補正する契機となる情報であってよい。依頼情報は、明示的にデータの補正を依頼する内容を含んでよい。依頼情報は、補正技術を通知する内容を含んでもよい。依頼情報は、データの補正を依頼する内容を含まなくてもよい。例えば、依頼情報は、データの品質が低いことを通知する情報である。
データ受信部302が依頼情報を受信した場合、処理実行部312は、データ受信部302が受信したデータを補正してよい。処理実行部312は、データ受信部302が受信したデータの品質を高める補正を実行してよい。データが映像データである場合、データの補正方法の例として、超解像、画像のノイズ除去、特徴点からのレンダリング、及び音声の雑音除去等が挙げられるが、これらに限らない。データが音声データである場合、雑音除去及び音声超解像等が挙げられるが、これらに限らない。
ネットワーク100に対する通信品質の変更要求処理は、ネットワーク100に対する通信品質の変更要求を、受信サーバ300に実行させることであってよい。処理実行部218は、処理選択部216によって、当該変更要求処理が選択された場合、ネットワーク100に対して通信品質の変更要求を送信する指示を、受信サーバ300に送信してよい。データ受信部302が当該指示を受信した場合、処理実行部312は、ネットワーク100に対して通信品質の変更要求を送信してよい。
ネットワーク100に対する通信品質の変更要求処理は、ネットワーク100に対して通信品質の変更要求を送信することであってもよい。処理実行部218は、処理選択部216によって、当該変更要求処理が選択された場合、ネットワーク100に対して、通信品質の変更要求を送信してよい。
図5は、送信端末200による処理の流れの一例を概略的に示す。ここでは、映像データの品質に応じた処理を実行する場合における、初期設定を行う状態を開始状態として説明する。
S202では、送信端末200が、映像データの品質を判定する品質判定モデルの入力を受け付ける。S204では、送信端末200が、判定閾値の入力を受け付ける。
品質判定モデル及び判定閾値の入力は、送信端末200使用者等によって行われてよい。送信端末200への入力は、送信端末200が備える入力デバイスを用いて行われてよく、外部から送信端末200に入力情報を送信することによって行われてもよい。品質判定部214は、入力された品質判定モデルを取得する。処理実行部218は、入力された判定閾値を取得する。
なお、ここでは、図3と同様、判定閾値として、閾値C、閾値Cよりも高い閾値B、閾値Bよりも高い閾値Aが入力された場合を例示している。閾値Cは、第1閾値の一例であってよい。閾値Bは、第2閾値の一例であってよい。閾値Aは、第3閾値の一例であってよい。
S206では、データ送信部204が、受信サーバ300に映像データを送信する。データ送信部204は、送信した映像データを保持する。S208では、データ受信部302が受信した映像データを、データ出力部304が送信端末200に対して送信し、データ受信部212が、映像データを受信する。
S210では、品質判定部214が、S202においてデータ送信部204が送信した映像データと、S208において、データ受信部212が受信した映像データに基づいて、受信サーバ300が受信した映像データの品質を判定して、判定結果Xを出力する。品質判定部214は、S202において入力された品質判定モデルを用いて、映像データの品質を判定してよい。
S212では、処理選択部216が、Xが閾値A以上であるか否かを判定する。閾値A以上であると判定した場合、S224に進み、閾値A以上でないと判定した場合、S214に進む。本例において、処理選択部308は、閾値A以上であると判定した場合、ビットレートの変更処理、映像データの補正処理、及び変更要求処理のいずれも選択しない。
S214では、処理選択部216が、Xが閾値B以上であるか否かを判定する。閾値B以上であると判定した場合、S216に進み、閾値B以上でないと判定した場合、S218に進む。S216では、処理選択部216が、ビットレートの変更処理を選択し、処理実行部218が、データ送信部204が受信サーバ300に送信する映像データのビットレートを低減する。
S218では、処理選択部216が、Xが閾値C以上であるか否かを判定する。閾値C以上であると判定した場合、S220に進み、閾値C以上でないと判定した場合、S222に進む。S210では、処理選択部216が、ビットレートの変更処理及び映像データの補正処理を選択し、処理実行部218が、ビットレートの変更処理及び映像データの補正処理を実行する。処理実行部218は、補正処理を実行する場合に、映像データの画像部分に対する補正処理を実行してよい。処理実行部218は、映像データの音声部分に対する補正処理をさらに実行してもよい。S222では、処理選択部216が、ビットレートの変更処理、映像データの補正処理、及び変更要求処理を選択し、処理実行部218が、ビットレートの変更処理、映像データの補正処理、及び変更要求処理を実行する。
S224では、映像データの送信が終了したか否かを判定し、終了していない場合、S206に戻り、終了したと判定した場合、処理を終了する。
上述したように、処理選択部216は、映像データの品質が第1閾値より低い場合、変更処理、補正処理、及び変更要求処理を選択し、映像データの品質が第1閾値より高く、第2閾値より低い場合、変更処理及び補正処理を選択し、映像データの品質が第2閾値より高く、第3閾値より低い場合、変更処理を選択する。これにより、映像データの品質が高い場合には、処理を実行せず、品質が少し下がった場合に、変更処理を実行し、品質がさらに下がった場合に、変更処理に加えて補正処理を実行し、品質がさらに下がった場合に、変更処理、補正処理、及び変更要求処理を実行することになる。
全体的にみると、補正処理は、送信端末200及び受信サーバ300の少なくともいずれかで映像補正を実行することになり、変更処理よりも負荷が高まる可能性がある。また、変更要求処理は、ネットワーク100による調整が実行されることになって、他の通信端末や通信装置に影響を与える可能性がある。よって、本実施形態に係る処理選択部216によれば、映像データの品質の低下に応じて、より影響の少ない処理を段階的に増やして実行することを可能とすることができる。
なお、S216において選択される処理は、変更処理に限らない。また、S220において選択される処理は、変更処理及び補正処理に限らない。
処理選択部216は、映像データの品質が第1閾値より低い場合に、変更処理、補正処理、及び変更要求処理を選択し、映像データの品質が第1閾値より高く、第2閾値より低い場合、変更処理、補正処理、及び変更要求処理のうち2つを選択し、映像データの品質が第2閾値より高く、第3閾値より低い場合、変更処理、補正処理、及び変更要求処理のうち1つを選択してよい。
図5では、通信システム10が映像データを対象とする場合を例に挙げて説明したが、音声データを対象とする場合も、同様のフローによって実現可能である。
図6は、ネットワーク100への通信品質要求について説明するための説明図である。ここでは、ネットワーク100が、5GC(5G Core)110を含む場合について説明する。
送信端末200又は受信サーバ300は、通信品質の変更要求を、NEF(Network Exposure Function)114に送信することによって、5GC110のNF(Network Functions)を制御することができる。
5GC110は、NEF114によって通信品質の変更要求を送信端末200又は受信サーバ300から受信した場合に、例えば、受信サーバ300のUPF112の切り替えを実行する。5GC110は、例えば、伝送距離が最短となるUPF112への切り替えを実行する。UPF112の切り替えは、例えば、5GC110のSMF(Session Management Function)によって実行される。
5GC110は、通信品質の変更要求を受信した場合に、受信サーバ300に対する優先制御を実行してもよい。5GC110は、受信サーバ300の通信を優先することができれば、どのような方法を用いてもよい。例えば、5GC110は、受信サーバ300の通信を優先すべく、受信サーバ300に対するQCIを変更する。このような優先制御は、5GC110のSMF、AMF(Access and Mobility management Function)、及びgNB(gNodeB)120によって行われてよい。
5GC110は、通信品質の変更要求を受信した場合に、受信サーバ300に対する帯域幅制御を実行してもよい。5GC110は、例えば、受信サーバ300に対して専用のBWPを割り当てる。このような帯域幅制御は、5GC110のSMF、AMF,及びgNB120によって行われてよい。
5GC110は、通信品質の変更要求を受信した場合に、ネットワークスライシングによって、受信サーバ300の通信を優先してもよい。5GC110は、eMBB(enhanced Mobile Broadband)、及びURLLC(Ultra-Reliable and Low Latency Communications)等によって、受信サーバ300の通信を優先してよい。
図6では、ネットワーク100が、SA(Stand Alone)方式の5GC110を含む場合について説明したが、これに限らない。ネットワーク100のモバイルネットワークは、EPC(Evolved Packet Core)を利用する4G又は5G NSA(Non-StandAlone)であってもよい。4Gの場合、gNB120はeNB、EPCの場合、NEF114はSCEF(Service Capability Exposure Function)、UPF112はSGW(Serving Gateway)/PGW(Packet data network Gateway)のU-Plane機能部であってよい。
図7は、送信端末200又は受信サーバ300として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブは、DVD-ROMドライブ及びDVD-RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブは、プログラム又はデータをDVD-ROM等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
プログラムは、DVD-ROM又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD-ROM、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
また、CPU1212は、記憶装置1224、DVDドライブ(DVD-ROM)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。