JP6789331B2 - 画像アップスケーリング - Google Patents

画像アップスケーリング Download PDF

Info

Publication number
JP6789331B2
JP6789331B2 JP2019032606A JP2019032606A JP6789331B2 JP 6789331 B2 JP6789331 B2 JP 6789331B2 JP 2019032606 A JP2019032606 A JP 2019032606A JP 2019032606 A JP2019032606 A JP 2019032606A JP 6789331 B2 JP6789331 B2 JP 6789331B2
Authority
JP
Japan
Prior art keywords
patch
patches
image
upscaling
subset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019032606A
Other languages
English (en)
Other versions
JP2019117644A (ja
Inventor
ペイマン・ミランファー
ヤニフ・ロマーノ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2019117644A publication Critical patent/JP2019117644A/ja
Application granted granted Critical
Publication of JP6789331B2 publication Critical patent/JP6789331B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/403Edge-driven scaling; Edge-based scaling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Description

システムは、より高い解像度ディスプレイへの表示のために画像をアップスケールしうる。例えば、システムは画像またはフレームをビデオ・ストリームから受信し、当該画像をより低い解像度からより高い解像度にアップスケールすることができる。当該システムは、例えば、当該画像がディスプレイ全体を埋めるように、当該アップスケールされた画像またはフレームを当該ディスプレイに表示してもよい。
様々なシステムは、低解像度画像および高解像度画像の対応するペアのトレーニング・データから導出されたフィルタを使用する。次いで学習された当該フィルタを、当該トレーニング・セット内にない低解像度画像に適用して、より多くの画素を有し当該低解像度画像より詳細な空間情報および色情報を含むより高い解像度バージョンを生成する。
幾つかの実装では、アップスケーリング・システムは高解像度画像を低解像度画像から生成する。当該アップスケーリング・システムは軽量補間方法を使用して、初期のアップスケールされた画像を生成してもよい(「軽量」とは、当該補間方法が、比較的低計算リソース、比較的低時間量、またはその両方を必要とすることを意味する)。適切な軽量補間方法の幾つかの例は線形補間、バイリニア補間、バイキュービック補間、およびランチョス・リサンプリングを含む。
当該アップスケーリング・システムはフィルタをトレーニング・データ・セットから学習し、当該フィルタを初期アップスケールされた画像に適用して、当該初期アップスケールされた画像の品質を高め、より高品質な画像を生成する。当該アップスケーリング・システムは、複数のフィルタを学習し、当該フィルタを当該初期アップスケールされた画像内の画素のパッチまたはグループに適用してもよい。
幾つかの例では、当該アップスケーリング・システムはランタイムの間に当該初期アップスケールされた画像およびより高品質な画像を選択的に混合して、最終画像を生成する。当該アップスケーリング・システムは、当該初期アップスケールされた画像および当該より高品質な画像を選択的に混合するときに画素の画素またはグループごとに異なる重みを使用してもよい。
幾つかの実装では、ランタイムおよびトレーニング・プロセスはN×Nのサイズの低解像度画像で開始し、ターゲット解像度であるkN×kNのサイズのアップスケールされた画像を生成してもよい。トレーニングの間に、アップスケーリング・トレーニング・システムは当該アップスケールされたkN×kN画像からのパッチと、同一のサイズ、即ち、kN×kNのターゲット高解像度画像からのパッチを比較する。ランタイムの間に、アップスケーリング・ランタイム・システムは、kN×kNのサイズのアップスケールされた画像を生成し、トレーニングの間に学習されるフィルタを当該アップスケールされた画像内のパッチに適用し、同一のサイズ、即ち、kN×kNのより高品質な画像を生成する。当該ランタイム・アップスケーリング・システムは、当該より高品質な画像をユーザに、例えば、モバイル・デバイスのディスプレイ上で提示するためにデバイスに、提供してもよい。
一般に、本明細書で説明した主題の1つの進歩的な態様を、特定のコンテンツを描画する第1の解像度を有する低解像度画像を第1の解像度より高い第2の解像度にアップスケールして第1のアップスケールされた画像を生成するステップと、第1のアップスケールされた画像の第1の画素サブセットを生成するステップであって、第1の画素サブセット内の各サブセットは第1のサイズを有し、第1のアップスケールされた画像内の各画素は第1の画素サブセット内のサブセットに含まれるステップと、当該特定のコンテンツを描画し、第1の解像度より高い第3の解像度を有する高解像度画像の第2の画素サブセットを生成するステップであって、第2の画素サブセット内の各サブセットは第2のサイズを有し、当該高解像度画像内の各画素は第2の画素サブセット内のサブセットに含まれ、第1の画素サブセットの量は第2の画素サブセットの量と同じであり、第1の画素サブセットの各々は第2の画素サブセットの各々に対応する、ステップと、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該画素サブセットのプロパティの値を決定するステップと、当該対応する画素サブセットのプロパティの値を用いて、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットが属する1群のサブセットを決定するステップであって、各画素サブセットは1つのグループのみに含まれるステップと、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する最終画素サブセットを生成するためのフィルタを決定するステップであって、当該最終画素サブセットの全ての組合せは第2のアップスケールされた画像を表す、ステップとからなるアクションを含む方法で具体化することができる。当該態様の他の実施形態は、対応するコンピュータ・システム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータ・プログラムを含み、それぞれ当該方法の当該アクションを実施するように構成される。1つまたは複数のコンピュータからなるシステムを、動作において当該システムに当該アクションを実施させるソフトウェア、ファームウェア、ハードウェア、または当該システムにインストールされたそれらの組合せにより、特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータ・プログラムを、データ処理装置により実行されたとき、当該装置に当該アクションを実施させる命令を含めることで特定の動作またはアクションを実施するように構成することができる。
一般に、本明細書で説明した主題の1つの進歩的な態様を、プロセッサを用いて、特定のコンテンツを描画する第1の解像度を有する低解像度画像を第1の解像度より高い第2の解像度にアップスケールして第1のアップスケールされた画像を生成するステップと、第1のアップスケールされた画像の第1の画素サブセットを生成するステップであって、第1の画素サブセット内の各サブセットは第1のサイズを有し、第1のアップスケールされた画像内の各画素は第1の画素サブセット内のサブセットに含まれる、ステップと、当該特定のコンテンツを描画し、第1の解像度より高い第3の解像度を有する高解像度画像の第2の画素サブセットを生成するステップであって、第2の画素サブセット内の各サブセットは第2のサイズを有し、当該高解像度画像内の各画素は第2の画素サブセット内のサブセットに含まれ、第1の画素サブセットの量は第2の画素サブセットの量と同じであり、第1の画素サブセットの各々は第2の画素サブセットの各々に対応する、ステップと、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのプロパティの値を決定するステップと、当該対応する画素サブセットのプロパティの値を用いて、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットが属する1群のサブセットを決定するステップであって、各画素サブセットは1つのグループのみに含まれる、ステップと、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する最終画素サブセットを生成するためのフィルタを決定するステップであって、当該最終画素サブセットの全ての組合せは第2のアップスケールされた画像を表す、ステップとからなるアクションを含む方法で具体化することができる。当該態様の他の実施形態は、対応するコンピュータ・システム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータ・プログラムを含み、それぞれ当該方法のアクションを実施するように構成される。1つまたは複数のコンピュータからなるシステムを、動作において当該システムに当該アクションを実施させるソフトウェア、ファームウェア、ハードウェア、または当該システムにインストールされたそれらの組合せにより、特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータ・プログラムを、データ処理装置により実行されたとき、当該装置に当該アクションを実施させる命令を含めることで特定の動作またはアクションを実施するように構成することができる。
一般に、本明細書で説明した主題の1つの進歩的な態様を、特定のコンテンツを描画する第1の解像度を有する低解像度画像の第1の画素サブセットを生成するステップであって、第1の画素サブセット内の各サブセットは第1のサイズを有し、当該低解像度画像内の各画素は第1の画素サブセット内のサブセットに含まれる、ステップと、当該特定のコンテンツを描画する、第1の解像度より高い第2の解像度を有する高解像度画像の第2の画素サブセットを生成するステップであって、第2の画素サブセット内の各サブセットは第2のサイズを有し、当該高解像度画像内の各画素は第2の画素サブセット内のサブセットに含まれ、第1の画素サブセットの量は第2の画素サブセットの量と同じであり、第1の画素サブセットの各々は第2の画素サブセットの各々に対応する、ステップと、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのプロパティの値を決定するステップと、当該対応する画素サブセットのプロパティの値を用いて、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットが属する1群のサブセットを決定するステップであって、各画素サブセットは1つのグループのみに含まれる、ステップと、当該低解像度画像をアップスケーリングして、第1の解像度より高い第3の解像度を有する第1のアップスケールされた画像を生成するステップと、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する最終画素サブセットを生成するためのフィルタを決定するステップであって、当該最終画素サブセットの全ての組合せは第2のアップスケールされた画像を表す、ステップとからなるアクションを含むコンピュータにより実行されうる方法で具体化することができる。当該態様の他の実施形態は、対応するコンピュータ・システム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータ・プログラムを含み、それぞれ当該方法のアクションを実施するように構成される。1つまたは複数のコンピュータからなるシステムを、動作において当該システムに当該アクションを実施させるソフトウェア、ファームウェア、ハードウェア、または当該システムにインストールされたそれらの組合せにより、特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータ・プログラムを、データ処理装置により実行されたとき、当該装置に当該アクションを実施させる命令を含めることで特定の動作またはアクションを実施するように構成することができる。
一般に、本明細書で説明した主題の1つの進歩的な態様を、特定のコンテンツを描画する第1の解像度を有する低解像度画像を第1の解像度より高い第2の解像度にアップスケールして第1のアップスケールされた画像を生成するステップと、第1のアップスケールされた画像の第1の画素サブセットを生成するステップであって、第1の画素サブセット内の各サブセットは第1のサイズを有し、第1のアップスケールされた画像内の各画素は第1の画素サブセット内のサブセットに含まれる、ステップと、当該特定のコンテンツを描画する、第1の解像度より高い第3の解像度を有する高解像度画像の第2の画素サブセットを生成するステップであって、第2の画素サブセット内の各サブセットは第2のサイズを有し、当該高解像度画像内の各画素は第2の画素サブセット内のサブセットに含まれ、第1の画素サブセットの量は第2の画素サブセットの量と同じであり、第1の画素サブセットの各々は第2の画素サブセットの各々に対応する、ステップと、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのプロパティの値を決定するステップと、当該対応する画素サブセットのプロパティの値を用いて、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットが属する1群のサブセットを決定するステップであって、各画素サブセットは1つのグループのみに含まれる、ステップと、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する最終画素サブセットを生成するためのフィルタを決定するステップであって、当該最終画素サブセットの全ての組合せは第2のアップスケールされた画像を表す、ステップとからなるアクションを含むコンピュータにより実行されうる方法で具体化することができる。当該態様の他の実施形態は、対応するコンピュータ・システム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータ・プログラムを含み、それぞれ当該方法のアクションを実施するように構成される。1つまたは複数のコンピュータからなるシステムを、動作において当該システムに当該アクションを実施させるソフトウェア、ファームウェア、ハードウェア、または当該システムにインストールされたそれらの組合せにより、特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータ・プログラムを、データ処理装置により実行されたとき、当該装置に当該アクションを実施させる命令を含めることで特定の動作またはアクションを実施するように構成することができる。
以上のおよび他の実施形態はそれぞれ、場合によっては、以下の特徴の1つまたは複数を単体または組合せでを含むことができる。当該方法が、当該低解像度画像を受信するステップ、および当該高解像度画像を受信するステップとを含んでもよい。特定のコンテンツを描画する第1の解像度を有する当該低解像度画像を第1の解像度より高い第2の解像度にアップスケールして、第1のアップスケールされた画像を生成するステップは、当該低解像度画像を当該高解像度画像の第3の解像度にアップスケールするステップを含んでもよい。当該高解像度画像の第2の画素サブセットを生成するステップであって、第2の画素サブセット内の各サブセットが第2のサイズを有する、ステップが、当該高解像度画像の第2の画素サブセットを生成するステップであって、第2の画素サブセット内の各サブセットは第1のサイズを有する、ステップを含んでもよい。第1のアップスケールされた画像の第1の画素サブセットを生成するステップは、第1のアップスケールされた画像の第1の非重複画素サブセットを生成するステップを含んでもよい。第3の解像度を有する当該高解像度画像の第2の画素サブセットを生成するステップが、当該高解像度画像の第2の非重複画素サブセットを生成するステップを含んでもよい。第1のアップスケールされた画像の第1の画素サブセットを生成するステップは、第1のアップスケールされた画像の第1の重複画素サブセットを生成するステップを含んでもよい。第3の解像度を有する当該高解像度画像の第2の画素サブセットを生成するステップが、当該高解像度画像の第2の重複画素サブセットを生成するステップを含んでもよい。
幾つかの実装では、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのプロパティの値を決定するステップが、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのエッジの角度を決定するステップを含んでもよい。第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのプロパティの値を決定するステップが、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのエッジの派生物を決定するステップを含んでもよい。第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのプロパティの値を決定するステップが、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットおよび当該対応する画素サブセットに隣接する少なくとも1つの画素サブセットを用いて当該対応する画素サブセットのプロパティの値を決定するステップを含んでもよい。第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのプロパティの値を決定するステップが、当該対応する第1の画素サブセットおよび当該対応する画素サブセットに隣接する全ての画素サブセットを用いて、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのプロパティの値を決定するステップを含んでもよい。
幾つかの実装では、当該方法が、当該低解像度画像のアップスケーリングの前に当該低解像度画像を圧縮するステップを含んでもよい。当該方法が、当該高解像度画像の第2の画素サブセットを生成する前に当該高解像度画像を鋭敏化するステップを含んでもよい。当該方法が、当該1群のサブセットの各々に対して、当該グループ内の当該最終画素サブセットの各々に適用して、当該最終画素サブセットを用いて当該対応する第2の画素サブセットを近似する第2の最終画素サブセットを生成するための第2のフィルタを決定するステップであって、第2の最終画素サブセットの全ての組合せは第3のアップスケールされた画像を表す、ステップを含んでもよい。当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する当該最終画素サブセットを生成するための当該フィルタを決定するステップが、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用するための水平フィルタを決定するステップと、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用するための垂直フィルタを決定するステップとを含んでもよい。当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する当該最終画素サブセットを生成するための当該フィルタを決定するステップが、当該1群のサブセットの各々に対して、当該他のグループに対する当該フィルタと異なる当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用するための一意なフィルタを決定するステップを含んでもよい。
幾つかの実装では、データ処理装置は自動的に、当該低解像度画像をアップスケールして、第1のアップスケールされた画像を生成する。幾つかの実装では、システムが、データ処理装置およびコンピュータ可読記憶媒体を含むモバイル・デバイスを含んでもよい。幾つかの実装では、システムが、データ処理装置およびコンピュータ可読記憶媒体を含むパーソナル・コンピュータを含んでもよい。幾つかの実装では、プロセッサが、画像および信号プロセッサを含んでもよい。当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する最終画素サブセットを生成するための当該フィルタを決定するステップが、当該画素サブセットをアップスケールして、第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する最終画素サブセットを生成する単一フィルタを生成するステップを含んでもよい。
一般に、本明細書で説明した主題の1つの進歩的な態様を、特定のコンテンツを描画する第1の解像度を有する低解像度画像を第1の解像度より高い第2の解像度にアップスケールして、アップスケールされた画像を生成するステップと、当該アップスケールされた画像の画素サブセットを生成するステップであって、当該画素サブセット内の各サブセットはサイズを有し、当該アップスケールされた画像内の各画素は当該画素サブセット内のサブセットに含まれる、ステップと、当該画素サブセット内の各サブセットに対して、当該画素サブセットのプロパティの値を決定するステップと、当該画素サブセットのプロパティの値を用いて、当該画素サブセット内の各サブセットに対して、当該画素サブセットが属する1群のサブセットを決定するステップであって、各画素サブセットは1つのグループのみに含まれる、ステップと、当該1群のサブセットの各々に対して、フィルタを当該グループ内の画素サブセットの各々に適用して最終画素サブセットを生成するステップであって、当該最終画素サブセットの全ての組合せは第1の解像度より高い第3の解像度を有する当該コンテンツのより高い解像度画像を表す、ステップからなるアクションを含む方法で具体化することができる。当該態様の他の実施形態は、対応するコンピュータ・システム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータ・プログラムを含み、それぞれ当該方法のアクションを実施するように構成される。1つまたは複数のコンピュータからなるシステムを、動作において当該システムに当該アクションを実施させるソフトウェア、ファームウェア、ハードウェア、または当該システムにインストールされたそれらの組合せにより、特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータ・プログラムを、データ処理装置により実行されたとき、当該装置に当該アクションを実施させる命令を含めることで特定の動作またはアクションを実施するように構成することができる。
一般に、本明細書で説明した主題の1つの進歩的な態様を、デバイスにより、特定のコンテンツを描画する第1の解像度を有する低解像度画像を受信するステップと、当該低解像度画像の画素サブセットを生成するステップであって、当該画素サブセット内の各サブセットはサイズを有し、当該低解像度画像内の各画素は当該画素サブセット内のサブセットに含まれる、ステップと、当該画素サブセット内の各サブセットに対して、当該画素サブセットのプロパティの値を決定するステップと、当該画素サブセットのプロパティの値を用いて、当該画素サブセット内の各サブセットに対して、当該画素サブセットが属する1群のサブセットを決定するステップであって、各画素サブセットは1つのグループのみに含まれるステップと、当該低解像度画像を第1の解像度より高い第2の解像度に自動的にアップスケールして、アップスケールされた画像を生成するステップと、当該1群のサブセットの各々に対して、フィルタを当該グループ内の画素サブセットの各々に適用して最終画素サブセットを生成するステップであって、当該最終画素サブセットの全ての組合せは第1の解像度より高い第3の解像度を有する当該コンテンツのより高い解像度画像を表す、ステップとからなるアクションを含む方法で具体化することができる。当該態様の他の実施形態は、対応するコンピュータ・システム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータ・プログラムを含み、それぞれ当該方法のアクションを実施するように構成される。1つまたは複数のコンピュータからなるシステムを、動作において当該システムに当該アクションを実施させるソフトウェア、ファームウェア、ハードウェア、または当該システムにインストールされたそれらの組合せにより、特定の動作またはアクションを実施するように構成することができる。1つまたは複数のコンピュータ・プログラムを、データ処理装置により実行されたとき、当該装置に当該アクションを実施させる命令を含めることで特定の動作またはアクションを実施するように構成することができる。
以上のおよび他の実施形態はそれぞれ、場合によっては、以下の特徴の1つまたは複数を単体または組合せでを含むことができる。当該方法が、当該最終画素サブセットの全てを結合することで、第1の解像度より大きい第3の解像度を有する当該コンテンツのより高い解像度画像を生成するステップと、当該より高い解像度画像を提示のために提供するステップとを含んでもよい。当該方法が、当該画素サブセットおよび当該最終画素サブセットと結合するための重みを決定するステップと、当該画素サブセットおよび当該最終画素サブセットを当該重みと結合することにより最終画像を生成するステップとを含んでもよい。当該画素サブセットおよび当該最終画素サブセットを結合するための重みを決定するステップが、当該画素サブセットごとに重みを決定するステップを含んでもよい。当該画素サブセットごとに、当該重みを決定するステップが、当該画素サブセットごとに、当該画素サブセットが雑音のみを含むかどうかを判定するステップと、雑音のみを含む当該画素サブセットごとに、当該画素サブセットに対するゼロの重み値を決定するステップと、雑音のみを含む当該画素サブセットごとに、当該画素サブセットに対する非ゼロ重み値を決定するステップとを含んでもよい。当該画素サブセットごとに、当該重みを決定するステップが、当該画素サブセットごとに、当該画素サブセットおよび当該対応する最終画素サブセットの間の類似性を決定するステップと、当該画素サブセットごとに、当該画素サブセットおよび当該対応する最終画素サブセットの間の類似性を用いて重みを決定するステップとを含んでもよい。当該画素サブセットごとに、当該重みを決定するステップが、当該画素サブセットごとに、当該画素サブセットの構造および当該対応する最終画素サブセットの構造の間の類似性を決定するステップと、当該画素サブセットごとに、当該画素サブセットの構造および当該対応する最終画素サブセットの構造の間の類似性を用いて重みを決定するステップとを含んでもよい。当該画素サブセットごとに、当該画素サブセットの構造および当該対応する最終画素サブセットの構造の間の類似性を用いて当該重みを決定するステップが、当該画素サブセットごとに、閾値類似性を満たす類似性を有する画素サブセットごとに、当該対応するより高い解像度画像に対する最終画素サブセットを用い、当該閾値類似性を満たさない類似性を有する画素サブセットごとに、当該より高い解像度画像に対する当該画素サブセットを用いて、当該画素サブセットの構造および当該対応する最終画素サブセットの構造の間の類似性を当該閾値類似性と比較するステップを含んでもよい。
幾つかの実装では、当該方法が、当該低解像度画像を受信するステップを含んでもよい。特定のコンテンツを描画する第1の解像度を有する当該低解像度画像を第1の解像度より高い第2の解像度にアップスケールして当該アップスケールされた画像を生成するステップは、第3の解像度を有する当該アップスケールされた画像を生成するステップを含んでもよい。当該アップスケールされた画像の画素サブセットを生成するステップは、非重複画素サブセットを生成するステップを含んでもよい。当該アップスケールされた画像の画素サブセットを生成するステップは、重複画素サブセットを生成するステップを含んでもよい。当該画素サブセット内の各サブセットに対して、当該画素サブセットのプロパティの値を決定するステップが、当該画素サブセット内の各サブセットに対して、当該画素サブセット内のエッジの角度を決定するステップを含んでもよい。当該画素サブセット内の各サブセットに対して、当該画素サブセットのプロパティの値を決定するステップが、当該画素サブセット内の各サブセットに対して、当該画素サブセット内のエッジの派生物を決定するステップを含んでもよい。当該画素サブセット内の各サブセットに対して、当該画素サブセットのプロパティの値を決定するステップが、当該画素サブセット内の各サブセットに対して、当該夫々の画素サブセットのプロパティの値を、当該夫々の画素サブセットおよび当該夫々の画素サブセットに隣接する少なくとも1つの画素サブセットを用いて決定するステップを含んでもよい。当該画素サブセット内の各サブセットに対して、当該画素サブセットのプロパティの値を決定するステップが、当該画素サブセット内の各サブセットに対して、当該夫々の画素サブセットのプロパティの値を、当該夫々の画素サブセットおよび当該夫々の画素サブセットに隣接する全ての画素サブセットを用いて決定するステップを含んでもよい。
幾つかの実装では、当該方法が、当該1群のサブセットの各々に対して、第2のフィルタを当該グループ内の最終画素サブセットの各々に適用して第2の最終画素サブセットを生成するステップであって、第2の最終画素サブセットの全ての組合せは第3の解像度を有するコンテンツの第2のより高い解像度画像を表す、ステップを含んでもよい。当該1群のサブセットの各々に対して、当該フィルタを当該グループ内の画素サブセットの各々に適用して当該最終画素サブセットを生成するステップが、当該1群のサブセットの各々に対して、水平フィルタを当該グループ内の画素サブセットの各々に適用するステップと、当該1群のサブセットの各々に対して、垂直フィルタを当該グループ内の画素サブセットの各々に適用するステップとを含んでもよい。当該1群のサブセットの各々に対して、当該フィルタを当該グループ内の画素サブセットの各々に適用して当該最終画素サブセットを生成するステップが、当該1群のサブセットの各々に対して、他のグループに対するフィルタと異なる一意なフィルタを当該グループ内の画素サブセットの各々に適用するステップを含んでもよい。
幾つかの実装では、当該低解像度画像を第1の解像度より高い第2の解像度にアップスケールして、アップスケールされた画像を生成するステップは、1つまたは複数の第1のプロセッサにより、当該低解像度画像をアップスケールしてアップスケールされた画像を生成するステップを含んでもよい。当該1群のサブセットの各々に対して、当該フィルタを当該グループ内の画素サブセットの各々に適用して最終画素サブセットを生成するステップが、1つまたは複数の第2の異なるプロセッサによりおよび当該1群のサブセットの各々に対して、当該フィルタを当該グループ内の画素サブセットの各々に適用して当該最終画素サブセットを生成するステップを含んでもよい。当該1群のサブセットの各々に対して、当該フィルタを当該グループ内の画素サブセットの各々に適用して当該最終画素サブセットを生成するステップが、当該画素サブセットをアップスケールして当該最終画素サブセットを生成する単一フィルタを適用するステップを含んでもよい。
本明細書で説明した主題の別の進歩的な態様を、第1の解像度を有する第2の画像を受信するステップと、第2の画像を第2の解像度にアップスケールするステップと、本明細書で説明した任意の実装または態様に従う方法により決定されたフィルタを、当該アップスケールされた画像内の画素のサブセットに適用するステップとを含む、画像をアップスケールするコンピュータ実行型の方法で具体化することができる。
本明細書で説明した主題の別の進歩的な態様を、プロセッサにより実行されたとき、当該プロセッサに本明細書で説明した任意の態様または実装に従う方法を実施させるコンピュータ可読媒体で具体化することができる。本明細書で説明した主題の別の進歩的な態様を、データ処理装置と、当該データ処理装置とデータ通信し、かかる実行の際当該データ処理装置に本明細書で説明した任意の態様または実装に従う方法を含む動作を実施させる当該データ処理装置により実行可能な命令を格納するコンピュータ可読媒体とを備えたシステムで具体化することができる。本明細書で説明した主題の別の進歩的な態様を、本明細書で説明した任意の態様または実装に従う方法を実施するように構成されたデータ処理装置を備えたシステムで具体化することができる。
本明細書で説明した主題の別の進歩的な態様を、データ処理装置と、当該データ処理装置とデータ通信し、当該データ処理装置により実行可能な命令を格納し、かかる実行の際当該データ処理装置に、特定のコンテンツを描画する第1の解像度を有する低解像度画像を第1の解像度より高い第2の解像度にアップスケールして第1のアップスケールされた画像を生成するステップと、第1のアップスケールされた画像の第1の画素サブセットを生成するステップであって、第1の画素サブセット内の各サブセットは第1のサイズを有し、第1のアップスケールされた画像内の各画素は第1の画素サブセット内のサブセットに含まれる、ステップと、当該特定のコンテンツを描画し、第1の解像度より高い第3の解像度を有する高解像度画像の第2の画素サブセットを生成するステップであって、第2の画素サブセット内の各サブセットは第2のサイズを有し、当該高解像度画像内の各画素は第2の画素サブセット内のサブセットに含まれ、第1の画素サブセットの量は第2の画素サブセットの量と同じであり、第1の画素サブセットの各々は第2の画素サブセットの各々に対応する、ステップと、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該画素サブセットのプロパティの値を決定するステップと、当該対応する画素サブセットのプロパティの値を用いて、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットが属する1群のサブセットを決定するステップであって、各画素サブセットは1つのグループのみに含まれる、ステップと、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する最終画素サブセットを生成するためのフィルタを決定するステップであって、当該最終画素サブセットの全ての組合せは第2のアップスケールされた画像を表す、ステップとを含む動作を実施させる非一時的コンピュータ可読記憶媒体とを備えるシステムで具体化することができる。
本明細書で説明した主題の別の進歩的な態様を、は特定のコンテンツを描画する第1の解像度を有する低解像度画像を第1の解像度より高い第2の解像度にアップスケールして第1のアップスケールされた画像を生成するプロセッサと、データ処理装置と、当該データ処理装置とデータ通信し、当該データ処理装置により実行可能な命令を格納し、かかる実行の際当該データ処理装置に、第1のアップスケールされた画像の第1の画素サブセットを生成するステップであって、第1の画素サブセット内の各サブセットは第1のサイズを有し、第1のアップスケールされた画像内の各画素は第1の画素サブセット内のサブセットに含まれる、ステップと、当該特定のコンテンツを描画し、第1の解像度より高い第3の解像度を有する高解像度画像の第2の画素サブセットを生成するステップであって、第2の画素サブセット内の各サブセットは第2のサイズを有し、当該高解像度画像内の各画素は第2の画素サブセット内のサブセットに含まれ、第1の画素サブセットの量は第2の画素サブセットの量と同じであり、第1の画素サブセットの各々は第2の画素サブセットの各々に対応する、ステップと、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットのプロパティの値を決定するステップと、当該対応する画素サブセットのプロパティの値を用いて、第1の画素サブセット内のサブセットごとにまたは第2の画素サブセット内のサブセットごとに、当該対応する画素サブセットが属する1群のサブセットを決定するステップであって、各画素サブセットは1つのグループのみに含まれる、ステップと、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて当該対応する第2の画素サブセットを近似する最終画素サブセットを生成するためのフィルタを決定するステップであって、当該最終画素サブセットの全ての組合せは第2のアップスケールされた画像を表す、ステップとを含む動作を実施させる非一時的コンピュータ可読記憶媒体とを備えたシステムで具体化することができる。
本明細書で説明した主題を特定の実施形態で実装でき、以下の利点の1つまたは複数をもたらしうる。幾つかの実装では、以下で説明されるシステムおよび方法により、例えば、より少ない計算サイクル、より少ないメモリ、またはその両方を用いて、他のシステムおよび方法よりも効率的に高い品質の高解像度画像を生成することができる。例えば、以下で説明されるシステムは、以下で説明される方法を使用しない他のシステムよりも高速でありうる。幾つかの実装では、以下で説明されるシステムおよび方法により、他の、より低速なプロセスと同様な品質を有する高解像度画像を生成することができる。幾つかの実装では、アップスケーリングの間のハッシングの使用により、以下で説明されるシステムおよび方法は、最終画像において他のシステムよりも少ない雑音で画像をアップスケールすることができる。幾つかの実装では、アップスケーリングの間のハッシングの使用により、以下で説明されるシステムおよび方法は、他のシステムより鋭敏なアップスケールされた画像を生成することができる。幾つかの実装では、アップスケーリング・トレーニング・システムは、高解像度およびアップスケールされた低解像度画像、例えば、補間されたバージョンの当該低解像度画像の間のユークリッド距離を、線形アップスケーリング方法を改善するためのグローバルフィルタリング、例えば、バイリニア補間、バイキュービック補間、またはランチョス・リサンプリングを用いて、削減しうる。幾つかの実装では、トレーニングの間に低解像度画像を圧縮するアップスケーリング・トレーニング・システムは、ランタイムの間にアップスケールされた画像に対して圧縮アーチファクトの削減、エイリアシングの抑制、またはその両方を支援するフィルタを生成する。幾つかの実装では、以下で説明されるシステムおよび方法は、出力画像を生成するときに、アップスケールされた低解像度画像およびフィルタされたパッチを混合して、雑音を削減し、ハーローを削減し、画像を鋭敏化し、画像のコントラストを高め、例えば、強度またはコントラスト、またはこれらの複数の組合せにおける変化ではなく領域またはパッチの構造に基づく混合を可能としうる。
本明細書で説明した主題の1つまたは複数の実装の詳細を添付図面および以下の説明で説明する。当該主題の他の特徴、態様、および利点は詳細な説明、添付図面、および添付の特許請求の範囲から明らかになろう。1態様または実装と関連して説明した機能を別の態様または実装に組み込んでもよいことは理解されるべきである。
トレーニングおよびランタイムの間にハッシングを使用して画像をアップスケールするアップスケーリング・システムの例を示す。 アップスケーリング・トレーニング・システムの例である。 は、アップスケーリング・ランタイム・システムの例である。 は、アップスケーリング・ランタイム・システムの例である。 画像をアップスケールするためのコンピュータ・システムの例である。 画像アップスケーリングのためのフィルタを決定するためのプロセスの流れ図である。 高解像度画像を生成するためのプロセスの流れ図である。 本願で説明するコンピュータ実行型の方法と関連して使用されうるコンピューティング・システムのブロック図である。
様々な図面における同様な参照番号および指定は同様な要素を示す。
概要
図1は、トレーニングおよびランタイムの間にハッシングを使用して画像をアップスケールするアップスケーリング・システム100の例を示す。幾つかの実装では、当該アップスケーリング・システムは、他のシステムと比べてアップスケールされた画像の品質を保ちつつ、当該画像の処理時間を削減しうる。
例えば、トレーニングの間に、アップスケーリング・トレーニング・システムが、両方とも同一のコンテンツを描く低解像度バージョンの画像および高解像度バージョンの画像を使用して、当該アップスケーリング・プロセスに対する複数のフィルタを生成してもよい。当該アップスケーリング・トレーニング・システムは、低解像度画像を圧縮し、低解像度画像内に追加のアーチファクトを導入してもよく、高解像度画像を鋭敏化し、より鮮明な画像、またはその両方を生成し、トレーニングの間に生成されたフィルタを改善してもよい。
アップスケーリング・トレーニング・システムは、軽量アップスケーリング・プロセスを低解像度画像に実施して、例えば、アップスケールされた低解像度画像102を生成してもよい。例えば、アップスケーリング・トレーニング・システムはバイリニア補間を低解像度画像に実施してもよい。当該アップスケールされた低解像度画像102は、トレーニングの間に使用される対応する高解像度画像104と同一のサイズ、例えば、同数の画素(A×Bの画素)を有する。
アップスケーリング・トレーニング・システムはアップスケールされた低解像度画像102、例えば、軽量アップスケールされた低解像度画像、および高解像度画像104を複数のパッチ106a−dおよび108a−dにそれぞれ分割し、各特定の画像からのパッチは同一のサイズ(例えば、同数の画素(A1×B1の画素))であり、アップスケールされた低解像度画像102に対するパッチの数は高解像度画像104に対するパッチの数と同一である。
アップスケーリング・トレーニング・システムは、画像のうち1つに対するパッチまたは当該画像の両方に対するパッチの何れかのパッチの各々のプロパティを決定する。幾つかの例では、アップスケーリング・トレーニング・システムは両方ではなく当該画像のうち1つ、例えば、アップスケールされた低解像度画像または高解像度画像からパッチに対するプロパティを決定するのみであり、アップスケーリング・トレーニング・システムは、他の画像からの対応するパッチが当該プロパティに対して同一の値を有すると仮定する。例えば、アップスケールされた低解像度画像の左上側からのパッチ106c、例えば、10×10の画素であるパッチを分析するとき、アップスケーリング・トレーニング・システムは、当該パッチ内で表されたエッジがおおよそ45度の角度を有するかまたは当該エッジの角度の微分が10であると判定してもよい。アップスケーリング・トレーニング・システムはついで、低解像度画像102のパッチ106cおよび高解像度画像104からのパッチ108cの両方に対して当該プロパティの値を使用する。幾つかの実装では、アップスケーリング・トレーニング・システムはパッチ108a−dに対する当該プロパティを高解像度画像104から決定する。
アップスケーリング・トレーニング・システムは、当該プロパティの同一の値を有するパッチの各々に対して、高解像度画像104の対応するパッチ108a−dを近似するためにアップスケールされた低解像度画像102のパッチ106a−dを最も近くアップスケールするフィルタを決定する。アップスケーリング・トレーニング・システムは、閾値が満たされトレーニングが完了するまで、同一のプロパティ値を有するパッチの各々に対してこのプロセスを実施する。当該フィルタは、どのように低解像度画像102内のパッチ106a−dからの画素を修正して高解像度画像104の対応するパッチ108a−d内の画素を近似するかのマッピングであってもよい。
例えば、アップスケールされた低解像度画像102からのパッチ106a−cの各々のプロパティの値が同一である場合、アップスケーリング・トレーニング・システムは、パッチ106a−cをアップスケールして対応するパッチ108a−cを高解像度画像104から近似するときに使用するための単一のフィルタを決定する。パッチ106dのプロパティの値がパッチ106a−cの各々に対するプロパティの値と異なるとき、アップスケーリング・トレーニング・システムは、パッチ106a−cに使用されるフィルタと比較して、パッチ108dを高解像度画像104から近似するために使用するためのパッチ106dに対する異なるフィルタを決定する。
アップスケーリング・ランタイム・システムはランタイムの間に、決定されたフィルタを使用して、画像をアップスケールする。例えば、アップスケーリング・ランタイム・システムが低解像度画像を受信し、トレーニングの間に実施されるのと同一の軽量アップスケーリング・プロセスを実施して、アップスケールされた画像を生成する。アップスケーリング・ランタイム・システムは、アップスケールされた画像をパッチに分割して、トレーニングの間に実施されるプロセスと同様に、当該パッチの各々のプロパティを決定する。アップスケーリング・ランタイム・システムは、特定のプロパティ値またはプロパティ値の範囲を有するパッチの各々に対して、トレーニングの間に決定されたものと同一の値または範囲の値を用いて、フィルタを当該パッチに適用し、フィルタされたパッチを生成する。アップスケーリング・ランタイム・システムは当該フィルタされたパッチの全てを結合して、最終画像を生成する。アップスケーリング・ランタイム・システムは、当該最終画像を別のシステム、例えば、ユーザへの表示のために提供してもよく、または、例えば、追加の処理または表示のために当該最終画像を使用してもよい。
例示的なアップスケーリング・トレーニング・システム
図2は、アップスケーリング・トレーニング・システム200の例である。アップスケーリング・トレーニング・システム200が低解像度画像202および高解像度画像210を受信し、画素のパッチに対するフィルタを、例えば、最小二乗ソルバ220a−dを用いて学習する。アップスケーリング・トレーニング・システム200は、画像をアップスケールする際に使用するためにアップスケーリング・ランタイム・システムに、例えば、以下でより詳細に説明される図3AおよびBのアップスケーリング・ランタイム・システムに、当該フィルタを提供する。
アップスケーリング・トレーニング・システム200は低解像度画像202をアップスケールする206。アップスケーリング・トレーニング・システム200は任意の適切な方法を使用して、低解像度画像202のアップスケーリング206を行ってもよい。例えば、アップスケーリング・トレーニング・システム200は低解像度画像202のバイリニア補間、バイキュービック補間、またはランチョス・リサンプリングを実施してもよい。
アップスケーリング・トレーニング・システム200は、低解像度画像202を、高解像度画像210と同一である解像度にアップスケールする206。例えば、アップスケーリング・トレーニング・システム200は、低解像度画像202をアップスケールするとき、低解像度画像202のサイズを、2倍、3倍、または4倍増やす。
アップスケーリング・トレーニング・システム200はアップスケールされた低解像度画像内の画素のパッチを生成する。幾つかの例では、アップスケールされた低解像度画像内の画素のパッチは非重複であり、例えば、各画素は1つパッチ内のみにある。幾つかの例では、アップスケーリング・トレーニング・システム200は重複するパッチを生成する。例えば、アップスケーリング・トレーニング・システム200は夫々の画素に集まる各画素に対するパッチを生成してもよい。
アップスケーリング・トレーニング・システム200は、当該パッチに対する勾配の角度または当該パッチに対する当該勾配の角度の微分のような、当該パッチの各々のプロパティの値を決定する。アップスケーリング・トレーニング・システム200は、atan2関数のような、当該プロパティの値を決定するための任意の適切な方法を使用して、パッチに対する画像勾配の角度を決定してもよい。アップスケーリング・トレーニング・システム200は、パッチの任意の適切な幾何的特徴を当該プロパティとして使用してもよい。
例えば、アップスケーリング・トレーニング・システム200は、N×N画素のパッチ、またはN×M画素のパッチを生成し、当該パッチの各々に対して、勾配の角度または勾配の角度の微分を決定してもよい。幾つかの例では、アップスケーリング・トレーニング・システム200は、例えば、角度αに対するフィルタはα+180に対するフィルタと同一であるので、単位円の対称的な性質に起因して、モジュロ180関数を取得された角度値に適用してもよい。
アップスケーリング・トレーニング・システム200は、画素のパッチをアップスケールされた低解像度画像202に対するバケット216a−dに分割する208。例えば、アップスケーリング・トレーニング・システム200は、当該プロパティに対する異なる値ごとのフィルタの代わりに、当該プロパティに対する同様な値を有するパッチ216a−dのバケットごとに単一フィルタを決定して、例えば、メモリおよび処理時間のようなランタイムの間に、要求された計算リソースを削減する。
幾つかの例では、アップスケーリング・トレーニング・システム200は量子化ステップを適用して、画素をバケット216a−dにを分割し208、例えば、計算の削減、アーチファクトの削減またはその両方を行ってもよい。例えば、勾配の角度を使用するとき、アップスケーリング・トレーニング・システム200は、1、例えば、各角度が自身のバケット216a−dを有するものから、180、例えば、各角度が同一のバケット内にあるものまでの量子化因子をを選択してもよい。幾つかの実装では、アップスケーリング・トレーニング・システム200は、7より小さくない量子化値、好ましくは23の量子化値を使用してもよい。幾つかの例では、アップスケーリング・トレーニング・システム200は7の量子化値を使用してもよい。幾つかの例では、アップスケーリング・トレーニング・システム200は7と23の間の量子化値を使用してもよい。アップスケーリング・トレーニング・システム200は当該量子化値を、ランタイム・アップスケーリング・システムにより生成された結果の品質と当該ランタイム・アップスケーリング・システムの実行時間との間のトレードオフとして選択してもよい。例えば、アップスケーリング・システムは、当該アップスケーリング・プロセスをもはや実施しない間に、より高品質な結果に対してより大きい量子化値を使用してもよい。
アップスケーリング・トレーニング・システム200は画素のパッチを高解像度画像210に対するバケット218a−dに分割する214。幾つかの例では、高解像度画像210内の画素のパッチは非重複であり、例えば、各画素は1つのパッチ内にのみ存在する。幾つかの例では、高解像度画像210内の画素のパッチは重複する。例えば、各画素は複数のパッチに含まれてもよい。アップスケーリング・トレーニング・システム200は、アップスケールされた低解像度画像202に対するバケット216a−dを生成するために使用される方法と同様な方法を使用して、高解像度画像210に対するバケット218a−dを生成する。
アップスケーリング・トレーニング・システム200は、1つまたは複数の最小二乗ソルバ220a−dを使用して、アップスケールされた低解像度画像からのパッチを使用して高解像度画像210の対応するパッチを近似するフィルタを決定する。例えば、アップスケーリング・トレーニング・システム200は、アップスケールされた低解像度画像に対するバケット216a−dのうち特定の1つ内のパッチの各々に適用して高解像度画像210に対するバケット218a−dのうち対応する1つにおける当該対応するパッチの近似を生成するためのフィルタまたはマッピングを決定する。
アップスケールされた低解像度画像に対して第1のバケット216a内のパッチを分析するとき、アップスケーリング・トレーニング・システム200は、第1のバケット216a内のパッチの各々に適用するための特定のフィルタを決定してもよい。当該特定のフィルタは、フィルタの第1のバケット216a内のパッチへの適用の出力の、高解像度画像210からのパッチの対応する第1のバケット218a内の対応するパッチの類似性を最大化する。アップスケーリング・トレーニング・システム200は、アップスケールされた低解像度画像に対する他のバケット216b−dおよび高解像度画像210に対するバケット218b−dの各々に対して同様な動作を実施する。
幾つかの実装では、アップスケーリング・トレーニング・システム200は、最小二乗ソルバ220aを使用して、アップスケールされた低解像度画像をパッチに分割しアップスケールされた低解像度パッチの各々に対する行列Aを構築することで、バケットqに対するフィルタhを学習する。アップスケーリング・トレーニング・システム200は高解像度画像210をパッチに分割し、当該高解像度パッチの各々に対するベクトルbを構築する。例えば、アップスケーリング・トレーニング・システム200は低解像度画像202を辞書順で、行または列によりスキャンし、行列Aを生成してもよい。アップスケーリング・トレーニング・システム200は複数の行列Aを生成して、例えば、qによりインデックス化されたブロック内の式の線形系を形成してもよい。アップスケーリング・トレーニング・システム200による複数の行列Aqの使用は、アップスケーリング・トレーニング・システム200が一度に処理するデータの量を削減しうる。アップスケーリング・トレーニング・システム200は高解像度画像210、行または列によりスキャンして、ベクトルbを生成してもよい。アップスケーリング・トレーニング・システム200が複数の行列Aを生成するとき、アップスケーリング・トレーニング・システムは、複数のベクトルbを行列Aの各々に対して1つ生成してもよい。
アップスケーリング・トレーニング・システム200は、バケットqに対して、夫々のパッチの決定されたプロパティを用いてバケットqに属するアップスケールされた低解像度パッチに対する行列Aを決定する。アップスケーリング・トレーニング・システム200は、バケットqに対して、夫々のパッチに対する決定されたプロパティを用いてバケットqに属する高解像度パッチに対するベクトルbを決定する。幾つかの例では、当該夫々のパッチに対するプロパティは、他の画像からの対応するパッチのプロパティ、例えば、対応する低解像度画像パッチに対するバケットを決定するときの高解像度画像パッチのプロパティであってもよい。
アップスケーリング・トレーニング・システム200は式(1)、同一のバケット内にある行列Aおよびベクトルbに対する値を用いてフィルタhを決定してもよい。
Figure 0006789331
幾つかの実装では、アップスケーリング・トレーニング・システム200は、行列Aの1つまたは複数の行を別々にまたは並列に処理してもよい。例えば、アップスケーリング・トレーニング・システム200は、
Figure 0006789331
またはその両方の決定を、別々におよび潜在的に並列に処理されうる部分に分割してもよい。この処理は、当該フィルタを決定するためにアップスケーリング・トレーニング・システム200により要求されるメモリの量を削減することができ、アップスケーリング・トレーニング・システム200が当該決定に対するタスクを並列にまたは両方を処理することを可能としうる。例えば、アップスケーリング・トレーニング・システム200は
Figure 0006789331
を決定してもよい。アップスケーリング・トレーニング・システム200は
Figure 0006789331
を決定してもよい。
幾つかの実装では、アップスケーリング・トレーニング・システム200は、入力画像、例えば、低解像度画像および高解像度画像の1つのペアを用いて、最小二乗ソルバ220a−dを用いてフィルタを学習する。幾つかの実装では、アップスケーリング・トレーニング・システム200は、低解像度および高解像度画像の複数のペアを用いて、最小二乗ソルバ220a−dを用いて当該フィルタを学習する。画像の複数のペアが使用される場合、画像のペア内の2つの画像が互いと同一のコンテンツまたは主題を描画するが、画像の異なるペアが異なるコンテンツを互いに対して描画してもよい。
幾つかの実装では、アップスケーリング・トレーニング・システム200が外れ角度を除去する。例えば、アップスケーリング・トレーニング・システム200が任意の適切なスペックル除去、例えば、雑音削減の方法を使用してアーチファクトを削減する。アップスケーリング・トレーニング・システム200はパッチをスペックル除去して、パッチ内のアーチファクト、矛盾する角度、またはその両方を削減してもよい。
幾つかの実装では、アップスケーリング・トレーニング・システム200はパッチ内の各画素に対するフィルタを決定し、当該決定されたフィルタを結合して、パッチ全体に対するフィルタを決定してもよい。例えば、アップスケーリング・トレーニング・システム200は当該決定されたフィルタを平均することで平均フィルタを決定してもよい。
幾つかの実装では、アップスケーリング・トレーニング・システム200は、低解像度画像202をアップスケール206する前に低解像度画像202を圧縮する204。アップスケーリング・トレーニング・システム200は、低解像度画像202を圧縮して204、アーチファクトを低解像度画像202に導入して、ランタイムの間にアーチファクトを低解像度画像からより良く除去するフィルタを学習してもよい。例えば、アップスケーリング・トレーニング・システム200は低解像度画像202を圧縮して、最小二乗ソルバ220a−dを用いて、圧縮された低解像度画像からそれらの未圧縮の高解像度バージョンへのマッピングを生成するフィルタを学習する。これらの実装において、アップスケーリング・トレーニング・システム200は当該圧縮された低解像度画像をアップスケールし、アップスケールされた、圧縮された低解像度画像に対するパッチを生成する。
幾つかの実装では、アップスケーリング・トレーニング・システム200は、画素をバケットに分割する208前に、アップスケールされた低解像度画像を平滑化する。例えば、アップスケーリング・トレーニング・システム200はアップスケールされた低解像度画像を平滑化して、雑音、エイリアシング、圧縮アーチファクト、またはこれらの複数の組合せを削減する。アップスケーリング・トレーニング・システム200は任意の適切な平滑化アルゴリズムを使用して、アップスケールされた低解像度画像を平滑化してもよい。例えば、アップスケーリング・トレーニング・システム200は、2つの線形フィルタを使用してアップスケールされた低解像度画像、または1つのフィルタを平滑化してもよい。
幾つかの実装では、アップスケーリング・トレーニング・システム200は、高解像度画像をバケット218a−dに分割する214前に、高解像度画像210を鋭敏化する。例えば、アップスケーリング・トレーニング・システム200は高解像度画像210を鋭敏化して、高解像度画像210への雑音、劣化、ハーロー、またはこれらの複数の組合せを削減する。アップスケーリング・トレーニング・システム200は任意の適切な方法を使用して、高解像度画像を鋭敏化してもよい210。アップスケーリング・トレーニング・システム200は当該鋭敏化された高解像度画像をパッチに分割し214、当該生成された鋭敏化された高解像度パッチを用いて処理を継続する。
例示的なアップスケーリング・ランタイム・システム
図3AおよびBは、アップスケーリング・ランタイム・システム300a−bの例である。アップスケーリング・ランタイム・システム300a−bは、アップスケーリング・トレーニング・システム200により生成されたフィルタを使用して、低解像度画像302をより高い解像度画像、例えば、出力画像312にアップスケールする。例えば、アップスケーリング・ランタイム・システム300a−bは、アップスケーリング・トレーニング・システム200により使用される同一のアップスケーリング方法、例えば、同一の高速な、軽量な、またはその両方の、アップスケーリング・トレーニング・システム200により使用されるアップスケーリング方法を用いて、低解像度画像302をアップスケールする304。
アップスケーリング・ランタイム・システム300a−bは全体として低解像度画像302をアップスケールし、例えば、個々のパッチまたは画素はアップスケールしない。例えば、アップスケーリング・ランタイム・システム300aは低解像度画像302内のパッチの各々に対するフィルタを決定し、当該決定されたフィルタの各々を低解像度画像302内のパッチに同時に適用する。
アップスケーリング・ランタイム・システム300a−bは、画素のパッチをアップスケールされた低解像度画像から生成し、アップスケーリング・トレーニング・システム200により使用されるのと同一の方法を用いて、画素のパッチをバケットに分割する306。例えば、アップスケーリング・ランタイム・システム300a−bは、画素のパッチの各々のプロパティをアップスケールされた低解像度画像、例えば、勾配の角度または当該角度の微分から決定し、パッチを、同様なプロパティを有する他のパッチを有するバケットに、例えば、量子化値を用いてグループ化する。
アップスケーリング・ランタイム・システム300a−bはフィルタを当該バケットの各々内の画素のパッチに適用する308a−d。例えば、アップスケーリング・ランタイム・システム300a−bは同一のバケット内のパッチのプロパティを使用して、ルックアップテーブルにアクセスし、当該バケット内のパッチの各々に適用すべきフィルタを決定する。
アップスケーリング・ランタイム・システム300a−bは当該フィルタされたパッチを集約して出力画像312を生成する310。アップスケーリング・ランタイム・システム300a−bは、ユーザ、例えば、モバイル・デバイスのディスプレイ上に提示するために、出力画像312を別のシステムまたはアプリケーションに提供してもよい。
幾つかの実装では、図3Aに示すアップスケーリング・ランタイム・システム300aは、重みを用いてアップスケールされた低解像度画像を集約されたフィルタされたパッチと混合して、出力画像312を生成してもよい。例えば、アップスケーリング・ランタイム・システム300aは方法、例えば、センサス変換を使用して、画素パッチが雑音または構造化されたコンテンツ、例えば、幾何的形状を含む程度を反映するランダム性重み314を決定してもよい。アップスケーリング・ランタイム・システム300aは、両方を含めてゼロと1の間の重み値を使用してもよい。
アップスケーリング・ランタイム・システム300aはランダム性重みを使用して、アップスケールされた低解像度画像および集約されたフィルタされたパッチの重み付き平均316を生成する。アップスケーリング・ランタイム・システム300aは当該ランダム性重みを使用して、低解像度画像302のパッチが雑音を含むかを決定し、雑音を含む低解像度画像の領域に対するアップスケールされた低解像度画像からパッチを選択する。アップスケーリング・ランタイム・システム300aはランダム性重みを使用して、低解像度画像302のパッチが構造化されたコンテンツ、例えば、幾何的形状を含むかを判定し、構造化されたコンテンツを含む低解像度画像の領域に対するフィルタされたパッチを使用する。アップスケーリング・ランタイム・システム300aは、低解像度画像302、アップスケールされた低解像度画像、フィルタされたパッチ、またはこれらの複数の組合せを分析して、画像のパッチまたは領域が雑音または構造化されたコンテンツを含むかどうかを判定してもよい。
アップスケーリング・ランタイム・システム300aは選択されたパッチを集計して、出力画像312を生成する。例えば、アップスケーリング・ランタイム・システム300aは、選択されたアップスケールされたパッチおよび選択されたフィルタされたパッチを集計して、出力画像312を生成する。
アップスケーリング・ランタイム・システム300aは任意の適切な方法を使用して、低解像度画像302のパッチまたは領域の特徴およびこれらのパッチまたは領域に対するランダム性重みを決定してもよい。アップスケーリング・ランタイム・システム300aは、当該ランダム性重みを用いて、アップスケールされた低解像度画像の部分および集約されたフィルタされたパッチを結合してもよい。アップスケーリング・ランタイム・システム300aは、低解像度画像302内の各領域またはパッチに対するランダム性重みを決定する。
幾つかの実装では、図3Bに示すアップスケーリング・ランタイム・システム300bは、変化測定値を用いてアップスケールされた低解像度画像を集約されたフィルタされたパッチと混合して、出力画像312を生成してもよい。例えば、アップスケーリング・ランタイム・システム300bは、アップスケールされた低解像度画像内の領域またはパッチおよび集約されたフィルタされたパッチの間の変化測定値を決定し、出力画像312の夫々の部分に対して使用するための領域またはパッチを夫々の画像から選択してもよい。
幾つかの例では、アップスケーリング・ランタイム・システム300bは、アップスケールされた低解像度画像および特定の領域または特定のパッチに対する集約されたフィルタされたパッチの間の変化の量が閾値量を満たさないと判定し、当該集約されたフィルタされたパッチからの夫々の領域またはパッチを使用して出力画像312を生成してもよい。アップスケーリング・ランタイム・システム300bが、アップスケールされた低解像度画像と特定の領域または特定のパッチに対する集約されたフィルタされたパッチとの間の変化の量が閾値量を満たすと判定したとき、アップスケールされた低解像度画像からの夫々の領域またはパッチを使用して出力画像312を生成する。例えば、2つの画像内の領域またはパッチが同様であるとき、アップスケーリング・ランタイム・システム300bは集約されたフィルタされたパッチからの夫々の領域またはパッチを使用し、当該2つの画像内の領域またはパッチが実質的に異なるとき、アップスケーリング・ランタイム・システムはアップスケールされた低解像度画像からの夫々の領域またはパッチを使用する。
アップスケーリング・ランタイム・システム300bは、アップスケールされた低解像度画像内の各パッチに対するセンサス変換318aおよび集約されたフィルタされたパッチ内の各パッチに対するセンサス変換318bを決定して、当該パッチの各々に対して2つのベクトルを生成し、センサス変換318a−bの各々に対して1つのベクトルを生成してもよい。アップスケーリング・ランタイム・システム300bは、アップスケールされた低解像度画像からのパッチに対するベクトルから変化した幾つかのビットを決定またはカウントする320ために当該2つのベクトルを、集約されたフィルタされたパッチからのフィルタされたパッチに対するベクトルと比較する。アップスケーリング・ランタイム・システム300bは、当該比較を使用して、当該パッチに対するビットの数を用いて、アップスケールされた低解像度画像および集約されたフィルタされたパッチから当該領域またはパッチの重み付き平均を決定し322、出力画像312を生成する。
変更されたビットの数が閾値を満たさない、例えば、当該閾値より小さく、および当該2つのパッチまたは領域が同様であるとき、アップスケーリング・ランタイム・システム300bは、出力画像312に対して当該フィルタされた領域またはパッチを使用する。変更されたビットの数が閾値を満たさない、例えば、当該閾値以上であり、当該2つのパッチまたは領域が同様でないとき、アップスケーリング・ランタイム・システム300bはアップスケールされた低解像度画像領域またはパッチを出力画像312に対して使用する。
例示的なアップスケーリングコンピュータ・システム
図4は、例えば、トレーニングに、ランタイム、またはその両方の間に画像をアップスケールするためのコンピュータ・システム400の例である。幾つかの実装では、当該フィルタを生成する同一のコンピュータ・システム400はランタイムの間に当該フィルタを使用してもよい。幾つかの実装では、第1のコンピュータ・システムはトレーニングの間に当該フィルタを生成し、画像をアップスケールためのランタイム利用のために、当該フィルタを、第1のコンピュータ・システムと異なるコンピュータ・システムである第2のコンピュータ・システムに提供する。
コンピュータ・システム400は特定のスケールに対して1組のフィルタ416を生成して、低解像度画像を適用してもよい。例えば、コンピュータ・システム400は、2倍アップスケールするときに使用するための第1の1組のフィルタおよび3倍または4倍アップスケールするときに使用するための第2の1組のフィルタを生成してもよい。
コンピュータ・システム400は、トレーニングの間にメモリ410から低解像度画像412および高解像度画像414を受信するプロセッサ402を含む。プロセッサ402はアップスケールされた低解像度画像を低解像度画像から生成し、アップスケールされた低解像度画像のパッチおよび高解像度画像414のパッチを生成し、低解像度画像パッチに適用して当該対応する高解像度画像パッチを近似するためのフィルタ416を決定する。プロセッサ402はフィルタ416をメモリ410に格納する。メモリ410が、単一のメモリまたは複数のメモリを含んでもよい。
ランタイムプロセスの間に、コンピュータ・システム400内のプロセッサ402は、フィルタ416を低解像度画像412、例えば、一般にトレーニングの間に使用されるものとは異なる低解像度画像からのパッチに適用して、フィルタされたパッチを生成する。プロセッサ402は当該フィルタされたパッチを集計して、出力画像418を生成する。プロセッサ402は、任意の適切な方法を使用して、当該パッチおよびフィルタ416を用いて出力画像418を生成してもよい。
プロセッサ402は出力画像418、または出力画像418への参照を、出力画像418のディスプレイ406への提示をもたらすビデオ・プロセッサ404に提供してもよい。幾つかの例では、ビデオ・プロセッサ404はプロセッサ402の一部であってもよくまたはプロセッサ402はビデオ・プロセッサ404の機能を実施してもよい。
幾つかの実装では、コンピュータ・システム400は、画像を処理する画像信号プロセッサ408を含む。例えば、画像信号プロセッサ408は低解像度画像412を、例えば、ディスプレイ406の解像度または別の解像度に自動的にアップスケールしてもよい。
これらの実装において、プロセッサ402は低解像度画像412をアップスケールする必要はなく、アップスケールされた低解像度画像を画像信号プロセッサ408から受信してもよい。例えば、コンピュータ・システム400は、低解像度画像412をディスプレイ406上で提示するためのコマンドを受信してもよい。当該コマンドは、低解像度画像412を提示するためのコンピュータ・システム400のユーザから受信した入力に基づいてもよい。
当該コマンドに応答して、画像信号プロセッサ408は低解像度画像412をメモリ410から受信し、低解像度画像をアップスケールして、アップスケールされた低解像度画像を生成する。プロセッサ402は、アップスケールされた低解像度画像を画像信号プロセッサ408から受信し、アップスケールされた低解像度画像に対する画素パッチを生成する。プロセッサ402はフィルタをアップスケールされた低解像度画像にを適用して、出力画像418を生成する。
幾つかの例では、プロセッサ402は、単一のフィルタを低解像度画像412に適用して、出力画像418を生成してもよい。これらの例において、当該単一フィルタは、別々の初期の、例えば、軽量なアップスケールのステップなしに、初期アップスケーリングおよびフィルタリングの両方を低解像度画像412に単一のステップで適用する。
プロセッサ402が低解像度画像のパッチまたは領域を重み付けし、フィルタされたパッチをアップスケールされたパッチと結合すると、プロセッサ402は、単一フィルタを低解像度画像412、即ち、アップスケールされていないバージョンの低解像度画像412の各パッチに適用し、アップスケールされた低解像度画像を画像信号プロセッサ408から受信してもよい。プロセッサ402は、画像信号プロセッサ408から受信されたアップスケールされた低解像度画像に対するパッチを決定し、当該パッチの各々に対して重みを決定する。プロセッサ402はついで、画像信号プロセッサ408から受信されたアップスケールされた低解像度画像に対するパッチを、当該単一フィルタを用いて生成されたフィルタされたパッチと結合する。幾つかの例では、プロセッサ402は自動的に、低解像度画像412をアップスケールする。
コンピュータ・システム400がアップスケーリング・トレーニング・システムでありアップスケーリング・ランタイム・システムではない実装において、コンピュータ・システム400はビデオ・プロセッサ404、ディスプレイ406、画像信号プロセッサ408、出力画像418、またはこれらの複数を含まないかもしれない。アップスケーリング・トレーニング・システムではなくアップスケーリング・ランタイム・システム内のコンピュータ・システム400である実装では、当該コンピュータ・システムは高解像度画像を含まないかもしれない。幾つかの例では、アップスケーリング・ランタイム・システムはビデオ・プロセッサ404、ディスプレイ406、またはその両方を含まないかもしれない。
コンピュータ・システム400に言及したが、当該アップスケーリング・システムの実装が、例えば、クラウドコンピューティングサービスとして展開された1組のリモートコンピュータを含む、互いと関連して動作する単一のコンピュータまたは複数のコンピュータを使用してもよい。幾つかの例では、コンピュータ・システム400はパーソナル・コンピュータまたはモバイル・デバイス、例えば、スマートフォン、またはウェラブルデバイスであってもよい。
例示的なトレーニング・プロセス・フロー
図5は、画像アップスケーリングのためのフィルタを決定するためのプロセス500の流れ図である。例えば、プロセス500を、図4で示したコンピュータ・システム400により使用されることができる。
アップスケーリング・トレーニング・システムが、特定のコンテンツを描画する第1の解像度を有する低解像度画像と、当該特定のコンテンツを描画する、第1の解像度より高い第2の解像度を有する高解像度画像とを受信する(502)。幾つかの例では、アップスケーリング・トレーニング・システムは、高解像度画像を受信し、低解像度画像を高解像度画像から、例えば、任意の適切な方法を用いて生成してもよい。幾つかの実装では、当該アップスケーリング・システムは低解像度画像および高解像度画像を同一の初期画像から生成してもよい。
アップスケーリング・トレーニング・システムは低解像度画像を圧縮する(504)。例えば、アップスケーリング・トレーニング・システムは、ロッシー画像圧縮方法のような画像圧縮方法を使用して、アーチファクトを低解像度画像に導入する。
アップスケーリング・トレーニング・システムは高解像度画像を鋭敏化する(506)。アップスケーリング・トレーニング・システムは任意の適切な鋭敏化システムを使用して高解像度画像を鋭敏化してもよい。
アップスケーリング・トレーニング・システムは低解像度画像を第1の解像度より高い第3の解像度にアップスケールして第1のアップスケールされた画像を生成する(508)。第3の解像度は第2の解像度と同一であってもよい。例えば、アップスケーリング・トレーニング・システムが100×100の解像度を有する低解像度画像および200×200の高解像度画像を受信する。アップスケーリング・トレーニング・システムは低解像度画像を一般的な補間方法、例えば、軽量補間方法を用いて200×200にアップスケールする。アップスケーリング・トレーニング・システムは当該圧縮された低解像度画像をアップスケールしてもよい。
アップスケーリング・トレーニング・システムは第1のアップスケールされた画像の第1の画素サブセットを生成する。第1の画素サブセット内の各サブセットは第1のサイズを有し、第1のアップスケールされた画像内の各画素は第1の画素サブセット内のサブセットに含まれる(510)。アップスケーリング・トレーニング・システムは高解像度画像の第2の画素サブセットを生成する。第2の画素サブセット内の各サブセットは第2のサイズを有し、高解像度画像内の各画素は第2の画素サブセット内のサブセットに含まれる(512)。例えば、アップスケーリング・トレーニング・システムは第1のアップスケールされた画像に対する画素のパッチおよび高解像度画像に対する画素のパッチを生成する。アップスケーリング・トレーニング・システムは第2の画素サブセットを当該鋭敏化された高解像度画像から生成してもよい。当該画素サブセットの各々は連続的な画素を含み、例えば、特定のサブセット内の画素の全ては同一のサブセット内の少なくとも1つの他の画素に隣接する。幾つかの例では、特定のサブセット内の各画素は当該特定のサブセット内の少なくとも2つの他の画素に隣接する。
アップスケーリング・トレーニング・システムは、当該画素サブセット内の各サブセットに対して、当該画素サブセットのプロパティの値を決定する(514)。アップスケーリング・トレーニング・システムは幾何的プロパティの任意の適切な値を決定してもよい。アップスケーリング・トレーニング・システムは第1の画素サブセット内のサブセットごとにプロパティの値を決定してもよい。アップスケーリング・トレーニング・システムは第2の画素サブセット内のサブセットごとにプロパティの値を決定してもよい。幾つかの例では、アップスケーリング・トレーニング・システムは、第1の画素サブセットまたは第2の画素サブセットの両方ではなく何れかの中の当該サブセットに対してプロパティの値を決定する。
幾つかの実装では、アップスケーリング・トレーニング・システム、および後のランタイム・システムは当該画素サブセット内のエッジのコントラストを使用してもよい。例えば、当該アップスケーリング・システムは、当該画素サブセット内のエッジの何れかの側の間の相対的な輝度または色差を使用してもよい。幾つかの例では、当該アップスケーリング・システムは、当該画素サブセットに対する異なるプロパティの組合せ、例えば、当該プロパティの値に基づいて異なる画素サブセットに対する2つ以上のプロパティまたは異なるプロパティの結合された値を使用してもよい。
アップスケーリング・トレーニング・システムは、第1の画素サブセット内のサブセットごとに、第1の画素サブセットが属する1群のサブセットを、第1の画素サブセットのプロパティの値を用いて決定する。各第1の画素サブセットは1つのグループのみに含まれる(516)。アップスケーリング・トレーニング・システムは、当該バケット内の画素サブセットが同一のまたは同様なプロパティを有するように、当該画素サブセットごとにバケットを決定する。アップスケーリング・トレーニング・システムは、例えば量子化値を使用し、当該量子化値を当該プロパティの決定された値に適用することで、任意の適切な方法を使用して当該1群のサブセットを決定してもよい。幾つかの実装では、アップスケーリング・トレーニング・システムは、第2の画素サブセット内の画素サブセットごとに、第2の画素サブセットが属する1群のサブセットを決定する。
アップスケーリング・トレーニング・システムが第1の画素サブセット内のサブセットに対するプロパティの値を決定すると、アップスケーリング・トレーニング・システムは第1の画素サブセット内のサブセットごとに1群のサブセットを決定する。アップスケーリング・トレーニング・システムが第2の画素サブセット内の当該サブセットに対するプロパティの値を決定すると、アップスケーリング・トレーニング・システムは第1の画素サブセット内のサブセットごとに1群のサブセットまたは第2の画素サブセット内のサブセットごとに1群のサブセットを決定してもよい。例えば、アップスケーリング・トレーニング・システムは、特定の第2の画素サブセットのプロパティの値を使用して、当該特定の第2の画素サブセットが属する1群のサブセットを決定してもよい。幾つかの例では、アップスケーリング・トレーニング・システムは、特定の第2の画素サブセットのプロパティの値を使用して、対応する特定の第1の画素サブセットが属する1群のサブセットを決定する。例えば、当該プロパティの値が高解像度パッチ108d、例えば、第2の画素サブセットに関するものであるとき、アップスケーリング・トレーニング・システムは、当該プロパティの値を使用して、アップスケールされた低解像度パッチ106dに対する1群のサブセットを決定し、アップスケールされた低解像度パッチ106dを決定されたサブセットのグループ内に配置してもよい。
アップスケーリング・トレーニング・システムは、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて対応する第2の画素サブセットを近似する最終画素サブセットを生成するためのフィルタを決定する、当該最終画素サブセットの全ての組合せは第2のアップスケールされた画像を表す(518)。アップスケーリング・トレーニング・システムは、グループ内のサブセットの各々に対するフィルタを別々にまたは一緒に決定してもよい。幾つかの例では、アップスケーリング・トレーニング・システムは、当該グループ内の異なるサブセットに対してそれぞれ、複数のフィルタを結合して、当該グループに対する単一フィルタを決定する。
幾つかの実装では、当該アップスケーリング・システムは、当該1群のサブセットが第1の画素サブセットを含むとき、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて対応する第2の画素サブセットを近似する最終画素サブセットを生成するためのフィルタを決定する。例えば、当該1群のサブセットが、アップスケールされた低解像度パッチ106a−cを有する第1のグループおよびアップスケールされた低解像度パッチ106dを有する第2のグループ、例えば、第1の画素サブセットを含むとき、当該アップスケーリング・システムは、それぞれ高解像度パッチ108a、高解像度パッチ108b、および高解像度パッチ108cのうち1つを近似する最終パッチを生成するアップスケールされた低解像度パッチ106a、アップスケールされた低解像度パッチ106b、およびアップスケールされた低解像度パッチ106cに適用するための第1のフィルタを決定する。当該アップスケーリング・システムは、高解像度パッチ108dを近似する最終パッチを生成するアップスケールされた低解像度パッチ106dに適用するための第2のフィルタを決定する。当該アップスケーリング・システムは、当該1群のサブセットの全て、例えば、当該1群の画素パッチの全てに対して当該プロセスを実施する。
幾つかの実装では、当該1群のサブセットが第2の画素サブセットを含むとき、当該アップスケーリング・システムは、当該1群のサブセットの各々に対して、当該グループ内の画素サブセットに対応する第1の画素サブセットの各々に適用して第1の画素サブセットを用いて対応する第2の画素サブセットを近似する最終画素サブセットを生成するためのフィルタを決定する。例えば、当該1群のサブセットは、高解像度パッチ108a−cを含む第1のグループおよび高解像度パッチ108dを含む第2のグループを含む。当該アップスケーリング・システムは、第1のグループに含まれる高解像度パッチ108a−cに対応するアップスケールされた低解像度パッチ106a−cに適用するための第1のフィルタを決定する。当該アップスケーリング・システムは、第1のフィルタをアップスケールされた低解像度パッチ106a−cの各々に適用することにより、当該アップスケーリング・システムが対応する高解像度パッチ108a−cを近似する最終パッチを生成するように、第1のフィルタを決定する。当該アップスケーリング・システムは、第2のグループに含まれる高解像度パッチ108dに対応するアップスケールされた低解像度パッチ106dに適用するための第2のフィルタを決定する。当該アップスケーリング・システムは、第2のフィルタのアップスケールされた低解像度パッチ106dへの適用が高解像度パッチ108dを近似する最終パッチを生成するように、第2のフィルタを決定する。当該アップスケーリング・システムは、当該1群のサブセットの全て、例えば、当該1群の画素パッチの全てに対してこのプロセスを実施する。
上述のプロセス500におけるステップの順序は例示的なものにすぎず、当該画像アップスケーリングのためのフィルタの決定を異なる順序で実施することができる。例えば、アップスケーリング・トレーニング・システムは第2の画素サブセットを生成し、ついで第1の画素サブセットを生成してもよい。幾つかの例では、アップスケーリング・トレーニング・システムは、高解像度画像を鋭敏化し、第2の画素サブセットを鋭敏化された高解像度画像から生成し、ついで低解像度画像を圧縮してもよい。幾つかの実装では、アップスケーリング・トレーニング・システムは、低解像度画像を圧縮し、圧縮された低解像度画像をアップスケールし、第1の画素サブセットを、アップスケールされた、圧縮された低解像度画像から生成し、ついで高解像度画像を鋭敏化し、第2の画素サブセットを生成してもよい。
幾つかの実装では、プロセス500は追加のステップ、より少ないステップを含むことができ、または当該ステップの幾つかを複数のステップに分割することができる。例えば、プロセス500が、ステップ504または506の1つまたはその両方なしにステップ502、および508乃至518を含んでもよい。
例示的なランタイムプロセス・フロー
図6は、高解像度画像を生成するためのプロセス600の流れ図である。例えば、プロセス600を図4で示したコンピュータ・システム400により使用することができる。
アップスケーリング・ランタイム・システムが、特定のコンテンツを描画する第1の解像度を有する低解像度画像を受信する(602)。アップスケーリング・ランタイム・システムは、低解像度画像を提供するためのユーザ要求に応答して低解像度画像を受信してもよい。幾つかの例では、アップスケーリング・ランタイム・システムは、例えばウェブ・ページの一部として低解像度画像のディスプレイへの提示を要求する別のシステムから低解像度画像を受信してもよい。
アップスケーリング・ランタイム・システムは、低解像度画像を第1の解像度より高い第2の解像度にアップスケールして、アップスケールされた画像を生成する(604)。例えば、アップスケーリング・ランタイム・システムは、最終画像が提示されるであろうディスプレイの解像度を決定する。アップスケーリング・ランタイム・システムは、当該最終画像が提示されるであろうディスプレイの解像度を用いて第2の解像度を決定する。幾つかの例では、アップスケーリング・ランタイム・システムは、当該最終画像の提示に関する他の情報を用いて第2の解像度を決定してもよい。
アップスケーリング・ランタイム・システムはアップスケールされた画像の画素サブセットを生成し、当該画素サブセット内の各サブセットはサイズを有し、アップスケールされた画像内の各画素は当該画素サブセット内のサブセットに含まれる(606)。アップスケーリング・ランタイム・システムは、トレーニングの間にアップスケーリング・トレーニング・システムにより生成された画素サブセットと同一のサイズの画素サブセットを生成して、フィルタを生成する。
アップスケーリング・ランタイム・システムは、当該画素サブセット内のサブセットごとに、当該画素サブセットのプロパティの値を決定する(608)。アップスケーリング・ランタイム・システムは、トレーニングの間にアップスケーリング・トレーニング・システムにより使用されるプロパティと同一のプロパティを使用して、当該フィルタを生成する。
アップスケーリング・ランタイム・システムは、当該画素サブセット内の各サブセットに対して、当該画素サブセットが属する1群のサブセットを、当該画素サブセットのプロパティの値を用いて決定し、各画素サブセットは1つのグループのみに含まれる(610)。アップスケーリング・ランタイム・システムは、任意の適切な方法を使用して当該1群のサブセットを決定してもよい。アップスケーリング・ランタイム・システムは、当該フィルタを生成するときに、アップスケーリング・トレーニング・システムにより使用される方法と同一の方法を使用する。
アップスケーリング・ランタイム・システムは、当該1群のサブセットの各々に対して、フィルタを当該グループ内の画素サブセットの各々に適用して、最終画素サブセットを生成する。当該最終画素サブセットの全ての組合せは第1の解像度より高い第3の解像度を有するコンテンツのより高い解像度画像を表す(612)。アップスケーリング・ランタイム・システムは、当該フィルタを当該画素サブセットに適用することにより当該最終画素サブセットを生成する。当該フィルタは本明細書で説明した主題の任意の態様または実装により取得されたフィルタであってもよく、1例として、図5の方法により取得されたフィルタであってもよい。
幾つかの例では、アップスケーリング・ランタイム・システムは、当該最終画素サブセットを生成するとき当該フィルタの全てではなく当該フィルタの幾つかを使用してもよい。例えば、アップスケーリング・ランタイム・システムは、20個のフィルタをアップスケーリング・トレーニング・システムから受信し、特定の低解像度画像に対する当該1群の画素サブセットに基づいて20個のフィルタのうち10個のみを使用してもよい。
アップスケーリング・ランタイム・システムは当該画素サブセットと当該最終画素サブセットを結合するための重みを決定する(614)。例えば、アップスケーリング・ランタイム・システムは、最終画像を生成するとき、アップスケールされた低解像度画像からまたは当該フィルタされた画素サブセットから画素サブセットを使用するかどうかを判定してもよい。
アップスケーリング・ランタイム・システムは、当該画素サブセットと当該最終画素サブセットを当該重みと結合することにより、最終画像を生成する(616)。アップスケーリング・ランタイム・システムは、当該画素サブセットの両方における画素値を、例えば、ゼロから1のスケールで重み付けしてもよく、または、当該重みに応じて1つの画素サブセットまたは他のサブセットから当該画素値を使用してもよい。
アップスケーリング・ランタイム・システムは提示のために当該最終画像を提供する(618)。例えば、アップスケーリング・ランタイム・システムは、当該最終画像をディスプレイへの提示のためにビデオ・プロセッサに提供する。
上述のプロセス600におけるステップの順序は例示的なものにすぎず、高解像度画像の生成を異なる順序で実施することができる。例えば、アップスケーリング・ランタイム・システムは画素サブセットを生成し、ついで低解像度画像をアップスケールしてもよい。
幾つかの実装では、プロセス600は追加のステップ、より少ないステップを含むことができ、または当該ステップの幾つかを複数のステップに分割することができる。例えば、プロセス600が、ステップ602乃至612を含んでもよい。幾つかの例では、プロセス600が、ステップ618ではなくステップ602乃至616を含んでもよい。幾つかの実装では、アップスケーリング・ランタイム・システムは、単一フィルタを、当該画素サブセットをアップスケールし当該画素サブセットを当該画素サブセットのより高い解像度バージョンを近似するフィルタされた画素サブセットにマップする画素サブセットに適用してもよい。例えば、アップスケーリング・ランタイム・システムはステップ604および612を単一のステップで実施する。
任意の実装詳細
幾つかの実装では、アップスケーリング・システムは、任意の介在パッチなしに特定のパッチのすぐ隣のパッチからの情報を用いて、特定のパッチのプロパティの値を決定してもよい。例えば、アップスケーリング・システムは、当該特定のパッチおよび4つの隣接パッチ、例えば、任意の介在パッチなしに当該特定のパッチの直上、直下、すぐ左、およびすぐ右のパッチを用いて、特定のパッチに対する勾配の角度を決定してもよい。幾つかの例では、アップスケーリング・システムは、当該特定のパッチのすぐ隣のパッチの全てからの情報を用いてパッチのプロパティを決定してもよい。
アップスケーリング・トレーニング・システムが複数のパッチからの情報を使用して特定のパッチに対するプロパティの値を決定して1組のフィルタを生成するとき、当該生成されたフィルタを使用するアップスケーリング・ランタイム・システムは、複数のパッチからの情報を使用して、ランタイムの間に特定のパッチに対する当該プロパティの値を決定する。当該プロパティの値を決定するために使用される特定のパッチのすぐ隣の1組の複数のパッチはトレーニングおよびランタイムの間で同一である。
幾つかの実装では、アップスケーリング・システムは複数のフィルタを低解像度画像からのコンテンツに適用して出力画像を生成してもよい。例えば、当該アップスケーリング・システムは、低解像度画像を使用してアップスケールされた低解像度画像を生成して、第1のフィルタをアップスケールされた低解像度画像からの画素パッチに適用することにより第1のフィルタされた画像を生成してもよい。当該アップスケーリング・システムは、第2のフィルタを第1のフィルタされた画像からの画素パッチに、例えば、第1のフィルタされた画像の生成と同様な方式で適用することにより第2のフィルタされた画像を生成してもよい。当該アップスケーリング・システムは、閾値に到達したと判定するまで、フィルタの当該フィルタされた画像のパッチへの適用を繰り返してもよい。当該閾値は、幾つかのフィルタリング反復、出力画像の所望の品質、または別の閾値であってもよい。
幾つかの実装では、アップスケーリング・システムは、画素パッチのバケット内の画素パッチに適用するための別々の水平フィルタおよび垂直フィルタを決定してもよい。例えば、当該アップスケーリング・システムが、トレーニング・プロセスの間の水平フィルタおよび垂直フィルタを決定してもよい。当該アップスケーリング・システムは、ランタイムの間に当該水平フィルタおよびついで当該垂直フィルタを、トレーニングの間に使用されるのと同一の順序で使用するか、または、当該水平フィルタおよび当該垂直フィルタをランタイムの間に使用するための別のシステムに、例えば、トレーニングの間に使用されるのと同一の順序で提供してもよい。幾つかの例では、当該アップスケーリング・システムは、トレーニングの間に当該垂直フィルタおよびついで当該水平フィルタを決定し、ついでランタイムの間に当該垂直フィルタおよびついで当該水平フィルタを適用してもよい。
幾つかの実装では、アップスケーリング・システムは、パッチの各バケットに適用するための一意なフィルタを決定する。例えば、アップスケーリング・トレーニング・システムは、画素パッチの第1のバケットが異なるバケットであり、画素パッチの第2のバケットと異なるパッチを含むとき、第1のフィルタが第2のフィルタと異なるフィルタであるように、画素パッチの第1のバケットに適用するための第1のフィルタおよび画素パッチの第2のバケットに適用するための第2のフィルタを決定する。
幾つかの実装では、各画素は1つの画素パッチまたは画素サブセットのみに含まれる。幾つかの実装では、各画素パッチまたは画素サブセットは1つのみのバケットまたは画素サブセットのグループに含まれる。
幾つかの実装では、アップスケーリング・システムは、画素パッチを生成して、低解像度画像をアップスケールする前に当該画素パッチのプロパティを決定してもよい。例えば、当該アップスケーリング・システムは、アップスケーリング・トレーニング・システムまたはアップスケーリング・ランタイム・システムであろうとなかろうと、軽量アップスケーリング・プロセスおよび高品質アップスケーリング・プロセスの両方を実施して高解像度出力画像を生成する単一フィルタを低解像度画像のパッチに適用してもよい。
幾つかの実装では、アップスケーリング・システムは、ルックアップテーブルを用いて画素バケットを実装してもよい。例えば、アップスケーリング・トレーニング・システム200は、当該ルックアップテーブル内の各角度値と、夫々の勾配角度を有するパッチに適用するための対応するフィルタに対する識別子とを格納してもよい。これらの実装において、アップスケーリング・トレーニング・システム200の出力は、当該ルックアップテーブル内のエントリと当該フィルタに対する識別子の間のマッピング、例えば、関連するローカルに適応的なフィルタを指すハッシュテーブルの鍵であってもよい。
幾つかの実装では、アップスケーリング・ランタイム・システムがフィルタされたパッチを、例えば、アップスケールされた低解像度画像からのアップスケールされたパッチと結合するとき、当該アップスケーリング・システムは、フィルタの前に各パッチまたはパッチのバケットを分析して、当該対応するパッチまたは当該バケット内のパッチをフィルタすべきかどうかを判定してもよい。例えば、アップスケーリング・ランタイム・システムが、パッチ、またはバケット内の各パッチが雑音を含むかどうかを判定してもよい。アップスケーリング・ランタイム・システムが、特定のパッチまたはパッチのバケットが雑音を含むと判定したとき、アップスケーリング・ランタイム・システムは、当該特定のパッチまたはパッチの当該バケット内のパッチをフィルタしない。アップスケーリング・ランタイム・システムが、特定のパッチまたはパッチのバケットが雑音を含まない、例えば、構造化されたコンテンツを含むと判定したとき、アップスケーリング・ランタイム・システムは当該特定のパッチまたはパッチのバケット内のパッチをフィルタする。アップスケーリング・ランタイム・システムは、当該フィルタされたパッチをフィルタされなかったアップスケールされたパッチと結合して、出力画像を生成する。
追加の実装の詳細
本明細書で説明した主題および当該機能的動作の実施形態を、デジタル電子回路で、有形に−具現化されたコンピュータソフトウェアまたはファームウェアで、当該構造開示された本明細書およびそれらの構造的な均等物で、またはそれらの1つまたは複数の組合せでを含めて、コンピュータハードウェアで実装することができる。本明細書で説明した主題の実施形態を、1つまたは複数のコンピュータ・プログラム、即ち、データ処理装置により実行するためのまたはその動作を制御するための有形非-一時的プログラム・キャリアで符号化されたコンピュータ・プログラム命令の1つまたは複数のモジュールとして実装することができる。あるいはまたはさらに、当該プログラム命令は、データ処理装置により実行するための適切な受信機装置に送信するための情報を符号化するために生成される、人工的に-生成された伝播信号、例えば、マシン生成された電気的、光学的、または電磁気信号で符号化されることができる。当該コンピュータ記憶媒体はマシン可読記憶デバイス、マシン可読記憶基板、ランダムまたはシリアル・アクセス・メモリデバイス、またはそれらの1つまたは複数の組合せであることができる。
「データ処理装置」という用語は、例としてプログラム可能プロセッサ、コンピュータ、または複数のプロセッサまたはコンピュータを含む、データ処理ハードウェアを指し、データを処理するための全ての種類の装置、デバイス、およびマシンを包含する。当該装置はさらに、特殊目的論理回路、例えば、FPGA(フィールド・プログラム可能ゲートアレイ)またはASIC(特殊用途向け集積回路)であることができるかまたはそれを含むことができる。当該装置は場合によっては、ハードウェアに加えて、コンピュータ・プログラムに対する実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。
コンピュータ・プログラムはまた、プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと称するかまたはそれとして説明されてもよく、コンパイル型またはインタプリタ型言語、または宣言型または手続型言語を含む任意の形態のプログラミング言語で書かれることができ、スタンドアロンプログラムまたはモジュールとして、コンピューティング環境で使用するのに適したコンポーネント、サブルーチン、または他のユニットとしてを含めて、任意の形態で展開されることができる。コンピュータ・プログラムはファイルシステム内のファイルに対応してもよいがその必要はない。プログラムを、他のプログラムまたはデータを保持するファイルの一部、例えば、マークアップ言語ドキュメントで、問題となっている当該プログラム専用の単一のファイルで、または複数の協調ファイルで格納された1つまたは複数のスクリプト、例えば、1つまたは複数のモジュールを格納するファイル、サブプログラム、またはコードの部分に格納することができる。コンピュータ・プログラムは、1つのコンピュータで実行されるか、または、1つのサイトに配置されるかもしくは複数のサイトにわたって分散し通信ネットワークにより相互接続される複数のコンピュータで実行されるように展開されることができる。
本明細書で説明した当該プロセスおよび論理フローを、入力データで動作し出力を生成することで機能を実施するための1つまたは複数のコンピュータ・プログラムを実行する1つまたは複数のプログラム可能コンピュータにより実施することができる。当該プロセスおよび論理フローはまた、特殊目的論理回路、例えば、FPGA(フィールド・プログラム可能ゲートアレイ)またはASIC(特殊用途向け集積回路)により実施でき、装置を特殊目的論理回路、例えば、FPGA(フィールド・プログラム可能ゲートアレイ)またはASIC(特殊用途向け集積回路)として実装することもできる。
コンピュータ・プログラムの実行に適したコンピュータは、例として、汎用目的または特殊目的マイクロプロセッサまたはその両方、または任意の他種の中央演算装置を含む。一般的に、中央演算装置は、読取専用メモリまたはランダム・アクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実施または実行するための中央演算装置および命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般的に、コンピュータはまた、データを格納するための1つまたは複数の大容量記憶デバイス、例えば、磁気、磁気光ディスク、または光ディスクを含むか、またはデータを送受信するようにそれらに動作可能に接続される。しかし、コンピュータはかかるデバイスを有する必要はない。さらに、コンピュータを、幾つか例を挙げると、別のデバイス、例えば、携帯電話、スマートフォン、パーソナルデジタルアシスタント(PDA)、モバイル・オーディオまたはビデオ・プレイヤ、ゲーム・コンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、例えば、ユニバーサル・シリアル・バス(USB)フラッシュ・ドライブに埋め込むことができる。
コンピュータ・プログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、例示的な半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュ・メモリデバイス、磁気ディスク、例えば、内部ハード・ディスクまたは取外し可能ディスク、光磁気ディスク、およびCD-ROMおよびDVD−ROMディスクによりを含めて、全ての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。当該プロセッサおよび当該メモリは特殊目的論理回路により補間するかまたは当該回路に組み込むことができる。
ユーザとの対話を提供するために、本明細書で説明した主題の実施形態を、情報を当該ユーザに表示するためのディスプレイデバイス、例えば、CRT(カソード・レイ・チューブ)またはLCD(液晶ディスプレイ)モニタを有するコンピュータ、および当該ユーザがそれにより入力を当該コンピュータに提供できるキーボードおよびポインティング・デバイス、例えば、マウスまたはトラックボールで実装することができる。他種のデバイスをユーザとの対話を提供するためにも使用でき、例えば、当該ユーザに提供されるフィードバックは、センサフィードバック、例えば、視覚的フィードバック、可聴フィードバック、または触覚フィードバックからなる任意の形態であることができ、当該ユーザからの入力を音響、会話、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、当該ユーザにより使用されるデバイスとドキュメントを送受信することによって、例えば、当該ウェブ・ブラウザから受信された要求に応答してウェブ・ページをユーザのデバイス上のウェブ・ブラウザに送信することで、ユーザと対話することができる。
本明細書で説明した主題の実施形態を、バックエンドコンポーネントを、例えば、データサーバとして含む、またはミドルウェアコンポーネント、例えば、アプリケーションサーバを含む、またはフロントエンドコンポーネント、例えば、ユーザがそれを通じて本明細書で説明した主題の実装と対話できるグラフィカルユーザインタフェースまたはウェブ・ブラウザを有するクライアントコンピュータ、または1つまたは複数のかかるバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含む、コンピューティング・システムで実装することができる。当該システムの当該コンポーネントは任意の形態または媒体のデジタルデータ通信、例えば、通信ネットワークにより相互接続されることができる。通信ネットワークの例はローカル・エリアネットワーク(LAN)および広域ネットワーク(WAN)、例えば、インターネットを含む。
当該コンピューティング・システムはクライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いから離れており、一般に通信ネットワークを通じて対話する。クライアントおよびサーバの当該関係は、当該夫々のコンピュータ上で実行され互いに対してクライアントサーバ関係を有するコンピュータ・プログラムにより生ずる。幾つかの実施形態では、サーバは、例えば、クライアントとして動作する当該ユーザデバイスと対話するユーザにデータを表示しそこからユーザ入力を受信する目的で、データ、例えば、HTMLページをユーザデバイスに送信する。当該ユーザデバイスで生成されたデータ、例えば、当該ユーザ対話の結果を、当該サーバでの当該ユーザデバイスから受信することができる。
1つのかかるタイプのコンピュータの例が図7に示されている。図7は汎用コンピュータ・システム700の略図を示す。システム700を、1実装に従う以前に説明した当該コンピュータ実行型の方法の何れかと関連して説明した動作により使用することができる。システム700はプロセッサ710、メモリ720、記憶デバイス730、および入出力デバイス740を含む。コンポーネント710、720、730、および740の各々は、システム・バス750を用いて相互接続される。プロセッサ710は、システム700内での実行のための命令を処理することができる。1実装では、プロセッサ710はシングルスレッドプロセッサである。別の実装において、プロセッサ710はマルチスレッドプロセッサである。プロセッサ710は、メモリ720にまたは入出力デバイス740上のユーザインタフェースに対するグラフィカル情報を表示するための記憶デバイス730に格納された命令を処理することができる。
メモリ720は情報をシステム700内に記憶する。1実装では、メモリ720はコンピュータ可読媒体である。1実装では、メモリ720は揮発性メモリ・ユニットである。別の実装において、メモリ720は不揮発性メモリ・ユニットである。
記憶デバイス730はシステム700に対する大容量記憶を提供することができる。1実装では、記憶デバイス730はコンピュータ可読媒体である。様々な異なる実装では、記憶デバイス730はフロッピディスクデバイス、ハード・ディスクデバイス、光ディスクデバイス、またはテープ・デバイスであってもよい。
入出力デバイス740はシステム700に対する入出力動作を提供する。1実装では、入出力デバイス740はキーボードおよび/またはポインティング・デバイスを含む。別の実装において、入出力デバイス740はグラフィカルユーザインタフェースを表示するためのディスプレイユニットを含む。
本明細書は多数の具体的な実装詳細を含むが、これらはクレームされうるもの範囲への制限として解釈されるべきではなく、特定の実施形態に固有でありうる特徴の説明として解釈されるべきである。別々の実施形態の文脈において本明細書で説明した特定の特徴をまた、単一の実施形態における組合せで実装することができる。反対に、単一の実施形態の文脈で説明した様々な特徴をまた、複数の実施形態で別々にまたは任意の適切な部分的組合せで実装することができる。さらに、特徴は特定の組合せで動作するように上述され最初にそのようにクレームされているかもしれないが、クレームされた組合せからの1つまたは複数の特徴を幾つかのケースでは当該組合せから実施してもよく当該クレームされた組合せは部分的組合せまたは部分的組合せの変形に関連してもよい。
同様に、動作を図面において特定の順序で説明したが、これは、所望の結果を実現するために、かかる動作を示した特定の順序でまたは逐次的順序で実施されること、または全ての示された動作が実施されることを要求するものと理解されるべきではない。特定の環境において、マルチタスキングおよび並列処理が有利であるかもよい。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの当該分離は全ての実施形態においてかかる分離を要求するものと理解されるべきではなく、当該説明されたプログラムコンポーネントおよびシステムを一般に単一のソフトウェア製品に統合するかまたは複数のソフトウェア製品にパッケージ化できることは理解されるべきである。
当該主題の特定の実施形態を説明した。他の実施形態は添付の特許請求の範囲内にある。例えば、特許請求の範囲で記載した動作を異なる順序で実施して、依然として所望の結果を実現することができる。1例として、添付図面に示したプロセスは、所望の結果を実現するために示した特定の順序、または逐次的順序を必ずしも要求しない。幾つかのケースでは、マルチタスキングおよび並列処理が有利であるかもしれない。幾つかの実装では、アップスケーリング・システム、例えば、アップスケーリング・ランタイム・システムの一部または全部、をフィールド・プログラム可能ゲートアレイ(FPGA)で実装してもよい。例えば、軽量補間方法を画像および信号プロセッサで実装し、当該アップスケーリング方法の残りをFPGAで実装してもよい。
400 コンピュータ・システム
402 プロセッサ
404 ビデオ・プロセッサ
406 ディスプレイ
408 画像信号プロセッサ
410 メモリ

Claims (20)

  1. コンピュータ実行型の方法であって、
    特定のコンテンツを描画する第1の解像度を有する低解像度画像を前記第1の解像度より高い第2の解像度にアップスケールして、アップスケールされた画像を作成するステップと、
    前記アップスケールされた画像を用いて、各々が前記アップスケールされた画像からの1つまたは複数の画素を含む前記アップスケールされた画像の複数のパッチを作成するステップであって、前記アップスケールされた画像内の各画素は前記複数のパッチからのパッチに含まれる、ステップと、
    前記それぞれのパッチの幾何学的特徴を表すプロパティの値を用いて、複数のバケットからのバケットに前記複数のパッチ内の各パッチを割り当てるステップであって、前記複数のバケットからの前記バケットの各々は前記プロパティの異なる値を有する、ステップと、
    前記複数のバケット内の各バケットについて、前記それぞれのバケット内の前記パッチの各々に適用するためのフィルタを決定するステップと、
    前記複数のバケット内の各バケットについて、前記バケット内の前記パッチの各々に前記決定されたフィルタを適用して、前記パッチの各々に対応するフィルタされたパッチを作成するステップであって、前記フィルタされたパッチの全ての組合せは、前記第1の解像度より高い第3の解像度を有する前記特定のコンテンツのより高い解像度画像を表す、ステップとを含む方法。
  2. 前記複数のバケット内の各バケットについて、前記それぞれのバケット内の前記パッチの各々に適用するための前記フィルタを決定するステップは、
    前記複数のバケット内の各バケットについて、
    ルックアップテーブル内の前記それぞれのバケットのためのエントリを決定するステップと、
    前記エントリを決定することに応答して、前記ルックアップテーブル内の前記それぞれのバケットのための前記エントリによって特定されるフィルタ識別子を決定するステップであって、前記フィルタ識別子は、前記それぞれのバケット内の前記パッチの各々に適用するための前記フィルタを特定する、ステップとを含む、請求項1に記載の方法。
  3. 前記ルックアップテーブルはハッシュテーブルを含む、請求項2に記載の方法。
  4. 前記ルックアップテーブル内の前記それぞれのバケットのための前記エントリを決定するステップは、
    前記それぞれのバケットのための前記プロパティの前記値をハッシュするステップと、
    前記それぞれのバケットのための前記エントリを決定するために、前記ハッシュテーブルへの鍵として前記値の前記ハッシュを使用するステップとを含む、請求項3に記載の方法。
  5. 前記複数のバケットからのバケットに前記複数のパッチ内の各パッチを割り当てるステップであって、
    前記複数のパッチ内の各パッチについて、
    前記それぞれのパッチのためのデータを用いて、前記プロパティの値を決定するステップと、
    前記プロパティの前記値を決定することに応答して、前記それぞれのパッチが割り当てられる前記バケットとして、前記それぞれのパッチのために決定された前記プロパティの前記値を有する前記バケットを選択するステップとを含む、請求項1に記載の方法。
  6. 前記それぞれのパッチのためのデータを用いて、前記プロパティの前記値を決定するステップは、前記それぞれのパッチのための前記データおよび前記それぞれのパッチに隣接する少なくとも1つのパッチのためのデータを用いて、前記それぞれのパッチの前記プロパティの前記値を決定するステップを含む、請求項5に記載の方法。
  7. 前記それぞれのパッチのためのデータを用いて、前記プロパティの前記値を決定するステップは、前記それぞれのパッチのための前記データおよび前記それぞれのパッチに隣接する全てのパッチのためのデータを用いて、前記それぞれのパッチの前記プロパティの前記値を決定するステップを含む、請求項5に記載の方法。
  8. i)前記特定のコンテンツを描画し、ii)前記フィルタされたパッチの全てを結合することによって、前記第1の解像度より高い前記第3の解像度を有するより高い解像度画像を生成するステップと、
    表示のために前記より高い解像度画像を提供するステップとを含む、請求項1に記載の方法。
  9. 前記パッチおよび前記フィルタされたパッチを結合する重みを決定するステップと、
    前記重みによって前記パッチおよび前記フィルタされたパッチを結合することによって、より高い解像度画像を生成するステップとを含む、請求項1に記載の方法。
  10. 前記パッチおよび前記フィルタされたパッチを結合する前記重みを決定するステップは、前記パッチの各々について、重みを決定するステップを含む、請求項9に記載の方法。
  11. 前記パッチの各々について、前記重みを決定するステップは、
    前記パッチの各々について、前記パッチがノイズのみを含むかどうか判定するステップと、
    ノイズのみを含む前記パッチの各々について、前記パッチのためにゼロの重み値を決定するステップと、
    ノイズのみを含まない前記パッチの各々について、前記パッチのために非ゼロの重み値を決定するステップとを含む、請求項10に記載の方法。
  12. 前記パッチの各々について、前記重みを決定するステップは、
    前記パッチの各々について、前記パッチと前記パッチに対応する前記フィルタされたパッチとの間の類似性を決定するステップと、
    前記パッチの各々について、前記パッチと前記パッチに対応する前記フィルタされたパッチとの間の前記類似性を用いて、重みを決定するステップとを含む、請求項10に記載の方法。
  13. 前記パッチの各々について、前記重みを決定するステップは、
    前記パッチの各々について、前記パッチの構造と前記パッチに対応する前記フィルタされたパッチの構造との間の類似性を決定するステップと、
    前記パッチの各々について、前記パッチの前記構造と前記パッチに対応する前記フィルタされたパッチの前記構造との間の前記類似性を用いて、重みを決定するステップとを含む、請求項10に記載の方法。
  14. 前記パッチの各々について、前記パッチの前記構造と前記パッチに対応する前記フィルタされたパッチの前記構造との間の前記類似性を用いて、前記重みを決定するステップは、
    前記パッチの各々について、前記パッチの前記構造と前記パッチに対応する前記フィルタされたパッチの前記構造との間の前記類似性を閾値類似性と比較するステップと、
    前記閾値類似性を満たす類似性を有する前記パッチの各々について、前記より高い解像度画像のために前記パッチに対応する前記フィルタされたパッチを使用するステップと、
    前記閾値類似性を満たさない類似性を有する前記パッチの各々について、前記より高い解像度画像のために前記パッチを使用するステップとを含む、請求項13に記載の方法。
  15. 前記アップスケールされた画像の前記複数のパッチを作成するステップは、非重複パッチを作成するステップを含む、請求項1に記載の方法。
  16. 前記複数のバケット内の各バケットについて、前記それぞれのバケット内の前記パッチの各々に適用するための前記フィルタを決定するステップは、前記複数のバケット内の各バケットについて、前記それぞれのバケット内の前記パッチの各々に適用するための一意なフィルタを決定するステップを含む、請求項1に記載の方法。
  17. 前記低解像度画像を受信するステップを含む、請求項1に記載の方法。
  18. 前記第2の解像度は、前記第3の解像度と同じ解像度である、請求項1に記載の方法。
  19. データ処理装置と、
    前記データ処理装置とデータ通信し、前記データ処理装置により実行可能な命令を格納し、かかる実行の際前記データ処理装置に、
    特定のコンテンツを描画する第1の解像度を有する低解像度画像を前記第1の解像度より高い第2の解像度にアップスケールして、アップスケールされた画像を作成するステップと、
    前記アップスケールされた画像を用いて、各々が前記アップスケールされた画像からの1つまたは複数の画素を含む前記アップスケールされた画像の複数のパッチを作成するステップであって、前記アップスケールされた画像内の各画素は前記複数のパッチからのパッチに含まれる、ステップと、
    前記それぞれのパッチのプロパティの値を用いて、複数のバケットからのバケットに前記複数のパッチ内の各パッチを割り当てるステップであって、前記複数のバケットからの前記バケットの各々は前記プロパティの異なる値を有する、ステップと、
    前記複数のバケット内の各バケットについて、前記それぞれのバケット内の前記パッチの各々に適用するためのフィルタを決定するステップと、
    前記複数のバケット内の各バケットについて、前記バケット内の前記パッチの各々に前記決定されたフィルタを適用して、パッチの各々に対応するフィルタされたパッチを作成するステップであって、前記フィルタされたパッチの全ての組合せは、前記第1の解像度より高い第3の解像度を有する前記特定のコンテンツのより高い解像度画像を表す、ステップと、
    を含む動作を実施させる、非一時的コンピュータ可読記憶媒体と、
    を備える、システム。
  20. データ処理装置により実行可能な命令を格納し、かかる実行の際前記データ処理装置に、
    特定のコンテンツを描画する第1の解像度を有する低解像度画像を前記第1の解像度より高い第2の解像度にアップスケールして、アップスケールされた画像を作成するステップと、
    前記アップスケールされた画像を用いて、各々が前記アップスケールされた画像からの1つまたは複数の画素を含む前記アップスケールされた画像の複数のパッチを作成するステップであって、前記アップスケールされた画像内の各画素は前記複数のパッチからのパッチに含まれる、ステップと、
    前記それぞれのパッチのプロパティの値を用いて、複数のバケットからのバケットに前記複数のパッチ内の各パッチを割り当てるステップであって、前記複数のバケットからの前記バケットの各々は前記プロパティの異なる値を有する、ステップと、
    前記複数のバケット内の各バケットについて、前記それぞれのバケット内の前記パッチの各々に適用するためのフィルタを決定するステップと、
    前記複数のバケット内の各バケットについて、前記バケット内の前記パッチの各々に前記決定されたフィルタを適用して、パッチの各々に対応するフィルタされたパッチを作成するステップであって、前記フィルタされたパッチの全ての組合せは、前記第1の解像度より高い第3の解像度を有する前記特定のコンテンツのより高い解像度画像を表す、ステップと、
    を含む動作を実施させる、非一時的コンピュータ可読記憶媒体。
