(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-05
(45)【発行日】2025-02-14
(54)【発明の名称】ゲームのスーパーレゾリューション
(51)【国際特許分類】
G06T 3/4053 20240101AFI20250206BHJP
【FI】
G06T3/4053
(21)【出願番号】P 2022525205
(86)(22)【出願日】2020-10-28
(86)【国際出願番号】 US2020057795
(87)【国際公開番号】W WO2021101687
(87)【国際公開日】2021-05-27
【審査請求日】2023-10-23
(32)【優先日】2019-11-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】アレクサンダー エム. ポタポフ
(72)【発明者】
【氏名】スカイラー ジョナサン サレハ
(72)【発明者】
【氏名】スワプニール ピー. サカルシート
(72)【発明者】
【氏名】ヴィニート ゴエル
【審査官】渡部 幸和
(56)【参考文献】
【文献】特開2019-198429(JP,A)
【文献】End-to-End Image Super-Resolution via Deep and Shallow Convolutional Networks,IEEE Access,2019年,https://ieeexplore.ieee.org/document/8666711
(58)【調査した分野】(Int.Cl.,DB名)
G06T 3/00
(57)【特許請求の範囲】
【請求項1】
メモリと、
プロセッサと、
を備える処理デバイスであって、
前記プロセッサは、
第一解像度を有する入力画像を受信することと、
線形アップスケーリングネットワークを介し
て、前記入力画像の
少なくとも1つの線形ダウンサンプリングバージョンを生成することと、
非線形アップスケーリングネットワークを介し
て、前記入力画像の
少なくとも1つの非線形ダウンサンプリングバージョンを生成することと、
前記入力画像の各ダウンサンプリングバージョンの同一位置の画素を出力画像の複数の画素ブロックの各々に割り当てることによって、前記入力画像の
少なくとも1つの線形ダウンサンプリングバージョン
及び前記入力画像の少なくとも1つの非線形ダウンサンプリングバージョンを、前記第一解像度よりも高い第二解像度を有する
前記出力画像の画素に変換することと、
前記出力画像を表示するために提供することと、
を行うように構成されている、
処理デバイス。
【請求項2】
前記プロセッサは、複数の畳み込み演算の各々の間に活性化関数を積層して、一連の線形操作を一連の非線形操作に変換することによって、前記非線形アップスケーリングネットワークを介して、前記入力画像の
少なくとも1つの非線形ダウンサンプリングバージョンを生成するように構成されている、
請求項1の処理デバイス。
【請求項3】
前記プロセッサは、前記入力画像の画素のウィンドウに対して1つ以上の畳み込み演算を実行することによって、前記線形アップスケーリングネットワークを介して、前記入力画像の
少なくとも1つの線形ダウンサンプリングバージョンを生成するように構成されている、
請求項1の処理デバイス。
【請求項4】
前記プロセッサは、前記出力画像について複数の画素ブロックを生成することによって、前記入力画像の
少なくとも1つのダウンサンプリングバージョン
及び前記入力画像の少なくとも1つの非線形ダウンサンプリングバージョンを画素に変換するように構成されており、各画素ブロックは、前記入力画像の
各ダウンサンプリングバージョン
の同一位置の画素を含む、
請求項1の処理デバイス。
【請求項5】
前記出力画像の各画素ブロックは複数の画素を含み、各画素は、各画素ブロックのいくつかの異なる
画素位置のうち何れかの位置に配置されており、
前記複数の画素ブロックの異なる画素位置は、前記入力画像の対応するダウンサンプリングバージョン
の同一位置の画素を含む、
請求項4の処理デバイス。
【請求項6】
各画素ブロック
の異なる
画素位置の総数は、前記入力画像
のダウンサンプリングバージョンの総数に等しい、
請求項5の処理デバイス。
【請求項7】
前記線形アップスケーリングネットワークは、1つ以上の畳み込み演算を含み、前記非線形アップスケーリングネットワークは、複数の畳み込み演算を含み、各畳み込み演算は、対応する畳み込み演算が実行される毎に、同じ数の線形ダウンサンプリングバージョン、又は、同じ数の非線形ダウンサンプリングバージョンを生成する、
請求項1の処理デバイス。
【請求項8】
メモリと、
プロセッサと、
を備える処理デバイスであって、
前記プロセッサは、
第一解像度を有する入力画像を受信することと、
非線形アップスケーリングネットワークを介して、前記入力画像の複数の非線形ダウンサンプリングバージョンを生成することと、
線形アップスケーリングネットワークを介して、前記入力画像の複数の線形ダウンサンプリングバージョンを生成することと、
前記複数の非線形ダウンサンプリングバージョンと、前記複数の線形ダウンサンプリングバージョンと、を組み合わせて、複数の組み合わされたダウンサンプリングバージョンを提供することと、
出力画像の複数の画素ブロックの各々に、前記組み合わされたダウンサンプリングバージョンの各々における同一位置の画素を割り当てることによって、前記入力画像の前記組み合わされたダウンサンプリングバージョンを、前記第一解像度よりも高い第二解像度を有する前記出力画像の画素に変換することと、
前記出力画像を表示するために提供することと、
を行うように構成されている、
処理デバイス。
【請求項9】
前記複数の
線形及び非線形ダウンサンプリングバージョンの各々は、色特徴と、非色特徴と、色情報及び非色情報を有する特徴と、のうち少なくとも1つを含む、
請求項8の処理デバイス。
【請求項10】
前記プロセッサは、前記入力画像の前記複数の線形ダウンサンプリングバージョンと並行して、前記入力画像の前記複数の非線形ダウンサンプリングバージョンを生成するように構成されている、
請求項8の処理デバイス。
【請求項11】
前記プロセッサは、畳み込み演算の間に活性化関数を積層して一連の線形操作を一連の非線形操作に変換することによって、前記複数の非線形ダウンサンプリングバージョンを生成するように構成されている、
請求項8の処理デバイス。
【請求項12】
前記プロセッサは、前記入力画像の画素のウィンドウに対して少なくとも1つの畳み込み演算を実行することによって、前記線形アップスケーリングネットワークを介して、前記入力画像の前記複数の線形ダウンサンプリングバージョンを生成するように構成されている、
請求項8の処理デバイス。
【請求項13】
前記出力画像の各画素ブロックは複数の画素を含み、各画素は、各画素ブロックのいくつかの異なる位置のうち何れかの位置に配置されており、
各位置は、前記入力画像の対応するダウンサンプリングバージョンの前記同一位置の画素を含む、
請求項8の処理デバイス。
【請求項14】
各画素ブロックの前記異なる位置の総数は、前記入力画像
のダウンサンプリングバージョンの総数に等しい、
請求項13の処理デバイス。
【請求項15】
前記線形アップスケーリングネットワークは、1つ以上の畳み込み演算を含み、前記非線形アップスケーリングネットワークは、複数の畳み込み演算を含み、各畳み込み演算は、対応する畳み込み演算が実行される毎に、同じ数の線形ダウンサンプリングバージョン、又は、同じ数の非線形ダウンサンプリングバージョンを生成する、
請求項8の処理デバイス。
【請求項16】
第一解像度を有する入力画像を受信することと、
線形アップスケーリングネットワークを介して前記入力画像をダウンサンプリングすることによって、前記入力画像の
少なくとも1つの線形ダウンサンプリングバージョンを生成することと、
非線形アップスケーリングネットワークを介して前記入力画像をダウンサンプリングすることによって、前記入力画像の
少なくとも1つの非線形ダウンサンプリングバージョンを生成することと、
前記入力画像の各ダウンサンプリングバージョンの同一位置の画素を出力画像の複数の画素ブロックの各々に割り当てることによって、前記入力画像の
少なくとも1つの線形ダウンサンプリングバージョン、及び、前記入力画像の
少なくとも1つの非線形ダウンサンプリングバージョンを、前記第一解像度よりも高い第二解像度を有する出力画像の画素に変換することと、
前記出力画像を表示するために提供することと、を含む、
スーパーレゾリューション処理方法。
【請求項17】
前記非線形アップスケーリングネットワークを介して、前記入力画像の
少なくとも1つの非線形ダウンサンプリングバージョンを生成することは、複数の畳み込み演算の各々の間に活性化関数を積層して、一連の線形操作を一連の非線形操作に変換することを含む、
請求項16のスーパーレゾリューション処理方法。
【請求項18】
前記線形アップスケーリングネットワークを介して、前記入力画像の
少なくとも1つの線形ダウンサンプリングバージョンを生成することは、前記入力画像の画素のウィンドウに対して畳み込み演算を実行することを含む、
請求項16のスーパーレゾリューション処理方法。
【請求項19】
前記入力画像の
少なくとも1つの線形ダウンサンプリングバージョン
及び前記入力画像の少なくとも1つの非線形ダウンサンプリングバージョンを前記画素に変換することは、前記出力画像について複数の画素ブロックを生成することを含み、各画素ブロックは、前記入力画像の
各ダウンサンプリングバージョン
の同一位置の画素を含む、
請求項16のスーパーレゾリューション処理方法。
【請求項20】
前記線形アップスケーリングネットワークは、1つ以上の畳み込み演算を含み、前記非線形アップスケーリングネットワークは、複数の畳み込み演算を含み、各畳み込み演算は、対応する畳み込み演算が実行される毎に、同じ数の線形ダウンサンプリングバージョン、又は、同じ数の非線形ダウンサンプリングバージョンを生成する、
請求項16のスーパーレゾリューション処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2019年11月18日に出願された米国特許出願第16/687,569号の利益を主張するものであり、本明細書に完全に記載されているかのように、参照により援用されている。
【背景技術】
【0002】
スーパーレゾリューション(super-resolution)とは、元の画像(例えば、ビデオ画像、写真)を、ニューラルネットワークを介してアップスケーリングし、元の画像に存在する情報量よりも多い情報(例えば、詳細(details))を抽出するプロセスである。スーパーレゾリューション技術は、異なる画像又はフレームからの情報を使用して、アップスケーリングされた画像を生成する。シーケンス内の各画像から詳細が抽出され、他の画像を再構築する。
【0003】
添付の図面と併せて例として与えられる以下の説明から、より詳細な理解を得ることができる。
【図面の簡単な説明】
【0004】
【
図1】本開示の1つ以上の特徴が実装され得る例示的なデバイスのブロック図である。
【
図2】追加の詳細を示す
図1のデバイスのブロック図である。
【
図3】本開示の特徴による、画像をスーパーレゾリューションする例示的な方法を示すフロー図である。
【
図4】
図3に示す方法のより詳細な例を示すフロー図である。
【
図5】本開示の特徴による、サブピクセル畳み込みを使用して低解像度画像を高解像度画像に変換することを説明する図である。
【発明を実施するための形態】
【0005】
従来のスーパーレゾリューション技術には、線形関数を使用して画像をアップスケーリングすることによってスーパーレゾリューションを実行する様々な従来のニューラルネットワークアーキテクチャが含まれる。ただし、これらの線形関数は、他のタイプの情報(例えば、非線形情報)の利点を利用しないため、通常、ぼやけた及び/又は破損した画像が生じる。さらに、従来のニューラルネットワークアーキテクチャは、一般化可能であり、当面の問題についての重要な知識がなくても動作するようにトレーニングされる。他の従来のスーパーレゾリューション技術は、深層学習アプローチを使用する。ただし、深層学習技術は、元の画像の重要な側面が組み込まれないため、その結果、色が失われ、詳細情報が失われる。
【0006】
本願は、画像を効率的にスーパーレゾリューションするためのデバイス及び方法を提供することにより、画像がアップスケーリングされ、忠実度が向上しながら、画像の元の情報が保持され得る。デバイス及び方法は、完全に学習された環境で線形及び非線形のアップサンプリングを利用する。
【0007】
デバイス及び方法は、畳み込み及び一般化可能な方法で画像を効率的にスーパーレゾリューションするゲーム用のスーパーレゾリューション(GSR)ネットワークアーキテクチャを含む。GSRアーキテクチャは、画像凝縮と、線形及び非線形操作の組み合わせとを用いて、プロセスをゲームの実用レベルまで高速化する。GSRは、低品質スケールで画像をレンダリングして高品質の画像近似を生成し、高フレームレートを達成する。高品質の参照画像は、特定の構成の畳み込み層及び活性化関数を低品質の参照画像に適用することによって近似される。GSRネットワークは、画像のコーパスを用いて畳み込み層の重みをトレーニングすることにより、従来のスーパーレゾリューション技術よりも正確かつ効率的に、より汎化された問題(more generalized problems)をより近似する。
【0008】
メモリ及びプロセッサを含む処理デバイスが提供される。プロセッサは、第一解像度を有する入力画像を受信し、線形アップスケーリングネットワークを介して入力画像をダウンサンプリングすることにより、入力画像の線形ダウンサンプリングバージョンを生成し、非線形アップスケーリングネットワークを介して入力画像をダウンサンプリングすることにより、入力画像の非線形ダウンサンプリングバージョンを生成するように構成されている。また、プロセッサは、入力画像のダウンサンプリングバージョンを、第一解像度よりも高い第二解像度を有する出力画像の画素(ピクセル)に変換し、表示のために出力画像を提供するように構成されている。
【0009】
メモリと、第一解像度を有する入力画像を受信するように構成されたプロセッサと、を含む処理デバイスが提供される。また、プロセッサは、非線形アップスケーリングネットワークを介して入力画像の複数の非線形ダウンサンプリングバージョンを生成し、線形アップスケーリングネットワークを介して入力画像の1つ以上の線形ダウンサンプリングバージョンを生成するように構成されている。また、プロセッサは、非線形ダウンサンプリングバージョンと、1つ以上の線形ダウンサンプリングバージョンとを組み合わせて、複数の組み合わされたダウンサンプリングバージョンを提供するように構成されている。また、プロセッサは、第一解像度よりも高い第二解像度を有する出力画像の複数の画素ブロックの各々に、組み合わされたダウンサンプリングバージョンの各々の同一位置の画素を割り当てることにより、入力画像の組み合わされたダウンサンプリングバージョンを出力画像の画素に変換し、表示のために出力画像を提供するように構成されている。
【0010】
処理パフォーマンスを向上させるスーパーレゾリューション処理方法が提供される。方法は、第一解像度を有する入力画像を受信することと、線形アップスケーリングネットワークを介して入力画像をダウンサンプリングすることにより、入力画像の線形ダウンサンプリングバージョンを生成することと、非線形アップスケーリングネットワークを介して入力画像をダウンサンプリングすることにより、入力画像の非線形ダウンサンプリングバージョンを生成することと、を含む。また、方法は、入力画像のダウンサンプリングバージョンを、第一解像度よりも高い第二解像度を有する出力画像の画素に変換することと、表示のために出力画像を提供することと、を含む。
【0011】
図1は、本開示の1つ以上の特徴が実装され得る例示的なデバイス100のブロック図である。デバイス100は、例えば、コンピュータ、ゲーミングデバイス、ハンドヘルドデバイス、セットトップボックス、テレビ、携帯電話又はタブレットコンピュータを含み得る。デバイス100は、プロセッサ102と、メモリ104と、ストレージ106と、1つ以上の入力デバイス108と、1つ以上の出力デバイス110と、を含む。また、デバイス100は、オプションで、入力ドライバ112及び出力ドライバ114を含み得る。デバイス100は、
図1に示されていない追加のコンポーネントを含み得ることを理解されたい。
【0012】
様々な代替例では、プロセッサ102は、中央処理装置(CPU)、グラフィックスプロセシングユニット(GPU)、別のタイプの計算アクセラレータ、同一のダイ上に位置するCPU及びGPU、又は、1つ以上のプロセッサコアを含み、各プロセッサコアは、CPU、GPU又は別のタイプのアクセラレータであり得る。例えば、複数のプロセッサは、1つの基板又は複数の基板上に含まれる。プロセッサは1つ以上の基板上にある。様々な代替例では、メモリ104は、プロセッサ102と同一のダイ上に位置している、又は、プロセッサ102とは別に位置している。メモリ104は、揮発性又は不揮発性のメモリ(例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM、キャッシュ)を含む。
【0013】
ストレージ106は、固定又はリムーバブルストレージ(例えば、ハードディスクドライブ、ソリッドステートドライブ、光ディスク、フラッシュドライブ)を含む。入力デバイス108は、1つ以上の画像キャプチャデバイス(例えば、カメラ)、キーボード、キーパッド、タッチスクリーン、タッチパッド、検出器、マイクロフォン、加速度計、ジャイロスコープ、バイオメトリックスキャナ、又は、ネットワーク接続(例えば、無線IEEE802信号の送信及び/若しくは受信のための無線ローカルエリアネットワークカード)を含むが、これらに限定されない。出力デバイス110は、1つ以上のシリアルデジタルインタフェース(SDI)カード、ディスプレイ、スピーカ、プリンタ、触覚フィードバックデバイス、1つ以上のライト、アンテナ、又は、ネットワーク接続(例えば、無線IEEE802信号の送信及び/若しくは受信のための無線ローカルエリアネットワークカード)を含むが、これらに限定されない。
【0014】
入力ドライバ112は、プロセッサ102及び入力デバイス108と通信し、プロセッサ102が入力デバイス108から入力を受信することを可能にする。出力ドライバ114は、プロセッサ102及び出力デバイス110と通信し、プロセッサ102が出力デバイス110に出力を送信することを可能にする。入力ドライバ112及び出力ドライバ114は、例えば、ビデオキャプチャカード(例えば、SDIカード)等の1つ以上のビデオキャプチャデバイスを含む。
図1に示すように、入力ドライバ112及び出力ドライバ114は、個別のドライバデバイスである。或いは、入力ドライバ112及び出力ドライバ114は、単一のデバイス(例えば、SDIカード)として統合され、このデバイスは、キャプチャされた画像データを受信し、処理された画像データ(例えば、パノラマスティッチ画像データ)を提供し、この処理された画像データは(例えば、ストレージ106に)格納され、(例えば、表示装置118を介して)表示され、又は、(例えば、無線ネットワークを介して)送信される。
【0015】
入力ドライバ112及び出力ドライバ114がオプションのコンポーネントであることと、入力ドライバ112及び出力ドライバ114が存在しない場合には、デバイス100が同様に動作することと、に留意されたい。一例では、
図1に示すように、出力ドライバ114は、表示装置118に結合されたアクセラレーテッドプロセッシングデバイス(APD)116を含む。APDは、プロセッサ102から計算コマンド及びグラフィックスレンダリングコマンドを受信し、それらの計算コマンド及びグラフィックスレンダリングコマンドを処理し、表示のために表示装置118に画素出力を提供するように構成されている。APD116は、例えば、単一命令複数データ(SIMD)パラダイムに従って計算を実行するように構成された1つ以上の並列処理ユニットを含む。したがって、本明細書では、様々な機能が、APD116によって又はAPD116と連動して実行されるものとして説明されているが、様々な代替例では、APD116によって実行されるものとして説明する機能は、ホストプロセッサ(例えば、プロセッサ102)によって駆動されず、表示装置118にグラフィカル出力を提供するように構成された同様の機能を有する他のコンピューティングデバイスによって追加的又は代替的に実行される。例えば、SIMDパラダイムに従って処理タスクを行う何れかの処理システムが、本明細書で説明する機能を行うように構成され得ることが想到される。或いは、SIMDパラダイムに従って処理タスクを行わないコンピューティングシステムが、本明細書で説明する機能を行うことが想到される。
【0016】
図2は、APD116上での処理タスクの実行に関連する追加の詳細を示すデバイス100のブロック図である。プロセッサ102は、システムメモリ104において、プロセッサ102による実行のための1つ以上の制御ロジックモジュールを維持する。制御論理モジュールは、オペレーティングシステム120と、カーネルモードドライバ122と、アプリケーション126と、を含む。これらの制御論理モジュールは、プロセッサ102及びAPD116の操作の様々な機能を制御する。例えば、オペレーティングシステム120は、ハードウェアと直接通信し、プロセッサ102で実行される他のソフトウェアにハードウェアへのインターフェースを提供する。カーネルモードドライバ122は、例えば、プロセッサ102上で実行されるソフトウェア(例えば、アプリケーション126)に対して、APD116の様々な機能にアクセスするためのアプリケーションプログラミングインターフェース(API)を提供することによって、APD116の動作を制御する。また、カーネルモードドライバ122は、APD116の処理コンポーネント(以下にさらに詳細に説明するSIMDユニット138等)による実行のためにプログラムをコンパイルするジャストインタイムコンパイラを含む。
【0017】
APD116は、グラフィックス操作及び非グラフィックス操作等のように、並列処理に適し得る選択された機能のコマンド及びプログラムを実行する。APD116は、プロセッサ102から受信したコマンドに基づいて、画素操作、幾何学計算、表示装置118への画像のレンダリング等のグラフィックスパイプライン操作を実行するために使用することができる。また、APD116は、プロセッサ102から受信したコマンドに基づいて、ビデオ、物理シミュレーション、計算流体力学、又は、他のタスクに関連する動作等のように、グラフィックス操作に直接関連しない計算処理操作も実行する。
【0018】
APD116は、SIMDパラダイムに従ってプロセッサ102の要求に応じて並列に操作を行うように構成された1つ以上のSIMDユニット138を含む計算ユニット132を含む。SIMDパラダイムは、複数の処理要素が単一のプログラム制御フローユニット及びプログラムカウンタを共有し、ひいては、同じプログラムを実行するが、異なるデータでそのプログラムを実行することが可能なパラダイムである。一例では、各SIMDユニット138は16個のレーンを含み、各レーンは、SIMDユニット138内の他のレーンと同時に同じ命令を実行するが、異なるデータでその命令を実行することができる。全てのレーンが所定の命令を実行する必要がない場合には、プレディケーション(predication)を使用してレーンをオフにすることができる。プレディケーションは、分岐する制御フローを有するプログラムを実行する場合にも使用することができる。より具体的には、制御フローが個々のレーンによって実行される計算に基づく条件付き分岐又は他の命令を有するプログラムの場合、現在実行されていない制御フローパスに対応するレーンのプレディケーション、及び、異なる制御フローパスの直列実行は、任意の制御フローを可能にする。
【0019】
計算ユニット132での実行の基本単位はワークアイテム(work-item)である。各ワークアイテムは、特定のレーンにおいて並列に実行されるプログラムの単一のインスタンス化を表す。ワークアイテムは、単一のSIMDユニット138上で「ウェーブフロント(wavefront)」として同時に実行され得る。1つ以上のウェーブフロントが「ワークグループ」に含まれ、ワークグループは、同一のプログラムを実行するように指定されたワークアイテムの集合を含む。ワークグループは、ワークグループを構成するウェーブフロントの各々を実行することによって実行することができる。代替例では、ウェーブフロントは、単一のSIMDユニット138上で順次実行され、又は、異なるSIMDユニット138上で部分的若しくは完全に並列に実行される。ウェーブフロントは、単一のSIMDユニット138上で同時に実行可能なワークアイテムの最大の集合として考えられ得る。したがって、プロセッサ102から受信したコマンドが、プログラムが単一のSIMDユニット138上で同時に実行できない程度に特定のプログラムが並列処理されることを示す場合、そのプログラムは、2つ以上のSIMDユニット138上で並列処理されるウェーブフロント、又は、同一のSIMDユニット138上でシリアル処理される(又は、必要に応じて、並列処理及びシリアル処理の両方が行われる)ウェーブフロントに分割される。スケジューラ136は、異なる計算ユニット132及びSIMDユニット138上で様々なウェーブフロントをスケジューリングすることに関連する操作を行うように構成されている。
【0020】
計算ユニット132によって与えられる並列性は、画素値計算、頂点変換及び他のグラフィックス操作等のグラフィックス関連操作に適している。したがって、いくつかの例において、プロセッサ102からグラフィックスプロセッシングコマンドを受信するグラフィックスプロセッシングパイプライン134は、並列に実行するために計算タスクを計算ユニット132に提供する。
【0021】
また、計算ユニット132を使用して、グラフィックに関連しない、又は、グラフィックスプロセッシングパイプライン134の「通常」操作の一部として行われない計算タスク(例えば、グラフィックスプロセッシングパイプライン134の操作に対して行われる処理を補足するために行われるカスタム操作)を行う。プロセッサ102上で実行されるアプリケーション126又は他のソフトウェアは、そのような計算タスクを定義したプログラムを、実行のためにAPD116に送信する。
【0022】
次に、画像をスーパーレゾリューションする例示的な方法を、
図3及び
図4を参照して説明する。
図3は、画像をスーパーレゾリューションする例示的な方法を示すフロー図である。
図4は、
図3に示す方法のより詳細な例を示すフロー図である。
【0023】
ブロック302に示すように、この方法は、低解像度画像を受信することを含む。ブロック302で低解像度画像を受信する前に、元の画像は、例えば、複数の従来の正規化技術のうち何れかを使用して前処理され、元の画像は、ブロック302で受信した低解像度の正規化された画像(すなわち、低解像度画像)に凝縮される。例えば、
図4のブロック402に示すように、元の画像(例えば、1×3×2560×1440の解像度の画像)が受信され、前処理操作404(例えば、除算及び減算操作を含む)に従って前処理され(例えば、正規化され)、元の画像が、ブロック302で受信した低解像度の正規化された画像に凝縮される。
【0024】
次に、低解像度画像は、ブロック304,306に示すように、2つの異なるプロセスに従って処理される。低解像度画像は、ブロック304に示す深層学習ベースの線形アップスケーリングネットワークに従って、又は、ブロック306に示す深層学習ベースの非線形アップスケーリングネットワークに従って処理される。
図3に示す例では、ブロック304,306に示す各処理は、低解像度画像に対して動作し、並行して実行される。或いは、ハードウェアが並行処理をサポートしていない場合、線形アップスケーリング処理及び非線形アップスケーリング処理は、並行して実行されない。
【0025】
深層学習ベースの線形アップスケーリングネットワークは、線形畳み込みフィルタを含み、この線形畳み込みフィルタは、画像をダウンサンプリングし(例えば、画像の解像度の1/2だけ)、画像から線形特徴を抽出して、少数(例えば、3個)の特徴チャネル(例えば、赤-緑-青(RGB)チャネル)を有する画像から、より多数(例えば、27個)の線形特徴チャネルを有するダウンサンプリング画像に変換する。すなわち、低解像度画像は、低解像度画像の多数(例えば、27個)の線形ダウンサンプリングバージョンを生成するように処理される。深層学習ベースの非線形アップスケーリングネットワークは、一連の畳み込み演算子及び活性化関数を介して、低解像度画像を処理し、非線形特徴を抽出し、これらの特徴をダウンサンプリングし、低解像度画像の特徴情報量を増加させる。
【0026】
線形アップスケーリング及び非線形アップスケーリングの組み合わせにより、線形アップスケーリングによる画像の色及び大きいスケールの特徴(人の目でより簡単に認知される大きいオブジェクト及び形状)の保存と、非線形アップスケーリングによる画像のより細かい特徴(例えば、曲線特徴、及び、低解像度では容易に認知されない特徴)の保存と、の両方が容易になる。線形操作は入力データのみを使用するが、非線形操作は入力データ及び他のデータ(すなわち、非入力データ)の両方を使用することにより、入力データが拡張される。非線形関数は、非線形関数(例えば、畳み込み演算)よりも効率的に画像の複雑な特徴(例えば、曲線)を正確に決定することを容易にする。
【0027】
例えば、
図4の左側の経路は、線形アップスケーリング処理304の一例を示し、
図4の右側の経路は、非線形アップスケーリング処理306の一例を示す。
図4の左側及び右側の経路に示す各畳み込み演算406(すなわち、各畳み込み層)は、低解像度画像の画素データのウィンドウに対して行列数学演算(例えば、行列乗算)を実行することにより、複数の特徴を有するが低解像度である画像の1つ以上のダウンサンプリングバージョン(すなわち、1つ以上の特徴マップ)が生成される。例えば、各畳み込み演算406は、畳み込み演算406が実行される毎に(例えば、ビデオストリームの画像毎に)、同じ数(すなわち、1つ以上)のダウンサンプリングバージョンを生成するように予め決定される(例えば、ビデオストリームの画像をスーパーレゾリューションするランタイム前に設定される)。
【0028】
図4に示す例では、左側の経路(すなわち、線形アップスケーリング処理304)は、単一の畳み込み演算406を含み、右側の経路は、複数の線形畳み込み演算406を含む。また、右側の経路は、畳み込み演算406の間に積層された複数の非線形ポイントワイズ活性化関数408を含む。
図4に示す畳み込み演算406及び活性化関数408の数は、一例に過ぎない。これらの例は、任意の数の畳み込み演算及び活性化関数を含むことができる。さらに、
図4に示す寸法(例えば、1×3×2560×1440、48×3×5×5、48×48×3×3、及び1×3×1520×2880)は、単なる例示に過ぎない。
【0029】
各活性化関数408は、要素データを受信し、そのデータを非線形データに変換する非線形数学関数である。すなわち、各畳み込み演算406が右側の経路上の入力データに対して実行された後、非線形ポイントワイズ活性化関数408が適用されることにより、線形データが非線形データに変換される。畳み込み演算406の間に活性化関数408を積層することにより、一連の線形操作が一連の非線形操作に変換される。ニューラルネットワークがデータを処理することを学習すると、ネットワークは、畳み込み演算406の間の活性化関数の積層が実行されなかった場合よりも、元の画像のデータによる制約(すなわち、制限)が少なくなるため、入力データは、画像をスーパーレゾリューションするためにより効率的にワープ(warped)される。
【0030】
図3に戻り参照すると、ブロック308(及び、
図4)に示すように、低解像度画像302の線形ダウンサンプリング(例えば、1/2解像度)バージョンと、低解像度画像302の非線形ダウンサンプリングバージョンと、が組み合わされることにより、低解像度画像302の組み合わされたいくつかのダウンサンプリングバージョンが提供される。低解像度画像302のこれらのダウンサンプリングバージョンは、低解像度で画像から多数の特徴(すなわち、特徴チャネル)を抽出する。
【0031】
ブロック310に示すように、この方法は、画素シャッフルプロセス310を含む。例えば、画素シャッフルプロセス310は、以下により詳細に説明するように、
図4に示す形状変更操作(reshape operations)410及び転置操作(transpose operations)412等の操作を実行し、高解像度画像312を提供することを含む。
【0032】
図5は、本開示の特徴による、サブピクセル(すなわち、サブ解像度ピクセル)畳み込みを使用して低解像度画像を高解像度画像に変換することを示す図である。
図5の最初の3つの部分(隠れ層として注釈が付けられている)は、
図3に示す処理経路(すなわち、線形アップスケーリング処理304又は非線形アップスケーリング処理306)のうち何れかに従って、低解像度画像502の複数のダウンサンプリングバージョン504を生成するために、低解像度画像502から特徴の抽出することを示す。低解像度画像302のダウンサンプリングバージョン504は、画像302から多数の特徴を抽出するために、本明細書では、特徴マップ504及び組み合わされた特徴マップ506とも呼ばれる。
【0033】
図4に示す例では、左側の経路での線形アップスケーリング処理304は、単一の畳み込み演算406(すなわち、単一の隠れ層)を含み、この単一の畳み込み演算は、少数(例えば、3個)の特徴(例えば、RGB色特徴)を有する低解像度画像502の画素データのウィンドウに対して実行されることにより、色特徴と、非色特徴と、色情報及び非色情報と、を有する特徴を含む、より多数(例えば、48個)の特徴を有する画像502の線形ダウンサンプリングバージョン(すなわち、特徴マップ504)が生成される。
【0034】
図4の右側の経路の非線形アップスケーリング処理306は、3組の畳み込み演算406(すなわち、3つの隠れ層)と、1つの活性化関数408と、を含む。すなわち、画像502の画素データのウィンドウに対して、第一畳み込み演算406、続いて活性化関数408(例えば、「Tanh」関数)が実行されることにより、画像502の第一非線形バージョン(すなわち、特徴マップ504)が生成される。次に、画像502の画素データのウィンドウに対して、第二畳み込み演算406、続いて第二活性化関数408が実行されることにより、画像502の第二非線形バージョン(すなわち、特徴マップ504)が生成される。次に、画像502の画素データのウィンドウに対して、第三畳み込み演算406、続いて第三活性化関数408が実行されることにより、画像502の第三非線形バージョン(すなわち、特徴マップ504)が生成される。
【0035】
図5の第四部分及び第五部分(サブピクセル畳み込み層として注釈が付けられている)は、線形アップスケーリング処理304及び非線形アップスケーリング処理306から得られる低解像度画像502の組み合わされたいくつかのダウンサンプリングバージョン506からの高解像度画像508の生成を示す。
【0036】
画素シャッフルプロセス310は、低解像度画素情報を使用してより高い解像度で各ブロック510を生成することにより、低解像度特徴マップ506を高解像度画像508の画素に変換することを含む。
図5の例に示すように、高解像度画像508は、9つの画素の繰り返しパターンを有する複数の3×3高解像度画素ブロック510を含む。さらに、低解像度画像302の9つのダウンサンプリングバージョン506(1)~506(9)は、9つの画素の高解像度画素ブロック510に対応するように生成され、ここでは、ダウンサンプリングバージョン506のうち8つは、画像302のシフトされた低解像度バージョンを表し、ダウンサンプリングバージョン506のうち1つは、画像302のシフトされていない低解像度バージョンを表す。
【0037】
例えば、ダウンサンプリングバージョン506(1)は、1画素位置だけ上に(すなわち、Y方向の上に)、及び、1画素位置だけ左に(すなわち、X方向の左に)シフトされた画像302の低解像度バージョンを表す。ダウンサンプリングバージョン506(2)は、1画素位置だけ上に(すなわち、Y方向の上に)シフトされた画像302の低解像度バージョンを表す。ダウンサンプリングバージョン506(3)は、1画素位置だけ上に(すなわち、Y方向の上に)、及び、1画素位置だけ右に(すなわち、X方向の右に)シフトされた画像302の低解像度バージョンを表す。ダウンサンプリングバージョン506(4)は、1画素位置だけ左に(すなわち、X方向の左に)シフトされた画像302の低解像度バージョンを表す。ダウンサンプリングバージョン506(5)は、画像302のシフトされていない低解像度バージョンを表す。ダウンサンプリングバージョン506(6)は、1画素位置だけ右に(すなわち、X方向の右に)シフトされた画像302の低解像度バージョンを表す。ダウンサンプリングバージョン506(7)は、1画素位置だけ下に(すなわち、Y方向の下に)、及び、1画素位置だけ左に(すなわち、X方向の左に)シフトされた画像302の低解像度バージョンを表す。ダウンサンプリングバージョン506(8)は、1画素位置だけ下に(すなわち、Y方向の下に)シフトされた画像302の低解像度バージョンを表す。ダウンサンプリングバージョン506(9)は、1画素位置だけ下に(すなわち、Y方向の下に)、及び、1画素位置だけ右に(すなわち、X方向の右に)シフトされた画像302の低解像度バージョンを表す。
【0038】
画素シャッフルプロセス310は、高解像度画素ブロック510の各々に、9つの低解像度特徴マップ506の各々における同一位置の画素を割り当てることによって実施される。例えば、高解像度画像508の左上隅部に位置する第一高解像度画素ブロック510は、高解像度画素ブロック510の画素位置1に、第一低解像度特徴マップ506(1)の左上隅部の画素(すなわち、同一位置の画素)を割り当てることと、高解像度画素ブロック510の画素位置2に、第二低解像度特徴マップ506(2)の左上隅部に位置する画素を割り当てることと、高解像度画素ブロック510の画素位置3に、第三低解像度特徴マップ506(3)の左上隅部に位置する画素を割り当てることと、高解像度画素ブロック510の画素位置4に、第四低解像度特徴マップ506(4)の左上隅部に位置する画素を割り当てることと、高解像度画素ブロック510の画素位置5に、第五低解像度特徴マップ506(5)の左上隅部に位置する画素を割り当てることと、高解像度画素ブロック510の画素位置6に、第六低解像度特徴マップ506(6)の左上隅部に位置する画素を割り当てることと、高解像度画素ブロック510の画素位置7に、第七低解像度特徴マップ506(7)の左上隅部に位置する画素を割り当てることと、高解像度画素ブロック510の画素位置8に、第八低解像度特徴マップ506(8)の左上隅部に位置する画素を割り当てることと、高解像度画素ブロック510の画素位置9に、第九低解像度特徴マップ506(9)の左上隅部に位置する画素を割り当てることと、によって生成される。
【0039】
次の高解像度画素ブロック510(すなわち、第一高解像度画素ブロック510の右側のブロック)は、第一高解像度画素ブロック510と同様の方法で、高解像度画素ブロック510の各画素位置1~9に、各々の低解像度特徴マップ506(1)~506(9)の各々における同一位置の画素(すなわち、左上隅部の画素の右側に位置する画素)を割り当てることによって生成される。プロセスは、高解像度画像508の残りの高解像度画素ブロック510の各々について続行される。
【0040】
画素シャッフルプロセス310が実行された後であって、高解像度画像312を生成する前に、加算及び乗算操作を含む追加の処理操作414が実行されることにより、減算及び除算操作404によって実行される元の画像402の正規化が元に戻され、元の画像402が標準色空間に戻される。
【0041】
本明細書の開示に基づいて、多くの変形が可能であることを理解されたい。特徴及び要素が特定の組み合わせで上述されているが、各特徴又は要素は、他の特徴及び要素なしに単独で、又は、他の特徴及び要素と共に若しくは他の特徴及び要素なしに様々な組み合わせで使用することができる。
【0042】
図に示され、及び/又は、本明細書で説明する様々な機能ユニット(限定されないが、プロセッサ102、入力ドライバ112、入力デバイス108、出力ドライバ114、出力デバイス110、アクセラレーテッド処理デバイス116、スケジューラ136、グラフィックスプロセッシングパイプライン134、計算ユニット132、及び、SIMDユニット138を含む)は、汎用コンピュータ、プロセッサ若しくはプロセッサコアとして、又は、プログラム、ソフトウェア若しくはファームウェアとして実装され、非一時的なコンピュータ可読媒体又は別の媒体に記憶され、汎用コンピュータ、プロセッサ又はプロセッサコアによって実行可能であり得る。提供される方法は、汎用コンピュータ、プロセッサ又はプロセッサコアにおいて実装することができる。適切なプロセッサは、例として、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタルシグナルプロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアに関連する1つ以上のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、他のタイプの集積回路(IC)、及び/又は、状態機械を含む。処理されたハードウェア記述言語(HDL)命令の結果と、ネットリストを含む他の中間データ(コンピュータ可読媒体に記憶することが可能な命令)と、を使用して製造プロセスを構成することによって、かかるプロセッサを製造することができる。このような処理の結果は、本開示の特徴を実装するプロセッサを製造する半導体製造工程において使用されるマスクワークであってもよい。
【0043】
本明細書で提供される方法又はフローチャートは、汎用コンピュータ又はプロセッサによる実行のために非一時的なコンピュータ可読記憶媒体に組み込まれたコンピュータプログラム、ソフトウェア又はファームウェアで実施できる。非一時的なコンピュータ可読記憶媒体の例は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスク及び着脱可能ディスク等の磁気媒体、磁気光学媒体、並びに、CD-ROMディスク及びデジタル多用途ディスク(DVD)等の光学媒体を含む。