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