JP2019032606A 2016-01-19 2019-02-26 画像アップスケーリング Active JP6789331B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/000,670 2016-01-19
US15/000,670 US9996902B2 (en) 2016-01-19 2016-01-19 Image upscaling

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018520600A Division JP6490871B2 (ja) 2016-01-19 2016-12-07 画像アップスケーリング

Publications (2)

Publication Number Publication Date
JP2019117644A JP2019117644A (ja) 2019-07-18
JP6789331B2 true JP6789331B2 (ja) 2020-11-25

Family

ID=57680540

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018520600A Active JP6490871B2 (ja) 2016-01-19 2016-12-07 画像アップスケーリング
JP2019032606A Active JP6789331B2 (ja) 2016-01-19 2019-02-26 画像アップスケーリング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018520600A Active JP6490871B2 (ja) 2016-01-19 2016-12-07 画像アップスケーリング

Country Status (4)

Country Link
US (2) US9996902B2 (ja)
EP (2) EP3341911B1 (ja)
JP (2) JP6490871B2 (ja)
WO (1) WO2017127171A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6391170B2 (ja) * 2015-09-03 2018-09-19 東芝メモリ株式会社 検査装置
KR102580519B1 (ko) * 2016-09-07 2023-09-21 삼성전자주식회사 영상처리장치 및 기록매체
US11132758B2 (en) * 2016-09-14 2021-09-28 Inscape Data, Inc. Embedding data in video without visible impairments
US11386540B2 (en) * 2017-03-31 2022-07-12 3M Innovative Properties Company Image based counterfeit detection
CN107527069A (zh) * 2017-08-22 2017-12-29 京东方科技集团股份有限公司 图像处理方法、装置、电子设备及计算机可读介质
US10521878B1 (en) * 2017-09-27 2019-12-31 United Services Automobile Association (Usaa) Machine-learning for enhanced machine reading of non-ideal capture conditions
WO2019106474A1 (en) * 2017-11-30 2019-06-06 3M Innovative Properties Company Image based counterfeit detection
US10607484B2 (en) 2017-12-28 2020-03-31 Intel Corporation Privacy-preserving distributed visual data processing
US10742399B2 (en) * 2017-12-28 2020-08-11 Intel Corporation Context-aware image compression
KR102516366B1 (ko) 2018-05-30 2023-03-31 삼성전자주식회사 특징 데이터 획득 방법 및 장치
US10931853B2 (en) * 2018-10-18 2021-02-23 Sony Corporation Enhanced color reproduction for upscaling
GB2578769B (en) 2018-11-07 2022-07-20 Advanced Risc Mach Ltd Data processing systems
KR20200080926A (ko) * 2018-12-27 2020-07-07 삼성전자주식회사 영상 처리 장치 및 그 영상 처리 방법
GB2583061B (en) * 2019-02-12 2023-03-15 Advanced Risc Mach Ltd Data processing systems
TWI715448B (zh) * 2020-02-24 2021-01-01 瑞昱半導體股份有限公司 偵測解析度的方法及電子裝置
CN113316017B (zh) * 2020-02-27 2023-08-22 瑞昱半导体股份有限公司 检测分辨率的方法和电子装置
KR20230120371A (ko) 2022-02-09 2023-08-17 삼성전자주식회사 이미지 처리 장치 및 이를 이용한 이미지 처리 방법
GB2617145A (en) * 2022-03-30 2023-10-04 Sony Interactive Entertainment Europe Ltd Adaptive tile based super resolution

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796879A (en) * 1995-05-23 1998-08-18 Hewlett-Packard Company Area based interpolation for image scaling
US6330372B1 (en) * 1999-09-13 2001-12-11 Intel Corporation Compression edge adaptive video and image sharpening and scaling
US7330209B2 (en) * 1999-12-20 2008-02-12 Texas Instruments Incorporated Digital still camera system and complementary-color-filtered array interpolation method
JP3714350B2 (ja) * 2004-01-27 2005-11-09 セイコーエプソン株式会社 画像中の人物候補領域抽出方法及び人物候補領域抽出システム並びに人物候補領域抽出プログラム
US9013511B2 (en) 2006-08-09 2015-04-21 Qualcomm Incorporated Adaptive spatial variant interpolation for image upscaling
WO2009038559A1 (en) * 2007-09-19 2009-03-26 Thomson Licensing System and method for scaling images
US8284314B2 (en) * 2009-12-16 2012-10-09 Vixs Systems, Inc. Adaptive edge enhancement using directional components from non-linear filtering
JP5335713B2 (ja) 2010-02-16 2013-11-06 富士フイルム株式会社 画像処理方法及び装置並びにプログラム
WO2012166840A2 (en) 2011-06-01 2012-12-06 The Board Of Trustees Of The Leland Stanford Junior University Learning of image processing pipeline for digital imaging devices
US8731337B2 (en) 2011-08-05 2014-05-20 Adobe Systems Incorporated Denoising and artifact removal in image upscaling
EP2662824A1 (en) * 2012-05-10 2013-11-13 Thomson Licensing Method and device for generating a super-resolution version of a low resolution input data structure
KR102080859B1 (ko) 2013-04-08 2020-02-24 삼성전자주식회사 이미지 프로세서 및 이미지 프로세서의 이미지 처리 방법
US9123138B2 (en) * 2013-06-18 2015-09-01 Adobe Systems Incorporated Adaptive patch-based image upscaling
CN103455988B (zh) * 2013-09-17 2016-03-02 西安电子科技大学 基于结构自相似性与稀疏表示的超分辨率图像重构方法
US9734558B2 (en) 2014-03-20 2017-08-15 Mitsubishi Electric Research Laboratories, Inc. Method for generating high-resolution images using regression patterns
WO2015198368A1 (ja) * 2014-06-24 2015-12-30 三菱電機株式会社 画像処理装置及び画像処理方法
US9256920B1 (en) * 2014-07-25 2016-02-09 Sharp Laboratories Of America, Inc. Image enhancement using a patch based technique
US9734559B1 (en) * 2014-11-25 2017-08-15 Pixelworks, Inc. Match error compensation for super-resolution images

