(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023104295
(43)【公開日】2023-07-28
(54)【発明の名称】人工知能モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法
(51)【国際特許分類】
G06T 9/00 20060101AFI20230721BHJP
H04N 19/59 20140101ALI20230721BHJP
H04N 19/85 20140101ALI20230721BHJP
H04N 21/2343 20110101ALI20230721BHJP
H04N 21/4402 20110101ALI20230721BHJP
【FI】
G06T9/00 200
H04N19/59
H04N19/85
H04N21/2343
H04N21/4402
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022005194
(22)【出願日】2022-01-17
(71)【出願人】
【識別番号】519237926
【氏名又は名称】株式会社ユビタス
(74)【代理人】
【識別番号】110002907
【氏名又は名称】弁理士法人イトーシン国際特許事務所
(72)【発明者】
【氏名】郭榮昌
(72)【発明者】
【氏名】曹文凱
(72)【発明者】
【氏名】呉英豪
【テーマコード(参考)】
5B057
5C159
5C164
【Fターム(参考)】
5B057CA01
5B057CA08
5B057CA12
5B057CA13
5B057CA16
5B057CB01
5B057CB08
5B057CB12
5B057CB13
5B057CB16
5B057CE03
5B057CE08
5B057CE11
5B057CE17
5B057CE18
5B057CG01
5B057DA16
5B057DB02
5B057DB03
5B057DB06
5B057DB09
5B057DC40
5C159LA00
5C159LB05
5C159LB15
5C164FA06
5C164GA03
5C164PA33
5C164SA32S
5C164SB02P
5C164SB21S
5C164UB02P
5C164UB23S
(57)【要約】
【課題】人工知能モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法を提供する。
【解決手段】
人工知能モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法は、サーバ端末で先ず送信したい画像の解像度を低減した後にネットワークを介して低解像度画像をクライアント端末に送信することによって、画像ストリーミングの送信に必要なネットワーク帯域幅を低減する。その後、クライアント端末で事前に訓練した人工知能(Artificial Intelligent;AI)処理モジュールによって、受信した低解像度画像を高解像度画像に復元し、高品質の画像ストリーミングと低ネットワーク帯域幅消費という2つの利点を同時に享受することができる。
【選択図】
図11A
【特許請求の範囲】
【請求項1】
サーバで第1アプリケーションを実行して複数の原画像に対応する複数のソース画像を生成し、複数の前記ソース画像は、第1解像度を有し、複数の前記ソース画像は、前記サーバのエンコーダによって符合化及び圧縮され、対応する複数の符号化後画像を生成することと、
前記サーバから離れたクライアント端末装置で第2アプリケーションを実行し、前記第2アプリケーションは、前記第1アプリケーションに関連付けられ且つ連携することと、
前記クライアント端末装置は、ネットワークを介して前記サーバに接続され、前記サーバによって生成された前記複数の符号化後画像を、ネットワークを介して画像ストリーミング方式で受信することと、
前記クライアント端末装置は、前記複数の符号化後画像を対応する複数の復号後画像に復号し、人工知能(ArtificialIntelligent;AI)処理モジュールを用いて前記複数の復号後画像の解像度を高め、対応する複数の高解像度画像を生成し、複数の前記高解像度画像は、第2解像度を有し、前記第2解像度は、前記第1解像度よりも高く、且つ、複数の前記原画像の解像度は、前記第2解像度と等しいことと、
前記クライアント端末装置は、複数の前記高解像度画像を順にスクリーンに出力して再生される複数の出力画像とすることと、
を含み、
前記AI処理モジュールは、前記復号後画像と対応する前記複数の原画像画像との間の差異によって予め得られる少なくとも1つの数学演算式及び複数の重み付けパラメータを分析することによって前記複数の復号後画像を処理し、これにより、得られた前記複数の高解像度画像の解像度は、対応する前記複数の原画像に等しく、且つ複数の前記ソース画像の解像度よりも高く、前記AI処理モジュールの前記少なくとも1つの数学演算式及び複数の前記重み付けパラメータは、事前に訓練サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プロセスによって定義されるものである、人工知能モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法。
【請求項2】
前記複数の前記符号化画像は、
前記サーバで前記第1アプリケーションを実行して複数の前記原画像を生成し、複数の前記原画像は、前記第2解像度を有するステップと、
解像度低減プロセスを使用し、複数の前記原画像の解像度を前記第1解像度に低減し、対応する複数の前記ソース画像を取得するステップと、
前記エンコーダを使用し、複数の前記ソース画像を符号化し、対応する複数の前記符号化後画像を取得するステップと、
によって生成される、請求項1に記載の方法。
【請求項3】
前記サーバは、AI符号化モジュールを含み、前記複数の前記符号化画像は、
前記サーバで前記第1アプリケーションを実行して複数の前記原画像を生成し、複数の前記原画像は、前記第2解像度を有するステップと、
前記AI符号化モジュールを使用し、複数の前記原画像に対して解像度を低減して対応する複数の前記ソース画像を取得し、複数の前記ソース画像を符号化して対応する複数の前記符号化後画像を取得するステップと、
によって生成され、
前記AI符号化モジュールは、予め設けられる少なくとも1つのAI符号化演算式を含み、前記少なくとも1つのAI符号化演算式は、予め設けられる複数の符号化重み付けパラメータを含む、請求項1に記載の方法。
【請求項4】
前記AI処理モジュールの前記少なくとも1つの数学演算式は、第1プリセットAI演算式及び第2プリセットAI演算式を含み、前記第1プリセットAI演算式は、複数の第1重み付けパラメータを含み、前記第2プリセットAI演算式は、複数の第2重み付けパラメータを含み、
前記第1プリセットAI演算式は、画像の解像度を向上させることに用いることができる複数の前記第1重み付けパラメータを組み合わせることにより、前記第1プリセットAI演算式に複数の前記第1重み付けパラメータを組み合わせて処理した解像度は、前記第1解像度から前記第2解像度に向上することができ、
前記第2プリセットAI演算式は、画像の品質を向上させることに用いることができる複数の前記第2重み付けパラメータを組み合わせることにより、前記第2プリセットAI演算式に複数の前記第2重み付けパラメータを組み合わせて処理した画像の品質は、前記復号後画像の品質よりも高く、且つ前記原画像の品質により近づく、請求項1に記載の方法。
【請求項5】
前記クライアント端末装置は、受信した複数の前記符号化後画像を対応する複数の復号後画像に復号した後、
前記クライアント端末装置は、先ず前記第1プリセットAI演算式と複数の前記第1重み付けパラメータを使用して複数の前記復号後画像を処理し、対応する第2解像度を有する複数の解像度向上画像を生成し、次に、前記クライアント端末装置は、前記第2プリセットのAI演算式と複数の前記第2重み付けパラメータを使用し、複数の前記解像度向上画像を処理し、高画質を有し且つ前記第2解像度を有する複数の前記高解像度画像を生成する方式一と、
前記クライアント端末装置は、先ず前記第2プリセットAI演算式と複数の前記第2重み付けパラメータを使用して複数の前記復号後画像を処理し、対応する高画質の複数の品質向上画像を生成し、次に、前記クライアント端末装置は、前記第1プリセットAI演算式と複数の前記第1重み付けパラメータを使用して複数の前記品質向上画像を処理し、前記第2解像度を有し且つ高画質を有する複数の高解像度画像を生成する方式二と、
のいずれか1つを使用して、複数の前記復号後画像を処理する、請求項4に記載の方法。
【請求項6】
前記第1プリセットAI演算式、前記第2プリセットAI演算式、複数の前記第1重み付けパラメータ、及び複数の前記第2重み付けパラメータは、全て、前記クライアント端末装置の同じ前記AI処理モジュール内に含まれ、複数の前記復号後画像を、高画質で前記第2解像度を有する複数の前記高解像度画像に処理する、請求項4に記載の方法。
【請求項7】
前記AI処理モジュールは、受信した複数の前記符号化後画像を複数の前記復号後画像に復号するためのAI復号演算式をさらに含み、前記AI復号演算式、前記第1プリセットAI演算式、前記第2プリセットAI演算式、複数の前記第1重み付けパラメータ、及び複数の前記第2重み付けパラメータは、全て前記クライアント端末装置の同じ前記AI処理モジュール内に含まれ、受信した複数の前記符号化後画像を、一度に高画質で前記第2解像度を有する複数の前記高解像度画像に処理する、請求項4に記載の方法。
【請求項8】
前記訓練サーバ内で実行される前記人工ニューラルネットワークモジュールの前記訓練プロセスは、
前記訓練サーバで訓練モードをアクティブ化して複数の訓練原画像を生成し、複数の訓練原画像は、第2解像度を有するステップと、
解像度低減プロセスを実行し、複数の訓練原画像の解像度を前記第2解像度から前記第1解像度に低減し、第1解像度を有する複数の訓練低解像度画像を生成するステップと、
前記人工ニューラルネットワークモジュールは、第1訓練演算式を受信して使用し、複数の前記訓練低解像度画像を1つずつ処理して、対応する前記第2解像度を有する複数の訓練出力画像を生成し、前記第1訓練演算式は、複数の第1訓練重み付けパラメータを有するステップと、
比較モジュールを使用し、複数の前記訓練出力画像と対応する複数の前記訓練原画像の違いを1つずつ比較し、それに応じて前記第1訓練演算式の前記複数の第1訓練重み付けパラメータを調整し、前記複数の第1訓練重み付けパラメータは、前記訓練出力画像と対応する訓練原画像との違いを最小化でき、前記複数の第1訓練重み付けパラメータが調整されるたびに、調整後の前記複数の第1訓練重み付けパラメータは、前記第1訓練演算式にフィードバックされ、次の前記訓練低解像度画像を処理させるステップと、
を含み、
所定数の前記訓練出力画像と対応する前記訓練原画像との比較、及び所定回数の複数の前記第1訓練重み付けパラメータの調整プロセスを行った後、最終的に得られた前記複数の第1訓練重み付けパラメータが前記クライアント端末装置の前記AI処理モジュール内に適用され、少なくとも1つの前記数学演算式の複数の前記重み付けパラメータとされる、請求項4に記載の方法。
【請求項9】
前記訓練サーバ内で実行される前記人工ニューラルネットワークモジュールの前記訓練プロセスは、
前記訓練サーバで訓練モードをアクティブ化して複数の訓練原画像を生成し、複数の訓練原画像は、第2解像度を有するステップと、
解像度低減プロセスを実行し、複数の訓練原画像の解像度を前記第2解像度から前記第1解像度に低減し、前記第1解像度を有する複数の訓練低解像度画像を生成するステップと、
符号化プロセスを実行し、訓練サーバのエンコーダによって複数の前記訓練低解像度画像を対応する複数の訓練符号化後画像に符合化するステップと、
復号プロセスを実行し、訓練サーバのデコーダによって複数の前記訓練符号化画像を対応する複数の訓練復号後画像に復号し、複数の前記訓練復号後画像は、前記第1解像度を有するステップと、
前記人工ニューラルネットワークモジュールは、第1訓練演算式及び第2訓練演算式を受信して使用し、複数の前記訓練復号後画像を1つずつ処理して、対応する前記第2解像度を有する複数の訓練出力画像を生成し、前記第1訓練演算式は、複数の第1訓練重み付けパラメータを有し、前記第2訓練演算式は、複数の第2訓練重み付けパラメータを有するステップと、
比較モジュールを使用し、複数の前記訓練出力画像と対応する複数の前記訓練原画像の違いを1つずつ比較し、それに応じて前記第1訓練演算式の前記複数の第1訓練重み付けパラメータ及び前記第2訓練演算式の前記複数の第2訓練重み付けパラメータを調整し、前記複数の第1訓練重み付けパラメータ及び前記第2訓練重み付けパラメータは、前記訓練出力画像と対応する訓練原画像との違いを最小化でき、前記複数の第1訓練重み付けパラメータ及び前記複数の第2訓練重み付けパラメータが調整されるたびに、調整後の前記複数の第1訓練重み付けパラメータ及び前記複数の第2訓練重み付けパラメータは、前記第1訓練演算式及び前記第2訓練演算式にフィードバックされ、次の前記訓練低解像度画像を処理させるステップと、
を含み、
所定数の前記訓練出力画像と対応する前記訓練原画像との比較、及び所定回数の前記複数の第1訓練重み付けパラメータ及び前記複数の第2訓練重み付けパラメータの調整プロセスを行った後、最終的に得られた前記複数の第1訓練重み付けパラメータ及び前記複数の第2訓練重み付けパラメータが前記クライアント端末装置の前記AI処理モジュール内に適用され、少なくとも1つの前記数学演算式に含まれる前記第1訓練演算式及び前記第2訓練演算式の重み付けパラメータとされる、請求項4に記載の方法。
【請求項10】
前記訓練サーバ内で実行される前記人工ニューラルネットワークモジュールの前記訓練プロセスは、
前記訓練サーバで訓練モードをアクティブ化して複数の訓練原画像を生成し、複数の訓練原画像は、第2解像度を有するステップと、
解像度低減プロセスを実行し、複数の訓練原画像の解像度を前記第2解像度から前記第1解像度に低減し、前記第1解像度を有する複数の訓練低解像度画像を生成するステップと、
第1人工ニューラルネットワークモジュールを用いて、訓練符号化演算式を受信して使用し、複数の前記訓練低解像度画像を1つずつ処理して、対応する前記第1解像度を有する複数の訓練符号化画像を生成し、前記訓練符号化演算式は、複数の訓練符号化重み付けパラメータを有するステップと、
第2人工ニューラルネットワークモジュールを用いて、訓練復号演算式を受信して使用し、複数の前記訓練符号化画像を1つずつ処理して、対応する前記第2解像度を有する複数の訓練出力画像を生成し、前記訓練復号演算式は、複数の訓練復号重み付けパラメータを有するステップと、
比較モジュールを使用し、複数の前記訓練出力画像と対応する複数の前記訓練原画像の違いを1つずつ比較し、それに応じて前記訓練符号化演算式の前記複数の訓練符号化重み付けパラメータ及び前記訓練復号演算式の前記複数の訓練復号重み付けパラメータを調整し、前記複数の訓練符号化重み付けパラメータ及び前記複数の訓練復号重み付けパラメータは、前記訓練出力画像と対応する訓練原画像との違いを最小化でき、前記複数の訓練符号化重み付けパラメータ及び前記複数の訓練復号重み付けパラメータが調整されるたびに、調整後の前記複数の訓練符号化重み付けパラメータ及び前記複数の訓練復号重み付けパラメータは、前記訓練演算式及び前記訓練復号演算式にフィードバックされ、次の前記訓練低解像度画像を処理させるステップと、
を含み、
所定数の前記訓練出力画像と対応する前記訓練原画像との比較、及び所定回数の前記複数の訓練符号化重み付けパラメータ及び前記複数の訓練復号重み付けパラメータの調整プロセスを行った後、最終的に得られた前記複数の訓練符号化重み付けパラメータが前記サーバの前記AI符号化モジュールのAI符号化演算式に適用され、且つ、得られた前記複数の訓練復号重み付けパラメータが前記クライアント端末装置の前記AI処理モジュールの少なくとも1つの前記数学演算式に適用されることにより、前記クライアント端末装置の前記AI処理モジュールは、受信した前記符号化後画像に対して復号、解像度向上及び画像品質強化のプロセスを一度に実行することができる、請求項3に記載の方法。
【請求項11】
前記複数の原画像は、3次元画像であり、各前記3次元画像は、それぞれ、1つの画像フレームに並べて組み合わされた左目ビュー及び右目ビューを含む、請求項2に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人工知能モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法に関し、特に、サーバ端末で送信したい画像の解像度を先に低減してネットワークを介してクライアントに送信し、次にクライアント端末で事前訓練を経た人工知能(Artificial Intelligent;AI)処理モジュールによって、受信した画像を高解像度に復元することでビデオストリーミングに必要なネットワーク帯域幅を低減する方法に関する。
【背景技術】
【0002】
近年、ネットワークオンラインゲームは、世界中で人気が高まっている。クラウドベース(Cloud-Based)のコンピューティング関連システム及び技術の発展において、サーバによってゲームコンテンツをビデオストリーミングでネットワークを介してプレイヤーへ伝送し、オンラインゲームサービスを提供するクラウド技術も開発されている。
【0003】
このようなクラウドオンラインゲーム(On-Line Game)サービスを提供する従来の方法は、サーバに略全ての演算を実行させることである。言い換えれば、オンラインゲームサービスを提供する時、特定のアプリケーションがサーバ内で実行され、多くの3D(Three Dimensional)オブジェクトを含む仮想3D環境を生成し、それは、プレイヤーによって制御されるか、動かされることができる3Dオブジェクトを含む。そして、プレイヤーの制御結果に応じて、サーバは、3Dオブジェクト及び仮想3D環境をプレイヤーの装置に表示するための2D(Two Dimensional)ゲーム画面にレンダリング(Render)する。次に、サーバはレンダリングされたイメージコード(Encode)を2Dビデオストリームに圧縮し、それをネットワークを介してプレイヤーの装置に送信する。プレイヤー装置は、受信した2Dビデオストリームを復号し、次いでそれを「再生」するだけでよく、3Dレンダリングを実行する必要がない。しかしながら、そのようなクラウドベースのオンラインゲームサービスには、解決すべきいくつかの課題がまだあり、例えば、多数のプレイヤーに3Dレンダリングプロセスを提供する時のサーバの高負荷、符号化圧縮及びストリーミングプロセスによる画質の低下、及びネットワーク経由で2Dビデオストリームを送信することによって消費される大量の通信帯域幅である。
【0004】
画質を低下させる問題を解決するための従来の方法は、サーバ側のゲームアプリケーションプログラムによって生成された原画像の解像度を改善し、画像を送信する時のビットレート(Bitrate)を改善する、即ちサーバの原画像を2Dビデオストリームに符号化する時の圧縮率(CompressionRatio)を低減することである。しかしながら、当然、そうすることは、サーバの負荷及び帯域幅の消費量が何れも画像の高解像度及び高伝送ビットレートのために、顕著に増加する。例えば、フレームレート及び符号化圧縮率がともに固定値である場合、サーバ側のゲームアプリケーションプログラムによって生成された原画像の解像度が720pから1080pに増加すると、サーバの演算負荷及び必要なネットワーク伝送ビットレートが何れも2.25倍に増加する。相対して、サーバの負荷やネットワークの帯域幅消費を減らそうとすると、ゲーム画像の画質が犠牲になる。従って、完璧な画質と経済的な帯域幅消費の両方を達成することは困難である。
【0005】
この問題を解決するもう1つの方法は、サーバ側のゲームアプリケーションによって生成された原画像の解像度を下げること、又は原画像をより高い圧縮率で2Dビデオストリームに符号化すること、あるいはその両方である。これにより、ゲーム画像の画質は犠牲になるが、ネットワークで伝送される2Dビデオストリームの帯域消費量が削減される。同時に、クライアント端末装置で画像強化技術が使用される。一旦、2Dビデオストリームが受信されると、クライアント端末装置は、ビデオストリームを符号化し、画像強化技術により画像の視覚効果を改善する。ヒストグラム等化(Histogram equalization;HE)は、簡単さと効率性を有するので、画像コントラストを改善するための最もよく用いられる方法の1つである。しかしながら、HEは、過度のコントラスト強化及び特徴喪失問題を引き起こし、不自然な外観及び処理された画像詳細の損失を招く。さらに、HEだけでなく、当技術分野で知られている他の全ての画像強化技術も同じジレンマに遭遇し、即ち、それらは全て同じセットのアルゴリズムを使用して完全に異なる画像内容を有する様々な画像を処理しようと試みるが、このような考え方は、実現不可能である。クラウドオンラインゲームサービスを例にとると、サーバによって生成された原画像の画面コンテンツは、ゲームシーンの変化によって大きく変化する。例えば、都市のゲームシーンの原画像は、多くの簡単且つ明瞭な輪郭と、異なるが概ね同系色の色とを含ませることができる。1つの暗い洞窟のゲームシーンでは、ゲームの原画像を単調でトーンが低く色度値が低い色で満たし、不規則だが目立たない景観の輪郭にする。緑豊かな庭園のシーンは、ゲームの原画像に多くの鮮やかでカラフルなオブジェクトを含ませ、詳細で複雑な輪郭をもたせる。疑いの余地なく、完全に異なる画像コンテンツを有する様々な異なるシーンに対して良好な画像強化を提供することができる従来の強化技術は存在しない。
【0006】
また、これらの従来の画像強化技術のもう1つの欠点は、これらの従来の画像強化技術の数学演算式は、コントラスト、シャープネス、飽和度などの画像の画面効果を改善することができるが、これらの演算式及びそのパラメータは、何れも完全にサーバが生成する原画像と関連しない。従って、これらの従来の画像強化技術の強化過程は、強化された後の画像を対応する原画像に視覚的に近づけることは決してなく、従ってクライアント端末のゲームプレイヤーはサーバ側のゲームアプリケーションプログラムによって生成された原画像の画面効果を完全に享受することはできない。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
このため、本発明の目的は、人工知能モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法を提供することである。サーバ端末で先ず送信したい画像の解像度を低減した後、ネットワークを介して低解像度の画像をクライアント端末に送信することにより、画像ストリームの送信に必要なネットワーク帯域幅を低減する。その後、クライアント端末で事前に訓練された人工知能(Artificial Intelligent;AI)処理モジュールにより、受信した低解像度画像を高解像度画像に復元し、高画質及び低ネットワーク帯域幅消費という2つの利点を同時に享受する。
【課題を解決するための手段】
【0009】
上記の目的を達成するため、本発明の人工知能モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の一実施形態は、サーバで第1アプリケーションを実行して複数の原画像に対応する複数のソース画像を生成し、複数の前記ソース画像は、第1解像度を有し、複数の前記ソース画像は、前記サーバのエンコーダによって符合化及び圧縮され、対応する複数の符号化後画像を生成するステップ(A)と、前記サーバから離れたクライアント端末装置で第2アプリケーションを実行し、前記第2アプリケーションは、前記第1アプリケーションに関連付けられ且つ連携するステップ(B)と、前記クライアント端末装置は、ネットワークを介して前記サーバに接続され、前記サーバによって生成された前記複数の符号化後画像を、ネットワークを介して画像ストリーミング方式で受信するステップ(C)と、前記クライアント端末装置は、前記複数の符号化後画像を対応する複数の復号後画像に復号し、人工知能(ArtificialIntelligent;AI)処理モジュールを用いて前記複数の復号後画像の解像度を高め、対応する複数の高解像度画像を生成し、複数の前記高解像度画像は、第2解像度を有し、前記第2解像度は、前記第1解像度よりも高く、且つ、複数の前記原画像の解像度は、前記第2解像度と等しいステップ(D)と、前記クライアント端末装置は、複数の前記高解像度画像を順にスクリーンに出力して再生される複数の出力画像とするステップ(E)と、を含み、前記AI処理モジュールは、前記復号後画像と対応する前記複数の原画像画像との間の差異によって予め得られる少なくとも1つの数学演算式及び複数の重み付けパラメータを分析することによって前記複数の復号後画像を処理し、これにより、得られた前記複数の高解像度画像の解像度は、対応する前記複数の原画像に等しく、且つ複数の前記ソース画像の解像度よりも高く、前記AI処理モジュールの前記少なくとも1つの数学演算式及び複数の前記重み付けパラメータは、事前に訓練サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プロセスによって定義されるものである。
【0010】
好ましくは、ステップ(A)において、前記複数の前記符号化画像は、前記サーバで前記第1アプリケーションを実行して複数の前記原画像を生成し、複数の前記原画像は、前記第2解像度を有するステップと、解像度低減プロセスを使用し、複数の前記原画像の解像度を前記第1解像度に低減し、対応する複数の前記ソース画像を取得するステップと、前記エンコーダを使用し、複数の前記ソース画像を符号化し、対応する複数の前記符号化後画像を取得するステップと、によって生成される。
【0011】
好ましくは、前記サーバは、AI符号化モジュールを含み、ステップ(A)において、前記複数の前記符号化画像は、前記サーバで前記第1アプリケーションを実行して複数の前記原画像を生成し、複数の前記原画像は、前記第2解像度を有するステップと、
前記AI符号化モジュールを使用し、複数の前記原画像に対して解像度を低減して対応する複数の前記ソース画像を取得し、複数の前記ソース画像を符号化して対応する複数の前記符号化後画像を取得するステップと、によって生成され、前記AI符号化モジュールは、予め設けられる少なくとも1つのAI符号化演算式を含み、前記少なくとも1つのAI符号化演算式は、予め設けられる複数の符号化重み付けパラメータを含む。
【0012】
好ましくは、前記AI処理モジュールの前記少なくとも1つの数学演算式は、第1プリセットAI演算式及び第2プリセットAI演算式を含み、前記第1プリセットAI演算式は、複数の第1重み付けパラメータを含み、前記第2プリセットAI演算式は、複数の第2重み付けパラメータを含み、前記第1プリセットAI演算式は、画像の解像度を向上させることに用いることができる複数の前記第1重み付けパラメータを組み合わせることにより、前記第1プリセットAI演算式に複数の前記第1重み付けパラメータを組み合わせて処理した解像度は、前記第1解像度から前記第2解像度に向上することができ、前記第2プリセットAI演算式は、画像の品質を向上させることに用いることができる複数の前記第2重み付けパラメータを組み合わせることにより、前記第2プリセットAI演算式に複数の前記第2重み付けパラメータを組み合わせて処理した画像の品質は、前記復号後画像の品質よりも高く、且つ前記原画像の品質により近づく。
【0013】
好ましくは、前記クライアント端末装置は、受信した複数の前記符号化後画像を対応する複数の復号後画像に復号した後、前記クライアント端末装置は、先ず前記第1プリセットAI演算式と複数の前記第1重み付けパラメータを使用して複数の前記復号後画像を処理し、対応する第2解像度を有する複数の解像度向上画像を生成し、次に、前記クライアント端末装置は、前記第2プリセットのAI演算式と複数の前記第2重み付けパラメータを使用し、複数の前記解像度向上画像を処理し、高画質を有し且つ前記第2解像度を有する複数の前記高解像度画像を生成する方式一と、前記クライアント端末装置は、先ず前記第2プリセットAI演算式と複数の前記第2重み付けパラメータを使用して複数の前記復号後画像を処理し、対応する高画質の複数の品質向上画像を生成し、次に、前記クライアント端末装置は、前記第1プリセットAI演算式と複数の前記第1重み付けパラメータを使用して複数の前記品質向上画像を処理し、前記第2解像度を有し且つ高画質を有する複数の高解像度画像を生成する方式二と、のいずれか1つを使用して、複数の前記復号後画像を処理する。
【発明の効果】
【0014】
本発明の人工知能モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法は、サーバ端末で先ず送信したい画像の解像度を低減した後、ネットワークを介して低解像度の画像をクライアント端末に送信することにより、画像ストリームの送信に必要なネットワーク帯域幅を低減する。その後、クライアント端末で事前に訓練された人工知能(Artificial Intelligent;AI)処理モジュールにより、受信した低解像度画像を高解像度画像に復元し、高画質及び低ネットワーク帯域幅消費という2つの利点を同時に享受する。
【図面の簡単な説明】
【0015】
【
図1】本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減するシステムの説明図である。
【
図2】本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減するシステムの構造の一実施形態の説明図である。
【
図3】本発明の人工処理モジュールを用いてビデオストリーミングを処理する方法の第1実施形態の説明図である。
【
図4】本発明による人工ニューラルネットワークモジュール105の訓練プロセスの第1実施例の説明図である。
【
図5】本発明による人工ニューラルネットワークモジュール105の訓練プロセスの第2実施例の説明図である。
【
図6】本発明による人工ニューラルネットワークモジュール105の訓練プロセスの第3実施例の説明図である。
【
図7】
図6に示す弁別器の訓練プロセスの実施例の説明図である。
【
図8】本発明のニューラルネットワークの訓練過程の実施例を開示し、ここで、原画像はYUV420であり、出力画像はRGB又はYUV420である。
【
図9】本発明のYUV420フォーマットを有する復号画像を処理するプロセスの実施例の説明図である。
【
図10】本発明のYUV420フォーマットを有する復号画像を処理するプロセスのもう1つの実施例の説明図である。
【
図11A】本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第2実施形態の説明図である。
【
図11B】本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第3実施形態の説明図である。
【
図12A】本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第4実施形態の説明図である。
【
図12B】本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第5実施形態の説明図である。
【
図13】本発明のAI処理モジュールの第1の所定のAI演算式及び第1重み付けパラメータの訓練方法の一実施形態の説明図である。
【
図14A】本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第6実施形態の説明図である。
【
図14B】本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第7実施形態の説明図である。
【
図15】本発明のAI処理モジュールの第1の所定のAI演算式、第2の所定のAI演算式、第1重み付けパラメータ及び第2重み付けパラメータの訓練方法の一実施形態の説明図である。
【
図16】本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第8実施形態の説明図である。
【
図17】本発明の人工ニューラルネットワークのAI符合化演算式、AI復号化演算式、第1の所定のAI演算式、第2の所定のAI演算式、第1重み付けパラメータ及び第2重み付けパラメータの訓練方法の一実施形態の説明図である。
【発明を実施するための形態】
【0016】
本発明の用途の1つは、プレイヤーがクライアント端末装置を使用してネットワークを介してサーバに接続し、サーバによって提供されるゲームをプレイするクラウドベースのオンラインゲーム(cloud-based online games)である。サーバは、プレイヤーによって入力されたコマンドに応答して対応するビデオ画像を生成することができる。従って、例えば、プレイヤーは、クライアント端末装置で移動のコマンドを実行することができる。移動コマンドは、ネットワークを通してサーバに送信され、次にサーバは移動コマンドに従って画像を計算し、該画像をクライアント端末装置に返送し、再生する。多くのゲームでは、サーバは、可視範囲内の位置する幾つかの3Dレンダリングオブジェクトを含む2D画像を生成する。
【0017】
図1を参照し、それは、本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法を説明している。サーバ1は、該サーバ1上で実行されるアプリケーションによってサービスを提供することに適用され、該サービスは、クラウドオンラインゲームサービスであり得るが、これに限定されない。複数のクライアント端末装置21、22、23は、ネットワーク4を介してサーバ1に接続(ログイン)し、該サーバ1上で実行されている該アプリケーションが提供するサービスを使用することができる。本実施例において、該ネットワーク4はインターネット(Internet)であり、且つ該クライアント端末装置21、22、23は、スマートフォン21、デジタルタブレット、ノートブックコンピュータ22、デスクトップコンピュータ23、電子ゲーム機、あるいはスマートテレビ(ただし、これらに限定されない)などの任意の種類のネットワーク接続可能な電子装置であることができる。一部のクライアント端末装置21、22は、無線通信基地局3又は無線ルータ30を介してネットワーク4に無線接続され、その他は、ネットワークルータ又はネットワーク共有装置を介してネットワーク4に有線接続される。サーバ1上で実行されているアプリケーションは、複数の3Dオブジェクトを含む仮想3D環境を生成し、3Dオブジェクトの幾つかはユーザの操作に応じて移動又は破壊されることができるが、他の幾つかは、そうすることができない。好適実施例において、アプリケーションは、クライアント端末装置ごとに独立した動作インスタンスを持つ。即ち、各アプリケーションは、クライアント端末装置にサービスを提供するだけであるが、該サーバ1内で複数のアプリケーションを同時に実行し、複数のクライアント端末装置にサービスを提供することができる。該クライアント端末装置21、22、23は、ネットワーク4を介して該サーバ1に接続され、該アプリケーションによって生成された3Dオブジェクトの少なくとも一部を含む画面を受信する。本発明のシステムアーキテクチャ及び機能は、
図2及びそれに関連する説明を通して詳細に説明する。
【0018】
図2は、本発明のシステムアーキテクチャの実施例の説明図である。アプリケーション(App)100は、メモリ101に格納され、サーバ1(通常は3Dゲームプログラム)上で実行され、一連の原画像からなる3D画面のレンダリング結果を生成することができる。コード102及びストリーム103は、それぞれアプリケーション100によって生成された原画像を受信し、それを2Dビデオストリームに符号化及びストリーミングすることができる符号化モジュール及びストリーミングモジュールである。該2Dビデオストリームは、サーバのネットワーク装置104を経由してネットワーク4を介して遠隔に配置されたクライアント端末装置2に送信される。各クライアント端末装置2は、それぞれ予めアプリケーション200をインストールしており、該アプリケーション200は、クライアント端末装置2のメモリ201に記憶され、サーバ1上のアプリケーション100と関連付けられ、連携できる。クライアント端末装置2のアプリケーション200は、サーバ1のアプリケーション100と接続を確立し、ネットワークモジュール202によって、該サーバ1から該符号化された2Dビデオストリームを受信することができる。該符号化された2Dビデオストリームは、次に該復号モジュール203によって復号されて復号画像が生成される。これらの符号化、ストリーミング及び復号のプロセスにより、復号画像の品質は明らかに原画像よりはるかに悪い。クライアント端末装置2に組み込まれたAI処理モジュール204は、それらの復号画像の品質を向上させ、対応する強化画像を生成することができる。該AI処理モジュール204は、該復号画像と対応する該原画像との間を比較した差を分析することによって得られる少なくとも1つの数学演算式によって該復号画像を処理する。これにより、得られた強化画像は、復号画像よりも視覚的に原画像に近くなる。その後、該強化画像は、出力モジュール205を介して、クライアント端末装置2のスクリーン(表示パネル)に出力(再生)される。本発明において、該クライアント端末装置2のAI処理モジュール204によって使用される数学演算式は、サーバ1上に配置された人工ニューラルネットワーク(Artificial Neural Network)モジュール105によって実行される訓練プロセスにより定義される。人工ニューラルネットワークモジュール105は、該サーバ1内に設けられ、人工ニューラルネットワーク106、復号モジュール107、及び比較訓練モジュール108を含む。本発明の人工ニューラルネットワークモジュール105の該訓練プロセスの実施例については後で詳細に説明する。
【0019】
図3は、本発明のネットワークを介して送信されるビデオストリームの品質を向上させる方法の実施例の説明図である。
図2及び
図3に示すように本発明のシステム及びアーキテクチャを利用することにより、該方法は、大まかに以下のステップを含む。
【0020】
ステップ301:サーバで第1アプリケーションを実行する。該第1アプリケーションは、少なくとも1つの指示に従って複数の原画像を生成する(ステップ302)。その後、該原画像がサーバ内のエンコーダによって符号化及び圧縮され(ステップ303)、複数の復号画像が生成される。該符号化された画像は、2Dビデオストリームのタイプでネットワークを介してクライアント端末装置に送信される(ステップ304)。
【0021】
サーバから離れたクライアント端末装置内で第2アプリケーションを実行する(ステップ305)。該第2アプリケーションは、該第1アプリケーションと関連付けられ、連携し、これによって該クライアント端末装置は、ユーザに操作させ、コマンドを生成してサーバに発生させ、サーバの第1アプリケーションによって提供されるサービスを享受させることができる。該クライアント端末装置は、ネットワークを介して該コマンドをサーバに送信し、ネットワークを介して該サーバが生成し且つ該コマンドに対応する符号化画像を受信する。次に、クライアント端末装置は、該符号化画像を複数の復号画像に復号し(ステップ306)、AI処理モジュールを使用して復号画像の品質を向上させ(ステップ307)、複数の強化画像を生成する。該AI処理モジュールは、該復号画像と対応する該原画像との間の差を分析することによって得られる少なくとも1つの数学演算式によって復号画像を処理する。これにより、得られた強化画像は、復号画像よりも視覚的に原画像に近くなる。その後、該クライアント端末装置は、再生されるべき出力画像として該強化画像をスクリーン(表示パネル)に出力する(ステップ308)。
【0022】
本発明において、クライアント端末装置内のAI処理モジュールによって使用される少なくとも1つの数学演算式は、複数の重み付きパラメータ(Weighted Parameters)を含む。該重み付けパラメータは、該復号画像と対応する該原画像との間の差に関連付けられ、サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プロセスによって定義される。本発明の実施例において、該重み付けパラメータは、予めクライアント端末装置に格納されている。もう1つの実施例において、該重み付けパラメータは、クライアント端末装置が該第2アプリケーションを実行する時、該サーバから該クライアント端末にダウンロードされる。
【0023】
本発明の実施例において、サーバによって生成された原画像に含まれる画面コンテンツは、ゲームシーンの違いに応じて劇的に変化する。例えば、都市のゲームシーンは、多くの簡単且つ明確な外観輪郭と、異なるが概ね同系色の色を含むゲームの原画像を有することができる。もう1つの暗い洞窟のゲームシーンでは、ゲームの原画像は単調でトーンが低く色度が低い色で満たされるが、不規則だが目立たない景観の輪郭になる。また、別の緑豊かな庭園のシーンは、ゲームの原画像に多くの鮮やかでカラフルなオブジェクトを含み、詳細で複雑な輪郭を持たせる。本発明の方法は、これらの異なるゲームシナリオに適応するために異なる重み付けパラメータを用い、これによって、同じAI強化モジュールによって向上された出力画像の品質が高品質かつ安定したレベルを維持することができ、原画像の画像コンテンツでさえも劇的に変化させる。
【0024】
好適には、該第1アプリケーションによって生成された該原画像は、複数組のシーン(scene-modes)に区分されることができ、各シーンは、それぞれ複数の該原画像を含む。該重み付けパラメータも複数組に区分され、各組は、それぞれ複数の重み付けパラメータを含み、そのうち1つの該シーンに対応する。異なるシーンの原画像に対応する該復号画像は、同じAI処理モジュールによって該異なる組の重み付けパラメータ内の該シーンに対応する重みの該組の重み付けパラメータを用いて、画像強化処理が施される。本発明の実施例において、該異なる組の重み付けパラメータは全てクライアント端末装置に予め記憶されており、シーンが変化するたびに、変化した新しいシーンに対応する該組の重みのパラメータが該AI処理モジュールに適用され、該強化画像を生成する。もう1つの実施例において、該異なる組の重み付けパラメータは、全て該サーバ側に格納され、該シーンが変化するたびに、変化した新しいシーンに対応する該組の重み付けパラメータがサーバからクライアント側に送信され、その後、該AI処理モジュールに運用され、該強化画像を生成させる。
【0025】
図4は、本発明に記載の人工ニューラルネットワークモジュール105の訓練プロセスの第1実施例の説明図である。本発明において、該クライアント端末装置2のAI処理モジュール204によって使用される数学演算式は、サーバ1内の該人工ニューラルネットワークモジュール105によって実行される訓練プロセスによって訓練され定義される。該訓練プロセスは、以下のステップを含む。
【0026】
ステップ400:訓練モードで該第1アプリケーションを実行し、複数の訓練原画像を生成し(ステップ401)、且つ前記複数の原画像に解像度低減処理を行う(ステップ4011)。
【0027】
ステップ402:解像度を低減した後の該訓練原画像が該エンコーダによって複数の訓練符号化画像に符号化される。
【0028】
ステップ403:サーバ内の訓練デコーダを使用することによって該訓練符号化画像を複数の訓練復号画像に復号する。
【0029】
ステップ404:該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算を使用して該訓練復号画像を1つずつ処理して複数の訓練出力画像を生成する(ステップ405)。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。
【0030】
ステップ406:該訓練出力画像と対応する該訓練原画像との間の差を該比較訓練モジュールによって1つずつ比較し、それに応じて該少なくとも1つの訓練数学演算式の該訓練重み付けパラメータを調整する。該訓練重み付けパラメータは、該訓練出力画像と対応する該訓練原画像との間の差を最小にするように調整される。該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータは、該少なくとも1つの訓練数学演算式にフィードバックされ、ステップ404において、次の訓練復号画像を処理させる。所定数の訓練出力画像と対応する訓練原画像との比較、所定数の訓練重み付けパラメータの調整プロセスを実行した後、最後に訓練を完了した後に得られる該訓練重み付けパラメータ(ステップ407)は、取り出され、該クライアント端末装置のAI処理モジュールに適用され、その数学演算式の重み付けパラメータとされる。
【0031】
本発明の第1実施例において、該訓練復号画像は該人工ニューラルネットワークモジュールに入力されて対応する該訓練出力画像を生成する。そして、該訓練出力画像と対応する該訓練原画像とを比較して差値を算出する。そして、例えばAdamアルゴリズム、確率勾配降下法(Stochastic gradient descent;SGD)、又は前方二乗平均平方根勾配降下法(Root Mean Square Propagation;RMSProp)等の数学最適化法により前記人工ニューラルネットワークの重み付きパラメータ(一般に重み付きweight w、バイアスbias bと称される)を学習し、それによって差値が可能な限り小さくなるし、これによって、該訓練出力画像は、対応する訓練原画像に更に近くなることができる。異なる要求に応じて異なる方法が該差値(又は近似値)を計算することに用いられることができ、例えば、平均二乗誤差(mean square error;MSE)、L1正規化(L1 regularization)(絶対値の誤差を利用absolute value error)、ピーク値信号対ノイズ比(peak signal-to-noise ratio;PSNR)であり、構造類似性(structure similarity;SSIM)、生成対抗ネットワーク損失(generative adversarial networks loss;GAN loss)及び/又はその他の方法などである。第1実施例において、以下の方法を使用して差値を計算する。(1)MSE、L1、及びGAN lossの重み付け平均;(2)MSE;(3)GAN loss並びに同時に弁別器(Discriminator)を訓練する;(4) MSEの重み付け平均及びMSEの辺縁(Edge of MSE)。該訓練プロセスの詳細については後述する。
【0032】
図5は、本発明による人工ニューラルネットワークモジュール105の訓練プロセスの第2実施例の説明図である。本発明において、該第2実施例の訓練プロセスは以下のステップを含む。
【0033】
ステップ410:訓練モードで該第1アプリケーションを実行して複数の訓練原画像を生成する(ステップ411)。ここで、該訓練原画像のカラーフォーマットはカラー三原色(RGB)である。また、これら訓練原画像に対して解像度低減処理を行う(ステップ4111)
【0034】
ステップ412:解像度を低減した後の該訓練原画像を該エンコーダによって複数の訓練コード画像に符号化する。
【0035】
ステップ413:サーバ内の訓練デコーダを使用することによって該訓練符号化画像を複数の訓練復号画像に復号する。
【0036】
ステップ414:該第2実施例において、該訓練復号画像と該訓練出力画像のカラーフォーマットが同じである(本第2実施例において両方ともRGBである)場合、残差ネットワークモジュール(residual network module)は、畳み込みニューラルネットワーク(Convolutional Neural Network;CNN)とも称され、該人工ニューラルネットワークモジュールにおいて使用され得る。対応する訓練復号画像を処理するための該残差ネットワークモジュールの出力は、該対応する訓練復号画像と合計される(summed up)(ステップ415)。次に、該残差ネットワークモジュールの出力と該対応する訓練復号画像との合計の結果が訓練出力画像として出力される(ステップ416)。
【0037】
ステップ417:該比較訓練モジュールを使用することによって、該訓練出力画像と対応する該訓練原画像との間の差を逐一比較し(差値を計算する)、それに従って該少なくとも1つの訓練数学演算式の該訓練重み付けパラメータを調整する。該訓練重み付けパラメータは、該訓練出力画像と対応する該訓練原画像との間の差を最小にするように調整される。該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータが該人工ニューラルネットワークにフィードバックされて、ステップ414において、次の訓練復号画像が処理される。所定数の訓練出力画像と対応する訓練原画像との比較、所定数の訓練重み付けパラメータの調整プロセスを行った後、最後に訓練を完了した後に得られる該訓練重み付けパラメータ(ステップ418)が取り出され、その数学演算式のパラメータの重み付けとして該クライアント端末装置のAI処理モジュールに適用される。
【0038】
図6は、本発明の人工ニューラルネットワークモジュール105の訓練プロセスの第3実施例の説明図である。第3実施例において、該比較訓練モジュールは、弁別器(Discriminator)を使用して、該訓練出力画像と対応する該訓練原画像との間の差を比較し、それに応じて該訓練重み付けパラメータを調整する。該第3実施例の訓練プロセスは、以下のステップを含む。
【0039】
ステップ420:訓練モードで該第1アプリケーションを実行して複数の訓練原画像を生成する(ステップ421)。ここで、該訓練原画像はn個のチャネルを含み、nは2より大きい正の整数である。また、これら訓練原画像に対して解像度低減処理を行う(ステップ4211)
【0040】
ステップ422:解像度を低減した後の該訓練原画像を該エンコーダによって複数の訓練符号化画像に符号化する。
【0041】
ステップ423:サーバ内の訓練デコーダを使用することによって該訓練符号化画像を複数の訓練復号画像に復号し、訓練復号画像は、m個のチャネルを含み、mは2より大きい正の整数である。
【0042】
ステップ424:該人工ニューラルネットワークモジュールは、該訓練復号画像(mチャネル)を受け取り、少なくとも1つの訓練数学演算式を使用することによって該訓練復号画像を1つずつ処理し、複数の訓練出力画像(nチャネル)を生成する(ステップ425);該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。該訓練出力画像(nチャネル)と対応する訓練復号画像(mチャネル)とを組み合わせて(ステップ426)、複数の訓練合成画像(m+nチャネルを有する)を生成する。次に、訓練合成画像は、訓練出力画像の品質を分析するために弁別器にフィードバックされ(ステップ427)、これによって該人工ニューラルネットワークを訓練する。
【0043】
図7は、
図6に示す弁別器の訓練手順の実施例の説明図である。該弁別器の訓練プロセスは、以下のステップを含む。
【0044】
ステップ430:訓練モードで該第1アプリケーションを実行して複数の訓練原画像を生成する(ステップ431)。ここで、該訓練原画像は、n個のチャネルを含み、nは2より大きい正の整数である。
【0045】
ステップ432:該訓練原画像をエンコーダによって複数の訓練符号化画像に符号化する。
【0046】
ステップ433:サーバ内の訓練デコーダによって該訓練符号化画像を複数の訓練復号画像に復号する。ここで、該訓練復号画像は、m個のチャネルを含み、mは2より大きい正の整数である。
【0047】
ステップ434:該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算を使用し、訓練復号画像(mチャネル)を1つずつ処理し、複数の訓練出力画像を生成する(ステップ435)。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。該訓練出力画像はn個のチャネルを含む。
【0048】
ステップ436:該nチャネルの訓練出力画像と対応する該mチャネルの訓練復号画像との両者を組み合わせて、m+nチャネルを有する複数の偽サンプル(false samples)を生成する。そして、該nチャネルの訓練原画像と対応する該mチャネルの訓練復号画像との両者を組み合わせて、m+n個のチャネルを有する複数の真のサンプル(true samples)を生成する(ステップ437)。
【0049】
ステップ438:該m+nチャネルの模擬偽サンプル及び該m+nチャネルの模擬真サンプルを、比較訓練モジュールの弁別器にフィードバックして、弁別器の模擬偽サンプル及び模擬真サンプルを検出及び識別する能力を訓練させる。
【0050】
該人工神経系ネットワーク105(
図2に示す)がサーバ1側で適切に訓練された後、得られた重み付けパラメータ(重みweight w、バイアスbias b)がクライアント端末装置内のAI処理モジュール304に適用される。該AI処理モジュール204及びそれに関連する重み付けパラメータ(重みweight w、バイアスbias b)は、該クライアント端末装置2に格納される。その後、該クライアント端末装置が、サーバから2Dビデオストリームに含まれる符号化画像を受信して復号するたびに、該符号化画像の各々は、該AI処理モジュールによって処理されて強化画像を生成する。その後、該クライアント端末装置は、該強化画像を出力画像としてそのスクリーン上に再生する。該ニューラルネットワークは、画像の色、明るさ、及び詳細を学習し、向上させることができる。原画像の一部の細節は、符号化及びストリーミングの過程で損傷又は消失するので、適切に訓練されたニューラルネットワークはこれらの損傷又は消失した詳細を修復することができる。本発明の実施例において、AI増強モジュールのニューラルネットワークは、動作するために以下の情報を必要とする。
【0051】
関連機能とパラメータ:
X:入力画像。
Conv2d(X、a、b、c、d、w、b):Xで実行される。出力チャネル数はaである(amount of output channel=a)。コアサイズはbである(kernel_size=b)。ストライド値はcである(stride=c)。パディングサイズは2d畳み込みであり、そのバイアスはdである(padding size=2d convolution with bias of d)。該訓練の重み付けパラメータは、コアw(kernel w)とバイアスb(bias b)である。
Conv2dTranspose(X、a、b、c、w、b)):Xで実行される。出力チャネル数はaである(amount of output channel=a)。コアサイズはbである(kernel_size=b)。ストライド値はcである(stride=c)。クロップサイズは2d転置畳み込みで、そのバイアスはdである(cropping size= 2d transpose convolution with bias of d)。訓練の重み付けパラメータは、コアw(kernel w)とバイアスb(bias b)である。
σ(X):Xに作用する非線形活性化関数。
uint8(x):浮動小数点xの値を0から255(255を含む)の間で制御及び制限することに用いられ、uは無条件丸めメソッドを使用し、unsigned int8に変換する。
R(X、w):多くのconv2d及びbatchnormを含むXで動作する残差ブロック(residual block)であり、それぞれが訓練のための独自の重み付けパラメータを含む(詳細については、次のWebサイトを参考とすることができる。https://stats.stackexchange.com/questions/ 246928/what-exactly-is-a-residual-learning-block-in-the-context-of-deep-residual-networ)
【0052】
入力画像及び出力画像は、RGB、YUV420、YUV444などのような異なる色フォーマットを有することができるので、以下に異なる色フォーマットを有する入力画像及び出力画像について検討する。
【0053】
第1の状況:原画像はRGB、出力画像もRGBである。
【0054】
入力画像と出力画像の両方がRGB画像であるため、この状況は最も単純である。処理速度を向上させるために、比較的大きなコアサイズ(例えば、8×8、ストライド値stride=4で構造中に畳み込み及び転置畳み込みされる)を使用してできるだけ早く計算を加速し、フルHD画像の高解像度に対応する。この場合、残差ネットワーク(Residual network)を用いて収束をより容易により安定させる。
【0055】
関連機能とパラメータ:
X:RGBフォーマットの入力画像。各色はunsigned int8フォーマットである。
【0056】
【0057】
Y=uint8((Conv2dTranspose(σ(Conv2d(X2、a、b、c、d、w_1、b_1))、w_2、b_2)+X2)×128+128)。
【0058】
W_1は、サイズがb*b*3*aの行列であり、b_1は、サイズがaのベクトルである。
W_2は、サイズがb*b*3*aの行列であり、b_2は、サイズが3のベクトルである。
【0059】
使用されるパラメータは、以下を含む:
Xの解像度は1280×720である。
a=128,b=10,c=5,d=0,σ=leaky relu with alpha=0.2。
a=128,b=9,c=5,d=4,σ=leaky relu with alpha=0.2。
a=128,b=8,c=4,d=0,σ=leaky relu with alpha=0.2。
【0060】
前記クライアント端末装置の処理速度が速い場合は、次の数学演算式を使用できる。
【0061】
Y=uint8((Conv2dTranspose(R(σ(Conv2d(X2, a,b,c,d,w_1,b_1)),w_R),w_2,b_2)+X2)*128+128)
【0062】
W_1はサイズがb*b*3*aの行列で、b_1はサイズがaのベクトルである。
W_2はサイズがb*b*3*aの行列で、b_2はサイズが3のベクトルである。
ここで、Rはn層を有する残差ブロック(residual blocks)である。
そのうちに、多くのニューラルネットワーク層を含み、各層が訓練された重み付けパラメータを有し、これをまとめてw_Rと称する。
【0063】
使用されるパラメータは、以下を含む。
a=128,b=8,c=4,d=0,σ=leaky relu with alpha=0.2;n=2。
a=128,b=8,c=4,d=0,σ=leaky relu with alpha=0.2;n=6。
【0064】
第2の状況:原画像は、YUV420、出力画像は、RGB又はYUV444である。
【0065】
原画像入力がYUV420で、出力画像がRGB又はYUV444の場合、入力画像と出力画像の解像度とフォーマットが異なるため、残差ネットワーク(Residual network)をこの状況に直接適用することはできない。本発明の方法は、最初にYUV420の入力画像を復号し、次に別のニューラルネットワーク(Aネットワークと称され、N=3である)を使用し、復号画像を処理し、RGB又はYUV444フォーマットの画像(X2と称される)を取得する。次に、X2画像は、第1の状況に記載されたニューラルネットワーク(残差ネットワーク)に送られ、訓練される。また、同じ訓練方法をAネットワークにも適用して、X2と原画像との間の差を比較し、それによってAネットワークを訓練する。
【0066】
X_yは、YUV420フォーマットの入力画像のYであり、そのフォーマットはunsigned int8である。
X_uvはYUV420フォーマットの入力画像を持つUVで、そのフォーマットはunsigned int8である。
【0067】
【0068】
X2=Conv2d(X2_y,3,e,1,w_y,b_y)+Conv2dTranspose(X2_uv,3,f,2,w_uv,b_uv)
【0069】
W_yは、サイズがe*e*1*3の行列で、b_yは、サイズが3のベクトルである。
W_uvは、サイズがf*f*3*2の行列で、b_uvは、サイズが3のベクトルである。
【0070】
上記はAネットワーク(ニューラルネットワーク数A)の第1実施例である。
最後に、該出力画像の出力に用いられる数学式と前述の第1の状況の入力画像と出力画像が何れもRGBフォーマットである場合に用いられる数学式は同じである。
【0071】
Y=uint8((Conv2dTranspose(σ(Conv2d(X2,a,b,c,d,w_1,b_1)),w_2,b_2)×128+128)
【0072】
W_1は、サイズがb*b*3*aの行列で、b_1は、サイズがaのベクトルである。
W_2は、サイズがb*b*3*aの行列で、b_2は、サイズが3のベクトルである。
【0073】
使用されるパラメータは、前述と同様に、入力画像と出力画像が両方ともRGBフォーマットの場合に使用されるパラメータと同じである。
Xの解像度は1280×720である。
a=128,b=8,c=4,d=0,e=1,f=2,σ=leaky relu with alpha=0.2;
a=128,b=8,c=4,d=0,e=1,f=2,σ=leaky relu with alpha=0.2。
【0074】
図8を参照し、それは、本発明のニューラルネットワークの訓練過程の実施例が開示しており、ここで原画像は、YUV420であり、出力画像は、RGB又はYUV420である。該ニューラルネットワークの訓練過程は、以下のステップを含む。
【0075】
ステップ440:訓練モードで第1アプリケーションを実行して複数の訓練原画像を生成する。ここで、該訓練原画像はRGB又はYUV444フォーマットである。また、これら訓練原画像に対して解像度低減処理を行う(ステップ4401)。
【0076】
ステップ441:解像度を低減した後の該訓練原画像を該エンコーダによって複数の訓練符号化画像に符号化する。
【0077】
ステップ442:サーバ内の訓練デコーダを使用することによって該訓練符号化画像を複数の訓練復号画像に復号する;ここで、訓練復号画像はYUV420フォーマットである。
【0078】
ステップ443:該人工ニューラルネットワークモジュールは、第1ニューラルネットワーク及び第2ニューラルネットワークを含む。該第1ニューラルネットワーク(Aネットワークとも称される)は、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算式を使用して該訓練復号画像(YUV420)を1つずつ処理し、複数の第1出力画像X2(X2とも称される。ステップ444)において、それは該訓練原画像と同じ符号フォーマットを有する。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。
【0079】
ステップ445:第2ニューラルネットワークは、畳み込みニューラルネットワークネットワーク(Convolutional Neural Network;CNN)である。第2ニューラルネットワーク(CNN)は、第1出力画像X2を受け取り、該少なくとも1つの訓練用数学演算式を使用して該第1出力画像X2を1つずつ処理し、複数の第2出力画像を生成する。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。次に、該第1出力画像X2と該第2出力画像の両者が加算され(ステップ446)、訓練出力画像が生成される(ステップ447)。
【0080】
該比較訓練モジュールは、第1比較器と第2比較器を備える。ステップ448において、該第1比較器は、第1出力画像X2とその対応する訓練原画像との間の差を比較し、該第1ニューラルネットワークを訓練する。ステップ449において、第2比較器は、訓練出力画像とその対応する訓練原画像との間の差を比較し、第2ニューラルネットワークを訓練する。
【0081】
図9は、本発明によるYUV420フォーマットを有する復号画像を処理するためのプロセスの実施例の説明図である。本発明のYUV420フォーマットで復号画像を処理するためのプロセスは以下を含む。
【0082】
ステップ451:該第1ニューラルネットワークがYUV420カラーフォーマットの訓練復号画像を受信し処理するステップは、以下のステップを含む。
【0083】
ステップ452:該訓練復号画像のY部分データを抽出し、該訓練復号画像のY部分データを標準サイズ(元のサイズ)のニューラルネットワークで処理し、NチャネルのY部分出力データを生成する(例えば、ストライド値Stride=1の畳み込み;ステップ454)。
【0084】
ステップ453:訓練復号画像中のUV部分データを抽出し、そして該訓練復号画像のUV部分データを二倍拡大ニューラルネットワークによって処理して、Nチャネルを有するUV部分出力データを生成する(例えば、ストライド値Stride=2の転置畳み込み;ステップ455)。
【0085】
ステップ456:該Y部分出力データを該UV部分出力データに加算して該訓練出力画像を生成する(ステップ457)。
【0086】
第3の状況:原画像は、YUV420であり、出力画像は、YUV444であり、別のより速い方法で処理される。
【0087】
入力画像がYUV420であり、出力画像がYUV444である場合、前述の方法に加えて該第1ニューラルネットワーク(Aネットワーク)を実施する別の方法があり、これはより速い速度を伴う特例である。YUV420フォーマットの復号画像は、まず第1ニューラルネットワーク(Aネットワーク)によってYUV444フォーマット画像(X2とも称される)に変換される。その後、X2が前述のニューラルネットワーク(残差ネットワーク)に送られ、訓練される。さらに、同じ訓練方法がAネットワークにおいても実施され、X2と原画像との間の差を比較し、Aネットワークを訓練する。
【0088】
X_yは、YUV420フォーマットの入力画像のYであり、そのフォーマットは、unsigned int8である。
X_uvは、YUV420フォーマットの入力画像のUVであり、そのフォーマットは、unsigned int8である。
【0089】
【0090】
X3_uv=Conv2dTranspose(X2_uv,2,2,2,w_uv,b_uv)
【0091】
W_uvは、サイズが2*2*2*2の行列で、b_uvは、サイズが2のベクトルである。
X2=cancat(X2_y、X3_uv)
【0092】
上記は、Aネットワーク(ニューラルネットワークA)のもう1つの実施例であり、ここでは、"concat"関数は、チャネルの方向に従って該入力を接続する。
【0093】
最後に、該出力画像の出力に使用される数学式と前述の第1の場合の入力画像と出力画像が何れもRGBフォーマットの場合に使用される数学式と同じである。
【0094】
Y=uint8((Conv2dTranspose(σ(Conv2d(X2、a、b、c、d、w_1、b_1))、w_2、b_2)×128)128)。
【0095】
W_1は、サイズがb*b*3*aの行列で、b_1は、サイズがaのベクトルである。
W_2は、サイズがb*b*3*aの行列で、b_2は、サイズが3のベクトルである。
【0096】
使用されるパラメータは、入力画像と出力画像が両方ともRGBフォーマットの場合に使用されるパラメータと同じである。
Xの解像度は1280×720である。
a=128,b=10,c=5,d=0,σ=leaky relu with alpha=0.2;
a=128,b=9,c=5,d=4,σ=leaky relu with alpha=0.2;
a=128,b=8,c=4,d=0,σ=leaky relu with alpha=0.2。
【0097】
図10は、本発明のYUV420フォーマットの復号画像を処理するプロセスのもう1つの実施例の説明図である。
図10に示すように、本発明のYUV420フォーマットの復号画像を処理するためのプロセスは以下を含む。
【0098】
ステップ461:該第1ニューラルネットワークは、以下のステップにより、YUV420カラーフォーマットの訓練復号画像を受け取り、処理する。ここで、該訓練復号画像は、Nチャネルを含み、Nは、2より大きい正の整数である。
【0099】
ステップ462:該訓練復号画像内のY部分データを抽出してY部分出力データを生成する。
【0100】
ステップ463:該訓練復号画像内のUV部分データを抽出し、訓練復号画像のUV部分データを処理してN-1チャネルのUV部分出力データを生成する(例えば、ストライド値Stride=2の転置畳み込み;ステップ464)。
【0101】
ステップ465:マージ関数Concat(concatenates)によって該Y部分データ及び該UV部分データを処理し、該訓練出力画像が生成する(ステップ466)。
【0102】
第4の状況:原画像は、YUV420、出力画像は、YUV420である。
【0103】
入力画像がYUV420であり、出力画像もYUV420である場合、処理は上述のRGBからRGBへの方法と同様になる。ただし、入力フォーマットと出力フォーマットが異なるため、チャネルごとに異なる畳み込み方法が適用される。例えば、ニューラルネットワークのコアサイズが8×8でストライド値strideが4であり、画像のY部分を処理する場合、該ニューラルネットワークをコアサイズ4x4及びストライド値strideを2に変更して画像のUV部分を処理することができる。
【0104】
X_yは、YUV420フォーマットの入力画像のYであり、そのフォーマットはunsignedint8である。
X_uvは、YUV420フォーマットの入力画像のUVであり、そのフォーマットはunsigned int8である。
【0105】
【0106】
X3=σ(Conv2d(X2_y,a,b,c,w_y,b_y)Conv2d(X2_uv,a,b/2,c/2,w_uv,b_uv))
【0107】
W_yは、サイズがb*b*1*aの行列で、b_yはサイズがaのベクトルである。
W_uvは、サイズが(b/2)*(b/2)*2*aの行列で、b_uvはサイズがaのベクトルである。
【0108】
X4_y=Conv2dTranspose(X3,1,b,c,w_1,b_1)X2_y;
X4_uv=Conv2dTranspose(X3,2,b/2,c/2,w_2,b_2)X2_uv
【0109】
W_1はサイズがb*b*1*aの行列で、b_1はサイズが1のベクトルである。
W_2はサイズが(b/2)*(b/2)*2*aの行列で、b_2はサイズが2のベクトルである。
上記は、Aネットワーク(ニューラルネットワークA)のもう1つの実施例であり、ここでは、"concat"関数はチャネルの方向に従って入力を接続する。
【0110】
最後の出力:
Y_y=uint8(X4_y*128128)。
Y_uv=uint8(X4_uv*128128)。
【0111】
使用するパラメータ:
a=128,b=8,c=4,d=0,e=2,f=2,σ=leaky relu with alpha=0.2。
【0112】
本発明で使用されるパラメータの詳細な説明は以下の通りである。
訓練パラメータ:
重み付けパラメータの初期値は、ガウス分布(Gaussian distribution)に基づき、mean=0、stddev=0.02である。
Adamアルゴリズムが訓練プロセスで使用され、学習率は、学習率learning rate=1e-4,beta1=0.9である。
マイクロバッチサイズmini batch size=1である。
プライマリエラー関数(primary error function)は、次のとおりである。
100×(L2×L2e)λ×L1γ×Dα×Lg。
使用されるパラメータの標準値は次のとおりである。
λ=0、γ=0、α=0。
λ=0、γ=0、α=100。
λ=0、γ=1、α=0。
λ=10、γ=0、α=0。
λ=10、γ=0、α=100。
λ=10、γ=1、α=0。
そのうち、
ここで、meanは、平均値であり、Tは訓練目標である。
ここで、meanは、平均値であり、Tは訓練目標である。
Dは、生成対抗ネットワーク損失(GAN loss)であり、一般的なGAN訓練方法を使用して、弁別器(Discriminator)を訓練し、(X、Y)及び(X、T)を識別する。
Lgの数学式は、
WxHの画像の場合、
Y_dx(i、j)=Y(i1、j)-Y(i、j)0≦i<W-1,0<=j<H
T_dx(i、j)=T(i1、j)-T(i、j)0≦i<W-1,0<=j<H
Y_dy(i、j)=Y(i、j1)-Y(i、j)0≦i<W,0<=j<H-1
T_dy(i、j)=T(i、j1)-T(i、j)0≦i<W,0<=j<H-1
【0113】
【0114】
RGBモードでは、前記訓練ターゲットTは、RGBゲーム画像のオリジナルの原画像である。
YUV444モードでは、訓練ターゲットTは。RGBゲーム画像のオリジナルの原画像である。
RGB→RGB、YUV420→YUV420モードでは、L2e=0である。
YUV420→RGB及びYUV420→YUV444モードでは、以下である。
【0115】
【0116】
本発明は、従来の画像強化技術が、出力画像のコントラスト、平滑化、及びカラーフィルタリングを増加させるだけであり、本発明のように出力画像を原画像に視覚的に近似させることができないものとは異なる。本発明は、ニューラルネットワークアルゴリズムの単純化されたモデルを使用し、大きなコア及び大きなストライド値を使用することによって、ニューラルネットワークの分解能は急速に低下し、モデルの処理速度は大幅に向上することができる。計算能力が限られているクライアント端末装置でも、60fpsとHD解像度の出力画像の目標を達成することができる。本発明は、カラーフォーマット(YUV420及びRGB)変換作業をニューラルネットワークに取り入れ、Yチャネルよりも低いUVチャネルの解像度を利用することで、UVチャネルのストライド値をYチャネルの半分に設定すると、ニューラルネットワークの計算速度を高めることができる。
【0117】
図11Aは、本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第2実施形態の説明図であり、以下のステップを含む。
【0118】
ステップ711:サーバ701で第1アプリケーションを実行する。前記第1アプリケーションは、少なくとも1つのコマンドに従って、高解像度を有する複数の原画像を生成する。これらの原画像の解像度は、4K以上の解像度(以下、第2解像度とも称する)にすることができる。前記少なくとも1つのコマンドは、クライアント端末装置702によって生成され、ネットワークを介してサーバ701に送信される。
【0119】
ステップ712:サーバ701の従来のサンプリング方法を使用し、原画像の解像度を低減し、低解像度(例えば、1080i、720p以下、以下第1解像度とも称する)を有するソース画像を取得し、第1解像度は、第2解像度よりも低い。
【0120】
ステップ713:サーバ701のエンコーダを使用して、ソース画像を符号化及び圧縮し、対応する複数の符号化後画像を生成する。
【0121】
ステップ714:クライアント端末装置702からのコマンドに従って、サーバ701は、これら符号化後画像を、ネットワークを介して2D画像ストリーム(ステップ304)でクライアント端末装置702に送信する。クライアント端末装置に送信される前に画像の解像度が低減されているため、画像ストリームの送信に必要なネットワーク帯域幅も低減する。
【0122】
ステップ715:クライアント端末装置702は、これらの符号化後画像を受信し、それらを対応する複数の復号後画像に復号する。
【0123】
本発明では、クライアント端末装置702は、少なくとも1つの所定の数学演算式を含むAI処理モジュールを含む。前記少なくとも1つの数学演算は、複数の重み付けされたパラメータを含む。前記複数の重み付けされたパラメータは、訓練サーバの人工ニューラルネットワークモジュールの訓練モードによって事前定義される。第2アプリケーションは、クライアント端末装置702上で実行され、これは、ユーザがクライアント端末装置702を操作してコマンドを生成するために第1アプリケーションに関連付けられ、それと協調する。クライアント端末装置702は、ネットワークを介してコマンドをサーバ701に送信し、サーバからのコマンドに従って生成された符号化画像を受信する。
【0124】
本実施形態では、前記少なくとも1つの数学演算式は、第1プリセットAI演算式と第2プリセットAI演算式を含む。前記第1プリセットAI演算式は、複数の第1重み付けパラメータを含む。前記第2プリセットAI演算式は、複数の第2重み付けパラメータを含む。前記第1プリセットAI演算式は、複数の前記第1重み付けパラメータを組み合わせてイメージの解像度を向上させることに用いることができ、これにより、前記第1プリセットAI演算式に複数の前記第1重み付けパラメータを組み合わせて処理した画像の解像度は、前記第1解像度から前記第2解像度へ向上することができる。前記第2プリセットAI演算式は、複数の前記第2重み付けパラメータと組み合わせて画像の品質を向上させることができ、これにより、前記第2プリセットAI演算式に複数の前記第2重み付けパラメータを組み合わせて処理した画像の品質は、前記復号後画像の品質よりも高く、且つ原画像の品質により近くなる。
【0125】
ステップ716:前記クライアント端末装置702が受信した複数の前記符号化後画像を対応する複数の復号後画像に復号した後、前記クライアント端末装置は先に前記第1プリセットAI演算式及び複数の第1重み付けパラメータを使用し、複数の前記復号後画像を処理し、対応する第2解像度を有する複数の解像度向上画像を生成する。次に、ステップ717において、前記クライアント端末装置702は、前記第2プリセットAI演算式及び複数の前記第2重み付けパラメータを使用し、複数の前記解像度向上画像を処理し、高画質を有し、前記第2解像度を有する複数の高解像度画像を生成する。その後、ステップ718のように、クライアント端末装置702は、これらの高解像度画像を出力画像とし、スクリーン(ディスプレイ)に出力する。
【0126】
前記第1プリセットAI演算式の第1重み付けパラメータは、低解像度を有するソース画像と対応する原画像の違いを分析することによって事前に定義され、前記解像度向上画像を視覚的に原画像により近づけていてソース画像ではない。また、前記第2プリセットAI演算式の第2重み付けパラメータは、前記復号後画像と対応する原画像の違いを分析することによって事前定義され、前記高解像度画像を視覚上原画像により近づけていて復号後画像ではない。
【0127】
図11Bは、本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第3実施形態の説明図である。
図11Bに示される大部分のステップは、
図11Aに示されるものと同じであるため、同じまたは類似のステップには同じ番号を付け、詳細を繰り返し説明しない。
図11Bに示す実施形態では、サーバ701で実行される第1アプリケーションが第1解像度を有する複数のソース画像を生成し(ステップ719)、即ち、サーバ701は、低解像度のソース画像を直接生成するため、別途、解像度を低減するプロセスを実行する必要がない。その後、これらのソース画像は、
図11Aで説明されているステップ713~718に従って処理される。サーバ701は、低解像度のソース画像を直接生成するため、消費を要する演算リソースは、高解像度の原画像を生成するよりも少なくなる。従って、
図11Aに示されるような実施形態のネットワーク帯域幅節約の利点に加えて、
図11Bに示される実施形態は、更に、サーバの演算リソースを節約するという利点を有する。
【0128】
図12Aは、本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第4実施形態の説明図である。
図12Aに示される大部分のステップは、
図11A及び
図11Bに示されるものと同じであるため、同じまたは類似のステップには同じ番号を付け、詳細を繰り返し説明しない。
図12Aに示す実施形態では、サーバ701で実行されている第1アプリケーションが、第2解像度の複数の原画像を生成する(ステップ711)。これらの原画像は、解像度低減処理され、相対して第1解像度を有する複数のソース画像(ステップ712)になる。その後、これらのソース画像は、符号化後画像に符号化され(ステップ713)、クライアント端末装置702に送信される(ステップ714)。クライアント端末装置702は、受信された符号化画像を復号化画像(ステップ715)に復号化する。次に、
図12Aに示される実施形態ステップ717において、前記クライアント端末装置702は、先ず、第2プリセットAI演算式及び複数の前記第2重み付けパラメータを使用し、複数の前記復号後画像を処理して、高画質であるが解像度は依然として第1解像度である複数の品質向上画像を生成する。次に、前記クライアント端末装置702は、前記第1プリセットAI演算式及び複数の前記第1重み付けパラメータを使用し、複数の前記品質向上画像を処理して、前記第2解像度を有し、高画質画像を有する複数の高解像度画像を生成する。その後、ステップ718などのように、クライアント端末装置702は、これらの高解像度画像を出力画像とし、スクリーンに出力する。
【0129】
図12Bは、本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第5実施形態の説明図である。
図12Bに示される大部分のステップは、
図12A及び
図11Bに示されるものと同じであるため、同じまたは類似のステップには同じ番号を付け、詳細を繰り返し説明しない。
図12Bに示す実施形態では、サーバ701で実行されている第1アプリケーションが第1解像度の複数のソース画像(ステップ719)を生成する。即ち、サーバ701は低解像度のソース画像を直接生成するため、解像度低減プロセスを別途実行する必要がない。その後、これらのソース画像は、
図12Aで説明されているステップ713~718に従って処理される。
【0130】
図13は、本発明のAI処理モジュールの第1の所定のAI演算式及び第1重み付けパラメータの訓練方法の一実施形態の説明図である。本発明では、クライアント端末装置702のAI処理モジュールの第1プリセットAI演算式と複数の第1重み付けパラメータが、前記訓練サーバで人工ニューラルネットワーク訓練プロセスを実行することにより事前定義される。訓練が完了した後、第1プリセットAI演算式と複数の第1重み付けパラメータがクライアント端末装置702のAI処理モジュールに適用され、
図11A、
図11B、
図12A、及び
図12Bに示すステップ716に記載されるAI解像度向上ステップを行う。訓練サーバでは、第1プリセットAI演算式と複数の第1重み付けパラメータを訓練するステップは、以下を含む。
【0131】
ステップ7161:前記訓練サーバでは、訓練モードをアクティブ化し、複数の訓練原画像を生成する(ステップ7162)。複数の訓練原画像は、前記第2解像度を有する(高解像度)。
【0132】
ステップ7163:解像度低減プロセスを実行し、複数の前記訓練原画像の解像度を前記第2解像度から前記第1解像度に低減させ、第1解像度を有する複数の訓練低解像度画像を生成する(ステップ7164)。
【0133】
ステップ7165:前記人工ニューラルネットワークモジュールは、第1訓練演算式を受信して使用し、複数の前記訓練低解像度画像を1つずつ処理し、対応する前記第2解像度を有する複数の前記訓練出力画像を生成する(ステップ7166)。前記第1訓練演算式は、複数の第1訓練重み付けパラメータを有する。
【0134】
ステップ7167:比較モジュールを使用し、複数の前記訓練出力画像と対応する複数の前記訓練原画像の違いを1つずつ比較し、それに応じて前記第1訓練演算式の前記複数の第1訓練重み付けパラメータを調整する。前記第1訓練重み付けパラメータは、前記訓練出力画像と対応する前記訓練原画像の違いを最小化するように調整される。前記第1訓練重み付けパラメータが調整されるたびに、調整後の前記複数の第1訓練重み付けパラメータは、次の前記訓練低解像度画像を処理するために前記第1訓練演算式にフィードバックされる。所定数の前記訓練出力画像を対応する訓練原画像と比較し、所定回数の複数の前記第1訓練重み付けパラメータの調整プロセスを実行した後、最終的に得られた前記複数の第1訓練重み付けパラメータがクライアント端末装置702のAI処理モジュールに適用され、少なくとも1つの前記数学演算式の複数の前記重み付けパラメータとされ、
図11A、
図11B、
図12A、及び
図12Bに示されるステップ716に記載されるAI解像度向上ステップを実行する。
【0135】
本実施形態では、クライアント端末装置702のAI処理モジュールの第2プリセットAI演算式と第2重み付けパラメータ訓練方法は、
図4、
図5、または
図6に示す前述の人工ニューラルネットワークモジュール105の訓練方法と同じである。訓練が完了した後、取得した前記複数の第2訓練重み付けパラメータは、クライアント端末装置702のAI処理モジュールに適用され、少なくとも1つの前記数学演算式の複数の前記重み付けパラメータとして、
図11A、
図11B、
図12A及び
図12Bに示されるステップ717に記載される画像品質をAI強化するステップを実行する。
【0136】
図14Aは、本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第6実施形態の説明図である。
図14Aに示される大部分のステップは、
図11Aに示されるものと同じであるため、同じまたは類似のステップには同じ番号を付け、詳細は繰り返し説明しない。
図14Aに示す実施形態では、サーバ701で実行されている第1アプリケーションが、第2解像度を有する複数の原画像を生成する(ステップ711)。これらの原画像は、解像度を低減することによって処理され、対応する第1解像度を有する複数のソース画像になる(ステップ712)。その後、これらのソース画像は、符号化後画像に符号化され(ステップ713)、クライアント端末装置702に送信される(ステップ714)。クライアント端末装置702は、受信した符号化画像を復号化画像に復号化する(ステップ715)。本実施形態では、前記第1プリセットAI演算式、前記第2プリセットAI演算式、複数の前記第1重み付けパラメータ、及び複数の前記第2重み付けパラメータがすべて、前記クライアント端末装置702の同じ前記AI処理モジュールに含められ、複数の前記復号後画像を直接処理し、高画質を有し且つ前記第2解像度を有する複数の前記高解像度画像になる。従って、ステップ720では、クライアント端末装置702のAI処理モジュールは、前記第1プリセットAI演算式、第2プリセットAI演算式、複数の第1重み付けパラメータ、及び複数の第2重み付けパラメータを受信して使用することで、復号後画像を処理し、対応する第2解像度を有する複数の前記高解像度画像を生成する。その後、ステップ718のように、クライアント端末装置702は、これらの高解像度画像を出力画像とし、スクリーンに出力する。
【0137】
図14Bは、本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第7実施形態の説明図である。
図14Bに示される大部分のステップは、
図14A及び
図11Bに示されるものと同じであるため、同じまたは類似のステップには同じ番号を付け、詳細を繰り返し説明しない。
図14Bに示す実施形態では、サーバ701で実行されている第1アプリケーションが第1解像度の複数のソース画像を生成し(ステップ719)、即ち、サーバ701は、低解像度のソース画像を直接生成するため、解像度低減プロセスを別途実行する必要はない。その後、これらのソース画像は、
図14Aで説明されているステップ713、714、715、720、及び718に従って処理される。
【0138】
図15は、本発明のAI処理モジュールの第1の所定のAI演算式、第2の所定のAI演算式、第1重み付けパラメータ及び第2重み付けパラメータの訓練方法の一実施形態の説明図である。本発明では、クライアント端末装置702のAI処理モジュール中の第1プリセットAI演算式、第2プリセットAI演算式、第1重み付けパラメータ及び第2重み付けパラメータが、前記訓練サーバでニューラルネットワークの訓練プロセスを実行することによって事前定義されている。訓練が完了した後、第1プリセットAI演算式、第2プリセットAI演算式、第1重み付けパラメータ及び第2重み付けパラメータがクライアント端末装置702のAI処理モジュールに適用され、
図14A及び
図14Bに示されているステップ720に記載のAI解像度向上+強化のステップを実行する。訓練サーバでは、訓練第1プリセットAI演算式、第2プリセットAI演算式、第1重み付けパラメータ及び第2重み付けパラメータのステップは、以下を含む。
【0139】
ステップ7201:前記訓練サーバで訓練モードをアクティブ化し、複数の訓練原画像を生成する(ステップ7202)。複数の訓練原画像は第2解像度(高解像度)を有する。
【0140】
ステップ7203:解像度低減プロセスを実行し、複数の訓練原画像の解像度を第2解像度から第1解像度に低減させ、前記第1解像度の複数の訓練低解像度画像を生成する(ステップ7204)。
【0141】
ステップ7205:符号化プロセスを実行し、訓練サーバ内のエンコーダによって、複数の前記訓練低解像度画像を対応する複数の訓練符号化後画像に符号化する。
【0142】
ステップ7206:符号プロセスを実行し、訓練サーバ内のデコーダによって、複数の前記訓練符号化後画像を対応する複数の訓練復号画像に復号する。複数の前記訓練復号画像は、前記第1解像度を有する。
【0143】
ステップ7207:前記人工ニューラルネットワークモジュールは、第1訓練演算式と第2訓練演算式を受信して使用し、複数の前記訓練復号画像を1つずつ処理して、対応する第2解像度を有する複数の訓練出力画像を生成する(ステップ7208)。第1訓練演算式は、複数の第1訓練重み付けパラメータを有する。前記第2訓練演算式は、複数の第2訓練重み付けパラメータを有する。
【0144】
ステップ7209:比較モジュールを使用し、複数の訓練出力画像と対応する複数の元の訓練画像の違いを1つずつ比較し、それに応じて前記第1訓練演算式の前記複数の第1訓練重み付けパラメータと前記第2訓練演算式の前記複数の第2訓練重み付けパラメータを調整する。前記複数の第1訓練重み付けパラメータと前記複数の第2訓練重み付けパラメータは、前記訓練出力画像と対応する原訓練画像との差を最小化するように調整されることができる。各前記複数の第1訓練重み付けパラメータと前記複数の第2訓練重み付けパラメータが調整されるたびに、調整された前記複数の第1訓練重み付けパラメータと前記複数の第2訓練重み付けパラメータが第1訓練演算式と第2訓練演算式にフィードバックされ、次の前記訓練低解像度画像を処理させる。所定数の前記訓練出力画像と対応する前記訓練原画像との比較を行い、所定回数の第1訓練重み付けパラメータ及び第2訓練重み付けパラメータの調整プロセスを実行した後、最終的に得られた前記複数の第1訓練重み付けパラメータ及び前記複数の第2訓練重み付けパラメータは、前記クライアント端末装置の前記AI処理モジュールに適用され、少なくとも1つの前記数学演算式に含まれる前記第1訓練演算式及び前記第2訓練演算式の重み付けパラメータとして、
図14A及び
図14Bのステップ720に記載されるAI解像度向上+画質強化のステップを実行させる。
【0145】
本発明の好適実施形態では、クライアント端末装置702のAI処理モジュールは、単一組のAI演算式と複数の重み付けされたパラメータのみを含み、
図15に示すように、ステップ7201から7209によって訓練されるため、
図14A及び
図14Bのステップ720に記載の「AI解像度向上+画質強化」というマージ機能を提供することもできる。
【0146】
図16は、本発明の人工知能処理モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減する方法の第8実施形態の説明図である。
図16に示される大部分のステップは、
図14A及び
図14Bに示されるものと同じであるため、同じまたは類似のステップには同じ番号を付け、詳細を繰り返し説明しない。
図16に示す実施形態では、サーバ701は、AI符号化モジュールを更に含む。サーバ701で実行されている第1アプリケーションは、コマンドに従って第2解像度の複数の原画像を生成する(ステップ721)。次に、ステップ722では、サーバ701は前記AI符号化モジュールを使用し、複数の原画像の解像度を低減し、対応する複数の前記ソース画像を取得し、複数の前記ソース画像を符号化して対応する複数の前記符号化後画像を取得する。前記AI符号化モジュールは、予め設けられる少なくとも1つのAI符号化演算式を含む。前記少なくとも1つのAI符号化演算式は、予め設けられる複数の符号化重み付けパラメータを含む。その後、符号化後画像は、画像ストリーミングの形でクライアント端末装置750に送信される(ステップ714)。本実施形態では、クライアント端末装置702のAI処理モジュールは、AI復号化演算式を更に含み、受信した符号化後画像を対応する復号化画像に復号する。言い換えれば、AI復号演算式、第1プリセットAI演算式、第2プリセットAI演算式、複数の第1重み付けパラメータ、及び複数の第2重み付けパラメータがすべてクライアント端末装置702の同じ前記AI処理モジュールに含まれ、受信した複数の符号化後画像が、復号後に高画質を有し且つ、前記第2解像度を有する複数の前記高解像度画像に直接処理される。従って、ステップ723では、クライアント端末装置702のAI処理モジュールは、前記AI復号演算式、第1プリセットAI演算式、第2プリセットAI演算式、複数の第1重み付けパラメータ、及び複数の第2重み付けパラメータを受信して使用し、前記複数の符号化後画像を処理し、対応する第2解像度を有する複数の前記高解像度画像を直接生成する。その後、ステップ718のように、クライアント端末装置702は、これらの高解像度画像を出力画像とし、スクリーンに出力する。
【0147】
図17は、本発明の人工ニューラルネットワークのAI符合化演算式、AI復号化演算式、第1の所定のAI演算式、第2の所定のAI演算式、第1重み付けパラメータ及び第2重み付けパラメータの訓練方法の一実施形態の説明図である。本発明では、サーバ701のAI符号化演算式とその重み付けパラメータ、及びクライアント端末装置702のAI処理モジュールのAI復号演算式とその重み付けパラメータ、第1プリセットAI演算式、第2プリセットAI演算式、第1重み付けパラメータ及び第2重み付けパラメータは、全て、前記訓練サーバで実行される人工ニューラルネットワークの訓練プロセスによって事前定義されている。訓練が完了した後、AI符号化演算式とその重み付けパラメータがサーバ701のAI符号化モジュールに適用され、
図16に示すステップ722(AI符号化ステップ)が実行される。同時に、AI復号演算式とその重み付けパラメータ、第1プリセットAI演算式、第2プリセットAI演算式、第1重み付けパラメータ、第2重み付けパラメータがクライアント端末装置702のAI処理モジュールに適用され、
図16に示すステップ723を実行する(AI復号+解像度向上+画質強化のステップ)。訓練サーバにおいて、AI復号演算式とその重み付けパラメータを訓練サーバで訓練し、AI復号式とその重み付けパラメータ、第1プリセットAI演算式、第2プリセットAI演算式、第1重み付けパラメータ及び第2重み付けパラメータを訓練するステップは、以下を含む。
【0148】
ステップ7221:前記訓練サーバで訓練モードをアクティブにし、訓練モードで第1アプリケーションを実行して、複数の訓練原画像を生成する(ステップ7222)。複数の前記訓練原画像は、前記第2解像度(高解像度)を有する。
【0149】
ステップ7223:解像度低減プロセスを実行し、複数の前記訓練原画像の解像度を前記第2解像度から前記第1解像度に低減させ、前記第1解像度の複数の訓練低解像度画像を生成する(ステップ7224)。
【0150】
ステップ7225:第1人工ニューラルネットワークモジュールを使用し、訓練符号化演算式を受信及び使用し、複数の前記訓練低解像度画像を1つずつ処理し、対応する前記第1解像度を有する複数の訓練符号化画像を生成する(ステップ7226)。前記訓練符号化演算式は、複数の訓練符号化重み付けパラメータを有する。
【0151】
ステップ7227:第2人工ニューラルネットワークモジュールを使用し、訓練復号演算式を受信及び使用して、複数の前記訓練符号化画像を1つずつ処理し、対応する前記第2解像度を有する複数の訓練出力画像を生成する(ステップ7228)。訓練復号演算式は、複数の訓練復号重み付けパラメータを有する。
【0152】
ステップ7229:比較モジュールを使用し、複数の前記訓練出力画像と対応する複数の前記訓練原画像の違いを1つずつ比較し、それに応じて前記訓練符号化演算式の前記複数の訓練重み付けパラメータと前記訓練復号演算式の前記複数の訓練復号重み付けパラメータを調整する。前記複数の訓練符号化重み付けパラメータ及び前記複数の訓練復号重み付けパラメータは、前記複数の訓練出力画像と対応する前記訓練原画像との差を最小化するように調整される。前記複数の訓練符号化重み付けパラメータと訓練復号重み付けパラメータが調整されるたびに、調整後の前記複数の訓練符号化重み付けパラメータと前記複数の訓練復号重み付けパラメータは、それぞれ前記訓練符号化演算式と前記訓練復号演算式にフィードバックされ、次の前記訓練低解像度画像を処理する。ステップ7220において、所定数の前記訓練出力画像と対応する前記訓練原画像との比較、及び所定回数の前記訓練符号化重み付けパラメータ及び前記訓練復号化重量パラメータの調整プロセスを実行した後、最終的に得られた前記複数の訓練符号化重み付けパラメータは、サーバの前記AI符号化モジュールのAI符号化演算式に適用される。また、取得した前記訓練復号重み付けパラメータは、前記クライアント端末装置の前記AI処理モジュールの少なくとも1つの前記数学演算式に適用される。これにより、前記サーバのAI符号化モジュールは、
図16のステップ722に示すように、原画像の解像度を低減すること及び符号化するプロセスを併合して処理する。また、前記クライアント端末装置の前記AI処理モジュールは、
図16のステップ723に示すように、受信した符号化後画像に対して、復号、解像度向上及び画質の向上のプロセスを併合して実行することができる。
【0153】
好適実施形態では、クライアント端末装置702のAI処理モジュールは、単一組のAI演算式と複数の重み付けパラメータのみを含み、
図17に記載されているようにステップ7221~7229によって訓練されるため、
図16のステップ723に記載の「AI復号+AI解像度向上+AI画質強化」のマージ機能も提供することができる。
【0154】
本発明の一実施形態では、以下の従来の任意の人工ニューラルネットワーク技術を第1人工ニューラルネットワークモジュールとして使用して、サーバでAI符号化ステップを実行することができる。オートエンコーダ(Autoencoder;AE)、ノイズ除去オートエンコーダ(Denoising Autoencoder;DAE)、変分オートエンコーダ(Variational autoencoder;VAE)及びベクトル量子化変分オートエンコーダ(Vector-Quantized Variational Autoencoder ;VQ-VAE)。クライアント端末装置でAI復号、AI解像度向上及びAI画質強化を実行するために使用される第2人工ニューラルネットワークモジュールは、以下の従来の人工ニューラルネットワーク技術から選択することができる。SRCNN、EDSR、RCAN、EnhanceNet、SRGAN及びESRGAN。
【0155】
好適実施形態では、本発明の人工知能モジュールを用いてビデオストリーミングに必要なネットワーク帯域幅を低減するシステムは、ロボットの遠隔制御システムにも適用することができる。本発明のサーバは、モーションモジュール、カメラモジュール、通信モジュール及び制御モジュールを含むロボットであることができる。本発明のクライアント端末装置は、制御器モジュール及びディスプレイを含むロボット制御デバイスであることができる。ロボットは、インターネット又はその他の無線通信技術を介して制御装置にリモート接続される。制御器モジュールは、ロボットに制御コマンドを送信するためにユーザが操作することができ、ロボットの連動及び動作を遠隔制御及び操作することができる。ロボットのカメラモジュールは、3D画像を取得するための双眼画像キャプチャモジュールを含む(左目ビューと右目ビューが1つの画像フレームに並べて組み合わせられる)。制御装置から受け取った制御コマンドに従って、ロボットは移動及び他の動作を行うことができ、ロボットの周囲環境の3D画像を取得することもでき、これらの3D画像を制御装置に送り返してディスプレイ上に表示することもできる。本発明の方法を使用することにより、クライアント端末装置(制御装置)に事前に訓練されたAI処理モジュールを配備することができる。これにより、ロボットの両眼画像キャプチャモジュールは、少量データの低解像度画像を撮像し、比較的少ないネットワーク帯域幅を消費するだけでクライアント端末装置に迅速に送信することができ、クライアント端末装置は、AI処理モジュールを使用し、3D画像の高解像度と高画質を回復する。また、ロボットは、低解像度画像を撮影して処理するため、必要な演算リソースが比較的少なくて済み、より省電力であり、ロボットのリモート作業時間を延ばすことができる。
【0156】
なお、本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない均等の範囲内で各種の変動や潤色を加えることができることは勿論である。
【符号の説明】
【0157】
1、501、701 サーバ
2、21、22、23、502、702 クライアント端末装置
3 基地局
30 ルータ
4 ネットワーク
100、200 アプリケーション(APP)
101、201 メモリ
102 コード
103 ストリーム
104 ネットワークデバイス
105 人工ニューラルネットワーク
106 ニューラルネットワーク
107 復号モジュール
108 比較訓練モジュール
202 ネットワークモジュール
203 復号モジュール
204 AI処理モジュール
205 出力モジュール
301~308、400~466、711~723、7161~7229 ステップ