(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-04
(45)【発行日】2024-03-12
(54)【発明の名称】画質を向上させる方法
(51)【国際特許分類】
H04N 21/431 20110101AFI20240305BHJP
H04N 19/86 20140101ALI20240305BHJP
H04N 21/466 20110101ALI20240305BHJP
H04N 21/2662 20110101ALI20240305BHJP
H04N 21/658 20110101ALI20240305BHJP
A63F 13/52 20140101ALI20240305BHJP
G06T 9/00 20060101ALI20240305BHJP
G06T 1/00 20060101ALI20240305BHJP
G06N 3/04 20230101ALI20240305BHJP
G06N 3/08 20230101ALI20240305BHJP
【FI】
H04N21/431
H04N19/86
H04N21/466
H04N21/2662
H04N21/658
A63F13/52
G06T9/00 200
G06T1/00 A
G06N3/04
G06N3/08
(21)【出願番号】P 2019122222
(22)【出願日】2019-06-28
【審査請求日】2022-05-19
(32)【優先日】2018-07-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519237926
【氏名又は名称】株式会社ユビタス
(74)【代理人】
【識別番号】100110319
【氏名又は名称】根本 恵司
(74)【代理人】
【識別番号】100150773
【氏名又は名称】加治 信貴
(72)【発明者】
【氏名】郭 榮昌
(72)【発明者】
【氏名】魏 澤人
(72)【発明者】
【氏名】▲デン▼ 安倫
(72)【発明者】
【氏名】曾 玉如
(72)【発明者】
【氏名】江 容
【審査官】大西 宏
(56)【参考文献】
【文献】特開2000-042247(JP,A)
【文献】特開2010-033301(JP,A)
【文献】特開2012-120173(JP,A)
【文献】米国特許出願公開第2016/0023117(US,A1)
【文献】米国特許出願公開第2017/0255845(US,A1)
【文献】米国特許第07813822(US,B1)
【文献】国際公開第2015/104846(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 -21/858
H04N 19/00 -19/98
G06N 3/00 -99/00
G06T 9/00 - 9/40
G06T 1/00
A63F 13/00 -13/98
(57)【特許請求の範囲】
【請求項1】
以下のステップを含む本発明の画像媒体の品質を向上させる方法。
ステップ(A):サーバで第1アプリケーションを実行し、該第1アプリケーションは、少なくとも1つのコマンドに従って複数の原画像を生成し、該複数の原画像は、該サーバ内のエンコーダによって符号化及び圧縮されて、複数の符号化画像が生成され、
ステップ(B):該サーバから離れたクライアント端末装置において第2アプリケーションを実行し、該第2アプリケーションは、第1アプリケーションに関連しており、且つ連携しており、これにより、該クライアント端末装置は、ユーザに操作させて該コマンドを生成して該サーバに送信させることができ、
ステップ(C):該クライアント端末装置は、ネットワークを介して該コマンドを該サーバに送信し、次いで、該サーバによって生成され且つ該コマンドに対応する該符号化画像を、ネットワークを介して受信し、
ステップ(D):該クライアント端末装置は、該符号化画像を複数の復号画像に復号し、AI強化モジュールを用いて該復号画像の品質を向上させて複数の強化画像を生成し、
該AI強化モジュールは、該復号画像と対応する原画像との間の差を分析することによって得られる少なくとも1つの数学演算式によって該復号画像を処理し、これにより、得られた該強化画像は、該復号画像よりも視覚的に該原画像に更に近くなり、
ステップ(E):該クライアント端末装置は、該強化画像をスクリーンに出力し、再生される出力画像とし、
前記AI強化モジュールの該少なくとも1つの数学演算式は、該サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プログラムによって定義され、該訓練プログラムは以下のステップを含み、
ステップ(a):訓練モードで該第1アプリケーションを実行し、複数の訓練原画像を生成し、
ステップ(b):該エンコーダによって該訓練原画像を複数の訓練符号化画像に符号化し、
ステップ(c):該サーバ内の訓練デコーダを使用することによって該訓練符号化画像
を複数の訓練復号画像に復号し、
ステップ(d):該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算式を使用して該訓練復号画像を1つずつ処理して複数の訓練出力画像を生成し、該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含み、
ステップ(e):比較訓練モジュールによって該訓練出力画像と対応する該訓練原画像との間の差を比較し、それに応じて該少なくとも1つの訓練数学演算式の該訓練重み付けパラメータを調整し、該訓練重み付けパラメータは、該訓練出力画像と対応する該訓練原画像との間の差を最小化するように調整され、該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータは、少なくとも1つの訓練数学演算式にフィードバックされて、ステップ(d)において、次の該訓練復号画像を処理させ、
ここで、所定数の該訓練出力画像が対応する訓練原画像と比較され、所定回数の該訓練重み付けパラメータの調整が行われた後、最後に得られた該訓練重み付けパラメータが、該クライアント端末装置の該AI強化モジュール内に適用され、その数学演算式の重み付けパラメータとされる。
【請求項2】
該訓練復号画像と該訓練出力画像が同じカラーフォーマットを有する場合、該人工ニューラルネットワークモジュールは、残差復号ネットワークモジュールであり、ステップ(d)において、各該訓練出力画像は、対応する該訓練復号画像と、該残差復号ネットワークモジュールが該訓練復号画像を処理した出力との合計である請求項1に記載の方法。
【請求項3】
ステップ(e)において、該比較訓練モジュールは、弁別器(Discriminator)を用いて該訓練出力画像と対応する該訓練原画像との間の差を比較し、それに応じて生成的対抗ネットワーク損失(generative adversarial networks loss;GAN loss)を収束させ、該訓練重み付けパラメータを調整する請求項1に記載の方法。
【請求項4】
前記比較訓練モジュールの該弁別器は、
該訓練原画像は、nチャネルを含み、nは2より大きい正の整数であり、該訓練復号画像は、mチャネルを含み、mは2より大きい正の整数であり、
ステップ(d)において、該人工ニューラルネットワークモジュールは、該mチャネルの訓練復号画像を処理し、nチャネルの訓練出力画像を生成し、該nチャネルの訓練出力画像とそれに対応するmチャネル訓練復号画像とを組み合わせて、複数のm+nチャネルを有する模擬偽サンプル(false samples)を生成し、該nチャネルの訓練原画像と対応する該mチャネルの訓練復号画像の両者を結合して、m+nチャネルを有する複数の模擬真サンプルを生成し、
ステップ(e)において、該m+nチャネルの模擬偽サンプルと該m+nチャネルの模擬真サンプルとを該比較訓練モジュールの弁別器にフィードバックして、該弁別器の該模擬偽サンプルと該模擬真サンプルを検出及び識別する能力を訓練させる、
という方式で訓練される、請求項3に記載の方法。
【請求項5】
前記訓練原画像のカラーフォーマットは、YUV420であり、該訓練復号画像のカラーフォーマットは、RGB又はYUV420であり、
ステップ(d)において、該人工ニューラルネットワークモジュールは、第1ニューラルネットワーク及び第2ニューラルネットワークを含み、該第2ニューラルネットワークは、畳み込みニューラルネットワーク(ConvolutionalNeuralNetwork;CNN)であり、
該第1ニューラルネットワークは、該訓練原画像を受け取って処理し、該訓練原画像と同じ符号化フォーマットを有する複数の第1出力画像X2を生成し、該第2ニューラルネットワークは、該第1出力画像X2を受け取って処理して、複数の第2出力画像を生成し、該第1出力画像X2と該第2出力画像の両者が加算されて該訓練出力画像を生成し、
ステップ(e)において、該比較訓練モジュールは、第1比較器と第2比較器を含み、
該第1比較器は、該第1出力画像X2と対応する該訓練原画像との間の差を比較し、該第1ニューラルネットワークを訓練し、該第2比較器は、該訓練出力画像と対応する該訓練原画像との間の差を比較し、該第2ニューラルネットワークを訓練する、請求項1に記載の方法。
【請求項6】
ステップ(d)において、該第1ニューラルネットワークがYUV420カラーフォーマットの訓練復号画像を受信し処理するステップは、
該訓練復号画像内のY部分データを抽出し、訓練復号画像のY部分データを標準サイズの該第1ニューラルネットワークによって処理してY部分出力データを生成し、
該訓練復号画像内のUV部分データを抽出し、該訓練復号画像のUV部分データを2倍の倍率を有する該第1ニューラルネットワークによって処理して、Nチャネルを有するUV部分出力データを生成し、
該Y部分出力データと該UV部分出力データを加算し、該訓練出力画像を生成することを含む請求項5に記載の方法。
【請求項7】
ステップ(d)において、該第1ニューラルネットワークがYUV420カラーフォーマットの該訓練復号画像を受信し処理するステップは、
該訓練復号画像は、Nチャネルを含み、Nは、2より大きい正の整数であり、
該訓練復号画像内のY部分データを抽出し、
該訓練復号画像内のUV部分データを抽出し、2倍に拡大された該第1ニューラルネットワークを用いて該訓練復号画像のUV部分データを処理して、N-1チャネルを有するUV部分出力データを生成し、
結合関数Concat(concatenates)によって該Y部分データ及び該UV部分データを処理
し、該訓練出力画像を生成することを含む請求項5に記載の方法。
【請求項8】
前記クライアント端末装置の該AI強化モジュールの該少なくとも1つの数学演算式は、複数の重み付けパラメータを含み、該重み付けパラメータは、該復号画像と対応する該原画像との間の差に関連付けられ、且つ該サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プログラムによって定義され、該重み付けパラメータは、以下のうちの1つである:該クライアント端末装置に予め記憶され、該クライアント端末装置が該第2アプリケーションを実行する時に該サーバから該クライアント端末装置にダウンロードされる、請求項1に記載の方法。
【請求項9】
前記第1アプリケーションのプログラムによって生成された該原画像は、複数組のシーンに区分されることができ、各シーンは、複数の該原画像を含み、
クライアント端末装置内の該AI強化モジュールによって使用される該重み付けパラメータも複数組に区分され、各組は、それぞれ複数の重み付けパラメータを含み、シーンの1つに対応し、
異なる該シーンの該原画像に対応する該復号画像は、同じ該AI強化モジュールによって異なる組の重み付けされたパラメータ内の該シーンに対応する該組の重み付けパラメータ使用して画像強化処理され、
該異なる組の重み付けパラメータが全てクライアント端末装置に予め記憶されている場合、該シーンが変化するたびに、変化した新しいシーンに対応する該組の重み付けパラメータは、強化画像を生成するために該AI強化モジュールに適用され、
該異なる組の重み付けパラメータが全てサーバ側に記憶されている場合、該シーンが変化するたびに、変化した新しいシーンに対応する該組の重み付けパラメータがサーバによって該クライアント端末装置にダウンロードされ、それから、強化画像を生成するために該AI強化モジュールに適用される、請求項8に記載の方法。
【請求項10】
該訓練モードにおいて、該複数の訓練原画像は高品質画像であり、該高品質訓練原画像は、以下の1つ以上の性質に符合する画像であり、(性質1)4K以上のより高い解像度(Resolution)を有し、(性質2)150度以上のより大きな視野(field of view;FOV)を有し、(性質3)60FPS以上の高いフレームレート(FPS)を有し、(性質4)両目立体情報(stereo vision)を有し、(性質5)視覚的奥行き情報を有し、(性質6)赤外光又は紫外光の追加の色情報を有し、(性質7)マルチチャネル、高サンプリング周波数(44kHz以上)、又は高解像度(オーディオビット深度24bit以上)の優れたオーディオ情報を有し、
ステップ(a)とステップ(b)の間に、
劣化モジュールによって該訓練原画像を劣化させてその画質を低下させ、
サンプリング(sampling)によって、解像度を低下させる(720p、1080i以下まで低下)、カット(crop)方式で視野を縮小する(視野の120度以下に縮小する、又は元アスペクト比16:9の画像を4:3にカットする)、フレームを破棄してフレームレートを下げる(30FPS以下まで低下)、抽出方式で両目立体情報を単一画面に取り出し、視覚的奥行き情報を破棄し、音声信号をステレオ2チャンネルに変換する、サンプリング周波数の低減(22.1kHz以下)、解像度の低減(16bit以下)、ノイズの追加(ガウス(Gaussian)、ラプラシアン(Laplacian)ノイズなど)、ぼかし(ガウスぼかしなど)、の1つ以上の性質を満たす劣化訓練原画像を得る画像劣化処理のステップを追加し、
ステップ(b)において、該劣化した訓練原画像を該エンコーダにより複数の該訓練符号化画像に符号化して圧縮する、請求項1に記載の方法。
【請求項11】
ステップ(d)において、該訓練モードの該人工ニューラルネットワークモジュールは、該訓練復号画像の複数のフレームを受け取り、該訓練出力画像の少なくとも1つのフレームを生成して出力し、ステップ(D)において、クライアント端末装置において、該AI強化モジュールは、該復号画像の幾つかのフレームを受取り、該強化画像の少なくとも1つのフレームを出力する、請求項1に記載の方法。
【請求項12】
前記人工ニューラルネットワークモジュールは、前記訓練復号画像及び音声信号を受信して処理し、前記AI強化モジュールは、前記復号画像及び他の音声信号を受信して処理する、請求項1に記載の方法。
【請求項13】
AI強化モジュールを含むクライアント端末装置を提供し、該AI強化モジュールは、予め定義された少なくとも1つの数学演算式を含み、且つ該少なくとも1つの数学演算式は、少なくとも1つの重み付けパラメータを含み、該少なくとも1つの数学演算式の該少なくとも1つの重み付けパラメータは、サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プログラムによって事前に定義され、
該クライアント端末装置によって複数の符号化画像を受信し、
該クライアント端末装置は、該符号化画像を複数の復号画像に復号し、該AI強化モジュールの該少なくとも1つの数学演算式及び該少なくとも1つの重み付けパラメータを用いて該復号画像を処理して、複数の強化画像を生成し、
該クライアント端末装置は、再生される出力画像として該強化画像をスクリーンに出力し、
前記訓練プログラムは、前記サーバ内で実行され、以下のステップを含む、画像媒体の品質を向上させる方法。
ステップ(a):訓練モードで複数の訓練原画像を提供し、
ステップ(b):該訓練原画像をエンコーダによって複数の訓練符号化画像に符号化し、
ステップ(c):訓練デコーダによって該訓練符号化画像を複数の訓練復号画像に復号し、
ステップ(d):該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算式を使用して該訓練復号画像を1つずつ処理し、複数の訓練出力画像を生成し、該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含み、
ステップ(e):比較訓練モジュールによって該訓練出力画像と対応する該訓練原画像との間の差を比較し、それに応じて該少なくとも1つの訓練数学演算式の該重み付けパラメータを調整し、該訓練重み付けパラメータは、該訓練出力画像と対応する該訓練原画像との間の差を最小にするように調整され、該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータは、該少なくとも1つの訓練数学演算式にフィードバックされて、ステップ(d)において次の訓練復号画像を処理させ、
ここで、所定数の該訓練出力画像と対応する該訓練原画像との比較、所定回数の該訓練重み付けパラメータの調整を行った後、最後に得られた該訓練重み付けパラメータが、該クライアント端末装置の該AI強化モジュール内に適用され、その数学演算式の重み付けパラメータとされる。
【請求項14】
前記クライアント端末装置によって受信された前記複数の符号化画像は、以下のステップによって取得される、請求項13に記載の方法。
該サーバにおいて第1アプリケーションを実行し、該第1アプリケーションは、少なくとも1つのコマンドに従って複数の原画像を生成し、該複数の原画像は、該サーバ内のエンコーダによって符号化及び圧縮されて複数の符号化画像を生成し、
該クライアント端末装置で第2アプリケーションを実行し、該第2アプリケーションは、該第1アプリケーションと関連付けられ、連携され、それにより該クライアント端末装置は、ユーザに操作させて、該コマンドを生成して該サーバに送信させることができ、
該クライアント端末装置は、ネットワークを介して該コマンドを該サーバに送信し、その後、該ネットワークを介して、該サーバが生成した該コマンドに対応する該符号化画像を受信する。
【請求項15】
前記クライアント端末装置によって受信された該複数の符号化画像は、携帯式記憶媒体に予め記憶されたビデオファイルであり、該クライアント端末装置によって該ビデオファイルが読み取り、該符号化画像を取得する、請求項13に記載の方法。
【請求項16】
前記第1アプリケーションによって生成された該原画像は、複数組のシーンに区分されることができ、各シーンは、複数の該原画像を含み、
クライアント端末装置内の該AI強化モジュールによって使用される該重み付けパラメータも複数組に区分され、各組はそれぞれ複数の該重み付けパラメータを含み、そのうち1つの該シーンに対応し、同じ該AI強化モジュールによって異なる組の該重み付けパラメータ及び該シーンの対応する該組の重み付けパラメータを使用して画像強化処理を行い、
該異なる組の重み付けパラメータが全て該クライアント端末装置に予め記憶されている場合、該シーンが変化するたびに、変化後の新たなシーンに対応した該組の重み付けパラメータは、該AI強化モジュールに運用され、該強化画像を生成させ、
該異なる組の重み付けパラメータが全てサーバ側に記憶されている場合、シーンが変化するたびに、変化後の新しいシーンに対応する該組の重み付けパラメータがサーバによってクライアント側にダウンロードされ、該AI強化モジュールに運用され、該強化画像を生成させる、
ことを含む画像媒体の品質を向上させる
請求項14に記載の方法。
【請求項17】
前記訓練プログラムは、前記サーバ内で実行される訓練モードにおいて、
(性質1)4K以上のより高い解像度(Resolution)を有する、(性質2)150度以上のより大きな視野(field of view;FOV)を有する、(性質3)60FPS以上の高いフレームレート(FPS)を有し、(性質4)両目立体情報(stereo vision)を有する、(性質5)視覚的奥行き情報を有する、(性質6)赤外光又は紫外光の追加の色情報を有する、(性質7)マルチチャネル、高サンプリング周波数(44kHz以上)、又は高解像度(オーディオビット深度24bit以上)の優れたオーディオ情報を有する、のうちの1つ又は複数の性質に符合する画像であり、
ステップ(a)とステップ(b)の間に、劣化モジュールによって該訓練原画像を劣化させてその画質を低下させ、
サンプリング(sampling)によって、解像度を低下させる(720p、1080i以下まで低下)、カット(crop)方式で視野を縮小する(視野の120度以下に縮小する、又は元アスペクト比16:9の画像を4:3にカットする)、フレームを破棄してフレームレートを下げる(30FPS以下まで低下)、抽出方式で両目立体情報を単一画面に取り出し、視覚的奥行き情報を破棄し、音声信号をステレオ2チャンネルに変換する、サンプリング周波数の低減(22.1kHz以下)、解像度の低減(16bit以下)、ノイズの追加(ガウス(Gaussian)、ラプラシアン(Laplacian)ノイズなど)、ぼかし(ガウスぼかしなど)、のうちの1つ以上の性質を満たす劣化訓練原画像を得る、画像劣化処理を行うステップを追加し、
ステップ(b)において、該劣化した訓練原画像を該エンコーダにより複数の該訓練符号化画像に符号化して圧縮する、請求項13に記載の方法。
【請求項18】
ステップ(d)において、該訓練モードの該人工ニューラルネットワークモジュールは、該訓練復号画像の複数のフレームを受け取り、該訓練出力画像の少なくとも1つのフレームを生成して出力し、さらに、ステップ(D)において、クライアント端末装置において、該AI強化モジュールは、該復号画像の複数のフレームを受信し、それに応じて該強化画像の少なくとも1つのフレームを出力する、請求項13に記載の方法。
【請求項19】
前記人工ニューラルネットワークモジュールは該訓練復号画像と音声信号を受信して処理し、該AI強化モジュールは、該復号画像ともう1つの音声信号を受信して処理する、請求項13に記載の方法。
【請求項20】
クライアント端末装置は、複数の原画像を符号化して生成された複数の符号化画像を複数の復号画像に復号し、AI強化モジュールを使用して該復号画像の品質を向上させて複数の強化画像を生成し、該AI強化モジュールは、該復号画像と対応する該原画像との間の差を分析することによって得られる少なくとも1つの数学演算式によって復号画像を処理し、それによって、得られた該強化画像は、該復号画像よりも視覚的に該原画像に近くなり、該クライアント端末装置は、該強化画像を再生される出力画像としてスクリーンに出力することを含む画像媒体の品質を向上させる方法。
前記少なくとも1つの数学演算式は、複数の重み付けパラメータを含み、サーバの人工ニューラルネットワークモジュールが行う訓練プログラムによって予め定義され、前記訓練プログラムは、前記サーバ内で実行され、以下のステップを含む、
ステップ(a):訓練モードで複数の訓練原画像を提供し、
ステップ(b):該訓練原画像をエンコーダによって複数の訓練符号化画像に符号化し、
ステップ(c):訓練デコーダによって該訓練符号化画像を複数の訓練復号画像に復号し、
ステップ(d):該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算式を使用して該訓練復号画像を1つずつ処理し、複数の訓練出力画像を生成し、該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含み、
ステップ(e):比較訓練モジュールによって該訓練出力画像と対応する該訓練原画像との間の差を比較し、それに応じて該少なくとも1つの訓練数学演算式の該重み付けパラメータを調整し、該訓練重み付けパラメータは、該訓練出力画像と対応する該訓練原画像との間の差を最小にするように調整され、該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータは、該少なくとも1つの訓練数学演算式にフィードバックされて、ステップ(d)において次の訓練復号画像を処理させ、
ここで、所定数の該訓練出力画像と対応する該訓練原画像との比較、所定回数の該訓練重み付けパラメータの調整を行った後、最後に得られた該訓練重み付けパラメータが、該クライアント端末装置の該AI強化モジュール内に適用され、その数学演算式の重み付けパラメータとされる。
【請求項21】
該クライアント端末装置の該AI強化モジュールの該少なくとも1つの数学演算式は、複数の重み付けパラメータを含み、該重み付けパラメータは、該復号画像と対応する該原画像との間の差に関連付けられ、
該原画像は、複数組のシーンに区分されることができ、各シーンは、複数の該原画像を含み、
クライアント端末装置内の該AI強化モジュールによって使用される該重み付けパラメータも複数組に区分され、各組は、それぞれ複数の該重み付けパラメータを含み、そのうち1つの該シーンに対応し、
該クライアント端末装置は、該AI強化モジュールを使用して該復号画像の品質を向上させて複数の強化画像を生成するステップにおいて、異なる該シーンの該原画像に対応する該復号画像は、同じ該AI強化モジュールによって該異なる組の該重み付けパラメータ内の該シーンに対応する該組の重み付けパラメータを使用して画像強化処理を実行する、請求項20に記載の方法。
【請求項22】
該訓練モードにおいて、該複数の訓練原画像は高品質画像であり、該高品質訓練原画像は、
(性質1)4K以上のより高い解像度(Resolution)を有する、(性質2)150度以上のより大きな視野(field of view;FOV)を有する、(性質3)60FPS以上の高いフレームレート(FPS)を有し、(性質4)両目立体情報(stereo vision)を有する、(性質5)視覚的奥行き情報を有する、(性質6)赤外光又は紫外光の追加の色情報を有する、(性質7)マルチチャネル、高サンプリング周波数(44kHz以上)、又は高解像度(オーディオビット深度24bit以上)の優れたオーディオ情報を有する、のうちの1つ又は複数の性質に符合する画像であり、
ステップ(a)とステップ(b)の間に、劣化モジュールによって該訓練原画像を劣化させてその画質を低下させ、
サンプリング(sampling)によって、解像度を低下させる(720p、1080i以下まで低下)、カット(crop)方式で視野を縮小する(視野の120度以下に縮小する、又は元アスペクト比16:9の画像を4:3にカットする)、フレームを破棄してフレームレートを下げる(30FPS以下まで低下)、抽出方式で両目立体情報を単一画面に取り出し、視覚的奥行き情報を破棄し、音声信号をステレオ2チャンネルに変換する、サンプリング周波数の低減(22.1kHz以下)、解像度の低減(16bit以下)、ノイズの追加(ガウス(Gaussian)、ラプラシアン(Laplacian)ノイズなど)、ぼかし(ガウスぼかしなど)、のうちの1つ以上の性質を満たす劣化訓練原画像を得る、画像劣化処理を行うステップを追加し、
ステップ(b)において、該劣化した訓練原画像を該エンコーダにより複数の該訓練符号化画像に符号化して圧縮する、請求項20に記載の方法。
【請求項23】
ステップ(d)において、該訓練モードにおいて、該人工ニューラルネットワークモジュールは、該訓練復号画像の複数のフレームを受け取り、該訓練出力画像の少なくとも1つのフレームを生成して出力し、さらに、ステップ(D)において、クライアント端末装
置において、該AI強化モジュールは、該復号画像の複数のフレームを受信し、それに応じて該強化画像の少なくとも1つのフレームを出力する、請求項20に記載の方法。
【請求項24】
前記人工ニューラルネットワークモジュールは、前記訓練復号画像及び音声信号を受信して処理し、前記AI強化モジュールは、前記復号画像及び他の音声信号を受信して処理する、請求項20に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像媒体の品質(画質)を向上させる方法に関し、特に、クライアント端末装置に組み込まれ、事前訓練を経た人工知能(Artificial Intelligent;AI)強化モジュールによって画像媒体品質を向上させる方法に関する。
【背景技術】
【0002】
近年、ネットワークオンラインゲームは、世界中で人気が高まっている。クラウドベースのコンピューティング関連システム及び技術の発展において、サーバによってゲームコンテンツをストリーミングし、サービスを提供する技術も開発されている。
【0003】
このようなクラウドオンラインゲームサービスを提供する従来の方法は、サーバに略全ての演算を実行させることである。言い換えれば、オンラインゲームサービスを提供する時、特定のアプリケーションがサーバ内で実行され、多くの3D(3次元)オブジェクトを含む仮想3D環境を生成し、それは、プレイヤーによって制御されるか、動かされることができる3Dオブジェクトを含む。そして、プレイヤーの制御結果に応じて、サーバは、3Dオブジェクト及び仮想3D環境をプレイヤーの装置に表示するための2D(2次元)ゲーム画面にレンダリングする。次に、サーバはレンダリングされたイメージコード(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】
従って、本発明の目的は、画像媒体の品質を向上させる方法を提供することである。この方法では、クライアント端末装置に内蔵され、事前訓練を経た人工知能(AI)強化モジュールを利用し、ビデオストリームの品質を向上させる。該AI強化モジュールは、サーバ内のニューラルネットワークにより事前訓練を実行し、サーバによって生成された原画像と圧縮された圧縮画像との間の差を分析する。AI強化モジュールは、サーバによって生成された原画像と圧縮された圧縮画像との間の差を分析することによって得られた数学演算式を使用して、圧縮画像の品質を向上させる。これによって、改善された画像は、圧縮された画像よりも視覚的に原画像に近くなる。
【0009】
本発明のもう1つの目的は、サーバの計算負荷を軽減し、クライアント端末装置によって再生される画像の品質を改善し、サーバとクライアント端末装置との間の伝送帯域幅の消耗を節減することができる画像媒体の品質を向上させる方法を提供することである。
【0010】
本発明のさらにもう1つの目的は、画像媒体の品質を向上させる方法を提供することであり、サーバによって生成された原画像は、複数の異なるシーン(scene-mode)に属し、異なるシーンの原画像は、異なる画像コンテンツを有する。異なるシーンの原画像に対応する解凍画像は、同じAI強化モジュールによってシーンに対応する異なる重み付けパラメータ(weighted parameters)を使用して画像強化処理が行われたものである。従って、本発明の方法は、全く異なる画像内容を有する様々な原画像に対して良好で安定した画像強化効果を提供することができる。
【課題を解決するための手段】
【0011】
上記目的を達成するために、本発明の画像媒体の品質を向上させる方法の実施例は、以下を含む。
ステップ(A):サーバで第1アプリケーションを実行する。該第1アプリケーションは、少なくとも1つのコマンドに従って複数の原画像を生成する。該複数の原画像は、該サーバ内のエンコーダによって符号化及び圧縮されて、複数の符号化画像が生成される。
ステップ(B):該サーバから離れたクライアント端末装置において第2アプリケーションを実行する。該第2アプリケーションは、第1アプリケーションに関連しており、且つ連携している。これにより、該クライアント端末装置は、ユーザに操作させて該コマンドを生成して該サーバに送信させることができる。
ステップ(C):該クライアント端末装置は、ネットワークを介して該コマンドを該サーバに送信し、次いで、該サーバによって生成され且つ該コマンドに対応する該符号化画像を、ネットワークを介して受信する。
ステップ(D):該クライアント端末装置は、該符号化画像を複数の復号画像に復号し、AI強化モジュールを用いて該復号画像の品質を向上させて複数の強化画像を生成する。該AI強化モジュールは、該復号画像と対応する原画像との間の差を分析することによって得られる少なくとも1つの数学演算式によって該復号画像を処理する。これにより、得られた該強化画像は、該復号画像よりも視覚的に該原画像に更に近くなる。
ステップ(E):該クライアント端末装置は、該強化画像をスクリーンに出力し、再生される出力画像とする。
【0012】
実施例において、該AI強化モジュールの該少なくとも1つの数学演算式は、該サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プログラムによって定義され、この訓練プログラムは以下を含む。
ステップ(a):訓練モードで該第1アプリケーションを実行し、複数の訓練原画像を生成する。
ステップ(b):該エンコーダによって該訓練原画像を複数の訓練符号化画像に符号化する。
ステップ(c):該サーバ内の訓練デコーダを使用することによって該訓練符号化画像を複数の訓練復号画像に復号する。
ステップ(d):該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算式を使用して該訓練復号画像を1つずつ処理して複数の訓練出力画像を生成する。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。
ステップ(e):比較訓練モジュールによって該訓練出力画像と対応する該訓練原画像との間の差を比較し、それに応じて該少なくとも1つの訓練数学演算式の該訓練重み付けパラメータを調整する。該訓練重み付けパラメータは、該訓練出力画像と対応する該訓練原画像との間の差を最小化するように調整される。該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータは、少なくとも1つの訓練数学演算式にフィードバックされて、ステップ(d)において、次の該訓練復号画像を処理する。
【0013】
ここで、所定数の該訓練出力画像が対応する訓練原画像と比較され、所定回数の該訓練重み付けパラメータの調整が行われた後、最後に得られた該訓練重み付けパラメータが、該クライアント端末装置の該AI強化モジュール内に適用され、その数学演算式の重み付けパラメータとされる。
【0014】
実施例において、該訓練復号画像と該訓練出力画像が同じカラーフォーマットを有する場合、該人工ニューラルネットワークモジュールは、残差復号ネットワークモジュールである。そしてステップ(d)において、各該訓練出力画像は、対応する該訓練復号画像と、該残差復号ネットワークモジュールが該訓練復号画像を処理した出力との合計である。
【0015】
実施例において、ステップ(e)において、該比較訓練モジュールは、弁別器(Discriminator)を用いて該訓練出力画像と対応する該訓練原画像との間の差を比較し、それに応じて生成的対抗ネットワーク損失(generative adversarial networks loss;GAN loss)を収束させ、該訓練重み付けパラメータを調整する。
【0016】
実施例において、該比較訓練モジュールの該弁別器は、以下の方式で訓練されている。
該訓練原画像は、nチャネルを含み、nは2より大きい正の整数であり、該訓練復号画像は、mチャネルを含み、mは2より大きい正の整数である。
ステップ(d)において、該人工ニューラルネットワークモジュールは、該mチャネルの訓練復号画像を処理し、nチャネルの訓練出力画像を生成する。該nチャネルの訓練出力画像とそれに対応するmチャネル訓練復号画像とを組み合わせて、複数のm+nチャネルを有する模擬偽サンプル(false samples)を生成する。そして、該nチャネルの訓練原画像と対応する該mチャネルの訓練復号画像の両者を結合して、m+nチャネルを有する複数の模擬真サンプルを生成する。
ステップ(e)において、該m+nチャネルの模擬偽サンプルと該m+nチャネルの模擬真サンプルとを該比較訓練モジュールの弁別器にフィードバックして、該弁別器の該模擬偽サンプルと該模擬真サンプルを検出及び識別する能力を訓練させる。
【0017】
実施例において、該訓練原画像のカラーフォーマットは、YUV420であり、該訓練復号画像のカラーフォーマットは、RGB又はYUV420である。
ステップ(d)において、該人工ニューラルネットワークモジュールは、第1ニューラルネットワーク及び第2ニューラルネットワークを含む。該第2ニューラルネットワークは、畳み込みニューラルネットワーク(ConvolutionalNeuralNetwork;CNN)である。該第1ニューラルネットワークは、該訓練原画像を受け取って処理し、該訓練原画像と同じ符号化フォーマットを有する複数の第1出力画像X2を生成する。該第2ニューラルネットワークは、該第1出力画像X2を受け取って処理して、複数の第2出力画像を生成する。該第1出力画像X2と該第2出力画像の両者が加算されて該訓練出力画像を生成する。
ステップ(e)において、該比較訓練モジュールは、第1比較器と第2比較器を含む。該第1比較器は、該第1出力画像X2と対応する該訓練原画像との間の差を比較し、該第1ニューラルネットワークを訓練する。該第2比較器は、該訓練出力画像と対応する該訓練原画像との間の差を比較し、該第2ニューラルネットワークを訓練する。
【0018】
実施例において、ステップ(d)の該第1ニューラルネットワークがYUV420カラーフォーマットの訓練復号画像を受信し処理するステップは以下を含む。
該訓練復号画像内のY部分データを抽出し、訓練復号画像のY部分データを標準サイズの該第1ニューラルネットワークによって処理してY部分出力データを生成する。
該訓練復号画像内のUV部分データを抽出し、該訓練復号画像のUV部分データを2倍の倍率を有する該第1ニューラルネットワークによって処理して、Nチャネルを有するUV部分出力データを生成する。
該Y部分出力データと該UV部分出力データを加算し、該訓練出力画像を生成する。
【0019】
実施例において、ステップ(d)の該第1ニューラルネットワークがYUV420カラーフォーマットの該訓練復号画像を受信し処理するステップは以下を含む。
該訓練復号画像は、Nチャネルを含み、Nは、2より大きい正の整数である。
該訓練復号画像内のY部分データを抽出する。
該訓練復号画像内のUV部分データを抽出し、2倍に拡大された該第1ニューラルネットワークを用いて該訓練復号画像のUV部分データを処理して、N-1チャネルを有するUV部分出力データを生成する。
結合関数Concat(concatenates)によって該Y部分データ及び該UV部分データを処理し、該訓練出力画像を生成する。
【0020】
実施例において、該クライアント端末装置の該AI強化モジュールの該少なくとも1つの数学演算式は、複数の重み付けパラメータを含む。該重み付けパラメータは、該復号画像と対応する該原画像との間の差に関連付けられ、且つ該サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プログラムによって定義される。該重み付けパラメータは、以下のうちの1つである:該クライアント端末装置に予め記憶され、該クライアント端末装置が該第2アプリケーションを実行する時に該サーバから該クライアント端末装置にダウンロードされる。
【0021】
実施例において、該第1アプリケーションプのログラムによって生成された該原画像は、複数組のシーンに区分されることができ、各シーンは、複数の該原画像を含む。
クライアント端末装置内の該AI強化モジュールによって使用される該重み付けパラメータも複数組に区分され、各組は、それぞれ複数の重み付けパラメータを含み、シーンの1つに対応する。
異なる該シーンの該原画像に対応する該復号画像は、同じ該AI強化モジュールによって異なる組の重み付けされたパラメータ内の該シーンに対応する該組の重み付けパラメータ使用して画像強化処理される。
ここで、該異なる組の重み付けパラメータが全てクライアント端末装置に予め記憶されている場合、該シーンが変化するたびに、変化した新しいシーンに対応する該組の重み付けパラメータは、強化画像を生成するために該AI強化モジュールに適用される。
ここで、該異なる組の重み付けパラメータが全てサーバ側に記憶されている場合、該シーンが変化するたびに、変化した新しいシーンに対応する該組の重み付けパラメータがサーバによって該クライアント端末装置にダウンロードされ、それから、強化画像を生成するために該AI強化モジュールに適用される。
【0022】
実施例において、該訓練モードにおいて、該複数の訓練原画像は高品質画像である。該高品質訓練原画像は、以下の1つ以上の性質に符合する画像である。例えば、(性質1)4K以上のより高い解像度(Resolution)を有し、例えば、(性質2)150度以上のより大きな視野(field of view;FOV)を有し、例えば、(性質3)60FPS以上の高いフレームレート(FPS)を有し、(性質4)両目立体情報(stereo vision)を有し、(性質5)視覚的奥行き情報を有し、例えば、(性質6)赤外光又は紫外光などの追加の色情報を有し、(性質7)マルチチャネル、高サンプリング周波数(44kHz以上)、又は高解像度(オーディオビット深度24bit以上)などの優れたオーディオ情報を有する。
ステップ(a)とステップ(b)の間に以下のステップを追加する。画像劣化処理。劣化モジュールによって該訓練原画像を劣化させてその画質を低下させ、下記の1つ以上の性質を満たす劣化訓練原画像を得る。サンプリング(sampling)によって、解像度を低下させる(720p、1080i以下まで低下)、カット(crop)方式で視野を縮小する(視野の120度以下に縮小する、又は元アスペクト比16:9の画像を4:3にカットする)、フレームを破棄してフレームレートを下げる(30FPS以下まで低下)、抽出方式で両目立体情報を単一画面に取り出し、視覚的奥行き情報を破棄し、音声信号をステレオ2チャンネルに変換する、サンプリング周波数の低減(22.1kHz以下)、解像度の低減(16bit以下)、ノイズの追加(ガウス(Gaussian)、ラプラシアン(Laplacian)ノイズなど)、ぼかし(ガウスぼかしなど)。
ステップ(b)において、該劣化した訓練原画像を該エンコーダにより複数の該訓練符号化画像に符号化して圧縮する。
【0023】
実施例において、ステップ(d)において、該訓練モードにおいて、該人工ニューラルネットワークモジュールは、該訓練復号画像の複数のフレームを受け取り、該訓練出力画像の少なくとも1つのフレームを生成して出力する。さらに、ステップ(D)において、クライアント端末装置において、該AI強化モジュールは、該復号画像の複数のフレームを受信し、それに応じて該強化画像の少なくとも1つのフレームを出力する。
【0024】
実施例において、該人工ニューラルネットワークモジュールは該訓練復号画像と音声信号を受信して処理し、該AI強化モジュールは、該復号画像ともう1つの音声信号を受信して処理する。
【0025】
上記の目的を達成するために、本発明が提供する画像媒体の品質を向上させる方法のもう1つの実施例は、以下を含む。
AI強化モジュールを含むクライアント端末装置を提供し、該AI強化モジュールは予め定義された少なくとも1つの数学演算式を含み、且つ該少なくとも1つの数学演算式は、少なくとも1つの重み付けパラメータを含む。該少なくとも1つの数学演算式の少なくとも1つの重み付けパラメータは、サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プログラムによって事前に定義される。
該クライアント端末装置によって複数の符号化画像を受信する。
該クライアント端末装置は、該符号化画像を複数の復号画像に復号し、該AI強化モジュールの少なくとも1つの数学演算式及び少なくとも1つの重み付けパラメータを用いて該復号画像を処理して、複数の強化画像を生成する。
該クライアント端末装置は、再生される出力画像として該強化画像をスクリーンに出力する。
【0026】
上記の目的を達成するために、本発明の画像媒体の品質を向上させる方法の更にもう1つの実施例は、以下を含む。
クライアント端末装置を用いて複数の符号化画像を復号し、複数の符号化画像は、複数の原画像を符号化することにより生成される。
該クライアント端末装置は、複数の符号化画像を複数の復号画像に復号し、AI強化モジュールを使用して復号画像の品質を向上させて複数の強化画像を生成する。該AI強化モジュールは、該復号画像と対応する原画像との間の差を分析することによって得られた少なくとも1つの数学演算式によって該復号画像を処理する。これによって、得られた該強化画像は、該復号画像よりも視覚的に該原画像に近くなる。
該クライアント端末装置は、再生される出力画像として該強化画像をスクリーンに出力する。
該クライアント端末装置の該AI強化モジュールの該少なくとも1つの数学演算式は、複数の重み付けパラメータを含む。該重み付けパラメータは、該復号画像と対応する該原画像との間の差に関連付けられる。
該原画像は、複数組のシーンに区分されることができ、各シーンは、複数の該原画像を含む。
クライアント端末装置内の該AI強化モジュールによって使用される該重み付けパラメータも複数組に区分され、各組は、それぞれ複数の該重み付けパラメータを含み、そのうち1つの該シーンに対応する。
該クライアント端末装置は、該AI強化モジュールを使用して該復号画像の品質を向上させて複数の強化画像を生成するステップにおいて、異なる該シーンの該原画像に対応する該復号画像は、同じ該AI強化モジュールによって該異なる組の該重み付けパラメータ内の該シーンに対応する該組の重み付けパラメータを使用して画像強化処理を実行する。
【発明の効果】
【0027】
画像媒体の品質を向上させる方法は、クライアント端末装置に内蔵された事前訓練された人工知能(AI)強化モジュールを用い、ビデオストリームの品質を向上する。該AI強化モジュールは、サーバ内のニューロンネットワークを用いて事前訓練を実行し、サーバによって生成された原画像と圧縮された圧縮画像との間の差を分析する。AI強化モジュールは、サーバによって生成された原画像と圧縮された圧縮画像との間の差を分析することによって得られた数学演算式を使用して、圧縮画像の品質を向上させる。それによって、向上された画像は、該圧縮された画像よりも視覚的に原画像に近くなる。
【図面の簡単な説明】
【0028】
【
図1】本発明のネットワークを介して送信されるビデオストリームの品質を向上させるシステムの説明図である。
【
図2】本発明のネットワークを介して送信されるビデオストリームの品質を向上させるシステムアーキテクチャの実施例の説明図である。
【
図3】本発明のネットワークを介して送信されるビデオストリームの品質を向上させる方法の実施例の説明図である。
【
図4】本発明による人工ニューラルネットワークモジュール105の訓練プログラムの第1実施例の説明図である。
【
図5】本発明による人工ニューラルネットワークモジュール105の訓練プログラムの第2実施例の説明図である。
【
図6】本発明による人工ニューラルネットワークモジュール105の訓練プログラムの第3実施例の説明図である。
【
図7】
図6に示す弁別器の訓練プログラムの実施例の説明図である。
【
図8】本発明のニューラルネットワークの訓練過程の実施例を開示し、ここで、原画像はYUV420であり、出力画像はRGB又はYUV420である。
【
図9】本発明のYUV420フォーマットを有する復号画像を処理するプログラムの実施例の説明図である。
【
図10】本発明のYUV420フォーマットを有する復号画像を処理するプログラムのもう1つの実施例の説明図である。
【
図11】本発明の人工ニューラルネットワークモジュールの訓練プログラムのもう1つの実施例(第4実施例)の説明図である。
【
図12】本発明の人工ニューラルネットワークモジュールの訓練プログラムのもう1つの実施例(第5実施例)の説明図である。
【
図13】本発明のビデオストリームの品質を向上させる方法のもう1つの実施例の説明図である。
【
図14】本発明の人工ニューラルネットワークモジュールの訓練プログラムのもう1つの実施例(第6実施例)の説明図である。
【
図15】本発明のビデオストリームの品質を向上させる方法の更にもう1つの実施例の説明図である。
【
図16】本発明の人工ニューラルネットワークモジュールの訓練プログラムのもう1つの実施例(第7実施例)の説明図である。
【
図17】本発明のビデオストリームの品質を向上させる方法のまた更にもう1つの実施例の説明図である。
【
図18】本発明の人工ニューラルネットワークモジュールの訓練プログラムのもう1つの実施例(第8実施例)の説明図である。
【
図19】本発明のビデオストリームの品質を向上させる方法のまたまた更にもう1つの実施例の説明図である。
【
図20】本発明のYUV420フォーマットの復号画像を処理するプログラムの更にもう1つの実施例の説明図である。
【発明を実施するための形態】
【0029】
本発明は、クライアント端末装置に組み込まれ、事前訓練された人工知能(AI)強化モジュールを使用してビデオストリームの品質を向上させる方法に関する。該AI強化モジュールは、サーバ内のニューロンネットワークを用いて事前訓練を実行し、サーバによって生成された原画像と圧縮された圧縮画像との間の差を分析する。AI強化モジュールは、サーバによって生成された原画像と圧縮された圧縮画像との間の差を分析することによって得られた数学演算式を使用して、圧縮画像の品質を向上させる。これによって、向上された画像は、該圧縮画像よりも視覚的に該原画像に近くなる。
【0030】
本発明の用途の1つは、プレイヤーがクライアント端末装置を使用してネットワークを介してサーバに接続し、サーバによって提供されるゲームをプレイするクラウドベースのオンラインゲーム(cloud-based online games)である。サーバは、プレイヤーによって入力されたコマンドに応答して対応するビデオ画像を生成することができる。
従って、例えば、プレイヤーは、クライアント端末装置で移動のコマンドを実行することができる。移動コマンドは、ネットワークを通してサーバに送信され、次にサーバは移動コマンドに従って画像を計算し、該画像をクライアント端末装置に返送し、再生する。多くのゲームでは、サーバは、可視範囲内の位置する幾つかの3Dレンダリングオブジェクトを含む2D画像を生成する。
【0031】
図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及びそれに関連する説明を通して詳細に説明する。
【0032】
図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の該訓練プログラムの実施例については後で詳細に説明する。
【0033】
図3は、本発明のネットワークを介して送信されるビデオストリームの品質を向上させる方法の実施例の説明図である。
図2及び
図3に示すように本発明のシステム及びアーキテクチャを利用することにより、該方法は、大まかに以下のステップを含む。
【0034】
ステップ301:サーバで第1アプリケーションを実行する。該第1アプリケーションは、少なくとも1つの指示に従って複数の原画像を生成する(ステップ302)。その後、該原画像がサーバ内のエンコーダによって符号化及び圧縮され(ステップ303)、複数の復号画像が生成される。該符号化された画像は、2Dビデオストリームのタイプでネットワークを介してクライアント端末装置に送信される(ステップ304)。
【0035】
サーバから離れたクライアント端末装置内で第2アプリケーションを実行する(ステップ305)。該第2アプリケーションは、該第1アプリケーションと関連付けられ、連携し、これによって該クライアント端末装置は、ユーザに操作させ、コマンドを生成してサーバに発生させ、サーバの第1アプリケーションによって提供されるサービスを享受させることができる。該クライアント端末装置は、ネットワークを介して該コマンドをサーバに送信し、ネットワークを介して該サーバが生成し且つ該コマンドに対応する符号化画像を受信する。
次に、クライアント端末装置は、該符号化画像を複数の復号画像に復号し(ステップ306)、AI強化モジュールを使用して復号画像の品質を向上させ(ステップ307)、複数の強化画像を生成する。該AI強化モジュールは、該復号画像と対応する該原画像との間の差を分析することによって得られる少なくとも1つの数学演算式によって復号画像を処理する。これにより、得られた強化画像は、復号画像よりも視覚的に原画像に近くなる。その後、該クライアント端末装置は、再生されるべき出力画像として該強化画像をスクリーン(表示パネル)に出力する(ステップ308)。
【0036】
本発明において、クライアント端末装置内のAI強化モジュールによって使用される少なくとも1つの数学演算式は、複数の重み付きパラメータ(Weighted Parameters)を含む。該重み付けパラメータは、該復号画像と対応する該原画像との間の差に関連付けられ、サーバ内の人工ニューラルネットワークモジュールによって実行される訓練プログラムによって定義される。本発明の実施例において、該重み付けパラメータは、予めクライアント端末装置に格納されている。もう1つの実施例において、該重み付けパラメータは、クライアント端末装置が該第2アプリケーションを実行する時、該サーバから該クライアント端末装置にダウンロードされる。
【0037】
本発明の実施例において、サーバによって生成された原画像に含まれる画面コンテンツは、ゲームシーンの違いに応じて劇的に変化する。例えば、都市のゲームシーンは、多くの簡単且つ明確な外観輪郭と、異なるが概ね同系色の色を含むゲームの原画像を有することができる。もう1つの暗い洞窟のゲームシーンでは、ゲームの原画像は単調でトーンが低く色度が低い色で満たされるが、不規則だが目立たない景観の輪郭になる。また、別の緑豊かな庭園のシーンは、ゲームの原画像に多くの鮮やかでカラフルなオブジェクトを含み、詳細で複雑な輪郭を持たせる。
本発明の方法は、これらの異なるゲームシナリオに適応するために異なる重み付けパラメータを用い、これによって、同じAI強化モジュールによって向上された出力画像の品質が高品質かつ安定したレベルを維持することができ、原画像の画像コンテンツでさえも劇的に変化させる。
【0038】
好適には、該第1アプリケーションによって生成された該原画像は、複数組のシーン(scene-modes)に区分されることができ、各シーンは、それぞれ複数の該原画像を含む。該重み付けパラメータも複数組に区分され、各組は、それぞれ複数の重み付けパラメータを含み、そのうち1つの該シーンに対応する。異なるシーンの原画像に対応する該復号画像は、同じAI強化モジュールによって該異なる組の重み付けパラメータ内の該シーンに対応する重みの該組の重み付けパラメータを用いて、画像強化処理が施される。
本発明の実施例において、該異なる組の重み付けパラメータは全てクライアント端末装置に予め記憶されており、シーンが変化するたびに、変化した新しいシーンに対応する該組の重みのパラメータが該AI強化モジュールに適用され、該強化画像を生成する。もう1つの実施例において、該異なる組の重み付けパラメータは、全て該サーバ側に格納され、該シーンが変化するたびに、変化した新しいシーンに対応する該組の重み付けパラメータがサーバからクライアント側に送信され、その後、該AI強化モジュールに運用され、該強化画像を生成させる。
【0039】
図4は、本発明に記載の人工ニューラルネットワークモジュール105の訓練プログラムの第1実施例の説明図である。本発明において、該クライアント端末装置2のAI強化モジュール204によって使用される数学演算式は、サーバ1内の該人工ニューラルネットワークモジュール105によって実行される訓練プログラムによって訓練され定義される。該訓練プログラムは、以下のステップを含む。
【0040】
ステップ400:訓練モードで該第1アプリケーションを実行し、複数の訓練原画像を生成する(ステップ401)。
【0041】
ステップ402:該訓練原画像が該エンコーダによって複数の訓練符号化画像に符号化される。
【0042】
ステップ403:サーバ内の訓練デコーダを使用することによって該訓練符号化画像を複数の訓練復号画像に復号する。
【0043】
ステップ404:該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算を使用して該訓練復号画像を1つずつ処理して複数の訓練出力画像を生成する(ステップ405)。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。
【0044】
ステップ406:該訓練出力画像と対応する該訓練原画像との間の差を該比較訓練モジュールによって1つずつ比較し、それに応じて該少なくとも1つの訓練数学演算式の該訓練重み付けパラメータを調整する。該訓練重み付けパラメータは、該訓練出力画像と対応する該訓練原画像との間の差を最小にするように調整される。該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータは、該少なくとも1つの訓練数学演算式にフィードバックされ、ステップ404において、次の訓練復号画像を処理させる。所定数の訓練出力画像と対応する訓練原画像との比較、所定数の訓練重み付けパラメータの調整プログラムを実行した後、最後に訓練を完了した後に得られる該訓練重み付けパラメータ(ステップ407)は、取り出され、該クライアント端末装置のAI強化モジュールに適用され、その数学演算式の重み付けパラメータとされる。
【0045】
本発明の第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)。該訓練プログラムの詳細については後述する。
【0046】
図5は、本発明による人工ニューラルネットワークモジュール105の訓練プログラムの第2実施例の説明図である。本発明において、該第2実施例の訓練プログラムは以下のステップを含む。
【0047】
ステップ410:訓練モードで該第1アプリケーションを実行して複数の訓練原画像を生成する(ステップ411)。ここで、該訓練原画像のカラーフォーマットはカラー三原色(RGB)である。
【0048】
ステップ412:該訓練原画像を該エンコーダによって複数の訓練コード画像に符号化する。
【0049】
ステップ413:サーバ内の訓練デコーダを使用することによって該訓練符号化画像を複数の訓練復号画像に復号する。
【0050】
ステップ414:該第2実施例において、該訓練復号画像と該訓練出力画像のカラーフォーマットが同じである(本第2実施例において両方ともRGBである)場合、残差ネットワークモジュール(residual network module)は、畳み込みニューラルネットワーク(Convolutional Neural Network;CNN)とも称され、該人工ニューラルネットワークモジュールにおいて使用され得る。対応する訓練復号画像を処理するための該残差ネットワークモジュールの出力は、該対応する訓練復号画像と合計される(summed up)(ステップ415)。次に、該残差ネットワークモジュールの出力と該対応する訓練復号画像との合計の結果が訓練出力画像として出力される(ステップ416)。
【0051】
ステップ417:該比較訓練モジュールを使用することによって、該訓練出力画像と対応する該訓練原画像との間の差を逐一比較し(差値を計算する)、それに従って該少なくとも1つの訓練数学演算式の該訓練重み付けパラメータを調整する。該訓練重み付けパラメータは、該訓練出力画像と対応する該訓練原画像との間の差を最小にするように調整される。該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータが該人工ニューラルネットワークにフィードバックされて、ステップ414において、次の訓練復号画像が処理される。所定数の訓練出力画像と対応する訓練原画像との比較、所定数の訓練重み付けパラメータの調整プログラムを行った後、最後に訓練を完了した後に得られる該訓練重み付けパラメータ(ステップ418)が取り出され、その数学演算式のパラメータの重み付けとして該クライアント端末装置のAI強化モジュールに適用される。
【0052】
図6は、本発明の人工ニューラルネットワークモジュール105の訓練プログラムの第3実施例の説明図である。第3実施例において、該比較訓練モジュールは、弁別器(Discriminator)を使用して、該訓練出力画像と対応する該訓練原画像との間の差を比較し、それに応じて該訓練重み付けパラメータを調整する。該第3実施例の訓練プログラムは、以下のステップを含む。
【0053】
ステップ420:訓練モードで該第1アプリケーションを実行して複数の訓練原画像を生成する(ステップ421)。ここで、該訓練原画像はn個のチャネルを含み、nは2より大きい正の整数である。
【0054】
ステップ422:該訓練原画像を該エンコーダによって複数の訓練符号化画像に符号化する。
【0055】
ステップ423:サーバ内の訓練デコーダを使用することによって該訓練符号化画像を複数の訓練復号画像に復号し、訓練復号画像は、m個のチャネルを含み、mは2より大きい正の整数である。
【0056】
ステップ424:該人工ニューラルネットワークモジュールは、該訓練復号画像(mチャネル)を受け取り、少なくとも1つの訓練数学演算式を使用することによって該訓練復号画像を1つずつ処理し、複数の訓練出力画像(nチャネル)を生成する(ステップ425);該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。該訓練出力画像(nチャネル)と対応する訓練復号画像(mチャネル)とを組み合わせて(ステップ426)、複数の訓練合成画像(m+nチャネルを有する)を生成する。次に、訓練合成画像は、訓練出力画像の品質を分析するために弁別器にフィードバックされ(ステップ427)、これによって該人工ニューラルネットワークを訓練する。
【0057】
図7は、
図6に示す弁別器の訓練手順の実施例の説明図である。該弁別器の訓練プログラムは、以下のステップを含む。
【0058】
ステップ430:訓練モードで該第1アプリケーションを実行して複数の訓練原画像を生成する(ステップ431)。ここで、該訓練原画像は、n個のチャネルを含み、nは2より大きい正の整数である。
【0059】
ステップ432:該訓練原画像をエンコーダによって複数の訓練符号化画像に符号化する。
【0060】
ステップ433:サーバ内の訓練デコーダによって該訓練符号化画像を複数の訓練復号画像に復号する。ここで、該訓練復号画像は、m個のチャネルを含み、mは2より大きい正の整数である。
【0061】
ステップ434:該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算を使用し、訓練復号画像(mチャネル)を1つずつ処理し、複数の訓練出力画像を生成する(ステップ435)。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。該訓練出力画像はn個のチャネルを含む。
【0062】
ステップ436:該nチャネルの訓練出力画像と対応する該mチャネルの訓練復号画像との両者を組み合わせて、m+nチャネルを有する複数の偽サンプル(false samples)を生成する。そして、該nチャネルの訓練原画像と対応する該mチャネルの訓練復号画像との両者を組み合わせて、m+n個のチャネルを有する複数の真のサンプル(true samples)を生成する(ステップ437)。
【0063】
ステップ438:該m+nチャネルの模擬偽サンプル及び該m+nチャネルの模擬真サンプルを、比較訓練モジュールの弁別器にフィードバックして、弁別器の模擬偽サンプル及び模擬真サンプルを検出及び識別する能力を訓練させる。
【0064】
該人工ニューラルネットワークモジュール105(
図2に示す)がサーバ1側で適切に訓練された後、得られた重み付けパラメータ(重みweight w、バイアスbias b)がクライアント端末装置内のAI強化モジュール204に適用される。該AI強化モジュール204及びそれに関連する重み付けパラメータ(重みweight w、バイアスbias b)は、該クライアント端末装置2に格納される。その後、該クライアント端末装置が、サーバから2Dビデオストリームに含まれる符号化画像を受信して復号するたびに、該符号化画像の各々は、該AI強化モジュールによって処理されて強化画像を生成する。
その後、該クライアント端末装置は、該強化画像を出力画像としてそのスクリーン上に再生する。該ニューラルネットワークは、画像の色、明るさ、及び詳細を学習し、向上させることができる。原画像の一部の細節は、符号化及びストリーミングの過程で損傷又は消失するので、適切に訓練されたニューラルネットワークはこれらの損傷又は消失した詳細を修復することができる。本発明の実施例において、AI強化モジュールのニューラルネットワークは、動作するために以下の情報を必要とする。
【0065】
関連機能とパラメータ:
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)。
【0066】
入力画像及び出力画像は、RGB、YUV420、YUV444などのような異なる色フォーマットを有することができるので、以下に異なる色フォーマットを有する入力画像及び出力画像について検討する。
【0067】
第1の状況:原画像はRGB、出力画像もRGBである。
【0068】
入力画像と出力画像の両方がRGB画像であるため、この状況は最も単純である。処理速度を向上させるために、比較的大きなコアサイズ(例えば、8×8、ストライド値stride=4で構造中に畳み込み及び転置畳み込みされる)を使用してできるだけ早く計算を加速し、フルHD画像の高解像度に対応する。この場合、残差ネットワーク(Residual network)を用いて収束をより容易により安定させる。
【0069】
関連機能とパラメータ:
X:RGBフォーマットの入力画像。各色はunsigned int8フォーマットである。
【0070】
【0071】
Y=uint8((Conv2dTranspose(σ(Conv2d(X2、a、b、c、d、w_1、b_1))、w_2、b_2)+X2)×128+128)。
【0072】
W_1は、サイズがb*b*3*aの行列であり、b_1は、サイズがaのベクトルである。
W_2は、サイズがb*b*3*aの行列であり、b_2は、サイズが3のベクトルである。
【0073】
使用されるパラメータは、以下を含む:
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。
【0074】
前記クライアント端末装置の処理速度が速い場合は、次の数学演算式を使用できる。
【0075】
Y=uint8((Conv2dTranspose(R(σ(Conv2d(X2, a,b,c,d,w_1,b_1)),w_R),w_2,b_2)+X2)*128+128)
【0076】
W_1はサイズがb*b*3*aの行列で、b_1はサイズがaのベクトルである。
W_2はサイズがb*b*3*aの行列で、b_2はサイズが3のベクトルである。
ここで、Rはn層を有する残差ブロック(residual blocks)である。
そのうちに、多くのニューラルネットワーク層を含み、各層が訓練された重み付けパラメータを有し、これをまとめてw_Rと称する。
【0077】
使用されるパラメータは、以下を含む。
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。
【0078】
第2の状況:原画像は、YUV420、出力画像は、RGB又はYUV444である。
【0079】
原画像入力がYUV420で、出力画像がRGB又はYUV444の場合、入力画像と出力画像の解像度とフォーマットが異なるため、残差ネットワーク(Residual network)をこの状況に直接適用することはできない。
本発明の方法は、最初にYUV420の入力画像を復号し、次に別のニューラルネットワーク(Aネットワークと称され、N=3である)を使用し、復号画像を処理し、RGB又はYUV444フォーマットの画像(X2と称される)を取得する。次に、X2画像は、第1の状況に記載されたニューラルネットワーク(残差ネットワーク)に送られ、訓練される。また、同じ訓練方法をAネットワークにも適用して、X2と原画像との間の差を比較し、それによってAネットワークを訓練する。
【0080】
X_yは、YUV420フォーマットの入力画像のYであり、そのフォーマットはunsigned int8である。
X_uvはYUV420フォーマットの入力画像を持つUVで、そのフォーマットはunsigned int8である。
【0081】
【0082】
X2=Conv2d(X2_y,3,e,1,w_y,b_y)+Conv2dTranspose(X2_uv,3,f,2,w_uv,b_uv)
【0083】
W_yは、サイズがe*e*1*3の行列で、b_yは、サイズが3のベクトルである。
W_uvは、サイズがf*f*3*2の行列で、b_uvは、サイズが3のベクトルである。
【0084】
上記はAネットワーク(ニューラルネットワーク数A)の第1実施例である。
最後に、該出力画像の出力に用いられる数学式と前述の第1の状況の入力画像と出力画像が何れもRGBフォーマットである場合に用いられる数学式は同じである。
【0085】
Y=uint8((Conv2dTranspose(σ(Conv2d(X2,a,b,c,d,w_1,b_1)),w_2,b_2)×128+128)
【0086】
W_1は、サイズがb*b*3*aの行列で、b_1は、サイズがaのベクトルである。
W_2は、サイズがb*b*3*aの行列で、b_2は、サイズが3のベクトルである。
使用されるパラメータは、前述と同様に、入力画像と出力画像が両方とも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。
【0087】
図8を参照し、それは、本発明のニューラルネットワークの訓練過程の実施例が開示しており、ここで原画像は、YUV420であり、出力画像は、RGB又はYUV420である。該ニューラルネットワークの訓練過程は、以下のステップを含む。
【0088】
ステップ440:訓練モードで第1アプリケーションを実行して複数の訓練原画像を生成する。ここで、該訓練原画像はRGB又はYUV444フォーマットである。
【0089】
ステップ441:該訓練原画像を該エンコーダによって複数の訓練符号化画像に符号化する。
【0090】
ステップ442:サーバ内の訓練デコーダを使用することによって該訓練符号化画像を複数の訓練復号画像に復号する;ここで、訓練復号画像はYUV420フォーマットである。
【0091】
ステップ443:該人工ニューラルネットワークモジュールは、第1ニューラルネットワーク及び第2ニューラルネットワークを含む。該第1ニューラルネットワーク(Aネットワークとも称される)は、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算式を使用して該訓練復号画像(YUV420)を1つずつ処理し、複数の第1出力画像X2(X2とも称される。ステップ444)において、それは該訓練原画像と同じ符号フォーマットを有する。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。
【0092】
ステップ445:第2ニューラルネットワークは、畳み込みニューラルネットワークネットワーク(Convolutional Neural Network;CNN)である。第2ニューラルネットワーク(CNN)は、第1出力画像X2を受け取り、該少なくとも1つの訓練用数学演算式を使用して該第1出力画像X2を1つずつ処理し、複数の第2出力画像を生成する。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。次に、該第1出力画像X2と該第2出力画像の両者が加算され(ステップ446)、訓練出力画像が生成される(ステップ447)。
【0093】
該比較訓練モジュールは、第1比較器と第2比較器を備える。ステップ448において、該第1比較器は、第1出力画像X2とその対応する訓練原画像との間の差を比較し、該第1ニューラルネットワークを訓練する。ステップ449において、第2比較器は、訓練出力画像とその対応する訓練原画像との間の差を比較し、第2ニューラルネットワークを訓練する。
【0094】
図9は、本発明によるYUV420フォーマットを有する復号画像を処理するためのプログラムの実施例の説明図である。本発明のYUV420フォーマットで復号画像を処理するためのプログラムは以下を含む。
【0095】
ステップ451:該第1ニューラルネットワークがYUV420カラーフォーマットの訓練復号画像を受信し処理するステップは、以下のステップを含む。
【0096】
ステップ452:該訓練復号画像のY部分データを抽出し、該訓練復号画像のY部分データを標準サイズ(元のサイズ)のニューラルネットワークで処理し、NチャネルのY部分出力データを生成する(例えば、ストライド値Stride=1の畳み込み;ステップ454)。
【0097】
ステップ453:訓練復号画像中のUV部分データを抽出し、そして該訓練復号画像のUV部分データを二倍拡大ニューラルネットワークによって処理して、Nチャネルを有するUV部分出力データを生成する(例えば、ストライド値Stride=2の転置畳み込み;ステップ455)。
【0098】
ステップ456:該Y部分出力データを該UV部分出力データに加算して該訓練出力画像を生成する(ステップ457)。
【0099】
第3の状況:原画像は、YUV420であり、出力画像は、YUV444であり、別のより速い方法で処理される。
【0100】
入力画像がYUV420であり、出力画像がYUV444である場合、前述の方法に加えて該第1ニューラルネットワーク(Aネットワーク)を実施する別の方法があり、これはより速い速度を伴う特例である。YUV420フォーマットの復号画像は、まず第1ニューラルネットワーク(Aネットワーク)によってYUV444フォーマット画像(X2とも称される)に変換される。その後、X2が前述のニューラルネットワーク(残差ネットワーク)に送られ、訓練される。さらに、同じ訓練方法がAネットワークにおいても実施され、X2と原画像との間の差を比較し、Aネットワークを訓練する。
【0101】
X_yは、YUV420フォーマットの入力画像のYであり、そのフォーマットは、unsigned int8である。
X_uvは、YUV420フォーマットの入力画像のUVであり、そのフォーマットは、unsigned int8である。
【0102】
【0103】
X3_uv=Conv2dTranspose(X2_uv,2,2,2,w_uv,b_uv)
【0104】
W_uvは、サイズが2*2*2*2の行列で、b_uvは、サイズが2のベクトルである。
X2=cancat(X2_y、X3_uv)
【0105】
上記は、Aネットワーク(ニューラルネットワークA)のもう1つの実施例であり、ここでは、"concat"関数は、チャネルの方向に従って該入力を接続する。
【0106】
最後に、該出力画像の出力に使用される数学式と前述の第1の場合の入力画像と出力画像が何れもRGBフォーマットの場合に使用される数学式と同じである。
【0107】
Y=uint8((Conv2dTranspose(σ(Conv2d(X2、a、b、c、d、w_1、b_1))、w_2、b_2)×128)128)。
【0108】
W_1は、サイズがb*b*3*aの行列で、b_1は、サイズがaのベクトルである。
W_2は、サイズがb*b*3*aの行列で、b_2は、サイズが3のベクトルである。
【0109】
使用されるパラメータは、入力画像と出力画像が両方とも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。
【0110】
図10は、本発明のYUV420フォーマットの復号画像を処理するプログラムのもう1つの実施例の説明図である。
図10に示すように、本発明のYUV420フォーマットの復号画像を処理するためのプログラムは以下を含む。
【0111】
ステップ461:該第1ニューラルネットワークは、以下のステップにより、YUV420カラーフォーマットの訓練復号画像を受け取り、処理する。ここで、該訓練復号画像は、Nチャネルを含み、Nは、2より大きい正の整数である。
【0112】
ステップ462:該訓練復号画像内のY部分データを抽出してY部分出力データを生成する。
【0113】
ステップ463:該訓練復号画像内のUV部分データを抽出し、訓練復号画像のUV部分データを処理してN-1チャネルのUV部分出力データを生成する(例えば、ストライド値Stride=2の転置畳み込み;ステップ464)。
【0114】
ステップ465:マージ関数Concat(concatenates)によって該Y部分データ及び該UV部分データを処理し、該訓練出力画像が生成する(ステップ466)。
【0115】
第4の状況:原画像は、YUV420、出力画像は、YUV420である。
【0116】
入力画像がYUV420であり、出力画像もYUV420である場合、処理は上述のRGBからRGBへの方法と同様になる。ただし、入力フォーマットと出力フォーマットが異なるため、チャネルごとに異なる畳み込み方法が適用される。例えば、ニューラルネットワークのコアサイズが8×8でストライド値strideが4であり、画像のY部分を処理する場合、該ニューラルネットワークをコアサイズ4x4及びストライド値strideを2に変更して画像のUV部分を処理することができる。
【0117】
X_yは、YUV420フォーマットの入力画像のYであり、そのフォーマットはunsigned int8である。
X_uvは、YUV420フォーマットの入力画像のUVであり、そのフォーマットはunsigned int8である。
【0118】
【0119】
X3=σ(Conv2d(X2_y,a,b,c,w_y,b_y)Conv2d(X2_uv,a,b/2,c/2,w_uv,b_uv))
【0120】
W_yは、サイズがb*b*1*aの行列で、b_yはサイズがaのベクトルである。
W_uvは、サイズが(b/2)*(b/2)*2*aの行列で、b_uvはサイズがaのベクトルである。
【0121】
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
【0122】
W_1はサイズがb*b*1*aの行列で、b_1はサイズが1のベクトルである。
W_2はサイズが(b/2)*(b/2)*2*aの行列で、b_2はサイズが2のベクトルである。
上記は、Aネットワーク(ニューラルネットワークA)のもう1つの実施例であり、ここでは、"concat"関数はチャネルの方向に従って入力を接続する。
【0123】
最後の出力:
Y_y=uint8(X4_y*128128)。
Y_uv=uint8(X4_uv*128128)。
【0124】
使用するパラメータ:
a=128,b=8,c=4,d=0,e=2,f=2,σ=leaky relu with alpha=0.2。
【0125】
本発明で使用されるパラメータの詳細な説明は以下の通りである。
訓練パラメータ:
重み付けパラメータの初期値は、ガウス分布(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
【0126】
【0127】
RGBモードでは、前記訓練ターゲットTは、RGBゲーム画像のオリジナルの原画像である。
YUV444モードでは、訓練ターゲットTは。RGBゲーム画像のオリジナルの原画像である。
RGB→RGB、YUV420→YUV420モードでは、L2e=0である。
YUV420→RGB及びYUV420→YUV444モードでは、以下である。
【0128】
【0129】
上記説明から分かるように、本発明は、ネットワークによって伝送される画像媒体の品質を向上させる方法は、以下の利点を有する。
異なるコンテンツを有する様々な画像に従って随時ニューラルネットワークの訓練を維持し、異なる画像コンテンツに対して異なる強化効果を実行することができる。例えば、アニメスタイル、現実的なスタイル又は異なるシーンを有する画像の場合、異なる重み付けパラメータw、bについて、事前にクライアント端末装置に記憶することができ、又はクライアント端末装置に自動的にダウンロードすることができる。
【0130】
原画像がどのモードに属するべきかを決定する方法に関して、サーバ側のニューラルネットワークは原画像のモードを自動的に決定し、そのような情報をクライアント装置に送信することができる。原画像の内容は一貫しているので、この判定過程は、サーバによって定期的に実行でき、例えば1秒ごとに1回実行することができる。しかしながら、もう1つの実施例において、画像モードを判定する過程は、また、クライアント端末装置によって定期的に実行でき、例えば、数秒ごとに1回実行でき、クライアント端末装置の計算能力に応じて決めることができる。
【0131】
訓練は、実際のビデオ画像に基づいて行い、実際に強化の向上度を測定できる。例えば、本発明の方法を使用し、1280×720の解像度及び3000のビットレートを有するビデオ画像を向上させる場合、同様のシーンのPSNR値は、約1.5~2.2db増加することができ、これは本発明の方法が確かに実際に出力画像の品質を向上し、出力画像を原画像の品質に視覚的に近づけることができることを証明できる。さらに、本発明は、従来の画像強化技術が、出力画像のコントラスト、平滑化、及びカラーフィルタリングを増加させるだけであり、本発明のように出力画像を原画像に視覚的に近似させることができないものとは異なる。
【0132】
ニューラルネットワークアルゴリズムの単純化されたモデルを使用し、大きなコア及び大きなストライド値を使用することによって、ニューラルネットワークの分解能は急速に低下し、モデルの処理速度は大幅に向上することができる。計算能力が限られているクライアント端末装置でも、60fpsとHD解像度の出力画像の目標を達成することができる。
【0133】
カラーフォーマット(YUV420及びRGB)変換作業をニューラルネットワークに取り入れ、Yチャネルよりも低いUVチャネルの解像度を利用することで、UVチャネルのストライド値をYチャネルの半分に設定すると、ニューラルネットワークの計算速度を高めることができる。
【0134】
本発明のネットワークによって伝送される画像媒体の品質を向上させる方法は、上記の実施例に加えて、複数の異なる拡張用途を有する。例えば、ディスプレイの解像度を上げる(解像度)、画面のサイズを大きくする、時間解像度を上げる(即ち、フレーム毎秒のフレームレートを上げる)、マルチフレーム入力、予測画面、オフラインアプリケーションなどであり、具体的説明については、後述する。
【0135】
図11を参照し、それは、本発明の人工ニューラルネットワークモジュールの訓練プログラムのもう1つの実施例(第4実施例)の説明図である。本発明では、該クライアント端末装置2のAI強化モジュール204によって使用される数学演算式は、サーバ1中の該人工ニューラルネットワークモジュール105によって実行される訓練プログラムによって訓練され定義される。
図11に示す訓練プログラムのもう1つの実施例は、以下のステップを含む。
【0136】
ステップ511:複数の高品質訓練原画像からなる訓練ビデオを訓練モードで提供する。該高品質訓練原画像は、例えば、ゲームソフトウェア又は他のアプリケーションによって生成されたインスタントビデオであることができ、又はメモリに事前に記録された又は事前に記憶されたビデオであることができる(例えば、AVI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVBなどのビデオフォーマットであるが、これに限定するものではない)。本実施例において、該高品質訓練原画像は、比較的良好又は優れた画像品質を有し、例えば、以下の特性のうちの1つ又は複数に適合する画像などである。(a)4K又は8Kなどのより高い解像度(Resolution)を有する、(b)例えば150度、180度、さらには360度の視野の比較的広い視野(field of view;FOV)、(c)例えば、60FPS又は120FPSなどの高いフレームレート(Frame per Second;FPS)、(d)両目立体情報(stereo vision)を有する、(e)視覚的な奥行き情報を有する、(f)赤外線、紫外線などの追加の色情報を有する(参考URL:https://Photo.stackexchange.com/questions/83923/why-dont-cameras-offer-more-than-3-colour-channels-or-do-they)、又は/及び(g)マルチチャネル、高サンプリング周波数(44kHz以上)又は高解像度(audio bit depth 24bit or above)などのより良好な音声信号を有する。
【0137】
ステップ512:画像劣化処理。劣化モジュールによって訓練原画像を劣化させてその画質を低下させ、以下のような、1つ又は複数の性質を満たす劣化した訓練原画像を取得するが、これに限定するものではない。(a)サンプリング(sampling)方式で解像度を下げる(720p、1080i以下まで低減)、(b)トリミング(crop)による視野の縮小(120度以下の視野に縮小、又は元のアスペクト比16:9の画像を4:3にトリミングする)、(c)フレームを破棄する方式でフレームレートを下げる(30FPS以下まで低減)、(d)抽出方式でstereo visionにより単一フレームを取り出す、(e)視覚的奥行き情報を破棄する、(f)音声信号をステレオに変換する、サンプリング周波数を下げ(22.1kHz以下)、解像度を下げる(16bit以下)、(g)ノイズ(ガウス(Gaussian)、ラプラシアン(Laplacian)ノイズなど)、又は/及び(h)ファジー化(ガウスファジー化など)など。
【0138】
ステップ513:該劣化訓練原画像がエンコーダによって符号化し、複数の訓練符号化画像に圧縮する。
【0139】
ステップ514:サーバ内の訓練デコーダを使用することによって、該訓練符号化画像を復号し、複数の訓練復号画像に解凍する。
【0140】
ステップ515:サーバ内の該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算を使用して該訓練復号画像を1つずつ処理して複数の訓練出力画像を生成する(ステップ516)。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。
【0141】
ステップ517:該比較訓練モジュールにより該訓練出量画像と、ステップ511で提供される対応する訓練出力画像との間の差を比較し、それに応じて該少なくとも1つの訓練数学式の該訓練重み付けパラメータを調整する。該訓練重み付けパラメータは、該訓練出力画像と対応する該訓練画像の間の差を最小化するように調整される。該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータは、ステップ515において次の訓練復号画像を処理するために該少なくとも1つの訓練数学演算式にフィードバックされる。所定数の訓練出力画像と対応する訓練原画像との比較、及び所定数の訓練重み付けパラメータの調整プログラムを行った後、最終的に、訓練後に得られた該訓練重み付けパラメータが抽出されて該クライアント端末装置のAI強化モジュール内に適用され、その数学演算式の重み付けパラメータとされる。
【0142】
図11に示す本発明のもう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)。
【0143】
図12を参照し、本発明の人工ニューラルネットワークモジュールの訓練プログラムのさらにもう1つの実施例(第5実施例)の説明図である。本実施例の訓練プログラムにおいて、ニューラルネットワークの入力は、1つの画像だけでなく複数の画像でもよい。前の画面の情報を使用して現在の画像を強化すると、より最適化されて原画像に近い増強効果を得ることができる。
図12に示す実施例の訓練プログラムは、以下のステップを含む。
【0144】
ステップ521:訓練モードで複数の訓練原画像から構成される訓練ビデオを提供する。該訓練原画像は、例えば、ゲームソフトウェア又は他のアプリケーションによって生成されたインスタントビデオであることができ、又はメモリに予め記録された又は予め格納されたビデオであることができる。本実施例において、該訓練原画像の複数のフレームは、Frame(1)、Frame(2)、…、Frame(N-1)、Frame(N)で表すことができ、Nは正の整数である。
【0145】
ステップ522:該訓練原画像の画像がエンコーダによって符号化され、複数の訓練符号化画像からなるビデオストリームに圧縮され、そのフレームはそれぞれEncoded_Frame(1)、Encoded_Frame(2)、…、Encoded_Frame(N)である。1)、Encoded_Frame(N)で表され、Nは正の整数である。
【0146】
ステップ523:サーバ内の訓練デコーダによって該訓練符号化画像を複数の訓練復号画像に順次復号及び解凍し、そのフレームは、それぞれDecoded_Frame(1)、Decoded_Frame(2)、…、Decoded_Frame、(N-1)、Decoded_Frame(N)で表され、ここで、Nは正の整数である。そして、N番目の訓練原画像Frame(N)と対応するN番目の訓練復号画像のフレームの前の1つ又は複数のフレーム、例えば、Decoded_Frame(N-2)、Decoded_Frame(N-1)、Decoded_Frame(N)を抽出し、次のステップ524に進む。ここで、N-2又はN-1の値が1未満である場合、Decoded_Frame(1)のフレームにより、Decoded_Frame(N-2)及びDecoded_Frame(N-1)に取って代わる。
【0147】
ステップ524:サーバ内の該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、各訓練原画像(Frame(N)、ここで、N=3、4、5、...)を対象とし、少なくとも1つの訓練数学演算式を使用して対応するN番目の訓練復号画像及びその前の1つ又は複数の訓練復号画像のフレーム、即ち、Decoded_Frame(N-2)、Decoded_Frame(N-1)、Decoded_Frame(N)を逐一処理し、対応する訓練出力画像のフレームを生成する(ステップ525におけるように、Predict_Frame(N)とも称される)。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。言い換えれば、該人工ニューラルネットワークモジュールは、毎回いくつか(例えば、3つ)の訓練復号画像フレームDecoded_Frame(N-2)、Decoded_Frame(N-1)、Decoded_Frame(N)を受け取り、1つの訓練出力画像のフレームPredict_Frame(N)を出力する(ステップ525)。
【0148】
ステップ526:該比較訓練モジュールによって、該訓練出力画像のフレームPredict_Frame(N)とステップ521で提供される対応する該訓練原画像のフレームFrame(N)との間の差を比較する。そしてそれに応じて、少なくとも1つの訓練数学演算式の該訓練重み付けパラメータを調整する。該訓練重み付けパラメータは、該訓練出力画像のフレームPredict_Frame(N)と対応する該訓練原画像のフレームFrame(N)との間の差を最小にするように調整される。次に、誤差をできるだけ低減するために、数学的最適化アルゴリズム(ADAM/SGD/RMSPropなど)によってニューロンネットワークの重みを学習する。該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータは、ステップ524で、次の訓練復号画像を処理するために少なくとも1つの訓練数学演算式にフィードバックされる。所定数の訓練出力画像が対応する訓練原画像と比較され、所定数の訓練重み付けパラメータが調整された後、最後に得られた訓練重み付けパラメータがクライアント装置に適用される。AI強化モジュールは、その数学演算式の重み付けパラメータとされる。異なる要求に応じて異なる方法が該差値(又は近似値)を計算することに用いられることができ、例えば、MSE(平均二乗誤差)、L1(絶対値誤差)PSNR(peak signal-to-noise ratio)、SSIM(structure similarity)、GAN loss(generative adversarial networks loss)等である。本発明が実際に使用するものは、以下の幾つかがある。(i)MSE、L1及びGAN Lossの重み付け平均;(ii)MSE;(iii)GAN loss(Discriminatorを同時に訓練);(iv)MSEとEdgeのMSEの重み付け平均。
【0149】
図12に示すように複数の画像を入力して出力画像を生成するニューラルネットワーク訓練プログラムによれば、本発明の画像媒体の品質を向上させる方法の対応する実施例は、
図13に示すようになる。
図13は、本発明のビデオストリームの品質を向上させる方法のさらにもう1つの実施例の説明図であり、それは、以下のステップを含む。
【0150】
ステップ531:サーバ501側で複数の原画像を提供する(該複数の原画像のフレームは、Frame(1)、Frame(2)、…、Frame(N-1)、Frame(N)で表すことができ、Nは、正の整数である、ステップ531)、該原画像は、例えばゲームソフトウェア又は他のアプリケーションによって生成されたインスタントビデオであることができ、又は予めレコーディング製作されたか、メモリに予め記録されたビデオであることができる。その後、該原画像がサーバ501内の符号器によって符号化及び圧縮され(ステップ532)、そのフレームがそれぞれEncoded_Frame(1)、Encoded_Frame(2)、…、Encoded_Frame(N-1)、Encoded_Frame(N)で表され、ここで、Nは正の整数である。該符号化された画像は、2Dビデオストリームのパターンでネットワークを介してクライアント端末装置に送信される(ステップ533)。
【0151】
尚、ステップ531~ステップ533に記載される実施例は、該符号化画像がネットワークを通して伝送される場合の実施例である。しかしながら、本発明のさらにもう1つの実施例において、該符号化された画像及びその2Dビデオストリームも予めレコーディング製作されたか、可携帯式メモリメディア(例えばフラッシュドライブ、コンパクトディスク、ハードディスクなど)に記録されたファイルであってもよく、クライアント端末装置によって該ビデオファイルが直接読み取られて、復号画像又はその2Dビデオストリームを得ることができ、ネットワークを介して受信することが必須ではない。言い換えれば、本発明は、クライアント端末装置においてオフライン状態で画質を向上させるためにAI強化モジュールを使用することもでき、携帯用記憶媒体からビデオファイルを読み取った後、AI強化モジュールによって画質を向上させてから出力再生することができる。従って、本発明の同じニューラルネットワーク訓練方法は、他のソースのビデオ、例えば、カメラによって記録された画像、ファイルにレコーディング製作されたビデオなどに用いることができる。同じニューラルネットワーク及び機械学習方法を使用して、前述のビデオ又は再生中のビデオのビデオ品質も向上することができる。たとえば、4KテレビでDVD解像度の画像を再生したり、ワイドスクリーンテレビで携帯電話にて録画した動画を再生したり、スローモーション再生用のフレームを追加したりすることもできる。
【0152】
ステップ534:クライアント端末装置502は、該符号化画像を受け取り、複数の復号画像に復号し(ステップ534)、そのフレームはそれぞれ、Decoded_Frame(1)、Decoded_Frame(2)、…、Decoded_Frame(N-1)、Decoded_Frame(N)で表され、ここで、Nは正の整数である。そして、N番目の原画像Frame(N)と対応するN番目の復号画像及びその前の1つ又は複数の訓練復号画像のフレームは、例えばDecoded_Frame(N-2)、Decoded_Frame(N-1)、Decoded_Frame(N)を抽出し、次のステップ524に進む。ここで、N-2又はN-1の値が1未満である場合、Decoded_Frame(1)によりDecoded_Frame(N-2)及びDecoded_Frame(N-1)に取って代わる。また、AI強化モジュール(ステップ535のように、強化ニューラルネットワークモデルとも称される)を使用して、N番目の復号画像及び前の1つ又は複数のフレームを入力し、即ち、Decoded_Frame(N-2)、Decoded_Frame、(N-1)、Decoded_Frame(N)を入力し、対応する強化画像を出力画像として生成する(ステップ536におけるように、Enhanced_Frame(N)とも称される)。言い換えれば、該AI強化モジュールは、いくつか(例えば3つ)の復号画像のフレームDecoded_Frame(N-2)、Decoded_Frame(N-1)、Decoded_Frame(N)の入力を受け取り、ステップ536のように、1つの強化画像のフレームEnhanced_Frame(N)を出力する。そのうち、該AI強化モジュール内の強化されたニューラルネットワークモデルで使用される少なくとも1つの数学演算式及びその重み付けパラメータは、
図12に示される実施例の訓練プログラムで説明されたものと同じ数学演算式及びその重み付けパラメータである。
【0153】
本実施例において、ニューラルネットワークが数学演算式として書かれると、それは次の形式になる。
X=Decode(Video stream)。
Y(N)=Network(X(N-2)、X(N-1)、X(n)、W)。
ここで、X=(X(1)、X(2)、X(3)、...)であり、X(N)は、解凍されたビデオのN番目のフレーム、即ちDecoded_Frame(N)である。
前記Networkは、ニューラルネットワーク又は機械学習アルゴリズムである。
Wは、訓練された重み付けパラメータである。
Y(N)は、強化されたN番目のフレームであり、即ち、Enhanced_Frame(N)である。
【0154】
図12及び
図13に示す実施例において、N番目の復号フレームを含む最初の数フレームがニューラルネットワークの入力値として用いられ、強化後(又は訓練後)のN番目のフレームが生成される。しかし、本発明のもう1つの実施例において、N番目の復号画像のフレーム自体とその前1つ及び後1つのフレーム(即ち、Decoded_Frame(N-1)、Decoded_Frame(N)、Decoded_Frame(N+1))を用いてニューラルネットワークの入力値としてもよく、これに応じて強化後(又は訓練後)のN番目のフレームを生成するか、あるいは入力フレーム数は必ずしも3つではなく、異なる数であってもよい。この実施例に適用されるニューラルネットワークの訓練プログラム及びビデオストリームの品質を向上させる方法における実施方式は、概して、上述の
図12及び
図13に示される実施例と同様であるので、ここでは再度説明しない。
【0155】
図14を参照し、それは、本発明の人工ニューラルネットワークモジュールの訓練プログラムのさらにもう1つの実施例(第6実施例)の説明図である。本実施例の訓練プログラムでは、ニューラルネットワークの入力は単純な画面のみではなく、音声データを含むこともある。
図14に示す実施例の訓練プログラムは、以下のステップを含む。
【0156】
ステップ541:訓練モードで複数の訓練原画像及び音声信号からなる訓練ビデオを提供し、該訓練原画像及び音声信号は、それぞれFrame(1)、Frame(2)、…、Frame(N-1)、Frame(N)で表され、ここで、Nは正の整数である。該訓練原画像及び音声は、例えば、ゲームソフトウェア又は他のアプリケーションによって生成されたリアルタイムの映像及び音声であってもよく、予めレコーディング製作されたか、メモリ内に記憶されたビデオ及び音声信号であってもよい。
【0157】
ステップ542:該訓練原画像の画像及び音声信号をエンコーダによって符号化及び圧縮して複数の符号化フレーム画像及び音声信号からなるビデオストリームにし、それぞれEncoded_Frame(1)、Encoded_Frame(2)、・・・、Encoded_Frame(N-1)、Encoded_Frame(N)で表され、ここで、Nは正の整数である。
【0158】
ステップ543:訓練デコーダによって該訓練符号化画像を逐一復号、解凍して複数の訓練復号画像にし、それは、それぞれDecoded_Frame(1)、Decoded_Frame(2)、・・・、Decoded_Frame(N-1)、Decoded_Frame(N)で表され、ここで、Nは正の整数である。そして、該訓練符号化ビデオストリームのフレームレート(FPS)に従って、復号された音声信号を、複数の所定の長さの時間の音声信号セグメントに分割し、それは、それぞれAudio(1)、Audio(2)、・・・、Audio(N-1)、Audio(N)で表し、各音声信号セグメントAudio(N)を訓練符号化画像Decoded_Frame(N)に対応させる。例えば、該訓練符号化ビデオストリームのフレームレートが25FPSである場合、それは各フレームが1/25秒、即ち、0.04秒の音声信号セグメントとマッチングされる必要があることを意味し、従って、ステップ543で、受信され復号、解凍された音声信号は、0.04秒単位で複数の音声信号セグメントに分割される。
【0159】
ステップ544:該人工ニューラルネットワークモジュールは、該訓練復号画像及び音声信号セグメントを受け取り、少なくとも1つの訓練数学演算を使用してそれらを1つずつ処理し、対応する訓練出力画像及び音声信号セグメントを生成する(ステップ545)。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。
【0160】
ステップ546:該比較訓練モジュールによって、該訓練出力画像とステップ541で提供されたステップに対応する訓練出力画像Frame(N)及び原音声信号セグメントとの間の差を比較する。それに応じて、少なくとも1つの訓練数学演算式の該訓練重み付けパラメータが調整される。該訓練重み付けパラメータは、該訓練出力画像及び音声セグメントと対応する該訓練原画像及び音声セグメントとの間の差を最小にするように調整される。本実施例に記載されている重み付けパラメータの調整方法は、上記と同じであるため、ここでは再度説明しない。
【0161】
図14に示される入力は、音声信号セグメントを含む復号された画像は、出力画像及び音声信号セグメントのニューラルネットワーク訓練プログラムを生成し、対応する本発明の画像媒体の品質を向上させる方法の実施例は、
図15に示すとおりである。
図15は、本発明の音声信号を含むビデオストリームの品質を向上させる方法のもう1つの実施例の説明図であり、それは、以下のステップを含む。
【0162】
ステップ551:サーバ501側で複数の原画像及び音声信号を提供する(該複数の原画像は、Frame(1)、Frame(2)、…、Frame(N-1)、Frame(N)で表すことができ、ここで、Nは正の整数である)。その後、該原画像及び音声がサーバ内のエンコーダによって符号化及び圧縮され(ステップ552)、複数の復号画像及び音声信号が生成される。該符号化画像及び音声信号は、音声信号を含む2Dビデオストリームのパターンでネットワークを介してクライアント端末装置に送信される(ステップ553)。上述したように、他の実施例において、該音声信号を含む符号化された2Dビデオストリームは、予めレコーディング製作されたか、携帯式記憶媒体(フラッシュドライブ、CD、ハードディスクなど)に予め記録された映像ファイルであることもでき、クライアント端末装置によって該映像ファイルを直接読み取って、該音声信号を含む2Dビデオストリームを取得することもできる。
【0163】
ステップ554:クライアント端末装置502は、該符号化された画像及び音声信号を受け取り、複数の復号画像及び音声セグメントに復号する。そして、AI強化モジュール(ステップ555のように、強化ニューラルネットワークモデルとも称される)を使用して、N番目の訓練復号画像及び対応する音声セグメントを入力して、対応する強化画像及び音声セグメント(ステップ556のように、Enhanced_Frame(N)及びEnhanced_Audio(N)とも称され、Nは、正の整数である)を生成し、出力画像及び音声信号とする。そのうち、該AI強化モジュール内の強化されたニューラルネットワークモデルで使用される少なくとも1つの数学演算式及びその重み付けパラメータは、
図14に示される実施例の訓練プログラムに記載するものと同じ数学演算式及びその重み付けパラメータである。
【0164】
本実施例において、ニューラルネットワークが数学演算式として書かれると、それは次の形式になる。
X=Decode(Video/Audio stream);
Y(N)=Network(X(N-2)、X(N-1)、X(n)、W)。
ここで、X=(X(1)、X(2)、X(3)、...)であり、X(N)は解凍されたビデオ信号のN番目のフレーム及び対応する音声信号セグメントである。
前記Networkは、ニューラルネットワーク又は機械学習アルゴリズムである。
Wは、訓練された重み付けパラメータである。
Y(N)は、強化後のN番目のフレーム及び対応する音声信号セグメント、即ち、Enhanced_Frame(N)及びEnhanced_Audio(N)である。
【0165】
図16を参照し、それは、本発明の人工ニューラルネットワークモジュールの訓練プログラムのさらにもう1つの実施例の説明図である。本実施例の訓練プログラムでは、ニューラルネットワークの入力をより低いフレームレートの画像とすることができ、より高いフレームレートの画像をニューラルネットワークによって生成することで、ビデオのフレームレートを向上させることができる。
図16に示す実施例の訓練プログラムは、以下のステップを含む。
【0166】
ステップ561:訓練モードで複数の訓練原画像から構成される訓練ビデオを提供する。訓練原画像は、例えば、ゲームソフトウェア又は他のアプリケーションによって生成されたインスタントビデオであり得るか、又はメモリに予め記録された又は予め格納されたビデオであり得る。本発明では、複数の訓練原画像(訓練ビデオ)は比較的高いフレームレート(例えば60FPS以上)を有し、1秒当たりに含まれるフレームは、Frame(1)、Frame(2)、…、Frame(N-1)、フレーム(N)で表され、ここでNは正の整数である。
【0167】
ステップ562:該訓練原画像(訓練ビデオ)を、フレームを断続的に廃棄することでフレームレートを低減し、例えば、単数フレーム又は偶数フレームを廃棄することによってレートを下げた後の画像の毎秒に含むフレーム数量を半減させ(即ち、フレームレートは、例えば、30FPSまで低減され)、減速後、画像は、L_Frame(1)、L_Frame(2)、…、L_Frame(M-1)、L_Frame(M)で表すことができ、ここで、N=2Mであり且つMは正の整数である。言い換えれば、L_Frame(M)の内容は、Frame(2M)と同じであり、原画像の2M-1番目のフレームFrame(2M-1)は破棄される。続いて、減速後の画像を符号化圧縮した後、復号解凍し、復号後の訓練復号画像を得て、それが毎秒含むフレームは、Decoded_Frame(1)、Decoded_Frame(2)、…、Decoded_Frame(M-1)、Decoded_Frame(M)で表すことができる(ステップ563)。本実施例において、原画像の半分のフレームが破棄されるので、フレームレートは、60FPSから30FPSに減少し、従って、訓練された復号画像のM番目のフレームDecoded_Frame(M)は、原画像に対応する2M番目のフレームFrame(2M)の符号化し、また復号した後の結果である。
【0168】
ステップ564:サーバ内の該人工ニューラルネットワークモジュールは、該訓練復号画像を受け取り、少なくとも1つの訓練数学演算式を使用して、対応するM番目の訓練復号画像及びその前又はその後の1つ又は複数の訓練復号画像、即ち、Decoded_Frame(M-n)、...、Decoded_Frame(M)、...、Decoded_Frame(M+m)を逐一処理し、2つの対応する訓練出力画像(ステップ565のように、Predict_Frame(N-1)、Predict_Frame(N)とも称され、N=2Mである)を生成する。ここで、n及びmは0以上の整数であり、M-nが1より小さい場合は、Decoded_Frame(1)によりDecoded_Frame(M-n)と取り替えられ、且つM+nが2Mより大きい場合、Decoded_Frame(2M)によりDecoded_Frame(M+m)と取り替えられ、該人工ニューラルネットワークモジュールを入力して処理する。該少なくとも1つの訓練数学演算式は、複数の訓練重み付けパラメータを含む。
言い換えれば、該人工ニューラルネットワークモジュールは、毎回いくつかの(例えば、3つ、4つ又はそれ以上)の入力された訓練復号画像Decoded_Frame(Mn)、...、Decoded_Frame(M)、...、Decoded_Frame(M+m)を受け取り、2つの訓練出力画像Predict_Frame(N-1)、Predict_Frame(N)を出力する(ステップ565)。
【0169】
ステップ566:該比較訓練モジュールによって、該訓練出力画像Predict_Frame(N-1)及びPredict_Frame(N)及びステップ561で提供される対応する該訓練原画像Frame(N-1)、Frame(N)の間の差を比較し、該少なくとも1つの訓練数学演算式の該訓練重み付けパラメータを調整する。該訓練重み付けパラメータは、該訓練出力画像Predict_Frame(N-1)、Predict_Frame(N)と対応する該訓練原画像Frame(N-1)、Frame(N)との間の差を最小化するように調整される。その後、誤差を最小にするために、ニューロンネットワークの重みが数学的最適化アルゴリズム(ADAM/SGD/RMSProp)によって学習される。該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータは、ステップ564で、次の訓練復号画像を処理するために該少なくとも1つの訓練数学演算式にフィードバックされる。所定数の訓練出力画像と対応する訓練原画像の比較、及び所定数の訓練重み付けパラメータの調整を行った後、最後に得られた該訓練重み付けパラメータが該クライアント装置のAI強化モジュールに適用され、その数学演算式の重み付けパラメータとされる。
【0170】
図16に示すように複数の画像を入力して出力画像を生成するニューラルネットワーク訓練プログラムに基づき、対応する本発明の画像媒体の品質を向上させる方法の実施例は、
図17に示すようになる。
図17は、本発明のビデオストリームの品質を向上させる方法のさらにもう1つの実施例の説明図であり、それは、以下のステップを含む。
【0171】
ステップ571:サーバ501側で、比較的低いフレームレート(例えば、30FPS)を有する複数の原画像を提供し(ステップ571のように、該複数の原画像は、Frame(1)、Frame(2)、…、Frame(M-1)、Frame(M)で表され、Mが正の整数である)該原画像は、例えば、ゲームソフトウェア又は他のアプリケーションによって生成されたインスタントビデオであることができ、又は予めレコーディング製作されたか、予めメモリ内に記憶されたビデオであることができる。
その後、該原画像は、サーバ501内のエンコーダによって符号化及び圧縮され(ステップ532)、それは、それぞれEncoded_Frame(1)、Encoded_Frame(2)、…、Encoded_Frame(M-1)、Encoded_Frame(M)で表される。該符号化された画像は、2Dビデオストリームのパターンでネットワークを介してクライアント端末装置に送信される(ステップ573)。
【0172】
ステップ574:クライアント端末装置502は、該符号化画像を受け入れて複数の復号画像に復号し、そのフレームは、Decoded_Frame(1)、Decoded_Frame(2)、...、Decoded_Frame(M-1)、Decoded_Frame(M)で表される。そのうち、M番目の復号画像と、その前後の1つ以上の訓練復号画像、例えば、Decoded_Frame(M-n)、...、Decoded_Frame(M)、...、Decoded_Frame(M+m)を抽出し、次のステップ575を実行する。ここで、n及びmは、0以上の整数であり、M-nが1より小さい場合はDecoded_Frame(1)がDecoded_Frame(Mn)に置き換えられ、M+mが2Mより大きい場合はDecoded_Frame(2M)がDecoded_Frame(Mm)に置き換えられ、該人工ニューラルネットワークモジュールを入力して処理する。
その後、AI強化モジュール(ステップ575のように、強化ニューラルネットワークモデルとも称される)を使用して、M番目の訓練復号画像及びその前後1つ又は複数の訓練復号画像を、即ち、入力Decoded_Frame(M-n)、…、Decoded_Frame(M)、…、Decoded_Frame(M+m)を入力し、出力画像として2つの対応する強化画像を生成する(ステップ576のように、Enhanced_Frame(N-1)及びEnhanced_Frame(N)とも称される)。
言い換えれば、該AI強化モジュールは、いくつかの(例えば、3、4又はそれ以上)の復号画像のフレームDecoded_Frame(M-n)、…、Decoded_Frame(M)、…、Decoded_Frame(M+m)の入力を受け取り、2つの強化画像のフレームEnhanced_Frame(N-1)及びEnhanced_Frame(N)を出力し、ステップ576のように、これらの強化画像を60FPSの速度で再生する。該AI強化モジュール内の強化されたニューラルネットワークモデルで使用あれる少なくとも1つの数学演算式及びその重み付けパラメータは、
図16に示される実施例の訓練プログラムで説明されたものと同じ数学演算式及びその重み付けパラメータである。
【0173】
本実施例において、ニューラルネットワークが数学演算式として書かれると、それは次の形式になる。
X=Decode(30FPSVideo stream)。
Y(2M-1)、Y(2M)=Network(X(M-n)、・・・、X(M)、・・・、X(M+n)、W)。
ここで、X=(X(1)、X(2)、X(3)、...)であり、X(M)は解凍されたビデオのM番目のフレームである。
前記Networkは、ニューラルネットワーク又は機械学習アルゴリズムである。
Wは、訓練された重み付けパラメータである。
Y(N)は、強化後のN番目のフレームであり、即ち、Enhanced_Frame(N)であり、ここでN=2Mである。
【0174】
図18を参照し、それは、本発明による人工ニューラルネットワークモジュールのさらなる訓練プロセスの説明図である。ネットワークがフレームを落とす時、この訓練プログラムでは、人工ニューラルネットワークモジュールが自動的に予測されたフレーム(Frame)を埋めるか、失われたフレームを補う機能を有する。本実施例の訓練プログラムにおいて、ニューラルネットワークの入力は、1つの画像だけでなく複数の画像でもよい。前の幾つかの画面の情報を使用して、失われたフレームを補充又は予測する。
図18に示す実施例の訓練プログラムは、以下のステップを含む。
【0175】
ステップ581:訓練モードで複数の訓練原画像から構成される訓練ビデオを提供する。該訓練原画像は、例えば、ゲームソフトウェア又は他のアプリケーションによって生成されたインスタントビデオであることができ、又は予めレコーディング製作されたか、メモリに予め記録されたビデオであることができる。本実施例において、該訓練原画像の複数のフレームは、Frame(1)、Frame(2)、…、Frame(N-1)、Frame(N)で表すことができ、Nは正の整数である。
【0176】
ステップ582:該訓練原画像の画像を、エンコーダにより符号化し、複数の訓練符号化画像からなるビデオストリームに圧縮し、次いで訓練デコーダにより該訓練符号化画像を順次復号、解凍し、複数の訓練復号画像にし、そのフレームは、Decoded_Frame(1)、Decoded_Frame(2)、…、Decoded_Frame(N-1)、Decoded_Frame(N)で表され、Nは正の整数である。
【0177】
ステップ583:訓練復号画像のN番目のフレームDecoded_Frame(N)が消失した、又は予測が必要なフレームであると仮定し、このとき、該N番目の訓練復号画像フレームの前の1つ又は複数のフレームDecoded_Frame(N-n)・・・、Decoded_Frame(N-1)を抽出し、次のステップ524へ進む。ここで、nは正の整数であり、nはNより小さい。
【0178】
ステップ584:サーバ内の該人工ニューラルネットワークモジュールは、該訓練復号画像のフレームを受け取り、少なくとも1つの訓練数学式を使用して、対応するN番目のフレームの前の1つ又は複数の訓練復号画像のフレーム、即ち、Decoded_Frame(N-n)、...、Decoded_Frame(N-1)を1つずつ処理し、対応する訓練出力画像を生成する(ステップ585のように、Predict_Frame(N)とも称される)。
連続する複数のフレームが失われるか又は予測される必要がある場合、このステップ584で生成された訓練出力画像のフレームPredict_Frame(N)は、訓練復号画像のN番目のフレームDecoded_Frame(N)として使用され、該人工ニューラルネットワークモジュールに送り返され、訓練出力画像の次のフレームPredict_Frame(N+1)を計算するために使用される。
同様に、該人工ニューラルネットワークモジュールは、それが発生する訓練出力画像のフレームPredict_Frame(N)及びPredict_Frame(N+1)を連続的に人工ニューラルネットワークモジュールに返送することによって訓練出力画像の後続の幾つかのフレームを連続的に計算(予測)することができる。言い換えれば、本実施例において、N番目のフレームより前に位置する複数の訓練復号画像のフレーム(Decoded_Frame(N-n)、…、Decoded_Frame(N-1))を人工ニューラルネットワークモジュールに入力し、N番目のフレームより後に続く幾つかのフレーム(Predict_Frame(N)、Predict_Frame(N1)、...、Predict_Frame(N+m))を生成し、ここで、mは、正の整数である(ステップ585)。
【0179】
ステップ586:該比較訓練モジュールによって該訓練出力画像のフレームPredict_Frame(N)、Predict_Frame(N+1)、…、Predict_Frame(N+m)と、ステップ581で提供された対応するものに対応する該訓練原画像のフレームFrame(N)、Frame(N1)、…、Frame(Nm)と間の差を1つずつ比較し、少なくとも1つの訓練数学演算式の該訓練重み付けパラメータを調整する。該訓練重み付けパラメータは、該訓練出力画像Predict_Frame(N)と対応する該訓練原画像Frame(N)との間の差を最小化するように調整される。次に、誤差を低減するために、ニューロンネットワークの重み付けが数学的最適化アルゴリズム(ADAM/SGD/RMSPropなど)によって学習される。該訓練重み付けパラメータが調整されるたびに、該調整された訓練重み付けパラメータが少なくとも1つの訓練数学演算式にフィードバックされ、ステップ584において、次の訓練復号画像を処理させる。所定数の訓練出力画像が対応する訓練原画像との比較、及び所定数の訓練重み付けパラメータの調整が行われた後、最後に得られた訓練重み付けパラメータが該クライアント装置のAI強化モジュールに適用され、その数学演算式の重み付けパラメータとされる。
【0180】
図18に示すようなN番目のフレームの前に複数のフレームを入力することによってN番目のフレーム及びそれに続く幾つかのフレーム出力画像を生成するニューラルネットワーク訓練プログラムに基づき、対応する本発明の画像媒体の品質を向上させる方法の実施例は、
図19に示す通りである。
図19は、本発明のビデオストリームの品質を向上させる方法のさらにもう1つの実施例の説明図であり、それは、以下のステップを含む。
【0181】
ステップ591:サーバ501側で複数の原画像を提供し(ステップ591のように、該複数の原画像のフレームは、Frame(1)、Frame(2)、…、Frame(N-1)、Frame(N)で表すことができ、Nが正の整数である)、該原画像は、例えばゲームソフトウェア又は他のアプリケーションによって生成されたインスタントビデオであることができ、又は予めレコーディング製作されたか、メモリに予め記録されたビデオであることができる。その後、該原画像がサーバ501内のデコーダによって符号化及び圧縮され(ステップ592)、複数の符号化画像を生成し、そのフレームがそれぞれEncoded_Frame(1)、Encoded_Frame(2)、…、Encoded_Frame(N-1)、Encoded_Frame(N)で表される。該符号化された画像は、次に2Dビデオストリームのパターンでネットワークを介してクライアント端末装置に送信される(ステップ593)。
【0182】
ステップ594:クライアント端末装置502は、該符号化画像を受け取り、複数の復号画像に復号し(ステップ594)、そのフレームは、それぞれDecoded_Frame(1)、Decoded_Frame(2)、・・・、Decoded_Frame(N-1)、Decoded_Frame(N)で表される。次に、ネットワーク伝送過程において、ネットワーク不安定性のためにN番目のフレーム又はN番目から数個(m個)のフレームが失われると仮定する時、ステップ594に示すように、本発明は、N番目のフレームの前の1つ又は複数の訓練復号画像のフレーム、即ち、Decoded_Frame(N-n)、...、Decoded_Frame(N-1)を抽出し、次のステップ595に進む。
【0183】
ステップ595:AI強化モジュール(強化ニューラルネットワークモデルとも称される)を使用してN番目のフレームの前に1つ又は複数の訓練復号画像のフレーム、即ちDecoded_Frame(Nn)、...、Decoded_Frame(N-1)を入力し、1つ又は複数(m+1個)の相対する強化画像を生成し、出力画像とし、そのフレームは、ステップ596のように、Enhanced_Frame(N)、...、Enhanced_Frame(N+m)である。
言い換えれば、該AI強化モジュールは、毎回、複数の復号画像の画像フレームDecoded_Frame(N-n)、・・・、Decoded_Frame(N-1)の入力を受け入れ、1つ又は複数の強化画像Enhanced_Frame(N)、・・・、Enhanced_Frame(N+m)を出力する(ステップ596)。該AI強化モジュール内の強化されたニューラルネットワークモデルで使用される少なくとも1つの数学演算式及びその重み付けパラメータは、
図18に示される実施例の訓練プログラムで説明されるものと同じ数学演算式及びその重み付けパラメータである。
【0184】
本実施例において、ニューラルネットワークが数学演算式として書かれると、それは次の形式になる。
X=Decode(Video stream)。
Y(N)、…、Y(Nm)=Network(X(Nn)、…、X(n)、W)。
ここで、X=(X(1)、X(2)、X(3)、...)であり、X(N)は解凍されたビデオのN番目のフレーム、即ちDecoded_Frame(N)である。
Networkは、ニューラルネットワーク又は機械学習アルゴリズムである。
Wは、訓練された重み付けパラメータである。
Y(N)は、エンハンスドNフレームであり、即ち、Enhanced_Frame(N)である。
【0185】
図20は、本発明のYUV420フォーマットを有する復号画像を処理するプログラムのさらにもう1つの実施例の説明図である。実際には、各フレームFrameは、m個のチャネルChannel(例えばRGBビデオ、m=3)を有し、X(N-k+1)、…、X(N-1)、X(N)をチャネルに従って併合して畳み込む(Concat)と仮定し、1つのmkチャネルへの入力とみなす。たとえば、元のビデオの各フレームにm個のチャネルがある場合は、k個のフレームを入力すると、入力はmk個のチャネルと見なすことができる。この原理によれば、
図20に示すような本発明のYUV420フォーマットの復号画像を処理するプログラムは、以下を含む。
【0186】
ステップ601:YUV420カラーフォーマットの訓練復号画像を受け取って処理する。ここで、訓練復号画像は3つのチャネルを含み、n個のフレームConcatは3n個のチャネルにマージ(スタック)され、nは正の整数である。
【0187】
ステップ602:該訓練復号画像内のY部分データを抽出して、1nチャネルを有するY部分出力データを生成する。
【0188】
ステップ603:2n個のチャネルを有する該訓練復号画像内のUV部分データを抽出する。
【0189】
ステップ604:2倍に拡大したニューラルネットワークを使用することによって該訓練復号画像のUV部分データを処理して、2nチャネルを有するUV部分出力データを生成する(例えば、ストライド値Stride=2、転置畳み込み、ステップ604);
【0190】
ステップ605:併合機能Concat(concatenates)を使用して、該Y部分出力データと該UV部分出力データとを重ね合わせる(併合)。
【0191】
ステップ606:ステップ605で積み重ねられたデータを多層ニューラルネットワークで受け取り、3kチャネルを生成する(ここで、kは1より大きい定数であり、そして正の整数である)。
【0192】
ステップ607:ステップ606で生成したデータをkフレーム、3チャネルのRGBの該訓練出力画像として出力する。
【0193】
なお、本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない均等の範囲内で各種の変動や潤色を加えることができることは勿論である。
【符号の説明】
【0194】
1、501 サーバ
2、21、22、23、502 クライアント端末装置
3 基地局
30 ルータ
4 ネットワーク
100、200 アプリケーション(APP)
101、201 メモリ
102 コード
103 ストリーム
104 ネットワークデバイス
105 人工ニューラルネットワーク
106 ニューラルネットワーク
107 復号モジュール
108 比較訓練モジュール
202 ネットワークモジュール
203 復号モジュール
204 AI強化モジュール
205 出力モジュール
301~308、400~466、511~596、601~607 ステップ