Also Published As

Publication number Publication date
JP6490871B2 (ja) 2019-03-27
US9996902B2 (en) 2018-06-12
US20180253826A1 (en) 2018-09-06
JP2019500667A (ja) 2019-01-10
EP3657431A1 (en) 2020-05-27
EP3657431B1 (en) 2022-08-24
JP2019117644A (ja) 2019-07-18
US10929952B2 (en) 2021-02-23
US20170206632A1 (en) 2017-07-20
EP3341911B1 (en) 2020-02-19
EP3341911A1 (en) 2018-07-04
WO2017127171A1 (en) 2017-07-27

Similar Documents

Publication Publication Date Title
JP6789331B2 (ja) 画像アップスケーリング
CN110555795B (zh) 高解析度风格迁移
Yu et al. A unified learning framework for single image super-resolution
JP5517954B2 (ja) 変換の高速でメモリ効率の良い実施のための方法
Cheon et al. Generative adversarial network-based image super-resolution using perceptual content losses
JP2015232869A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
Chierchia et al. Epigraphical projection and proximal tools for solving constrained convex optimization problems: Part i
Jung et al. A fast deconvolution-based approach for single-image super-resolution with GPU acceleration
Zhang et al. High‐Order Total Bounded Variation Model and Its Fast Algorithm for Poissonian Image Restoration
CN109993701B (zh) 一种基于金字塔结构的深度图超分辨率重建的方法
US10540735B2 (en) Information processing device, information processing method, and recording medium
CN111105471B (zh) 用于生成与成像有关的采样掩码的方法和装置
CN102880878A (zh) 一种基于单幅图像进行超分辨率分析的方法及系统
Chilukuri et al. Analysing Of Image Quality Computation Models Through Convolutional Neural Network
CN113902617B (zh) 基于参考图像的超分辨率方法、装置、设备及介质
Zhou et al. Alternately guided depth super-resolution using weighted least squares and zero-order reverse filtering
Song et al. Vector regression functions for texture compression
Cho et al. Example-based super-resolution using self-patches and approximated constrained least squares filter
WO2016014105A1 (en) Systems and methods for selecting ink colors
Deshmukh et al. Residual CNN Image Compression
CN116342393B (zh) 一种基于图像噪声预测机制的图像超分辨率方法及系统
KR102325898B1 (ko) 다중 도메인 영상 복원 시스템 및 방법
CN117952901B (zh) 基于生成对抗网络的多源异构图像变化检测方法及装置
Dai et al. Depth map upsampling using compressive sensing based model
El Abbadi et al. Estimating Blur Parameters to Reconstruct the Motion Blurred Images

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200902

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201102

R150 Certificate of patent or registration of utility model

Ref document number: 6789331

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250