(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-25
(54)【発明の名称】ニューラルネットワークを使用する、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練の方法、装置及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/90 20140101AFI20240315BHJP
G06T 9/00 20060101ALI20240315BHJP
【FI】
H04N19/90
G06T9/00 200
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023561073
(86)(22)【出願日】2022-11-02
(85)【翻訳文提出日】2023-10-03
(86)【国際出願番号】 US2022048656
(87)【国際公開番号】W WO2023113928
(87)【国際公開日】2023-06-22
(32)【優先日】2021-12-13
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-10-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ディン・ディン
(72)【発明者】
【氏名】ウェイ・ワン
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA00
5C159MC11
5C159ME11
5C159PP04
5C159UA02
5C159UA05
(57)【要約】
少なくとも1つのプロセッサによって実行される、ニューラルネットワークを使用する、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練が提供され、E2E NICフレームワークへの入力画像を受信するステップと、入力画像を複数のブロックに分割するステップと、複数のブロックからブロックのサブセットを選択するステップであって、ブロックのサブセットは同じパターンを共有する、ステップと、E2E NICフレームワークのニューラルネットワークを前処理するステップであって、前処理されたニューラルネットワークが、選択されたブロックのサブセットに適用される、ステップと、前処理されたニューラルネットワークを使用して、更新パラメータを計算するステップと、更新パラメータに基づいて、更新されたE2E NICフレームワークを生成するステップとを含む。
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される、ニューラルネットワークを使用する、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練の方法であって、前記方法が、
E2E NICフレームワークへの入力画像を受信するステップと、
前記入力画像を複数のブロックに分割するステップと、
前記複数のブロックからブロックのサブセットを選択するステップであって、前記ブロックのサブセットは同じパターンを共有する、ステップと、
前記E2E NICフレームワークのニューラルネットワークを前処理するステップであって、前記前処理されたニューラルネットワークが、前記選択されたブロックのサブセットに適用される、ステップと、
前記前処理されたニューラルネットワークを使用して、更新パラメータを計算するステップと、
前記更新パラメータに基づいて、更新されたE2E NICフレームワークを生成するステップと
を含む、方法。
【請求項2】
前記複数のブロックの圧縮表現、および前記更新パラメータの圧縮表現を生成するために、前記複数のブロックおよび前記更新パラメータを符号化するステップと、
復号された更新パラメータを生成するために、前記更新パラメータの前記圧縮表現を復号するステップと、
前記復号された更新パラメータに基づいて、前記E2E NICフレームワークを更新するステップと、
再構築画像を生成するために、前記更新されたE2E NICフレームワークに基づいて、前記複数のブロックの前記圧縮表現を復号するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記複数のブロックおよび前記更新パラメータの前記圧縮表現の消費量、トレードオフハイパーパラメータ、ならびに前記複数のブロックの前記圧縮表現のブロック残差と、前記複数のブロックの前記復号された圧縮表現のブロック残差との間の歪みに基づいて、前記再構築画像の歪み損失を判断するステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記同じパターンが、前記複数のブロックのRGB分散、または前記複数のブロックのYUV分散に基づいて判断される、請求項1に記載の方法。
【請求項5】
前記更新パラメータが、学習率およびステップの数を含み、前記学習率および前記ステップの数は、前記入力画像の特性に基づいて選択される、請求項1に記載の方法。
【請求項6】
前記入力画像の前記特性が、前記入力画像のRGB分散および前記入力画像のRD性能のうちの一方である、請求項5に記載の方法。
【請求項7】
前記ニューラルネットワークを前処理するときに、前記ニューラルネットワークが前記複数のブロックを使用して微調整される、請求項1に記載の方法。
【請求項8】
ニューラルネットワークを使用する、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練のための装置であって、前記装置は、
コンピュータプログラムコードを記憶するように構成された、少なくとも1つのメモリと、
前記コンピュータプログラムコードを読み出し、前記コンピュータプログラムコードに命令された通りに動作するように構成された、少なくとも1つのプロセッサとを備え、前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、E2E NICフレームワークへの入力画像を受信させるように構成された、受信コードと、
前記少なくとも1つのプロセッサに、前記入力画像を複数のブロックに分割させるように構成された、分割コードと、
前記少なくとも1つのプロセッサに、前記複数のブロックからブロックのサブセットを選択させるように構成され、前記ブロックのサブセットは同じパターンを共有する、選択コードと、
前記少なくとも1つのプロセッサに、前記E2E NICフレームワークのニューラルネットワークを前処理させるように構成された前処理コードであって、前記前処理されたニューラルネットワークが、前記選択したブロックのサブセットに適用される、前処理コードと、
前記少なくとも1つのプロセッサに、前記前処理されたニューラルネットワークを使用して、更新パラメータを計算させるように構成された、コンピューティングコードと、
前記少なくとも1つのプロセッサに、前記更新パラメータに基づいて、更新されたE2E NICフレームワークを生成させるように構成された、生成コードと
を含む、装置。
【請求項9】
前記コンピュータプログラムコードが、
前記複数のブロックの圧縮表現、および前記更新パラメータの圧縮表現を生成するために、前記少なくとも1つのプロセッサに、前記複数のブロックおよび前記更新パラメータを符号化させるように構成された、符号化コードと、
復号された更新パラメータを生成するために、前記少なくとも1つのプロセッサに、前記更新パラメータの前記圧縮表現を復号させるように構成された、第1の復号コードと、
前記少なくとも1つのプロセッサに、前記復号された更新パラメータに基づいて前記E2E NICフレームワークを更新させるように構成された、更新コードと、
再構築画像を生成するために、前記少なくとも1つのプロセッサに、前記更新されたE2E NICフレームワークに基づいて、前記複数のブロックの前記圧縮表現を復号させるように構成された、第2の復号コードと
をさらに含む、請求項8に記載の装置。
【請求項10】
前記コンピュータプログラムコードが、前記少なくとも1つのプロセッサに、前記複数のブロックおよび前記更新パラメータの前記圧縮表現の消費量、トレードオフハイパーパラメータ、ならびに前記複数のブロックの前記圧縮表現のブロック残差と、前記複数のブロックの前記復号された圧縮表現のブロック残差との間の歪みに基づいて、前記再構築画像の歪み損失を判断させる、歪み損失判断コードをさらに含む、請求項9に記載の装置。
【請求項11】
前記同じパターンが、前記複数のブロックのRGB分散、または前記複数のブロックのYUV分散に基づいて判断される、請求項8に記載の装置。
【請求項12】
前記更新パラメータが、学習率およびステップの数を含み、前記学習率および前記ステップの数は、前記入力画像の特性に基づいて選択される、請求項8に記載の装置。
【請求項13】
前記入力画像の前記特性が、前記入力画像のRGB分散および前記入力画像のRD性能のうちの一方である、請求項12に記載の装置。
【請求項14】
前記ニューラルネットワークを前処理するときに、前記ニューラルネットワークが前記複数のブロックを使用して微調整される、請求項8に記載の装置。
【請求項15】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令が、ニューラルネットワークを使用する、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)コンテンツ適応型オンライン訓練のための装置の少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
E2E NICフレームワークへの入力画像を受信させ、
前記入力画像を複数のブロックに分割させ、
前記複数のブロックからブロックのサブセットを選択させ、前記ブロックのサブセットは同じパターンを共有し、
前記E2E NICフレームワークのニューラルネットワークを前処理させ、前記前処理されたニューラルネットワークが、前記選択されたブロックのサブセットに適用され、
前記前処理されたニューラルネットワークを使用して、更新パラメータを計算させ、かつ
前記更新パラメータに基づいて、更新されたE2E NICフレームワークを生成させる、
非一時的コンピュータ可読媒体。
【請求項16】
前記命令がさらに、前記少なくとも1つのプロセッサに、
前記複数のブロックの圧縮表現、および前記更新パラメータの圧縮表現を生成するために、前記複数のブロックおよび前記更新パラメータを符号化させ、
復号された更新パラメータを生成するために、前記更新パラメータの前記圧縮表現を復号させ、
前記復号された更新パラメータに基づいて、前記E2E NICフレームワークを更新させ、
再構築画像を生成するために、前記更新されたE2E NICフレームワークに基づいて、前記複数のブロックの前記圧縮表現を復号させる、
請求項15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記命令がさらに、前記少なくとも1つのプロセッサに、前記複数のブロックおよび前記更新パラメータの前記圧縮表現の消費量、トレードオフハイパーパラメータ、ならびに前記複数のブロックの前記圧縮表現のブロック残差と、前記複数のブロックの前記復号された圧縮表現のブロック残差との間の歪みに基づいて、前記再構築画像の歪み損失を判断させる、請求項16に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記同じパターンが、前記複数のブロックのRGB分散、または前記複数のブロックのYUV分散に基づいて判断される、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記更新パラメータが、学習率およびステップの数を含み、前記学習率および前記ステップの数が、前記入力画像の特性に基づいて選択され、前記入力画像の前記特性が、前記入力画像のRGB分散または前記入力画像のRD性能のうちの一方である、請求項15に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記ニューラルネットワークを前処理するときに、前記ニューラルネットワークが前記複数のブロックを使用して微調整される、請求項15に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年12月13日に出願された米国仮特許出願第63/289,044号および2022年10月19日に出願された米国特許出願第17/969,242号に基づいており、それらの優先権を主張し、それらの開示はその全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
ハイブリッドビデオコーデックは、全体として最適化することが困難な場合がある。単一のモジュールの改善は、全体的な性能における符号化利得をもたらさない場合がある。近年、標準的なグループおよび企業は、将来のビデオ符号化技術の標準化に対する潜在的な需要を積極的に調査してきた。これらの標準的なグループおよび企業は、ディープニューラルネットワーク(DNN)を使用したAIベースのエンドツーエンドのニューラル画像圧縮に焦点を当てたJPEG-AIグループを確立している。また、中国のオーディオ・ビデオ・コーディング(AVS)規格では、AVS-AI特別グループも結成し、ニューラル画像およびビデオ圧縮技術に取り組んでいる。最近の手法の成功は、高度なニューラル画像およびビデオ圧縮方法論に対するますます多くの産業上の関心をもたらしている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、従来技術では、ニューラルネットワークベースのビデオまたは画像コーディングフレームワークは、特定のタイプの圧縮フレームワークに限定されている。様々なタイプのフレームワークに対応するために、従来のシステムは、コンピューティングメモリ/コストの増加、およびレート歪み損失の増加を必要とする場合があり、画像またはビデオフレームワーク/プロセス全体の性能の低下につながる。
【0004】
したがって、コーディングフレームワークを最適化し、かつ全体的な性能を向上させる方法が必要とされている。
【課題を解決するための手段】
【0005】
実施形態によれば、ニューラル画像圧縮における、複数のブロック用のコンテンツ適応型オンライン訓練の方法が提供される。
【0006】
本開示の態様によれば、少なくとも1つのプロセッサによって実行される、ニューラルネットワークを使用するいくつかのパターンに基づく、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練の方法が提供される。本方法は、E2E NICフレームワークへの入力画像を受信するステップと、入力画像を複数のブロックに分割するステップと、複数のブロックからブロックのサブセットを選択するステップであって、ブロックのサブセットは同じパターンを共有する、ステップと、E2E NICフレームワークのニューラルネットワークを前処理するステップであって、前処理されたニューラルネットワークが、選択されたブロックのサブセットに適用される、ステップと、前処理されたニューラルネットワークを使用して、更新パラメータを計算するステップと、更新パラメータに基づいて、更新されたE2E NICフレームワークを生成するステップとを含む。
【0007】
本方法は、複数のブロックの圧縮表現、および更新パラメータの圧縮表現を生成するために、複数のブロックおよび更新パラメータを符号化するステップと、復号された更新パラメータを生成するために、更新パラメータの圧縮表現を復号するステップと、復号された更新パラメータに基づいて、E2E NICフレームワークを更新するステップと、再構築画像を生成するために、更新されたE2E NICフレームワークに基づいて、複数のブロックの圧縮表現を復号するステップとをさらに含み得る。
【0008】
本方法は、複数のブロックおよび更新パラメータの圧縮表現の消費量、トレードオフハイパーパラメータ、ならびに複数のブロックの圧縮表現のブロック残差と、複数のブロックの復号された圧縮表現のブロック残差との間の歪みに基づいて、再構築画像の歪み損失を判断するステップをさらに含み得る。
【0009】
いくつかの実施形態では、同じパターンは、複数のブロックのRGB分散、または複数のブロックのYUV分散に基づいて判断される。
【0010】
いくつかの実施形態では、更新パラメータは、学習率およびステップの数を含み、学習率およびステップの数は、入力画像の特性に基づいて選択される。
【0011】
いくつかの実施形態では、入力画像の特性は、入力画像のRGB分散および入力画像のRD性能のうちの一方である。
【0012】
本方法は、ニューラルネットワークを前処理するときに、ニューラルネットワークが複数のブロックを使用して微調整されることをさらに含み得る。
【0013】
本開示の別の態様によれば、コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、コンピュータプログラムコードを読み出し、コンピュータプログラムコードによって命令された通りに動作するように構成された少なくとも1つのプロセッサとを備える、ニューラルネットワークを使用する、いくつかのパターンに基づく、コンテンツE2E NIC用の装置が提供される。コンピュータプログラムコードは、少なくとも1つのプロセッサに、E2E NICフレームワークへの入力画像を受信させるように構成された、受信コードと、少なくとも1つのプロセッサに、入力画像を複数のブロックに分割させるように構成された、分割コードと、少なくとも1つのプロセッサに、複数のブロックからブロックのサブセットを選択させるように構成され、ブロックのサブセットは同じパターンを共有する、選択コードと、少なくとも1つのプロセッサに、E2E NICフレームワークのニューラルネットワークを前処理させるように構成された前処理コードであって、前処理されたニューラルネットワークが、選択したブロックのサブセットに適用される、前処理コードと、少なくとも1つのプロセッサに、前処理されたニューラルネットワークを使用して、更新パラメータを計算させるように構成された、コンピューティングコードと、少なくとも1つのプロセッサに、更新パラメータに基づいて、更新されたE2E NICフレームワークを生成させるように構成された、生成コードとを含む。
【0014】
当該装置は、複数のブロックの圧縮表現、および更新パラメータの圧縮表現を生成するために、少なくとも1つのプロセッサに、複数のブロックおよび更新パラメータを符号化させるように構成された、符号化コードと、復号された更新パラメータを生成するために、少なくとも1つのプロセッサに、更新パラメータの圧縮表現を復号させるように構成された、第1の復号コードと、少なくとも1つのプロセッサに、復号された更新パラメータに基づいてE2E NICフレームワークを更新させるように構成された、更新コードと、再構築画像を生成するために、少なくとも1つのプロセッサに、更新されたE2E NICフレームワークに基づいて、複数のブロックの圧縮表現を復号させるように構成された、第2の復号コードとをさらに含み得る。
【0015】
当該装置は、少なくとも1つのプロセッサに、複数のブロックおよび更新パラメータの圧縮表現の消費量、トレードオフハイパーパラメータ、ならびに複数のブロックの圧縮表現のブロック残差と、複数のブロックの復号された圧縮表現のブロック残差との間の歪みに基づいて、再構築画像の歪み損失を判断させる、歪み損失判断コードをさらに含み得る。
【0016】
本開示の別の態様によれば、ニューラルネットワークを使用する、いくつかのパターンに基づく、E2E NIC用のコンテンツ適応型オンライン訓練のための装置の、少なくとも1つのプロセッサによって実行される命令を記憶する、非一時的コンピュータ可読媒体が提供される。命令は、少なくとも1つのプロセッサに、E2E NICフレームワークへの入力画像を受信させ、入力画像を複数のブロックに分割させ、複数のブロックからブロックのサブセットを選択させ、ブロックのサブセットは同じパターンを共有し、E2E NICフレームワークのニューラルネットワークを前処理させ、前処理されたニューラルネットワークが、選択されたブロックのサブセットに適用され、前処理されたニューラルネットワークを使用して更新パラメータを計算させ、かつ更新パラメータに基づいて、更新されたE2E NICフレームワークを生成させる。
【0017】
非一時的コンピュータ可読媒体は、さらに少なくとも1つのプロセッサに、複数のブロックの圧縮表現、および更新パラメータの圧縮表現を生成するために、複数のブロックおよび更新パラメータを符号化させ、復号された更新パラメータを生成するために、更新パラメータの圧縮表現を復号させ、復号された更新パラメータに基づいて、E2E NICフレームワークを更新させ、再構築画像を生成するために、更新されたE2E NICフレームワークに基づいて、複数のブロックの圧縮表現を復号させる、命令をさらに含み得る。
【0018】
非一時的コンピュータ可読媒体は、さらに少なくとも1つのプロセッサに、複数のブロックおよび更新パラメータの圧縮表現の消費量、トレードオフハイパーパラメータ、ならびに複数のブロックの圧縮表現のブロック残差と、複数のブロックの復号された圧縮表現のブロック残差との間の歪みに基づいて、前記再構築画像の歪み損失を判断させる、命令をさらに含み得る。
【0019】
追加の実施形態は、以下の説明に記載され、部分的には、説明から明らかになり、および/または本開示の提示された実施形態の実施によって理解することができる。
【図面の簡単な説明】
【0020】
【
図1】実施形態による、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練プロセスの概要のフローチャートである。
【
図2】実施形態による、本明細書に記載された方法、装置、およびシステムが実装され得る環境を示す図である。
【
図3】
図2の1つ以上のデバイスの例示的な構成要素を示すブロック図である。
【
図4】ブロック単位の画像コーディングの一例を示す図である。
【
図5】いくつかのパターンに基づく、複数のブロックのコンテンツ適応型オンライン訓練を示す例である。
【
図6】実施形態による、コーディングプロセスの例のフローチャートである。
【
図7】実施形態による、コンテンツ適応型オンライン訓練を使用する、エンドツーエンド(E2E)のニューラル画像圧縮(NIC)フレームワークを示す例示的なブロック図を示す。
【
図8】実施形態による、ニューラルネットワークを使用するいくつかのパターンに基づく、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練の方法を示すフローチャートである。
【
図9】実施形態による、ニューラルネットワークを使用する、いくつかのパターンに基づく、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練のための、コンピュータコードの一例のブロック図である。
【発明を実施するための形態】
【0021】
例示的な実施形態の以下の詳細な説明は、添付の図面を参照する。異なる図面内の同じ参照番号は、同じまたは類似の要素を識別し得る。
【0022】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実装形態を厳密に開示の形態に限定することも意図されていない。修正形態および変形形態が上記の開示に照らして可能であり、または実装形態の実践から取得されてもよい。さらに、1つの実施形態の1つ以上の特性または構成要素が、別の実施形態(または別の実施形態の1つ以上の特性)に組み込まれたり組み合わされたりしてもよい。加えて、以下で提示される動作のフローチャートおよび説明において、1つ以上の動作が省略されてもよく、1つ以上の動作が追加されてもよく、1つ以上の動作が(少なくとも部分的に)同時に実行されてもよく、かつ1つ以上の動作の順序が入れ替わってもよいことが理解されよう。
【0023】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作ならびに挙動は、特定のソフトウェアコードを参照することなく本明細書で説明された。ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実施するように設計され得ることを理解されたい。
【0024】
特定の特徴の組み合わせが、特許請求の範囲に記載され、かつ/または本明細書に開示されていても、これらの組み合わせは、可能な実装形態の開示を限定することを意図されたものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されておらず、かつ/または本明細書に開示されていない方法で組み合わされ得る。以下に列挙される各従属請求項は1つの請求項にのみ直接従属してもよいが、実施可能な実装形態の開示は、各従属請求項を請求項セット内のあらゆる他の請求項と組み合わせて含む。
【0025】
以下で説明される提案された機能は、別々に使用されるか、または任意の順序で組み合わされてもよい。さらに、実施形態は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実施されてもよい。一例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0026】
本明細書で使用される要素、動作、または命令は、そのようなものとして明示的に記載されていない限り、重要または必須であると解釈されてはならない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図されており、「1つまたは複数」と交換可能に使用されてもよい。1つの項目のみが対象とされる場合、「1つ」という用語または同様の言葉が使用される。また、本明細書で使用される場合、用語「有する(has)」、「有する(have)」、「有している(having)」、「含む(include)」、「含んでいる(including)」などは、オープンエンドの用語であることが意図されている。さらに、「に基づいて」という語句は、特に明記されない限り、「に少なくとも部分的に基づいて」を意味することが意図されている。さらに、「[A]および[B]のうちの少なくとも1つ」、あるいは「[A]または[B]のうちの少なくとも1つ」などの表現は、Aのみ、Bのみ、またはAおよびBの両方を含むものとして理解されたい。
【0027】
本開示の例示的な実施形態は、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)の最適化されたネットワークにおける、複数のブロックのコンテンツ適応型オンライン訓練のための方法および装置を提供する。E2E最適化ネットワークは、例えば、人工ニューラルネットワーク(ANN)ベースの画像コーディングフレームワークであってもよい。ANNベースのビデオコーディングフレームワークでは、機械学習プロセスを実行することによって、最終目的(例えば、レート歪み性能)を改善するために入力から出力まで異なるモジュールを一緒に最適化することができ、E2E最適化NICが得られる。
【0028】
図1は、実施形態による、コンテンツ適応型オンライン訓練NICフレームワーク、コンテンツ適応型オンライン訓練システムなどによって実行される、E2E NIC用のコンテンツ適応型オンライン訓練プロセスの概要のフローチャートである。
【0029】
まず、入力画像(またはビデオシーケンス)が受信される(S110)。次に、S120において、画像が複数のブロックに分割される。ブロックを圧縮するために、分割ブロックに対して、ブロック単位の画像コーディングが実行されてもよい。S130において、複数のブロックからブロックのセットが選択される。選択は、複数のブロックに存在すると判断されたパターンに基づいて行われる。S140において、コンテンツ適応型オンライン訓練NICフレームワークの前処理が実行され、選択されたブロックのセットに適用されて、ネットワークを微調整する。S150において、前処理された(すなわち微調整された)ネットワークに基づいて更新パラメータが生成される。更新パラメータは、これに限定されないが、例えば、ステップサイズ(すなわち学習率)およびステップの数を含んでもよい。ブロックおよび生成された更新パラメータは、次に、DNNエンコーダなどによって符号化され、その後、DNNデコーダなどによって復号される(S160)。復号された更新パラメータは、NICフレームワークを更新するために使用される(S170)。最後に、更新されたNICフレームワークのデコーダが、最終画像を復号し生成するために使用される。つまり、S180において、更新されたNICフレームワークに基づいて再構築画像が生成される。
【0030】
図2は、実施形態による、本明細書に記載された方法、装置、およびシステムが実装され得る環境200の図である。
【0031】
図2に示されるように、環境200は、ユーザデバイス210と、プラットフォーム220と、ネットワーク230とを含み得る。環境200のデバイスは、有線接続、無線接続、または有線接続と無線接続の組み合わせを介して相互接続され得る。
【0032】
ユーザデバイス210は、プラットフォーム220に関連付けられた情報を受信、生成、記憶、処理、および/または提供することが可能な1つ以上のデバイスを含む。例えば、ユーザデバイス210は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、スマートグラスもしくはスマートウォッチ)、または同様のデバイスを含んでもよい。いくつかの実装形態では、ユーザデバイス210は、プラットフォーム220から情報を受信し、かつ/またはプラットフォーム220に情報を送信することができる。
【0033】
プラットフォーム220は、本明細書の他の箇所に記載されるような1つ以上のデバイスを含む。いくつかの実装形態では、プラットフォーム220は、クラウドサーバまたはクラウドサーバ群を含んでもよい。いくつかの実装形態では、プラットフォーム220は、ソフトウェアコンポーネントがスワップインまたはスワップアウトされ得るようにモジュール式に設計されてもよい。したがって、プラットフォーム220は、異なる用途のために容易にかつ/または迅速に再構成されてもよい。
【0034】
いくつかの実装形態では、図示のように、プラットフォーム220は、クラウドコンピューティング環境222内でホストされてもよい。特に、本明細書に記載された実装形態はクラウドコンピューティング環境222内でホストされるものとしてプラットフォーム220を記載するが、いくつかの実装形態では、プラットフォーム220は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部に実装されてもよい)、または部分的にクラウドベースであってもよい。
【0035】
クラウドコンピューティング環境222は、プラットフォーム220をホストする環境を含む。クラウドコンピューティング環境222は、プラットフォーム220をホスティングによって提供する1つ以上のシステムおよび/または1つ以上のデバイスの物理的な位置および構成についてのエンドユーザ(例えばユーザデバイス210)による認識を必要としない計算サービス、ソフトウェアサービス、データアクセスサービス、記憶サービスなどを提供してもよい。図示されたように、クラウドコンピューティング環境222は、(「コンピューティングリソース224」と総称され、個別に「コンピューティングリソース224」と呼ばれる)コンピューティングリソース224のグループを含んでもよい。
【0036】
コンピューティングリソース224は、1つ以上のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、または他の種類の計算および/または通信デバイスを含む。いくつかの実装形態では、コンピューティングリソース224は、プラットフォーム220をホストすることができる。クラウドリソースは、コンピューティングリソース224内で実行される計算インスタンス、コンピューティングリソース224内で提供されるストレージデバイス、コンピューティングリソース224によって提供されるデータ転送デバイスなどを含んでもよい。いくつかの実装形態では、コンピューティングリソース224は、有線接続、無線接続、または有線接続と無線接続との組み合わせを介して他のコンピューティングリソース224と通信してもよい。
【0037】
図2にさらに示されるように、コンピューティングリソース224は、1つ以上のアプリケーション(「APP」)224-1、1つ以上の仮想マシン(「VM」)224-2、1つ以上の仮想化ストレージ(「VS」)224-3、あるいは1つ以上のハイパーバイザ(「HYP」)224-4などのクラウドリソースのグループを含む。
【0038】
アプリケーション224-1は、ユーザデバイス210および/もしくはプラットフォーム220に提供することができる、またはユーザデバイス210および/もしくはプラットフォーム220によってアクセスすることができる1つ以上のソフトウェアアプリケーションを含む。アプリケーション224-1は、ユーザデバイス210にソフトウェアアプリケーションをインストールして実行する必要性を排除してもよい。例えば、アプリケーション224-1は、プラットフォーム220に関連付けられたソフトウェア、および/またはクラウドコンピューティング環境222を介して提供することができる他の任意のソフトウェアを含んでもよい。いくつかの実装形態では、1つのアプリケーション224-1は、仮想マシン224-2を介して、1つ以上の他のアプリケーション224-1との間で情報を送受信してもよい。
【0039】
仮想マシン224-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装形態を含む。仮想マシン224-2は、仮想マシン224-2による用途および任意の実マシンに対するその対応度に応じて、システム仮想マシンまたはプロセス仮想マシンのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供することができる。プロセス仮想マシンは、単一のプログラムを実行し、単一の処理をサポートしてもよい。いくつかの実装形態では、仮想マシン224-2は、ユーザ(例えば、ユーザデバイス210)の代わりに実行してもよく、データ管理、同期、または長時間のデータ転送など、クラウドコンピューティング環境222のインフラストラクチャを管理してもよい。
【0040】
仮想化ストレージ224-3は、コンピューティングリソース224のストレージシステムまたはデバイス内で仮想化技術を使用する1つもしくは複数のストレージシステムおよび/または1つもしくは複数のデバイスを含む。いくつかの実装形態では、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化およびファイル仮想化を含んでもよい。ブロック仮想化は、物理ストレージまたは異種構造に関係なくストレージシステムがアクセスされ得るように、物理ストレージからの論理ストレージの抽象化(または分離)を指すことができる。分離は、ストレージシステムの管理者がエンドユーザのためにストレージを管理する方法における柔軟性を可能にし得る。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に記憶されている場所との間の依存関係を排除し得る。これにより、ストレージ使用の最適化、サーバ統合、および/または非破壊的なファイル移行の実行が可能になり得る。
【0041】
ハイパーバイザ224-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)をコンピューティングリソース224などのホストコンピュータ上で同時に実行することを可能にするハードウェア仮想化技術を提供し得る。ハイパーバイザ224-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提示し得、ゲストオペレーティングシステムの実行を管理し得る。様々なオペレーティングシステムの複数のインスタンスは、仮想化ハードウェアリソースを共有し得る。
【0042】
ネットワーク230は、1つ以上の有線および/または無線のネットワークを含む。例えば、ネットワーク230は、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動網(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば、公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/またはこれらもしくは他のタイプのネットワークの組み合わせを含み得る。
【0043】
図2に示すデバイスおよびネットワークの数および配置は、一例として提供されている。実際には、
図2に示すものに比べて、追加のデバイスおよび/もしくはネットワーク、少ないデバイスおよび/もしくはネットワーク、異なるデバイスおよび/もしくはネットワーク、または異なる配置のデバイスおよび/もしくはネットワークがあってもよい。さらに、
図2に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、または
図2に示す単一のデバイスは、複数の分散型デバイスとして実装されてもよい。追加的または代替的に、環境200のデバイスのセット(例えば、1つ以上のデバイス)は、環境200の別のデバイスのセットによって実行されるものとして記載された1つ以上の機能を実行してもよい。
【0044】
図3は、
図2の1つ以上のデバイスの例示的な構成要素を示すブロック図である。
【0045】
デバイス300は、ユーザデバイス210および/またはプラットフォーム220に対応してもよい。
図3に示されたように、デバイス300は、バス310と、プロセッサ320と、メモリ330と、記憶構成要素340と、入力構成要素350と、出力構成要素360と、通信インターフェース370とを含んでもよい。
【0046】
バス310は、デバイス300の構成要素間の通信を可能にする構成要素を含む。プロセッサ320は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ320は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理構成要素である。いくつかの実装形態では、プロセッサ320は、機能を実行するようにプログラムされることが可能な1つまたは複数のプロセッサを含む。メモリ330は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、および/またはプロセッサ320が使用する情報および/または命令を記憶する別のタイプの動的または静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、および/または光メモリ)を含む。
【0047】
記憶構成要素340は、デバイス300の動作および使用に関連する情報および/またはソフトウェアを記憶する。例えば、記憶構成要素340は、対応するドライブと共に、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、および/またはソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/または別のタイプの非一時的コンピュータ可読媒体を含んでもよい。
【0048】
入力構成要素350は、デバイス300がユーザ入力などを介して情報を受け取ることを可能にする構成要素(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、および/またはマイクロフォン)を含む。追加的または代替的に、入力構成要素350は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、および/またはアクチュエータ)を含んでもよい。出力構成要素360は、デバイス300からの出力情報を提供する構成要素(例えば、ディスプレイ、スピーカ、および/または1つもしくは複数の発光ダイオードオード(LED))を含む。
【0049】
通信インターフェース370は、デバイス300が有線接続、無線接続、または有線接続と無線接続との組み合わせなどを介して他のデバイスと通信することを可能にする、送受信機様の構成要素(例えば、送受信機ならびに/または別個の受信機および送信機)を含む。通信インターフェース370は、デバイス300が別のデバイスから情報を受信し、かつ/または別のデバイスに情報を提供することを可能にし得る。例えば、通信インターフェース370は、イーサネットインターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波数(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラーネットワークインターフェースなどを含んでもよい。
【0050】
デバイス300は、本明細書に記載された1つ以上のプロセスを実行し得る。デバイス300は、プロセッサ320がメモリ330および/または記憶構成要素340などの非一時的コンピュータ可読媒体によって記憶されたソフトウェア命令を実行したことに応答して、これらのプロセスを実行し得る。コンピュータ可読媒体は、本明細書では非一時的メモリデバイスとして定義される。メモリデバイスは、単一の物理記憶デバイス内のメモリ空間、または複数の物理記憶デバイスにわたって散在するメモリ空間を含む。
【0051】
ソフトウェア命令は、別のコンピュータ可読媒体から、または通信インターフェース370を介して別のデバイスからメモリ330および/または記憶構成要素340に読み込まれてもよい。メモリ330および/または記憶構成要素340に記憶されたソフトウェア命令は、実行されると、本明細書に記載された1つまたは複数のプロセスをプロセッサ320に実行させ得る。追加的または代替的に、本明細書に記載された1つまたは複数のプロセスを実行するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、ハードワイヤード回路が使用されてもよい。よって、本明細書に記載される実施態様は、ハードウェア回路とソフトウェアとのどんな特定の組み合わせにも限定されない。
【0052】
図3に示す構成要素の数および配置は、一例として提供されている。実際には、デバイス300は、
図3に示された構成要素に比べて、追加の構成要素、少ない構成要素、異なる構成要素、または異なる配置の構成要素を含んでもよい。追加的または代替的に、デバイス300の構成要素のセット(例えば、1つ以上の構成要素)は、デバイス300の構成要素の別のセットによって実施されるものとして記載された1つ以上の機能を実行してもよい。
【0053】
実施形態では、
図4から
図9の動作またはプロセスのいずれか1つが、
図2および
図3に示されている要素のいずれか1つによって、またはこれを使用して実装され得る。
【0054】
いくつかの実施形態によれば、ニューラルネットワークベースの画像圧縮の一般的なプロセスは、以下の通りであってもよい。画像またはビデオシーケンスxが与えられた場合、NICの目標は、記憶および伝送の目的用にコンパクトである圧縮表現
【数1】
を計算するために、画像xをDNNエンコーダへの入力として使用することである。続いて、圧縮表現
【数2】
をDNNデコーダへの入力として使用して、画像
【数3】
を再構築する。いくつかのNIC方法は、変分オートエンコーダ(VAE)構造を取ることができ、DNNエンコーダは、画像x全体をその入力として直接使用し、これは、ブラックボックスのように機能するネットワーク層のセットを通過し、出力表現(すなわち、圧縮表現
【数4】
)を計算する。これに対応して、DNNデコーダは、圧縮表現
【数5】
全体をその入力として取り、これは、別のブラックボックスのように機能するネットワーク層の別のセットを通過し、再構築画像
【数6】
を計算する。レート歪み(R-D)損失は、以下の目標損失関数Lを使用してトレードオフハイパーパラメータλを用いて、再構築画像
【数7】
の歪み損失
【数8】
と圧縮表現
【数9】
のビット消費量Rとの間のトレードオフを達成するように最適化される。
【0055】
【0056】
実施形態は、複数のブロック用のコンテンツ適応型E2Eオンライン訓練NICフレームワークに関する。コンテンツ適応型オンライン訓練では、複数のブロックを訓練するために、まず入力画像xが複数のブロックに分割される。例えば、サイズが2048×2048の画像は、サイズが512×512の16個のブロックに分割されてもよい。より詳細な説明は、
図4および
図5を参照して提供される。入力画像を分割することによって、コンピューティングメモリを節約し、並列コンピューティングを可能にする。各ブロックは、次に、レート歪み圧縮法(説明した一般的なNICプロセスなど)によって、個別に圧縮される。特に、分割入力画像は、入力画像xの圧縮表現
【数11】
を計算するために、エンコーダ(例えば、DNNエンコーダ)に入力される。圧縮表現
【数12】
は、次に、出力(すなわち再構築画像
【数13】
)を生成するために、デコーダ(例えば、DNNデコーダ)に入力される。ニューラルネットワークベースの、事前訓練された(または事前訓練されていない)ネットワークが、ポスト拡張ネットワークとして使用される。このポスト拡張ネットワークのオンライン訓練は、複数のブロックに基づく。オンライン訓練中に、ポスト拡張ネットワークの部分(または全体)パラメータが更新されてもよい。更新された部分(または全体)パラメータは、符号化された複数のブロックと共に、ビットストリームに符号化される。これらの更新パラメータ(1つまたは複数の画像によって微調整された)を使用して、DNNデコーダは符号化されたブロックを復号し、良好な圧縮性能を実現し得る。この微調整プロセスは、任意の事前訓練されたE2E NIC圧縮方法の圧縮性能を高めるための、コンテンツ適応型オンライン訓練NICフレームワークにおける前処理ステップとして使用される。いくつかの実施形態では、この方法は、コンテンツ適応型オンライン訓練NICフレームワーク自身によって訓練された、E2E NICフレームワークでも使用され得る。
【0057】
1つ以上の実施形態による、コンテンツ適応型オンライン訓練NICフレームワークの前処理についての詳細な説明をここに記載する。
【0058】
前述したように、事前訓練されたポスト拡張ネットワークは、入力として複数のブロックを受信する。次に、ポスト拡張ネットワークは、入力された複数のブロックに基づいて微調整される。更新パラメータを取得するために、微調整されたポスト拡張ネットワークが使用され、更新パラメータによってNICフレームワークが更新される。このようにして、ポスト拡張ネットワークが目標画像コンテンツに適用され得る。ポスト拡張ネットワークを微調整しているときは、ネットワークパラメータの1つ以上が更新され得る。
【0059】
いくつかの実施形態では、パラメータは全体的または部分的に更新されてもよい。例えば、パラメータは、ポスト拡張ネットワークの一部のみ(畳み込みニューラルネットワークの最後の層など)が更新される。別の例として、パラメータは、ポスト拡張ネットワークの複数または全てのモジュールで更新されてもよい。
【0060】
いくつかの実施形態では、バイアス項のみが最適化され更新される。別の例示的な実施形態では、係数(重み)項が最適化される。あるいは、例えば、全てのパラメータが最適化されてもよい。
【0061】
いくつかの実施形態では、ポスト拡張ネットワークは微調整され、大きいブロック/画像を形成する複数のブロックに基づいて更新されたNICフレームワークを生成する。いくつかの実施形態では、ポスト拡張ネットワークは微調整され、微調整されたポスト拡張ネットワークは、互いに隣接し得ないブロックのセットに基づいて、更新されたフレームワークを生成する。例えば、ブロックのセットは、入力された複数のブロックからランダムに選択されてもよい。
【0062】
微調整プロセスは、この反復オンライン訓練プロセスでパラメータが更新される、複数のエポックを含む。訓練損失(例えば、式1における目標損失関数に基づいて判断した)が平坦化したとき、または平坦化しそうなときは、微調整は停止される。コンテンツ適応型オンライン訓練NICフレームワークには2つのキーとなるハイパーパラメータがあり、それはステップサイズおよびステップの数である。ステップサイズは、オンライン訓練NICフレームワークの「学習率」を示す。異なる形式のコンテンツを有する画像は、最良の最適化結果を得るために、異なるステップサイズに対応してもよい。ステップ数は、操作された更新の数を示す。目標損失関数(式1)と共に、ハイパーパラメータがオンライン学習プロセスに使用される。例えば、ステップサイズは、学習プロセスで実行される勾配降下アルゴリズムまたは逆伝播計算で使用され得る。反復回数は、学習プロセスが終了されてもよい時点を制御するための、最大反復回数の閾値として使用され得る。いくつかの実施形態では、反復オンライン訓練プロセス中に、スケジューラによって各ステップで学習率(すなわちステップサイズ)が変更されてもよい。スケジューラは学習率値を決定し、これはいくつかの間隔で増加するか、減少するか、または同一に保たれ得る。異なる入力画像に対して、単一のスケジューラまたは複数の(異なる)スケジューラがあってもよい。複数の更新パラメータが、複数の学習率スケジューラに基づいて生成されてもよく、更新パラメータのそれぞれに対して圧縮性能が良好なスケジューラが選択され得る。微調整プロセスの最後に、更新パラメータが計算される。いくつかの実施形態では、更新パラメータは、次に、微調整プロセスの最後に圧縮される。例えば、更新パラメータを圧縮するために、(LZMA2などの)圧縮アルゴリズムが使用されてもよい。別の例示的な実施形態では、更新パラメータの圧縮は実行されない。
【0063】
いくつかの実施形態では、更新パラメータは、微調整されたパラメータと事前訓練されたパラメータとの差として計算される。いくつかの実施形態では、更新パラメータは、微調整されたパラメータである。別の例示的な実施形態では、更新パラメータは、微調整されたパラメータのいくつかの変換である。
【0064】
図4は、ブロック単位の画像コーディングの一例を示す図である。実施形態による、コンテンツ適応型オンライン訓練NICフレームワークでは、入力画像全体を直接符号化するのではなく、画像フレームを圧縮するために、ブロックベースのコーディング機構が使用される。ブロックベースのコーディング機構を使用すると、入力画像全体が同じ(または様々な)サイズのブロックにまず分割され、ブロックは個別に圧縮される。
【0065】
図4に示すように、画像400は、最初にブロックに分割されてもよく(
図4に破線で示す)、分割されたブロックは、画像400自体の代わりに圧縮されてもよい。
図4では、圧縮済みブロックに斜線を付し、圧縮対象ブロックに斜線を付していない。分割されたブロックは、等しいサイズまたは等しくないサイズであってもよい。ブロックごとのステップサイズは異なっていてもよい。この目的のために、より良好な圧縮結果を達成するために、画像400に異なるステップサイズを割り当てることができる。ブロック410は、高さhおよび幅wを有する分割されたブロックのうちの1つの例である。ブロックは、ブロック単位の画像符号化プロセスを通過して、符号化された情報のビットストリームを生成する。
【0066】
図5は、実施形態による、複数のブロックのコンテンツ適応型オンライン訓練を示す例である。
図5に示すように、入力画像xは、ブロックに分割されてもよい。ブロックのサイズおよびコンテンツ適応型領域は異なっていてもよく、
図5の例示によって限定されない。例えば、ブロックは、サイズが同じであっても異なっていてもよい。次に、各ブロックのパターンが判断される。同じパターンを有する(1つ以上のブロックを含む)ブロックのサブセットが選択され得る。NICフレームワークを訓練するために、単一の画像内でブロックの1つ以上のセットが選択されて使用されてもよい。いくつかの実施形態では、1つ以上の入力画像またはシーケンスビデオから、ブロックの1つ以上のセットが選択される。選択されたブロックのサブセットは、次に、再構築画像
【数14】
を生成するために、コンテンツ適応型オンライン訓練NICフレームワークで処理される。
【0067】
図5に示すように、ブロックのサブセット510は、同じパターンを有していることに基づいて選択され、NICフレームワークの訓練に使用される。ブロックのサブセット510に基づいて訓練されたNICフレームワークは、次に、再構築画像
【数15】
を生成するために使用される。別のブロックのサブセット520は、同じパターンを有していることに基づいて選択され、次に、再構築画像
【数16】
を生成するために処理される。再構築画像
【数17】
および再構築画像
【数18】
は、フィルタリングプロセスの前または後に出力された画像であってもよい。
【0068】
パターン(またはパターンタイプ)は、実施形態によって限定されない。ブロックを分類し得る様々な属性は、コンテンツ適応型訓練プロセス用に選択された同じパターンのブロックに使用されるパターンであってもよい。
【0069】
いくつかの実施形態では、パターンはブロックの赤-緑-青(RGB)分散に基づく。別の例示的な実施形態では、パターンはブロックのルマ、赤色投影、および青色投影モデル(すなわちYUVモデル)分散に基づく。さらに別の例示的な実施形態では、パターンは、1つ以上のブロックに存在する支配的な色に基づく。
【0070】
ステップサイズ(すなわちコンテンツ適応型オンライン訓練NICフレームワークの学習率)は、画像(またはブロック)の特性に基づいて選択されてもよい。例えば、画像の特性は、画像のRGBカラーモデル、およびRGB分散に基づいていてもよい。さらに、いくつかの実施形態では、ステップサイズは、画像(またはブロック)のRD性能に基づいて選択されてもよい。したがって、その実施形態によれば、異なるステップサイズに基づいて複数の更新パラメータを生成でき、各更新パラメータに対して、圧縮性能が良好なステップサイズが選択され得る。
【0071】
より良好な圧縮結果を達成するために、複数の学習率スケジュールが、異なるブロックに割り当てられてもよい。いくつかの実施形態では、全てのブロックが同じ学習率スケジュールを共有する。学習率スケジューラの選択は、ブロックのRGB分散またはブロックのRD性能などの、ブロックの特性に基づいてもよい。
【0072】
異なるブロックは、異なるモジュール内の(例えば、コンテキストモジュールまたはハイパーデコーダ内の)異なるパラメータ、あるいは実施形態によるコンテンツ適応型オンライン訓練NICフレームワークの、異なるタイプのパラメータ(バイアスまたは重み)を更新し得る。いくつかの実施形態では、全てのブロックが同じ更新パラメータを共有する。(更新される)パラメータは、ブロックのRGB分散またはブロックのRD性能などの、ブロックの特性に基づいて選択されてもよい。
【0073】
異なるブロックは、更新パラメータを変換する異なる方法を選択してもよい。例えば、いくつかの実施形態では、1つのブロックは、微調整されたパラメータと事前訓練されたパラメータとの差に基づいてパラメータを更新することを選択してもよい。別のブロックは、パラメータを直接更新することを選択してもよい。いくつかの実施形態では、全てのブロックが同じ方法でパラメータを更新した。更新パラメータを変換する方法は、ブロックのRGB分散またはブロックのRD性能などの、ブロックの特性に基づいて選択されてもよい。
【0074】
異なるブロックは、更新パラメータを圧縮する異なる方法を選択してもよい。例えば、1つのブロックは、更新パラメータを圧縮するために、LZMA2アルゴリズムを使用してもよい。別のブロックは、更新パラメータを圧縮するために、bzip2アルゴリズムを使用してもよい。実施形態はこれに限定されず、パラメータを圧縮するのに適した任意の圧縮アルゴリズムを使用してもよい。いくつかの実施形態では、全てのブロックが、更新パラメータを圧縮する(または圧縮しない)ために同じ方法を使用する。圧縮方法は、ブロックのRGB分散またはブロックのRD性能などの、ブロックの特性に基づいて選択されてもよい。
【0075】
再構築画像を生成するためにブロックに適用される、コンテンツ適応型オンライン訓練NICフレームワークのコーディングプロセスが、
図6を参照して説明される。
図6は、実施形態による、コーディングプロセスの例のフローチャートである。
【0076】
まず、S610において、NICフレームワークは、入力画像および更新パラメータを符号化する。続いて、符号化された入力および更新パラメータが復号される(S620)。更新パラメータが圧縮されていた場合(S630が「はい」の場合)は、オンライン訓練プロセスから取得された更新パラメータは、まず解凍される(S640)。更新パラメータが圧縮されていなかった場合(S630が「いいえ」の場合)は、プロセスはS650に進む。S650において、S620からの復号済み更新パラメータ、またはS640からの解凍された復号済み更新パラメータを使用して、デコーダ側でNICフレームワークが更新される。最後に、S660において、(再構築画像
【数19】
を生成するために)更新されたNICフレームワークデコーダが、画像復号に使用される。パラメータがどのように変換されたかに基づいて、更新パラメータ値は、元の(事前訓練された)バイアス項を更新する。
【0077】
実施形態は、例えば、ニューラルエンコーダ、エンコーダ、デコーダ、およびニューラルデコーダに使用される方法に対していかなる制限も課さない。実施形態による、コンテンツ適応型オンライン訓練方法は、異なるタイプのNICフレームワークに適応し得る。例えば、プロセスは、異なるタイプの符号化および復号DNNを使用して実行されてもよい。
【0078】
図7は、実施形態による、コンテンツ適応型オンライン訓練を使用する、E2E NICフレームワークの例示的なブロック
図700である。
【0079】
図7に示すように、E2E NICフレームワークは、主エンコーダ710と、主デコーダ720と、ハイパーエンコーダ730と、ハイパーデコーダ740と、コンテキストモデル750とを含む。E2E NICフレームワークは、1つまたは複数のこのようなモジュールを含んでもよい。E2E NICフレームワークは、量子化器760/761と、算術コーダ770/771と、算術デコーダ780/781とをさらに含む。同じまたは類似のモジュールは、同じ参照番号で表される。E2E NICフレームワークは、
図7に図示されていない1つ以上のモジュールを含んでもよい。
【0080】
E2E NICフレームワークは、スケールハイパープライア・エンコーダ-デコーダ・フレームワーク(またはガウス混合尤度フレームワーク)およびその変形、RNNベースの再帰的圧縮方法およびその変形などの、任意のDNNベースの画像圧縮方法を使用してもよい。
【0081】
本開示の実施形態によれば、E2E NICフレームワークは、以下のようにブロック
図700を利用することができる。入力画像またはビデオシーケンスxが与えられると、主エンコーダ710は、入力画像xと比較したときに、記憶および伝送の目的用にコンパクトである圧縮表現
【数20】
を計算し得る。圧縮表現
【数21】
は、量子化器760を使用して、離散値量子化表現
【数22】
に量子化することができる。この離散値量子化表現
【数23】
は、算術コーディング(可逆圧縮または不可逆圧縮)を使用する算術コーダ770を使用して、ビットストリームにエントロピー符号化されてもよい。デコーダ側では、離散値量子化表現
【数24】
を復元するために、算術デコーダ780を使用して、ビットストリームが可逆圧縮または非可逆圧縮でのエントロピー復号を経ることができる。次に、この離散値量子化表現
【数25】
を主デコーダ720に入力して、入力画像またはビデオシーケンス
【数26】
を復元かつ/または再構築することができる。主エンコーダ710および主デコーダ720は、ニューラルネットワークベースのエンコーダおよびデコーダ(例えば、DNNベースのコーダ)であってもよい。
【0082】
いくつかの実施形態によれば、E2E NICフレームワークは、オンライン訓練フェーズ中に、圧縮性能をさらに向上させるために、ハイパープライアモデルおよびコンテキストモデルを含むことができる。ハイパープライアモデルを使用して、ニューラルネットワークの層間で生成される潜在表現の空間的依存性を捉えることができる。いくつかの実施形態によれば、サイド情報は、ハイパープライアモデルによって使用されてもよく、サイド情報は、一般に、デコーダ側で隣接する参照フレームの動き補償時間補間によって生成される。このサイド情報は、E2E NICフレームワークを訓練および推論するために使用され得る。ハイパーエンコーダ730は、ハイパープライア・ニューラルネットワークベースのエンコーダを使用して、圧縮表現
【数27】
を符号化することができる。次いで、量子化器761および算術コーダ771を使用して、ハイパー符号化された圧縮表現のハイパー圧縮表現を生成することができる。算術デコーダ781は、ハイパー圧縮表現を復号し得る。次に、ハイパープライア・ニューラルネットワークベースのハイパーデコーダ740を使用して、ハイパー再構築画像x’が生成され得る。ニューラルネットワークベースのコンテキストモデル750は、ハイパー再構築画像、および量子化器760からの量子化表現を使用して訓練することができる。算術コーダ770と算術デコーダ780とは、符号化および復号をそれぞれ行うために、コンテキストモデル750を使用してもよい。
【0083】
いくつかの実施形態によれば、E2E NICフレームワークは、自己訓練されてもよい。訓練プロセスの目標は、DNN符号化およびDNN復号(すなわち主エンコーダ710および主デコーダ720)を学習することである。訓練プロセスでは、例えば、事前訓練された対応するDNNモデルを使用して、またはそれらを乱数に設定することによって、DNN(すなわち主エンコーダ710および主デコーダ720)の重み係数がまず初期化される。次に、入力訓練画像xを与えると、入力訓練画像xは、ビットストリームに符号化された情報を生成するために、
図4で説明した符号化プロセスを通過し、次に、計算して画像
【数28】
を再構築するために、
図5で説明した復号プロセスを通過する。(
図7に示すような)E2E NICフレームワークでは、より良好な再構築品質と、より少ないビット消費という2つの競合する目標が達成される。品質損失関数
【数29】
が、再構築品質(歪み損失とも呼ばれる)を測定するために使用され、これは、ピーク信号対雑音比(PSNR)、マルチスケール構造類似性(MS-SSIM)、または両方の重み付き組み合わせなどである。圧縮表現のビット消費を測定するために、レート損失
【数30】
が計算される。したがって、以下の式に従って、トレードオフハイパーパラメータλが、ジョイントレート歪み(R-D)損失を最適化するために使用される。
【0084】
【0085】
ここでEは、残差符号化/復号DNNおよび符号化/復号DNNについての正則化損失として作用する、符号化前の元のブロック残差と比較した復号済みブロック残差の歪みを測定する。βは、正則化損失の重要性をバランスさせるハイパーパラメータである。
【0086】
いくつかの実施形態では、符号化DNNおよび復号DNNは、E2Eフレームワークにおける逆伝播勾配に基づいて、一緒に更新され得る。
【0087】
図8は、実施形態による、ニューラルネットワークを使用する、いくつかのパターンに基づく、E2E NICのコンテンツ適応型オンライン訓練の方法800を示すフローチャートである。
【0088】
いくつかの実装形態では、
図8の1つまたは複数のプロセスブロックは、プラットフォーム220によって実行されてもよい。いくつかの実装形態では、
図8の1つまたは複数のプロセスブロックは、ユーザデバイス210などの、プラットフォーム220とは別個の、またはプラットフォーム220を含む別のデバイスまたはデバイスのグループによって実行されてもよい。
【0089】
図8に示すように、動作810において、方法800は、E2E NICフレームワークへの入力画像を受信するステップを含み得る。
【0090】
動作820において、方法800は、入力画像を複数のブロックに分割するステップを含み得る。
【0091】
動作830において、方法800は、複数のブロックからブロックのサブセットを選択するステップを含み得る。ブロックのサブセットは、同じパターンを共有している。同じパターンは、複数のブロックのRGB分散、または複数のブロックのYUV分散に基づいて判断され得る。
【0092】
動作840において、方法800は、E2E NICフレームワークのニューラルネットワークを前処理するステップを含み得る。前処理されたNNは、フレームワークを微調整するために、選択したブロックのサブセットに適用されてもよい。
【0093】
動作850において、方法800は、前処理されたニューラルネットワークを使用して更新パラメータを計算するステップを含み得る。更新パラメータは、学習率およびステップの数を含んでもよく、学習率およびステップの数は、入力画像の特性に基づいて選択される。入力画像の特性は、入力画像のRGB分散および入力画像のRD性能のうちの一方であってもよい。
【0094】
動作860において、方法800は、更新パラメータに基づいて、更新されたE2E NICフレームワークを生成するステップを含み得る。いくつかの実施形態では、本方法は、複数のブロックの圧縮表現、および更新パラメータの圧縮表現を生成するために、複数のブロックおよび更新パラメータを符号化するステップと、復号された更新パラメータを生成するために、更新パラメータの圧縮表現を復号するステップと、復号された更新パラメータに基づいて、E2E NICフレームワークを更新するステップと、再構築画像を生成するために、更新されたE2E NICフレームワークに基づいて、複数のブロックの圧縮表現を復号するステップとをさらに含む。再構築画像の歪み損失は、複数のブロックおよび更新パラメータの圧縮表現の消費量、トレードオフハイパーパラメータ、ならびに複数のブロックの圧縮表現のブロック残差と、複数のブロックの復号された圧縮表現のブロック残差との間の歪みに基づいて判断されてもよい。
【0095】
図8は方法の例示的なブロックを示すが、いくつかの実装形態では、方法は、
図8に描写されたブロックに比べて、さらなるブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。追加または代替として、方法のブロックのうちの2つ以上が並行して実行されてもよい。
【0096】
図9は、実施形態による、ニューラルネットワークを使用する、いくつかのパターンに基づく、E2E NICのコンテンツ適応型オンライン訓練のための、コンピュータコード900の一例のブロック図である。実施形態では、コンピュータコードは、例えば、プログラムコードまたはコンピュータプログラムコードであってもよい。本開示の実施形態によれば、コンピュータプログラムコードを記憶するメモリを有する、少なくとも1つのプロセッサを含む装置/デバイスが提供され得る。コンピュータプログラムコードは、少なくとも1つのプロセッサによって実行されると、本開示の任意の数の態様を実行するように構成されてもよい。
【0097】
図9に示すように、コンピュータコード900は、受信コード910と、分割コード920と、選択コード930と、前処理コード940と、コンピューティングコード950と、生成コード960とを含む。
【0098】
受信コード910は、少なくとも1つのプロセッサに、E2E NICフレームワークへの入力画像を受信させるように構成される。
【0099】
分割コード920は、少なくとも1つのプロセッサに、入力画像を複数のブロックに分割させるように構成される。
【0100】
選択コード930は、少なくとも1つのプロセッサに、複数のブロックからブロックのサブセットを選択させるように構成される。ブロックのサブセットは、同じパターンを共有している。同じパターンは、複数のブロックのRGB分散、または複数のブロックのYUV分散に基づいて判断され得る。
【0101】
前処理コード940は、少なくとも1つのプロセッサに、E2E NICフレームワークのニューラルネットワークを前処理させるように構成され、前処理されたNNは、フレームワークを微調整するために、選択されたブロックのサブセットに適用される。
【0102】
コンピューティングコード950は、少なくとも1つのプロセッサに、前処理されたニューラルネットワークを使用して更新パラメータを計算させるように構成される。更新パラメータは、学習率およびステップの数を含んでもよく、学習率およびステップの数は、入力画像の特性に基づいて選択される。入力画像の特性は、入力画像のRGB分散および入力画像のRD性能のうちの一方であってもよい。
【0103】
生成コード960は、少なくとも1つのプロセッサに、更新パラメータに基づいて、更新されたE2E NICフレームワークを生成させるように構成される。コンピュータコード900は、複数のブロックの圧縮表現、および更新パラメータの圧縮表現を生成するために、少なくとも1つのプロセッサに、複数のブロックおよび更新パラメータを符号化させるように構成されたコードと、復号された更新パラメータを生成するために、少なくとも1つのプロセッサに、更新パラメータの圧縮表現を復号させるように構成されたコードと、少なくとも1つのプロセッサに、復号された更新パラメータに基づいてE2E NICフレームワークを更新させるように構成されたコードと、再構築画像を生成するために、少なくとも1つのプロセッサに、更新されたE2E NICフレームワークに基づいて、複数のブロックの圧縮表現を復号させるように構成されたコードとをさらに含み得る。
【0104】
図9はコードの例示的なブロックを示しているが、いくつかの実装形態では、装置/デバイスは、
図9に示されているブロックに対して、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。追加または代替として、装置のブロックのうちの2つ以上が並行して実行されてもよい。言い換えると、
図9は別個のコードのブロックを示しているが、様々なコード命令は別個のものである必要はなく、混在されてもよい。
【0105】
本開示で説明されるいくつかのパターンに基づく、E2E NICフレームワークのコンテンツ適応型オンライン訓練の方法およびプロセスは、適応型オンライン訓練機構に柔軟性をもたらしてNICコーディング効率を高め、DNNベースの、または従来モデルベースの方法を含む、異なるタイプの学習に基づいた量子化方法を支援する。記載している方法は、異なるDNNアーキテクチャおよび複数の品質基準に対応する柔軟で汎用的なフレームワークをさらに提供する。
【0106】
前述した技術は、コンピュータ可読命令を使用し、1つ以上のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして、または具体的に構成される1つ以上のハードウェアプロセッサによって実装され得る。例えば、
図2は、様々な実施形態を実施するのに適した環境200を示す。一例では、1つ以上のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0107】
本明細書で使用される場合、構成要素という用語は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせとして広く解釈されることを意図している。
【0108】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0109】
コンピュータソフトウェアは、コンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接に、または解釈、マイクロコードの実行などを介して実行できる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構の適用を受け得る、任意の適切な機械コードまたはコンピュータ言語を使用して符号化されることができる。
【0110】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネットデバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行することができる。
【0111】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0112】
200 環境
210 ユーザデバイス
220 プラットフォーム
222 クラウドコンピューティング環境
224 コンピューティングリソース
224-1 アプリケーション(APP)
224-2 仮想マシン(VM)
224-3 仮想化ストレージ(VS)
224-4 ハイパーバイザ(HYP)
230 ネットワーク
300 デバイス
310 バス
320 プロセッサ
330 メモリ
340 記憶構成要素
350 入力構成要素
360 出力構成要素
370 通信インターフェース
400 画像
410 ブロック
510 サブセット
520 サブセット
700 E2E NICフレームワーク
710 主エンコーダ
720 主デコーダ
730 ハイパーエンコーダ
740 ハイパーデコーダ
750 コンテキストモデル
760 量子化器
761 量子化器
770 算術コーダ
771 算術コーダ
780 算術デコーダ
781 算術デコーダ
800 E2E NICのコンテンツ適応型オンライン訓練の方法
810~860 動作
900 コンピュータコード
910 受信コード
920 分割コード
930 選択コード
940 前処理コード
950 コンピューティングコード
960 生成コード
【手続補正書】
【提出日】2023-10-03
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される、ニューラルネットワークを使用する、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練の方法であって、前記方法が、
E2E NICフレームワークへの入力画像を受信するステップと、
前記入力画像を複数のブロックに分割するステップと、
前記複数のブロックからブロックのサブセットを選択するステップであって、前記ブロックのサブセットは同じパターンを共有する、ステップと、
前記E2E NICフレームワークのニューラルネットワークを前処理するステップであって、前記前処理されたニューラルネットワークが、前記選択されたブロックのサブセットに適用される、ステップと、
前記前処理されたニューラルネットワークを使用して、更新パラメータを計算するステップと、
前記更新パラメータに基づいて、更新されたE2E NICフレームワークを生成するステップと
を含む、方法。
【請求項2】
前記複数のブロックの圧縮表現、および前記更新パラメータの圧縮表現を生成するために、前記複数のブロックおよび前記更新パラメータを符号化するステップと、
復号された更新パラメータを生成するために、前記更新パラメータの前記圧縮表現を復号するステップと、
前記復号された更新パラメータに基づいて、前記E2E NICフレームワークを更新するステップと、
再構築画像を生成するために、前記更新されたE2E NICフレームワークに基づいて、前記複数のブロックの前記圧縮表現を復号するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記複数のブロックおよび前記更新パラメータの前記圧縮表現の消費量、トレードオフハイパーパラメータ、ならびに前記複数のブロックの前記圧縮表現のブロック残差と、前記複数のブロックの前記復号された圧縮表現のブロック残差との間の歪みに基づいて、前記再構築画像の歪み損失を判断するステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記同じパターンが、前記複数のブロックのRGB分散、または前記複数のブロックのYUV分散に基づいて判断される、請求項1に記載の方法。
【請求項5】
前記更新パラメータが、学習率およびステップの数を含み、前記学習率および前記ステップの数は、前記入力画像の特性に基づいて選択される、請求項1に記載の方法。
【請求項6】
前記入力画像の前記特性が、前記入力画像のRGB分散および前記入力画像のRD性能のうちの一方である、請求項5に記載の方法。
【請求項7】
前記ニューラルネットワークを前処理するときに、前記ニューラルネットワークが前記複数のブロックを使用して微調整される、請求項1に記載の方法。
【請求項8】
請求項1から7のいずれか一項に記載の方法を実行する、ニューラルネットワークを使用する、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)用のコンテンツ適応型オンライン訓練のための装置
。
【請求項9】
ニューラルネットワークを使用する、エンドツーエンド(E2E)ニューラル画像圧縮(NIC)コンテンツ適応型オンライン訓練のための装置の少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
請求項1から7のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【国際調査報告】