(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-21
(45)【発行日】2024-07-01
(54)【発明の名称】深層強化学習によるエンドツーエンドニューラル圧縮のための方法及び装置
(51)【国際特許分類】
G06N 3/092 20230101AFI20240624BHJP
【FI】
G06N3/092
(21)【出願番号】P 2022555102
(86)(22)【出願日】2021-09-24
(86)【国際出願番号】 US2021051953
(87)【国際公開番号】W WO2022146508
(87)【国際公開日】2022-07-07
【審査請求日】2022-10-12
(32)【優先日】2020-12-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-09-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャン,ウェイ
(72)【発明者】
【氏名】ワン,ウェイ
(72)【発明者】
【氏名】リン,シェン
(72)【発明者】
【氏名】リウ,シャン
【審査官】渡辺 順哉
(56)【参考文献】
【文献】国際公開第2019/115865(WO,A1)
【文献】特開2020-053820(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサが実行する、深層強化学習を用いるエンドツーエンドニューラル画像圧縮の方法であって、
入力をエンコードするステップと、
前記入力の複数のエンコード表現を生成するステップと、
1組の以前の量子化状態に基づいて、第1のニューラルネットワークを用いて、1組の量子化鍵を生成するステップであって、前記1組の量子化鍵における各量子化鍵及び前記1組の以前の量子化状態における各以前の量子化状態は、前記複数のエンコード表現に対応する、ステップと、
第2のニューラルネットワークを用いて、前記1組の量子化鍵に基づいて、前記複数のエンコード表現の逆量子化された表現を表す1組の逆量子化された数字を生成するステップと、
前記1組の逆量子化された数字に基づいて、再構成された出力を生成するステップと、
を含む方法。
【請求項2】
前記入力の前記複数のエンコード表現は、数字のストリームである、請求項1に記載の方法。
【請求項3】
前記1組の量子化鍵をエントロピーエンコードすることによって、1組のエンコードされた量子化鍵を生成するステップと、
前記1組のエンコードされた量子化鍵をエントロピーデコードすることによって、1組のデコードされた量子化鍵を生成するステップと、をさらに含み、
前記1組の逆量子化された数字は、前記第2のニューラルネットワークを用いて、前記1組のデコードされた量子化鍵に基づいて生成され、
前記第2のニューラルネットワークは、DRL逆量子化ニューラルネットワークである、請求項1に記載の方法。
【請求項4】
前記第1のニューラルネットワークをトレーニングすることによって、前記1組の以前の量子化状態と前記1組の量子化鍵とに基づいて、1組の現在の量子化状態を生成するステップをさらに含み、
前記第1のニューラルネットワークは、DRL量子化ニューラルネットワークである、請求項1に記載の方法。
【請求項5】
前記第1のニューラルネットワークは、すべての可能な行動のq値を計算し、最適なq値を持つ最適な行動として行動をランダムに選択し、選択された前記最適な行動の報酬を生成し、1組の選択された最適な行動をサンプリングし、前記第1のニューラルネットワークの重みパラメータを更新して歪み損失を最小化することによってトレーニングされる、請求項
4に記載の方法。
【請求項6】
深層強化学習を用いるエンドツーエンドニューラル画像圧縮のための装置であって、
プログラムコードを記憶するように構成されている少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードの指示通りに動作するように構成されている少なくとも1つのプロセッサと、を備え、
前記プログラムコードは、
前記少なくとも1つのプロセッサに、請求項1乃至
5のうちのいずれか一項に記載の方法を実行させるように構成されている、装置。
【請求項7】
コンピュータに、請求項1乃至
5のうちのいずれか一項に記載の方法を実行させるように構成される、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年12月29日に出願された米国仮特許出願第63/131,670号、及び2021年9月16日に出願された米国特許出願第17/476,859号に基づいて、それらの優先権を主張し、それらの開示内容を全て参照により本明細書に組み込むものとする。
【背景技術】
【0002】
エンドツーエンドニューラル圧縮(E2ENC)のプロセスは、以下のように説明することができる。入力画像又はビデオシーケンスxが与えられると、入力xに基づいて、DNNエンコーダは、離散値化された量子化された表現
(外1)
(以下「y
―」等と記載する。)に量子化されるコンパクトな表現yを計算する。この離散値化された量子化された表現y
―は、その後、記憶及び伝送を容易にするためにロスレスにエントロピーエンコードされることができる。デコーダ側では、離散値化された量子化された表現y
―は、ロスレスエントロピーデコーディングから復元されることができ、画像又はビデオシーケンスzを再構成するためのDNNデコーダへの入力として使用される。
【0003】
このプロセスでは、量子化はコアステップであり、圧縮品質の損失の主な原因の一つでもある。量子化効率を向上させることで、あらゆる画像及びビデオ圧縮タスクに大きな性能向上をもたらすことができる。
【発明の概要】
【0004】
実施形態によれば、深層強化学習を用いるエンドツーエンドニューラル画像圧縮の方法は、少なくとも1つのプロセッサが実行する方法であって、入力をエンコードするステップと、前記入力の複数のエンコード表現を生成するステップと、1組の以前の量子化状態に基づいて、第1のニューラルネットワークを使用して、1組の量子化鍵を生成するステップであって、前記1組の量子化鍵における各量子化鍵及び前記1組の以前の量子化状態における各以前の量子化状態は、前記複数のエンコード表現に対応する、ステップと、第2のニューラルネットワークを使用して、前記1組の量子化鍵に基づいて、前記複数のエンコード表現の逆量子化された表現を表す1組の逆量子化された数字を生成するステップと、前記1組の逆量子化された数字に基づいて、再構成された出力を生成するステップと、含む。
【0005】
実施形態によれば、深層強化学習を用いるエンドツーエンドニューラル画像圧縮のための装置は、プログラムコードを記憶するように構成される少なくとも1つのメモリと、前記プログラムコードを読み取り、前記プログラムコードの指示通りに動作するように構成される少なくとも1つのプロセッサと、を備える。前記プログラムコードは、前記少なくとも1つのプロセッサに、入力をエンコードさせるように構成されるエンコーディングコードと、前記少なくとも1つのプロセッサに、前記入力の複数のエンコード表現を生成させるように構成される第1の生成コードと、前記少なくとも1つのプロセッサに、1組の以前の量子化状態に基づいて、第1のニューラルネットワークを使用して、1組の量子化鍵を生成させるように構成される第2の生成コードであって、前記1組の量子化鍵における各量子化鍵及び前記1組の以前の量子化状態における各以前の量子化状態は、前記複数のエンコード表現に対応する、第2の生成コードと、前記少なくとも1つのプロセッサに、第2のニューラルネットワークを使用して、前記1組の量子化鍵に基づいて、前記複数のエンコード表現の逆量子化された表現を表す1組の逆量子化された数字を生成させるように構成される第3の生成コードと、前記少なくとも1つのプロセッサに、前記1組の逆量子化された数字に基づいて、再構成された出力をデコードさせるように構成されるデコーディングコードと、を含む。
【0006】
実施形態によれば、非一時的なコンピュータ読取可能な媒体は、命令を記憶し、前記命令は、深層強化学習を用いるエンドツーエンドニューラル画像圧縮のための少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、入力をエンコードするステップと、前記入力の複数のエンコード表現を生成するステップと、1組の以前の量子化状態に基づいて、第1のニューラルネットワークを使用して、1組の量子化鍵を生成するステップであって、前記1組の量子化鍵における各量子化鍵及び前記1組の以前の量子化状態における各以前の量子化状態は、前記複数のエンコード表現に対応する、ステップと、第2のニューラルネットワークを使用して、前記1組の量子化鍵に基づいて、前記複数のエンコード表現の逆量子化された表現を表す1組の逆量子化された数字を生成するステップと、前記1組の逆量子化された数字に基づいて、再構成された出力をデコードするステップと、を実行させる。
【図面の簡単な説明】
【0007】
【
図1】実施形態による、本明細書に記載される方法、装置、及びシステムが実施され得る環境の図である。
【
図2】
図1の1つ又は複数のデバイスの例示的なコンポーネントのブロック図である。
【
図3】DQ設計における2つの量子化器を用いる依存量子化(DQ)メカニズムの図である。
【
図4(a)】DQ設計における2つの量子化器間の切り替えを示す、手作業で設計された状態機械の状態図である。
【
図4(b)】
図4(a)の手作業で設計された状態機械の状態図を表す状態表である。
【
図5】ニューラル圧縮システムの一般的なプロセスのブロック図である。
【
図6】実施形態による、テスト段階中のエンドツーエンドニューラル圧縮(E2ENC)装置のブロック図である。
【
図7】実施形態による、テスト段階中の、
図6のテスト段階装置からのDRL量子化モジュールの詳細なブロック図である。
【
図8】実施形態による、テスト段階中の、
図6のテスト段階装置からのDRL逆量子化モジュールの詳細なブロック図である。
【
図9】実施形態による、トレーニング段階中の、DRL量子化モジュール及びDRL逆量子化モジュールのワークフローである。
【
図10】実施形態による、トレーニング段階中の、メモリリプレイ及び重み更新モジュールの詳細なワークフローである。
【
図11】実施形態による、深層強化学習を用いるエンドツーエンドニューラル画像圧縮の方法のフローチャートである。
【
図12】実施形態による、深層強化学習を用いるエンドツーエンドニューラル画像圧縮のための装置のブロック図である。
【発明を実施するための形態】
【0008】
実施形態は、深層強化学習(DRL)を用いるエンドツーエンドニューラル圧縮(E2ENC)のフレームワークに関連し得る。その方法は、ニューラル圧縮のコンテキストで圧縮プロセス全体の最適化を共同で考慮し、また、様々なタイプの学習ベースの量子化方法をサポートする。図面において、同じプロセス及び/又は操作を有するモジュールは、同じ符号で示されるため、必要に応じて繰り返しの説明を省略してもよい。
【0009】
従来の画像及びビデオコーディング規格では、手作業で設計された量子化ルールを持つ依存量子化(Dependent Quantization、DQ)又はトレリス符号化量子化を使用する。DQは、2つの量子化器Q
0とQ
1、及びそれらを切り替えるための手順で構成される。
図3は、DQ設計における量子化器Q
0とQ
1を用いるDQメカニズムの例を示している。円の上にあるラベルは関連する状態を示し、円の下にあるラベルは関連する量子化鍵を示す。デコーダ側では、再構成された数字x’は、整数鍵kに量子化器Q
0又はQ
1のいずれかの量子化ステップサイズΔを乗算することによって決定される。量子化器Q
0とQ
1との間の切り替えは、M=2
K個(K≧2(したがってM≧4))のDQ状態を持つ状態機械で表すことができ、ただし、各DQ状態は量子化器Q
0又はQ
1のいずれかと関連付けられている。現在のDQ状態は、以前のDQ状態と現在の量子化鍵k
iの値とによって一意に決定される。入力ストリームx
1,x
2,・・・をエンコードする場合、量子化器Q
0とQ
1との間の潜在的な遷移は、2
K個のDQ状態を持つトレリスによって図示することができる。したがって、量子化鍵k
1,k
2,・・・の最適なシーケンスを選択することは、最小のレート歪み(R-D)コストを持つトレリスパスを見つけることと等価である。この問題はビタビアルゴリズムによって解くことができる。
【0010】
従来、状態機械は、経験的に手作業で設計されていた。
図4は、4つの状態を持つVVC規格で使用される手作業で設計された状態機械の例を挙げている。具体的には、
図4(a)は、手作業で設計された状態機械の状態図である。
図4(b)は、手作業で設計された状態機械の状態図を表す状態表である。
【0011】
従来のDQ方法には、3つの主な制限がある。まず、量子化器が2つしか使用されない。量子化器の数を増やすと、数字をエンコードする際のビット消費量を減らすことができる。第二に、状態機械を手作業で設計するのは最適ではなく、高価すぎて多数のDQ状態を含めることができない。量子化器の数を増やすには、DQ状態の数を増やす必要があり、これにより、量子化効率を向上させることができるが、状態機械が複雑になりすぎて、手作業で設計されることができなくなる。最後に、鍵の生成及び数字の再構成の方法は、ヒューリスティックに手動で設計されており、これも最適とは言えない。他のより良い方法を探すには、ドメインの専門知識が必要であり、手動で設計するには高価すぎる可能性がある。
【0012】
したがって、本開示の実施形態は、深層強化学習(DRL)メカニズムによって学習される学習ベースの量子化に関連し得る。実施形態は、柔軟に、様々なタイプの量子化方法(例えば、一様量子化、コードブックベースの量子化、又は深層学習ベースの量子化)をサポートし得、データ駆動方式で最適な量子化器を学習する。加えて、実施形態は、改善されたデータ適応型圧縮結果を提供するようにDNNエンコーダ、DNNデコーダ、及び学習ベースの量子化方法を共同で最適化することができる、ニューラル圧縮のコンテキストで圧縮プロセス全体に共同で関連し得る。
【0013】
図1は、実施形態による、本明細書に記載される方法、装置、及びシステムが実装され得る環境100の図である。
【0014】
図1に示すように、環境100は、ユーザデバイス110、プラットフォーム120、及びネットワーク130を含んでもよい。環境100のデバイスは、有線接続、無線接続、又は有線接続と無線接続の組合せを介して相互接続してもよい。
【0015】
ユーザデバイス110は、プラットフォーム120に関連する情報を受信、生成、保存、処理、及び/又は提供することができる1つ又は複数のデバイスを含む。例えば、ユーザデバイス110は、計算デバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカー、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、一対のスマートグラス又はスマートウォッチ)、又は類似したデバイスを含んでもよい。一部の実装では、ユーザデバイス110は、プラットフォーム120から情報を受信し、及び/又はプラットフォーム120に情報を送信し得る。
【0016】
プラットフォーム120は、本明細書の他の箇所で説明したような1つ又は複数のデバイスを含む。一部の実装では、プラットフォーム120は、クラウドサーバ又はクラウドサーバ群を含んでもよい。一部の実装では、プラットフォーム120は、ソフトウェアコンポーネントがスワップイン又はスワップアウトされ得るように、モジュール式であるように設計されてもよい。そのようなものとして、プラットフォーム120は、異なる用途のために容易に及び/又は迅速に再構成されてもよい。
【0017】
一部の実装では、示されるように、プラットフォーム120は、クラウドコンピューティング環境122においてホストされてもよい。なお、本明細書で説明される実装では、プラットフォーム120がクラウドコンピューティング環境122でホストされるものとして説明されるが、一部の実装では、プラットフォーム120はクラウドベースでなくてもよく(即ち、クラウドコンピューティング環境の外で実装されてもよい)、又は部分的にクラウドベースであってもよい。
【0018】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム及び/又はデバイスの物理的な位置及び構成のエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない、計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供してもよい。示されるように、クラウドコンピューティング環境122は、計算リソース124のグループ(総括的に「計算リソース124」と称し、個別に「計算リソース124」と称する)を含んでもよい。
【0019】
計算リソース124は、1つ又は複数のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、又は他のタイプの計算及び/又は通信デバイスを含む。一部の実装では、計算リソース124は、プラットフォーム120をホストしてもよい。クラウドリソースは、計算リソース124で実行する計算インスタンス、計算リソース124で提供される記憶デバイス、計算リソース124によって提供されるデータ転送デバイス等を含んでもよい。一部の実装では、計算リソース124は、有線接続、無線接続、又は有線接続と無線接続との組み合わせを介して他の計算リソース124と通信してもよい。
【0020】
図1にさらに示されるように、計算リソース124は、1つ又は複数のアプリケーション(「APP」)124-1、1つ又は複数の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つ又は複数のハイパーバイザー(「HYP」)124-4などのクラウドリソースのグループを含む。
【0021】
アプリケーション124-1は、ユーザデバイス110及び/又はプラットフォーム120に提供され得る、又はそれによってアクセスされ得る1つ又は複数のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110にソフトウェアアプリケーションをインストールし実行する必要性を排除してもよい。例えば、アプリケーション124-1は、プラットフォーム120に関連するソフトウェア、及び/又はクラウドコンピューティング環境122を介して提供されることが可能な他の任意のソフトウェアを含んでもよい。一部の実装では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つ又は複数の他のアプリケーション124-1との間で情報を送受信してもよい。
【0022】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による任意の実マシンへの使用及び対応の程度に応じて、システム仮想マシン又はプロセス仮想マシンのいずれであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供し得る。プロセス仮想マシンは、単一のプログラムを実行し得、単一のプロセスをサポートし得る。一部の実装では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)に代わって実行してもよく、データ管理、同期、又は長期間データ転送などのクラウドコンピューティング環境122のインフラストラクチャを管理してもよい。
【0023】
仮想化ストレージ124-3は、計算リソース124の記憶システム又はデバイス内で仮想化技術を使用する、1つ又は複数の記憶システム及び/又は1つ又は複数のデバイスを含む。一部の実装では、記憶システムのコンテキスト内で、仮想化のタイプは、ブロック仮想化及びファイル仮想化を含み得る。ブロック仮想化とは、記憶システムが物理的ストレージ又は異種構造に関係なくアクセスされ得るように、物理的ストレージから論理的ストレージを抽象化(又は分離)することを指してもよい。この分離により、記憶システムの管理者は、エンドユーザのストレージをどのように管理するかについて柔軟性を確保することができる。ファイル仮想化により、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶される位置との間の依存関係が解消され得る。これにより、ストレージ使用、サーバ統合、及び/又は無停止ファイル移行のパフォーマンスの最適化が可能になる場合がある。
【0024】
ハイパーバイザー124-4は、計算リソース124などのホストコンピュータ上で複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)を同時に実行することを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザー124-4は、ゲストオペレーティングシステムに仮想オペレーティングプラットフォームを提示してもよく、ゲストオペレーティングシステムの実行を管理してもよい。多様なオペレーティングシステムの複数のインスタンスは、仮想化されたハードウェアリソースを共有してもよい。
【0025】
ネットワーク130は、1つ又は複数の有線及び/又は無線ネットワークを含む。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、長期進化(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多重アクセス(CDMA)ネットワークなど)、公衆陸上移動ネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、大都市圏ネットワーク(MAN)、電話ネットワーク(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバーベースのネットワークなど、及び/又はこれらや他のタイプのネットワークの組み合わせを含み得る。
【0026】
図1に示されるデバイス及びネットワークの数及び配置は、一例として提供される。実際には、
図1に示されたものよりも追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、あるいは異なる配置のデバイス及び/又はネットワークが存在してもよい。さらに、
図1に示される2つ又はより多くのデバイスが単一のデバイス内に実装されてもよいか、又は、
図1に示される単一のデバイスが複数の分散デバイスとして実装されてもよい。加えて、又は任意選択で、環境100のデバイスのセット(例えば、1つ又は複数のデバイス)は、環境100の別のデバイスのセットによって実行されるものとして説明される1つ又は複数の機能を実行してもよい。
【0027】
図2は、
図1の1つ又は複数のデバイスの例示的なコンポーネントのブロック図である。
【0028】
デバイス200は、ユーザデバイス110及び/又はプラットフォーム120に対応し得る。
図2に示されるように、デバイス200は、バス210、プロセッサ220、メモリ230、記憶コンポーネント240、入力コンポーネント250、出力コンポーネント260、及び通信インターフェース270を含んでもよい。
【0029】
バス210は、デバイス200のコンポーネント間の通信を許可するコンポーネントを含む。プロセッサ220は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ220は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は他のタイプの処理コンポーネントである。一部の実装では、プロセッサ220は、機能を実行するようにプログラムされることが可能な1つ又は複数のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、及び/又はプロセッサ220によって使用される情報及び/又は命令を記憶する別のタイプの動的又は静的記憶デバイス(例えば、フラッシュメモリ、磁気メモリ、及び/又は光学メモリ)を含む。
【0030】
記憶コンポーネント240は、デバイス200の操作及び使用に関連する情報及び/又はソフトウェアを記憶する。例えば、記憶コンポーネント240は、対応するドライブと共に、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、及び/又はソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は他のタイプの非一時的なコンピュータ読取可能な媒体を含んでもよい。
【0031】
入力コンポーネント250は、ユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、及び/又はマイク)などを介して、デバイス200による情報の受信を可能にするコンポーネントを含む。加えて、又は任意選択で、入力コンポーネント250は、情報をセンシングするためのセンサ(例えば、全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープ、及び/又はアクチュエータ)を含んでもよい。出力コンポーネント260は、デバイス200からの出力情報を提供するコンポーネント(例えば、ディスプレイ、スピーカー、及び/又は、1つ又は複数の発光ダイオード(LED))を含む。
【0032】
通信インターフェース270は、有線接続、無線接続、又は有線接続と無線接続との組み合わせなどを介して、デバイス200が他のデバイスと通信することを可能にするトランシーバのようなコンポーネント(例えば、トランシーバ及び/又は別個の受信機と送信機)を含む。通信インターフェース270は、デバイス200が他のデバイスから情報を受信すること、及び/又は他のデバイスに情報を提供することを可能にすることができる。例えば、通信インターフェース270は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェースなどを含んでもよい。
【0033】
デバイス200は、本明細書に記載された1つ又は複数のプロセスを行ってもよい。デバイス200は、プロセッサ220が、メモリ230及び/又は記憶コンポーネント240などの非一時的なコンピュータ読取可能な媒体に記憶されたソフトウェア命令を実行することに応答して、これらのプロセスを行ってもよい。コンピュータ読取可能な媒体は、本明細書では、非一時的なメモリデバイスとして定義される。メモリデバイスは、単一の物理的記憶デバイス内のメモリ空間、又は複数の物理的記憶デバイスに分散されたメモリ空間を含む。
【0034】
ソフトウェア命令は、通信インターフェース270を介して別のコンピュータ読取可能な媒体から、又は別のデバイスから、メモリ230及び/又は記憶コンポーネント240に読み込まれてもよい。実行されると、メモリ230及び/又は記憶コンポーネント240に記憶されたソフトウェア命令は、プロセッサ220に、本明細書に記載された1つ又は複数のプロセスを行わせてもよい。加えて、又は任意選択で、ハードワイヤード回路は、本明細書に記載された1つ又は複数のプロセスを行うために、ソフトウェア命令の代わりに、又はソフトウェア命令と組み合わせて使用されてもよい。したがって、本明細書に記載された実装は、ハードウェア回路とソフトウェアとの任意の特定の組み合わせに限定されるものではない。
【0035】
図2に示されるコンポーネントの数及び配置は、一例として提供されている。実際には、デバイス200は、
図2に示されるものよりも追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、又は異なる配置のコンポーネントを含んでもよい。加えて、又は任意選択で、デバイス200のコンポーネントのセット(例えば、1つ又は複数のコンポーネント)は、デバイス200の別のコンポーネントのセットによって実行されるものとして説明される1つ又は複数の機能を実行してもよい。
【0036】
次に、実施形態の
図5を参照して、ニューラル圧縮システムの一般的なプロセスのための方法及び装置について、詳細に説明する。
【0037】
図5は、ニューラル圧縮システムの一般的なプロセスのための装置のブロック図である。
【0038】
図5に示すように、一般的なプロセスの装置は、エンコーディングプロセス500とデコーディングプロセス510とから構成される。エンコーディングプロセス500側の装置は、DNNエンコーディングモジュール520、量子化モジュール530、及びエントロピーエンコーディングモジュール540を含む。デコーディングプロセス510側の装置は、エントロピーデコーディングモジュール550、逆量子化モジュール560、及びDNNデコーディングモジュール570を含む。
【0039】
X=x
1,x
2,・・・が、圧縮される入力信号のシーケンスを示すとする。ここで、信号x
tは、画像、画像中のパッチ、ビデオセグメント、ビデオセグメント中のパッチ等とすることができる。信号x
tは、一般に、サイズ(h,w,c,d)の4Dテンソル、例えば、サイズ(h,w,c)の画像、又は、サイズ(h,w,c)のd個の画像フレームを含むビデオシーケンスとして表されることができる。以下、3段階のエンコーディングプロセス500を説明する。DNNエンコーディングモジュール520は、まず、入力信号x
tに基づいて、DNNエンコーダを用いて、DNNエンコード表現y
tを計算する。次に、量子化モジュール530は、エンコード表現y
tに基づいて、量子化器を用いて、量子化された表現y
t
―を生成する。次に、エントロピーエンコーディングモジュール540は、エントロピーエンコーダを用いることで、量子化された表現y
t
―を、記憶及び伝送を容易にするために、コンパクトな表現
(外2)
(以下「y
t~」等と記載する。)
にエンコードする。以下、対応する3段階のデコーディングプロセス510を説明する。コンパクトな表現y
t~を受信した後、エントロピーデコーディングモジュール550は、コンパクトな表現y
t~に基づいて、エントロピーデコーダを用いて、デコード表現y
t
―’を復元する。実施形態では、ロスレスエントロピーコーディング方法は、エントロピーエンコーダ及びエントロピーデコーダによって用いられるため、デコード表現と量子化された表現とは同じである(即ち、
(外3)
)。次に、逆量子化モジュール560は、デコード表現y
t
―’に基づいて、逆量子化器を用いて、逆量子化された表現y
t’を計算する。最後に、DNNデコーディングモジュール570は、逆量子化された表現y
t’に基づいて、DNNデコーダを用いて、再構成された出力z
tを生成する。
【0040】
ニューラル圧縮システムの全体的な目標は、量子化された表現yt~のビット消費量が少なくなり、再構成された出力ztが元の入力xtに近くなるように、レート歪み(R-D)損失Lnc(xt,yt
―,zt)を最小化することである。レート歪み(R-D)損失は、下記式に従って計算される。
【0041】
【0042】
歪み損失Dnc(xt,zt)は、PSNR及び/又はSSIMメトリックのような再構成エラーを測定する。レート損失Rnc(yt
―)は、量子化された表現yt
―のビットレートに関係する。ハイパーパラメータλは、これら2つの損失項の重要性を両立させる。実施形態によるこの式のさらなる説明は、後で詳述する。
【0043】
量子化/逆量子化演算は一般に微分できないので、量子化器/逆量子化器は、DNNエンコーダ/DNNデコーダとは別に最適化される。例えば、従来の方法では、線形量子化を仮定し、微分可能なレート損失Rnc(y―)をエントロピー推定によって近似し、これにより、DNNエンコーダ/DNNデコーダは、バックプロパゲーションを通じて学習されることができる。
【0044】
以下、深層強化学習(DRL)を用いるエンドツーエンドニューラル圧縮(E2ENC)のための方法及び装置について、詳細に説明する。
【0045】
実施形態のE2ENC方法のDNNエンコーダ及びDNNデコーダ、並びに量子化器及び逆量子化器は、共同で学習されてもよい。具体的には、深層強化学習(DRL)は、DNNエンコーダ及びDNNデコーダの最適化と、量子化器及び逆量子化器の最適化と、を組み合わせるために利用される。提案されたE2ENCフレームワークは、異なるタイプの量子化方法と、異なるタイプのDNNエンコーダ及びDNNデコーダネットワークアーキテクチャとに適応させるように、一般的で幅広いものである。
【0046】
図6は、実施形態による、テスト段階中のE2ENC装置のブロック図である。
【0047】
図6に示すように、E2ENCテスト装置は、DNNエンコーディングモジュール620、DRL量子化モジュール630、及びエントロピーエンコーディングモジュール640からなるエンコーディング側600を含む。また、
図6のテスト装置は、エントロピーデコーディングモジュール650、DRL逆量子化モジュール660、及びDNNデコーディングモジュール670からなるデコーディング側610を含む。エンコーディング側600及びデコーディング側610は、それぞれ、エンコーディングプロセス及びデコーディングプロセスである。
【0048】
以下、実施形態に従って、エンコーディング側600について説明する。各xtが一般にサイズ(h,w,c,d)の4Dテンソルとして表される、入力信号のシーケンスX=x1,x2・・・が与えられると、DNNエンコーディングモジュール620は、DNNエンコーダを用いることで、入力信号xtに基づいてDNNエンコード表現ytを計算する。DNNエンコード表現ytは、数字のストリームyt=yt,1,yt,2・・・と見なすことができる。1バッチのm個の数字Yt,i=・・・,yt,i-1,yt,iについて、DRL量子化モジュール630は、DRL量子化器を用いることで、1バッチの量子化鍵(QK)Kt,i=・・・,kt,i-1,kt,iを計算し、ここで、各QKkt,lが、エンコード表現yt,lのそれぞれに対応している。1サイズのバッチ(m=1)について、数字は個別に、1つずつ処理される。m>1の場合、数字は組織的に量子化される。数字は異なる順序で編成されることができる。例えば、相対的な位置情報を保持するために、数字をブロック単位で編成することができる。次に、システムはQKKt,iをデコーダに送信し、次のバッチの数字Yt,i+1の処理に進む。任意選択で、QKKt,iは、記憶及び伝送を容易にするために、エントロピーエンコーディングモジュール640によって(好ましくはロスレス方式で)さらに圧縮されることになる。
【0049】
以下、実施形態に従って、デコーディング側610について説明する。QKK
t,iを受信した後、受信されたQKがエントロピーエンコードされていると、エントロピーデコーディングモジュール650を適用して、エントロピーデコードされたQKK
t,i
―=・・・,k
t,i-1,k
t,i(ロスレスエントロピーコーディングの場合はK
t,i
―=K
t,i)を求める。次に、DRL逆量子化モジュール660は、DRL逆量子化器を用いることで、逆量子化された表現y
t’のストリーム全体におけるバッチである、1バッチの逆量子化された数字Y’
t,i=・・・,y’
t,i-1,y’
t,iを復元する。そして、DNNデコーディングモジュール670は、DNNデコーダを用いることで、逆量子化された表現y’
tに基づいて、再構成された出力z
tを生成する。なお、エントロピーエンコーディングモジュール640及びエントロピーデコーディングモジュール650は任意選択である(
図6に点線で示す)。エントロピーエンコーディングモジュール640及びエントロピーデコーディングモジュール650を用いる場合、実施形態ではロスレスエントロピーコーディング方法をとるため、エントロピーデコードされたQKと、DRL量子化モジュール630により計算されたQKとは同じである(即ち、K
t,i
―=K
t,iである)。したがって、以下では、エンコーディング側600とデコーディング側610の両方で計算されたQKに対して同じ表記(K
t,i)を用いることにする。
【0050】
図6のDRL量子化器及びDRL逆量子化器は、学習ベースの量子化方法を用いる。
図7及び
図8は、それぞれ、DRL量子化モジュール630及びDRL逆量子化モジュール660の詳細なワークフローを説明する。
【0051】
図7に示すように、DRL量子化モジュール630は、鍵計算モジュール700と、状態予測モジュール710とを含む。
【0052】
エンコーディング側600では、1バッチのm個の数字Yt,i=・・・,yt,i-1,yt,iが与えられると、各QSst,l-1がエンコード表現yt,lのそれぞれに対応する、1バッチの以前の量子化状態(QS)St,i-1=・・・,st,i-2,st,i-1に従い、鍵計算モジュール700は、鍵生成器を用いることで、各QKkt,lがエンコード表現yt,lのそれぞれに対応するQKKt,i=・・・,kt,i-1,kt,iを計算する。次に、状態予測モジュール710は、状態予測器を用いることで、現在のQSSt,i=・・・,st,i-1,st,iを計算する。
【0053】
以前のQSSt,i―1が与えられると、鍵生成器は、量子化方法を用いてQKを計算する。この量子化方法は、一定のステップサイズを持つ一様量子化のような、予め決められたルールベースの方法とすることができ、ここで、QKkt,iは、QKkt,iと量子化ステップサイズとの乗算として、対応するエンコード表現yt,iを最もよく再構成できる整数である。この量子化方法は、k-meansのような統計モデルにすることもでき、ここで、QKkt,iは、対応するエンコード表現yt,iをセントロイドが最もよく再構成できるクラスタのインデックスである。本開示は、鍵生成器として使用される特定の量子化方法に対していかなる制限も与えない。
【0054】
以前のQSSt,i―1及び現在のQKKt,iが与えられると、状態予測モジュール710は、現在のQSst,iを計算する。一実施形態では、m個のQKのそれぞれに付けられてペアを形成する最新のQSst,i―1のみが状態予測モジュール710によって使用され、すべてのm個のペアが一緒に積み重ねられてサイズ(m,2)の入力行列を形成する。別の実施形態では、各QK及び対応するQSは、ペア(kt,l,st,l-1)を形成し、m個のペアは、一緒に積み重ねられてサイズ(m,2)の入力行列を形成する。状態予測モジュール710は、状態予測器に基づいて、現在のQSst,iを計算し、状態予測器は、QSが取り得る任意の数の可能な状態間の遷移をサポートするための学習ベースのモデルを使用する。学習ベースのモデルは、後で詳細に説明するDeep Q-Learning(DQN)アルゴリズムを通じてトレーニングされる。
【0055】
図8に示すように、DRL逆量子化モジュール660は、状態予測モジュール710と、再構成モジュール800とを含む。
【0056】
デコーディング側610では、QKKt,i=・・・,kt,i-1,kt,iを受信した後、状態予測モジュール710は、現在のQSst,iを、入力QKKt,i及び以前のQSSt,i―1=・・・,st,i-2,st,i―1に基づいて、エンコーディング側600で計算したのと同様の方法で状態予測器を用いることで計算する。次に、再構成モジュール800は、再構成器を用いることで、QKKt,i及びQSSt,i―1に基づいて、1バッチの逆量子化された数字Y’t,i=・・・,y’t,i-1,y’t,iを計算する。再構成器は、鍵生成器で使用される量子化方法に対応した逆量子化方法を用いる。例えば、量子化方法が、一定のステップサイズを持つ一様量子化のような、予め決められたルールベースの方法である場合、逆量子化方法も、QKkt,iと量子化ステップサイズとの乗算として、逆量子化された数字y’t,iを計算するなど、予め決められたルールベースの方法となる。また、量子化方法が、k-meansのような統計モデルの場合、逆量子化方法は、QKkt,iによってインデックスされるセントロイドとすることができる。本開示は、再構成器として使用される具体的な逆量子化方法に対していかなる制限も与えない。
【0057】
状態予測器は、QKKt,i及びQSSt,i―1が与えられると、行動αjと行動に関連する出力Q値vj(j=1,・・・J)(合計J通りの可能な行動を想定する)との間の行動価値マッピング関数f(αj,vj|Kt,i,St,i-1)である。各行動αjは、QSst,iが取り得る可能な状態に対応する。現在のKt,i及びSt,i―1が与えられると、状態予測器はすべての可能な行動αjのQ値vjを計算し、最適なQ値v*
iを持つ最適な行動α*
iを選択する。最適な行動α*
iに対応する状態は、システムが選択するQSsiである。Q値は、行動のシーケンスに関連するターゲット圧縮性能を測定するために設計されている。したがって、最適な行動を選択することで、最適なターゲット圧縮性能が得られる。
【0058】
以下、本実施形態におけるDRL量子化モジュール630及びDRL逆量子化モジュール660のトレーニングプロセスについて説明する。トレーニングの全体的なワークフローは、
図9に示す通りである。
【0059】
本実施形態におけるトレーニング方法としては、Deep Q-learningメカニズム、具体的にはDQNアルゴリズムが用いられる。DQNは、行動価値マッピング関数を学習して行動に報酬Q値を割り当てることにより、任意の与えられた有限マルコフ決定過程に対して最適な行動選択ポリシーを見つける、オフポリシーなDRL方法である。ポリシーとは、システムが行動を選択する際に従うルールである。現在のステータスが与えられると、学習エージェントは、異なる報酬値をもたらす1組の候補行動から選択してもよい。様々なステータスを経験し、様々なステータスでの行動を試すことにより、学習エージェントは、将来、どのようなステータスになっても最適な行動がとれるように、時間の経過とともに学習して報酬を最適化する。
【0060】
具体的には、DNNは、行動価値マッピング関数f(αj,vj|Kt,i,St,i-1)を推定する関数近似器として機能する状態予測器として使用される。状態予測器DNNは、典型的には、1つ又は複数の全結合層が後に続く1組の畳み込み層から構成される。本開示は、状態予測器の特定のネットワークアーキテクチャに対していかなる制限も与えない。
【0061】
State(ts-1)を現在の状態予測器とし、Key(tk-1)が現在の鍵生成器を表すとし、Recon(tr-1)を現在の再構成器とし、Enc(te-1)を現在のDNNエンコーダとし、Dec(td-1)を現在のDNNデコーダとする。ts、tk、tr、te、及びtdは、異なる可能性があるため、状態予測器、鍵生成器、再構成器、DNNエンコーダ、及びDNNデコーダは、異なる更新頻度で異なる時間に更新することができる。
【0062】
図9に示すように、E2ENCシステムトレーニング装置は、DNNエンコーディングモジュール620、DNNデコーディングモジュール670、鍵計算モジュール700、状態予測モジュール710、再構成モジュール800、歪み計算モジュール900、レート計算モジュール910、報酬計算モジュール920、メモリリプレイ及び重み更新モジュール930、NC歪み計算モジュール940、NCレート計算モジュール950、R-D損失計算モジュール960、及びNC重み更新モジュール970を含む。
【0063】
入力信号のトレーニングシーケンスX=x1,x2,・・・が与えられると、信号xtごとに、DNNエンコーディングモジュール620は、現在のDNNエンコーダEnc(te-1)を用いて、DNNエンコード表現yt=yt,1,yt,2,・・・を計算する。1バッチのm個の数字Yt,i=・・・,yt,i-1,yt,iに対して、以前のQSSt,i―1=・・・,st,i-2,st,i―1に従って、鍵計算モジュール700は、現在の鍵生成器Key(tk-1)を用いることで、QKKt,i=・・・,kt,i-1,kt,iを計算する。バッチサイズ、及び数字が編成される方式は、テスト段階と同じである。次に、状態予測モジュール710は、以前のQSSt,i―1及び現在のQKKt,iに基づいて、現在の状態予測器State(ts-1)を用いて、現在のQSst,iを計算する。状態予測モジュール710の入力も、テスト段階と同じである。次に、再構成モジュール800は、QKKt,i及びQSSt,i―1に基づいて、現在の再構成器Recon(tr-1)を用いて、1バッチの逆量子化された数字Y’t,i=・・・,y’t,i-1,y’t,iを計算する。最後に、DNNデコーディングモジュール670は、現在のDNNデコーダDec(td-1)を用いることで、y’tに基づいて、再構成されたztを生成する。
【0064】
トレーニングプロセスにおいて、状態予測器は、∈グリーディ法を用いて最適な行動α*
iを選択する。具体的には、現在の状態予測器State(ts-1)がすべての可能な行動ajのQ値vjを計算した後、確率∈(0から1の間の数)を用いると、ランダムな行動を最適な行動α*
iとして選択し、確率(1-∈)を用いると、最適なQ値v*
iを持つ最適な行動α*
iを選択する。
【0065】
歪み計算モジュール900は、歪み損失D(Yt,i,Y’t,i)を計算して、元のDNNエンコード表現Yt,iとデコード表現Y’t,iとの差を測定する。例えば、歪み損失D(Yt,i,Y’t,i)は、Yt,i及びY’t,iにおける対応する要素間の差のLkノルム、例えば平均絶対誤差としてL1ノルム、平均二乗誤差としてL2ノルム、の平均とすることができる。
【0066】
【0067】
同時に、レート計算モジュール910は、レート損失R(Kt,i)を計算して、量子化された表現、即ち、エンコーダからデコーダに送信される計算されたQKKt,iのビット消費量を測定する。レート損失を計算する方式は複数存在する。例えば、QKは、任意のロスレスエントロピーコーディング方法を用いて圧縮されてもよく、圧縮されたビットストリームの実際のビットカウントは、レート損失として取得される。
【0068】
数字Yt,i及びYt,i+1の隣接するバッチについて、歪み損失D(Yt,i,Y’t,i)、D(Yt,i+1,Y’t,i+1)及びレート損失R(Kt,i)、R(Kt,i+1)に基づいて、報酬計算モジュール920は、報酬Φ(Yt,i+1,Kt,i+1,Y’t,i+1)を計算する。報酬Φ(Yt,i+1,Kt,i+1,Y’t,i+1)は、現在のQKKt,i及びQSSt,i―1が与えられると、最適な行動a*
jをとることで状態予測器が得ることができる報酬を測定する。
【0069】
【0070】
ここで、αは、報酬におけるレート損失及び歪みを両立させるためのハイパーパラメータである。経験
(外4)
、即ち、QKK
t,i及びQSS
t,i-1に基づいて関連するQ値v
*
iを持つ行動a
*
jを選択し、そして報酬Φ(Y
t,i+1,K
t,i+1,Y’
t,i+1)を取得することは、リプレイメモリに追加される。リプレイメモリは通常、最大記憶制限があり、その制限に達すると、最も古い経験が最新のものに置き換えられる。
【0071】
状態予測器、鍵生成器、及び再構成器を更新する時間になると、システムは、リプレイメモリから1バッチ分の経験をサンプリングし、これらサンプリングされた経験を用いて、メモリリプレイ及び重み更新モジュール930においてモデルパラメータを更新する。
図10は、トレーニング段階中のメモリリプレイ及び重み更新モジュール930の詳細なワークフローである。
【0072】
図10に示すように、メモリリプレイ及び重み更新モジュール930は、経験サンプリングモジュール1000、損失計算モジュール1001、重み更新モジュール1002、鍵計算モジュール700、状態予測モジュール710、再構成モジュール800、歪み計算モジュール900、レート計算モジュール910、及び計算報酬モジュール920を含む。
【0073】
トレーニング段階中に、ターゲット状態予測器StateT、ターゲット鍵生成器KeyT、ターゲット再構成器ReconTが維持され、それぞれ、状態予測器、鍵生成器、再構成器と全く同じモデル構造を有している。唯一の違いは、状態予測器のDNN重み係数、又はk-means量子化が使用される場合の鍵生成器のモデルパラメータ、又は量子化がディープクラスタリングに基づいている場合の鍵生成器のDNN重み係数などのモデルパラメータである。これらのモデルパラメータは、Ts、Tk、Trのパラメータ更新サイクルごとに、対応する状態予測器、鍵生成器、再構成器からクローン化される。
【0074】
各パラメータ更新サイクルの間、システムは、経験サンプリングモジュール1000において、リプレイメモリ
(外5)
から一連の経験をサンプリングする。状態予測モジュール710における各経験
(外6)
に対して、ターゲット状態予測器State
Tは、経験におけるQKY
t,l及びQSS
t,l-1に基づいてターゲットQSs^
t,lを予測する。ターゲットQS
(外7)
(以下、「s^
t、l」等と記載する。)
及びターゲット鍵生成器Key
Tに基づいて、鍵計算モジュール700はターゲット鍵K^
t、l+1を計算する。ターゲット鍵K^
t、l+1、ターゲットQSS^
t、l及びターゲット再構成器Recon
Tに基づいて、再構成モジュール800は、1バッチのターゲット逆量子化された数字
(外8)
を計算する。次に、歪み計算モジュール900は、経験における元の表現Y
t,l+1とデコード表現Y^’
t,l+1との間のターゲット歪み
(外9)
を計算する。レート計算モジュール910は、K^
t、l+1に基づいてターゲットレート損失R(K^
t、l+1)を計算する。次に、ターゲット報酬
(外10)
は、報酬計算モジュール920において、次のように計算される。
【0075】
【0076】
次に、損失計算モジュール1001は、ターゲット報酬
(外11)
を次のように計算する。
【0077】
【0078】
ここで、
(外12)
は、QKK^
t,l+1及びQSS^
t,lが与えられた場合の行動α
j
*についてターゲット状態予測器State
Tが予測するQ値である。ハイパーパラメータγは、0から1の間で評価される割引率であり、システムが短期的な報酬に対して長期的な報酬をどの程度重要視するかを決定している。割引率が小さいほど、システムは長期的な報酬をあまり重要視しないが、短期的な報酬にのみ関心を持つ。次に、損失計算モジュール1001は、
(外13)
及び経験からのv
j
*、例えば、2つの報酬の差のL
kノルムに基づいて、ターゲット損失
(外14)
を次のように計算する。
【0079】
【0080】
次に、重み更新モジュール1002は、状態予測器のDNNの重みパラメータを状態(t
s)に更新するためにバックプロパゲートされる、ターゲット損失の勾配を計算する。この損失は、鍵生成器Key(t
k)及び再構成器Recon(t
r)を更新するために、学習ベースの鍵生成器及び再構成器の最適化目的と組み合わせて使用することもできる。例えば、鍵生成器及び再構成器がディープクラスタリングに基づく量子化方法を用いる場合、鍵生成器及び再構成器のDNNの重みパラメータは、バックプロパゲーションによって更新される。他の学習ベースの方法を量子化に用いる場合、モデルパラメータは、目的関数を最適化することで学習され、このターゲット損失
(外15)
は、モデルパラメータを更新するための追加の正規化項として、その最適化目的関数に加重加算することが可能である。前述したように、ここでは、状態予測器、鍵生成器、及び再構成器は、異なるタイムスタンプで更新されることができる。
【0081】
Ts、Tk、Trの反復毎に、状態予測器、鍵生成器、及び再構成器の重みパラメータは、それぞれターゲット状態予測器StateT、ターゲット鍵生成器KeyT、ターゲット再構成器ReconTにクローン化されることになる。
【0082】
本実施形態では、リプレイメモリとターゲット状態予測器、ターゲット鍵生成器、及びターゲット再構成器を用いて、トレーニングプロセスを安定化させる。リプレイメモリは、最新の経験を1つだけ持つことができ、これは、リプレイメモリを持たないことに等しい。また、Ts、Tk、Trは、すべて1に等しくされることができるため、ターゲット状態予測器、ターゲット鍵生成器、及びターゲット再構成器は反復毎に更新され、これは、ターゲット状態予測器、ターゲット鍵生成器、ターゲット再構成器の別のセットを持たないことに等しい。
【0083】
E2ENCシステム全体としては、入力信号x
t毎に、
図9で説明したように、DNNエンコーディングモジュール620は、現在のDNNエンコーダEnc(t
e-1)を用いて、DNNエンコード表現y
t=y
t,1,y
t,2,・・・を計算する。DRL量子化モジュール630及びDRL逆量子化モジュール660を通じて、逆量子化された表現y’
t=y’
t,1,y’
t,2,・・・が生成される。そして最後に、DNNデコーディングモジュール670は、現在のDNNデコーダDec(t
d-1)を用いることで、y’
tに基づいて、再構成されたz
tを生成する。NC歪み計算モジュール940は、ニューラル圧縮歪み損失D
nc(x
t,z
t)を計算して、PSNR及び/又はSSIM関連メトリクスなど、ニューラル圧縮プロセス全体によってもたらされる誤差を測定する。NCレート計算モジュール950は、例えば、一様密度又は正規密度を有する量子化された表現y
―(即ち、記憶されてデコーダに伝送されるQKk
t,1.k
t,2,・・・)に基づいてノンパラメトリック密度推定により、ニューラル圧縮レート損失R
nc(y
t
―)を計算する。次に、R-D損失計算モジュール960において、全体のR-D損失L
nc(x
t,y
t
―,z
t)を次のように計算する。
【0084】
【0085】
次に、NC重み更新モジュール970は、DNNエンコーダ及びDNNデコーダの重みパラメータをそれぞれEnc(te)及びDec(td)に更新するためにバックプロパゲーションを通じて使用されることができる、R-D損失の勾配を、(例えば、いくつかの入力信号にわたってR-D損失の勾配を合計することによって)計算する。
【0086】
実施形態では、DNNエンコーダ及びDNNデコーダは、一様量子化方法を仮定し、エントロピー推定モデルによってニューラル圧縮レート損失Rnc(yt
―)を推定することによって、事前トレーニングされる(それぞれEnc(0)及びDec(0)で示される)。このような事前トレーニングプロセスでは、事前トレーニング用入力信号xtが与えられると、DNNエンコーダは、表現ytを計算し、この表現ytは、さらにエントロピー推定モデルによってニューラル圧縮レート損失Rnc(yt
―)を計算するために使用される。次に、DNNデコーダは、表現ytに基づいて出力ztを計算する。ニューラル圧縮歪み損失Dnc(xt、zt)が計算され、全体のR-D損失Lnc(xt,yt
―,zt)が得られ、その勾配は、その後、DNNエンコーダ及びDNNデコーダをバックプロパゲーションを通じて更新するために使用されることができる。
【0087】
事前トレーニングされたDNNエンコーダ及びDNNデコーダが配備されると、実施形態の
図9及び
図10で説明されたトレーニングプロセスは、DNNエンコーダ及びDNNデコーダに対処し量子化性能を向上させるように、DRL量子化器及びDRL逆量子化器をトレーニングする。実施形態では、説明されたトレーニングプロセスは、また、現在のトレーニングデータに従ってDNNエンコーダ及びDNNデコーダを更新し、それにより、ニューラル圧縮システム全体が適応的に総圧縮性能を向上させることができる。DNNエンコーダ及びDNNデコーダの更新は、オフライン又はオンラインで行うことができ、永久的又は一時的なデータ依存的である可能性がある。同様に、配備後、DRL量子化器及びDRL逆量子化器における状態予測器、鍵生成器、及び再構成器も、オフライン又はオンライン、永久的又は一時的なデータ依存的に更新されることができる。例えば、ビデオ圧縮の場合、各ビデオを圧縮するために、DNNエンコーダ、DNNデコーダ、状態予測器、鍵生成器、及び再構成器は、最初の数フレームに基づいて更新されることができる。しかし、これらの更新は、将来のビデオの計算に影響を与えるために記録されることはない。このような更新は、これらのモジュールが将来のビデオに適用されるように永久的に更新されることに基づいて、ある量まで蓄積されることもできる。
【0088】
図11は、実施形態による、深層強化学習を用いるエンドツーエンドニューラル画像圧縮の方法1100のフローチャートである。
【0089】
一部の実装では、
図11の1つ又は複数のプロセスブロックは、プラットフォーム120によって実行されてもよい。一部の実装では、
図11の1つ又は複数のプロセスブロックは、ユーザデバイス110などの、プラットフォーム120とは別のデバイス、又はプラットフォーム120を含むデバイスのグループによって実行されてもよい。
【0090】
図11に示されるように、操作1101では、方法1100は、DNNエンコーダを用いて、入力をエンコードするステップを含む。
【0091】
操作1102では、方法1100は、入力の複数のエンコード表現を生成するステップを含み、複数のエンコード表現は、数字のストリームと見なすことができる。
【0092】
操作1103では、方法1100は、1組の以前の量子化状態に基づいて、第1のニューラルネットワークを用いて、1組の量子化鍵を生成するステップであって、1組の量子化鍵における各量子化鍵及び1組の以前の量子化状態における各以前の量子化状態は、複数のエンコード表現に対応する、ステップを含む。1組のエンコードされた量子化鍵は、1組の量子化鍵をエントロピーエンコードすることによっても生成され得る。第1のニューラルネットワークは、DRL量子化ニューラルネットワークである。
【0093】
第1のニューラルネットワークをトレーニングすることによって、1組の以前の量子化状態と1組の量子化鍵とに基づいて、1組の現在の量子化状態を生成する。第1のニューラルネットワークは、すべての可能な行動のq値を計算し、最適なq値を持つ最適な行動として行動をランダムに選択し、選択された最適な行動の報酬を生成し、1組の選択された最適な行動をサンプリングし、歪み損失を最小化するために第1のニューラルネットワークの重みパラメータを更新することによってトレーニングされる。
【0094】
操作1104では、方法1100は、第2のニューラルネットワークを用いて、1組の量子化鍵に基づいて、複数のエンコード表現の逆量子化された表現を表す1組の逆量子化された数字を生成するステップを含む。1組のエンコードされた量子化鍵が生成される場合、1組のデコードされた量子化鍵は、また、1組のエンコードされた量子化鍵をエントロピーデコードすることによって生成されてもよく、1組の逆量子化された数字は、代わりに、第2のニューラルネットワークを用いて、1組のデコードされた量子化鍵に基づいて生成される。第2のニューラルネットワークは、DRL逆量子化ニューラルネットワークである。
【0095】
操作1103で生成された1組の量子化鍵及び操作1104で生成された1組の逆量子化された数字は、ブロックワイズ量子化/逆量子化方法、個別量子化/逆量子化方法、又は静的量子化/逆量子化モデル方法を用いてそれぞれ量子化及び逆量子化される。さらに、1組の量子化鍵の量子化方法と、1組の逆量子化された数字の逆量子化方法とは同じである。
【0096】
操作1105では、方法1100は、1組の逆量子化された数字に基づいて、再構成された出力を生成するステップを含む。
【0097】
図11は、方法の例示的なブロックを示しているが、一部の実装では、方法は、
図11に示されたブロックよりも追加のブロック、より少ないブロック、異なるブロック、又は異なる配置のブロックを含んでもよい。加えて、又は任意選択で、この方法のブロックのうちの2つ又はより多くが並行して実行されてもよい。
【0098】
図12は、実施形態による、深層強化学習を用いるエンドツーエンドニューラル画像圧縮のための装置1200のブロック図である。
【0099】
図12に示すように、装置1200は、エンコーディングコード1201と、第1の生成コードと、第2の生成コードと、第3の生成コードと、デコーディングコードと、を含む。
【0100】
エンコーディングコード1201は、少なくとも1つのプロセッサに、DNNエンコーダを用いて、入力をエンコードさせるように構成される。
【0101】
第1の生成コード1202は、少なくとも1つのプロセッサに、入力の複数のエンコード表現を生成させるように構成され、複数のエンコード表現は、数字のストリームとして見なすことができる。
【0102】
第2の生成コード1203は、少なくとも1つのプロセッサに、1組の以前の量子化状態に基づいて、第1のニューラルネットワークを用いて、1組の量子化鍵を生成させるように構成され、1組の量子化鍵における各量子化鍵と1組の以前の量子化状態における各以前の量子化状態は、複数のエンコード表現に対応する。
【0103】
さらに、装置1200の操作は、また、少なくとも1つのプロセッサに、第1のニューラルネットワークをトレーニングすることによって、1組の以前の量子化状態と1組の量子化鍵とに基づいて、1組の現在の量子化状態を生成させるように構成される状態生成コードを含んでもよい。第1のニューラルネットワークは、すべての可能な行動のq値を計算し、最適なq値を持つ最適な行動として行動をランダムに選択し、選択された最適な行動の報酬を生成し、1組の選択された最適な行動をサンプリングし、歪み損失を最小化するために第1のニューラルネットワークの重みパラメータを更新することによってトレーニングされる。第1のニューラルネットワークは、DRL量子化ニューラルネットワークである。
【0104】
第3の生成コード1204は、少なくとも1つのプロセッサに、第2のニューラルネットワークを用いて、1組の量子化鍵に基づいて、複数のエンコード表現の逆量子化された表現を表す1組の逆量子化された数字を生成させるように構成される。1組のデコードされた量子化鍵は、また、1組のエンコードされた量子化鍵をエントロピーデコードすることによって生成されてもよく、1組の逆量子化された数字は、代わりに、第2のニューラルネットワークを用いて、1組のデコードされた量子化鍵に基づいて生成される。第2のニューラルネットワークは、DRL逆量子化ニューラルネットワークである。
【0105】
第2の生成コード1203によって生成された1組の量子化鍵及び第3の生成コード1204によって生成された1組の逆量子化された数字は、ブロックワイズ量子化/逆量子化方法、個別量子化/逆量子化方法、又は静的量子化/逆量子化モデル方法を用いてそれぞれ量子化及び逆量子化される。さらに、1組の量子化鍵の量子化方法と、1組の逆量子化された数字の量子化方法とは同じである。
【0106】
デコーディングコード1205は、少なくとも1つのプロセッサに、1組の逆量子化された数字に基づいて、再構成された出力をデコードさせるように構成される。
【0107】
図12は、装置の例示的なブロックを示しているが、一部の実装では、装置は、
図12に示されたブロックよりも追加のブロック、より少ないブロック、異なるブロック、又は異なる配置のブロックを含んでもよい。加えて、又は任意選択で、この装置のブロックのうちの2つ又はより多くが組み合わされてもよい。
【0108】
実施形態は、システム全体としてニューラル圧縮を最適化することによって圧縮性能を向上させるエンドツーエンドニューラル圧縮(E2ENC)に関するものである。この方法は、現在のデータに基づいてオンライン又はオフラインで、学習ベースの量子化及び符号化方法を調整し、DNNベース又は従来のモデルベースの方法を含む、異なるタイプの学習ベースの量子化方法をサポートする柔軟性を提供する。また、記載された方法は、異なるDNNアーキテクチャに対応する柔軟で一般的なフレームワークも提供する。
【0109】
提案された方法は、別々に使用されてもよいし、任意の順序で組み合わされてもよい。さらに、方法(又は実施形態)の各々は、処理回路(例えば、1つ又は複数のプロセッサあるいは1つ又は複数の集積回路)によって実装されてもよい。一例では、1つ又は複数のプロセッサは、非一時的なコンピュータ読取可能な媒体に記憶されているプログラムを実行する。
【0110】
本開示は、例示及び説明を提供するが、網羅的であること、又は実装を開示された正確な形態に限定することを意図するものではない。上記の開示に照らして修正及び変形が可能であるか、又は実装の実践から獲得され得る。
【0111】
本明細書で使用されるように、コンポーネントという用語は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアの組み合わせとして広範に解釈されることを意図している。
【0112】
本明細書に記載されたシステム及び/又は方法は、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組み合わせで実施され得ることが明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の特殊な制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、システム及び/又は方法の操作及び行動は、特定のソフトウェアコードを参照することなく本明細書に記載された。ソフトウェア及びハードウェアは、本明細書の記載に基づいてシステム及び/又は方法を実装するように設計されてもよいことが理解される。
【0113】
特徴の組み合わせが特許請求の範囲に記述され、及び/又は本明細書に開示されていても、これらの組み合わせは、可能な実装の開示を限定することを意図するものではない。実際には、これらの特徴の多くは、特に特許請求の範囲に記述されていない方法及び/又は本明細書に開示されていない方法で組み合わされることができる。以下にリストされる各従属請求項は、1つの請求項にのみ直接依存し得るが、可能な実装の開示は、請求項セット内の他のすべての請求項との組み合わせで各従属請求項を含む。
【0114】
本明細書で使用されるいかなる要素、行為、又は指示も、そのように明示的に記載されない限り、重要又は必須であると解釈されることはない。また、本明細書で使用されるように、冠詞「a」及び「an」は、1つ又は複数のアイテムを含むことを意図しており、「1つ又は複数」と交換可能に使用されてもよい。さらに、本明細書で使用されるように、用語「セット」は、1つ又は複数のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテムと非関連アイテムとの組み合わせなど)を含むことを意図しており、「1つ又は複数」と交換可能に使用されてもよい。1つのみのアイテムが意図される場合、用語「1つ」又は類似の言語が使用される。また、本明細書で使用されるように、用語「有する」、「有している」などは、オープンエンドな用語であることを意図している。さらに、「・・・に基づく」という句は、特に明記しない限り、「少なくとも部分的に、・・・に基づく」を意味することを意図している。