(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-14
(54)【発明の名称】大きなサイズの画像のトレーニング及びアップスケーリング
(51)【国際特許分類】
G06T 3/40 20060101AFI20220106BHJP
【FI】
G06T3/40 725
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021521242
(86)(22)【出願日】2019-10-17
(85)【翻訳文提出日】2021-06-01
(86)【国際出願番号】 US2019056675
(87)【国際公開番号】W WO2020081772
(87)【国際公開日】2020-04-23
(32)【優先日】2018-10-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-06-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(71)【出願人】
【識別番号】596102126
【氏名又は名称】ソニー ピクチャーズ エンターテインメント インコーポレイテッド
(74)【代理人】
【識別番号】100092093
【氏名又は名称】辻居 幸一
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(72)【発明者】
【氏名】ジュー ミャオチー
(72)【発明者】
【氏名】高島 芳和
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CA08
5B057CA12
5B057CA16
5B057CB06
5B057CB12
5B057CB16
5B057CD05
5B057CE08
5B057DB02
5B057DB09
5B057DC40
(57)【要約】
大きなサイズの入力画像をトレーニング及びアップスケーリングすることは、前記大きなサイズの入力画像を複数の小さなサイズのサブピクチャに分割することと、対象パディング画素を使用して、前記複数の小さなサイズのサブピクチャのうちの各サブピクチャを拡大して、拡大されたサブピクチャを生成することと、MLベースのアップスケーラーを使用して各サブピクチャをアップスケーリングして、拡大されてアップスケーリングされたサブピクチャを生成することと、前記拡大されてアップスケーリングされたサブピクチャを、各サブピクチャの元のサイズにアップスケーリング係数を掛けたものに等しいアップスケーリングサイズにトリミングすることと、前記複数のサブピクチャに対して、拡大、アップスケーリング、及びトリミングを繰り返すことと、前記複数のトリミングされたサブピクチャを連結して、出力画像を生成することと、を含む。
【選択図】
図3
【特許請求の範囲】
【請求項1】
大きなサイズの入力画像をトレーニング及びアップスケーリングするための方法であって、前記方法は、
前記大きなサイズの入力画像を複数の小さなサイズのサブピクチャに分割するステップと、
対象パディング画素を使用して、前記複数の小さなサイズのサブピクチャのうちの各サブピクチャを拡大して、拡大されたサブピクチャを生成するステップと、
MLベースのアップスケーラーを使用して各サブピクチャをアップスケーリングして、拡大されてアップスケーリングされたサブピクチャを生成するステップと、
前記拡大されてアップスケーリングされたサブピクチャを、各サブピクチャの元のサイズにアップスケーリング係数を掛けたものに等しいアップスケーリングサイズにトリミングするステップと、
前記複数のサブピクチャに対して、拡大、アップスケーリング、及びトリミングを繰り返すステップと、
前記複数のトリミングされたサブピクチャを連結して、出力画像を生成するステップと、
を含むことを特徴とする方法。
【請求項2】
各サブピクチャを拡大するステップは、
各サブピクチャの周囲に余分の画素をパディングする方法を決定するステップと、
各サブピクチャの周囲に前記余分の画素の小領域を追加するステップと、
を含む、
ことを特徴とする、請求項1に記載の方法。
【請求項3】
小領域を追加するステップは、前記小領域毎にタイプを決定するステップを含むことを特徴とする、請求項2に記載の方法。
【請求項4】
前記小領域の第1のタイプは、
前記大きなサイズの画像のアクティブピクチャエリア内に完全に存在する画素を有する前記小領域を含む、
ことを特徴とする、請求項3に記載の方法。
【請求項5】
更に、
前記小領域が前記第1のタイプであると判断されたときに、各サブピクチャを前記小領域の方向に拡張するステップ、
を含む、
ことを特徴とする、請求項4に記載の方法。
【請求項6】
前記小領域の第2のタイプは、
前記大きなサイズの画像のアクティブピクチャエリア内に存在するのではなく、各サブピクチャのエッジ上に存在する画素を有する前記小領域を含む、
ことを特徴とする、請求項3に記載の方法。
【請求項7】
更に、
前記小領域が前記第2のタイプであると判断されたときに、前記エッジ上でバタフライ画像を使用して、各サブピクチャを拡張するステップ、
を含む、
ことを特徴とする、請求項6に記載の方法。
【請求項8】
前記小領域の第3のタイプは、
前記大きなサイズの画像のアクティブピクチャエリア内に存在するのではなく、各サブピクチャのコーナー上に存在する画素を有する前記小領域を含む、
ことを特徴とする、請求項3に記載の方法。
【請求項9】
更に、
前記小領域が前記第3のタイプであると判断されたときに、前記コーナー上でバタフライ画像を使用して、各サブピクチャを拡張するステップ、
を含む、
ことを特徴とする、請求項8に記載の方法。
【請求項10】
大サイズ画像アップスケーリングシステムであって、
大きなサイズの入力画像を複数のサブピクチャに分割するように構成される画像分割部と、
各サブピクチャの周囲に余分の画素を追加することによって前記複数のサブピクチャのうちの各サブピクチャを拡張して、拡大されたサブピクチャを生成するように構成されるサブピクチャ拡張部であって、
前記拡大されたサブピクチャをニューラルネットワークに送って、前記拡大されたサブピクチャをトレーニング及びアップスケーリングするようにする、サブピクチャ拡張部と、
前記拡大されてアップスケーリングされたサブピクチャを受け取って、元のサブピクチャのサイズにアップスケーリング係数を掛けたものに対応するサイズにトリミングするように構成されるサブピクチャトリミング部と、
前記複数のサブピクチャのうちの全てのトリミングされたサブピクチャを連結して、出力画像を再構成するように構成される画像充填部と、
を含むことを特徴とするシステム。
【請求項11】
前記サブピクチャ拡張部は、各サブピクチャの周囲に前記余分の画素の小領域を追加することによって、各サブピクチャの周囲に前記余分の画素を追加することを特徴とする、請求項10に記載のシステム。
【請求項12】
小領域を追加することは、前記小領域毎にタイプを決定することを含むことを特徴とする、請求項11に記載のシステム。
【請求項13】
前記小領域の第1のタイプは、
前記大きなサイズの入力画像のアクティブピクチャエリア内に完全に存在する画素を有する前記小領域を含む、
ことを特徴とする、請求項12に記載のシステム。
【請求項14】
前記サブピクチャ拡張部は、更に、前記小領域が前記第1のタイプであると判断されたときに、各サブピクチャを前記小領域の方向に拡張するように構成されることを特徴とする、請求項13に記載のシステム。
【請求項15】
前記小領域の第2のタイプは、
前記大きなサイズの入力画像のアクティブピクチャエリア内に存在するのではなく、拡張された各サブピクチャのエッジ上に存在する画素を有する前記小領域を含む、
ことを特徴とする、請求項12に記載のシステム。
【請求項16】
前記サブピクチャ拡張部は、更に、前記小領域が前記第2のタイプであると判断されたときに、前記エッジ上でバタフライ画像を使用して、各サブピクチャを拡張するように構成されることを特徴とする、請求項15に記載のシステム。
【請求項17】
前記小領域の第3のタイプは、
前記大きなサイズの入力画像のアクティブピクチャエリア内に存在するのではなく、拡張された各サブピクチャのコーナー上に存在する画素を有する前記小領域を含む、
ことを特徴とする、請求項12に記載のシステム。
【請求項18】
前記サブピクチャ拡張部は、更に、前記小領域が前記第3のタイプであると判断されたときに、前記コーナー上でバタフライ画像を使用して、各サブピクチャを拡張するように構成されることを特徴とする、請求項17に記載のシステム。
【請求項19】
大きなサイズの入力画像をトレーニング及びアップスケーリングするためのコンピュータプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記コンピュータプログラムは実行可能命令を含み、前記実行可能命令は、コンピュータに、
前記大きなサイズの入力画像を複数の小さなサイズのサブピクチャに分割することと、
対象パディング画素を使用して、前記複数の小さなサイズのサブピクチャのうちの各サブピクチャを拡大して、拡大されたサブピクチャを生成することと、
MLベースのアップスケーラーを使用して各サブピクチャをアップスケーリングして、拡大されてアップスケーリングされたサブピクチャを生成することと、
前記拡大されてアップスケーリングされたサブピクチャを、各サブピクチャの元のサイズにアップスケーリング係数を掛けたものに等しいアップスケーリングサイズにトリミングすることと、
前記コンピュータに、前記複数のサブピクチャの拡大、アップスケーリング、及びトリミングを行わせる実行可能命令を繰り返すことと、
前記複数のトリミングされたサブピクチャを連結して、出力画像を生成することと、
を行わせる、
ことを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項20】
コンピュータに各サブピクチャを拡大させる前記実行可能命令は、実行可能命令を含み、前記実行可能命令は、コンピュータに、
各サブピクチャの周囲に余分の画素をパディングする方法を決定することと、
前記余分の画素の小領域を追加することと、
を行わせる、
ことを特徴とする、請求項19に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願の相互参照〕
[0001] 本出願は、2018年10月18日に出願された「動画のための機械学習ベースの単一画像アップスケーリングアプリケーション(Machine-Learning Based Single Image Upscaling Application for Motion Pictures)」という名称の同時係属中の米国仮特許出願第62/747,453号の米国特許法第119条(e)に基づく優先権の利益を主張するものである。上記関連出願の開示は、引用により本明細書に組み入れられる。
【0002】
[0002] 本開示は、画像をトレーニング及びアップスケーリングすることに関し、具体的には、大きなサイズの入力画像をトレーニング及びアップスケーリングすることに関する。
【背景技術】
【0003】
[0003] 機械学習(ML)を用いて、画像の超解像アップスケーリングを実行することができる。しかしながら、従来のMLベースのトレーニング及びアップスケーリングプロセスは、いくつかの問題がある。例えば、特に多くの層を有するディープニューラルネットワークで対象画像サイズが増加すると、MLベースのトレーニング及びアップスケーリングに必要なメモリサイズが指数関数的に増加する。アドバンストニューラルネットワークベースのトレーニング及びアップスケーリングプロセスを使用しながら、必要なメモリサイズを実用的な範囲内で維持するために、入力/出力画像サイズから独立した方法が望まれる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
[0004] 本開示は、大きなサイズの入力画像をトレーニング及びアップスケーリングすることを提供するものである。
【課題を解決するための手段】
【0005】
[0005] 一実装形態では、大きなサイズの入力画像をトレーニング及びアップスケーリングするための方法を開示する。前記方法は、前記大きなサイズの入力画像を複数の小さなサイズのサブピクチャに分割するステップと、対象パディング画素を使用して、前記複数の小さなサイズのサブピクチャのうちの各サブピクチャを拡大して、拡大されたサブピクチャを生成するステップと、MLベースのアップスケーラーを使用して各サブピクチャをアップスケーリングして、拡大されてアップスケーリングされたサブピクチャを生成するステップと、前記拡大されてアップスケーリングされたサブピクチャを、各サブピクチャの元のサイズにアップスケーリング係数を掛けたものに等しいアップスケーリングサイズにトリミングするステップと、前記複数のサブピクチャに対して、拡大、アップスケーリング、及びトリミングを繰り返すステップと、前記複数のトリミングされたサブピクチャを連結して、出力画像を生成するステップと、を含む。
【0006】
[0006] 一実装形態では、各サブピクチャを拡大するステップは、各サブピクチャの周囲に余分の画素をパディングする方法を決定するステップと、各サブピクチャの周囲に前記余分の画素の小領域を追加するステップと、を含む。一実装形態では、小領域を追加するステップは、前記小領域毎にタイプを決定するステップを含む。一実装形態では、前記小領域の第1のタイプは、前記大きなサイズの画像のアクティブピクチャエリア内に完全に存在する画素を有する前記小領域を含む。一実装形態では、前記方法は、更に、前記小領域が前記第1のタイプであると判断されたときに、各サブピクチャを前記小領域の方向に拡張するステップを含む。一実装形態では、前記小領域の第2のタイプは、前記大きなサイズの画像のアクティブピクチャエリア内に存在するのではなく、各サブピクチャのエッジ上に存在する画素を有する前記小領域を含む。一実装形態では、前記方法は、更に、前記小領域が前記第2のタイプであると判断されたときに、前記エッジ上でバタフライ画像を使用して、各サブピクチャを拡張するステップを含む。一実装形態では、前記小領域の第3のタイプは、前記大きなサイズの画像のアクティブピクチャエリア内に存在するのではなく、各サブピクチャのコーナー上に存在する画素を有する前記小領域を含む。一実装形態では、前記方法は、更に、前記小領域が前記第3のタイプであると判断されたときに、前記コーナー上でバタフライ画像を使用して、各サブピクチャを拡張するステップを含む。
【0007】
[0007] 別の実装形態では、大サイズ画像アップスケーリングシステムを開示する。前記システムは、大きなサイズの入力画像を複数のサブピクチャに分割するように構成される画像分割部と、各サブピクチャの周囲に余分の画素を追加することによって前記複数のサブピクチャのうちの各サブピクチャを拡張して、拡大されたサブピクチャを生成するように構成されるサブピクチャ拡張部であって、前記拡大されたサブピクチャをニューラルネットワークに送って、前記拡大されたサブピクチャをトレーニング及びアップスケーリングするようにする、サブピクチャ拡張部と、前記拡大されてアップスケーリングされたサブピクチャを受け取って、元のサブピクチャのサイズにアップスケーリング係数を掛けたものに対応するサイズにトリミングするように構成されるサブピクチャトリミング部と、前記複数のサブピクチャのうちの全てのトリミングされたサブピクチャを連結して、出力画像を再構成するように構成される画像充填部と、を含む。
【0008】
[0008] 一実装形態では、前記サブピクチャ拡張部は、各サブピクチャの周囲に前記余分の画素の小領域を追加することによって、各サブピクチャの周囲に前記余分の画素を追加する。一実装形態では、小領域を追加することは、前記小領域毎にタイプを決定することを含む。一実装形態では、前記小領域の第1のタイプは、前記大きなサイズの入力画像のアクティブピクチャエリア内に完全に存在する画素を有する前記小領域を含む。一実装形態では、前記サブピクチャ拡張部は、更に、前記小領域が前記第1のタイプであると判断されたときに、各サブピクチャを前記小領域の方向に拡張するように構成される。一実装形態では、前記小領域の第2のタイプは、前記大きなサイズの入力画像のアクティブピクチャエリア内に存在するのではなく、拡張された各サブピクチャのエッジ上に存在する画素を有する前記小領域を含む。一実装形態では、前記サブピクチャ拡張部は、更に、前記小領域が前記第2のタイプであると判断されたときに、前記エッジ上でバタフライ画像を使用して、各サブピクチャを拡張するように構成される。一実装形態では、前記小領域の第3のタイプは、前記大きなサイズの入力画像のアクティブピクチャエリア内に存在するのではなく、拡張された各サブピクチャのコーナー上に存在する画素を有する前記小領域を含む。一実装形態では、前記サブピクチャ拡張部は、更に、前記小領域が前記第3のタイプであると判断されたときに、前記コーナー上でバタフライ画像を使用して、各サブピクチャを拡張するように構成される。
【0009】
[0009] 更に別の実装形態では、大きなサイズの入力画像をトレーニング及びアップスケーリングするためのコンピュータプログラムを記憶する非一時的コンピュータ可読記憶媒体を開示する。前記コンピュータプログラムは実行可能命令を含み、前記実行可能命令は、コンピュータに、前記大きなサイズの入力画像を複数の小さなサイズのサブピクチャに分割することと、対象パディング画素を使用して、前記複数の小さなサイズのサブピクチャのうちの各サブピクチャを拡大して、拡大されたサブピクチャを生成することと、MLベースのアップスケーラーを使用して各サブピクチャをアップスケーリングして、拡大されてアップスケーリングされたサブピクチャを生成することと、前記拡大されてアップスケーリングされたサブピクチャを、各サブピクチャの元のサイズにアップスケーリング係数を掛けたものに等しいアップスケーリングサイズにトリミングすることと、前記コンピュータに、前記複数のサブピクチャの拡大、アップスケーリング、及びトリミングを行わせる実行可能命令を繰り返すことと、前記複数のトリミングされたサブピクチャを連結して、出力画像を生成することと、を行わせる。
【0010】
[0010] 一実装形態では、コンピュータに各サブピクチャを拡大させる前記実行可能命令は、実行可能命令を含み、前記実行可能命令は、コンピュータに、各サブピクチャの周囲に余分の画素をパディングする方法を決定することと、前記余分の画素の小領域を追加することと、を行わせる。
【0011】
[0011] 本開示の態様を一例として示す本明細書からは、他の特徴及び利点も明らかになるはずである。
【0012】
[0012] 同じ部分を同じ参照数字によって示す添付図面を検討することにより、本開示の詳細をその構造及び動作の両方に関して部分的に収集することができる。
【図面の簡単な説明】
【0013】
【
図1A】6つの小さなサイズのサブピクチャに分割される大きなサイズの入力画像を示す図である。
【
図1B】サブピクチャの処理及びサブピクチャからの出力画像の形成を示す図である。
【
図2】本開示の一実装形態による、(
図1Bに関して説明した)拡大プロセスを示す詳細フロー図である。
【
図3】本開示の一実装形態による、大きなサイズの画像をトレーニング及びアップスケーリングするためのプロセスを示すフローチャートである。
【
図4】本開示の一実装形態によるパディングプロセスを示す詳細フローチャートである。
【
図5】本開示の一実装形態によるトリミングプロセスを示す詳細フローチャートである。
【
図6】本開示の一実装形態による、大サイズ画像アップスケーリングシステムを示すブロック図である。
【
図7A】本開示の一実装形態による、大サイズ画像アップスケーリングシステム及びユーザの図である。
【
図7B】本開示の一実装形態による、大サイズ画像アップスケーリングアプリケーションをホストするコンピュータシステムを示す機能ブロック図である。
【発明を実施するための形態】
【0014】
[0022] 上記のように、従来のMLベースのトレーニング及びアップスケーリングプロセスは、いくつかの問題がある。例えば、特に多くの層を有するディープニューラルネットワークで対象画像サイズが増加すると、MLベースのトレーニング及びアップスケーリングに必要なメモリサイズが指数関数的に増加する。アドバンストニューラルネットワークベースのトレーニング及びアップスケーリングプロセスを使用しながら、必要なメモリサイズを実用的な範囲内で維持するために、入力/出力画像サイズから独立した方法が望まれる。
【0015】
[0023] 従来のプロセスの上記の問題に対処するために、本開示のいくつかの実装形態は、(1)大きなサイズの入力画像を複数の小さなサイズのサブピクチャに分割することと、(2)サブピクチャの周囲の対象パディング画素によって、各サブピクチャを拡大することと、(3)拡大されたサブピクチャをアップスケーリングすることと、(4)拡大されてアップスケーリングされたサブピクチャから画像エリアをトリミングすることと、(5)トリミングされたサブピクチャ画像を連結して、アップスケーリングされた出力画像を再構成することと、を提供するものである。
【0016】
[0024] これらの説明を読んだ後には、様々な実装及び用途における本開示の実施方法が明らかになるであろう。本明細書では本開示の様々な実装について説明するが、これらの実装は、限定ではなく一例として提示するものにすぎないと理解されたい。したがって、様々な実装についての詳細な説明は、本開示の範囲又は外延を限定するものとして解釈すべきではない。
【0017】
[0025]
図1A及び
図1Bは、本開示の一実装形態による、大きなサイズの画像をトレーニング及びアップスケーリングするためのプロセスを示すフロー図を形成する。一実装形態では、大きなサイズの画像は、高精細(HD)以上の画像を含む。例えば、HD画像は、1920x1080画素の解像度を有すると定義することができ、一方、4Kなどのより高解像度の画像は、3840x2160画素の解像度を有すると定義することができる。したがって、HD画像又は4K画像は、大きなサイズの画像として分類することができ、該画像は、トレーニングのための複雑なニューラルネットワーク層への1つの単一入力画像として処理することができない。
【0018】
[0026]
図1Aに示す実装形態は、6つの小さなサイズのサブピクチャ110、120、130、140、150、160に分割される大きなサイズの入力画像100を示す。
図1Bは、サブピクチャの処理及びサブピクチャからの出力画像の形成を示す。
図1Bは、6つのサブピクチャのうちの2つに対するプロセスを示す。しかしながら、残りの4つのサブピクチャも、図示の2つのサブピクチャに対するプロセスと同様に処理することができる。
【0019】
[0027] 小さなサイズのサブピクチャがどのくらい小さい必要があるかに留意することは、トレーニングに使用されるニューラルネットワークのメモリサイズ及び複雑さに依存する。すなわち、メモリサイズが大きいほど、より大きなサイズのサブピクチャを用いる処理が可能になり、一方、ニューラルネットワークが複雑になるほど、より小さなサイズのサブピクチャが必要になる。一例では、トレーニングのために送ることができるサブピクチャの最大サイズは、64x64画素又は128x128画素である。
【0020】
[0028]
図1Bに示す実装形態では、サブピクチャのうちの各サブピクチャ130、160を別個に処理する。最初に、拡大プロセス170を使用して、サブピクチャの周囲の対象パディング画素によって、各サブピクチャを拡大する。この拡大プロセス170は、
図2に示され、
図2の説明の項で詳細に説明する。
【0021】
[0029]
図1Bに示す実装形態では、(拡大プロセス170によって)各サブピクチャをパディングして、拡大されたサブピクチャ132、162を形成する。次に、(ニューラルネットワークベースのアップスケーリングプロセス180によって)拡大されたサブピクチャ132、162をアップスケーリングする。したがって、
図1Bのアップスケーリングプロセス180では、必要なメモリサイズは、入力画像全体のサイズではなく、各サブピクチャのサイズ及びニューラルネットワークの複雑さによって規定される。
【0022】
[0030]
図1Bは、拡大されてアップスケーリングされたサブピクチャ134、164を示す。拡大されてアップスケーリングされたサブピクチャ134、164の各々をトリミングして、サブピクチャ136、166の元の画像エリアを生成する。トリミングされたサブピクチャ画像116、126、136、146、156、166を連結して、アップスケーリングされた出力画像190を再構成する。
【0023】
[0031]
図2は、本開示の一実装形態による、(
図1Bに関して説明した)拡大プロセス170を示す詳細フロー図である。
図2に示す実装形態は、追加のパディング/画素領域A、B、Cを用いて、1つのサブピクチャ130を拡大して、拡大されたサブピクチャ132を生成することを示す。
図2は、サブピクチャ130についてのみ拡大プロセスを示すが、サブピクチャ130についてここで説明されるのと同じプロセスを使用して、残りのサブピクチャを拡大することができる。
【0024】
[0032] 一実装形態では、サブピクチャ130に追加されるべき追加のパディング/画素領域は、8つの小領域(例えば、2つの側部、上部及び下部、及び4つのコーナー)を含む。この実装形態では、8つの小領域は、3つのタイプのパッド設計(例えば、A、B、C)に分類される。
【0025】
[0033] 一例では、タイプAのパッド設計は、アクティブピクチャエリア100内に存在する小領域のために使用される。したがって、タイプAのパッド設計は、画像エリアを4方向に拡張することによって形成される。
図2では、タイプAのパッド設計は、左の小領域、下の小領域、及び左下コーナーの小領域のために使用される。したがって、拡大されたサブピクチャ132は、画像エリアを4方向に拡張することによって、それらの小領域(すなわち、左の小領域、下の小領域、及び左下コーナーの小領域)を形成することを示している。
【0026】
[0034] 別の例では、タイプBのパッド設計は、アクティブピクチャエリア100内に存在するのではなく、エッジ(例えば、左、右、上、又は下)に存在する小領域のために使用される。したがって、タイプBのパッド設計は、エッジ上でバタフライ画像を使用して形成される。
図2では、タイプBのパッド設計は、アクティブピクチャエリア100内に存在せず且つコーナーのいずれにも存在しない、上の小領域及び右の小領域のために使用される。したがって、拡大されたサブピクチャ132は、エッジ上でバタフライ画像を使用して、それらの小領域(すなわち、上の小領域及び右の小領域)を形成することを示している。
【0027】
[0035] 別の例では、タイプCのパッド設計は、アクティブピクチャエリア100内に存在するのではなく、コーナー(例えば、左上コーナー、右上コーナー、左下コーナー、又は右下コーナー)に存在する小領域のために使用される。したがって、タイプCのパッド設計は、コーナー点上でバタフライ画像を使用して形成される。
図2では、タイプCのパッド設計は、アクティブピクチャエリア100内に存在せず且つコーナーに存在する、左上コーナーの小領域、右上コーナーの小領域、及び右下コーナーの小領域のために使用される。したがって、拡大されたサブピクチャ132は、コーナー点上でバタフライ画像を使用して、それらの小領域(すなわち、左上コーナーの小領域、右上コーナーの小領域、及び右下コーナーの小領域)を形成することを示している。
【0028】
[0036]
図3は、本開示の一実装形態による、大きなサイズの画像をトレーニング及びアップスケーリングするためのプロセス300を示すフローチャートである。
図3に示す実装形態では、ブロック310において、大きなサイズの入力画像を複数の小さなサイズのサブピクチャに分割する。
図1Aは、6つの小さなサイズのサブピクチャ110、120、130、140、150、160に分割される大きなサイズの入力画像100の一例を示す。
【0029】
[0037] ブロック320において、サブピクチャの周囲の対象パディング画素を使用して、各サブピクチャを拡大する。一実装形態では、拡大プロセスは、各サブピクチャの周囲に余分のパディング/画素を追加して、拡大されたサブピクチャを生成することを含む。各サブピクチャに余分のパディング/画素をどのように追加するかについての詳細は、
図2に示すフロー図及び
図4に示すフローチャートに示す。
【0030】
[0038] 一実装形態では、ブロック330において、パディングされた各サブピクチャをMLベースのアップスケーリングプロセッサ(例えば、ニューラルネットワーク)に送って、パディングされてアップスケーリングされたサブピクチャを生成する。ブロック340において、パディングされてアップスケーリングされた各サブピクチャを、サブピクチャの元のサイズにアップスケーリング係数を掛けたサイズにトリミングする。ブロック350において、処理されるべきサブピクチャが更に存在すると判断した場合、プロセス300はブロック320に向かって、更なるサブピクチャを処理する。ブロック360において、全てのトリミングされたサブピクチャを連結して、出力画像を再構成する。
【0031】
[0039]
図4は、本開示の一実装形態によるパディングプロセス(
図3のブロック320)を示す詳細フローチャートである。
図4に示す実装形態では、ブロック400において、サブピクチャの周囲に画素をパディングする方法を最初に決定する。一実装形態では、サブピクチャの周囲にパディングするべき画素を、複数の小領域(タイプA、B、及びC)にグループ化する。
【0032】
[0040]
図4に示す実装形態では、パディングするべき画素を、3つの小領域にグループ化する。ブロック410において、サブピクチャの周囲にパディングするべき各小領域が、アクティブピクチャエリア(例えば、
図1Aの100)内に存在する第1のタイプ(例えば、
図2のタイプA)であるかどうかを判断するためにチェックする。次に、小領域がアクティブピクチャエリア内に存在する場合、ブロック412において、サブピクチャの画像エリアを小領域の方向に拡張する。
【0033】
[0041] 一方で、ブロック420において、小領域がアクティブピクチャエリアの外側であると判断されるが、エッジに存在する場合(例えば、
図2のタイプB)、ブロック422において、エッジ上でバタフライ画像を使用して、サブピクチャをパディングする。上記のように、タイプBのパッド設計は、アクティブピクチャエリア内に存在せず且つコーナーのいずれにも存在しない、上の小領域及び右の小領域のために使用される。
【0034】
[0042] 一方で、ブロック430において、小領域がアクティブピクチャエリアの外側であると判断されるが、コーナーに存在する場合(例えば、
図2のタイプC)、ブロック432において、コーナー点上でバタフライ画像を使用して、サブピクチャをパディングする。上記のように、タイプCのパッド設計は、アクティブピクチャエリア内に存在せず且つコーナーに存在する、左上コーナーの小領域、右上コーナーの小領域、及び右下コーナーの小領域のために使用される。
【0035】
[0043] ブロック440において、処理すべき小領域が更に存在すると判断した場合、ブロック450において、プロセスは次の小領域に進んで、ブロック410に戻る。そうでない場合には、プロセスを終了する。
【0036】
[0044]
図4のプロセス320のブロック410、420、430を特定の順序で配置しているが、これらのブロックは、プロセス320の結果に影響を及ぼすことなく、任意の順序で実行することができる。
【0037】
[0045]
図5は、本開示の一実装形態によるトリミングプロセス(
図3のブロック340)を示す詳細フローチャートである。
図5に示す実装形態では、ブロック500において、拡大されてアップスケーリングされたサブピクチャを受け取る。ブロック510において、サブピクチャの元のサイズ及びアップスケーリング係数を決定する。次に、ブロック520において、元のサイズにアップスケーリング係数を掛けることによって、アップスケーリングサイズを決定する。ブロック530において、サブピクチャをアップスケーリングサイズにトリミングする。ブロック540において、トリミングされたサブピクチャを出力する。
【0038】
[0046]
図6は、本開示の一実装形態による、大サイズ画像アップスケーリングシステム600を示すブロック図である。
図6に示す実装形態では、大サイズ画像アップスケーリングシステム600は、画像分割部610と、サブピクチャ拡張部620と、サブピクチャトリミング部640と、画像充填部650とを含む。
【0039】
[0047]
図6に示す実装形態では、画像分割部610は、大きなサイズの入力画像を複数の小さなサイズのサブピクチャに分割するように構成される。一実装形態では、大きなサイズの入力画像を、複数の小さな等しいサイズのサブピクチャに分割する。サブピクチャ拡張部620は、サブピクチャの周囲に余分のパディング/画素を追加することによってサブピクチャを拡張して、拡大されたサブピクチャを生成するように構成される。
【0040】
[0048]
図6に示す実装形態では、拡大されたサブピクチャをMLベースのアップスケーリングプロセッサ(例えば、ニューラルネットワーク630)に送って、拡大されてアップスケーリングされたサブピクチャを生成する。サブピクチャトリミング部640は、拡大されてアップスケーリングされたサブピクチャを、アップスケーリングプロセス前の元のサブピクチャのサイズにアップスケーリング係数を掛けたものに対応するサイズにトリミングするように構成される。画像充填部650は、全てのトリミングされたサブピクチャを連結して、出力画像を再構成するように構成される。
【0041】
[0049] 一実装形態では、大サイズ画像アップスケーリングシステム600は、1又は2以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲート/ロジックアレイ(FPGA)、又はその他の等価集積又はディスクリート論理回路を含むハードウェアで全体が構成されるシステムである。別の実装形態では、大サイズ画像アップスケーリングシステム600は、ハードウェアとソフトウェアの組み合わせで構成される。
【0042】
[0050]
図7Aは、本開示の一実装形態による、大サイズ画像アップスケーリングシステム700及びユーザ702の図である。ユーザ702は、コンピュータシステム700を使用して、アップスケーリングプロセスにおけるフレーム処理のためのアプリケーションを実装する。
【0043】
[0051] コンピュータシステム700は、
図7Bの大サイズ画像アップスケーリングアプリケーション790を記憶して実行する。更に、コンピュータシステム700は、ソフトウェアプログラム704と通信することができる。ソフトウェアプログラム704は、大サイズ画像アップスケーリングアプリケーションのためのソフトウェアコードを含むことができる。ソフトウェアプログラム704は、以下で更に説明するように、CD、DVD又はストレージドライブなどの外部媒体にロードすることができる。
【0044】
[0052] 更に、コンピュータシステム700は、ネットワーク780に接続することができる。ネットワーク780は、様々な異なるアーキテクチャ、例えば、クライアント-サーバアーキテクチャ、ピアツーピアネットワークアーキテクチャ、又は他のタイプのアーキテクチャにおいて接続することができる。例えば、ネットワーク780は、大サイズ画像アップスケーリングアプリケーション内で使用されるエンジン及びデータを協調させるサーバ785と通信することができる。また、ネットワークは、異なるタイプのネットワークとすることができる。例えば、ネットワーク780は、インターネット、ローカルエリアネットワーク又はローカルエリアネットワークの任意の変形、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、イントラネット又はエクストラネット、又は無線ネットワークとすることができる。
【0045】
[0053]
図7Bは、本開示の一実装形態による、大サイズ画像アップスケーリングアプリケーション790をホストするコンピュータシステム700を示す機能ブロック図である。コントローラ710はプログラマブルプロセッサであり、コンピュータシステム700及びそのコンポーネントの動作を制御する。コントローラ710は、メモリ720又は内蔵コントローラメモリ(図示せず)から(例えば、コンピュータプログラムの形で)命令をロードして、これらの命令を実行してシステムを制御する。その実行において、コントローラ710は、大サイズ画像アップスケーリングアプリケーション790にソフトウェアシステムを提供して、例えば、大サイズ画像アップスケーリングアプリケーション内のエンジン及びデータ抽出部の作成及び構成を可能にする。代替的に、このサービスは、コントローラ710又はコンピュータシステム700において別個のハードウェアコンポーネントとして実装することができる。
【0046】
[0054] メモリ720は、コンピュータシステム700の他のコンポーネントによって使用するためにデータを一時的に記憶する。一実装形態では、メモリ720はRAMとして実装される。一実装形態では、メモリ720は、また、フラッシュメモリ及び/又はROMなどの長期又は永久メモリを含む。
【0047】
[0055] ストレージ730は、コンピュータシステム700の他のコンポーネントによって使用するために、データを一時的に又は長期間にわたって記憶する。例えば、ストレージ730は、大サイズ画像アップスケーリングアプリケーション790によって使用されるデータを記憶する。一実装形態では、ストレージ730は、ハードディスクドライブである。
【0048】
[0056] メディアデバイス740は、リムーバブルメディアを受け入れて、挿入されたメディアに対してデータの読み出し及び/又は書き込みを行う。一実装形態では、例えば、メディアデバイス740は、光ディスクドライブである。
【0049】
[0057] ユーザインターフェイス750は、コンピュータシステム700のユーザからユーザ入力を受け取ってユーザ702に情報を提示するためのコンポーネントを含む。一実装形態では、ユーザインターフェイス750は、キーボード、マウス、オーディオスピーカ、及びディスプレイを含む。コントローラ710は、ユーザ702からの入力を使用して、コンピュータシステム700の動作を調整する。
【0050】
[0058] I/Oインターフェイス760は、1又は2以上のI/Oポートを含み、外部記憶又は補足装置(例えば、プリンタ又はPDA)などの対応するI/Oデバイスに接続する。一実装形態では、I/Oインターフェイス760のポートは、USBポート、PCMCIAポート、シリアルポート、及び/又はパラレルポートなどのポートを含む。別の実装形態では、I/Oインターフェイス760は、外部装置と無線で通信するための無線インターフェイスを含む。
【0051】
[0059] ネットワークインターフェイス770は、イーサネット接続をサポートするRJ-45又は「Wi-Fi」インターフェイス(802.11を含むが、これに限定されるわけではない)などの有線及び/又は無線ネットワーク接続を含む。
【0052】
[0060] コンピュータシステム700は、コンピュータシステムに典型的な追加のハードウェア及びソフトウェア(例えば、電力、冷却、オペレーティングシステム)を含むが、これらのコンポーネントは、簡略化のために、
図7Bに具体的に示されていない。他の実装形態では、コンピュータシステムの異なる構成を使用することができる(例えば、異なるバス又はストレージ構成又はマルチプロセッサ構成)。
【0053】
[0061] 開示した実装についての本明細書の説明は、当業者が本開示を実施又は利用できるように行ったものである。当業者には、これらの実装の多数の修正が容易に明らかになると思われ、また本明細書で定義した原理は、本開示の趣旨又は範囲から逸脱することなく他の実装にも適用することができる。例えば、上記の説明は、大きなサイズの画像をアップスケーリングすることの問題に言及しているが、アップスケーリングの難点は、より大きいビット深さ(例えば、16ビットの深さ対8ビットの深さ)で画像をアップスケーリングすることの難点を含む場合もある。したがって、本開示は、本明細書に示す実装に限定されることを意図するものではなく、本明細書で開示した原理及び新規の特徴と一致する最も広い範囲が与えられるべきである。
【0054】
[0062] 本開示の様々な実装は、電子ハードウェア、コンピュータソフトウェア、又はこれらの技術の組み合わせの形で実現される。いくつかの実装は、1又は2以上のコンピュータ装置により実行される1又は2以上のコンピュータプログラムを含む。一般に、コンピュータ装置は、1又は2以上のプロセッサ、1又は2以上のデータ記憶構成要素(例えば、ハードディスクドライブ及びフロッピーディスクドライブ、CD-ROMドライブ、及び磁気テープドライブなどの揮発性又は不揮発性メモリモジュール及び持続的な光学及び磁気記憶装置)、1又は2以上の入力装置(例えば、ゲームコントローラ、マウス及びキーボード)、及び1又は2以上の出力装置(例えば、ディスプレイ装置)を含む。
【0055】
[0063] コンピュータプログラムは、通常、持続的な記憶媒体に記憶され、実行時にメモリにコピーされる実行可能なコードを含む。少なくとも1つのプロセッサが、所定の順序でメモリからプログラム命令を取り出すことによって、コードを実行する。プログラムコードの実行中には、コンピュータは、入力及び/又は記憶装置からデータを受け取り、データに対して処理を実行し、これにより得られたデータを出力及び/又は記憶装置に供給する。
【0056】
[0064] 当業者であれば、本明細書で説明した様々な例示的なモジュール及び方法ステップを電子ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせとして実装することができると理解するであろう。このハードウェアとソフトウェアの互換性を明確に示すために、本明細書では、様々な例示的なモジュール及び方法ステップについて、一般にこれらの機能面から説明した。このような機能をハードウェア又はソフトウェアのいずれとして実装するかは、特定の用途及びシステム全体に課せられる設計制約に依存する。当業者であれば、説明した機能を各特定の用途のために様々な方法で実装することができるが、このような実装の決定を、本開示の範囲からの逸脱を引き起こすものとして解釈すべきではない。また、モジュール又はステップ内の機能のグループ化は、説明を容易にするためのものである。本開示から逸脱することなく、特定の機能を1つのモジュール又はステップから別のモジュール又はステップへ移すことができる。
【0057】
[0065] 上記の各実施例の全ての特徴が、本開示の特定の実装において必ずしも必要というわけではない。更に、本明細書で提示した説明及び図面は、本開示が広く意図する主題を表すものであると理解されたい。更に、本開示の範囲は、当業者にとって明らかになり得る他の実装を完全に含み、したがって、本開示の範囲は、添付の特許請求の範囲以外のものによって限定されるものではないと理解されたい。
【符号の説明】
【0058】
100 大きなサイズの入力画像/アクティブピクチャエリア
110,120,130,140,150,160 サブピクチャ
116,126,136,146,156,166 トリミングされたサブピクチャ画像
132,162 拡大されたサブピクチャ
134,164 拡大されてアップスケーリングされたサブピクチャ
170 拡大プロセス
180 アップスケーリングプロセス
190 アップスケーリングされた出力画像
300 大きなサイズの画像をトレーニング及びアップスケーリングするためのプロセス
310 入力画像を小さなサイズのサブピクチャに分割
320 各サブピクチャの周囲に余分のパディングを追加することによって、各サブピクチャを拡大
330 MLベースのアップスケーリングを適用
340 拡大されてアップスケーリングされた各サブピクチャを、サブピクチャの元のサイズにスケーリング係数を掛けたサイズにトリミング
350 処理すべきサブピクチャが更に存在するか?
360 全てのトリミングされたサブピクチャを連結して、出力画像を再構成
400 サブピクチャの周囲に小領域をパディングする方法を決定
410 小領域がアクティブピクチャエリア内に存在するか?
412 小領域の方向に拡張
420 エッジか?
422 エッジ上でバタフライ画像を使用して、小領域をパディング
430 コーナーか?
432 コーナー点上でバタフライ画像を使用して、小領域をパディング
440 判断すべき小領域が更に存在するか?
450 次の小領域に進む
500 拡大されてアップスケーリングされたサブピクチャを受け取る
510 サブピクチャの元のサイズ及びスケーリング係数を決定
520 元のサイズにスケーリング係数を掛けることによって、アップスケーリングサイズを決定
530 サブピクチャをアップスケーリングサイズにトリミング
540 トリミングされたサブピクチャを出力
600 大サイズ画像アップスケーリングシステム
610 画像分割部
620 サブピクチャ拡張部
630 ニューラルネットワーク
640 サブピクチャトリミング部
650 画像充填部
700 大サイズ画像アップスケーリングシステム/コンピュータシステム
702 ユーザ
704 ソフトウェアプログラム
710 コントローラ
720 メモリ
730 ストレージ
740 メディアデバイス
750 ユーザインターフェイス
760 I/Oインターフェイス
770 ネットワークインターフェイス
780 ネットワーク
785 サーバ
790 大サイズ画像アップスケーリングアプリケーション
【国際調査報告】