本開示の実施形態は、潜在テンソルのエントロピ符号化及び復号化のための装置及び方法であって、潜在テンソルをセグメントに分けることと、アテンションレイヤを含むニューラルネットワークの1つ以上のレイヤによって要素の組を処理することによって潜在テンソルの現在要素のエントロピ符号化のための確率モデルを取得することとを含むものを提供する。
実施形態に従って、潜在テンソルのエントロピ符号化の方法であって、潜在テンソルを空間次元において複数のセグメントに分け、各セグメントが少なくとも1つの潜在テンソル要素を含むことと、少なくとも1つのアテンションレイヤを含むニューラルネットワークの1つ以上のレイヤによって複数のセグメントの配置を処理することと、処理された複数のセグメントに基づいて潜在テンソルの現在要素のエントロピ符号化のための確率モデルを取得することとを含む方法が提供される。
方法は、潜在テンソル内の空間相関、及び暗黙的なエントロピ推定のための空間適応を考慮する。アテンションメカニズムは、前にコーディングされた潜在セグメントの重要度を適応的に重み付けする。現在要素のエントロピモデリングへのセグメントの寄与は、それらの各々の重要度に対応する。よって、エントロピ推定の性能は改善される。
例示的な実施において、潜在テンソルを分けることは、潜在テンソルをチャネル次元において2つ以上のセグメントに分けることを含む。
潜在テンソルをチャネル次元においてセグメントに分けることで、コンテキストモデリングに交差チャネル相関を使用できるようになるので、エントロピ推定の性能は向上する。
例えば、配置を処理することは、事前定義された順序で複数のセグメントを配置することを含み、同じ空間座標を持つセグメントはグループにまとめられる。
そのような配置は、関連する処理順序により交差チャネル相関に焦点を当てることによってエントロピ推定の性能を向上させることができる。
例示的な実施において、配置を処理することは、異なる空間座標を持つセグメントが事前定義された順序で連続的に配置されるように、複数のセグメントを配置することを含む。
そのような配置は、関連する処理順序により空間相関に焦点を当てることによってエントロピ推定の性能を向上させることができる。
例えば、ニューラルネットワークによって処理することは、複数のセグメントの特徴を抽出するよう第1ニューラルサブネットワークを適用し、ニューラルネットワーク内の後続レイヤへの入力として第1ニューラルサブネットワークの出力を供給することを含む。
複数のセグメントの特徴を抽出するようニューラルネットワークの入力を処理することで、入力の独立した深層特徴に対してアテンションレイヤの注意を集めることができるようになる。
例示的な実施において、ニューラルネットワークによって処理することは、少なくとも1つのアテンションレイヤへの入力として複数のセグメントの位置情報を供給することを更に含む。
位置符号化により、アテンションレイヤは入力シーケンスの順序を利用できるようになる。
例示的な実施において、複数のセグメントの配置を処理することは、複数のセグメントからセグメントのサブセットを選択することを含み、サブセットは、ニューラルネットワーク内の後続レイヤへの入力として供給される。
セグメントのサブセットを選択することで、必要とされるメモリサイズの削減及び/又は必要とされる処理量の削減によって、より大きいサイズの潜在テンソルのサポートが可能になる。
例えば、ニューラルネットワーク内の少なくとも1つのアテンションレイヤによって処理することは、潜在テンソルの処理順内で現在要素に続くアテンションレイヤ内の要素をマスキングするマスクを適用することを更に含む。
マスクを適用することは、前に符号化された要素のみが処理され得ることを確かにするので、コーディング順序が保たれる。マスクは、復号化側での情報の利用可能性を符号化側に反映する。
例示的な実施において、ニューラルネットワークは第2ニューラルサブネットワークを含み、第2ニューラルサブネットワークは、アテンションレイヤの出力を処理する。
ニューラルサブネットワークは、符号化に使用されるシンボルの確率を供給するよう、アテンションレイヤによって出力された特徴を処理して、効率的な符号化及び/又は復号化を可能にすることができる。
例えば、第1ニューラルサブネットワーク及び第2ニューラルサブネットワークのうちの少なくとも1つはマルチレイヤパーセプトロンである。
マルチレイヤパーセプトロンは、ニューラルネットワークの効率的な実施をもたらし得る。
例示的な実施において、ニューラルネットワーク内の少なくとも1つのアテンションレイヤはマルチヘッドアテンションレイヤである。
マルチヘッドアテンションレイヤは、入力の異なる表現を並行して処理して、同じ入力の様々な視点に対応するより多くの投影及びアテンション計算を提供することによって、確率の推定を改善し得る。
例えば、ニューラルネットワーク内の少なくとも1つのアテンションレイヤはトランスフォーマサブネットワークに含まれる。
トランスフォーマサブネットワークは、アテンションメカニズムの効率的な実施をもたらし得る。
例示的な実施において、方法は、ニューラルネットワークによる処理の前に、複数のセグメントの配置の始まりをゼロセグメントでパディングすることを更に有する。
配置の始まりでのゼロによるパディングは、復号化側での情報の利用可能性を反映するので、コーディング順序の因果関係は保たれる。
例えば、方法は、取得された確率モデルを用いて、現在要素を第1ビットストリームにエントロピ符号化することを更に有する。
アテンションレイヤを含むニューラルネットワークによって複数のセグメントを処理することで得られた確率モデルを使用することで、ビットストリームのサイズを小さくすることができる。
例示的な実施において、方法は、潜在テンソルを、セグメントに分ける前に量子化することを更に有する。
量子化された潜在テンソルは簡略化された確率モデルをもたらすので、より効率的な符号化プロセスを可能にする。また、そのような潜在的なテンソルは圧縮され、そして、低減された複雑性で処理され、ビットストリーム内でより効率的に表現され得る。
例えば、方法は、計算複雑性、及び/又は第1ビットストリームの特性に従って、エントロピ符号化のための確率モデルを選択することを更に有する。
コンテキストモデリングストラテジの選択を可能にすることは、符号化プロセス中のより良い性能を可能にし、符号化されたビットストリームを所望のアプリケーションに適応させることにおいて柔軟性をもたらすことができる。
例示的な実施において、方法は、ハイパー潜在テンソルを取得するよう潜在テンソルをハイパー符号化することと、ハイパー潜在テンソルを第2ビットストリームにエントロピ符号化することと、第2ビットストリームをエントロピ復号することと、ハイパー潜在テンソルをハイパー復号することによってハイパーデコーダ出力を取得することとを更に有する。
ハイパープライアモデルを導入することで、潜在テンソル内の更なる冗長性を決定することによって、確率モデルを、ひいては、コーディング効率を更に改善することができる。
例えば、方法は、ハイパーデコーダ出力を複数のハイパーデコーダ出力セグメントに分け、各ハイパーデコーダ出力が1つ以上のハイパーデコーダ出力要素を含むことと、複数のセグメントの中の各セグメントについて、確率モデルを取得する前に、当該セグメントを、複数のハイパーデコーダ出力セグメントの中のハイパーデコーダ出力セグメントの組と連結させることとを更に有する。
確率モデルは、ハイパーデコーダ出力を複数のセグメントの中の各々のセグメントと連結させることによって、更に改善され得る。
例示的な実施において、各々のセグメントと連結されるハイパーデコーダ出力セグメントの組は、当該各々のセグメントに対応するハイパーデコーダ出力セグメント、又は当該各々のセグメントと同じチャネルに対応する複数のハイパーデコーダ出力セグメント、又は当該各々のセグメントに空間的に近接している複数のハイパーデコーダ出力セグメント、又は当該各々のセグメントに空間的に近接している近隣セグメントと、該近隣セグメントと同じチャネルに対応するセグメントとを含む複数のハイパーデコーダ出力セグメント、のうちの1つ以上を含む。
確率モデルは、ハイパーデコーダ出力セグメントの各々の組を含めることによって、更に改善され得る。性能及び複雑性の挙動は、ハイパーデコーダ出力セグメントの組及び符号化されるコンテンツに依存し得る。
方法は、計算複雑性、及び/又第1ビットストリームの特性に従って、ハイパーデコーダ出力セグメントの組を適応的に選択することを更に有する。
追加のハイパープライアモデリングストラテジの選択を可能にすることは、符号化プロセス中のより良い性能を可能にし、符号化されたビットストリームを所望のアプリケーションに適応させることにおいて柔軟性をもたらすことができる。
例示的な実施において、ニューラルネットワークによって処理すること、及び現在要素をエントロピ符号化すること、のうちの1つ以上のステップが、複数のセグメントの中の各セグメントについて並行して実行される。
セグメントの並列処理は、ビットストリームへのより速い符号化をもたらすことができる。
実施形態に従って、画像データを符号化する方法であって、自己符号化畳み込みニューラルネットワークにより画像データを処理することによって潜在テンソルを取得することと、上記の方法のいずれかに従って生成された確率モデルを用いて潜在テンソルをビットストリームにエントロピ符号化することとを有する方法が提供される。
画像再構成のための潜在テンソルが依然としてかなりのサイズを持っている可能性があるということで、例えば、ピクチャ又はビデオの伝送又は記憶が望まれる場合に、データレートを有効に低減させるために、エントロピコーディングは画像符号化に簡単かつ有利に適用され得る。
実施形態に従って、潜在テンソルのエントロピ復号化の方法であって、潜在テンソルをゼロで初期化することと、潜在テンソルを空間次元において複数のセグメントに分け、各セグメントが少なくとも1つの潜在テンソル要素を含むことと、少なくとも1つのアテンションレイヤを含むニューラルネットワークの1つ以上のレイヤによって複数のセグメントの配置を処理することと、処理された複数のセグメントに基づいて潜在テンソルの現在要素のエントロピ復号化のための確率モデルを取得することとを有する方法が提供される。
方法は、潜在テンソル内の空間相関、及び暗黙的なエントロピ推定のための空間適応を考慮する。アテンションメカニズムは、前にコーディングされた潜在セグメントの重要度を適応的に重み付けする。現在要素のエントロピモデリングへのセグメントの寄与は、それらの各々の重要度に対応する。よって、エントロピ推定の性能は改善される。
例示的な実施において、潜在テンソルを分けることは、潜在テンソルをチャネル次元において2つ以上のセグメントに分けることを含む。
潜在テンソルをチャネル次元においてセグメントに分けることで、コンテキストモデリングに交差チャネル相関を使用できるようになるので、エントロピ推定の性能は向上する。
例えば、配置を処理することは、事前定義された順序で複数のセグメントを配置することを含み、同じ空間座標を持つセグメントはグループにまとめられる。
そのような配置は、関連する処理順序により交差チャネル相関に焦点を当てることによってエントロピ推定の性能を向上させることができる。
例示的な実施において、配置を処理することは、異なる空間座標を持つセグメントが事前定義された順序で連続的に配置されるように、複数のセグメントを配置することを含む。
そのような配置は、関連する処理順序により空間相関に焦点を当てることによってエントロピ推定の性能を向上させることができる。
例えば、ニューラルネットワークによって処理することは、複数のセグメントの特徴を抽出するよう第1ニューラルサブネットワークを適用し、ニューラルネットワーク内の後続レイヤへの入力として第1ニューラルサブネットワークの出力を供給することを含む。
複数のセグメントの特徴を抽出するようニューラルネットワークの入力を処理することで、入力の独立した深層特徴に対してアテンションレイヤの注意を集めることができるようになる。
例示的な実施において、ニューラルネットワークによって処理することは、少なくとも1つのアテンションレイヤへの入力として複数のセグメントの位置情報を供給することを更に含む。
位置符号化により、アテンションレイヤは入力シーケンスの順序を利用できるようになる。
例示的な実施において、複数のセグメントの配置を処理することは、複数のセグメントからセグメントのサブセットを選択することを含み、サブセットは、ニューラルネットワーク内の後続レイヤへの入力として供給される。
セグメントのサブセットを選択することで、必要とされるメモリサイズの削減及び/又は必要とされる処理量の削減によって、より大きいサイズの潜在テンソルのサポートが可能になる。
例示的な実施において、ニューラルネットワークは第2ニューラルサブネットワークを含み、第2ニューラルサブネットワークは、アテンションレイヤの出力を処理する。
ニューラルサブネットワークは、符号化に使用されるシンボルの確率を供給するよう、アテンションレイヤによって出力された特徴を処理して、効率的な符号化及び/又は復号化を可能にすることができる。
例えば、第1ニューラルサブネットワーク及び第2ニューラルサブネットワークのうちの少なくとも1つはマルチレイヤパーセプトロンである。
マルチレイヤパーセプトロンは、ニューラルネットワークの効率的な実施をもたらし得る。
例示的な実施において、ニューラルネットワーク内の少なくとも1つのアテンションレイヤはマルチヘッドアテンションレイヤである。
マルチヘッドアテンションレイヤは、入力の異なる表現を並行して処理して、同じ入力の様々な視点に対応するより多くの投影及びアテンション計算を提供することによって、確率の推定を改善し得る。
例えば、ニューラルネットワーク内の少なくとも1つのアテンションレイヤはトランスフォーマサブネットワークに含まれる。
トランスフォーマサブネットワークは、アテンションメカニズムの効率的な実施をもたらし得る。
例示的な実施において、方法は、ニューラルネットワークによる処理の前に、複数のセグメントの配置の始まりをゼロセグメントでパディングすることを更に有する。
配置の始まりでのゼロによるパディングは、復号化側での情報の利用可能性を反映するので、コーディング順序の因果関係は保たれる。
例えば、方法は、取得された確率モデルを用いて、現在要素を第1ビットストリームにエントロピ復号することを更に有する。
アテンションレイヤを含むニューラルネットワークによって複数のセグメントを処理することで得られた確率モデルを使用することで、ビットストリームのサイズを小さくすることができる。
例えば、方法は、計算複雑性、及び/又は第1ビットストリームの特性に従って、エントロピ符号化のための確率モデルを選択することを更に有する。
コンテキストモデリングストラテジの選択を可能にすることは、復号化プロセス中のより良い性能を可能にし、復号されたビットストリームを所望のアプリケーションに適応させることにおいて柔軟性をもたらすことができる。
例示的な実施において、方法は、ハイパー潜在テンソルを第2ビットストリームからエントロピ復号することと、ハイパー潜在テンソルをハイパー復号することによってハイパーデコーダ出力を取得することとを更に有する。
ハイパープライアモデルを導入することで、潜在テンソル内の更なる冗長性を決定することによって、確率モデルを、ひいては、コーディング効率を更に改善することができる。
例えば、方法は、ハイパーデコーダ出力を複数のハイパーデコーダ出力セグメントに分け、各ハイパーデコーダ出力が1つ以上のハイパーデコーダ出力要素を含むことと、複数のセグメントの中の各セグメントについて、確率モデルを取得する前に、当該セグメントを、複数のハイパーデコーダ出力セグメントの中のハイパーデコーダ出力セグメントの組と連結させることとを更に有する。
確率モデルは、ハイパーデコーダ出力を複数のセグメントの中の各々のセグメントと連結させることによって、更に改善され得る。
例示的な実施において、各々のセグメントと連結されるハイパーデコーダ出力セグメントの組は、当該各々のセグメントに対応するハイパーデコーダ出力セグメント、又は当該各々のセグメントと同じチャネルに対応する複数のハイパーデコーダ出力セグメント、又は当該各々のセグメントに空間的に近接している複数のハイパーデコーダ出力セグメント、又は当該各々のセグメントに空間的に近接している近隣セグメントと、該近隣セグメントと同じチャネルに対応するセグメントとを含む複数のハイパーデコーダ出力セグメント、のうちの1つ以上を含む。
確率モデルは、ハイパーデコーダ出力セグメントの各々の組を含めることによって、更に改善され得る。性能及び複雑性の挙動は、ハイパーデコーダ出力セグメントの組及び符号化されるコンテンツに依存し得る。
方法は、計算複雑性、及び/又第1ビットストリームの特性に従って、ハイパーデコーダ出力セグメントの組を適応的に選択することを更に有する。
追加のハイパープライアモデリングストラテジの選択を可能にすることは、復号化プロセス中のより良い性能を可能にし、復号されたビットストリームを所望のアプリケーションに適応させることにおいて柔軟性をもたらすことができる。
実施形態に従って、画像データを復号する方法であって、上記の方法のいずれかに従ってビットストリームから潜在テンソル(4020)をエントロピ復号することと、自己符号化畳み込みニューラルネットワークにより潜在テンソルを処理することによって画像データを取得することとを有する方法が提供される。
画像再構成のための潜在テンソルが依然としてかなりのサイズを持っている可能性があるということで、例えば、ピクチャ又はビデオの伝送又は記憶が望まれる場合に、データレートを有効に低減させるために、エントロピ復号化は画像復号化に簡単かつ有利に適用され得る。
例示的な実施において、コンピュータプログラムは、非一時的媒体に記憶され、コード命令を含み、コード命令は、1つ以上のプロセッサで実行されると、1つ以上のプロセッサに、上記の方法のいずれかに従う方法のステップを実行させる。
実施形態に従って、潜在テンソルのエントロピ符号化のための装置であって、潜在テンソルを空間次元において複数のセグメントに分け、各セグメントが少なくとも1つの潜在テンソル要素を含み、少なくとも1つのアテンションレイヤを含むニューラルネットワークの1つ以上のレイヤによって複数のセグメントの配置を処理し、処理された複数のセグメントに基づいて潜在テンソルの現在要素のエントロピ符号化のための確率モデルを取得するよう構成される処理回路を有する装置が提供される。
実施形態に従って、潜在テンソルのエントロピ復号化のための装置であって、潜在テンソルをゼロで初期化し、潜在テンソルを空間次元において複数のセグメントに分け、各セグメントが少なくとも1つの潜在テンソル要素を含み、少なくとも1つのアテンションレイヤを含むニューラルネットワークの1つ以上のレイヤによって複数のセグメントの配置を処理し、処理された複数のセグメントに基づいて潜在テンソルの現在要素のエントロピ復号化のための確率モデルを取得するよう構成される処理回路を有する装置が提供される。
装置は、上記の方法の利点を提供する。
本発明は、ハードウェア(HW)及び/又はソフトウェア(SW)で、又はそれらの任意の組み合わせで実施され得る。更に、HWベースの実施は、SWベースの実施と組み合わされてもよい。
1つ以上の実施形態の詳細は、添付の図面及び以下の説明において説明される。他の特徴、目的、及び利点は、本明細書、図面、及び特許請求の範囲から明らかだろう。
以下の説明では、添付の図が参照され、図は本開示の部分を形成し、例示によって、本発明の実施形態の具体的な側面、又は本発明の実施形態が使用され得る具体的な側面を示すものである。本発明の実施形態は他の側面で使用されてもよく、図に表されていない構造的又は論理的な変更を含むこともある、ことが理解される。従って、下記の詳細な説明は、限定の意味で捉えられるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
例えば、記載されている方法に関連して、開示は、方法を実行するよう構成される対応するデバイス又はシステムにも当てはまり、その逆も然りである。例えば、1つ又は複数の具体的な方法ステップが記載される場合、対応するデバイスは、記載されている1つ又は複数のステップを実行するための1つ又は複数のユニット、例えば機能ユニット(例えば、1つ又は複数のステップを実行する1つのユニット、あるいは、複数のステップのうちの1つ以上を夫々が実行する複数のユニット)を、たとえそのような1つ以上のユニットが明示的に記載又は図示されていないとしても、含み得る。他方で、例えば、具体的な装置が1つ又は複数のユニット、例えば機能ユニットに基づき記載される場合、対応する方法は、1つ又は複数のユニットの機能を実行するための1つ又は複数のステップ(例えば、1つ又は複数のユニットの機能を実行する1つのステップ、あるいは、複数のユニットのうちの1つ以上の機能を夫々が実行する複数のステップ)を、たとえそのような1つ又は複数のステップが明示的に記載又は図示されていないとしても、含み得る。更に、本明細書で記載されている様々な例示的な実施形態及び/又は側面の特徴は、特に別なふうに述べられない限り、互いに組み合わされてもよい、ことが理解される。
画像/ビデオ圧縮アルゴリズムにおいて、エントロピ推定はコンポーネントの1つであり、大きな利益をもたらすものである。エントロピ推定は、例えば、明示的なエントロピ推定及び/又は暗黙的なエントロピ推定を含む。明示的なエントロピ推定は、エントロピ推定パラメータを圧縮し、第2ビットストリームを介してサイド情報を送信するハイパープライアによって実現され得る。暗黙的なエントロピ推定は、第1ビットストリームの既に復号された要素を使用することができ、それらの復号された要素を、コーディング順序の因果関係を考慮しながら、プライマリビットストリームのエントロピ推定に含める。暗黙的なエントロピ推定は、通常、自己回帰コンテキストモデルと呼ばれ、典型的には、2次元(2D)マスク付き畳み込みであることができる。しかし、2Dマスク付き畳み込みによって提供されるのは、有限な小さいサポートである。これは、遠距離の依存関係が考慮されないので、暗黙的なエントロピ推定のパフォーマンスを制限する。
更に、畳み込みカーネルは、一度訓練されると、本質的に、ビットストリームの特性、つまり潜在テンソル要素に適応できない。同じカーネルが圧縮されたビットストリーム内のすべての位置に適用されるため、畳み込みカーネルは位置に依存しない。これは、位置に限定された依存関係しか学習できないので、暗黙的モデルのパフォーマンスを制限する。マスク付き畳み込みのカーネルサイズが増える場合にさえ、非適応性により、前にコーディングされた要素間の位置に限定された内部関係の固定セットを利用できるため、暗黙的モデルのパフォーマンスはかろうじて向上する。
更に、2Dマスク付き畳み込みによる暗黙的モデルは、潜在テンソルの全てのチャネルを一度に符号化/復号化し、如何なる交差チャネル相関も利用しない。チャネルごとの自己回帰がないので、現在コーディングされている潜在要素のチャネル要素は、異なるチャネルインデックスを持った他の空間的に同じ場所にある要素の情報へのアクセスを有さない。チャネルごとの自己回帰の欠如は、パフォーマンスの低下も引き起こす。
オートエンコーダ及び教師なし学習
オートエンコーダは、教師なし方式で効率的なデータコーディングを学習するために使用される実行ニューラルネットワーク一種である。その模式図は図2に示されている。オートエンコーダの目的は、信号“ノイズ”を無視するようにネットワークを訓練することによって、通常は次元削減のために、データの組の表現(符号化)を学習することである。削減側とともに、再構成側も学習され、そこでは、オートエンコーダは、元の入力にできるだけ近い表現を、削減された符号化から生成しようとする。これがその名前の由来である。最も単純なケースでは、1つの隠れレイヤが与えられると、オートエンコーダのエンコーダ段は入力xを受け取り、それをhにマッピングする:
h=σ(Wx+b)
この画像hは、通常、コード、潜在変数、又は潜在表現と呼ばれる。ここで、σは、シグモイド関数又は正規化線形ユニットなどの、要素ごとの活性化関数である。Wは重み行列であり、bはバイアスベクトルである。重み及びバイアスは、通常、ランダムに初期化され、次いで、バックプロパゲーションを通じて訓練中に繰り返し更新される。その後、オートエンコーダのデコーダ段は、hを、xと同じ形状の再構成x’にマッピングする:
x’=σ’(W’h’+b’)
ここで、デコーダのためのσ’、W’及びb’は、エンコーダのための対応するσ、W及びbと無関係であることができる。
変分オートエンコーダモデルは、潜在変数の分布に関して強い仮定を立てる。それらは潜在表現学習に変分アプローチを使用しており、その結果、追加の損失コンポーネント、及び確率的勾配変分ベイズ(SGVB)推定器と呼ばれる訓練アルゴリズム用の特定の推定器が生じる。データは有向グラフィカルモデルpθ(x|h)によって生成され、エンコーダは事後分布pθ(h|x)への近似qφ(h|x)を学習していると仮定する。ここで、φ及びθは、夫々、エンコーダ(認識モデル)及びデコーダ(生成モデル)のパラメータを表す。VAEの潜在ベクトルの確率分布は、典型的には、標準のオートエンコーダよりもはるかに近く訓練データの確率分布と一致する。
人工ニューラルネットワーク分野、特に畳み込みニューラルネットワークにおける最近の進歩により、研究者はニューラルネットワークベースの技術を画像及びビデオ圧縮のタスクに適用することに興味を抱くようになった。例えば、変分オートエンコーダに基づくネットワークを使用する、エンドツーエンドの最適化画像圧縮が提案されている。
従って、データ圧縮は、エンジニアリングにおける基本的かつよく研究された問題とみなされ、一般に、エントロピを最小限に抑えて特定の離散データ集合に対するコードを設計するという目標を持って定式化される。解決策はデータの確率的構造に関する知識に大きく依存しているため、問題は確率的ソースモデリングと密接に関連している。ただし、実際のコードは全て有限のエントロピを持たなければならないため、連続値データ(画像ピクセル強度のベクトルなど)は離散値の有限な組に量子化されなければならず、これにより誤差が生じる。
非可逆圧縮問題として知られるこの状況では、離散化表現のエントロピ(レート)及び量子化から生じる誤差(歪み)という2つの競合するコストをトレードオフする必要がある。データ記憶、又は限られた容量のチャネルでの送信などの、種々の圧縮アプリケーションでは、異なるレートと歪みとのトレードオフが求められる。
レート及び歪みの連帯的な最適化は困難である。更なる制約がなければ、高次元空間における最適な量子化という一般的な問題は手に負えない。このため、既存のほとんどの画像圧縮方法は、データベクトルを適切な連続値表現に線形変換し、その要素を個別に量子化し、得られた離散表現を可逆エントロピコードを使用して符号化することによって、動作する。この方式は、変換が中心的な役割を果たすため、変換コーディングと呼ばれる。
例えば、JPEGは、ピクセルのブロックに対して離散コサイン変換を使用し、JPEG 2000は、マルチスケール直交ウェーブレット分解を使用する。典型的に、変換コーディング方法の3つのコンポーネントである変換、量子化器、エントロピコードは、個別に最適化される(多くの場合、手動のパラメータ調整による)。HEVC、VVC及びEVCなどの最新のビデオ圧縮規格も、予測後の残差信号をコーディングするために、変換された表現を使用する。この目的には、離散コサイン変換(DCT)及び離散サイン変換(DST)や、低周波非分離可能手動最適化変換(LFNST)などのいくつかの変換が使用される。
変分画像圧縮
変分オートエンコーダ(VAE)フレームワークは非線形変換コーディングモデルとみなすことができる。変換プロセスは主に4つの部分に分けることができる。図3aはVAEフレームワークを例示している。図3aでは、エンコーダ310は、関数y=f(x)を介して、入力画像x311を潜在表現(yで示される)にマッピングする。この潜在表現は、以下では「潜在空間」の一部又は「潜在空間」内の点とも呼ばれる場合がある。関数f()は、入力信号311をより圧縮可能な表現yに変換する変換関数である。
圧縮されるべき入力画像311は、H×W×Cのサイズを持った3Dテンソルとして表され、ここで、H及びWはが画像の高さ及び幅であり、Cは色チャネルの数である。第1のステップで、入力画像はエンコーダ310を通る。エンコーダ310は、複数の畳み込み及び非線形変換を適用することによって入力画像311をダウンサンプリングし、潜在空間特徴テンソル(以下、潜在テンソル)yを生成する。(これは古典的な意味でのリサンプリングではないが、ディープラーニングでは、ダウン及びアップサンプリングは、テンソルの高さ及び幅のサイズを変えるための一般的な用語である。)図4で例示的に示されている、入力画像4010に対応する潜在テンソルy4020は、(H/De)×(W/De)×Ceのサイズを有し、一方、Deはエンコーダのダウンサンプリング係数であり、Ceはチャネルの数である。
入力/出力画像及び潜在テンソルのピクセル間の違いは図4に示されている。潜在テンソル4020は要素の多次元配列であり、通常、ピクチャ情報を表さない。次元の2つは、画像の高さ及び幅に関連し、情報及びコンテンツは、画像のより低解像度の表現に関係がある。第3の次元、つまりチャネル次元は、潜在空間内の同じ画像の異なる表現に関係がある。
潜在空間は、類似したデータ点が潜在空間内で互いに接近している圧縮データの表現として理解できる。潜在空間は、データの特徴を学習したり、分析用のデータのより単純な表現を見つけたりするのに役立つ。量子化器320は、潜在表現yを、
によって、(離散値)を有する量子化された潜在表現
に変換し、Qは量子化関数を表す。
潜在テンソルyのエントロピ推定は、任意のハイパープライアモデルを更に適用することによって改善され得る。
ハイパープライアモデルを取得する最初のステップで、ハイパーエンコーダ330が潜在テンソルyに適用され、ハイパーエンコーダ330は、畳み込み及び非線形変換により潜在テンソルをハイパー潜在テンソルzにダウンサンプリングする。潜在テンソルxは、(H/Dh)×(W/Dh)×Chのサイズを有する。
次のステップで、量子化器331が潜在テンソルzに対して実行され得る。因数分解エントロピモデル342は、量子化されたハイパー潜在テンソル
の統計的特性の推定を生成する。算術エンコーダは、これらの統計的特性を用いて、テンソル
のビットストリーム表現341を生成する。テンソル
の全要素が、自己回帰プロセスの必要なしにビットストリームに書き込まれる。
因数分解エントロピモデル342は、デコーダ側で利用可能なパラメータを持ったコードブックとして機能する。エントロピデコーダ343は、因数分解エントロピモデル342を使用することによって、量子化されたハイパー潜在テンソルをビットストリーム341から回復する。回復された量子化されたハイパー潜在テンソルは、複数の畳み込み演算及び非線形変換を適用することによってハイパーデコーダ350でアップサンプリングされる。ハイパーデコーダ出力テンソル430はψで示される。
ハイパーエンコーダ/デコーダ(ハイパープライアとしても知られる)330~350は、可逆エントロピソースコーディングにより達成可能なレートを得るよう、量子化された潜在表現
の分布を推定する。更に、デコーダ380が設けられており、量子化された潜在表現を再構成画像
に変換する。信号
は入力画像xの推定である。xは可能な限り
に近い、言い換えれば、再構成品質は可能な限り高い、ことが望ましい。しかし、
が高ければ高いほど、伝送される必要があるサイド情報の量はますます多くなる。サイド情報は、図3aに示されるyビットストリーム及びzビットストリームを含み、これらはエンコーダによって生成されて、デコーダへ伝送される。普通は、サイド情報の量が多ければ多いほど、再構成品質はますます高くなる。しかし、サイド情報の量が多いとは、圧縮比が低いことを意味する。従って、図3aに記載されるシステムの1つの目的は、再構成品質とビットストリームで運ばれるサイド情報の量とのバランスをとることである。
図3aにおいて、コンポーネントAE370は算術符号化モジュールであり、これは、
をバイナリ表現であるyビットストリーム及びzビットストリームに夫々変換する。
は、例えば、整数又は浮動小数点数を有し得る。算術符号化モジュールの1つの目的は、サンプル値を(2値化のプロセスを介して)バイナリデジットの列(次いで、符号化された画像に対応する更なる部分、又は更なるサイド情報を有し得るビットストリームに含められる)に変換することである。
算術復号化(AD)372は2値化プロセスを元に戻すプロセスであり、そこでは、バイナリデジットがサンプル値に逆変換される。算術復号化は算術復号化モジュール372によって提供される。
図3aには、互いに連結された2つのサブネットワークが存在する。この文脈におけるサブネットワークは、ネットワーク全体の部分間の論理的な分割である。例えば、図3aにおいて、モジュール310、320、370、372、及び380は、「エンコーダ/デコーダ」サブネットワークと呼ばれる。「エンコーダ/デコーダ」サブネットワークは、第1ビットストリームである「yビットストリーム」の符号化(生成)及び復号化(パーシング)に関与する。図3aの第2サブネットワークは、モジュール330、331、340、343、350、及び360を有し、「ハイパーエンコーダ/デコーダ」サブネットワークと呼ばれる。第2サブネットワークは、第2ビットストリームである「zビットストリーム」の生成に関与する。2つのサブネットワークの目的は異なる。
第1サブネットワークは次のことに関与する:
・ 入力画像311をその潜在表現y(xを圧縮することがより容易である)に変換すること310,
・ 潜在表現yを
に量子化すること320,
・ 算術符号化モジュール370によってAEにより
を圧縮して、ビットストリーム「yビットストリーム」を取得すること,
・ 算術復号化モジュール372を用いてADによりyビットストリームをパースすること,及び
・ パースされたデータを用いて再構成画像381を再構成すること380。
第2サブネットワークの目的は、第1サブネットワークによるyビットストリームの圧縮がより効率であるように、「yビットストリーム」のサンプルの統計的特性(例えば、平均値、分散、及びyビットストリームのサンプル間の相関)を取得することである。第2サブネットワークは第2ビットストリーム「zビットストリーム」を生成し、zビットストリームは前記情報(例えば、平均値、分散、及びyビットストリームのサンプル間の相関)を含む。
第2サブネットワークは、
をサイド情報zに変換すること330、サイド情報zを
に量子化すること、及び
をzビットストリームに符号化(例えば、2値化)すること340を含む符号化部分を含む。この例で、2値化は算術符号化(AE)によって実行される。第2サブネットワークの復号化部分は算術復号化(AD)343を含み、算術復号化343は、入力されたzビットストリームを
に変換する。算術符号化動作及び算術復号化動作は可逆圧縮方法であるから、
は、次いで、
に変換される350。
は、
の統計的特性
を表す。
は、次いで、
の確率モデルを制御するために、上記の算術エンコーダ370及び算術デコーダ372へ供給される。
図3aはVAE(変分オートエンコーダ)の例を記載するものであり、その詳細は、異なる実際では異なることがある。例えば、具体的な実施において、第1ビットストリームのサンプルの統計的特性をより効率的に取得するために、追加のコンポーネントが存在してもよい。1つのそのような実施において、コンテキストモデラが存在してもよく、これは、yビットストリームの相互相関情報を抽出することを対象としている。第2サブネットワークによって提供される統計情報は、AE(算術エンコーダ)370及びAD(算術デコーダ)372のコンポーネントによって使用され得る。
図3aは、単一の図でエンコーダ及びデコーダを表している。当業者に明りょうであるように、エンコーダ及びデコーダは、相互に異なるデバイスに埋め込まれてもよく、また、埋め込まれていることが非常に多い。
図3b及び図3cは、VAEフレームワークに対応するエンコーダコンポーネント及びデコーダコンポーネントを別々に表している。入力として、エンコーダは、いくつかの実施形態に従って、ピクチャを受け取る。入力されたピクチャは、色チャネル又は他の種類のチャネル、例えばデプスチャネル又は動き情報チャネルなどの1つ以上のチャネルを含み得る。(図3bに示される)エンコーダの出力はyビットストリーム及びzビットストリームである。yビットストリームは、エンコーダの第1サブネットワークの出力であり、zビットストリームは、エンコーダの第2サブネットワークの出力である。
同様に、図3cにおいて、2つのビットストリーム、yビットストリーム及びzビットストリームは入力として受け取られ、再構成(復号)された画像である
が出力で生成される。上述されたように、VAEは、異なる動作を実行する異なる論理ユニットに分割できる。これは図3b及び図3cに例示されており、図3bは、ビデオ及び提供された符号化された情報などの信号の符号化に関与するコンポーネントを表している。この符号化された情報は、次いで、例えば復号化のために図3cに表されているデコーダコンポーネントによって受け取られる。表されているエンコーダ及びデコーダのコンポーネントは、図3aで上述されたコンポーネントにそれらの機能において対応し得る点に留意されたい。
具体的に、図3bから分かるように、エンコーダは、入力xを信号yに変換するエンコーダ310を有し、信号yは、次いで、量子化器320に供給される。量子化器320は、情報を算術符号化モジュール370及びハイパーエンコーダ330へ供給する。ハイパーエンコーダ330は、量子化されたバージョンではなく信号yを受け取ってもよい。ハイパーエンコーダ330は、既に上で議論されたzビットストリームをハイパーデコーダ350へ供給し、ハイパーデコーダ350は、次いで、情報を算術符号化モジュール370へ供給する。図3aを参照して上で議論されたサブステップもこのエンコーダの部分であってよい。
算術符号化モジュールの出力はyビットストリームである。yビットストリーム及びzビットストリームは信号の符号化の出力であり、これらは次いで復号化プロセスへ供給(伝送)される。ユニット310は「エンコーダ」と呼ばれるが、図3bに記載されている完全なサブネットワークを「エンコーダ」と呼ぶこともできる。符号化のプロセスは一般的に、入力を符号化(例えば、圧縮)された出力に変換するユニット(モジュール)を意味する。図3bからは、ユニット310が実際にサブネットワーク全体のコアとして見なされ得ることが分かる。これは、それがxの圧縮バージョンであるyへの入力xの変換を実行するからである。エンコーダ310での圧縮は、例えば、ニューラルネットワーク、又は一般的に、1つ以上のレイヤを含む任意の処理ネットワークを適用することによって、達成され得る。そのようなネットワークでは、圧縮は、入力のチャネルのサイズ及び/又は数を減らすダウンサンプリングを含むカスケード接続された処理によって、実行され得る。よって、エンコーダは、例えばニューラルネットワーク(NN)ベースのエンコーダなどと呼ばれることがある。
図中の残りの部分(量子化ユニット、ハイパーエンコーダ、ハイパーデコーダ、算術エンコーダ/デコーダ)は全て、符号化プロセスの効率を改善するか、又は圧縮された出力yをビットの連続(ビットストリーム)に変換することに関与するかのいずれかである部分である。量子化は、不可逆圧縮によってNNエンコーダ310の出力を更に圧縮するために設けられてよい。AE370は、AE370を構成するために使用されるハイパーエンコーダ330及びハイパーデコーダ350と組み合わせて、2値化を実行することができ、これにより、量子化された信号を可逆圧縮によって更に圧縮することができる。従って、図3bのサブネットワーク全体を「エンコーダ」と呼ぶこともできる。
ディープラーニング(DL)ベースの画像/ビデオ圧縮システムの大部分は、信号をバイナリデジット(ビット)に変換する前に信号の次元を削減する。例えば、VAEフレームワークでは、非線形変換であるエンコーダが入力画像xをyにマッピングし、ここで、yは、xよりも小さい幅及び高さを有する。yはより小さい幅及び高さ、従って、より小さいサイズを有するので、信号の次元(のサイズ)は削減され、従って、信号yを圧縮することはより容易である。一般に、エンコーダは必ずしも両方(又は一般的に、全て)の次元でサイズを低減させる必要はない。むしろ、いくつかの例示的な実施は、1つの次元(又は一般的に、次元のサブセット)でのみサイズを低減させるエンコーダを提供し得る。
算術エンコーダ及びデコーダは、エントロピコーディングの具体的な実施である。AE及びADは、他の任意のエントロピコーディング手段で置換できる。また、量子化動作及び対応する量子化ユニットは必ずしも存在せず、かつ/あるいは他のユニットで置換できる。
人工ニューラルネットワーク
人工ニューラルネットワーク(ANN)又はコネクショニストシステムは、動物の脳を構成する生物学的ニューラルネットワークから漠然とインスピレーションを得たコンピューティングシステムである。このようなシステムは、通常、タスク固有のルールでプログラムされることなく、例を検討することによってタスクの実行を「学習」する。例えば、画像認識では、手動で「猫」又は「猫なし」とラベル付けされたサンプル画像を分析し、その結果を他の画像内の猫を識別するために使用することで、猫が含まれる画像を識別する方法を学習することができる。それらは、例えば猫には毛皮、尻尾、ひげがあり、猫のような顔があるということなど、猫についての予備知識なしにこれを行う。代わりに、それらは、処理する例から識別特性を自動的に生成する。
ANNは、生物学的な脳のニューロンを大まかにモデル化した、人工ニューロンと呼ばれる接続されたユニット又はノードの集合に基づいている。生物学的な脳のシナプスと同様に、各接続は他のニューロンに信号を送信できる。信号を受信した人工ニューロンはそれを処理し、それに接続されているニューロンに信号を送ることができる。
ANNの実装では、接続における「信号」は実数であり、各ニューロンの出力は入力の合計の何らかの非線形関数によって計算される。この接続はエッジと呼ばれる。ニューロン及びエッジは通常、学習の進行に応じて調整される重みを有する。重みにより、接続における信号の強度が増減する。ニューロンは、アグリゲート信号がその閾値を超えた場合にのみ信号が送信されるような閾値を有し得る。通常、ニューロンはレイヤに集約される。異なるレイヤは、それらの入力に対して異なる変換を実行し得る。信号は、最初のレイヤ(入力レイヤ)から、おそらくはレイヤを複数回通過した後、最後のレイヤ(出力レイヤ)まで伝わる。
ANNのアプローチの当初の目標は、人間の脳と同じ方法で問題を解決することであった。時間が経つにつれて、特定のタスクを実行することに注意が移り、生物学から逸脱するようになった。ANNは、コンピュータビジョン、音声認識、機械翻訳、ソーシャルネットワークのフィルタリング、ボードゲームやビデオゲームのプレイ、医療診断など、さまざまなタスクに使用されており、さらには絵画など従来人間専用と考えられてきた活動にも使用されている。
「畳み込みニューラルネットワーク」(CNN)という名称は、ネットワークが畳み込みと呼ばれる数学的演算を使用していることを示している。畳み込みは、特殊な種類の線形演算である。畳み込みネットワークは、少なくとも1つのレイヤで一般的な行列乗算の代わりに畳み込みを使用するニューラルネットワークである。
図1は、CNNなどのニューラルネットワークによる処理の一般概念を概略的に表している。畳み込みニューラルネットワークは、入力レイヤ及び出力レイヤ、並びに複数の隠しレイヤから成る。入力レイヤは、入力(例えば、図1に示される画像の一部)が処理のために供給されるレイヤである。CNNの隠しレイヤは、通常、乗算又は他のドット積により畳み込む一連の畳み込みレイヤから成る。レイヤの結果は、チャネルとも時々呼ばれる1つ以上の特徴マップ(図1のf.maps)である。一部又は全てのレイヤにはサブサンプリングが含まれ得る。その結果、特徴マップは、図1に表されるように、より小さくなり得る。CNNの活性化関数は、通常、ReLU(正規幹線系ユニット)レイヤであり、その後に、プーリングレイヤ、全結合レイヤ、及び正規化レイヤなどの、それらの入力及び出力が活性化関数及び最終的な畳み込みによってマスクされるので隠しレイヤと呼ばれる追加の畳み込みが続く。レイヤは口語的に畳み込みと呼ばれるが、これは慣例によるものである。数学的には、それは技術的にスライディングドット積又は相互相関である。これは、特定のインデックス点での重みの決定方法に影響を与えるため、行列内のインデックスにとって重要である。
図1に示されるように、画像を処理するためにCNNをプログラムする場合、入力は(画像の数)×(画像の幅)×(画像の高さ)×(画像のデプス)という形状を持ったテンソルである。次いで、畳み込みレイヤを通過した後、画像は、(画像の数)×(特徴マップの幅)×(特徴マップの高さ)×(特徴マップのチャネル)という形状を持った特徴マップに抽象化される。ニューラルネットワーク内の畳み込みレイヤは次の属性、幅及び高さによって定義される畳み込みカーネル(ハイパーパラメータ)や入力チャネル及び出力チャネルの数(ハイパーパラメータ)を持つべきである。畳み込みフィルタのデプス(入力チャネル)は、入力された特徴マップのチャネル数(デプス)に等しくなければならない。
これまで、画像認識には従来のマルチレイヤパーセプトロン(MLP)モデルが使用されてきた。ただし、ノード間の完全な接続により、高次元性が問題となり、高解像度の画像ではうまく拡張できなかった。RGBカラーチャネルを含む1000×1000ピクセルの画像には300万の重みがあり、完全な接続で大規模に効率的に処理するには多すぎた。更に、このようなネットワークアーキテクチャはデータの空間構造を考慮しておらず、遠く離れた入力ピクセルを近いピクセルと同じように扱う。これは、計算的にも意味的にも、画像データ内の参照の局所性を無視している。従って、ニューロンの完全な接続は、空間的に局所的な入力パターンによって支配される画像認識などの目的にとっては無駄である。
畳み込みニューラルネットワークは、視覚野の動作をエミュレートするように特別に設計されたマルチレイヤパーセプトロンの生物学的影響を受けた変形である。これらのモデルは、自然画像に存在する強力な空間的局所相関を利用することで、MLPアーキテクチャによってもたらされる課題を軽減する。畳み込みレイヤは、CNNの中核となる構成要素である。このレイヤのパラメータは、受容野は小さいが、入力ボリュームの深さ全体に広がる学習可能なフィルタ(上記のカーネル)の組から成る。順方向パス中に、各フィルタは入力ボリュームの幅及び高さにわたって畳み込まれ、フィルタのエントリと入力との間のドット積が計算され、そのフィルタの2次元活性化マップが生成される。その結果、ネットワークは、入力内のある空間位置である特定の種類の特徴を検出したときにアクティブになるフィルタを学習する。
全てのフィルタの活性化マップを深さ次元に沿って積み重ねると、畳み込みレイヤの完全な出力ボリュームが形成される。従って、出力ボリューム内の全てのエントリは、入力内の小さな領域を調べ、同じ活性化マップ内のニューロンとパラメータを共有するニューロンの出力として解釈することもできる。特徴マップ又は活性化マップは、所与のフィルタの出力活性化である。特徴マップ及び活性化は同じ意味を持つ。いくつかの論文では、それは、画像の異なる部分の活性化に対応するマッピングであることから、活性化マップと呼ばれたり、また、画像内で特定の種類の特徴が見つかった場所のマッピングでもあることから、特徴マップとも呼ばれたりする。活性化が高いということは、特定の機能が見つかったことを意味する。
CNNのもう1つの重要な概念は、非線形ダウンサンプリングの形式であるプーリングである。プーリングを実装する非線形関数はいくつかあるが、その中で最も一般的なのは最大プーリングである。入力イメージを重複しない長方形の組に分割し、そのようなサブ領域ごとに最大値を出力する。
直感的には、特徴の正確な位置は、他の特徴と比較した大まかな位置ほど重要ではない。これは、畳み込みニューラルネットワークでのプーリングの使用の背後にある考え方である。プーリングレイヤは、表現の空間サイズを段階的に縮小し、パラメータの数、メモリフットプリント、ネットワーク内の計算量を削減し、それによってオーバーフィッティングを制御する役割も果たす。CNNアーキテクチャでは、連続する畳み込みレイヤの間にプーリングレイヤを定期的に挿入するのが一般的である。プーリング操作は、別の形式の変換不変性をもたらす。
プーリングレイヤは、入力の全てのデプス深度スライスに対して独立して動作し、空間的にそのサイズを変更する。最も一般的な形式は、サイズ2×2のフィルタを備えたプーリングレイヤで、入力のデプススライスごとに2のストライドで幅及び高さの両方に沿って2ずつ適用され、活性化の75%が破棄される。この場合、全ての最大演算は4つの数値を超える。デプス寸法は変わらないままである。最大プーリングに加えて、プーリングユニットは、平均プーリングやL2ノルムプーリングなどの他の機能を使用できる。平均プーリングは歴史的によく使用されていたが、実際には多くの場合パフォーマンスが優れている最大プーリングに比べて最近はあまり使われなくなっている。表現サイズの積極的な縮小により、最近では、より小さなフィルタを使用するか、又はプーリングレイヤを完全に破棄する傾向がある。「関心領域」プーリング(ROIプーリングとしても知られている)は最大プーリングの変形であり、出力サイズが固定され、入力長方形がパラメータである。プーリングは、Fast R-CNNアーキテクチャに基づく物体検出のための畳み込みニューラルネットワークの重要なコンポーネントである。
上記のReLUはRectified Linear Unitの略称であり、非飽和活性化関数を適用するものである。負の値をゼロに設定することで、それらの値を活性化マップから効果的に削除する。それは、畳み込みレイヤの受容野に影響を与えることなく、決定関数及びネットワーク全体の非線形特性を高める。非線形性を高めるために、例えば、飽和双曲線正接及びシグモイド関数など、他の関数も使用される。ReLUは、一般化の精度に重大な影響を与えることなく、ニューラルネットワークを数倍高速に訓練できるため、他の関数よりもしばしば好まれる。
いくつかの畳み込みレイヤ及び最大プーリングレイヤの後、ニューラルネットワークの高レベルの推論は全結合レイヤを介して実行される。通常の(非畳み込み)人工ニューラルネットワークで見られるように、全結合レイヤのニューロンは、前のレイヤの全ての活性化と接続している。従って、それらの活性化は、行列乗算の後にバイアスオフセット(学習又は固定されたバイアス項のベクトル加算)を行うアフィン変換として計算され得る。
「損失レイヤ」(損失関数の計算を含む)は、予測された(出力)ラベルと真のラベルとの間の偏差に訓練がどのようにペナルティを与えるかを指定し、通常はニューラルネットワークの最終レイヤである。異なるタスクに適した様々な損失関数が使用され得る。ソフトマックス損失は、K個の相互に排他的なクラスのうちの1つのクラスを予測するために使用される。シグモイド交差エントロピ損失は、[0,1]のK個の独立した確率値を予測するために使用される。ユークリッド損失は実数値ラベルへの回帰に使用される。
要約すると、図1は、典型的な畳み込みニューラルネットワークでのデータフローを示す。第1に、入力画像は畳み込みレイヤを通り、この例やの学習可能なフィルタの組内のフィルタの数に対応するいくつかのチャネルを含む特徴マップに抽象化される。次いで、特徴マップは、例えばプーリングレイヤを用いて、サブサンプリングされ、これにより、特徴マップの各チャネルの次元は削減される。次に、データは、異なる数の出力チャネルを有し得る他の畳み込みレイヤに送られる。上述されたように、入力チャネル及び出力チャネルの数は、レイヤのハイパーパラメータである。ネットワークの接続性を確立するために、これらのパラメータは2つの接続されたレイヤ間で同期される必要があり、それにより、現在のレイヤの入力チャネルの数は前のレイヤの出力チャネルの数に等しくなるはずである。入力データ、例えば画像を処理する最初のレイヤについて、入力チャネルの数は、通常は、データ表現のチャネルの数、例えば、画像又はビデオのRGB又はYUV表現の場合には3つのチャネル、あるいは、グレースケール画像又はビデオ表現の場合は1つのチャネルに等しい。
ディープラーニングにおけるアテンションメカニズム
アテンションメカニズムは、ニューラルネットワークが入力の重要な部分を強化したり又はそれに焦点を当てたりして、無関係な部分をフェードアウトできるようにするディープラーニング技術である。このシンプルかつ強力な概念は、例えば、自然言語処理、推奨、ヘルスケア分析、画像処理、音声認識などの分野に適用できる。
本来、アテンションは入力シーケンス全体にわたって計算される(大域アテンション)。その単純さにもかかわらず、このようなアプローチは計算コストが高くなる場合がある。局所的な注意を払うことが解決策になり得る。
アテンションメカニズムの1つ実装例は、いわゆるトランスフォーマモデルである。トランスフォーマモデルは、アテンションレイヤに続いてフィードフォワードニューラルネットワークを適用する。トランスフォーマブロックの2つの実施例が図5a及び図5bに示されている。トランスフォーマモデルでは、入力テンソルの特徴を抽出するために、まず入力テンソルxがニューラルネットワークレイヤに供給される。これにより、いわゆる埋め込みテンソルe5010が得られ、これには、トランスフォーマへの入力として使用される潜在空間要素が含まれている。入力テンソルx及び埋め込みテンソルeのサイズはS×dinput及びS×deである。ここで、Sは連続要素の数であり、dは各連続要素の次元である。位置符号化5020が埋め込みテンソルに追加されてもよい。位置符号化5020により、トランスフォーマは入力シーケンスの順序を考慮できるようになる。このような位置符号化は、入力テンソルの要素の配置内の要素の位置の表現を提供する。これらの符号化は学習されてもよく、あるいは、事前定義されたテンソルがシーケンスの順序を表してもよい。
位置符号化5020が計算されると、それは埋め込みベクトル5010に区分的に付加される。次いで、入力ベトルが、トランスフォーマブロックに入るよう準備される。図5aのトランスフォーマブロックの実施例は2つの必然のステップ、マルチヘッドアテンション5030と、各位置に別個かつ同一に適用される非線形活性化関数による線形変換5032とから成る。加算及び正規化の2つのブロック5031及び5033は、アテンションレイヤ5030及びMLP5032の各々の出力を残差接続5034及び5035と結合する。図5bのトランスフォーマブロックの実施例も、2つの必然のステップ、アテンション5051と、各位置に別個かつ同一に適用される非線形活性化関数による線形変換5053とから成る。図5bの実施例は、正規化ブロック5050及び5052と、残差接続5054及び5055とから成る異なる配置を示す。ここでのアテンションブロックの役割は回帰セルと同様であるが、計算要件はより少ない。トランスフォーマブロックは、必ずしもマルチヘッドアテンションレイヤを又はマルチヘッドアテンションレイヤをL回使用する必要はない。これらの例のマルチヘッドアテンションレイヤは、任意の他のタイプのアテンションメカニズムで置き換えられてもよい。
セルフアテンションモジュールでは、3つ全てのベクトルが同じシーケンスから取得され、位置符号化が組み込まれたベクトルを表す。
クエリQ620、キーK621、及び値V622から成る一般的なアテンションメカニズムが図6に例示的に示されている。このような呼び名の由来は検索エンジンにあり、そこでは、ユーザのクエリが内部エンジンのキーと照合され、結果がいくつかの値で表される。
埋め込みベクトルを位置符号化peと結合した後、3つの異なる表現、すなわちキューQ、キーK、及び値Vが、フィードフォワードニューラルネットワークレイヤによって取得される。キュー、キー及び値は夫々、S×dq、S×dk及びS×dvのサイズを有する。通常、キュー、キー及び値は同じ次元dを有し得る。セルフアテンションを計算するために、最初に、キュー及びキーの間のスケーリングされたドット積(QKT/dk)が計算され得、アテンションスコアを得るために、ソフトマックス関数が適用され得る。次に、これらのスコアは、セルフアテンションを達成するよう値を乗じられる。セルフアテンションメカニズムは:
のように定式化され得る。ここで、dkはキーの次元であり、softmax(QKT/dk)はS×Sのサイズを有する。
その後、計算されたアテンションは、残差接続の形式を作ることによって、埋め込みベクトルに加えられ、正規化レイヤにより正規化される。最後に、残差接続を含むマルチレイヤフィードフォワードニューラルネットワーク(別名、マルチレイヤパーセプトロン)が適用され、最終の出力は正規化される。(埋め込みテンソルの生成後の)上記のステップは全て、L個のレイヤを含むトランスフォーマネットワークを生成するようにL回繰り返され得るトランスフォーマの1つのレイヤについて記載している。
言い換えれば、アテンションレイヤは、入力シーケンスの複数の表現、例えばキー、キュー、及び値を取得する。前記の複数の表現から表現を取得するために、入力シーケンスは各々の重みの組によって処理される。この重みの組は訓練フェーズで取得され得る。これらの重みの組は、そのようなアテンションレイヤを含むニューラルネットワークの残りの部分とともに一緒に学習され得る。推論中、出力は、処理された入力シーケンスの加重和として計算される。
上記のアテンションメカニズムへの1つの拡張はマルチヘッドアテンションである。このバージョンでは、クエリ、キー及び値の最終の次元はh個のサブ表現に分けられ、各サブ表現について、アテンションは個別に計算される。最終のアテンションは、各サブアテンションを連結させ、それをフィードフォワードニューラルネットワーク(FFN)に供給することによって、計算される。マルチヘッドアテンションの定式化は次のように与えられる:
ここで、Qi、Ki及びViは夫々、S×(dq/h)、S×(dk/h)、及びS×(dv/h)を有する。
マルチヘッドアテンションは、並列化、及び各埋め込みテンソルが複数の表現を持つことを可能にする。
単一のアテンション関数が図6aには表されており、マルチヘッドアテンションにおける並列アプリケーションが図6bには示されている。より多くの投影及びアテンション計算を行うことによって、モデルは同じ入力シーケンスに対して様々な視点を持つことができるようになる。それは、様々な線形サブ空間を介して数学的に表現される、様々な角度からの情報を共同で扱う。
図6aの例示的な単一アテンション関数は、上で説明したように、キー610とクエリ611との間のアライメント620を実行し、加重和630をアテンションスコア及び値612に適用することによって出力640を取得する。図6bの例示的なマルチヘッドアテンションは、キー650とクエリ651との各ペアに対してアライメント660を実行する。各ペアは、異なる線形サブ空間に属していてもよい。取得された各アテンションスコア及び各々の値652について、加重和670が計算される。結果は連結680されて、出力690が得られる。
トランスフォーマブロックにおけるマルチヘッドアテンション後の次のステップは、単純な位置的に完全に接続されたフィードフォワードネットワークである。各ブロックの周囲には残差接続があり、その後にレイヤ正規化が続く。残差接続は、ネットワークが監視しているデータを追跡するのに役立つ。レイヤ正規化は、特徴の分散を減らす役割を果たす。
文献にはトランスフォーマのいくつかの異なるアーキテクチャがあるが、そのコンポーネントの順序及びタイプは様々であり得る。ただし、基本的なロジックは似ており、ある種類のアテンションメカニズムとそれに続く別のニューラルネットワークがトランスフォーマレイヤのレイヤをカプセル化し、このアーキテクチャの複数のレイヤがトランスフォーマネットワークを形成する。上で説明したように、図5a及び図5bでは2つの例が与えられている。本発明は、アテンションメカニズムの前述の例示的実施に限定されない。
アテンションベースのコンテキストモデリング
アテンションレイヤを含むニューラルネットワークを適用することによってコンテキストモデルを取得するプロセスは、図7a及び図7bで例示的に示されている。
圧縮されるべき画像データは、H×W×Cのサイズを持った3次元テンソル311として表すことができ、H及びWは画像の高さ及び幅であり、Cは色チャネルの数である。入力画像は、図3aを参照して上で説明されたように、自己符号化畳み込みニューラルネットワーク310によって処理され得る。そのようなオートエンコーダ310は、着く数の畳み込み及び非線形返還を適用することによって入力画像をダウンサンプリングし、潜在テンソルyを生成する。潜在テンソルは、(H/De)×(W/De)×Ceのサイズを有し、一方、Deはエンコーダ310のダウンサンプリング係数であり、Ceはチャネルの数である。取得された潜在テンソルは、アテンションベースのコンテキストモデリングによって生成された確率モデルを用いて、ビットストリーム371に符号化され得る。
潜在テンソルyは量子化され得る。量子化は量子化ブロック320によって実行され得る。
潜在テンソルのエントロピ符号化のためのコンテキストモデルは、アテンションレイヤ732を適用することによって決定され得る。潜在空間特徴テンソルは1つ以上の要素を含み、図7a及び図8に示されるように空間次元において複数のセグメント820に分けられる700。各セグメントは少なくとも1つの潜在テンソル要素を含む。セグメントは次元(pH×pW×Ce)を有することができ、Ceは、潜在テンソルのチャネル次元内のようその数であり、潜在テンソルの空間次元はパッチに分けられ、各パッチは(pH×pW)個の要素を含む。分離700は図8で例示的に示されており、例示的な4×4×Ce次元の潜在テンソル810は、空間次元において16個の要素820に分けられ、各セグメントは次元(1×1×Ce)を有する。
エントロピ符号化されるべき潜在テンソルは、上で説明されたように自己符号化ニューラルネットワークによって処理された画像データから生成され得る。ただし、本発明は、オートエンコーダからの画像データに限定されない。エントロピ符号化されるべき潜在テンソルは、多次元点群、オーディオデータ、ビデオデータなどの、任意の他のタイプの入力データを処理する間にも生成され得る。
複数のセグメントの配置830は、ニューラルネットワークの1つ以上のレイヤによって処理される。そのような配置は事前に定義することができ、すなわち、空間及び/又はチャネル方向における走査順序を指定できる。第1実施例の配置には、潜在テンソルを逐次形式830に再成形することが含まれ得る。
は、
を有することができ、ここで、(pH,pW)はパッチのサイズに対応する。これはず8で例示的に示されており、両方のパッチサイズpH、pWが1にセットされ、例示的な4×4×Ce次元の潜在テンソル810の16個のセグメント820は、再成形された16×Ce次元のテンソル830に配置されている。図13aは、空間次元におけるセグメントの処理順序を例示的に表している。
ニューラルネットワークは少なくとも1つのアテンションレイヤを含む。アテンションメカニズムは、図5及び図6を参照して「ディープラーニングにおけるアテンションメカニズム」の項で上で説明された。アテンションレイヤは、図6bに関して例示的に記載されたマルチヘッドアテンションレイヤであってよい。アテンションレイヤは、図5a及び図5bを参照して例示的に説明されているトランスフォーマサブネットワークに含まれてもよい。トランスフォーマサブネットワークに含まれるべきアテンションレイヤは、任意のタイプのアテンションレイヤ又はマルチヘッドアテンションレイヤであってよい。
潜在テンソルの現在要素のエントロピ符号化のための確率モデルは、処理された複数のセグメントに基づいて取得される。現在要素は、エントロピ符号化のための取得された確率モデルを用いて、第1ビットストリーム、例えば、図3のyビットストリーム371にエントロピ符号化され得る。エントロピ符号化の具体的な実施は、例えば、「変分画像圧縮」の項で議論されている算術符号化であってよい。本発明はそのような例示的な算術符号化に限定されない。要素ごとの推定エントロピに基づいて符号化できる任意のエントロピ符号化は、本発明によって得られる確率を使用することができる。
潜在テンソルの分離は、例えば図7bに示されているように、チャネル次元での2つ以上のセグメントへの潜在テンソルの分離701を含んでもよい。NCS個のチャネルセグメントのそのような分離は、
を生成し得る。チャネル次元における分離920は、図9で例示的に表されており、両方のパッチサイズpH、pWが1にセットされる。例示的な潜在テンソル910の各空間セグメントは、チャネル次元において3つのセグメントの920、921、及び922に分離される。例示的な4×4×Ce次元の潜在テンソル910は、48×(Ce/3)の形状を持ったテンソルに分けられる。
チャネルセグメントの最大数NCSは、
のチャネルの数Ceに等しい。この空間チャネルアテンションメカニズムは交差チャネル相関を十分に考慮している。NCS<Ceのその他の値は、より高速な符号化及び復号化をもたらし得るが、コンテキストモデルのパフォーマンスを低下させる可能性がある。
第2実施例では、セグメントは事前定義された順序で配置されてもよく、同じ空間座標を持ったセグメント931、932、及び933はグループにまとめられる。言い換えれば、例えば範囲[0,NCS-1]内で異なるチャネルセグメントインデックスを有する第1空間座標930のセグメントは、グループにまとめられ得る。引き続いて、異なるチャネルインデックスを有する第2空間座標931のセグメントがグループにまとめられ得る。配置930は、
への潜在テンソルセグメントの再成形を含み得る。セグメントのそのような配置930は、図9で例示的に示されている。前記の再成形は、第2チャネルのセグメントを処理する前に第1チャネルのセグメントを処理するコーディング順序に対応し、すなわち、最初にチャネル次元を処理するコーディング順序に対応し得る。図13bは、そのような配置のセグメントの処理順序を例示的に表している。同じチャネルのセグメントは、異なる空間座標を持った他のチャネルのセグメントを処理する前に処理され得る。
第3実施例では、異なる空間座標を持ったセグメント941、942及び943は、事前定義された順序で連続的に配置701され得る。言い換えれば、第1チャネルセグメントインデックス940に対応するセグメントはグループにまとめられ得る。引き続いて、第2チャネルセグメントインデックス941に対応するセグメントはグループにまとめられ得る。配置940は、
への潜在テンソルセグメントの再成形を含み得る。そのような配置940は、図9で例示的に示されている。前記の再成形は、空間次元を最初に処理するコーディング順序に対応し得る。図13cは、そのような配置のセグメントの処理順序を例示的に表している。同じチャネルセグメントインデックスのセグメントは、他のチャネルセグメントインデックスを持ったセグメントを処理する前に処理され得る。
簡単のために、
の連続要素の数を示す第1次元はSで表され得る。上記の例では、Sは
に等しい。
上記の例示的な実施形態のいずれかの複数のセグメントの配置の先頭は、ニューラルネットワークによる処理の前に、ゼロセグメント1000でパディング710、711され得る。ゼロセグメントは、複数のセグメント内の各セグメントと同じ寸法を有してもよい。ゼロセグメント内の各要素はゼロであってもよい。図10aは、第1実施例のそのようなパディング710を示し、図10b及び図10cは、潜在テンソルの異なる配置に対応する第2実施例及び第3実施例のパディング711を示す。図10aは、チャネル次元での分離を実行しない、第1実施例の潜在テンソルのセグメントを例示的に示す。チャネル次元でCe個の要素を含むゼロセグメント1000は、配置の先頭でパディングされて、パディングされた配置1030を得る。図10bは、同じ空間座標のセグメントを最初に符号化するコーディング順序による第2実施例の配置のパディングを示す。この例におけるゼロセグメント1001は、ゼロであるCe/NCS個の要素を含む。同様に、図10cには、同じチャネルセグメントインデックスのセグメントを最初に符号化するコーディング順序による第3実施例の配置のパディングが例示的に示されている。この例におけるゼロセグメント1002は、Ce/NCS個の要素を含む。パディングは、コーディングシーケンスの因果関係が妨げられないことを保証する。つまり、デコーダは追加の事前知識なしでビットストリームからデータを復号することができる。
潜在テンソルの複数のセグメントは第1ニューラルサブネットワーク720によって処理され得る。そのような第1ニューラルサブネットワークは、複数のセグメントから特徴を抽出し得る。前記の特徴は、独立した深層特徴(埋め込みとも呼ばれる)であることができる。従って、前記の第1ニューラルサブネットワーク720は、高次元の実数値ベクトル空間でコンテキスト埋め込みを抽出するいわゆる埋め込みレイヤである。第1ニューラルサブネットワーク720は、上で説明されているマルチレイヤパーセプトロンなどの全結合ニューラルネットワークであってもよい。例えば、畳み込みネットワーク(CNN)又は回帰ニューラルネットワーク(RNN)が使用されてもよい。第1ニューラルサブネットワーク720の出力、いわゆるコンテキスト埋め込みは、ニューラルネットワークのその後のレイヤへ入力として供給され得る。
複数のセグメントの位置情報721がアテンションレイヤへの入力として供給され得る。そのような位置情報721は、例えば連結、加算、などによって、第1ニューラルサブネットワーク720の出力と結合され得る。コンテキスト埋め込みは、位置情報721と結合されてもよく、正規化731され得る。位置符号化は位置情報、例えば線形空間内の座標を含む。位置符号化は、アテンションレイヤが入力シーケンスの連続的な順序を理解することを可能にする。例えば、これらの符号化は学習でき、あるいは、シーケンスの順序を表す事前定義されたテンソルが使用され得る。
アテンションレイヤ732による処理では、マスクが適用されてもよく、マスクは、潜在テンソルの処理順序内で現在要素に続くアテンションテンソル内の後続の要素をマスキングする。マスクは、後続の要素がアテンションテンソルの計算に使用されないようにする。言い換えれば、アテンションメカニズムは、デコーダ側で因果関係を確保するために、自己回帰タスクに適応され得る。そのようなマスク付きアテンションメカニズムは、アテンションレイヤ入力順序で現在位置より前の位置にない如何なるデータも処理しないようにマスキングされているアテンションメカニズムである。マスキングは図13a~cで例示的に示されており、現在のセグメントについてセグメントの処理順序を示す。まだコーディングされるべきセグメントが示されている。
アテンションメカニズムはデフォルトでシーケンスSの全体に適用される。それは、S内の各連続要素siがそれ自体及び全ての他の要素にアテンションを適用することを意味する。この挙動は、ネットワークが未だ処理されていない如何なる要素も使用できないので、自己回帰タスクにとって望ましくない。この問題に立ち向かうために、アテンションメカニズムは、アテンションメカニズム内のスケーリングされたドット積をマスキングすることによって制限され得る。マスクはS×S行列で記載でき、その下三角形(対角を含む)は1を含み、上三角部分(対角を除く)はマイナス無限大(softmax(-∞)=0)から成る。マスク付きアテンションは次のように定式化され得る:
ただし、マスクMの定義は、上記の三角行列に限定されない。一般に、シーケンスの望ましくない又は未だ処理されるべき部分は、例えば、-∞を乗じることによって、マスキングされ得る一方、残りは1を乗じられ得る。マスキングはまた、マルチヘッドアテンションにも適用され得、各アテンションヘッドは個別にマスキングされる。
本発明のマスキングは、この例示的な行列Mの適用に制限されない。如何なる他のマスキング技術も適用されてよい。
アテンションレイヤ732の出力は、第2ニューラルサブネットワーク735によって処理され得る。第2ニューラルサブネットワーク735はマルチレイヤパーセプトロンであってよい。アテンションレイヤ732の出力は、第2ニューラルサブネットワーク735による処理の前に正規化734され得る。アテンションレイヤ732の出力は、コンテキスト埋め込みと、又は残差接続737によってコンテキスト埋め込みと位置情報721との組み合わせ表現と組み合わせることができる。
アテンションベースのコンテキストモデルの出力はφによって表される。
エントロピ符号化の確率モデル770は、第1ビットストリームの計算複雑性及び/又は特性に応じて選択され得る。第1ビットストリーム731の特性には、事前定義された目標レート又はフレームサイズが含まれ得る。ルールは、使用すべきオプションが事前定義されてもよい。この場合に、ルールは、デコーダによって知られていることがあるので、追加のシグナリングは不要である。
選択には、潜在テンソルの分離がチャネル次元で実行されるかどうかを選択することが含まれ得る。選択には、どのように配置が実行されるか、例えば、最初の空間次元又は最初のチャネル次元、を種々の方法の間で選択することが含まれ得る。
例えば、チャネル次元における分離が実行されない場合に、コンテキストモデルのパフォーマンスは、交差チャネル相関がエントロピモデリングのために考慮されないので、制限される可能性がある。しかし、この場合は、必要な自己相関ステップの数が減るので、より高速な符号化及び復号化をもたらし得る。
例えば、NCS>1である場合、交差チャネル相関が考慮され、これにより、コンテキストモデルのパフォーマンスは向上し得る。チャネルセグメントの数NCSが
のチャネルの数Ceに等しい極端な場合に、モデルは交差チャネル相関を十分に考慮する。チャネルセグメントのその他の数1<NCS<Ceは、モデルのパフォーマンスと複雑性との間のトレードオフのバランスをとるための極端な場合の単純化をもたらす。
任意のハイパープライアモデルを取得する最初のステップでは、図3aに示されるハイパーエンコーダ330が、ハイパー潜在テンソルを取得するために潜在テンソルに適用される。ハイパー潜在テンソルは第2ビットストリーム、例えば、zストリーム341に符号化され得る。第2ビットストリームはエントロピ復号されもてよく、ハイパーデコーダ出力が、ハイパー潜在テンソルをハイパー復号することによって取得される。ハイパープライアモデルは、「変分画像圧縮」の項で説明されたように取得され得る。しかし、本開示は、この例示的な実施に限定されない。
潜在テンソルと同様に、任意のハイパーデコーダの出力ψは、複数のハイパーデコーダ出力セグメント740に分けられ得る。各ハイパーデコーダ出力セグメントは1つ以上のハイパーデコーダ出力要素を含み得る。複数のセグメントの中の各セグメントについて、当該セグメント及び複数のハイパーデコーダ出力セグメントの中のハイパーデコーダ出力セグメントの組は、確率モデル770が取得される前に連結され得る。言い換えれば、テンソルφ及びψは、チャネル次元(最後の次元)において連結され得、そして、連結された2次元テンソルをもたらし得る。
ハイパーデコーダ出力セグメントは、複数のセグメントの配置に対応して配置され得る。ハイパーデコーダの出力ψは、
の逐次フォーマットと同じ逐次フォーマットにすることができる。
ハイパーエンコーダ出力セグメントの組の例が図11に表されている。潜在テンソルのセグメントの配置は、第2実施例又は第3実施例に従って実行され得る。第4実施例では、各々のセグメント1100と連結されるべきハイパーデコーダ出力セグメントの組は、各々のセグメントに対応するハイパーデコーダ出力セグメント1110を含み得る。前記のハイパーデコーダ出力セグメント1110は、各々のセグメント1100と同じ空間座標及び同じチャネルセグメントインデックスを有し得る。つまり、ハイパーデコーダ出力セグメント1110は、各々のセグメント1100と同じ場所にあることができる。同じ場所にあるハイパーデコーダ出力セグメント1110を連結において使用することは、計算複雑性を低減るので、より高速な処理をもたらすことができる。
第5実施例では、各々のセグメント1100と連結されるべきハイパーデコーダ出力セグメントの組には、その各々のセグメントと同じチャネルに対応する複数のハイパーデコーダ出力セグメントが含まれ得る。言い換えれば、前記の複数のハイパーデコーダ出力セグメントには、各々のセグメントと同じ空間座標を有する、つまり、同じ場所にあるチャネルに属するハイパーデコーダ出力セグメントが含まれ得る。図11の例では、同じ場所にある3つのハイパーデコーダ出力セグメント1120、1121及び1122が存在し、第1ハイパーデコーダ出力セグメント1120は、潜在テンソルyの例示的な各々のセグメントと同じチャネルセグメントインデックス及び空間座標を有する。残り2つのハイパーデコーダ出力セグメント1121及び1122は、例示的な各々のセグメント1100と同じ空間座標を有し得る。複数のハイパーデコーダ出力セグメント1120、1121及び1122は、各々のセグメント1100の同じ場所にあるチャネルに属し得る。このハイパーデコーダ出力セグメントの組は、ハイパーデコーダ出力の更なる交差チャネル相関が考慮されるということで、確率推定のパフォーマンスを向上させ得る。
第6実施例では、各々のセグメント1100と連結されるべきハイパーデコーダ出力セグメントの組には、その各々のセグメント1100に空間的に近接している複数のハイパーデコーダ出力セグメント1130が含まれ得る。各々のセグメント1100に空間的に近接している前記の複数のハイパーデコーダ出力セグメント1130は、図11に例示的に表されており、各々のセグメント1100と同じチャネルセグメントインデックスを有し得る。複数のハイパーデコーダ出力セグメント1130は、各々のセグメント1100の同じ場所にある空間近傍に属し得る。このハイパーデコーダ出力セグメントの組は、ハイパーデコーダ出力の更なる空間相関が考慮されるということで、確率推定のパフォーマンスを向上させ得る。
第7実施例では、各々のセグメントと連結されるべきハイパーデコーダ出力セグメントの組には、その各々のセグメントに空間的に近接している近接セグメント1140と、前記の近接セグメント1140と同じチャネルに対応する1141及び1142とを含む複数のハイパーデコーダ出力セグメントが含まれ得る。言い換えれば、ハイパーデコーダ出力セグメントの組には、図11に例示的に表されている、各々のセグメント1100に空間的に近接し、各々のセグメント1100と同じチャネルセグメントインデックスを有し得るハイパーデコーダ出力セグメント1140が含まれ得る。更に、ハイパーデコーダ出力セグメントの組には、空間的に近接しているハイパーデコーダ出力セグメント1140と同じ空間座標、及び空間的に近接しているハイパーデコーダ出力セグメント1140のチャネルセグメントインデックスとは異なるチャネルセグメントインデックスを有し得るハイパーデコーダ出力セグメント1141及び1142が含まれ得る。連結されるべきハイパーデコーダ出力セグメントは、各々のセグメント1100の同じ場所にある局所近傍に属し得る。このハイパーデコーダ出力セグメントの組は、ハイパーデコーダ出力の更なる空間的相関及び交差チャネル相関が考慮されるということで、確率推定のパフォーマンスを向上させ得る。
各々のセグメントと連結されるべきハイパーデコーダ出力セグメントの組は上記の例に限定されない。如何なる他のハイパーデコーダ出力セグメントの組も、潜在テンソルの各々のセグメントと連結されてよい。例えば、上記の第4乃至第7実施例の如何なる組み合わせも使用されてよい。上記の第4乃至第7実施例及びそれらの任意の組み合わせのいずれも、第2又は第3実施例の配置のいずれかと組み合わされてよい。
図12は、チャネル次元におけるセグメントへの分離が実行されない場合の連結750の例を示す。潜在テンソルのセグメントの配置は第1実施例に従って実行され得る。例えば、各々のセグメント1200と連結されるべきハイパーデコーダ出力セグメントの組には、その各々のセグメントに対応するハイパーデコーダ出力セグメント1210が含まれ得る。前記のハイパーデコーダ出力セグメント1210は、各々のセグメント1200と同じ空間座標及び同じチャネルセグメントインデックスを有し得る。例えば、各々のセグメント1200と連結されるべきハイパーデコーダ出力セグメントの組には、その各々のセグメント1200に空間的に近接している複数のハイパーデコーダ出力セグメント1230が含まれ得る。各々のセグメント1200に空間的に近接している前記の複数のハイパーデコーダ出力セグメント1230は図12に例示的に表されている。
連結されたテンソルはS×(Cφ+Cψ’)のサイズを有し、Cφ及びCψ’は夫々、テンソルφのチャネルの数、及びテンソルψからのチャネルの数である。連結の結果は集合プロセス760によって処理され得る。例えば、集合は、最後の次元に対して全結合ニューラルネットワーク及び非線形変換の組によって実行され得る。例えば、集合は、1×1のカーネルサイズを持った畳み込み及び非線形変換の1つ又は複数のレイヤによって実装され得る。エントロピモデル770は、
の統計的特性の推定を生成する。エントロピエンコーダ370は、これらの統計的特性を用いて、
のビットストリーム表現371を生成し得る。
エントロピ符号化のための確率モデルの選択と同様に、ハイパーデコーダ出力セグメントの組は、第1ビットストリームの計算複雑性及び/又は特性に応じて適応的に選択され得る。第1ビットストリームの特性には、事前定義された目標レート又はフレームサイズが含まれ得る。ルールの組は、使用すべきオプションが事前定義されてもよい。この場合に、ルールは、デコーダによって知られていることがあるので、追加のシグナリングは不要である。
符号化中、潜在テンソルの全ての要素が利用可能である。よって、ニューラルネットワークによる処理及び/又は現在要素のエントロピ符号化は、複数のセグメントの中の各セグメントについて並行して実行され得る。
ニューラルネットワークによる配置の処理には、セグメントのサブセットを選択することが含まれ得る。そのようなセグメントのサブセットは複数のセグメントから選択される。サブセットはニューラルネットワークの後続レイヤに供給されてもよい。例えば、サブセットは、第1ニューラルサブネットワークを適用する前に選択され得る。そのようなセグメントのサブセットには、空間次元における局所近傍内のセグメントが含まれ得る。これは図14a~cに例示的に示されている。図14a~cの例では、コンテキストモデリングによって使用され得る、現在のセグメントに空間的に近いセグメントが、表されている。図14aは、チャネル次元での分離が実行され得ない場合を示す。図14bは、第2チャネルのセグメントの前に第1チャネルのセグメントが処理されている例示的な場合を表す。図14cは、第2チャネルセグメントインデックスを有するセグメントの前に第1チャネルセグメントインデックスのセグメントが処理されている例示的な場合を表す。コンテキストモデルにおけるアテンションメカニズムのサイズは、
の長さによって制限される。しかし、限られた利用可能なメモリ及び/又は固定サイズを有する位置符号化の場合、コンテキストモデルに使用される、前にコーディングされた要素の数は、制限されることがある。この場合、コンテキストモデルは、スライディングウィンドウ方式で潜在テンソルに対して適用でき、
からサブグリッドが抽出され、各繰り返しにおいてコンテキストモデルによって処理される。その後、サブグリッドはその次の位置に移動される。
第1ビットストリームからの潜在空間特徴テンソルの復号化のために、デコーダが潜在テンソル及びその統計的特性潜在テンソルにはとらわれないため、潜在テンソルはゼロで初期化される。潜在空間特徴テンソルは1つ以上の要素を含むものであり、図7a及び図8に示されるように、空間次元において複数のセグメント820に分けられる700。各セグメントは少なくとも1つの潜在テンソル要素を含む。符号化側と同様に、複数のセグメントの配置はニューラルネットワークの1つ以上のレイヤによって処理される。符号化側の第1実施例に対応する配置は、逐次形式830への潜在テンソルの再成形を含み得る。
は
を有することができ、これは、符号化について上で説明されており、図8に例示的に示されている。
ニューラルネットワークは少なくとも1つのアテンションレイヤを含む。アテンションメカニズムは、図5及び図6を参照して「ディープラーニングにおけるアテンションメカニズム」の項において上で説明されている。符号化に対応して、アテンションレイヤは、図6bを参照して例示的に記載されたようにマルチヘッドアテンションレイヤであってよい。アテンションレイヤはトランスフォーマサブネットワークに含まれてもよく、これは図5a及び図5bを参照して例示的に説明されている。
潜在テンソルの現在要素のエントロピ復号化のための確率モデルは、処理された複数のセグメントに基づいて取得される。現在要素は、エントロピ復号化のための取得された確率モデルを用いて第1ビットストリーム、例えば、図3のyビットストリーム371から復号され得る。エントロピ復号化のための具体的な実施は、例えば、「変分画像圧縮」の項で議論されている算術復号化であってよい。本発明は、そのような例示的な算術復号化に限定されない。任意のエントロピ復号化は、要素ごとの推定されたエントロピにその復号化が基づくことができるものであり、本発明によって取得される確率を使用し得る。
潜在テンソルの分離には、例えば図9に示されているように、チャネル次元における2つ以上のセグメントへの潜在テンソルの分離701が含まれ得る。そのような分離は、符号化側について詳細に説明されている。
セグメントは事前定義された順序で配置されてよく、同じ空間座標を有するセグメント931、932及び933はグループにまとめられる。この配置930は、符号化について詳細に上で説明されている第2実施例に対応する。
異なる空間座標941、942及び943を有するセグメントは、事前定義された順序で連続的に配置されてよい。そのような配置940は、符号化について詳細に上で説明されている第3実施例と同様である。
上記の実施例のいずれかの複数のセグメントの配置の先頭は、ニューラルネットワークによる処理の前にゼロセグメント1000でパディング710、711されてもよい。ゼロセグメントは、複数のセグメント内の各セグメントと同じ寸法を有することができ、これは図10a~cに例示的に表されている。パディングについては、図10a~cを参照して上で詳細に説明されている。
符号化側に従って、潜在テンソルの複数のセグメントは第1ニューラルサブネットワーク720によって処理され得る。そのような第1ニューラルサブネットワークは複数のセグメントから特徴を抽出し得る。前記の特徴は独立した深層特徴であってよい。第1ニューラルサブネットワーク720はマルチレイヤパーセプトロンであってよい。複数のセグメントの位置情報721はアテンションレイヤへの入力として供給され得る。そのような位置情報721は、例えば連結、加算、などによって、第1ニューラルサブネットワーク720の出力と結合され得る。
アテンションレイヤ732の出力は、符号化側と同様に第2ニューラルサブネットワーク735によって処理され得る。第2ニューラルサブネットワーク735はマルチレイヤパーセプトロンであってよい。アテンションレイヤ732の出力は、コンテキスト埋め込みと、又は残差接続737によってコンテキスト埋め込みと位置情報721との組み合わせ表現と組み合わせることができる。
符号化と同様に、エントロピ符号化のための確率モデル770は、第1ビットストリームの計算複雑性及び/又は特性に応じて選択され得る。第1ビットストリーム731の特性には、事前定義された目標レート又はフレームサイズが含まれ得る。ルールの組は、使用すべきオプションが事前定義されてもよい。この場合に、ルールは、デコーダによって知られていることがある。
ハイパー潜在テンソルは第2ビットストリーム341からエントロピ復号され得る。取得されたハイパー潜在テンソルはハイパーデコーダ出力ψにハイパー復号され得る。
潜在テンソルと同様に、任意のハイパーデコーダψの出力は複数のハイパーデコーダ出力セグメント740に分けられ得る。各ハイパーデコーダ出力セグメントは1つ以上のハイパーデコーダ出力要素を含み得る。複数のセグメントの中の各セグメントについて、そのセグメントと、複数のハイパーデコーダ出力セグメントの中のハイパーデコーダ出力セグメントの組とは、確率モデル770が取得される前に連結750され得る。
ハイパーエンコーダ出力セグメントの組の例は図11に表されており、第4実施例、第5実施例、第6実施例及び第7実施例で符号化側について詳細に説明されている。ハイパーデコーダ出力セグメントの組には、前記の各々のセグメントに対応するハイパーデコーダ出力セグメント、又は前記の各々のセグメントと同じチャネルに対応する複数のハイパーデコーダ出力セグメント、又は前記の各々のセグメントに空間的に近接している複数のハイパーデコーダ出力セグメント、又は前記の各々のセグメントに空間的に近接している近接セグメント、その近接セグメントと同じチャネルに対応するセグメントとを含む複数のハイパーデコーダ出力セグメント、の1つ以上が含まれ得る。上記の第4乃至第7実施例及びそれらの任意の組み合わせのいずれも、第2又は第3実施例の配置のいずれかと組み合わされてよい。
エントロピ符号化のための確率モデルの選択と同様に、ハイパーデコーダ出力セグメントの組は、第1ビットストリームの計算複雑性及び/又は特性に応じて適応的に選択され得る。第1ビットストリームの特性には、例えば、事前定義された目標レート又はフレームサイズが含まれる。ルールの組は、使用すべきオプションが事前定義されてもよい。この場合に、ルールは、デコーダによって知られていることがある。
ニューラルネットワークによる配置の処理には、セグメントのサブセットを選択することが含まれ得る。そのようなセグメントのサブセットは複数のセグメントから選択される。サブセットはニューラルネットワークの後続レイヤへ供給され得る。例は図14a~cを参照して上で説明されている。
アテンションレイヤを使用する確率モデルは、上で議論されたように画像データを取得するために自己復号化畳み込みニューラルネットワークによって処理され得る潜在テンソルのエントロピ復号化に適用されてもよい。
ピクチャコーディング内の実装
エンコーダ20はピクチャ17(又はピクチャデータ17)、例えば、ビデオ又はビデオシーケンスを形成するピクチャの連続の中のピクチャ、を受け取るよう構成され得る。受け取られたピクチャ又はピクチャデータは、前処理されたピクチャ19(又は前処理されたピクチャデータ19)であってもよい。簡単のために、以下の説明はピクチャ17を参照する。ピクチャ17は、現在のピクチャ又はコーディングされるべきピクチャとも呼ばれることがある(特に、ビデオコーディングでは、現在のピクチャを他のピクチャと区別するために、例えば、同じビデオシーケンス、つまり、現在のピクチャも含むビデオシーケンスの前に符号化及び/又は復号されたピクチャ)。
(デジタル)ピクチャは、強度値を持ったサンプルの2次元アレイ又は行列として見なされるか又はそのような見なすことができる。アレイ内のサンプルは、ピクセル(ピクチャ要素の略称)又はペルとも呼ばれることがある。アレイ又はピクチャの水平及び垂直方向(又は軸)におけるサンプルの数は、ピクチャのサイズ及び/又は解像度を定義する。色の表現のために、3つの色成分が用いられる。すなわち、ピクチャは3つのサンプルアレイで表現されるか、又は3つのサンプルアレイを含み得る。RGBフォーマット又は色空間では、ピクチャは対応する赤、緑、青のサンプルアレイを有する。ただし、ビデオコーディングでは、各ピクセルは、典型的に、ルミナンス及びクロミナンスフォーマット又は色空間、例えば、Y(時々、Lも代わりに使用される)によって示されるルミナンス成分と、Cb及びCrによって示される2つのクロミナンス成分とを含むYCbCrで表現される。ルミナンス(又は略してルーマ)成分Yは、輝度又はグレーレベル強度(例えば、グレースケールピクチャと同様)を表し、一方、2つのクロミナンス(又は略してクロマ)成分Cb及びCrは、色度又は色情報成分を表す。従って、YCbCrフォーマットでのピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイと、クロミナンス値(Cb及びCr)の2つのクロミナンスサンプルアレイとを含む。RGBフォーマットでのピクチャは、YCbCrフォーマットに変換又は転換されてもよく、また逆も然りであり、プロセスは色変換又は転換としても知られている。ピクチャがモノクロである場合、ピクチャはルミナンスサンプルアレイしか有さなくてもよい。従って、ピクチャは、例えば、モノクロフォーマットにおけるルーマサンプルのアレイ、又は4:2:0、4:2:2、及び4:4:4色フォーマットにおけるルーマサンプルのアレイ及び2つの対応するクロマサンプルのアレイであってよい。
ハードウェア及びソフトウェアでの実装
ハードウェア及びソフトウェアでのいくつかの更なる実装については、以下で記載される。
図15~18を参照して記載される符号化デバイスのいずれも、潜在テンソルのエントロピ符号化を実行するために手段を提供し得る。これらの例示的なデバイスのいずれかの中の処理回路は、潜在テンソルを空間次元において複数のセグメントに分け、各セグメントが少なくとも1つの潜在テンソル要素を含み、少なくとも1つのアテンションレイヤを含むニューラルネットワークの1つ以上のレイヤによって複数のセグメントの配置を処理し、処理された複数のセグメントに基づいて潜在テンソルの現在要素のエントロピ符号化のための確率モデルを取得するよう構成される。
図15~18のいずれかの復号化デバイスは、復号化方法を実行するよう構成される処理回路を含み得る。上記の方法は、潜在テンソルをゼロで初期化することと、潜在テンソルを空間次元において複数のセグメントに分け、各セグメントが少なくとも1つの潜在テンソル要素を含むことと、少なくとも1つのアテンションレイヤを含むニューラルネットワークの1つ以上のレイヤによって複数のセグメントの配置を処理することと、処理された複数のセグメントに基づいて潜在テンソルの現在要素のエントロピ復号化のための確率モデルを取得することとを有する。
まとめると、方法及び装置は、潜在テンソルを空間次元においてセグメントに分け、各セグメントが少なくとも1つの潜在テンソル要素を含むことを含む、潜在テンソルのエントロピ符号化及び復号化について記載されている。セグメントの配置はニューラルネットワークによって処理され、ニューラルネットワークは少なくとも1つのアテンションレイヤを含む。処理されたセグメントに基づいて、確率モデルが、潜在テンソル要素のエントロピ符号化又は復号化のために取得される。
ビデオコーディングシステム10の以下の実施形態では、ビデオエンコーダ20及びビデオデコーダ30が図15及び図16に基づいて記載される。
図15は、例となるコーディングシステム10,例えば、本願の技術を利用し得るビデオコーディングシステム10(又は略してコーディングシステム10)を表す略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(又は略してエンコーダ20)及びビデオデコーダ30(又は略してデコーダ30)は、本願で記載される様々な例に従って技術を実行するよう構成され得るデバイスの例に相当する。
図15に示されるように、コーディングシステム10は、符号化されたピクチャデータ21を、例えば、符号化されたピクチャデータ21を復号するためにあて先デバイス14へ、供給するよう構成されるソースデバイス12を有する。
ソースデバイス12はエンコーダ20を有し、更に、つまり任意に、ピクチャソース16、プリプロセッサ(又は前処理ユニット)18、例えばピクチャプリプロセッサ18、及び通信インターフェース又は通信ユニット22を有してもよい。
ピクチャソース16は、任意の種類のピクチャ捕捉デバイス、例えば、現実世界のピクチャを捕捉するカメラ、及び/又は任意の種類のピクチャ生成デバイス、例えばコンピュータアニメーションピクチャを生成するコンピュータグラフィクスプロセッサ、あるいは、現実世界のピクチャ、コンピュータにより生成されたピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)及び/又はそれらの任意の組み合わせ(例えば、拡張現実(AR)ピクチャ)を取得及び/又は供給する任意の種類の他のデバイスを有しても、又はそのようなものであってもよい。ピクチャソースは、上記のピクチャのいずれかを記憶する任意の種類のメモリ又はストレージであってもよい。
プリプロセッサ18又は前処理ユニット18によって実行される処理と区別して、ピクチャ又はピクチャデータ17は、ローピクチャ又はローピクチャデータ17とも呼ばれることがある。
プリプロセッサ18は、(ロー)ピクチャデータ17を受け取り、ピクチャデータ17に対して前処理を実行して、前処理されたピクチャ19又は前処理されたピクチャデータ19を取得するよう構成される。プリプロセッサ18によって実行される前処理には、例えば、トリミング、色フォーマット変換(例えば、RGBからYCbCr)、色補正、又はノイズ除去が含まれ得る。前処理ユニット18は任意のコンポーネントであってもよいことが理解され得る。
ビデオエンコーダ20は、前処理されたピクチャデータ19を受け取り、符号化されたピクチャデータ21を供給するよう構成される。
ソースデバイス12の通信インターフェース22は、符号化されたピクチャデータ21を受け取り、符号化されたピクチャデータ21(又はその任意の更に処理されたバージョン)を通信チャネル13を介して他のデバイス、例えばあて先デバイス14又は任意の他のデバイスへ、記憶又は直接の再構成のために送信するよう構成され得る。
あて先デバイス14はデコーダ30(例えば、ビデオデコーダ30)を有し、更に、つまり任意に、通信インターフェース又は通信ユニット28、ポストプロセッサ32(又は後処理ユニット32)、及び表示デバイス34を有してもよい。
あて先デバイス14の通信インターフェース28は、符号化されたピクチャデータ21(又はその任意の更に処理されたバージョン)を、例えばソースデバイス12から直接、又は任意の他のソース、例えば記憶デバイス、例えば符号化ピクチャデータ記憶デバイスから受け取り、符号化されたピクチャデータ21をデコーダ30へ供給するよう構成される。
通信インターフェース22及び通信インターフェース28は、符号化されたピクチャデータ21又は符号化されたデータ21を、ソースデバイス12とあて先デバイス14との間の直接通信リンク、例えば、直接的な有線若しくは無線接続を介して、又は任意の種類のネットワーク、例えば、有線若しくは無線ネットワーク又はそれらの任意の組み合わせ、又は任意の種類のプライベート及びパブリックネットワーク、又は任意の種類のそれらの組み合わせを介して、送信又は受信するよう構成され得る。
通信インターフェース22は、例えば、符号化されたピクチャデータ21を適切なフォーマット、例えばパケットにパッケージ化するよう、及び/又は符号化されたピクチャデータを、通信リンク若しくは通信ネットワーク上での伝送のための任意の種類の伝送符号化又は処理を用いて、処理するよう構成されてもよい。
通信インターフェース28は、通信インターフェース22の相手方を形成するものであり、例えば、送信されたデータを受け取り、送信データを、任意の種類の対応する伝送復号化若しくは処理及び/又はパッケージ化解除を用いて処理して、符号化されたピクチャデータ21を取得するよう構成され得る。
通信インターフェース22及び通信インターフェース28は両方とも、ソースデバイス12からあて先デバイス14を指し示す図15中の通信チャネル13のための矢印によって示されるような一方向通信インターフェース、又は双方向通信インターフェースとして構成されてよく、例えばメッセージを送信及び受信するよう、例えば接続をセットアップして、通信リンク及び/又はデータ伝送、例えば符号化ピクチャデータ伝送に関する任意の他の情報を確認及び交換するよう構成されてもよい。
デコーダ30は、符号化されたピクチャデータ21を受け取り、復号されたピクチャデータ31又は復号されたピクチャ31を供給するよう構成される。
あて先デバイス14のポストプロセッサ32は、復号されたピクチャデータ31(再構成されたピクチャデータとも呼ばれる)、例えば復号されたピクチャ31を後処理して、後処理されたピクチャデータ33、例えば後処理されたピクチャ33を取得するよう構成される。後処理ユニット32によって実行される後処理には、例えば、色フォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、又はリサンプリング、又は、例えば復号されたピクチャデータ31を、例えば表示デバイス34による表示のために準備するための任意の他の処理が含まれ得る。
あて先デバイス14の表示デバイス34は、ピクチャを、例えばユーザ又は見る者に、表示にするために、後処理されたピクチャデータ33を受け取るよう構成される。表示デバイス34は、再構成されたピクチャを表現するための任意の種類のディスプレイ、例えば内蔵又は外付けディスプレイ又はモニタであっても、又はそのようなものを有してもよい。ディスプレイ、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、Liquid Crystal on Silicon(LCoS)、デジタル光プロセッサ(DLP)、又は任意の種類の他のディスプレイを有してもよい。
コーディングシステム10は訓練エンジン25を更に含む。訓練エンジン25は、上で議論されているように入力ピクチャを処理し又はエントロピ符号化のための確率モデル生成するようにエンコーダ20(若しくはエンコーダ20内のモジュール)又はデコーダ30(又はデコーダ30内のモジュール)を訓練するよう構成される。
図15はソースデバイス12及びあて先デバイス14を別個のデバイスとして表しているが、デバイスの実施形態は両方を又は両方の機能を、つまり、ソースデバイス12又は対応する機能及びあて先デバイス14又は対応する機能を有してもよい。そのような実施形態では、ソースデバイス12又は対応する機能及びあて先デバイス14又は対応する機能は、同じハードウェア及び/又はソフトウェアを用いて、あるいは、別個のハードウェア及び/又はソフトウェア、又はそれらの任意の組み合わせによって、実装されてもよい。
記載に基づいて当業者にとって明らかであろうように、図15に示されているソースデバイス12及び/又はあて先デバイス14の中の異なるユニット又は機能の存在及び機能の(厳密な)分離は、実際のデバイス及び用途に応じて変化し得る。
エンコーダ20(例えば、ビデオエンコーダ20)又はデコーダ30(例えば、ビデオデコーダ30)、あるいはエンコーダ20及びデコーダ30の両方は、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ハードウェア、ビデオコーディング専用、又はそれらの任意の組み合わせなどの、図16に示される処理回路により実装され得る。エンコーダ20は、図3bのエンコーダ及び/又は本明細書で記載されている任意の他のエンコーダシステム若しくはサブシステムに関して議論された様々なモジュールを具現化するために処理回路46により実装され得る。デコーダ30は、図3cのデコーダ及び/又は本明細書で記載されている任意の他のデコーダシステム若しくはサブシステムに関して議論された様々なモジュールを具現化するために処理回路46により実装され得る。処理回路は、後で議論される様々な動作を実行するよう構成され得る。図18に示されるように、技術が部分的にソフトウェアで実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェアようの命令を記憶してもよく、本開示の技術を実行するために1つ以上のプロセッサを用いてハードウェアで命令を実行してもよい。ビデオエンコーダ20及びビデオデコーダ30のいずれも、例えば図16に示されるように、単一のデバイスにエンコーダ/デコーダ複合(CODEC)の部分として組み込まれてもよい。
ソースデバイス12及びあて先デバイス14は、任意の種類のハンドヘルド又は固定デバイス、例えば、ノートブック若しくはラップトップコンピュータ、携帯電話、スマートフォン、タブレット若しくはタブレットコンピュータ、ビデオゲーム機、ビデオストリーミングデバイス(例えば、コンテンツサービスサーバ若しくはコンテンツ配信サーバ)、ブロードキャスト受信器デバイス、ブロードキャスト送信器デバイス、などを含む広範なデバイスのいずれかを有してもよく、オペレーティングシステムを使用してなくても、又は任意の種類のオペレーティングシステムを使用してもよい。いくつかの場合に、ソースデバイス12及びあて先デバイス14は無線通信のために装備されることがある。よって、ソースデバイス12及びあて先デバイス14は無線通信デバイスであってもよい。
いくつかの場合に、図15に表されているビデオコーディングシステム10は、一例にすぎず、本願の技術は、符号化デバイスと復号化デバイスとの間の如何なるデータ通信も必ずしも含まないビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用され得る。他の例では、データはローカルメモリから受け取られるか、ネットワーク上でストリーミングされるか、などである。ビデオ符号化デバイスはデータを符号化してメモリに記憶することができ、及び/又はビデオ復号化デバイスは、メモリからデータを取り出して復号することができる。いくつかの例では、符号化及び復号化は、互いに通信せず、単純にデータを符号化してメモリに記憶し、及び/又はメモリからデータを読み出して復号するデバイスによって実行される。
記載の便宜上、本発明の実施形態は、例えばHigh-Efficiency Video Coding(HEVC)、又はITU-T Video Coding Experts Group(VCEG)及びISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT-VC)によって開発された次世代ビデオコーディング規格であるVersatile Video Cocing(VVC)の参照ソフォフトウェアを参照して、本明細書で記載される。当業者であれば、本発明の実施形態がHEVC又はVVCに限定されないこと理解するだろう。
図17は、本開示の実施形態に係るビデオコーディングデバイス400の模式図である。ビデオコーディングデバイス400の模式図は、本明細書で記載される開示されている実施形態を実装するのに適している。実施形態において、ビデオコーディングデバイス400は、図15のビデオデコーダ30などのデコーダ、又は図15のビデオエンコーダ20などのエンコーダであってよい。
ビデオコーディングデバイス400は、データを受け取るための入口ポート410(又は入力ポート410)及び受信器ユニット(Rx)420と、データを処理するためのプロセッサ、ロジックユニット、又は中央演算処理装置(CPU)430と、データを送信するための送信器ユニット(Tx)440及び出口ポート450(又は出力ポート450)と、データを記憶するためのメモリ460とを有する。ビデオコーディングデバイス400はまた、光信号又は電気信号の出入りのための、入口ポート410、受信器ユニット420、送信器ユニット440、及び出口ポート450に結合されている光電気(OE)コンポーネント及び電気光(EO)コンポーネントも有し得る。
プロセッサ430はハードウェア及びソフトウェアによって実装される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、FPGA、ASIC、及びDSPとして実装されてよい。プロセッサ430は入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430はコーディングモジュール470を有する。コーディングモジュール470は、上述された開示されている実施形態を実装する。例えば、コーディングモジュール470は、様々なコーディング動作を実装、処理、準備、又は提供する。従って、コーディングモジュール470の包含は、ビデオコーディングデバイス400の機能性の大幅な向上をもたらし、異なる状態へのビデオコーディングデバイス400の変化を達成する。代替的に、コーディングモジュール470は、メモリ460に記憶されて、プロセッサ430によって実行される命令として実装される。
メモリ460は、1つ以上のディスク、テープドライブ、及びソリッドステートドライブを有してもよく、プログラムを、かようなプログラムが実行のために選択されるときに記憶するために、かつ、プログラム実行中に読み出される命令及びデータを記憶するために、オーバーフローデータ記憶デバイスとして使用されてもよい。メモリ460は、例えば、揮発性及び/又は不揮発性であってよく、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、及び/又は静的ランダムアクセスメモリ(SRAM)であってもよい。
図18は、例示的な実施形態に従って、図15のソースデバイス12及びあて先デバイス14のいずれか一方又は両方として使用され得る装置500の略ブロック図である。
装置500のプロセッサ502は中央演算処理装置であることができる。代替的に、プロセッサ502は、現在存在している又は今後開発される、情報を操作又は処理可能な任意のタイプのデバイス、又は複数のデバイスであることができる。開示されている実施は図示されるように単一のプロセッサ、例えばプロセッサ502により実施され得るが、速度及び効率における利点は、1つよりも多いプロセッサを用いて達成できる。
装置500のメモリ504は、実施において、リードオンリーメモリ(ROM)デバイス又はランダムアクセスメモリ(RAM)デバイスであることができる。如何なる他の適切なタイプの記憶デバイスもメモリ504として使用できる。メモリ504は、バス512を用いてプロセッサ502によってアクセスされるコード及びデータ506を含むことができる。メモリ504は、オペレーティングシステム508及びアプリケーションプログラム510を更に含むことができ、アプリケーションプログラム510は、プロセッサ502がここで記載されている方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、部分的に更新可能なレイヤのサブセットを含むニューラルネットワークを使用する符号化及び復号化を含む、ここで記載されている方法を実行するビデオコーディングアプリケーションを更に含むアプリケーション1乃至Nを含むことができる。
装置500は、ディスプレイ518のような1つ以上の出力デバイスも含むことができる。ディスプレイ518は、一例では、タッチ入力を検出するよう動作するタッチ検知要素とディスプレイを組み合わせるタッチ検知ディスプレイであってもよい。ディスプレイ518は、バス512を介してプロセッサ502に結合され得る。
ここでは単一のですとして表されているが、装置500のバス512は複数のバスから成ることができる。更に、二次ストレージ514は装置500の他のコンポーネントに直接結合され得るか、又はネットワークを介してアクセスされ得、メモリカードなどの単一の集積ユニット又は複数のメモリカードなどの複数のユニットを有することができる。装置500は、このようにして、広範な構成で実装され得る。
本発明の実施形態はビデオコーディングに基づいて主に記載されてきたが、コーディングシステム10、エンコーダ20及びデコーダ(及び相応してシステム10)、並びに本明細書で記載される他のコンポーネントの実施形態は、静止ピクチャ処理又はコーディング、つまり、ビデオコーディングで見られるような如何なる先行ピクチャ又は連続ピクチャからも独立した個別のピクチャの処理又はコーディングのためにも構成されてよい、ことが留意されるべきである。一般に、インター予測ユニット244(エンコーダ)及び344(デコーダ)のみが、ピクチャ処理コーディングが単一のピクチャ17に限定される場合に、利用可能でないことがある。ビデオエンコーダ20及びビデオデコーダ30の全ての他の機能性(ツール又は技術とも呼ばれる)、例えば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、パーティショニング262/362、イントラ予測254/354、及び/又はループフィルタリング220、320、並びにエントロピ符号化270及びエントロピ復号化304は、静止ピクチャ処理のために同様に使用され得る。
例えばエンコーダ20及びデコーダ30の実施形態、並びにここで記載される機能は、エンコーダ20及びデコーダ30を参照して、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実装されてよい。ソフトウェアで実装される場合、機能はコンピュータ可読媒体に記憶されるか、あるいは、1つ以上の命令又はコードとして通信媒体上で伝送され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体には、データ記憶媒体などの有形な媒体に対応するコンピュータ可読記憶媒体、又は例えば通信プロトコルに従って、1つの場所から他の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体が含まれ得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形なコンピュータ可読記憶媒体、又は(2)信号若しくは搬送波のような通信媒体、に対応し得る。データ記憶媒体は、本開示で記載されている技術の実施のための命令、コード、及び/又はデータ構造を読み出すよう1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る任意の利用可能媒体であってよい。コンピュータプログラム製品には、コンピュータ可読媒体が含まれ得る。
例として、限定としてではなく、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリ、又は目憂い若しくはデータ構造の形で所望のプログラムコードを記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を有することができる。また、如何なる接続もコンピュータ可読媒体と適切に称される。例えば、命令がウェブサイト、サーバ、又は他のリモートソースから同軸ケーブル、光ファイバケーブル、ツイステッドペア、デジタル加入者回線(DSL)、又は赤外線、電波及びマイクロ波などの無線技術を用いて送信される場合、同軸ケーブル、光ファイバケーブル、ツイステッドペア、DSL、又は赤外線、電波及びマイクロ波などの無線技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、代わりに、非一時的な有形な記憶媒体を対象としている、ことが理解されるべきである。ここで使用されるdisk及びdiscは、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピーディスク及びBlu-rayディスクを含み、diskは通常はデータを磁気的に再生し、一方、discはデータをレーザにより光学的に再生する。上記の組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の同等の集積若しくはディスクリートロジック回路などの1つ以上のプロセッサによって実行されてもよい。従って、ここで使用される「プロセッサ」という用語は、ここで記載されている技術の実施に適した上記の構造又は任意の他の構造のいずれかを指し得る。更に、いくつかの側面で、ここで記載される機能は、符号化及び復号化のために構成されている専用のハードウェア及び/又はソフトウェアモジュール内に設けられても、又は複合コーデックに組み込まれてもよい。また、技術は、1つ以上の回路又はロジック要素で完全に実装されてもよい。
本開示の技術は、ワイヤレスハンドセット、集積回路(IC)又はICの組(例えば、チップセット)を含む広範なデバイス又は装置で実装されてよい。様々なコンポーネント、モジュール、又はユニットが、開示されている技術を実行するよう構成されるデバイスの機能的側面を強調するために本開示で記載されているが、必ずしも異なるハードウェアユニットによる実現を必要としない。むしろ、上述されたように、様々なユニットは、適切なソフトウェア及び/又はファームウェアと組み合わせて、コーデックハードウェアユニットにまとめられても、又は上述された1つ以上のプロセッサを含む相互運用的なハードウェアユニットの集合によって提供されてもよい。