(57)【特許請求の範囲】
【請求項１】
複数のタイルに区分けされた入力画像の符号化された表現を生成する要求を、1つまたは複数のコンピュータを含む画像エンコーダシステムによって受け取るステップと、
前記入力画像の前記符号化された表現を前記画像エンコーダシステムによって生成するステップとを含む方法であって、
前記符号化された表現が、前記複数のタイルの各々に関する2進符号のそれぞれの組を含み、
前記生成するステップが、前記複数のタイルのうちの特定のタイルに関して、
入力タイルの予測である出力タイルを生成するために前記入力タイルに関するコンテキストを処理するために訓練された空間コンテキスト予測ニューラルネットワークを使用して前記特定のタイルに関するコンテキストを処理するステップであって、前記コンテキストが、前記入力画像内で前記特定のタイルに隣接する1つまたは複数のタイルを含む、ステップと、
前記特定のタイルと、前記特定のタイルに関する前記コンテキストを処理することによって、前記空間コンテキスト予測ニューラルネットワークによって生成された前記出力タイルとの間の残差画像を決定するステップと、
エンコーダのニューラルネットワークを使用して前記残差画像を符号化することによって、前記特定のタイルに関する2進符号の組を生成するステップとを含み、
前記エンコーダのニューラルネットワークが、複数の時間ステップの各々において、
前記時間ステップのためのエンコーダ入力を受け取ることと、
前記時間ステップに関する2進符号の組を生成するために前記エンコーダ入力を処理することとによって、
残差を符号化するように構成された再帰型ニューラルネットワークであり、
前記複数の時間ステップのうちの第1の時間ステップのための前記エンコーダ入力が、
前記残差画像であり、
前記第1の時間ステップの後の前記複数の時間ステップのうちの時間ステップのための前記エンコーダ入力が、(i)前記残差と、(ii)前の時間ステップにおいて2進符号の前記組からデコーダのニューラルネットワークによって生成された再構築との間の暫定残差画像である、
方法。
【請求項２】
データ圧縮アルゴリズムを使用して、前記符号化された表現の前記2進符号を圧縮することによって、前記入力画像を圧縮するステップをさらに含む、
請求項1に記載の方法。
【請求項３】
前記データ圧縮アルゴリズムが、訓練されたエントロピーコーダである、
請求項2に記載の方法。
【請求項４】
前記入力画像の解凍のために、圧縮された入力画像を画像デコーダシステムに送るステップをさらに含む、
請求項2または3に記載の方法。
【請求項５】
前記デコーダのニューラルネットワークが、前記複数の時間ステップの各々において、
前記時間ステップに関する2進符号の前記組を含むデコーダ入力を受け取り、前記時間ステップにおいて前記エンコーダ入力の再構築を生成するために前記デコーダ入力を処理するように構成される再帰型ニューラルネットワークである、
請求項1に記載の方法。
【請求項６】
前記特定のタイルに関する2進符号の前記組を生成するステップが、前記複数の時間ステップの各々において、
前記時間ステップおよび任意の以前の時間ステップにおいて既に生成された前記2進符号から再構築されるときに前記特定のタイルに関する品質の閾値が満たされたかどうかを、前記時間ステップのための前記エンコーダ入力の前記再構築から判定するステップを含む、
請求項5に記載の方法。
【請求項７】
前記特定のタイルに関する2進符号の前記組を生成するステップが、
前記品質の閾値が満たされたとの判定に応じて、前記既に生成された2進符号を、前記入力画像の前記符号化された表現における前記特定のタイルに関する2進符号の前記組として使用するステップを含む、
請求項6に記載の方法。
【請求項８】
前記特定のタイルに関する2進符号の前記組を生成するステップが、複数の時間ステップの各々において、
前記特定のタイルが現在の時間ステップにおいて生成された2進符号の前記組から再構築されるときに前記特定のタイルに関する品質の閾値が満たされたかどうかを判定するステップと、
前記品質の閾値が満たされるとの判定に応じて、前記特定のタイルに関して前記現在の時間ステップにおいて生成された2進符号の前記組を、前記入力画像の前記符号化された表現における前記特定のタイルに関する2進符号の前記組として使用するステップとを含む、
請求項1から4のいずれか一項に記載の方法。
【請求項９】
前記特定のタイルが前記入力画像の左または上の境界上にない場合、前記コンテキストが、前記入力画像内の前記特定のタイルの左および上の隣接するタイルである、
請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記特定のタイルが、前記入力画像の左の境界上にありかつ前記入力画像の左上の角にない場合、前記コンテキストが、前記特定のタイルの上の隣接するタイルおよびプレースホルダ内のコンテキストデータである、
請求項9に記載の方法。
【請求項１１】
前記特定のタイルが前記入力画像の前記左上の角にある場合、前記コンテキストが、前記プレースホルダ内のコンテキストデータである、
請求項10に記載の方法。
【請求項１２】
前記特定のタイルが前記入力画像の上の境界上にありかつ前記入力画像の前記左上の角にない場合、前記コンテキストが、前記特定のタイルの左の隣接するタイルおよび前記プレースホルダ内のコンテキストデータである、
請求項10または11に記載の方法。
【請求項１３】
入力画像の符号化された表現から前記入力画像を再構築する要求を、1つまたは複数のコンピュータを含む画像デコーダシステムによって受け取るステップであって、前記入力画像が、複数のタイルに区分けされており、前記符号化された表現が、前記複数のタイルの各々に関する2進符号のそれぞれの組を含む、ステップと、
前記入力画像の再構築を前記画像デコーダシステムによって生成するステップとを含む方法であって、
前記生成するステップが、前記複数のタイルのうちの特定のタイルに関して、
入力タイルの最初の再構築画像である出力タイルを生成するために前記入力タイルに関するコンテキストを処理するために訓練された空間コンテキスト予測ニューラルネットワークを使用して前記特定のタイルに関するコンテキストを処理するステップであって、
前記コンテキストが、前記入力画像内で前記特定のタイルに隣接する1つまたは複数のタイルの再構築を含む、ステップと、
デコーダのニューラルネットワークを使用して前記タイルに関する2進符号の組を処理することによって、前記特定のタイルの残差再構築画像を生成するステップと、
前記特定のタイルの最後の再構築を生成するために、前記最初の再構築画像と前記特定のタイルの前記残差再構築画像とを合成するステップを含み、
前記特定のタイルに関する2進符号の前記組が、複数の時間ステップの各々に関する2進符号のそれぞれのサブセットを含み、
前記デコーダのニューラルネットワークが、前記複数の時間ステップの各々において、
時間ステップ再構築残差画像を生成するために、前記時間ステップに関する2進符号の前記サブセットを処理し、
前記残差再構築画像を生成するために、前記複数の時間ステップのうちの第1の時間ステップに関する前記サブセットを処理し、
(i)前記残差再構築画像と、(ii)前の時間ステップにおいて2進符号の前記組から前記デコーダのニューラルネットワークによって生成された再構築と、の間の暫定残差画像を生成するために、前記第1の時間ステップの後の前記複数の時間ステップのうちの時間ステップに関する2進符号の前記サブセットを処理する、
ことによって、残差を生成するように構成された再帰型ニューラルネットワークである、
方法。
【請求項１４】
前記再構築を生成するステップが、
圧縮された入力画像を受け取るステップと、
前記タイルに関する2進符号の前記それぞれの組を生成するためにデータ解凍アルゴリズムを使用して、前記圧縮された入力画像を解凍するステップとをさらに含む、
請求項13に記載の方法。
【請求項１５】
前記データ解凍アルゴリズムが、訓練されたエントロピーデコーダである、
請求項14に記載の方法。
【請求項１６】
再構築残差画像を生成することが、
前記複数の時間ステップに関する前記時間ステップ再構築残差画像を合成することを含む、
請求項13から15のいずれか一項に記載の方法。
【請求項１７】
前記特定のタイルが前記入力画像の左または上の境界上にない場合、前記コンテキストが、前記入力画像内の前記特定のタイルの左および上の隣接するタイルの再構築である、
請求項13から16のいずれか一項に記載の方法。
【請求項１８】
前記特定のタイルが前記入力画像の左の境界上にありかつ前記入力画像の左上の角にない場合、前記コンテキストが、前記特定のタイルの上の隣接するタイルの再構築およびプレースホルダ内のコンテキストデータである、
請求項17に記載の方法。
【請求項１９】
前記特定のタイルが前記入力画像の前記左上の角にある場合、前記コンテキストが、前記プレースホルダ内のコンテキストデータである、
請求項18に記載の方法。
【請求項２０】
前記特定のタイルが前記入力画像の上の境界上にありかつ前記入力画像の前記左上の角にない場合、前記コンテキストが、前記特定のタイルの左の隣接するタイルの再構築および前記プレースホルダ内のコンテキストデータである、
請求項18または19に記載の方法。
【請求項２１】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに請求項1から20のいずれか一項に記載の方法を実行させるための命令を記憶する1つまたは複数の記憶装置とを含む、
システム。
【請求項２２】
1つまたは複数のコンピュータに請求項1から20のいずれか一項に記載の方法を実行させるための命令を記憶する、
コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ニューラルネットワークを使用して画像を圧縮し、再構築することに関する。
【背景技術】
【０００２】
ニューラルネットワークは、受け取られた入力に関する出力を予測するために非線形ユニットの1つまたは複数の層を使用する機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれの組の現在の値に従って、受け取られた入力から出力を生成する。
【０００３】
一部のニューラルネットワークは、再帰型ニューラルネットワークである。再帰型ニューラルネットワークは、入力シーケンスを受け取り、入力シーケンスから出力シーケンスを生成するニューラルネットワークである。特に、再帰型ニューラルネットワークは、現在の時間ステップにおいて出力を計算する際に前の時間ステップからのネットワークの内部状態の一部またはすべてを使用し得る。再帰型ニューラルネットワークの例は、1つまたは複数の長期短期(LSTM: long short term)記憶ブロックを含むLSTMニューラルネットワークである。各LSTM記憶ブロックは、たとえば、現在の活性化(activation)を生成する際に使用するためまたはLSTMニューラルネットワークのその他の構成要素に提供されるための、セルに関する前の状態をセルが記憶することを可能にする、入力ゲート、忘却ゲート、および出力ゲートをそれぞれが含む1つまたは複数のセルを含み得る。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書は、タイル型深層ネットワークを使用する画像圧縮および再構築のためのテクノロジーを説明する。概して、これらのテクノロジーは、入力画像をタイルに分割することと、各タイル内のピクセル値の最初の予測を行うために空間コンテキスト(spatial context)を使用することと、残差を漸次符号化することとを含む。
【０００５】
概して、本明細書に記載の主題の1つの革新的な態様は、画像圧縮および再構築の行為を含む方法に具現化され得る。この態様のその他の実施形態は、方法の行為を実行するようにそれぞれが構成された対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶装置上に記録される可能性があるコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムが特定の動作または行為を実行するように構成されることは、システムが、動作中にシステムに動作または行為を実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムに関して、特定の動作または行為を実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作または行為を実行させる命令を含むことを意味する。
【０００６】
上述のおよびその他の実施形態は、それぞれ任意で以下の特徴のうちの1つまたは複数を単独でまたは組み合わせて含むことが可能である。特に、1つの実施形態が、以下の特徴をすべて組み合わせて含む。
【０００７】
画像エンコーダシステムは、タイルに区分けされた入力画像の符号化された表現を生成する要求を受け取る可能性がある。それから、画像エンコーダシステムは、入力画像の符号化された表現を生成する。符号化された表現は、タイルの各々に関する2進符号のそれぞれの組を含む。特定のタイルに関する符号化された表現を生成することは、入力タイルの予測である出力タイルを生成するために入力タイルに関するコンテキストを処理するために訓練された空間コンテキスト予測ニューラルネットワークを使用して特定のタイルに関するコンテキストを処理することを含む可能性がある。コンテキストは、入力画像内の特定のタイルに隣接する1つまたは複数のタイルを含む可能性がある。残差画像が、特定のタイルと、特定のタイルに関するコンテキストを処理することによって空間コンテキスト予測ニューラルネットワークによって生成された出力タイルとの間で決定される可能性があり、特定のタイルに関する2進符号の組が、エンコーダのニューラルネットワークを使用して残差画像を符号化することによって生成される可能性がある。
【０００８】
入力画像は、データ圧縮アルゴリズムを使用して、符号化された表現の2進符号を圧縮することによって圧縮される可能性がある。データ圧縮アルゴリズムは、訓練されたエントロピーコーダである可能性がある。圧縮された入力画像は、入力画像の解凍のために画像デコーダシステムに送られる可能性がある。
【０００９】
エンコーダのニューラルネットワークは、各時間ステップにおいて、時間ステップのためのエンコーダ入力を受け取ることと、時間ステップに関する2進符号の組を生成するためにエンコーダ入力を処理することとによって残差を符号化するように構成された再帰型ニューラルネットワークである可能性がある。第1の時間ステップのためのエンコーダ入力は、残差画像である可能性がある。第1の時間ステップの後の時間ステップのためのエンコーダ入力は、(i)残差と、(ii)前の時間ステップにおいて2進符号の組からデコーダのニューラルネットワークによって生成された再構築との間の暫定残差画像である可能性があり、デコーダのニューラルネットワークは、各時間ステップにおいて、時間ステップに関する2進符号の組を含むデコーダ入力を受け取り、時間ステップにおいてエンコーダ入力の再構築を生成するためにデコーダ入力を処理するように構成される再帰型ニューラルネットワークである。
【００１０】
特定のタイルに関する2進符号の組を生成することが、各時間ステップにおいて、時間ステップおよび任意の以前の時間ステップにおいて既に生成された2進符号から再構築されるときに特定のタイルに関する品質の閾値が満たされたかどうかを、時間ステップのためのエンコーダ入力の再構築から判定することを含む。
【００１１】
特定のタイルに関する2進符号の組を生成することが、品質の閾値が満たされたとの判定に応じて、既に生成された2進符号を、入力画像の符号化された表現における特定のタイルに関する2進符号の組として使用することを含む可能性がある。
【００１２】
特定のタイルに関する2進符号の組を生成することは、各時間ステップにおいて、特定のタイルが現在の時間ステップにおいて生成された2進符号の組から再構築されるときに特定のタイルに関する品質の閾値が満たされたかどうかを判定することと、品質の閾値が満たされるとの判定に応じて、特定のタイルに関して現在の時間ステップにおいて生成された2進符号の組を、入力画像の符号化された表現における特定のタイルに関する2進符号の組として使用することとを含む可能性がある。
【００１３】
特定のタイルが入力画像の左または上の境界上にない場合、コンテキストは、入力画像内の特定のタイルの左および上の隣接するタイルである可能性がある。
【００１４】
特定のタイルが入力画像の左の境界上にあり、入力画像の上の境界にない場合、コンテキストは、特定のタイルの上の隣接するタイルおよびプレースホルダコンテキストデータ(placeholder context data)である可能性がある。
【００１５】
特定のタイルが入力画像の左上の角にある場合、コンテキストは、プレースホルダコンテキストデータである可能性がある。
【００１６】
特定のタイルが入力画像の上の境界上にあり、入力画像の左上の角にない場合、コンテキストは、特定のタイルの左の隣接するタイルおよびプレースホルダコンテキストデータである可能性がある。
【００１７】
別の実施形態は、入力画像の符号化された表現から入力画像を再構築する要求を受け取ることを含む可能性があり、入力画像は、タイルに区分けされる可能性があり、符号化された表現は、タイルの各々に関する2進符号のそれぞれの組を含む可能性がある。入力画像の再構築が、入力タイルの最初の再構築画像である出力タイルを生成するために入力タイルに関するコンテキストを処理するために訓練された空間コンテキスト予測ニューラルネットワークを使用して特定のタイルに関するコンテキストを処理することによって特定のタイルに関して生成される可能性がある。コンテキストは、入力画像内の特定のタイルに隣接する1つまたは複数のタイルの再構築を含む可能性がある。特定のタイルの残差再構築画像が、デコーダのニューラルネットワークを使用してタイルに関する2進符号の組を処理することによって生成することによって生成される可能性があり、最初の再構築画像が、特定のタイルの最後の再構築を生成するために特定のタイルの残差再構築画像と合成される可能性がある。
【００１８】
再構築を生成することは、圧縮された入力画像を受け取ることと、タイルに関する2進符号のそれぞれの組を生成するためにデータ解凍アルゴリズムを使用して、圧縮された入力画像を解凍することとを含む可能性がある。
【００１９】
データ解凍アルゴリズムは、訓練されたエントロピーデコーダである可能性がある。
【００２０】
特定のタイルに関する2進符号の組は、各時間ステップに関する2進符号のそれぞれのサブセットを含む可能性がある。デコーダのニューラルネットワークは、各時間ステップにおいて、時間ステップ再構築残差画像を生成するために時間ステップに関する2進符号のサブセットを処理することによって残差を生成するように構成された再帰型ニューラルネットワークである可能性がある。
【００２１】
再構築残差画像を生成することは、時間ステップに関する時間ステップ再構築残差画像を合成することを含む可能性がある。
【００２２】
本明細書に記載の対象は、以下の利点のうちの1つまたは複数を実現するように特定の実施形態に実装され得る。本明細書に記載の画像圧縮および再構築システムは、タイル型畳み込みニューラルネットワークを使用して深層畳み込みニューラルネットワーク(deep convolutional neural network)の利点をビットレートの適応と組み合わせる。システムは、画像を符号化し、復号するために画像タイルに関する空間コンテキスト予測データと真の画像タイルとの間の残差を使用する。このプロセスは、高品質の出力を引き続き生成しながら、エンコーダからデコーダに送られる必要があるデータを少なくする結果となる。特に、圧縮されたビットがタイル全体ではなく残差を表しさえすればよいので、空間コンテキスト予測ニューラルネットワークの使用のおかげで、所与のタイルが、より少ないビット、またはより小さなサイズに圧縮され得るビットのより複雑でない列を使用して表される可能性がある。
【００２３】
通常の画像圧縮技術においては、局所的な情報の共有が、近くの2進符号への従属関係を生じ、画像全域のビットレートの調整を難しくする。ニューラルネットワークに基づく既存の画像圧縮アルゴリズムは、各画像全域で一定の空間ビットレート(spatial bit rate)を用いる量子化された表現を学習する。対照的に、説明されるタイル型畳み込みニューラルネットワークのブロックに基づくアーキテクチャを使用することによって、画像圧縮システムは、局所的な再構築の品質に基づくビットレートの適用の実装を大幅に簡単にしながらも、解像度の柔軟性および局所的な情報の共有を実現する。
【００２４】
さらに、適応的なビット割り当ては、モデルが畳み込み層のみで構成されている(fully-convolutional)ので既存のニューラルネットワーク圧縮アーキテクチャにおいては難しい。そのようなネットワークが2進符号のすべてが存在するようにして訓練される場合、欠けた符号のある再構築は、不定的に悪くなり得る。
【００２５】
システムは、各タイル内で2進符号からの情報を共有することによって不定的に悪い再構築を避ける。この方針は、近隣のタイルの品質を落とすことなくタイルの1つのエリア内でビットレートが下げられることを可能にする。システムは、空間コンテキスト予測ニューラルネットワーク、残差符号化ニューラルネットワーク、および残差復号ニューラルネットワークを使用して画像の詳細を正確に再構築し、物体の境界にまたがるピクセル値を予測する。システムは、比較的離れたピクセルの間の相関を利用し、したがって、タイル間で一貫している視覚的情報を再符号化するコストを避ける。
【００２６】
別の利点は、タイル型の適応的な手法が、一定の品質(たとえば、画像全体で同様のPSNR)で画像を符号化することをより容易にすることであり、それが、主観評価を改善する。
【００２７】
本明細書の対象の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。対象のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【００２８】
【図１】画像を圧縮し、再構築するための、タイル型畳み込みニューラルネットワークを用いた空間適応的な手法を使用する例示的な画像圧縮および再構築システムを示す図である。
【図２ａ】例示的なコンテキストパッチ(context patch)を示す図である。
【図２ｂ】例示的なコンテキストパッチを示す図である。
【図２ｃ】例示的なコンテキストパッチを示す図である。
【図２ｄ】例示的なコンテキストパッチを示す図である。
【図３】例示的な空間コンテキスト予測ニューラルネットワークを示す図である。
【図４】例示的な残差エンコーダのニューラルネットワークを示す図である。
【図５ａ】空間適応的な手法を使用して画像を圧縮し、再構築するための例示的なプロセスを示す図である。
【図５ｂ】空間適応的な手法を使用して画像を圧縮し、再構築するための例示的なプロセスを示す図である。
【図６】空間適応的な手法を使用して、圧縮された画像を復号するための例示的なプロセスを示す図である。
【発明を実施するための形態】
【００２９】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【００３０】
本明細書は、概して、画像を圧縮し、再構築するための、タイル型畳み込みニューラルネットワークを用いた空間適応的な手法を使用する画像圧縮および再構築システムおよび方法を説明する。
【００３１】
画像圧縮は、デジタル画像を記憶または送信するコストを削減するためにデジタル画像に適用されるある種のデータ圧縮である。この画像圧縮は、可逆であるかまたは非可逆である可能性がある。可逆圧縮は、元のデータが圧縮されたデータから完全に再構築されることを可能にし、一方、非可逆圧縮は、元のデータの近似の再構築を提供する。
【００３２】
例示的な画像圧縮および再構築システムは、非可逆画像圧縮のための、タイル型畳み込みニューラルネットワークを用いた、ブロックに基づく空間適応的な手法を使用する。
【００３３】
図1は、例示的な画像圧縮および再構築システム100を示す。画像圧縮および再構築システム100は、以下で説明されるシステム、構成要素、および技術が実装され得る、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。システム100は、タイル型ニューラルネットワークを使用して、品質に影響を受けるビットレートの空間適応を用いて入力画像104を圧縮し、入力画像の画像再構築を決定する。この空間適応は、より複雑なまたは視覚的に目立つ入力画像の領域を優先的に記述することによってシステムが追加のビットをより効果的に使用することを可能にする。図1はシステムの符号化構成要素と復号構成要素との両方を同じシステムの一部として示すが、一部の実装において、構成要素は、別々のシステムであり、別々のコンピューティングデバイスに置かれることが可能である。たとえば、1つの例示的な実装において、符号化構成要素、つまり、入力画像を圧縮するために必要なそれらの構成要素は、サーバに置かれることが可能であり、復号構成要素、つまり、入力画像を再構築するために必要なそれらの構成要素は、クライアントデバイスに置かれることが可能である。
【００３４】
動作中、画像圧縮および再構築システム100は、圧縮されることになる入力画像104を取り込み、分割エグゼキュータ106が、画像をタイルに分割する。たとえば、入力画像104は、それぞれが32×32ピクセルから形成されるタイルに分割されるか、または任意のその他の好適な数のピクセルのタイルに分割される可能性がある。
【００３５】
それから、システム100は、画像104を1タイルずつ符号化する。
【００３６】
各タイルに関して、空間コンテキストプレディクタ108が、「コンテキストパッチ」を生成するために、隣接するタイルを空間コンテキストとして使用する。
【００３７】
図2a〜図2dは、目標タイル202の値がまだ処理されていない例示的な64×64のコンテキストパッチ200a〜dを示す。特定のタイル202aが入力画像の左または上の境界上にない場合、図2aに示されるように、空間コンテキストは、入力画像内の特定のタイルの左および上の隣接するタイル204a、206a、208を使用して生成される。特定のタイル202bが入力画像の左の境界上にあり、入力画像の左上の角にない場合、図2bに示されるように、空間コンテキストは、特定のタイル202bの上の隣接するタイル204aを使用して生成される。図2cは、特定のタイル202cが入力画像の左上の角にある場合に、特定のタイル202cに関する空間コンテキストがプレースホルダコンテキストデータを用いて生成されることを示す。図2dは、特定のタイル202dが入力画像の上の境界上にあり、入力画像の左上の角にない場合に、空間コンテキストが特定のタイル205dの左の隣接する画像およびプレースホルダコンテキストデータを使用して生成されることを示す。
【００３８】
再び図1を参照すると、空間コンテキストプレディクタ108は、入力タイルの予測である出力タイルを生成するために入力タイルに関するコンテキストを処理するために訓練されるニューラルネットワークである。たとえば、空間コンテキストプレディクタ108は、入力タイルに関する画像コンテキストパッチ、たとえば、図2a〜図2dに示される64×64ピクセルのコンテキストパッチを受け取り、入力タイルの予測を生成することができる。空間コンテキストプレディクタは、図3に関連して下でより詳細に検討される。
【００３９】
それから、システム100は、再構築画像の詳細を埋めるために残差ネットワーク(residual network) 130を使用する。残差ネットワーク130は、再帰型オートエンコーダ(recurrent auto-encoder)に基づくディープネットワークである。残差ネットワーク130は、エンコーダ110およびデコーダ114を含む。エンコーダ110およびデコーダ114のニューラルネットワークのための例示的な再帰型アーキテクチャが、G. Toderici、D. Vincent、N. Johnston、S.J. Hwang、D. Minnen、J. Shor、およびM. Covell、「Full resolution image compression with recurrent neural networks」、CoRR、vol. abs/1608.05148、2016年に記載されており、この文献の内容全体は、特にエンコーダおよびデコーダのニューラルネットワークのための再帰型アーキテクチャに関連して、参照により本明細書に組み込まれる。
【００４０】
各タイルに関して、エンコーダ110は、真の画像タイルと最初の予測との間の残差を符号化する。一部の実装において、エンコーダは、符号化を反復して実行する。各反復で、エンコーダ110は、反復のためのエンコーダ入力を受け取り、タイルの符号化されたバージョンを表す入力画像の各タイルに関する2進符号の組を生成するためにエンコーダ入力を符号化する。最初の繰り返しで、エンコーダ入力は、真の画像タイルと最初の予測との間の残差である。エンコーダ110は、残差を符号化して2進符号を生成し、前の反復から残っている残差を捕捉するためにデコーダ114を使用して2進数から入力を再構築する。復号されたピクセル値は、記憶され(122)、後続のタイルを予測するためのコンテキストとして使用される。最初の反復の後、各反復で、エンコーダ入力は、前の反復からの残差タイルである。タイルを再構築し、前の反復から残っている残差を捕捉することによって、システムは、元の入力のより近い近似を次々と提供する。
【００４１】
残差ネットワーク130は、画像入力104のすべてのタイルが処理されるまで符号化プロセスを反復的に続ける。そして、画像圧縮および再構築システム100は、画像に関する圧縮された2進数140を提供する。
【００４２】
一部の実装においては、タイルが符号化されると、残差ネットワークは、符号化された残差142、つまり、2進符号または圧縮された2進符号を、復号するためにデコーダ128に送る可能性がある。画像の復号は、ラスタ順に1タイルずつ進行する。画像圧縮および再構築システム100は、予測されたタイルを得るためにタイルに関するコンテキストに対してデコーダのための空間コンテキストプレディクタ124を実行する。コンテキストは、既に再構築されたタイル150を使用して取得され得る。デコーダ128は、実際の復号されたタイルと空間コンテキストプレディクタ124からの予測されたタイルとの間の残差を得るために2進符号を反復的に復号する。そして、コンバイナ132が、復号された残差と予測されたタイルとを合成してタイルの完全な再構築150を得る。空間コンテキストプレディクタ124は、ビットレートを上げることなくタイルの境界をまたがって情報を共有することによってタイル間の境界アーチファクトの起こり得る発生を防ぐことによって有利であり得る。本質的に、コンテキスト予測ニューラルネットワークは、ピクセルのコンテキストとうまく合わさるピクセルを生成することができ、タイルの予測されたピクセルはコンテキストピクセルの近くでより詳細で正確であるので、ネットワークは、境界アーチファクトを最小化するように働くことができる。デコーダ128は、ニューラルネットワークである。デコーダのニューラルネットワークのための例示的な再帰型アーキテクチャが、G. Toderici、D. Vincent、N. Johnston、S.J. Hwang、D. Minnen、J. Shor、およびM. Covell、「Full resolution image compression with recurrent neural networks」、CoRR、vol. abs/1608.05148、2016年に記載されており、この文献の内容全体は、特にデコーダのニューラルネットワークのための再帰型アーキテクチャに関連して、参照により本明細書に組み込まれる。
【００４３】
画像圧縮および再構築システム100は、空間コンテキストプレディクタ108のための訓練エンジン116、および残差符号化ネットワーク130のための訓練エンジン118も含む。空間コンテキストプレディクタ108と残差符号化ネットワーク130との両方が、順番に訓練される。空間コンテキストプレディクタ108は、入力タイルの予測である出力タイルを生成するために入力タイルに関するコンテキストを処理するために訓練される。残差エンコーダのネットワークは、空間コンテキストプレディクタを実行した後、各タイル内の残差を圧縮するように訓練される。エンコーダのネットワークは、空間コンテキストの予測後に残る特定のピクセルの誤差を符号化することを学習する。各訓練プロセスは、32枚の画像のミニバッチサイズと、ステップサイズ20,000を用い、指数関数的減衰スケジュール(exponential decay schedule) (B = 0.95)に従う初期学習率0.5とを使用する可能性がある。一部の実装において、2つのネットワークは、一緒に訓練される可能性がある。その他の実装において、2つのネットワークは、別々に訓練される可能性がある。
【００４４】
訓練データは、コンテキスト画像パッチ、たとえば、図2a〜図2dに示される64×64の画像パッチである可能性がある。これらの画像パッチは、画像の集合から刈り取られる可能性がある。訓練手順は、G. Toderici、D. Vincent、N. Johnston、S.J. Hwang、D. Minnen、J. Shor、およびM. Covell、「Full resolution image compression with recurrent neural networks」、CoRR、vol. abs/1608.05148、2016年に記載された訓練手順と同様である可能性があり、この文献の内容全体は、特に訓練手順に関連して、参照により本明細書に組み込まれる。
【００４５】
図1は符号化構成要素および復号構成要素ならびに空間コンテキストプレディクタを同じシステムの一部として示すが、一部の実装において、構成要素は、別々のシステムであり、別々のコンピューティングデバイスに置かれることが可能である。たとえば、実施形態において、エンコーダ110は、サーバに置かれることが可能であり、デコーダ114は、クライアントデバイスに置かれることが可能である。空間コンテキストプレディクタ108は、第3のコンピューティングデバイス上にある可能性がある。
【００４６】
図3は、空間コンテキストプレディクタのネットワークの例示的なアーキテクチャ300を示す。空間コンテキストプレディクタのネットワークは、コンテキストタイルから特徴を抽出するためにストライド付きの畳み込み(strided convolution)を使用し、目標タイルに関するRGBの予測を生成するためにフラクショナル畳み込み(fractional convolution)を使用する。
【００４７】
空間コンテキストプレディクタは、(3チャネル)コンテキストパッチ302を入力として取り込む。プレディクタは、4つの畳み込み層310、311、312、313を使用して入力を処理する。これらの層の各々は、削減された解像度およびより大きな深さ(depth)の特徴マップを学習する。そして、プレディクタは、Deepak Pathak、Philipp Krahenbuhl、Jeff Donahue、Trevor Darrell、およびAlexei Efrosによって「Context encoders: Feature learning by Inpainting」、CVPR、2016年において説明されたように、チャネル毎の全結合層(channel-wise, fully-connected layer)を実装するために深さ毎の畳み込み層(depth-wise convolutional layer) 320とそれに続く点毎の畳み込み層(pointwise convolutional layer) 321とを使用し、上記文献の内容全体は、特にチャネル毎の全結合層に関連して、参照により本明細書に組み込まれる。この層は、全結合層の2次のコスト全部を負うことなくタイル全体に情報が伝播することを可能にする。
【００４８】
ネットワークの最後の段階において、プレディクタは、最後の層が前の32×32×64の特徴マップから3チャネルの画像を生成して目標の予測340を生成するまで、フラクショナル畳み込み層330、331、332を使用して空間解像度を漸増させる。
【００４９】
それから、システムは、実際のタイルと、空間コンテキスト予測ニューラルネットワークによって生成された目標の予測340との間の残差画像を決定する。残差ネットワークが、各タイル内の残差を圧縮するために残差画像タイルを処理する。
【００５０】
図4は、残差画像を圧縮し、再構築する例示的な残差ネットワーク400を示す。残差ネットワーク400は、各層が定義された高さ、幅、および深さを有する再帰型オートエンコーダのアーキテクチャを使用する。空間コンテキストプレディクタは、それぞれの新しいタイルに関する正確な低周波数(low frequency)データを生成することができる。空間コンテキストプレディクタが多くの画像の詳細を復元することができない場合、再構築の品質が、再帰型オートエンコーダのアーキテクチャによる残差画像の圧縮および再構築によって改善され得る。各反復で、残差エンコーダは、入力から特徴を抽出し、それらの特徴を量子化して128ビットを生成する。図4は、4回の反復を示す。
【００５１】
各時間ステップにおいて、残差エンコーダのネットワークは、時間ステップのためのエンコーダ入力を受け取り、時間ステップに関する2進符号の組を生成するためにエンコーダ110を使用して入力を処理する。第1の時間ステップに関して、エンコーダ入力は、空間コンテキスト予測ニューラルネットワークの目標の予測と入力画像の実際のタイルとの間の残差画像である。
【００５２】
システムは、データ圧縮アルゴリズム、たとえば、訓練されたエントロピーコーダを使用して符号化された表現の2進符号を圧縮することによって入力画像を圧縮する。システムは、入力画像の解凍のために、圧縮された入力画像を画像デコーダに送る可能性がある。
【００５３】
デコーダ114は、これらの2進符号から入力を再構築することを学習する。
【００５４】
再構築は、タイルに関する2進符号のそれぞれの組を生成するために、圧縮された2進符号を解凍することを含む可能性がある。各反復は、前の反復から残っている残差(Pi)を捕捉しようと試み、したがって、反復の出力の総和が元の出力の継続的に向上する近似を提供する。
【００５５】
第1の時間ステップの後の時間ステップのためのエンコーダ入力は、(i)残差と、(ii)前の時間ステップにおいて2進符号の組からデコーダのニューラルネットワークによって生成された再構築との間の暫定残差画像である。
【００５６】
ネットワークのエンコーダ部分は、入力残差画像から特徴を抽出するために1つの畳み込み層を使用し、その後に、空間解像度を減らし、特徴マップを生成する3つの畳み込みLSTM層を使用する。重みは、すべての反復で共有され、再帰型の結合が、情報が1つの反復から次の反復に伝播することを可能にする。
【００５７】
バイナリボトルネック層(binary bottleneck layer)402は、1×1畳み込みと、その後のtanh活性化関数とを使用して、入ってくる特徴を(-1, 1)にマッピングする。システムは、パラメータ空間の探索を促進するためにtanhの出力からサンプリングする(P(b=1) = 0.5-(1 + tanh(x)))。例示的なサンプリングのさらなる詳細は、Raiko、M. Berglund、G. Alain、およびL. Dinhによって「Techniques for learning binary stochastic feedforward neural networks」、ICLR、2015年において説明されており、サンプリングに関するこの文献の内容は、参照により本明細書に組み込まれる。システムが訓練されたネットワークを本物の画像に適用するとき、システムは、確定的に(deterministically) 2値化する(x = 0のときはb = 1であるものとして、b = sign (tanh(x)))。
【００５８】
図4に示されていないが、デコーダ114は、エンコーダ110と同じ構造を有する。しかし、デコーダ114は、各特徴マップの解像度を上げるためにフラクショナル畳み込みを使用する。最後の層は、32×32×64の形状の特徴マップであるデコーダの出力を取得し、tanh活性化を使用して特徴を[-1, 1]の範囲内の3つの値にマッピングする。そして、出力は、8ビットのRGB値へとスケーリングされ、切り捨てられ、量子化される(R = round (min (max (R1 * 142 + 128,0), 255)))。システムは128ではなく142によりスケーリングして、非常に低速な学習につながり得るとても小さな勾配のtanhの範囲に入ることなくネットワークが極端なピクセル値をより容易に予測することを可能にする。
【００５９】
システムは、特定のタイルが現在の時間ステップまたは任意の以前の時間ステップにおいて既に生成された2進符号から再構築されるときに特定のタイルに関する品質の閾値が満たされたかどうかを判定することによって、各時間ステップにおいて特定のタイルに関する2進符号の組を生成する。品質の閾値は、たとえば、再構築された画像に関する目標品質を表す所定の閾値であることが可能である。品質の閾値が満たされた場合、システムは、既に生成された2進符号を、入力画像の符号化された表現における特定のタイルに関する2進符号の組として使用する。この適応的な手法は、残差エンコーダがいずれかのステップの後に停止され得る再帰型ネットワークであることによって容易にされる。各ステップがさらなるビットを生成するので、このメカニズムは、異なるタイルの間の適応的なビット割り当てを可能にし、したがって、単一のニューラルネットワークが異なるビットレートの符号化を生成することを可能にし得る。
【００６０】
図5は、タイル型畳み込みニューラルネットワークを用いた空間適応的な手法を使用して画像を圧縮し、再構築するための例示的なプロセス500の流れ図である。便宜上、プロセス500は、1つまたは複数の場所に置かれ、本明細書に従って適切にプログラミングされた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラミングされた画像圧縮および再構築システム、たとえば、図1の画像圧縮および再構築システム100が、プロセス500を実行することができる。
【００６１】
図5aおよび図5bに示されるように、画像圧縮および再構築システムは、タイルに区分けされた入力画像の符号化された表現を生成する要求を受け取る(502)。次いでシステムは、入力画像の各タイルに関する2進符号のそれぞれの組を含む入力画像の符号化された表現を生成する(504)。システムは、空間コンテキスト予測ニューラルネットワークを使用して特定のタイルに関するコンテキストを最初に処理することによって符号化された表現を生成する(506)。上述のように、空間コンテキスト予測ニューラルネットワークは、入力タイルの予測である出力タイルを生成するために入力タイルに関するコンテキストを処理するために訓練される。それから、システムは、特定の入力タイルと、空間コンテキスト予測ニューラルネットワークによって生成された出力タイルとの間の残差画像を決定する(507)。システムは、エンコーダのニューラルネットワークを使用して残差画像を符号化することによって特定のタイルに関する2進符号の組を生成する(508)。この符号化プロセスは、図4に関連して上で説明されている。
【００６２】
図6は、空間適応的な手法を使用して圧縮された画像を復号するための例示的なプロセス600の流れ図である。便宜上、プロセス600は、1つまたは複数の場所に置かれ、本明細書に従って適切にプログラミングされた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラミングされた画像圧縮および再構築システム、たとえば、図1の画像圧縮および再構築システム100が、プロセス600を実行することができる。
【００６３】
図6に示されるように、画像圧縮および再構築システムは、既に復号された(または再構築された)特定のタイルに関するコンテキストタイル決定する(602)。そして、システムは、目標タイルの最初の再構築を生成するために空間コンテキスト予測ネットワークを使用してコンテキストタイルを処理する(604)。システムは、デコーダのニューラルネットワークを使用して特定のタイルに関する2進符号を処理することによって残差再構築画像を生成する(606)。それから、システムは、最後の再構築タイルを得るために残差再構築画像を最初の再構築と合成する(608)。
【００６４】
本明細書に記載の対象の実施形態および機能的動作は、本明細書で開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的ストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。コンピュータ記憶媒体は、機械可読記憶装置、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化されることが可能である。
【００６５】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA (フィールドプログラマブルゲートアレイ)またはASIC (特定用途向け集積回路)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことが可能である。
【００６６】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは記載される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。プログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、データ通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。
【００６７】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するための1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行されることが可能である。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGAもしくはASICによって、または専用の論理回路と1つもしくは複数のプログラミングされたコンピュータとの組合せによって実行されることが可能である。
【００６８】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置に基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央演算処理装置およびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。また、概してコンピュータは、データを記憶するための1つもしくは複数の大容量記憶装置、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量記憶装置からデータを受信するか、もしくはそれらの大容量記憶装置にデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブル記憶装置、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【００６９】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【００７０】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT (ブラウン管)またはLCD (液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。また、コンピュータは、メッセージングアプリケーションを実行しているパーソナルデバイス、たとえば、スマートフォンにテキストメッセージまたはその他の形態のメッセージを送信し、返報としてユーザから応答メッセージを受信することによってユーザとインタラクションすることができる。
【００７１】
本明細書に記載の対象の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえば、インターネットを含む。
【００７２】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、たとえば、クライアントとして働くデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的でユーザデバイスにデータ、たとえば、HTMLページを送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザの結果
【００７３】
添付の請求項の実施形態および上述の実施形態に加えて、下の付番された実施形態も、革新的である。
【００７４】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定ともみなされるべきでなく、むしろ、特定の発明の特定の実施形態に特有である場合がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで動作するものとして上で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【００７５】
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である可能性がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【００７６】
実施形態1は、複数のタイルに区分けされた入力画像の符号化された表現を生成する要求を、1つまたは複数のコンピュータを含む画像エンコーダシステムによって受け取るステップと、入力画像の符号化された表現を画像エンコーダシステムによって生成するステップとを含み、符号化された表現が、複数のタイルの各々に関する2進符号のそれぞれの組を含み、生成するステップが、複数のタイルのうちの特定のタイルに関して、入力タイルの予測である出力タイルを生成するために入力タイルに関するコンテキストを処理するために訓練された空間コンテキスト予測ニューラルネットワークを使用して特定のタイルに関するコンテキストを処理することであって、コンテキストが、入力画像内で特定のタイルに隣接する1つまたは複数のタイルを含む、処理すること、特定のタイルと、特定のタイルに関するコンテキストを処理することによって空間コンテキスト予測ニューラルネットワークによって生成された出力タイルとの間の残差画像を決定すること、およびエンコーダのニューラルネットワークを使用して残差画像を符号化することによって特定のタイルに関する2進符号の組を生成することを含む方法である。
【００７７】
実施形態2は、データ圧縮アルゴリズムを使用して、符号化された表現の2進符号を圧縮することによって入力画像を圧縮するステップをさらに含む実施形態1の方法である。
【００７８】
実施形態3は、データ圧縮アルゴリズムが訓練されたエントロピーコーダである実施形態2の方法である。
【００７９】
実施形態4は、圧縮された入力画像を入力画像の解凍のために画像デコーダシステムに送るステップをさらに含む実施形態2または3のいずれか1つの方法である。
【００８０】
実施形態5は、エンコーダのニューラルネットワークが、複数の時間ステップの各々において、時間ステップのためのエンコーダ入力を受け取ることと、時間ステップに関する2進符号の組を生成するためにエンコーダ入力を処理することとによって残差を符号化するように構成された再帰型ニューラルネットワークである実施形態1から4のいずれか1つの方法である。
【００８１】
実施形態6は、複数の時間ステップのうちの第1の時間ステップのためのエンコーダ入力が残差画像である実施形態5の方法である。
【００８２】
実施形態7は、第1の時間ステップの後の複数の時間ステップのうちの時間ステップのためのエンコーダ入力が、(i)残差と、(ii)前の時間ステップにおいて2進符号の組からデコーダのニューラルネットワークによって生成された再構築との間の暫定残差画像であり、デコーダのニューラルネットワークが、複数の時間ステップの各々において、時間ステップに関する2進符号の組を含むデコーダ入力を受け取り、時間ステップにおいてエンコーダ入力の再構築を生成するためにデコーダ入力を処理するように構成される再帰型ニューラルネットワークである実施形態5または6のいずれか1つの方法である。
【００８３】
実施形態8は、特定のタイルに関する2進符号の組を生成することが、複数の時間ステップの各々において、時間ステップおよび任意の以前の時間ステップにおいて既に生成された2進符号から再構築されるときに特定のタイルに関する品質の閾値が満たされたかどうかを、時間ステップのためのエンコーダ入力の再構築から判定することを含む実施形態7の方法である。
【００８４】
実施形態9は、特定のタイルに関する2進符号の組を生成することが、品質の閾値が満たされたとの判定に応じて、既に生成された2進符号を、入力画像の符号化された表現における特定のタイルに関する2進符号の組として使用することを含む実施形態8の方法である。
【００８５】
実施形態10は、特定のタイルに関する2進符号の組を生成することが、複数の時間ステップの各々において、特定のタイルが現在の時間ステップにおいて生成された2進符号の組から再構築されるときに特定のタイルに関する品質の閾値が満たされたかどうかを判定することと、品質の閾値が満たされるとの判定に応じて、特定のタイルに関して現在の時間ステップにおいて生成された2進符号の組を、入力画像の符号化された表現における特定のタイルに関する2進符号の組として使用することとを含む実施形態1から6のいずれか1つの方法である。
【００８６】
実施形態11は、特定のタイルが入力画像の左または上の境界上にない場合、コンテキストが入力画像内の特定のタイルの左および上の隣接するタイルである実施形態1から10のいずれか1つの方法である。
【００８７】
実施形態12は、特定のタイルが入力画像の左の境界上にあり、入力画像の左上の角にない場合、コンテキストが特定のタイルの上の隣接するタイルおよびプレースホルダコンテキストデータである実施形態11の方法である。
【００８８】
実施形態13は、特定のタイルが入力画像の左上の角にある場合、コンテキストがプレースホルダコンテキストデータである実施形態12の方法である。
【００８９】
実施形態14は、特定のタイルが入力画像の上の境界上にあり、入力画像の左上の角にない場合、コンテキストが特定のタイルの左の隣接するタイルおよびプレースホルダコンテキストデータである実施形態11から13のいずれか1つの方法である。
【００９０】
実施形態15は、入力画像の符号化された表現から入力画像を再構築する要求を、1つまたは複数のコンピュータを含む画像デコーダシステムによって受け取るステップであって、入力画像が、複数のタイルに区分けされており、符号化された表現が、複数のタイルの各々に関する2進符号のそれぞれの組を含む、ステップと、入力画像の再構築を画像デコーダシステムによって生成するステップとを含み、生成するステップが、複数のタイルのうちの特定のタイルに関して、入力タイルの最初の再構築画像である出力タイルを生成するために入力タイルに関するコンテキストを処理するために訓練された空間コンテキスト予測ニューラルネットワークを使用して特定のタイルに関するコンテキストを処理することであって、コンテキストが、入力画像内で特定のタイルに隣接する1つまたは複数のタイルの再構築を含む、処理すること、デコーダのニューラルネットワークを使用してタイルに関する2進符号の組を処理することによって特定のタイルの残差再構築画像を生成すること、および特定のタイルの最後の再構築を生成するために最初の再構築画像と特定のタイルの残差再構築画像とを合成することを含む方法である。
【００９１】
実施形態16は、再構築を生成するステップが、圧縮された入力画像を受け取ることと、タイルに関する2進符号のそれぞれの組を生成するためにデータ解凍アルゴリズムを使用して、圧縮された入力画像を解凍することとをさらに含む実施形態15の方法である。
【００９２】
実施形態17は、データ解凍アルゴリズムが訓練されたエントロピーデコーダである実施形態16の方法である。
【００９３】
実施形態18は、特定のタイルに関する2進符号の組が、複数の時間ステップの各々に関する2進符号のそれぞれのサブセットを含み、デコーダのニューラルネットワークが、複数の時間ステップの各々において、時間ステップ再構築残差画像を生成するために時間ステップに関する2進符号のサブセットを処理することによって残差を生成するように構成された再帰型ニューラルネットワークである実施形態15から17のいずれか1つの方法である。
【００９４】
実施形態19は、再構築残差画像を生成することが、複数の時間ステップに関する時間ステップ再構築残差画像を合成することを含む実施形態18の方法である。
【００９５】
実施形態20は、特定のタイルが入力画像の左または上の境界上にない場合、コンテキストが入力画像内の特定のタイルの左および上の隣接するタイルの再構築である実施形態15から19のいずれか1つの方法である。
【００９６】
実施形態21は、特定のタイルが入力画像の左の境界上にあり、入力画像の左上の角にない場合、コンテキストが特定のタイルの上の隣接するタイルの再構築およびプレースホルダコンテキストデータである実施形態20の方法である。
【００９７】
実施形態22は、特定のタイルが入力画像の左上の角にある場合、コンテキストがプレースホルダコンテキストデータである実施形態21の方法である。
【００９８】
実施形態23は、特定のタイルが入力画像の上の境界上にあり、入力画像の左上の角にない場合、コンテキストが特定のタイルの左の隣接するタイルの再構築およびプレースホルダコンテキストデータである実施形態20から22のいずれか1つの方法である。
【００９９】
実施形態24は、1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されるときに1つまたは複数のコンピュータに実施形態1〜23のいずれか1つのそれぞれの方法の動作を実行させる命令を記憶する1つまたは複数の記憶装置とを含むシステムである。
【０１００】
実施形態25は、1つまたは複数のコンピュータによって実行されるときに1つまたは複数のコンピュータに実施形態1〜23のいずれか1つのそれぞれの方法の動作を実行させる命令を記憶する1つまたは複数のコンピュータ記憶媒体である。
【０１０１】
対象の特定の実施形態が、説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられた行為は、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序を必要としない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【０１０２】
100  画像圧縮および再構築システム
104  入力画像
106  分割エグゼキュータ
108  空間コンテキストプレディクタ
110  エンコーダ
114  デコーダ
116  訓練エンジン
118  訓練エンジン
124  空間コンテキストプレディクタ
128  デコーダ
130  残差ネットワーク
132  コンバイナ
140  画像に関する圧縮された2進数
142  符号化された残差
150  既に再構築されたタイル、タイルの完全な再構築
200a〜d  コンテキストパッチ
202  目標タイル
202a  特定のタイル
202b  特定のタイル
202c  特定のタイル
202d  特定のタイル
204a  隣接するタイル
204a  隣接するタイル
206a  隣接するタイル
208  隣接するタイル
300  アーキテクチャ
302  コンテキストパッチ
310  畳み込み層
311  畳み込み層
312  畳み込み層
313  畳み込み層
320  深さ毎の畳み込み層
321  点毎の畳み込み層
330  フラクショナル畳み込み層
331  フラクショナル畳み込み層
332  フラクショナル畳み込み層
340  目標の予測
400  残差ネットワーク
402  バイナリボトルネック層
500  プロセス
600  プロセス
【図１】
0006956803.tif 000002
【図２ａ】
0006956803.tif 000003
【図２ｂ】
0006956803.tif 000004
【図２ｃ】
0006956803.tif 000005
【図２ｄ】
0006956803.tif 000006
【図３】
0006956803.tif 000007
【図４】
0006956803.tif 000008
【図５ａ】
0006956803.tif 000009
【図５ｂ】
0006956803.tif 000010
【図６】
0006956803.tif 000011