I.通信システム、ビデオエンコーダ、及びビデオデコーダ
図3は、本開示の実施形態に従う通信システム(300)の略ブロック図を表す。通信システム(300)は、例えば、ネットワーク(350)を介して、互いと通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続されている端末デバイス(310)及び(320)の第1対を含む。図3の例では、端末デバイス(310)及び(320)の第1対は、データの一方向伝送を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介した他の端末デバイス(320)への伝送のためにビデオデータ(例えば、端末デバイス(310)によって捕捉されるビデオピクチャのストリーム)をコーディングしてよい。エンコーディングされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形で伝送可能である。端末デバイス(320)は、コーディングされたビデオデータをネットワーク(350)から受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを回復し、回復されたビデオデータに従ってビデオピクチャを表示してよい。一方向データ伝送は、メディアサービングアプリケーションなどにおいて一般的であり得る。
他の例では、通信システム(300)は、例えば、ビデオ会議中に、現れ得るコーディングされたビデオデータの双方向伝送を実行する端末デバイス(330)及び(340)の第2対を含む。データの双方向伝送のために、例において、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介した端末デバイス(330)及び(340)のうちの他方の端末デバイスへの伝送のためにビデオデータ(例えば、その端末デバイスによって捕捉されるビデオピクチャのストリーム)をコーディングしてよい。端末デバイス(330)及び(340)の各端末デバイスはまた、端末デバイス(330)及び(340)のうちの他方の端末デバイスによって送信されたコーディングされたビデオデータを受信してよく、コーディングされたビデオデータをデコーディングしてビデオピクチャを回復してよく、回復されたビデオデータに従って、アクセス可能な表示デバイスでビデオピクチャを表示してよい。
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして表され得るが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤー、及び/又は専用のビデオ会議装置により用途を見出す。ネットワーク(350)は、例えば、ワイヤライン(有線)及び/又はワイヤレス通信ネットワークを含む、コーディングされたビデオデータを端末デバイス(310)、(320)、(330)及び(340)の間で伝達する任意数のネットワークに相当する。通信ネットワーク(350)は、回路交換及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークには、電気通信網、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットがある。本議論のために、ネットワーク(350)のアーキテクチャ及びトポロジは、本明細書において以降で説明されない限りは、本開示の動作に無関係であってよい。
図4は、開示されている対象の応用例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を表す。開示されている対象は、例えば、ビデオ会議と、デジタルTVと、CD、DVD、メモリスティックなどを含むデジタル媒体上での圧縮されたビデオの記憶と、などを含む他のビデオ対応用途に同様に適用可能であることができる。
ストリーミングシステムは、例えば、圧縮されていないビデオピクチャのストリーム(402)を生成するビデオソース(401)、例えば、デジタルカメラ、を含むことができる捕捉サブシステム(413)を含んでよい。例において、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されるサンプルを含む。ビデオピクチャのストリーム(402)は、エンコーディングされたビデオデータ(404)(又はコーディングされたビデオビットストリーム)と比較して高いデータボリュームを強調するために太線で表されており、ビデオソース(401)へ結合されたビデオエンコーダ(403)を含む電子機器(420)によって処理され得る。ビデオエンコーダ(403)は、以下で更に詳細に記載されるように、開示されている対象の態様を可能にするか又は実装するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。エンコーディングされたビデオデータ(404)(又はエンコーディングされたビデオビットストリーム(404))は、ビデオピクチャのストリーム(402)と比較してより低いデータボリュームを強調するために細線で表されており、将来の使用のためにストリーミングサーバ(405)に記憶され得る。図4のクライアントサブシステム(406)及び(408)などの1つ以上のストリーミングクライアントサブシステムは、エンコーディングされたビデオデータ(404)のコピー(407)及び(409)を読み出すためにストリーミングサーバ(405)にアクセスすることができる。クライアントサブシステム(406)は、例えば、電子機器(430)において、ビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコーディングされたビデオデータの入来するコピー(407)をデコーディングし、ディスプレイ(412)(例えば、表示スクリーン)又は他のレンダリングデバイス(図示せず。)でレンダリング可能なビデオピクチャの送出ストリーム(411)を生成する。いくつかのストリーミングシステムにおいて、エンコーディングされたビデオデータ(404)、(407)、及び(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコーディングされ得る。そのような規格の例には、ITU-T推奨H.265がある。例において、開発中のビデオコーディング規格は、Versatile Video Coding(VVC)として俗に知られている。開示されている対象は、VVCに関連して使用されてもよい。
なお、電子機器(420)及び(430)は、他のコンポーネント(図示せず。)を含むことができる。例えば、電子機器(420)は、ビデオデコーダ(図示せず。)を含むことができ、電子機器(430)は、ビデオエンコーダ(図示せず。)を同様に含むことができる。
図5は、本開示の実施形態に従うビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子機器(530)に含まれ得る。電子機器(530)は、受信器(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用され得る。
受信器(531)は、ビデオデコーダ(510)によってデコーディングされるべき1つ以上のコーディングされたビデオシーケンスを、同じ又は他の実施形態では、一度に1つのコーディングされたビデオシーケンスを、受信してよい。このとき、夫々のコーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(501)から受信されてよく、チャネルは、エンコーディングされたビデオデータを記憶している記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。受信器(531)は、エンコーディングされたビデオデータを他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリームとともに受信してよく、それらは、それらの各々の使用エンティティ(図示せず。)へ転送されてよい。受信器(531)は、コーディングされたビデオシーケンスを他のデータから分離してよい。ネットワークジッタに対抗するために、バッファメモリ(515)が受信器(531)とエントロピデコーダ/パーサ(520)(以降「パーサ(520)」)との間に結合されてよい。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の部分である。他では、それは、ビデオデコーダ(510)の外にあることができる(図示せず。)。更に他では、例えば、ネットワークジッタに対抗するための、ビデオデコーダ(510)の外にあるバッファメモリ(図示せず。)と、加えて、例えば、再生タイミングを操作するための、ビデオデコーダ(510)内のもう1つのバッファメモリ(515)とが存在することができる。受信器(531)が十分なバンド幅及び可制御性の記憶/転送デバイスから、又はアイソシンクロナス(isosynchronous)ネットワークからデータを受信しているときに、バッファメモリ(515)は必要とされなくてもよく、あるいは、小さくてよい。インターネットなどのベストエフォートのパケットネットワークでの使用のために、バッファメモリ(515)は必要とされる場合があり、比較的に大きく、かつ、有利なことには、適応サイズであることができ、ビデオデコーダ(510)の外のオペレーティングシステム又は同様の要素(図示せず。)で少なくとも部分的に実装され得る。
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含んでよい。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、電子機器(530)の必須部分でないが、図5に示されたように、電子機器(530)へ結合され得るレンダーデバイス(512)(例えば、表示スクリーン)などのレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスのための制御情報は、Supplemental Enhancement Information(SEI)メッセージ又はVideo Usability Information(VUI)パラメータセットフラグメント(図示せず。)の形をとってよい。パーサ(520)は、受信されるコーディングされたビデオシーケンスをパース/エントロピデコーディングしてよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存による又はよらない算術コーディング、などを含む様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、ビデオデコーダにおけるピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータの組を、そのグループに対応する少なくとも1つのパラメータに基づいて抽出し得る。サブグループは、グループ・オブ・ピクチャ(Group of Picture,GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Unit,CU)、ブロック、変換ユニット(Transform Unit,TU)、予測ユニット(Prediction Unit,PU)、などを含むことができる。パーサ(520)はまた、コーディングされたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル、などの情報も抽出し得る。
パーサ(520)は、シンボル(521)を生成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピデコーディング/パーシング動作を実行してよい。
シンボル(521)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の因子に応じて多数の異なるユニットを有することができる。どのユニットがどのように含まれるかは、コーディングされたビデオシーケンスからパーサ(520)によってパースされたサブグループ制御情報によって制御され得る。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明りょうさのために表されていない。
既に述べられた機能ブロックを超えて、ビデオデコーダ(510)は、概念的に、以下で説明される多数の機能ユニットに細分され得る。商業上の制約の下で動作する実際の実施では、それらのユニットの多くが互いに密に相互作用し、少なくとも部分的に互いに組み込まれ得る。しかし、開示されている対象を説明することを目的として、以下での機能ユニットへの概念的細分は適切である。
第1ユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)からシンボル(521)として、量子化された変換係数とともに、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリングマトリクスなどを含む制御情報を受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)へ入力することができるサンプル値を含むブロックを出力することができる。
いくつかの場合に、スケーラ/逆変換器(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、前に再構成されたピクチャからの予測情報を使用しておらず、現在ピクチャの前に再構成された部分からの予測情報を使用することができるブロック、に関係することができる。かような予測情報は、イントラピクチャ予測ユニット(552)によって供給され得る。いくつかの場合に、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(555)は、いくつかの場合に、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって供給される出力サンプル情報に加える。
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされた、そして潜在的に、動き補償されたブロックに関係することができる。かような場合に、動き補償予測ユニット(553)は、予測のために使用されるサンプルをフェッチするよう参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関係するシンボル(521)に従って、フェッチされたサンプルを動き補償した後に、それらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力(この場合に、残差サンプル又は残差信号と呼ばれる。)に加えられ得る。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y及び参照ピクチャコンポーネントを有することができるシンボル(521)の形で動き補償予測ユニット(553)が利用することができる動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされるサンプル値の補間や、動きベクトル予測メカニズムなどを含むこともできる。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができる。この技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる。)に含まれており、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされたパラメータによって制御されるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコーディング順序において)前の部分のデコーディング中に得られたメタ情報にも応答することができ、更には、前に構成されたループフィルタ処理されたサンプル値に応答することもできる。
ループフィルタユニット(556)の出力は、レンダーデバイス(512)へ出力され、更には、将来のインターピクチャ予測における使用のために参照ピクチャメモリ(557)に記憶され得るサンプルストリームであることができる。
特定のコーディングされたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用され得る。例えば、現在ピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の部分になることができ、未使用の現在ピクチャバッファが、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされ得る。
ビデオデコーダ(510)は、ITU-T推奨H.265などの標準規格における所定のビデオ圧縮技術に従ってデコーディング動作を実行してよい。コーディングされたビデオシーケンスは、そのコーディングされたビデオシーケンスが、ビデオ圧縮技術又は標準規格のシンタックス及びビデオ圧縮技術又は標準規格において文書化されているプロファイルの両方に従うという意味で、使用中のビデオ圧縮技術又は標準規格によって規定されたシンタックスに従い得る。具体的には、プロファイルは、ビデオ圧縮技術又は標準規格で利用可能な全てのツールから、そのプロファイルの下での使用のために利用可能な唯一のツールとして、特定のツールを選択することができる。また、コーディングされたビデオシーケンスの複雑さは、ビデオ圧縮技術又は標準規格のレベルによって定義された境界内にあることが、順守のために必要である。いくつかの場合に、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、メガサンプル/秒で測定される。)、最大参照ピクチャサイズ、などを制限する。レベルによって設定された制限は、いくつかの場合に、Hypothetical Reference Decoder(HRD)仕様と、コーディングされたビデオシーケンスにおいて通知されるHRDバッファ管理のためのメタデータとを通じて、更に制限され得る。
実施形態において、受信器(531)は、エンコーディングされたビデオとともに、追加の(冗長な)データを受信してもよい。追加のデータは、コーディングされたビデオシーケンスの部分として含まれてもよい。追加のデータは、ビデオデコーダ(510)によって、データを適切にデコーディングするために及び/又は原ビデオデータをより正確に再構成するために使用されてよい。追加のデータは、例えば、時間、空間、又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、などの形をとることができる。
図6は、本開示の実施形態に従うビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子機器(620)に含まれている。電子機器(620)は、送信器(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用され得る。
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべきビデオ画像を捕捉し得るビデオソース(601)(図6の例では電子機器(560)の部分ではない。)からビデオサンプルを受信してよい。他の例では、ビデオソース(601)は、電子機器(620)の部分である。
ビデオソース(601)は、任意の適切なビットデプス(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 YCrCB、RGBなど)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形で、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを供給してよい。メディアサービングシステムでは、ビデオソース(601)は、前に準備されたビデオを記憶している記憶デバイスであってよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってよい。ビデオデータは、順に見られる場合に動きを授ける複数の個別ピクチャとして供給されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間、などに依存する1つ以上のサンプルを有することができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。本明細書は、以下、サンプルに焦点を当てる。
実施形態に従って、ビデオエンコーダ(603)は、実時間において、又は用途によって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャを、コーディングされたビデオシーケンス(643)へとコーディング及び圧縮してよい。適切なコーディング速度を強いることは、コントローラ(650)の一機能である。いくつかの実施形態において、コントローラ(650)は、以下で記載されるような他の機能ユニットを制御し、他の機能ユニットへ機能的に結合される。結合は明りょうさのために表されていない。コントローラ(650)によってセットされるパラメータには、レート制御に関連したパラメータ(ピクチャスキップ、量子化器、レートひずみ最適化技術のラムダ値、など)、ピクチャサイズ、グループ・オブ・ピクチャ(GOP)レイアウト、最大動きベクトル探索範囲、などが含まれ得る。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関係する他の適切な機能を有するよう構成され得る。
いくつかの実施形態において、ビデオエンコーダ(603)は、コーディングループで動作するよう構成される。過度に単純化された記載として、例において、コーディングループは、ソースコーダ(630)(例えば、コーディングされるべき入力ピクチャと、参照ピクチャとに基づいて、シンボルストリームなどのシンボルを生成することに関与する。)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(シンボルとコーディングされたビデオストリームとの間の如何なる圧縮も、開示されている対象で考えられているビデオ圧縮技術において可逆であるということで)(遠隔の)デコーダも生成することになるのと同様の方法でサンプルデータを生成するようにシンボルを再構成する。その再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)へ入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカル又は遠隔)に依存しないビットパーフェクト(bit-exact)な結果をもたらすので、参照ピクチャメモリ(634)内のコンテンツも、ローカルのエンコーダと遠隔のエンコーダとの間でビットパーフェクトである。すなわち、エンコーダの予測部分は、デコーダがデコーディング中に予測を使用するときに“見る”ことになるのとまさに同じサンプル値を参照ピクチャサンプルとして“見る”。参照ピクチャのシンクロニシティ(及び、例えば、チャネルエラーのために、シンクロニシティが維持され得ない場合に、結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも使用されている。
“ローカル”のデコーダ(633)の動作は、図5とともに詳細に既に上述されている、ビデオデコーダ(510)などの“遠隔”のデコーダと同じであることができる。一時的に図5も参照すると、しかしながら、シンボルが利用可能であり、エントロピコーダ(645)及びパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であることができるということで、バッファメモリ(515)及びパーサ(520)を含むビデオデコーダ(510)のエントロピデコーディング部分は、ローカルのデコーダ(633)において完全には実装されなくてもよい。
実施形態において、デコーダに存在するパーシング/エントロピデコーディングを除く如何なるデコーダ技術も、対応するエンコーダにおいて、同じか又は実質的に同じ機能形態で存在する。従って、開示されている対象は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、それらが、包括的に記載されるデコーダ技術の逆であるということで、省略され得る。特定の範囲において、より詳細な説明が以下で与えられている。
動作中、いくつかの例では、ソースコーダ(630)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定された、ビデオシーケンスからの1つ以上の前にコーディングされたピクチャを参照して、予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(632)は、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックと入力ピクチャのピクセルブロックとの間の差をコーディングする。
ローカルのビデオデコーダ(633)は、ソースコーダ(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングしてよい。コーディングエンジン(632)の動作は、有利なことに、不可逆プロセスであってよい。コーディングされたビデオデータがビデオデコーダ(図6には図示せず。)でデコーディングされ得るとき、再構成されたビデオシーケンスは、通常は、いくらかのエラーを伴ったソースビデオシーケンスの複製であり得る。ローカルのビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得るデコーディングプロセスを再現し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納されるようにしてよい。このように、ビデオエンコーダ(603)は、(伝送エラーなしで)遠端のビデオデコーダによって取得されることになる再構成された参照ピクチャと共通の内容を有している再構成された参照ピクチャのコピーをローカルで記憶し得る。
予測器(635)は、コーディングエンジン(632)のための予測探索を実行してよい。すなわち、新しいピクチャがコーディングされるために、予測器(635)は、その新しいピクチャのための適切な予測基準となり得る参照ピクチャ動きベクトル、ブロック形状、などの特定のメタデータ又は(候補参照ピクセルブロックとしての)サンプルデータを参照ピクチャメモリ(634)から探してよい。予測器(635)は、適切な予測基準を見つけるためにサンプルブロック・バイ・ピクセルブロックベース(sample block-by-pixel block basis)で動作してよい。いくつかの場合に、予測器(635)によって取得された探索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶されている複数の参照ピクチャから引き出された予測基準を有してよい。
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータ及びサブグループパラメータの設定を含め、ソースコーダ(630)のコーディング動作を管理してよい。
上記の全ての機能ユニットの出力は、エントロピコーダ(645)においてエントロピコーディングを受けてよい。エントロピコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスへと変換する。
送信器(640)は、エントロピコーダ(645)によって生成されたコーディングされたビデオシーケンスを、通信チャネル(660)を介した伝送のために準備するようにバッファリングしてよい。通信チャネル(660)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってよい。送信器(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず)とマージしてもよい。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理してよい。コーディング中、コントローラ(650)は、各々のピクチャに適用され得るコーディング技術に影響を及ぼす可能性がある特定のコーディングされたピクチャタイプを夫々のコーディングされたピクチャに割り当ててよい。例えば、ピクチャはしばしば、次のピクチャタイプのうちの1つとして割り当てられてよい。
イントラピクチャ(Intra Picture)(Iピクチャ)は、予測のソースとしてシーケンス内の如何なる他のピクチャも使用せずにコーディング及びデコーディングされ得るピクチャであってよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh,IDR)ピクチャを含む種々のタイプのイントラピクチャを許容する。当業者であれば、Iピクチャのそのような変形並びにそれらの各々の応用及び特徴を知っている。
予測ピクチャ(Predictive Picture)(Pピクチャ)は、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコーディングされ得るピクチャであってよい。
双方向予測ピクチャ(Bi-directionally Predictive Picture)(Bピクチャ)は、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測によりコーディング及びデコーディングされ得るピクチャであってよい。同様に、多重予測ピクチャ(multiple-predictive picture(s))は、単一のブロックの再構成のために2つよりも多い参照ピクチャ及び関連するメタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルブロック(例えば、夫々、4×4、8×8、4×8、又は16×16のサンプルのブロック)に空間的に細分され、ブロックごとにコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されているコーディング割り当てによって決定される他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、あるいは、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。Bピクチャのブロックは、1つ又は2つの前にコーディングされた参照ピクチャを参照して空間予測により又は時間予測により、予測的にコーディングされてよい。
ビデオエンコーダ(603)は、ITU-T推奨H.265のような所定のビデオコーディング技術又は標準規格に従ってコーディング動作を実行してよい。その動作中に、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間及び空間冗長性を利用する予測コーディング動作を含む様々な圧縮動作を実行してよい。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術又は標準規格によって定められているシンタックスに従い得る。
実施形態において、送信器(640)は、エンコーディングされたビデオとともに追加のデータを送信してもよい。ソースコーダ(630)は、コーディングされたビデオシーケンスの部分としてそのようなデータを含めてよい。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長ピクチャ及びスライスなどの他の形式の冗長データ、SEIメッセージ又はVUIパラメータセットフラグメント、などを有してよい。
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)として捕捉されてよい。イントラピクチャ予測(しばしばイントラ予測と省略される。)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間又は他の)相関を利用する。例において、現在ピクチャ(current picture)と呼ばれる、エンコーディング/デコーディング中の特定のピクチャは、ブロックにパーティション化される。現在ピクチャ内のあるブロックが、ビデオの前にコーディングされて依然としてバッファリングされている参照ピクチャ内の参照ブロックと類似している場合に、現在ピクチャ内のそのブロックは、動きベクトル(motion vector)と呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し示し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する第3の次元を有することができる。
いくつかの実施形態において、双予測技術がインターピクチャ予測において使用され得る。双予測技術に従って、2つの参照ピクチャ、例えば、ビデオ内で現在ピクチャに対してデコーディング順序において両方とも先行する(しかし、表示順序では、夫々、過去及び将来にあってよい。)第1参照ピクチャ及び第2参照ピクチャが、使用される。現在ピクチャ内のあるブロックは、第1参照ピクチャ内の第1参照ブロックを指し示す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指し示す第2動きベクトルとによって、コーディングされ得る。そのブロックは、第1参照ブロック及び第2参照ブロックの組み合わせによって予測可能である。
更に、マージモード技術が、コーディング効率を改善するためにインターピクチャ予測において使用され得る。
本開示のいくつかの実施形態に従って、インターピクチャ予測及びイントラピクチャ予測などの予測は、ブロックの単位で実行される。例えば、HEVC標準規格に従って、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(Coding Tree Unit,CTU)にパーティション化され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルといった同じサイズを有する。一般に、CTUは、1つのルーマCTB及び2つのクロマCTBである3つのコーディングツリーブロック(Coding Tree Block,CTB)を含む。各CTUは、1つ又は複数のコーディングユニット(Coding Unit,CU)に再帰的に四分木分割され得る。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割可能である。例において、各CUは、インター予測タイプ又はイントラ予測タイプなどの、CUに対する予測タイプを決定するよう解析される。CUは、時間及び/又は空間予測可能性に応じて1つ以上の予測ユニット(Prediction Unit,PU)に分割される。一般に、各PUは、1つのルーマ予測ブロック(Prediction Block,PB)及び2つのクロマPBを含む。実施形態において、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例としてルーマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのような、ピクセルの値(例えば、ルーマ値)の行列を含む。
図7は、開示の他の実施形態に従うビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャの連続に含まれる現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャへと処理ブロックをエンコーディングするよう構成される。例において、ビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用される。
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどのような処理ブロックのサンプル値の行列を受け取る。ビデオエンコーダ(703)は、例えば、レートひずみ最適化を用いて、処理ブロックがイントラモード、インターモード、又は双予測モードにより最も良くコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされるべきである場合には、ビデオエンコーダ(703)は、コーディングされたピクチャへと処理ブロックをエンコーディングするためにイントラ予測技術を使用してよく、処理ブロックがインターモード又は双予測モードでコーディングされるべきである場合には、ビデオエンコーダ(703)は、コーディングされたピクチャへと処理ブロックをエンコーディングするためにインター予測又は双予測技術を夫々使用してよい。特定のビデオコーディング技術において、マージモードは、予測子の外にあるコーディングされた動きベクトル成分の恩恵を受けずに1つ以上の動きベクトル予測子から動きベクトルが導出されるインターピクチャ予測サブモードであることができる。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在する場合がある。例において、ビデオエンコーダ(703)は、処理ブロックのモードを決定するモード決定モジュール(図示せず。)などの他のコンポーネントを含む。
図7の例では、ビデオエンコーダ(703)は、図7に示されるように結合されているインターエンコーダ(730)、イントラエンコーダ(722)、残差計算部(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、及びエントロピエンコーダ(725)を含む。
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術に従う冗長情報の記述、動きベクトル、マージモード情報)を生成し、何らかの適切な技術を用いてインター予測情報に基づいてインター予測結果(例えば、予測されたブロック)を計算するよう構成される。いくつかの例において、参照ピクチャは、エンコーディングされたビデオ情報に基づいてデコーディングされているデコーディングされた参照ピクチャである。
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受け取り、いくつかの場合には、同じピクチャ内で既にコーディングされたブロックとそのブロックを比較し、変換後の量子化された係数を、更には、いくつかの場合には、イントラ予測情報(例えば、1つ以上のイントラエンコーディング技術に従うイントラ予測方向情報)も生成するよう構成される。例において、イントラエンコーダ(722)はまた、イントラ予測情報及び同じピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)を計算する。
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するよう構成される。例において、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(726)へ供給する。例えば、モードがイントラモードである場合には、汎用コントローラ(721)は、残差計算部(723)による使用のためにイントラモード結果を選択するようスイッチ(726)を制御し、そして、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピエンコーダ(725)を制御する。モードがインターモードである場合には、汎用コントローラ(721)は、残差計算部(723)による使用のためにインター予測結果を選択するようスイッチ(726)を制御し、そして、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピエンコーダ(725)を制御する。
残差計算部(723)は、受け取られたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との間の差(残差データ)を計算するよう構成される。残差エンコーダ(724)は、残差データをエンコーディングして変換係数を生成するために残差データに基づき動作するよう構成される。例において、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するよう構成される。次いで、変換係数は、量子化された変換係数を取得するよう量子化処理を受ける。様々な実施形態において、ビデオエンコーダ(703)はまた、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、デコーディングされた残差データを生成するよう構成される。デコーディングされた残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって適切に使用され得る。例えば、インターエンコーダ(730)は、デコーディングされた残差データ及びインター予測情報に基づいて、デコーディングされたブロックを生成することができ、イントラエンコーダ(722)は、デコーディングされた残差データ及びイントラ予測情報に基づいて、デコーディングされたブロックを生成することができる。デコーディングされたブロックは、デコーディングされたピクチャを生成するよう適切に処理され、デコーディングされたピクチャは、メモリ回路(図示せず。)にバッファリングされ、いくつかの例では参照ピクチャとして使用され得る。
エントロピエンコーダ(725)は、エンコーディングされたブロックを含めるようにビットストリームをフォーマット化するよう構成される。エントロピエンコーダ(725)は、HEVC標準規格などの適切な標準規格に従って様々な情報を含めるよう構成される。例において、エントロピエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の適切な情報をビットストリームに含めるよう構成される。開示されている対象に従って、インターモード又は双予測モードのどちらか一方のマージサブモードでブロックをコーディングする場合に、残差情報は存在しない点に留意されたい。
図8は、開示の他の実施形態に従うビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの部分であるコーディングされたピクチャを受け取り、コーディングされたピクチャをデコーディングして、再構成されたピクチャを生成するよう構成される。例において、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用される。
図8の例では、ビデオデコーダ(810)は、図8に示されるように結合されているエントロピデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)を含む。
エントロピデコーダ(871)は、コーディングされたピクチャから、シンタックス要素を表す特定のシンボルを再構成するよう構成され得、それらから、コーディングされたピクチャは構成されている。かようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、又はマージサブモード若しくは他のサブモードにおけるインターモード若しくは双予測モード)、イントラデコーダ(872)又はインターデコーダ(880)による予測のために夫々使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば、量子化された変換係数の形をとる残差情報、などを含むことができる。例において、予測モードがインター又は双予測モードである場合には、インター予測情報がインターデコーダ(880)へ供給され、予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(872)へ供給される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)へ供給される。
インターデコーダ(880)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するよう構成される。
イントラデコーダ(872)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するよう構成される。
残差デコーダ(873)は、逆量子化された変換係数を取り出すように逆量子化を実行し、逆量子化された変換係数を処理して、残差を周波数領域から空間領域に変換するよう構成される。残差デコーダ(873)はまた、(量子化パラメータ(QP)を含めるための)特定の制御情報を要求してもよく、その情報は、エントロピデコーダ(871)によって供給されてよい(これは低容量の制御情報のみであるということで、データパスは示されない。)。
再構成モジュール(874)は、残差デコーダ(873)によって出力された残差と、(場合によっては、インター又はイントラ予測モジュールによって出力された)予測結果とを空間領域において組み合わせて、再構成されたブロックを形成するよう構成される。再構成されたブロックは、再構成されたピクチャの部分であってよく、次いで、再構成されたピクチャは、再構成されたビデオの部分であってよい。なお、デブロッキング動作などのような他の適切な動作が、視覚品質を改善するために実行されてもよい。
なお、ビデオエンコーダ(403)、(603)及び(703)並びにビデオデコーダ(410)、(510)及び(810)は、如何なる適切な技術によっても実装可能である。実施形態において、ビデオエンコーダ(403)、(603)及び(703)並びにビデオデコーダ(410)、(510)及び(810)は、1つ以上の集積回路を用いて実装可能である。他の実施形態では、ビデオエンコーダ(403)、(603)及び(703)並びにビデオデコーダ(410)、(510)及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装可能である。
II.ニューラルネットワークに基づいたビデオコーディング
本開示は、人工知能(artificial intelligence,AI)に基づいたニューラル画像圧縮(neural image compression,NIC)などのニューラル画像圧縮技術及び/又はニューラルビデオ圧縮技術に関するビデオコーディング技術について記載する。本開示の側面には、ニューラルネットワークに基づいたエンド・ツー・エンド(E2E)最適化画像コーディングフレームワークのためのNIC方法などのNICでのコンテンツ適応型のオンライン訓練が含まれる。ニューラルネットワーク(neural network,NN)は、ディープニューラルネットワーク(deep neural network,DNN)、畳み込みニューラルネットワーク(convolution neural network,CNN)などのような人工ニューラルネットワーク(artificial neural network,ANN)を含むことができる。
実施形態において、関連するハイブリッドビデオコーデックは、全体として最適化されるのが困難である。例えば、ハイブリッドビデオコーデックにおける単一のモジュール(例えば、エンコーダ)の改善は、全体の性能におけるコーディング利得をもたらさない場合がある。NNベースのビデオコーディングフレームワークでは、異なるモジュールが、学習プロセス又は訓練プロセス(例えば、機械学習プロセス)を実行して、E2E最適化NICをもたらすことによって、最終的な目標を改善するよう入力から出力まで一緒に最適化され得る。
例示的なNICフレームワーク又はシステムは、次のように記載され得る。NICフレームワークは、例えば、記憶及び伝送を目的として、圧縮することができる圧縮表現(例えば、コンパクト表現)
(外1)
(“ハット付きx”)を計算すためにニューラルネットワークエンコーダ(例えば、DNNなどのニューラルネットワークに基づいたエンコーダ)への入力として入力画像xを使用することができる。ニューラルネットワークデコーダ(例えば、DNNなどのニューラルネットワークに基づいたデコーダ)は、出力画像(再構成された画像とも呼ばれる。)
(外2)
(“バーx”)を再構成するために入力として圧縮表現“ハット付きx”を使用することができる。様々な実施形態において、入力画像及び再構成画像“バーx”は、空間領域にあり、圧縮表現“ハット付きx”は、空間領域とは異なる領域にある。いくつかの例では、圧縮表現“ハット付きx”は量子化及びエントロピコーディングされる。
いくつかの例で、NICフレームワークは変分オートエンコーダ(variational autoencoder,VAE)構造を使用することができる。VAE構造で、ニューラルネットワークエンコーダは、ニューラルネットワークエンコーダへの入力として入力画像x全体を直接に使用することができる。入力画像x全体は、圧縮表現“ハット付きx”を計算するためにブラックボックスとして作動するニューラルネットワーク層の組を通ることができる。圧縮表現“ハット付きx”は、ニューラルネットワークエンコーダの出力である。ニューラルネットワークデコーダは、圧縮表現“ハット付きx”全体を入力としてとることができる。圧縮表現“ハット付きx”は、再構成画像“バーx”を計算するために他のブラックボックスとして作動するニューラルネットワーク層の他の組を通ることができる。レートひずみ(rate-distortion,R-D)損失
(外3)
は、再構成画像“バーx”のひずみ損失
(外4)
とコンパクト表現“ハット付きx”のビット消費Rとの間のトレードオフを達成するよう、トレードオフハイパーパラメータλにより最適化され得る。
ニューラルネットワーク(例えば、ANN)は、タスク特有のプログラミングなしで、例から、タスクを実行することを学習可能である。ANNは、連結ノード又は人工ニューロンにより構成され得る。ノード間の接続は、第1ノードから第2ノード(受信ノード)へ信号を送信することができ、信号は、連結のための重み係数によって示され得る重みによって変更可能である。受信ノードは、信号を受信ノードへ送信するノードからの信号(つまり、受信ノードにとっての入力信号)を処理し、次いで、関数を入力信号に適用することによって出力信号を生成することができる。関数は線形関数であることができる。例において、出力信号は、入力信号の加重和である。例において、出力信号は、バイアス項によって示され得るバイアスによって更に変更されるので、出力信号は、バイアスと入力信号の加重和との和である。関数は、例えば、バイアスと入力信号の加重和との和又は加重和に対する非線形演算を含むことができる。出力信号は、受信ノードへ接続されているノード(下流ノード)へ送られ得る。ANNは、パラメータ(例えば、連結の重み、及び/又はバイアス)によって表現又は構成され得る。重み及び/又はバイアスは、重み及び/又はバイアスが繰り返し調整され得る例によりANNを訓練することによって、取得可能である。決定された重み及び/又は決定されたバイアスにより設定された訓練されたANNは、タスクを実行するために使用され得る。
ANN内のノードは、如何なる適切なアーキテクチャでも体系づけられ得る。様々な実施形態において、ANN内のノードは、ANNへの入力信号を受信する入力層と、ANNからの出力信号を出力する出力層とを含む層で体系づけられる。実施形態において、ANNは、入力層と出力層との間の隠れ層などの層を更に含む。異なる層は、異なる層の各々の入力に対して異なる種類の変換を実行し得る。信号は入力層から出力層へ移動することができる。
入力層と出力層との間に複数の層を有するANNは、DNNと呼ばれ得る。実施形態において、DNNは、ループバック無しで入力層から出力層へデータが流れるフィードフォワードネットワークである。例において、DNNは、1つの層の各ノードが次の層の全てのノードへ連結される全結合ネットワークである。実施形態において、DNNは、如何なる方向でのデータが流れることができる回帰型ニューラルネットワーク(recurrent neural network,RNN)である。
CNNは、入力層、出力層、及び入力層と出力層との間の隠れ層を含むことができる。隠れ層は、二次元(2D)畳み込みなどの畳み込みを実行する畳み込み層(例えば、エンコーダで使用される。)を含むことができる。実施形態において、畳み込み層で実行される2D畳み込みは、畳み込みカーネル(フィルタ又はチャネルとも呼ばれ、例えば、5×5行列である。)と畳み込み層への入力信号(例えば、2D画像などの2D行列であり、例えば、256×256行列である。)との間にある。様々な例で、畳み込みカーネルお次元(例えば、5×5)は、入力信号の次元(256×256)よりも小さい。よって、畳み込みカーネルによってカバーされる入力信号(例えば、256×256行列)の一部(例えば、5×5エリア)は、入力信号のエリア(例えば、256×256エリア)よりも小さいので、次の層の各々のノードでの受容野(receptive field)と呼ばれ得る。
畳み込み中、畳み込みカーネルと入力信号の対応する受容野とのドット積が計算される。よって、畳み込みカーネルの各要素は、受容野の対応するサンプルに適用される重みであるから、畳み込みカーネルは重みを含む。例えば、5×5行列によって表現される畳み込みカーネルは、25個の重みを有する。いくつかの例では、バイアスは畳み込み層の出力信号に適用され、出力信号はドット積とバイアスとの和に基づく。
畳み込みカーネルは、ストライドと呼ばれるサイズによって入力信号(例えば、2D行列)に沿ってシフトすることができ、このようにして、畳み込み演算は、特徴マップ又は活性化マップ(例えば、他の2D行列)を生成し、次いで、特徴マップ又は活性化マップは、CNN内の次の層の入力に寄与する。例えば、入力信号は、256×256個のサンプルを有する2D画像であり、ストライドは2サンプル(例えば、2のストライド)である。2のストライドについては、畳み込みカーネルは、X方向(例えば、水平方向)及び/又はY方向(例えば、垂直方向)に沿って2サンプルだけシフトする。
複数の畳み込みカーネルが、複数の特徴マップを夫々生成するために入力信号に同じ畳み込み層で適用され得る。このとき、各特徴マップは、入力信号の特定の特徴を表すことができる。一般に、N個のチャネル(つまり、N個の畳み込みカーネル)を有し、各畳み込みカーネルがM×M個のサンプルを有する畳み込み層と、ストライドSとは、Conv:MxM cN sSと指定され得る。例えば、192個のチャネルを有し、各畳み込みカーネルが5×5個のサンプルを有する畳み込み層と、2のストライドとは、Conv:5x5 c192 s2と指定される。隠れ層は、2D逆畳み込みなどの逆畳み込みを実行する逆畳み込み層(例えば、デコーダで使用される。)を含むことができる。逆畳み込みは、畳み込みの逆である。192個のチャネルを有し、各逆畳み込みカーネルが5×5個のサンプルを有する逆畳み込み層と、2のストライドとは、DeConv:5x5 c192 s2と指定される。
様々な実施形態において、CNNには次の利点がある。CNNの学習可能なパラメータ(つまり、訓練されるべきパラメータ)の数は、フィードフォワードDNNなどのDNNの学習可能なパラメータ数よりも大幅に少なくなる。CNNでは、比較的に多数のノードが同じフィルタ(例えば、同じ重み)及び同じバイアス(バイアスが使用される場合)を共有することができるので、メモリフットプリントは、同じフィルタを共有する全ての受容野にわたって単一のバイアス及び重みの単一のベクトルが使用可能であるから、小さくされ得る。例えば、入力信号が100×100個のサンプルを有する場合に、畳み込みカーネルが5×5個のサンプルを有する畳み込み層は、25個の学習可能なパラメータ(例えば、重み)を有する。バイアスが使用される場合に、1つのチャネルは26個の学習可能なパラメータ(例えば、25個の重みと1つのバイアス)を使用する。畳み込み層がN個のチャネルを有する場合に、学習可能なパラメータの合計は26×N個である。他方でDNN内の全結合層については、100×100(つまり、10000)個の重みが、次の層の各ノードに使用される。次の層がL個のノードを有する場合に、学習可能なパラメータの合計は10000×L個である。
CNNは、プーリング層1つの層のあらゆるノードを他の層のあらゆるノードへ連結することができる全結合層、正規化層、及び/又は同様のもの、のような1つ以上の他の層を更に含むことができる。CNN内の層は、如何なる適切な順序でも、如何なる適切なアーキテクチャ(例えば、フィードフォワードアーキテクチャ、回帰型アーキテクチャ)でも配置可能である。例において、畳み込み層は、プーリング層、全結合層、正規化層、及び/又は同様のものが後に続く。
プーリング層は、1つの層の複数のノードからの出力を次の層の単一のノードに結合することによって、データの次元を削減するために使用され得る。入力として特徴マップを有するプーリング層のプーリング動作は、以下で説明される。説明は、他の入力信号に適切に適応可能である。特徴マップは、サブ領域(例えば、長方形サブ領域)に分割可能であり、各々のサブ領域内の特徴は、例えば、平均プーリング(average pooling)における平均値又は最大値プーリング(max pooling)における最大値をとることによって、独立して単一の値にダウンサンプリング可能である。
プーリング層は、局所的プーリング(local pooling)、大域的プーリング(global pooling)、最大値プーリング、平均プーリング、及び/又は同様のものを実行することができる。プーリングは、非線形ダウンサンプリングの一種である。局所的プーリングは、特徴マップ内の少数のノード(例えば、2×2個のノードといった、ノードの局所クラスタ)を結合する。大域的プーリングは、例えば、特徴マップの全てのノードを結合することができる。
プーリング層は、表現のサイズを低減することができるので、パラメータの数、メモリフットプリント、及びCNNでの計算の量を低減することができる。例において、プーリング層は、CNN内の連続した畳み込み層の間に挿入される。例において、プーリング層は、正規化線形ユニット(rectified linear unit、ReLU)層などの活性化関数が後に続く。例において、プーリング層は、CNN内の連続した畳み込み層の間で省略される。
正規化層はReLU、Leaky ReLU、一般化分割正規化(generalized divisive normalization,GDN)、逆GDN(IGDN)、などであることができる。ReLUは、負値をゼロにセットすることによって特徴マップなどの入力信号から負値を除くよう非飽和活性化関数を適用することができる。Leaky ReLUは、平らな傾き(例えば、0)の代わりに負値に対して小さい傾き(例えば、0.01)を有することができる。従って、値xが0よりも大きい場合には、Leaky ReLUからの出力はxである。そうでない場合には、Leaky ReLUからの出力は、値xに小さい傾き(例えば、0.01)を乗じたものである。例において、傾きは、訓練の前に決定されるので、訓練中は学習されない。
図9は、本開示の実施形態に従う例示的なNICフレームワーク(900)(例えば、NICシステム)を示す。NICフレームワーク(900)は、DNN及び/又はCNNなどのニューラルネットワークに基づくことができる。NICフレームワーク(900)は、画像を圧縮(例えば、エンコーディング)し、また、圧縮された画像(例えば、エンコーディングされた画像)を圧縮解除(例えば、デコーディング又は再構成)するために使用され得る。NICフレームワーク(900)は、2つのサブニューラルネットワーク、すなわち、ニューラルネットワークを用いて実装される第1サブNN(951)及び第2サブNN(953)を含むことができる。
第1サブNN(951)は、オートエンコーダのようなものであることができ、入力画像の圧縮画像“ハット付きx”を生成し、また、圧縮画像“ハット付きx”を圧縮解除して再構成画像“バーx”を取得するよう訓練され得る。第1サブNN(951)は、メインエンコーダニューラルネットワーク(又はメインエンコーダネットワーク)(911)、量子化器(912)、エントロピエンコーダ(913)、エントロピデコーダ(914)、及びメインデコーダニューラルネットワーク(又はメインデコーダネットワーク)(915)などの複数のコンポーネント(又はモジュール)を含むことができる。図9を参照すると、メインエンコーダネットワーク(911)は、入力画像x(例えば、圧縮又はエンコーディングされる画像)からレイテント又はレイテント表現yを生成することができる。例において、メインエンコーダネットワーク(911)は、CNNを用いて実装される。レイテント表現yと入力画像xとの間の関係は、式2を用いて記述可能である。
y=f1(x;θ1) 式2
ここで、パラメータθ1は、メインエンコーダネットワーク(911)の畳み込みカーネルで使用される重み、及びバイアス(バイアスがメインエンコーダネットワーク(911)で使用される場合)などの、パラメータを表す。
レイテント表現yは、量子化されたレイテント
(外5)
(“ハット付きy”)を生成するために量子化器(912)を用いて量子化され得る。量子化されたレイテント“ハット付きy”は、入力画像xの圧縮表現“ハット付きx”である圧縮された画像(例えば、エンコーディングされ画像)
(外6)
を生成するために、例えば、エントロピエンコーダ(913)による不可逆圧縮を用いて、圧縮され得る。エントロピエンコーダ(913)は、ハフマンコーディング、算術コーディング、などのようなエントロピコーディング技術を使用することができる。例において、エントロピエンコーダ(913)は算術エンコーディングを使用し、算術エンコーダである。例において、エンコーディングされた画像(931)は、コーディングされたビットストリームで伝送される。
エンコーディングされた画像(931)は、出力を生成するようエントロピデコーダ(914)によって圧縮解除(例えば、エントロピデコーディング)され得る。エントロピデコーダ(914)は、エントロピエンコーダ(913)で使用されるエントロピエンコーディング技術に対応する、ハフマンコーディング、算術コーディング、などのようなエントロピコーディング技術を使用することができる。例において、エントロピデコーダ(914)は算術デコーディングを使用し、算術デコーダである。例において、不可逆圧縮がエントロピエンコーダ(913)で使用され、不可逆圧縮解除がエントロピデコーダ(914)で使用され、例えば、エンコーディングされた画像(931)の伝送による、ノイズは省くことができ、エントロピデコーダ(914)からの出力は、量子化されたレイテント“ハット付きy”である。
メインデコーダネットワーク(915)は、再構成された画像“バーx”を生成するよう、量子化されたレイテント“ハット付きy”をデコーディングすることができる。例において、メインデコーダネットワーク(915)は、CNNを用いて実装される。再構成された画像“バーx”(すなわち、メインデコーダネットワーク(915)の出力)と量子化されたレイテント“ハット付きy”(すなわち、メインデコーダネットワーク(915)の入力)との間の関係は、式3を用いて記述可能である。
ここで、パラメータθ
2は、メインデコーダネットワーク(915)の畳み込みカーネルで使用される重み、及びバイアス(バイアスがメインデコーダネットワーク(915)で使用される場合)などの、パラメータを表す。よって、第1サブNN(951)は、入力画像xを圧縮(例えば、エンコーディング)して、エンコーディングされた画像(931)を取得し、また、エンコーディングされた画像(931)を圧縮解除(例えば、デコーディング)して、再構成された画像“バーx”を取得することができる。再構成された画像“バーx”は、量子化器(912)によって導入された量子化損失に起因して、入力画像xとは異なる可能性がある。
第2サブNN(952)は、エントロピコーディングのために使用される量子化されたレイテント“ハット付きy”に対するエントロピモデル(例えば、事前確率モデル(prior probabilistic model))を学習することができる。よって、エントロピモデルは、条件付きエントロピモデル、例えば、混合ガウスモデル(Gaussian mixture model,GMM)や、入力画像xに依存するガウススケールモデル(Gaussian scale model,GSM)であることができる。第2サブNN(952)は、コンテキストモデルNN(916)、エントロピパラメータNN(917)、ハイパーエンコーダ(921)、量子化器(922)、エントロピエンコーダ(923)、エントロピデコーダ(924)、及びハイパーデコーダ(925)を含むことができる。コンテキストモデルNN(916)で使用されるエントロピモデルは、レイテント(例えば、量子化されたレイテント“ハット付きy”)に対する自己回帰モデル(autoregressive model)であることができる。例において、ハイパーエンコーダ(921)、量子化器(922)、エントロピエンコーダ(923)、エントロピデコーダ(924)、及びハイパーデコーダ(925)は、ハイパーニューラルネットワーク(例えば、ハイパープライアNN)を形成する。ハイパーニューラルネットワークは、コンテキストに基づいた予測を正すのに有用な情報を表すことができる。コンテキストモデルNN(916)及びハイパーニューラルネットワークからのデータは、エントロピパラメータNN(917)によって結合され得る。エントロピパラメータNN(917)は、条件付きガウスエントロピモデル(例えば、GMM)などのエントロピモデルのための平均及びスケールパラメータなどのパラメータを生成することができる。
図9を参照すると、エンコーダ側で、量子化器(912)からの量子化されたレイテント“ハット付きy”は、コンテキストモデルNN(916)に供給される。デコーダ側で、エントロピデコーダ(914)からの量子化されたレイテント“ハット付きy”は、コンテキストモデルNN(916)に供給される。コンテキストモデルNN(916)は、CNNなどのニューラルネットワークを用いて実装され得る。コンテキストモデルNN(916)は、コンテキストモデルNN(916)が利用できる量子化されたレイテント“ハット付きy”であるコンテキスト
(外7)
(“ハット付きy
<i”)に基づき、出力o
cm,iを生成することができる。コンテキスト“ハット付きy
<i”は、エンコーダ側での前に量子化されたレイテント、又はデコーダ側での前にエントロピデコーディングされた量子化されたレイテントを含むことができる。出力o
cm,iとコンテキストモデルNN(916)の入力(例えば、“ハット付きy
<i”)との間の関係は、式4を用いて記述可能である。
ここで、パラメータθ
3は、コンテキストモデルNN(916)の畳み込みカーネルで使用される重み、及びバイアス(バイアスがコンテキストモデルNN(916)で使用される場合)などの、パラメータを表す。
コンテキストモデルNN(916)からの出力ocm,i及びハイパーデコーダ(925)からの出力ohcは、出力epを生成するようエントロピパラメータNN(917)に供給される。エントロピパラメータNN(917)は、CNNなどのニューラルネットワークを用いて実装され得る。出力oepとエントロピパラメータNN(917)の入力(例えばocm,i及びohc)との間の関係は、式5を用いて記述可能である。
oep=f4(ocm,i,ohc;θ4) 式5
ここで、パラメータθ4は、エントロピパラメータNN(917)の畳み込みカーネルで使用される重み、及びバイアス(バイアスがエントロピパラメータNN(917)で使用される場合)などの、パラメータを表す。エントロピパラメータNN(917)の出力oepは、エントロピモデルを決定する(例えば、条件付ける)際に使用可能であるから、条件付きエントロピモデルは、例えば、ハイパーデコーダ(925)からの出力ohcを介して、入力画像xに依存することができる。例において、出力oepは、エントロピモデル(例えば、GMM)を条件付けるために使用される平均及びスケールパラメータなどのパラメータを含む。図9を参照すると、エントロピモデル(例えば、条件付きエントロピモデル)は、エントロピコーディング及びエントロピデコーディングにおいて夫々、エントロピエンコーダ(913)及びエントロピデコーダ(914)によって用いられ得る。
第2サブNN(952)は、以下で説明され得る。レイテントyは、ハイパーレイテントzを生成するためにハイパーエンコーダ(921)に供給され得る。例において、ハイパーエンコーダ(921)は、CNNなどのニューラルネットワークを用いて実装される。ハイパーレイテントzとレイテントyとの間の関係は、式6を用いて記述可能である。
z=f5(y;θ5) 式6
ここで、パラメータθ5は、ハイパーエンコーダ(921)の畳み込みカーネルで使用される重み、及びバイアス(バイアスがハイパーエンコーダ(921)で使用される場合)などの、パラメータを表す。
ハイパーレイテントzは、量子化されたレイテント
(外8)
(“ハット付きz”)を生成するよう量子化器(922)によって量子化される。量子化されたレイテント“ハット付きz”は、ハイパーニューラルネットワークからのエンコーディングされたビット(932)などのサイド情報を生成するよう、例えば、エントロピエンコーダ(923)による不可逆圧縮を用いて、圧縮され得る。エントロピエンコーダ(923)は、ハフマンコーディング、算術コーディング、などのようなエントロピコーディング技術を使用することができる。例において、エントロピエンコーダ(923)は算術エンコーディングを使用し、算術エンコーダである。例において、エンコーディングされたビット(932)などのサイド情報は、例えば、エンコーディングされた画像(931)とともに、コーディングされたビットストリームで伝送され得る。
エンコーディングされたビット(932)などのサイド情報は、出力を生成するようエントロピデコーダ(924)によって圧縮解除(例えば、エントロピデコーディング)され得る。エントロピデコーダ(924)は、ハフマンコーディング、算術コーディング、などのようなエントロピコーディング技術を使用することができる。例において、エントロピデコーダ(924)は算術デコーディングを使用し、算術デコーダである。例において、不可逆圧縮がエントロピエンコーダ(923)で使用され、不可逆圧縮解除がエントロピデコーダ(924)で使用され、例えば、サイド情報の伝送による、ノイズは、省くことができ、エントロピデコーダ(924)からの出力は、量子化されたレイテント“ハット付きz”であることができる。ハイパーデコーダ(925)は、出力o
hcを生成するよう、量子化されたレイテント“ハット付きz”をデコーディングすることができる。出力o
hcと量子化されたレイテント“ハット付きz”との間の関係は、式7を用いて記述可能である。
ここで、パラメータθ
6は、ハイパーデコーダ(925)の畳み込みカーネルで使用される重み、及びバイアス(バイアスがハイパーデコーダ(925)で使用される場合)などの、パラメータを表す。
上述されたように、圧縮又はエンコーディングされたビット(932)は、サイド情報として、コーディングされたビットストリームに加えられ得る。これにより、エントロピデコーダ(914)は条件付きエントロピモデルを使用できるようになる。よって、エントロピモデルは、画像に依存し、空間的に適応することができるので、固定エントロピモデルよりも正確であることができる。
NICフレームワーク(900)は、例えば、図9に示されている1つ以上のコンポーネントを省略するよう、図9に示されている1つ以上のコンポーネントを変更するよう、及び/又は図9に示されていない1つ以上のコンポーネントを含めるよう、適切に適応され得る。例において、固定エントロピモデルを使用するNICフレームワークは第1サブNN(951)を含み、第2サブNN(952)を含まない。例において、NICフレームワークは、エントロピエンコーダ(923)及びエントロピデコーダ(924)を除いて、NICフレームワーク(900)のコンポーネントを含む。
実施形態において、図9に示されているNICフレームワーク(900)の1つ以上の他のコンポーネントは、CNNなどのニューラルネットワークを用いて実装される。NICフレームワーク(例えば、NICフレームワーク(900))内の夫々のNNベースのコンポーネント(例えば、メインエンコーダネットワーク(911)、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピパラメータNN(917)、ハイパーエンコーダ(921)、又はハイパーデコーダ(925))は、如何なる適切なアーキテクチャも含むことができ(例えば、如何なる適切な組み合わせの層も有することができ)、如何なる適切なタイプのパラメータ(例えば、重み、バイアス、重みとバイアスとの組み合わせ、及び/又は同様のもの)も含むことができ、如何なる適切な数のパラメータも含むことができる。
実施形態において、メインエンコーダネットワーク(911)、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピパラメータNN(917)、ハイパーエンコーダ(921)、及びハイパーデコーダ(925)は、各々のCNNを用いて実装される。
図10は、本開示の実施形態に従うメインエンコーダネットワーク(911)の例示的なCNNを示す。例えば、メインエンコーダネットワーク(911)は、4組の層を含み、層の各組は、GND層が後に続く畳み込み層5×5 c192 s2を含む。図10に示される1つ以上の層は変更及び/又は省略され得る。追加の層が、メインエンコーダネットワーク(911)に追加可能である。
図11は、本開示の実施形態に従うメインデコーダネットワーク(915)の例示的なCNNを示す。例えば、メインデコーダネットワーク(915)は、3組の層を含み、層の各組は、IGND層が後に続く逆畳み込み層5×5 c192 s2を含む。更に、3組の層の後には、逆畳み込み層5×5 c3 s2が続き、その後にIGDN層が続く。図11に示される1つ以上の層は変更及び/又は省略され得る。追加の層が、メインデコーダネットワーク(915)に追加可能である。
図12は、本開示の実施形態に従うハイパーエンコーダ(921)の例示的なCNNを示す。例えば、ハイパーエンコーダ(921)は、Leaky ReLUが後に続く畳み込み層3×3 c192 s1と、Leaky ReLUが後に続く畳み込み層5×5 c192 s2と、畳み込み層5×5 c192 s2とを含む。図12に示される1つ以上の層は、変更及び/又は省略され得る。追加の層が、ハイパーエンコーダ(921)に追加可能である。
図13は、本開示の実施形態に従うハイパーデコーダ(925)の例示的なCNNを示す。例えば、ハイパーデコーダ(925)は、Leaky ReLUが後に続く逆畳み込み層5×5 c192 s2と、Leaky ReLUが後に続く逆畳み込み層5×5 c188 s2と、逆畳み込み層3×3 c384 s1とを含む。図13に示される1つ以上の層は、変更及び/又は省略され得る。追加の層が、ハイパーデコーダ(925)に追加可能である。
図14は、本開示の実施形態に従うコンテキストモデルNN(916)の例示的なCNNを示す。例えば、コンテキストモデルNN(916)は、コンテキスト予測のためのマスク付き畳み込み(masked convolution)5×5 c384 s1を含むので、式4のコンテキスト“ハット付きy<i”は有限なコンテキスト(例えば、5×5畳み込みカーネル)を含む。図14の畳み込み層は変更可能である。追加の層が、コンテキストモデルNN(916)に追加可能である。
図15は、本開示の実施形態に従うエントロピパラメータNN(917)の例示的なCNNを示す。例えば、エントロピパラメータNN(917)は、Leaky ReLUが後に続く畳み込み層1×1 c640 s1と、Leaky ReLUが後に続く畳み込み層1×1 c512 s1と、畳み込み層1×1 c384 s1とを含む。図15に示される1つ以上の層は、変更及び/又は省略され得る。追加の層が、エントロピパラメータNN(917)に追加可能である。
NICフレームワーク(900)は、図10~15を参照して説明されているCNNを用いて実装可能である。NICフレームワーク(900)は、NICフレームワーク(900)の1つ以上のコンポーネント(例えば、(911)、(915)、(916)、(917)、(921)、及び/又は(925))が如何なる適切なタイプのニューラルネットワーク(例えば、CNN又は非CNNベースのニューラルネットワーク)を用いても実装されるように、適切に適応され得る。NICフレームワーク(900)の1つ以上の他のコンポーネントは、ニューラルネットワークを用いて実装され得る。
ニューラルネットワーク(例えば、CNN)を含むNICフレームワーク(900)は、ニューラルネットワークで使用されるパラメータを学習するよう訓練され得る。例えば、CNNが使用される場合に、メインエンコーダネットワーク(911)の畳み込みカーネルで使用される重み及びバイアス(バイアスがメインエンコーダネットワーク(911)で使用される場合)、メインデコーダネットワーク(915)の畳み込みカーネルで使用される重み及びバイアス(バイアスがメインデコーダネットワーク(915)で使用される場合)、ハイパーエンコーダ(921)の畳み込みカーネルで使用される重み及びバイアス(バイアスがハイパーエンコーダ(921)で使用される場合)、ハイパーデコーダ(925)の畳み込みカーネルで使用される重み及びバイアス(バイアスがハイパーデコーダ(925)で使用される場合)、コンテキストモデルNN(916)の畳み込みカーネルで使用される重み及びバイアス(バイアスがコンテキストモデルNN(916)で使用される場合)、並びにエントロピパラメータNN(917)の畳み込みカーネルで使用される重み及びバイアス(バイアスがエントロピパラメータNN(917)で使用される場合)、などの、夫々θ1~θ6によって表されるパラメータは、訓練プロセスで学習され得る。
例において、図10を参照すると、メインエンコーダネットワーク(911)は4つの畳み込み層を含み、各畳み込み層は、5×5の畳み込みカーネル及び192個のチャネルを有する。よって、メインエンコーダネットワーク(911)の畳み込みカーネルで静養される重みの数は19200(つまり、4×5×5×192)である。メインエンコーダネットワーク(911)で使用されるパラメータは19200個の重み及び任意のバイアスを含む。バイアス及び/又は追加のNNがメインエンコーダネットワーク(911)で使用される場合には、追加のパラメータが含まれ得る。
図9を参照すると、NICフレームワーク(900)は、ニューラルネットワークで構築された少なくとも1つのコンポーネント又はモジュールを含む。少なくとも1つのコンポーネントは、メインエンコーダネットワーク(911)、メインデコーダネットワーク(915)、ハイパーエンコーダ(921)、ハイパーデコーダ(925)、コンテキストモデルNN(916)、及びエントロピパラメータNN(917)のうちの1つ以上を含むことができる。少なくとも1つのコンポーネントは個々に訓練可能である。例において、訓練プロセスは、コンポーネントごとに別々にパラメータを学習するために使用される。少なくとも1つのコンポーネントは、グループとして一緒に訓練可能である。例において、訓練プロセスは、少なくとも1つのコンポーネントのサブセットについて一緒にパラメータを学習するために使用される。例において、訓練プロセスは、少なくとも1つのコンポーネントの全てについてパラメータを学習するために使用され、よって、E2E最適化と呼ばれる。
NICフレームワーク(900)内の1つ以上のコンポーネントのための訓練プロセスでは、1つ以上のコンポーネントの重み(又は重み係数)は初期化され得る。例において、重みは、事前学習済みの対応するニューラルネットワークモデル(例えば、DNNモデル、CNNモデル)に基づき初期化される。例において、重みは、重みを乱数にセットすることによって初期化される。
例えば、重みが初期化された後で、訓練画像の組が、1つ以上のコンポーネントを訓練するために用いられ得る。訓練画像の組は、任意の適切なサイズを有している如何なる適切な画像も含むことができる。いくつかの例において、訓練画像の組は、空間領域内にあるロー(raw)画像、自然画像、コンピュータにより生成された画像、及び/又は同様のものを含む。いくつかの例において、訓練画像の組は、空間領域内の残差データを有する残留画像を含む。残差データは、残差計算部(例えば、残差計算部(723))によって計算される。いくつかの例において、訓練画像の組に含まれる訓練画像(例えば、ロー画像及び/又は残差データを含む残留画像)は、適切なサイズを有するブロックに分割され得、ブロック及び/又は画像は、NICフレームワークのニューラルネットワークを訓練するために使用され得る。よって、ロー画像、残留画像、ロー画像からのブロック、及び/又は残留画像からのブロックは、NICフレームワークのニューラルネットワークを訓練するために使用され得る。
簡潔さのために、以下の訓練プロセスは、例として訓練画像を用いて説明される。説明は、訓練ブロックに適切に適応され得る。訓練画像の組の訓練画像tは、圧縮表現(例えば、ビットストリームに対するエンコーディングされた情報)を生成するために、図9のエンコーディングプロセスを通され得る。エンコーディングされた情報は、再構成画像
(外9)
(“バーt”)を計算及び再構成するために、図9で説明されたデコーディングプロセスを通され得る。
NICフレームワーク(900)については、2つの矛盾する目標、例えば、再構成品質とビット計算、がバランスをとられている。品質損失関数(例えば、ひずみ又はひずみ損失)
(外10)
は、再構成(例えば、再構成画像“バーt”)と原画像(例えば、訓練画像t)との間の差などの再構成品質を示すために使用され得る。レート(又はレート損失)Rは、圧縮表現のビット消費を示すために使用され得る。例において、レート損失Rは、例えば、コンテキストモデルを決定する際に使用されるサイド情報を更に含む。
ニューラル画像圧縮については、量子化のための微分近似(differentiable approximations)がE2E最適化において使用可能である。様々な例において、ニューラルネットワークに基づいた画像圧縮の訓練プロセスで、ノイズ注入(例えば、ノイズを加えること)が、量子化をシミュレートするために使用され、よって、量子化は、量子化器(例えば、量子化器(912))によって実行されるのではなく、ノイズ注入によってシミュレートされる。例において、ノイズ注入モジュールがノイズ注入を実行することができる。よって、ノイズ注入を伴った訓練は、量子化誤差を変動的に近似することができる。ビット・パー・ピクセル(bits per pixel,BPP)推定器は、エントロピコーダをシミュレートするために使用され得、よって、エントロピコーディングは、エントロピエンコーダ(例えば、(913))及びエントロピデコーダ(例えば、(914))によって実行されるのではなく、BPP推定器によってシミュレートされる。図9を参照すると、NICフレームワーク(900)は、エントロピコーダをシミュレートするための推定器及びノイズ注入が用いられる訓練プロセスで適応され得る。例えば、訓練プロセス中、量子化器(912)、エントロピエンコーダ(913)、及びエントロピデコーダ(914)は、NICフレームワーク(900)において、例えば、ノイズ注入モジュール及びBPP推定器によって夫々置換され得る。
従って、式1で示される損失関数Lのレート損失Rは、訓練プロセス中に、例えば、ノイズ注入及びBPP推定器に基づき、推定可能である。一般に、より高いレートRは、より低いひずみDを可能にすることができ、より低いレートRは、より高いひずみDNNモデルをもたらすことができる。よって、式1のトレードオフハイパーパラメータλは、結合R-D損失Lを最適化するために使用可能であり、λD及びRの和としてのLは、最適化され得る。訓練プロセスは、結合R-D損失Lが最小化又は最適化されるように、NICフレームワーク(900)の1つ以上のコンポーネント(例えば、(911)、(915))のパラメータを調整するために使用され得る。
様々なモデルが、ひずみ損失D及びレート損失Rを決定するために、よって、式1の結合R-D損失Lを決定するために、使用可能である。例において、ひずみ損失
(外11)
は、平均二乗誤差、マルチスケール構造的類似性(multiscale structural similarity,MS-SSIM)品質インデックス、ピーク信号対ノイズ比(peak signal-to-noise ratio,PSNR)及びMS-SSIMの加重結合、などに基づいたメトリックであるPSNRとして表現される。
例において、訓練プロセスの目標は、エンコーダ側で使用されるビデオエンコーダなどのエンコーディングニューラルネットワーク(例えば、エンコーディングDNN)、及びデコーダ側で使用されるビデオデコーダなどのデコーディングニューラルネットワーク(例えば、デコーディングDNN)を訓練することである。例において、図9を参照すると、エンコーディングニューラルネットワークは、メインエンコーダネットワーク(911)、ハイパーエンコーダ(921)、ハイパーデコーダ(925)、コンテキストモデルNN(916)、及びエントロピパラメータNN(917)を含むことができる。デコーディングニューラルネットワークは、メインデコーダネットワーク(915)、ハイパーデコーダ(925)、コンテキストモデルNN(916)、及びエントロピパラメータNN(917)を含むことができる。ビデオエンコーダ及び/又はビデオデコーダは、NNに基づく他のコンポーネント及び/又はNNに基づかない他のコンポーネントを含むことができる。
NICフレームワーク(例えば、NICフレームワーク(900))は、E2E形式で訓練され得る。例において、エンコーディングニューラルネットワーク及びデコーディングニューラルネットワークは、E2E形式で誤差逆伝播法勾配(backpropagated gradient)に基づき訓練プロセスで一緒に更新される。例において、勾配は、NICフレームワークの訓練されるべきパラメータ(例えば、重み及び/又はバイアス)に関してR-D損失の勾配を含む。
NICフレームワーク(900)のニューラルネットワークのパラメータが訓練された後、NICフレームワーク(900)の1つ以上のコンポーネントは、画像をエンコーディング及び/又はデコーディングするために使用され得る。実施形態において、エンコーダ側で、ビデオエンコーダは、入力画像xを、ビットストリームで送信されるエンコーディングされた画像(931)にエンコーディングするよう構成される。ビデオエンコーダは、NICフレームワーク(900)の複数のコンポーネントを含むことができる。実施形態において、デコーダ側で、対応するビデオデコーダは、ビットストリーム内のエンコーディングされた画像を、再構成画像“バーx”にデコーディングするよう構成される。ビデオデコーダは、NICフレームワーク(900)の複数のコンポーネントを含むことができる。
例において、ビデオエンコーダは、例えば、コンテンツ適応型のオンライン訓練が用いられる場合に、NICフレームワーク(900)の全てのコンポーネントを含む。
図16Aは、本開示の実施形態に従う例示的なビデオエンコーダ(1600A)を示す。ビデオエンコーダ(1600A)は、図9を参照して説明されているメインエンコーダネットワーク(911)、量子化器(912)、エントロピエンコーダ(913)、及び第2サブNN(952)を含み、詳細な説明は、簡潔さのために省略される。図16Bは、本開示の実施形態に従う例示的なビデオデコーダ(1600B)を示す。ビデオデコーダ(1600B)は、ビデオエンコーダ(1600A)に対応することができる。ビデオデコーダ(1600B)は、メインデコーダネットワーク(915)、エントロピデコーダ(914)、コンテキストモデルNN(916)、エントロピパラメータNN(917)、エントロピデコーダ(924)、及びハイパーデコーダ(925)を含むことができる。図16A~16Bを参照すると、エンコーダ側で、ビデオエンコーダ(1600A)は、ビットストリームで送信されるエンコーディングされた画像(931)及びエンコーディングされたビット(932)を生成することができる。デコーダ側で、ビデオデコーダ(1600B)は、エンコーディングされた画像(931)及びエンコーディングされたビット(932)を受信しデコーディングすることができる。
図17~18は、本開示の実施形態に従う例示的なビデオエンコーダ(1700)及び対応するビデオデコーダ(1800)を夫々示す。図17を参照すると、エンコーダ(1700)は、メインエンコーダネットワーク(911)、量子化器(912)、及びエントロピエンコーダ(913)を含む。メインエンコーダネットワーク(911)、量子化器(912)、及びエントロピエンコーダ(913)の例は、図9を参照して説明されている。図18を参照ると、ビデオデコーダ(1800)は、メインデコーダネットワーク(915)及びエントロピデコーダ(914)を含む。メインデコーダネットワーク(915)及びエントロピデコーダ(914)の例は、図9を参照して説明されている。図17及び18を参照すると、ビデオエンコーダ(1700)は、ビットストリームで送信されるエンコーディングされた画像(931)を生成することができる。ビデオデコーダ(1800)は、エンコーディングされた画像(931)を受信しデコーディングすることができる。
III.ビデオコーディングにおけるコンテンツ適応オンライン訓練
NICフレームワーク(900)は、CNN、DNN、及び/又は同様のものなどのニューラルネットワークに基づくことができる。例えば、NICフレームワーク(900)の1つ以上のコンポーネント(例えば、メインエンコーダネットワーク(911))はニューラルネットワークを含むことができる。ニューラルネットワークは、重み、バイアス、及び同様のものなどのパラメータによって指定され得る。
上述されたように、ビデオエンコーダ及びビデオデコーダを含むNICフレームワーク(900)は、訓練画像の組に含まれる画像及び/又はブロックに基づき訓練され得る。いくつかの例において、圧縮(例えば、エンコーディング)及び/又は送信される1つ以上の画像は、訓練画像の組とは大きく異なる特性を有している。よって、訓練画像の組に基づいて訓練されたビデオエンコーダ及びビデオデコーダを夫々用いて1つ以上の画像をエンコーディング及びデコーディングすることは、比較的に悪いR-D損失L(例えば、比較的に大きいひずみ及び/又は比較的に大きいビットレート)をもたらす可能性がある。従って、本開示の態様は、NICのためのコンテンツ適応型のオンライン訓練について記載する。
訓練画像の組に基づいた訓練プロセスと、圧縮(例えば、エンコーディング)及び/又は送信される1つ以上の画像に基づいたコンテンツ適応型のオンライン訓練とを区別するために、訓練画像の組によって訓練されているNICフレームワーク(900)、ビデオエンコーダ、及びビデオデコーダは、夫々、事前学習済みNICフレームワーク(900)、事前学習済みビデオエンコーダ、及び事前学習済みビデオデコーダと呼ばれる。事前学習済みNICフレームワーク(900)、事前学習済みビデオエンコーダ、又は事前学習済みビデオデコーダのパラメータは、夫々、NIC事前学習済みパラメータ、エンコーダ事前学習済みパラメータ、及びデコーダ事前学習済みパラメータと呼ばれる。例において、NIC事前学習済みパラメータは、エンコーダ事前学習済みパラメータ及びデコーダ事前学習済みパラメータを含む。例において、エンコーダ事前学習済みパラメータ及びデコーダ事前学習済みパラメータは重なり合わず、このとき、エンコーダ事前学習済みパラメータのどれもデコーダ事前学習済みパラメータに含まれない。例えば、(1700)のエンコーダ事前学習済みパラメータ(例えば、メインエンコーダネットワーク(911)の事前学習済みパラメータ)及び(1800)のデコーダ事前学習済みパラメータ(例えば、メインデコーダネットワーク(915)の事前学習済みパラメータ)は重なり合わない。例において、エンコーダ事前学習済みパラメータ及びデコーダ事前学習済みパラメータは重なり合い、このとき、エンコーダ事前学習済みパラメータの少なくとも1つはデコーダ事前学習済みパラメータに含まれる。例えば、(1600A)のエンコーダ事前学習済みパラメータ(例えば、コンテキストモデルNN(916)の事前学習済みパラメータ)及び(1600B)のデコーダ事前学習済みパラメータ(例えば、コンテキストモデルNN(916)の事前学習済みパラメータ)は重なり合う。NIC事前学習済みパラメータは、訓練画像の組に含まれるブロック及び/又は画像に基づき取得され得る。
コンテンツ適応型のオンライン訓練は、ファインチューニング(finetuning)プロセスと呼ばれることがある。タイプIのコンテンツ適応オンライン訓練プロセスでは、本開示で記載されているコンテンツ適応オンライン訓練プロセスは、スケーリング係数及び/又はオフセットなどの1つ以上の変更パラメータを決定(例えば、訓練)するために実装され得る。1つ以上の変更パラメータの夫々は、NICフレームワーク(900)で使用される事前学習された重みの組、事前学習されたバイアスの組、又は重み及びバイアスの組などのNIC事前学習済みパラメータに含まれる事前学習パラメータの組(例えば、複数の事前学習パラメータ)を変更することができる。事前学習済みパラメータの組は、変更パラメータに基づいて同じ方法を用いて更新され得る。例において、変更パラメータは、事前学習済みパラメータの組を変更するスケーリング係数である。このようにして、置換パラメータの組が、スケーリング係数に基づいて事前学習済みパラメータの組を乗算することによって生成され得る。例えば、事前学習済みパラメータの組は、同じスケーリング係数を乗じられ得る。NICフレームワークの事前学習済みパラメータの組は、NICフレームワークを更新するよう、置換パラメータの組によって夫々置換され得る。
タイプIIのコンテンツ適応オンライン訓練プロセスでは、コンテンツ適応オンライン訓練プロセスは、NIC事前学習済みパラメータの1つ以上の事前学習パラメータを訓練(例えば、更新)するよう実装され得る。1つ以上の事前学習パラメータは、NICフレームワーク(900)で使用される事前学習された重み及び/又は事前学習されたバイアスを含むことができる。1つ以上の事前学習済みパラメータが事前学習済みパラメータの組を含む場合に、事前学習済みパラメータの組は別の方法で更新され得る。
タイプI及びタイプIIの両方のコンテンツ適応オンライン訓練プロセスで、NICフレームワークの1つ以上の事前学習済みパラメータは更新され得るから、NICフレームワークにおいて1つ以上の事前学習済みパラメータにより構成されているニューラルネットワークは更新される。いくつかの例において、例えば、タイプIのコンテンツ適応オンライン訓練プロセスでは、NICフレームワークの1つ以上の事前学習済みパラメータは、変更パラメータを用いて更新され、変更パラメータは、コンテンツ適応オンライン訓練プロセスを用いて訓練される。いくつかの例において、例えば、タイプIIのコンテンツ適応オンライン訓練プロセスでは、NICフレームワークの1つ以上の事前学習済みパラメータは、コンテンツ適応オンライン訓練プロセスを用いて、例えば、変更パラメータ無しで直接に、更新される。
タイプI及び対応IIのコンテンツ適応オンライン訓練プロセスの例が、以下で記載され得る。
A.タイプIのコンテンツ適応オンライン訓練
変更パラメータは、(i)エンコーディングされる1つ以上の画像、又は(ii)エンコーディングされる(画像内の)1つ以上のブロックに基づいて、事前学習済みパラメータの組を変更するよう決定され得る。変更パラメータの決定プロセスも、変更パラメータのファインチューニングプロセスとして扱われ得る。例えば、スケーリング係数の決定プロセスは、“事前学習された”スケーリングパラメータ(例えば、事前学習済みパラメータの組に対する変更がない1のスケーリングパラメータ)からスケーリングパラメータ(例えば、1.1)へのスケーリングパラメータのファインチューニングプロセスとして扱われ得る。オフセットの訓練プロセスは、“事前学習された”オフセット(例えば、事前学習済みパラメータの組に対する変更がない0のオフセット)からオフセット(例えば、0.1)へのオフセットのファインチューニングプロセスとして扱われ得る。
1つ以上の変更パラメータの夫々は、事前学習済みNICフレームワークの事前学習済みパラメータ(例えば、重み及び/又はバイアス)を変更し、よって、事前学習済みNICフレームワークを変更するために、使用され得る。変更パラメータは、事前学習済みパラメータの組を変更することができ、よって、事前学習済みNICフレームワークを変更することができる。変更パラメータは、畳み込みカーネルの要素、畳み込みカーネルの1つ以上の行、及び/又は畳み込みカーネルの1つ以上の列を変更することができる。変更パラメータは、スケーリング係数、オフセット、及び/又は同様のものであることができる。スケーリング係数は、置換パラメータの組を取得するために、事前学習済みパラメータの組にスケーリング係数を乗じることによって事前学習済みパラメータの組を変更することができる。オフセットは、置換パラメータの組を取得するために、オフセットを事前学習済みパラメータの組に加えることによって事前学習済みパラメータの組を変更することができる。置換パラメータの組は、対応するニューラルネットワークの事前学習済みパラメータの組を置換することができる。スケーリング係数は、いくつかの実施形態ではオフセットに適用され得る。
いくつかの例において、比較的に多数のパラメータを変更するために単一の変更パラメータを使用することは、それらの比較的に多数のパラメータに対する同様の変更がコーディング効率の改善をもたらすことができる場合に有利である。
いくつかの実施形態において、1つ以上の変更パラメータ(例えば、スケーリング係数、オフセット)は、畳み込み層の出力である特徴マップを変更するよう適用され得る。変更パラメータは、特徴マップ全体(例えば、要素を含む2D行列)又は特徴マップ内の要素のサブセットを変更することができる。変更パラメータは、特徴マップ内の1つ以上の要素を変更することができる。変更パラメータは、特徴マップの1つ以上の行を変更することができる。変更パラメータは、特徴マップの1つ以上の列を変更することができる。特徴マップは、1つ以上の変更パラメータによって変更され得る。変更パラメータは、1つ以上の特徴マップ又は特徴マップの部分を変更するために使用され得る。
実施形態において、どの特徴マップ(例えば、メインデコーダネットワーク(915)などのNN、NN層、CNNチャネルを含む情報)及び/又は特徴マップのどの部分(例えば、どの要素、行、及び/又は列かを示す情報)が1つ以上の変更パラメータによって変更されるかは、ビットストリームでシグナリングされる。実施形態において、どの特徴マップ及び/又は特徴マップのどの部分が1つ以上の変更パラメータによって変更されるかは、予め決定され、ビデオコーダに知られており、よって、シグナリングされない。
1つ以上の変更パラメータは、エンコーディング及び/又は送信される1つ以上の画像に基づいて決定(例えば、訓練又はファインチューニング)され得る。このとき、1つ以上の画像は、訓練画像の組とは異なってもよい。1つ以上の変更パラメータは、1つ以上の画像に基づき結合R-D損失Lを最適化することによって、訓練され得る。実施形態において、1つ以上の変更パラメータが訓練プロセスによって決定された後、ニューラルネットワーク更新情報が、1つ以上の変更パラメータ又は1つ以上の変更パラメータのサブセットを示すようビットストリーム内にエンコーディングされる。1つ以上の変更パラメータは、事前学習パラメータの1つ以上の組に対応し、事前学習済みパラメータの1つ以上の組は、置換パラメータの1つ以上の組を生成するよう1つ以上の変更パラメータによって変更される。例において、NICフレームワーク(900)は更新(又はファインチューニング)され、事前学習済みパラメータの1つ以上の組は置換パラメータの1つ以上の組によって夫々置換される。
第1シナリオでは、1つ以上の変更パラメータは、1つ以上の変更パラメータの第1サブセットと、1つ以上の変更パラメータの第2サブセットとを含む。1つ以上の変更パラメータの第1サブセットは、事前学習済みパラメータの1つ以上の組の第1サブセットに夫々対応する。1つ以上の変更パラメータの第2サブセットは、事前学習済みパラメータの1つ以上の組の第2サブセットに夫々対応する。第1シナリオでは、事前学習済みパラメータの1つ以上の組の第1サブセットは、事前学習済みビデオエンコーダで使用され、事前学習済みパラメータの1つ以上の組の第2サブセットは、事前学習済みビデオデコーダで使用される。
エンコーダ側で、事前学習済みパラメータの1つ以上の組の第1サブセットは、1つ以上の変更パラメータの第1サブセットによって夫々、例えば、スケーリング係数による乗算、オフセットによる加算、又は乗算及び加算の組み合わせによって変更される。事前学習済みパラメータの1つ以上の組の第1サブセットは、置換パラメータの1つ以上の組の第1サブセットによって夫々置換され得る。このようにして、事前学習済みビデオエンコーダは、訓練プロセスによって、更新されたビデオエンコーダへと更新され得る。1つ以上の画像は、更新されたビデオエンコーダを用いてエンコーディングされ得る。
1つ以上の変更パラメータの第2サブセットを示すニューラルネットワーク更新情報は、エンコーディングされてビットストリームでシグナリングされ得る。1つ以上のエンコーディングされた画像及びニューラルネットワーク更新情報は、ビットストリームで送信され得る。
デコーダ側で、事前学習済みビデオデコーダは、ニューラルネットワーク更新情報を受信しデコーディングして、1つ以上の変更パラメータの第2サブセットを決定する。事前学習済みビデオデコーダは、事前学習済みビデオデコーダの事前学習済みパラメータの1つ以上の組の第2サブセットが1つ以上の変更パラメータの第2サブセットによって夫々変更される場合に、更新されたビデオデコーダへと更新される。例において、事前学習済みビデオデコーダの事前学習済みパラメータの1つ以上の組の第2サブセットは、置換パラメータの1つ以上の組の第2サブセットによって置換される。1つ以上のエンコーディングされた画像は、更新されたビデオデコーダを用いてデコーディングされ得る。
図16A~16Bは、第1シナリオの例を示す。例えば、1つ以上の変更パラメータは、第1変更パラメータ(例えば、1.1のスケーリング係数)及び第2変更パラメータ(例えば、0.1のオフセット)を含む。スケーリング係数は、事前学習済みのコンテキストモデルNN(916)のN1個の事前学習済みパラメータを含む事前学習パラメータの第1の組を変更する。オフセットは、事前学習済みのメインデコーダネットワーク(915)のN2個の事前学習済みパラメータの第2の組を変更する。
1つ以上の変更パラメータの第1サブセットは、スケーリング係数を含み、1つ以上の変更パラメータの第2サブセットは、スケーリング係数及びオフセットを含む。スケーリング係数は、事前学習済みパラメータの1つ以上の組(例えば、事前学習済みパラメータの第1の組)の第1サブセットを変更する。スケーリング係数及びオフセットは、事前学習済みパラメータの1つ以上の組(例えば、事前学習済みパラメータの第1の組及び事前学習済みパラメータの第2の組)の第2サブセットを変更する。従って、エンコーダ側で、事前学習済みのコンテキストモデルNN(916)のN1個の事前学習済みパラメータは、事前学習済みビデオエンコーダ(1600A)が更新され得るように、N1個の対応する置換パラメータによって置換され得る。事前学習済みのコンテキストモデルNN(916)も、更新されたコンテキストモデルNN(916)であるよう更新される。デコーダ側で、N1個の事前学習済みパラメータは、N1個の対応する置換パラメータによって置換され得、N2個の事前学習済みパラメータは、N2個の対応する置換パラメータによって置換され得、事前学習済みのコンテキストモデルNN(916)は、更新されたコンテキストモデルNN(916)であるよう更新され、事前学習済みのメインデコーダネットワーク(915)は、更新されたメインデコーダネットワーク(915)であるよう更新される。このようにして、事前学習済みビデオデコーダ(1600B)は更新され得る。
第2シナリオでは、1つ以上の変更パラメータのどれも、エンコーダ側で事前学習済みビデオエンコーダの事前学習済みパラメータを変更するために使用されない。むしろ、1つ以上の変更パラメータは、デコーダ側で事前学習済みビデオデコーダの事前学習済みパラメータの1つ以上の組を変更するために使用される。よって、事前学習済みビデオエンコーダは更新されず、訓練プロセス後に事前学習済みビデオエンコーダであり続ける。実施形態において、ニューラルネットワーク更新情報は1つ以上の変更パラメータを示す。1つ以上の画像は、事前学習済みビデオエンコーダを用いてエンコーディングされ、ニューラルネットワーク更新情報とともにビットストリームで送信される。
デコーダ側で、事前学習済みビデオデコーダは、ニューラルネットワーク更新情報を受信しデコーディングして、1つ以上の変更パラメータを決定することができる。事前学習済みビデオデコーダは、事前学習済みビデオデコーダの事前学習済みパラメータの1つ以上の組が1つ以上の変更パラメータによって変更されるか、又は置換パラメータの1つ以上の組によって置換される場合に、更新されたビデオデコーダへと更新される。1つ以上のエンコーディングされた画像は、更新されたビデオデコーダを用いてデコーディングされ得る。
図16A~16Bは、第2シナリオの例を示す。例えば、1つ以上の変更パラメータは、事前学習済みのメインデコーダネットワーク(915)のN2個の事前学習済みパラメータを変更する第2変更パラメータを含む。よって、1つ以上の変更パラメータのどれも、エンコーダ側にある事前学習済みビデオエンコーダ(例えば、事前学習済みビデオエンコーダ(1600A))で使用されない。よって、事前学習済みビデオエンコーダ(1600A)は、訓練プロセス後に事前学習済みビデオエンコーダであり続ける。デコーダ側で、N2個の事前学習済みパラメータは、第2変更パラメータによって変更されるか、又はN2個の対応する置換パラメータによって置換され得、これにより、事前学習済みのメインデコーダネットワーク(915)は更新される。このようにして、事前学習済みビデオデコーダ(1600B)は更新され得る。
第3シナリオで、1つ以上の変更パラメータは、事前学習済みビデオエンコーダの事前学習済みパラメータの1つ以上の組を変更し、事前学習済みビデオデコーダの事前学習済みパラメータを変更しない。よって、事前学習済みビデオエンコーダは、訓練プロセスによって、更新されたビデオエンコーダへと更新される。1つ以上の画像は、更新されたビデオエンコーダを用いてエンコーディングされ、ビットストリームで送信され得る。ニューラルネットワーク更新情報はビットストリームでエンコーディングされない。1つ以上のデコーダ側で、事前学習済みビデオデコーダは更新されず、事前学習済みビデオデコーダのままである。1つ以上のエンコーディングされた画像は、事前学習済みビデオデコーダを用いてデコーディングされ得る。
図16A~16Bは、第3シナリオの例を示す。例えば、1つ以上の変更パラメータは、事前学習済みのメインエンコーダネットワーク(911)の事前学習済みパラメータの組を変更する変更パラメータを含む。従って、事前学習済みのメインエンコーダネットワーク(911)の事前学習済みパラメータの組は、事前学習済みビデオエンコーダ(1600A)が更新されたビデオエンコーダ(1600A)へと更新され得るように、置換パラメータの組によって置換され得る。事前学習済みのメインエンコーダネットワーク(911)も、更新されたメインエンコーダネットワーク(911)であるよう更新される。デコーダ側で、事前学習済みビデオデコーダ(1600B)は更新されない。
第1、第2、及び第3のシナリオで説明されているような様々な例において、ビデオデコーディングは、事前学習済みパラメータを更新する能力を備えたデコーダ及びそのような能力を備えていないデコーダを含む、種々の能力を備えている事前学習済みのデコーダによって、実行されてよい。
例において、圧縮性能は、事前学習済みビデオエンコーダ及び事前学習済みビデオデコーダにより1つ以上の画像をコーディングすることと比較して、更新されたビデオエンコーダ及び/又は更新されたビデオデコーダにより1つ以上画像をコーディングすることによって向上することができる。従って、コンテンツ適応オンライン訓練方法は、事前学習済みのNICフレームワーク(例えば、事前学習済みNICフレームワーク(900))をターゲット画像コンテンツ(例えば、送信されるべき1つ以上の画像)に適応させて、事前学習済みのNICフレームをファインチューニングするために、使用され得る。従って、エンコーダ側にあるエンコーダ及び/又はデコーダ側にあるビデオデコーダは、更新され得る。
コンテンツ適応オンライン訓練方法は、事前学習済みのE2E NIC圧縮方法の圧縮性能を向上させるための前処理ステップ(事前エンコーディングステップ)として使用され得る。
実施形態において、1つ以上の画像は単一の入力画像を含み、ファインチューニングプロセスは単一の入力画像により実行される。1つ以上の変更パラメータは、よって、NICフレームワーク(900)は、単一の入力画像に基づいて訓練及び更新(例えば、ファインチューニング)される。エンコーダ側にある更新されたビデオエンコーダ及び/又はデコーダ側にある更新されたビデオデコーダは、単一の入力画像及び任意の他の入力画像をコーディングするために使用され得る。ニューラルネットワーク更新情報は、エンコーディングされた単一の入力画像とともに、ビットストリーム内にエンコーディングされ得る。
実施形態において、1つ以上の画像は複数の入力画像を含み、ファインチューニングプロセスは複数の入力画像により実行される。1つ以上の変更パラメータは、よって、NICフレームワーク(900)は、複数の入力画像に基づいて訓練及び更新(例えば、ファインチューニング)される。エンコーダ側にある更新されたビデオエンコーダ及び/又はデコーダ側にある更新されたビデオデコーダは、複数の入力画像及び任意の他の入力画像をコーディングするために使用され得る。ニューラルネットワーク更新情報は、エンコーディングされた複数の入力画像とともに、ビットストリーム内にエンコーディングされ得る。
レート損失Rは、ビットストリームでのニューラルネットワーク更新情報のシグナリングにより増大する可能性がある。1つ以上の画像が単一の入力画像を含む場合に、ニューラルネットワーク更新情報は、エンコーディングされた画像ごとにシグナリングされ、レート損失Rの第1の増大は、画像ごとのニューラルネットワーク更新情報のシグナリングに起因したレート損失Rの増大を示すために使用される。1つ以上の画像が複数の入力画像を含む場合に、ニューラルネットワーク更新情報は、複数の入力画像についてシグナリングされ、それらの入力画像によって共有され、レート損失Rの第2の増大は、画像ごとのニューラルネットワーク更新情報のシグナリングに起因したレート損失Rの増大を示すために使用される。ニューラルネットワーク更新情報は複数の入力画像によって共有されるので、レート損失Rの第2の増大は、レート損失Rの第1の増大よりも小さくなる。よって、いくつかの例において、複数の入力画像を用いて1つ以上の変更パラメータを、よってNICフレームワークをファインチューニングすることが有利であり得る。
実施形態において、訓練される1つ以上の変更パラメータは、事前学習済みのNICフレームワーク(900)の1つのコンポーネントの事前学習済みパラメータの1つ以上の組を変更する。よって、事前学習済みのNICフレームワーク(900)のその1つのコンポーネントは1つ以上の変更パラメータに基づいて更新され、事前学習済みのNICフレームワーク(900)の他のコンポーネントは更新されない。
1つのコンポーネントは、事前学習済みのコンテキストモデルNN(916)、事前学習済みのエントロピパラメータNN(917)、事前学習済みのメインエンコーダネットワーク(911)、事前学習済みのメインデコーダネットワーク(915)、事前学習済みのハイパーエンコーダ(921)、又は事前学習済みのハイパーデコーダ(925)であることができる。事前学習済みビデオエンコーダ及び/又は事前学習済みビデオデコーダは、事前学習済みのNICフレームワーク(900)のコンポーネントのうちのどれが更新されるかに応じて、更新され得る。
例において、訓練される1つ以上の変更パラメータは、事前学習済みのコンテキストモデルNN(916)の事前学習済みパラメータの1つ以上の組を変更し、よって、事前学習済みのコンテキストモデルNN(916)は更新され、残りのコンポーネント(911)、(915)、(921)、(917)、及び(925)は更新されない。例において、エンコーダ側の事前学習済みビデオエンコーダ及びデコーダ側の事前学習済みビデオデコーダは、事前学習済みのコンテキストモデルNN(916)を含むので、事前学習済みビデオエンコーダ及び事前学習済みビデオデコーダの両方が更新される。
例において、訓練される1つ以上の変更パラメータは、事前学習済みのハイパーデコーダ(925)の事前学習済みパラメータの1つ以上の組を変更し、よって、事前学習済みのハイパーデコーダ(925)は更新され、残りのコンポーネント(911)、(915)、(916)、(917)、及び(921)は更新されない。よって、事前学習済みビデオエンコーダは更新されず、事前学習済みビデオデコーダは更新される。
実施形態において、訓練される1つ以上の変更パラメータは、事前学習済みのNICフレームワーク(900)の複数のコンポーネントの事前学習済みパラメータの1つ以上の組を変更する。よって、事前学習済みのNICフレームワーク(900)の複数のコンポーネントは、1つ以上の変更パラメータに基づいて更新される。例において、事前学習済みのNICフレームワーク(900)の複数のコンポーネントは、ニューラルネットワーク(例えば、DNN、CNN)により構成されている全てのコンポーネントを含む。例において、事前学習済みのNICフレームワーク(900)の複数のコンポーネントは、CNNベースのコンポーネント、つまり、事前学習済みのメインエンコーダネットワーク(911)、事前学習済みのメインデコーダネットワーク(915)、事前学習済みのコンテキストモデルNN(916)、事前学習済みのエントロピパラメータNN(917)、事前学習済みのハイパーエンコーダ(921)、及び事前学習済みのハイパーデコーダ(925)を含む。
上述されたように、例において、更新される1つ以上の変更パラメータは、事前学習済みのNICフレームワーク(900)の事前学習済みビデオエンコーダの事前学習済みパラメータの1つ以上の組を変更する。例において、更新される1つ以上の変更パラメータは、NICフレームワーク(900)の事前学習済みビデオデコーダの事前学習済みパラメータの1つ以上の組を変更する。例において、更新される1つ以上の変更パラメータは、事前学習済みのNICフレームワーク(900)の事前学習済みビデオエンコーダ及び事前学習済みビデオデコーダの事前学習済みパラメータの1つ以上の組を変更する。
NICフレームワーク(900)内の夫々のニューラルネットワークベースのコンポーネント(例えば、コンテキストモデルNN(916)、エントロピパラメータNN(917)、メインエンコーダネットワーク(911)、メインデコーダネットワーク(915)、ハイパーエンコーダ(921)、又はハイパーデコーダ(925))は、各々の重み、バイアス、又は重みとバイアスとの組み合わせなどの適切なパラメータにより構成され得る。いくつかの実施形態において、変更パラメータは、ニューラルネットワークベースのコンポーネントの1つ以上における重み及びバイアスを変更するために適用される。CNNが使用される場合に、重みは畳み込みカーネルの要素を含むことができる。1つ以上のタイプのパラメータが、ニューラルネットワークを指定するために使用され得る。実施形態において、1つ以上の変更パラメータはバイアス項を変更し、バイアス項のみが、1つ以上の変更パラメータによって変更される。実施形態において、1つ以上の変更パラメータは重みを変更し、重みのみが、1つ以上の変更パラメータによって変更される。実施形態において、1つ以上の変更パラメータは、重み及びバイアス項を変更する。
実施形態において、1つ以上の変更パラメータはスケーリング係数を含み、更新される事前学習済みパラメータの組はスケーリング係数によって変更される。スケーリング係数は、事前学習された重みの組、事前学習されたバイアスの組、事前学習された重み及び事前学習されたバイアスの組、などのような事前学習済みパラメータの組を変更することができる。訓練プロセス後、スケーリング係数が決定され、事前学習済みパラメータの組は変更パラメータの組で夫々置換され得る。このとき、置換パラメータの組は、事前学習済みパラメータの組に同じスケーリング係数を乗じたものである。
スケーリング係数は、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントの1つ以上における事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用され得る。
実施形態において、スケーリング係数は、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントの1つにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。例えば、事前学習された重みの組は、コンテキストモデルNN(916)で使用される特定のチャネルの5×5畳み込みカーネルを含む。スケーリング係数(例えば、1.1)は、コンテキストに基づいたオンライン訓練プロセスによって取得される。事前学習された重みの組(例えば、コンテキストモデルNN(916)で使用される特定のチャネルの5×5畳み込みカーネル)は、このようにして、置換重みの組であるよう更新される。置換重みの組は、事前学習された重みの組にスケーリング係数(例えば、1.1)を乗じたものである。
例において、スケーリング係数は、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNNにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。図10~15を参照すると、NICフレームワーク(900)内のニューラルネットワークベースのコンポーネントのCNNは、メインエンコーダネットワーク(911)の、図10に示されたCNN、メインエンコーダネットワーク(911)の、図11に示されたCNN、ハイパーエンコーダ(921)の、図12に示されたCNN、ハイパーデコーダ(925)の、図13に示されたCNN、コンテキストモデルNN(916)の、図14に示されたCNN、又はエントロピパラメータNN(917)の、図15に示されたCNNであることができる。
例において、スケーリング係数は、メインデコーダネットワーク(915)の、図13に示されたCNN内の第3の逆畳み込み層(DeConv:3×3 c384 s1)のような、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNN内の畳み込み層又は逆畳み込み層における事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。
例において、スケーリング係数は、メインデコーダネットワーク(915)の、図13に示されたCNN内の第3の逆畳み込み層(DeConv:3×3 c384 s1)の第1チャネル(例えば、c1)ような、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNN内の畳み込み層又は逆畳み込み層におけるチャネルの事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。
例において、スケーリング係数は、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNN内の畳み込み層又は逆畳み込み層におけるチャネルの事前学習された重みの組を変更するよう適用される。チャネル(例えば、c1)の事前学習された重みの組は、複数の要素、1つ以上の行、1つ以上の例、及び/又は同様のものを含むことができる。例において、チャネル(例えば、c1)の事前学習された重みの組は、チャネル内の全ての要素(例えば、9個の要素)を含む。
例において、スケーリング係数は、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの複数のコンポーネントにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。例えば、スケーリング係数は、コンテキストに基づいたオンライン訓練プロセスによって取得される。事前学習された重みの組は、このようにして、スケーリング係数に基づいて、置換重みの組であるよう更新される。置換重みの組は、事前学習された重みの組(例えば、コンテキストモデルNN(916)で使用される特定のチャネルの5×5畳み込みカーネル及びメインデコーダネットワーク(915)で使用される第1の逆畳み込み層における特定のチャネルの5×5畳み込みカーネル)にスケーリング係数(例えば、1.1)を乗じたものである。
実施形態において、スケーリング係数は、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの全てのコンポーネントにおける事前学習された重みの組、事前学習されたバイアスの組、事前学習された重み及び事前学習されたバイアスの組を変更するよう適用され得る。
説明は、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの1つ以上のコンポーネントにおける事前学習された重みの他の組、事前学習されたバイアスの他の組、又は事前学習された重み及び事前学習されたバイアスの他の組などの事前学習済みパラメータの他の組を変更するために使用される他のスケーリング係数に適切に適応され得る。
いくつかの実施形態において、1つ以上のスケーリング係数は、コンテキストに基づいたオンライン訓練プロセスによって取得され、特徴マップを変更するために適用され得る。スケーリング係数は、特徴マップ全体又は特徴マップのサブセットを変更することができる。スケーリング係数は、1つ以上の要素を乗じることによって、特徴マップ内の1つ以上の要素を夫々変更することができる。よって、特徴マップ内の1つ以上の要素は、スケーリング係数を乗じられた1つ以上の要素によって、置換される。スケーリング係数は、特徴マップの1つ以上の行を変更することができる。スケーリング係数は、特徴マップの1つ以上の列を変更することができる。特徴マップは、1つ以上のスケーリング係数によって変更され得る。スケーリング係数は、1つ以上の特徴マップ又は特徴マップの部分を変更するために使用され得る。
実施形態において、1つ以上の変更パラメータはオフセットを含み、更新される事前学習済みパラメータの組はオフセットによって変更される。オフセットは、事前学習された重みの組、事前学習されたバイアスの組、事前学習された重み及び事前学習されたバイアスの組、などのような事前学習済みパラメータの組を変更することができる。訓練プロセス後、オフセットは決定され、事前学習済みパラメータの組は置換パラメータの組で夫々置換され得る。このとき、変更パラメータの組は、事前学習済みパラメータの組と同じオフセットとの加算である。
オフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの1つ以上のコンポーネントにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用され得る。
実施形態において、オフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントの1つにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。例えば、事前学習された重みの組は、コンテキストモデルNN(916)で使用される特定のチャネルの5×5畳み込みカーネルを含む。オフセット(例えば、0.1)は、コンテキストに基づいたオンライン訓練プロセスによって取得される。事前学習された重みの組(例えば、コンテキストモデルNN(916)で使用される特定のチャネルの5×5畳み込みカーネル)は、このようにして、置換重みの組であるよう更新される。置換重みの組は、事前学習された重みの組とオフセット(例えば、0.1)との加算であることができる。
例において、オフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNNにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。図10~15を参照すると、NICフレームワーク(900)内のニューラルネットワークベースのコンポーネントのCNNは、メインエンコーダネットワーク(911)の、図10に示されたCNN、メインエンコーダネットワーク(911)の、図11に示されたCNN、ハイパーエンコーダ(921)の、図12に示されたCNN、ハイパーデコーダ(925)の、図13に示されたCNN、コンテキストモデルNN(916)の、図14に示されたCNN、又はエントロピパラメータNN(917)の、図15に示されたCNNであることができる。
例において、オフセットは、メインデコーダネットワーク(915)の、図13に示されたCNN内の第3の逆畳み込み層(DeConv:3×3 c384 s1)のような、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNN内の畳み込み層又は逆畳み込み層における事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。
例において、オフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNN内の畳み込み層又は逆畳み込み層における事前学習されたバイアスの組を変更するよう構成される。
例において、オフセットは、メインデコーダネットワーク(915)の、図13に示されたCNN内の第3の逆畳み込み層(DeConv:3×3 c384 s1)の第1チャネル(例えば、c1)ような、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNN内の畳み込み層又は逆畳み込み層におけるチャネルの事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。
オフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの複数のコンポーネントにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。例えば、オフセットは、コンテキストに基づいたオンライン訓練プロセスによって取得される。事前学習された重みの組は、このようにして、オフセットに基づいて、置換重みの組であるよう更新される。置換重みの組は、事前学習された重みの組(例えば、コンテキストモデルNN(916)で使用される特定のチャネルの5×5畳み込みカーネル及びメインデコーダネットワーク(915)で使用される第1の逆畳み込み層における特定のチャネルの5×5畳み込みカーネル)とオフセット(例えば、0.1)との加算であることができる。
実施形態において、オフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの全てのコンポーネントにおける事前学習された重みの組、事前学習されたバイアスの組、事前学習された重み及び事前学習されたバイアスの組を変更するよう適用され得る。
説明は、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの1つ以上のコンポーネントにおける事前学習された重みの他の組、事前学習されたバイアスの他の組、又は事前学習された重み及び事前学習されたバイアスの他の組などの事前学習済みパラメータの他の組を変更するために使用される他のオフセットに適切に適応され得る。
いくつかの実施形態において、1つ以上のオフセットは、特徴マップを変更するよう適用され得る。オフセットは、特徴マップ全体又は特徴マップのサブセットを変更することができる。オフセットは、オフセットを1つ以上の要素に加えることによって、特徴マップ内の1つ以上の要素を夫々変更することができる。よって、特徴マップ内の1つ以上の要素は、夫々オフセットと1つ以上の要素との加算である1つ以上の置換要素によって置換される。オフセットは、特徴マップの1つ以上の行を変更することができる。オフセットは、特徴マップの1つ以上の列を変更することができる。特徴マップは、1つ以上のオフセットによって変更され得る。オフセットは、1つ以上の特徴マップ又は特徴マップの部分を変更するために使用され得る。
実施形態において、1つ以上の変更パラメータはスケーリング係数及び対応するオフセットを含み、更新される事前学習済みパラメータの組は、スケーリング係数及び対応するオフセットによって変更される。スケーリング係数及び対応するオフセットは、事前学習された重みの組、事前学習されたバイアスの組、事前学習された重み及び事前学習されたバイアスの組、などのような事前学習済みパラメータの組を変更することができる。訓練プロセス後、スケーリング係数及び対応するオフセットは決定され、事前学習済みパラメータの組は置換パラメータの組で夫々置換され得る。
置換パラメータの組は、事前学習済みパラメータの組、スケーリング係数、及び対応するオフセットに基づき決定され得る。例において、置換パラメータの組は、中間パラメータの組とオフセットとの加算であり、中間パラメータの組は、スケーリング係数を乗じられた事前学習済みパラメータの組である。例において、置換パラメータの組は、中間パラメータの組とスケーリングパラメータとの乗算であり、中間パラメータの組は、事前学習されたパラメータの組とオフセットとの加算である。
スケーリング係数及び対応するオフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの1つ以上のコンポーネントにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用され得る。
実施形態において、スケーリング係数及び対応するオフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントの1つにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。例えば、事前学習された重みの組は、コンテキストモデルNN(916)で使用される特定のチャネルの5×5畳み込みカーネルを含む。スケーリング係数(例えば、1.1)及び対応するオフセット(例えば、0.1)は、コンテキストに基づいたオンライン訓練プロセスによって取得される。事前学習された重みの組(例えば、コンテキストモデルNN(916)で使用される特定のチャネルの5×5畳み込みカーネル)は、このようにして、上記のように、置換重みの組であるよう更新される。
例において、置換パラメータの組は、中間パラメータの組とオフセット(例えば、0.1)との加算であり、中間パラメータの組は、スケーリング係数(例えば、1.1)を乗じられた事前学習済みパラメータの組である。
例において、置換パラメータの組は、中間パラメータの組とスケーリング係数(例えば、1.1)との乗算であり、中間パラメータの組は、事前学習済みパラメータの組とオフセット(例えば、0.1)との加算である。
例において、スケーリング係数及び対応するオフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNNにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。
例において、スケーリング係数及び対応するオフセットは、メインデコーダネットワーク(915)の、図13に示されたCNN内の第3の逆畳み込み層(DeConv:3×3 c384 s1)のような、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNN内の畳み込み層又は逆畳み込み層における事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。
例において、スケーリング係数及び対応するオフセットは、メインデコーダネットワーク(915)の、図13に示されたCNN内の第3の逆畳み込み層(DeConv:3×3 c384 s1)の第1チャネル(例えば、c1)ような、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのCNN内の畳み込み層又は逆畳み込み層におけるチャネルの事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用される。
スケーリング係数及び対応するオフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの複数のコンポーネントにおける事前学習された重みの組、事前学習されたバイアスの組、又は事前学習された重み及び事前学習されたバイアスの組を変更するよう適用され得る。例えば、スケーリング係数及び対応するオフセットは、コンテキストに基づいたオンライン訓練プロセスによって取得される。事前学習された重みの組は、このようにして、スケーリング係数及び対応するオフセットに基づいて、置換重みの組であるよう更新される。置換重みの組は、上述されたように、事前学習された重みの組(例えば、コンテキストモデルNN(916)で使用される特定のチャネルの5×5畳み込みカーネル及びメインデコーダネットワーク(915)で使用される第1の逆畳み込み層における特定のチャネルの5×5畳み込みカーネル)にスケーリング係数(例えば、1.1)を乗じたものとオフセット(例えば、0.1)であることができる。
実施形態において、スケーリング係数及び対応するオフセットは、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの全てのコンポーネントにおける事前学習された重みの組、事前学習されたバイアスの組、事前学習された重み及び事前学習されたバイアスの組を変更するよう適用され得る。
説明は、NICフレームワーク(例えば、NICフレームワーク(900))内のニューラルネットワークベースのコンポーネントのうちの1つ以上のコンポーネントにおける事前学習済みパラメータの他の組を変更するために使用される他のスケーリング係数及び他のオフセットに適切に適応され得る。
いくつかの実施形態において、1つ以上のスケーリング係数及び対応する1つ以上のオフセットは、特徴マップを変更するよう適用され得る。スケーリング係数及び対応するオフセットは、特徴マップ全体又は特徴マップのサブセットを変更することができる。スケーリング係数及び対応するオフセットは、特徴マップ内の1つ以上の要素を変更することができる。スケーリング係数及び対応するオフセットは、特徴マップの1つ以上の行を変更することができる。スケーリング係数及び対応するオフセットは、特徴マップの1つ以上の列を変更することができる。特徴マップは、1つ以上のスケーリング係数及び対応するオフセットによって変更され得る。スケーリング係数及び対応するオフセットは、1つ以上の特徴マップ又は特徴マップの部分を変更するために使用され得る。
訓練プロセスに基づいて決定される1つ以上の変更パラメータは、スケーリング係数及びオフセットを含むことができる。例において、スケーリング係数及びオフセットの夫々は、上述されたように、異なる組の事前学習済みパラメータを変更する。例において、スケーリング係数の1つ及びオフセットの1つは、上述されたように、同じ組の事前学習済みパラメータを変更する。例において、スケーリング係数及びオフセットの夫々は、上述されたように、異なる特徴マップ又は特徴マップの異なる部分を変更する。例において、スケーリング係数の1つ及びオフセットの1つは、上述されたように、同じ特徴マップ又は特徴マップの同じ部分を変更する。
ファインチューニングプロセスは、1つ以上の変更パラメータ(例えば、スケーリング係数、オフセット)が反復的なファインチューニングプロセスで更新又は決定される複数のエポック(例えば、繰り返し)を含むことができる。ファインチューニングプロセスは、訓練損失が平らになるか又はおおよそ平らになる場合に停止することができる。例において、ファインチューニングプロセスは、訓練損失(例えば、R-D損失L)が第1閾値を下回る場合に停止する。例において、ファインチューニングプロセスは、2つの連続した訓練損失の間の差が第2閾値を下回る場合に停止する。
2つのハイパーパラメータ(例えば、ステップサイズ及びステップの最大数)は、損失関数(例えば、R-D損失L)とともに、ファインチューニングプロセスで使用され得る。上述されたように、例において、ファインチューニングプロセス中の損失関数Lのレート損失Rは、例えば、ノイズ注入及びBPP推定器に基づいて、推定される。繰り返しの最大回数は、ファインチューニングプロセスを終了するための繰り返しの最大回数の閾値として使用され得る。例において、ファインチューニングプロセスは、繰り返しの数が繰り返しの最大回数に達すると停止する。
ステップサイズは、オンライン訓練プロセス(オンラインファインチューニングプロセス)の学習率を示すことができる。ステップサイズは、ファインチューニングプロセスで実行される最急降下法(gradient descent)アルゴリズム又は誤差逆伝播法計算(backpropagation calculation)で使用され得る。例えば、訓練されている変更パラメータに対する拡張性は、最急降下法アルゴリズムで使用されるステップサイズ及び対応する勾配(例えば、訓練されている変更パラメータに対するR-D損失の勾配)に基づく。ステップサイズは、如何なる適切な方法によっても決定され得る。実施形態において、異なるステップサイズが、最適な結果を得るよう、異なるタイプのコンテンツを有する画像に対して使用される。異なるタイプは異なる分散(variance)を指すことができる。例において、ステップサイズは、NICフレームワークを更新するために使用される画像の分散に基づいて決定される。例えば、高い分散を有する画像のステップサイズは、低い分散を有する画像のステップサイズよりも大きい。ここで、高い分散は、低い分散よりも大きい。
実施形態において、第1ステップサイズは、特定の数(例えば、100)の繰り返しを実行するために使用され得る。次いで、第2ステップサイズ(例えば、第1ステップサイズにサイズインクリメントをプラスしたもの、又は第1ステップサイズからサイズインクリメントをマイナスしたもの)は、その特定の数の繰り返しを実行するために使用され得る。第1ステップサイズ及び第2ステップサイズからの結果は、使用されるべきステップサイズを決定するために比較され得る。2つよりも多いステップサイズが、最適なステップサイズを決定するために試験されてもよい。
ステップサイズはファインチューニングプロセス中に変化することができる。ステップサイズは、ファインチューニングプロセスの開始時に初期値を有することができ、初期値は、より細かい調整を実現するために、ファインチューニングプロセスの後の段階で、例えば、特定の数の繰り返しの後で、低減され得る(例えば、半分にされる)。ステップサイズ又は学習率は、反復的なオンライン訓練中にスケジューラによって変更され得る。スケジューラは、ステップサイズを調整するために使用されるパラメータ調整方法を含むことができる。スケジューラは、ステップサイズが多数の繰り返しにおいて増大するか、低減するか、又は一定のままであることができるように、ステップサイズの値を決定することができる。例において、学習率は、スケジューラによって各ステップで変更される。単一のスケジューラ又は複数の異なるスケジューラが異なる画像について使用され得る。よって、置換パラメータの複数の組が、複数のスケジューラに基づいて生成され得、より良い圧縮性能(つまり、より小さいR-D損失)を有している置換パラメータの複数の組のうちの1つが、選択され得る。
ファインチューニングプロセスの終わりに、1つ以上の更新されたパラメータは、各々の1つ以上の変更パラメータ(例えば、スケーリング係数、又はオフセット)について計算され得る。実施形態において、1つ以上の更新されたパラメータは、1つ以上の変更パラメータと対応する1つ以上の“事前学習済み”の変更パラメータ(例えば、スケーリング係数については1であり、オフセットについては0である。)との間の差として計算される。実施形態において、1つ以上の更新されたパラメータは夫々、1つ以上の変更パラメータである。
1つ以上の更新されたパラメータは、例えば、特定の線形又は非線形変換を用いて、1つ以上の変更パラメータから夫々生成され得、1つ以上の更新されたパラメータは、1つ以上の変更パラメータに基づき生成された代表的なパラメータである。1つ以上の変更パラメータは、より良い圧縮のために1つ以上の更新されたパラメータに変換される。
例において、1つ以上の更新されたパラメータは、例えば、Lempel-Ziv-Markovチェーンアルゴリズム(LZMA)バリエーションであるLZMA2、bzip2アルゴリズム、などを用いて、圧縮され得る。例において、圧縮は、1つ以上の更新されたパラメータについては省略される。
いくつかの実施形態において、1つ以上の更新されたパラメータ又は1つ以上の更新されたパラメータの第2サブセットは、ニューラルネットワーク更新情報としてビットストリーム内にエンコーディングされ得る。ここで、ニューラルネットワーク更新情報は、1つ以上の置換パラメータ又は1つ以上の置換パラメータの第2サブセットを示す。
変更パラメータに対応する更新されたパラメータは、ニューラルネットワーク更新情報としてビットストリーム内にエンコーディングされ得る。ここで、ニューラルネットワーク更新情報は変更パラメータを示す。例において、変更パラメータによって変更された事前学習済みパラメータの組は、事前学習済みビデオデコーダのために設定された事前学習済みデコーダパラメータのうちの1つ以上を含む。よって、このようにして、変更パラメータを示すニューラルネットワーク更新情報は、ビットストリーム内にエンコーディングされてシグナリングされる。例において、変更パラメータによって変更された事前学習済みパラメータの組は、事前学習済みビデオデコーダのために設定された事前学習済みデコーダパラメータのどれも含まない。このようにして、変更パラメータを示すニューラルネットワーク更新情報は、エンコーディング及びシグナリングされない。
ファインチューニングプロセスの後、いくつかの例において、エンコーダ側の事前学習済みビデオエンコーダは、変更パラメータに基づき更新又はファインチューニングされ得る。例えば、変更パラメータによって変更された事前学習済みパラメータの組は、事前学習済みビデオエンコーダのために設定された事前学習済みエンコーダパラメータのうちの1つ以上を含み、このようにして、事前学習済みエンコーダパラメータのうちの1つ以上は変更パラメータに基づき更新され得、事前学習済みビデオエンコーダは更新される。入力画像(例えば、ファインチューニングプロセスで使用される1つ以上の画像のうちの1つ)は、更新されたビデオエンコーダを用いてビットストリーム内にエンコーディングされ得る。このようにして、ビットストリームは、エンコーディングされた画像及びニューラルネットワーク更新情報の両方を含む。
適用可能である場合には、例において、ニューラルネットワーク更新情報は、更新されたパラメータを取得するよう事前学習済みビデオデコーダによってデコーディング(例えば、圧縮解除)される。例において、変更パラメータは、上記の、更新されたパラメータと変更パラメータとの間の関係に基づき取得され得る。事前学習済みビデオデコーダは変更可能であり、更新されたビデオデコーダは、上述されたように、エンコーディングされた画像をデコーディングするために使用され得る。
NICフレームワークは、如何なるタイプのニューラルネットワークも含み、コンテキスト-ハイパープライア・エンコーダ-デコーダフレームワーク(例えば、図9に示されているNICフレームワーク)、スケール-ハイパープライア・エンコーダ-デコーダフレームワーク、混合ガウス尤度フレームワーク及び混合ガウス尤度フレームワークの変形、RNNベースの回帰的圧縮方法及びRNNベースの回帰的圧縮方法の変形、などのような、任意のニューラルネットワークに基づいた画像圧縮方法を使用することができる。
関連するE2E画像圧縮方法と比較して、本開示のコンテンツ適応型のオンライン訓練方法及び装置には、次の利点がある。適応オンライン訓練メカニズムは、NICコーディング効率を改善するために利用可能である。柔軟性がある一般的なフレームワークの使用は、様々なタイプの事前学習されたフレームワーク及び品質メトリクスに適合することができる。例えば、様々なタイプの事前学習されたフレームワークの特定の事前学習済みパラメータは、エンコーディングされて伝送される画像によるオンライン訓練に基づき決定された変更パラメータを使用することによって、置換され得る。
B.タイプIIのコンテンツ適応オンライン訓練
事前学習済みNICフレームワーク(900)のNIC事前学習済みパラメータの中の1つ以上の事前学習済みパラメータは、エンコーディング及び/又は伝送される1つ以上の画像に基づき更に訓練(例えば、ファインチューニング)され得る。ここで、1つ以上の画像は訓練画像の組とは異なってよい。NIC事前学習済みパラメータで使用される1つ以上の事前学習済みパラメータは、1つ以上の画像に基づき結合R-D損失Lを最適化することによってファインチューニングされ得る。1つ以上の画像によってファインチューニングされている1つ以上の事前学習済みパラメータは、1つ以上の置換パラメータ又は1つ以上のファインチューニングされたパラメータと呼ばれる。実施形態において、NIC事前学習済みパラメータの中の1つ以上の事前学習済みパラメータが1つ以上の置換パラメータによってファインチューニング(例えば、置換)された後で、ニューラルネットワーク更新情報は、1つ以上の置換パラメータ又は1つ以上の置換パラメータのサブセットを示すようビットストリーム内にエンコーディングされる。例において、NICフレームワーク(900)は、1つ以上の事前学習済みパラメータが1つ以上の置換パラメータによって夫々置換される場合に更新(又はファインチューニング)される。
第1シナリオでは、1つ以上の事前学習済みパラメータは、1つ以上の事前学習済みパラメータの第1サブセット及び1つ以上の事前学習済みパラメータの第2サブセットを含む。1つ以上の置換パラメータは、1つ以上の置換パラメータの第1サブセット及び1つ以上の置換パラメータの第2サブセットを含む。
1つ以上の事前学習済みパラメータの第1サブセットは、事前学習済みビデオエンコーダで使用され、例えば、訓練プロセスで、1つ以上の置換パラメータの第1サブセットによって置換される。このようにして、事前学習済みビデオエンコーダは、訓練プロセスによって、更新されたビデオエンコーダへと更新される。ニューラルネットワーク更新情報は、1つ以上の事前学習済みパラメータの第2サブセットを置換すべきである1つ以上の置換パラメータの第2サブセットを示すことができる。1つ以上の画像は、更新されたビデオエンコーダを用いてエンコーディングされて、ニューラルネットワーク更新情報とともにビットストリームで送信され得る。
デコーダ側で、1つ以上の事前学習済みパラメータの第2サブセットは事前学習済みビデオデコーダで使用される。実施形態において、事前学習済みビデオデコーダは、ニューラルネットワーク更新情報を受信しデコーディングして、1つ以上の置換パラメータの第2サブセットを決定する。事前学習済みビデオデコーダは、事前学習済みビデオデコーダの1つ以上の事前学習済みパラメータの第2サブセットが1つ以上の置換パラメータの第2サブセットによって置換される場合に、更新されたビデオデコーダへと更新される。1つ以上のエンコーディングされた画像は、更新されたビデオデコーダを用いてデコーディングされ得る。
図16A~16Bは、第1シナリオの例を示す。例えば、1つ以上の事前学習済みパラメータは、事前学習済みのコンテキストモデルNN(916)のN1個の事前学習済みパラメータと、事前学習済みのメインデコーダネットワーク(915)のN2個の事前学習済みパラメータとを含む。よって、1つ以上の事前学習済みパラメータの第1サブセットはN1個の事前学習済みパラメータを含み、1つ以上の事前学習済みパラメータの第2サブセットは、1つ以上の事前学習済みパラメータと同じである。従って、事前学習済みのコンテキストモデルNN(916)のN1個の事前学習済みパラメータは、N1個の対応する置換パラメータによって置換可能であり、それにより、事前学習済みビデオエンコーダ(1600A)は、更新されたビデオエンコーダ(1600A)へと更新され得る。事前学習済みコンテキストモデルNN(916)も、更新されたコンテキストモデルNN(916)へと更新される。デコーダ側で、N1個の事前学習済みパラメータは、N1個の対応する置換パラメータによって置換可能であり、N2個の事前学習済みパラメータは、N1個の対応する置換パラメータによって置換可能であり、事前学習済みのコンテキストモデルNN(916)を、更新されたコンテキストモデルNN(916)であるよう更新し、事前学習済みメインデコーダネットワーク(915)を、更新されたメインデコーダネットワーク(915)であるよう更新する。このようにして、事前学習済みビデオデコーダ(1600B)は、更新されたビデオデコーダ(1600B)へと更新され得る。
第2シナリオでは、1つ以上の事前学習済みパラメータのどれも、エンコーダ側の事前学習済みビデオエンコーダで使用されない。むしろ、1つ以上の事前学習済みパラメータは、デコーダ側の事前学習済みビデオデコーダで使用される。よって、事前学習済みビデオエンコーダは更新されず、訓練プロセス後に事前学習済みビデオエンコーダであり続ける。実施形態において、ニューラルネットワーク更新情報は1つ以上の置換パラメータを示す。1つ以上の画像は、事前学習済みビデオエンコーダを用いてエンコーディングされ、ニューラルネットワーク更新情報とともにビットストリームで送信される。
デコーダ側で、事前学習済みビデオデコーダは、ニューラルネットワーク更新情報を受信しデコーディングして、1つ以上の置換パラメータを決定することができる。事前学習済みビデオデコーダは、事前学習済みビデオデコーダの1つ以上の事前学習済みパラメータが1つ以上の置換パラメータによって変更される場合に、更新されたビデオデコーダへと更新される。1つ以上のエンコーディングされた画像は、更新されたビデオデコーダを用いてデコーディングされ得る。
図16A~16Bは、第2シナリオの例を示す。例えば、1つ以上の事前学習済みパラメータは、事前学習済みのメインデコーダネットワーク(915)のN2個の事前学習済みパラメータを含む。よって、1つ以上の事前学習済みパラメータのどれも、エンコーダ側の事前学習済みビデオエンコーダ(例えば、事前学習済みビデオエンコーダ(1600A))で使用されない。よって、事前学習済みビデオエンコーダ(1600A)は、訓練プロセス後に事前学習済みビデオエンコーダであり続ける。デコーダ側で、N2個の事前学習済みパラメータはN2個の対応する置換パラメータによって置換され得、これにより、事前学習済みのメインデコーダネットワーク(915)は、更新されたメインデコーダネットワーク(915)へと更新される。このようにして、事前学習済みビデオデコーダ(1600B)は、更新されたビデオデコーダ(1600B)であるよう更新され得る。
第3シナリオで、1つ以上の事前学習済みパラメータは、事前学習済みビデオエンコーダで使用され、例えば、訓練プロセスで、1つ以上の置換パラメータによって置換される。よって、事前学習済みビデオエンコーダは、訓練プロセスによって、更新されたビデオエンコーダへと更新される。1つ以上の画像は、更新されたビデオエンコーダを用いてエンコーディングされ、ビットストリームで送信され得る。ニューラルネットワーク更新情報はビットストリームでエンコーディングされない。デコーダ側で、事前学習済みビデオデコーダは更新されず、事前学習済みビデオデコーダのままである。1つ以上のエンコーディングされた画像は、事前学習済みビデオデコーダを用いてデコーディングされ得る。
図16A~16Bは、第3シナリオの例を示す。例えば、1つ以上の事前学習済みパラメータは、事前学習済みのメインエンコーダネットワーク(911)にある。従って、事前学習済みのメインエンコーダネットワーク(911)の1つ以上の事前学習済みパラメータは1つ以上の置換パラメータによって置換され得、それにより、事前学習済みビデオエンコーダ(1600A)は、更新されたビデオエンコーダ(1600A)へと更新され得る。事前学習済みのメインエンコーダネットワーク(911)も、更新されたメインエンコーダネットワーク(911)であるよう更新される。デコーダ側で、事前学習済みビデオデコーダ(1600B)は更新されない。
第1、第2、及び第3のシナリオで説明されているような様々な例において、ビデオデコーディングは、事前学習済みパラメータを更新する能力を備えたデコーダ及びそのような能力を備えていないデコーダを含む、種々の能力を備えている事前学習済みのデコーダによって、実行されてよい。
例において、圧縮性能は、事前学習済みビデオエンコーダ及び事前学習済みビデオデコーダにより1つ以上の画像をコーディングすることと比較して、更新されたビデオエンコーダ及び/又は更新されたビデオデコーダにより1つ以上画像をコーディングすることによって向上することができる。従って、コンテンツ適応オンライン訓練方法は、事前学習済みのNICフレームワーク(例えば、事前学習済みNICフレームワーク(900))をターゲット画像コンテンツ(例えば、送信されるべき1つ以上の画像)に適応させて、事前学習済みのNICフレームをファインチューニングするために、使用され得る。従って、エンコーダ側にあるエンコーダ及び/又はデコーダ側にあるビデオデコーダは、更新され得る。
コンテンツ適応オンライン訓練方法は、事前学習済みのE2E NIC圧縮方法の圧縮性能を向上させるための前処理ステップ(事前エンコーディングステップ)として使用され得る。
実施形態において、1つ以上の画像は単一の入力画像を含み、ファインチューニングプロセスは単一の入力画像により実行される。NICフレームワーク(900)は、単一の入力画像に基づいて訓練及び更新(例えば、ファインチューニング)される。エンコーダ側にある更新されたビデオエンコーダ及び/又はデコーダ側にある更新されたビデオデコーダは、単一の入力画像及び任意の他の入力画像をコーディングするために使用され得る。ニューラルネットワーク更新情報は、エンコーディングされた単一の入力画像とともに、ビットストリーム内にエンコーディングされ得る。
実施形態において、1つ以上の画像は複数の入力画像を含み、ファインチューニングプロセスは複数の入力画像により実行される。NICフレームワーク(900)は、複数の入力画像に基づいて訓練及び更新(例えば、ファインチューニング)される。エンコーダ側にある更新されたビデオエンコーダ及び/又はデコーダ側にある更新されたビデオデコーダは、複数の入力画像及び任意の他の入力画像をコーディングするために使用され得る。ニューラルネットワーク更新情報は、エンコーディングされた複数の入力画像とともに、ビットストリーム内にエンコーディングされ得る。
レート損失Rは、ビットストリームでのニューラルネットワーク更新情報のシグナリングにより増大する可能性がある。1つ以上の画像が単一の入力画像を含む場合に、ニューラルネットワーク更新情報は、エンコーディングされた画像ごとにシグナリングされ、レート損失Rの第1の増大は、画像ごとのニューラルネットワーク更新情報のシグナリングに起因したレート損失Rの増大を示すために使用される。1つ以上の画像が複数の入力画像を含む場合に、ニューラルネットワーク更新情報は、複数の入力画像についてシグナリングされ、それらの入力画像によって共有され、レート損失Rの第2の増大は、画像ごとのニューラルネットワーク更新情報のシグナリングに起因したレート損失Rの増大を示すために使用される。ニューラルネットワーク更新情報は複数の入力画像によって共有されるので、レート損失Rの第2の増大は、レート損失Rの第1の増大よりも小さくなる。よって、いくつかの例において、複数の入力画像を用いてNICフレームワークをファインチューニングすることが有利であり得る。
実施形態において、更新される1つ以上の事前学習済みパラメータは、事前学習済みのNICフレームワーク(900)の1つのコンポーネントにある。よって、事前学習済みのNICフレームワーク(900)のその1つのコンポーネントは1つ以上の置換パラメータに基づいて更新され、事前学習済みのNICフレームワーク(900)の他のコンポーネントは更新されない。
1つのコンポーネントは、事前学習済みのコンテキストモデルNN(916)、事前学習済みのエントロピパラメータNN(917)、事前学習済みのメインエンコーダネットワーク(911)、事前学習済みのメインデコーダネットワーク(915)、事前学習済みのハイパーエンコーダ(921)、又は事前学習済みのハイパーデコーダ(925)であることができる。事前学習済みビデオエンコーダ及び/又は事前学習済みビデオデコーダは、事前学習済みのNICフレームワーク(900)のコンポーネントのうちのどれが更新されるかに応じて、更新され得る。
例において、更新される1つ以上の事前学習済みパラメータは、事前学習済みのコンテキストモデルNN(916)にあり、よって、事前学習済みのコンテキストモデルNN(916)は更新され、残りのコンポーネント(911)、(915)、(921)、(917)、及び(925)は更新されない。例において、エンコーダ側の事前学習済みビデオエンコーダ及びデコーダ側の事前学習済みビデオデコーダは、事前学習済みのコンテキストモデルNN(916)を含むので、事前学習済みビデオエンコーダ及び事前学習済みビデオデコーダの両方が更新される。
例において、更新される1つ以上の事前学習済みパラメータは、事前学習済みのハイパーデコーダ(925)にあり、よって、事前学習済みのハイパーデコーダ(925)は更新され、残りのコンポーネント(911)、(915)、(916)、(917)、及び(921)は更新されない。よって、事前学習済みビデオエンコーダは更新されず、事前学習済みビデオデコーダは更新される。
実施形態において、更新される1つ以上の事前学習済みパラメータは、事前学習済みのNICフレームワーク(900)にある。よって、事前学習済みのNICフレームワーク(900)の複数のコンポーネントは、1つ以上の置換パラメータに基づいて更新される。例において、事前学習済みのNICフレームワーク(900)の複数のコンポーネントは、ニューラルネットワーク(例えば、DNN、CNN)により構成されている全てのコンポーネントを含む。例において、事前学習済みのNICフレームワーク(900)の複数のコンポーネントは、CNNベースのコンポーネント、つまり、事前学習済みのメインエンコーダネットワーク(911)、事前学習済みのメインデコーダネットワーク(915)、事前学習済みのコンテキストモデルNN(916)、事前学習済みのエントロピパラメータNN(917)、事前学習済みのハイパーエンコーダ(921)、及び事前学習済みのハイパーデコーダ(925)を含む。
上述されたように、例において、更新される1つ以上の事前学習済みパラメータは、事前学習済みのNICフレームワーク(900)の事前学習済みビデオエンコーダにある。例において、更新される1つ以上の事前学習済みパラメータは、NICフレームワーク(900)の事前学習済みビデオデコーダにある。例において、更新される1つ以上の事前学習済みパラメータは、事前学習済みのNICフレームワーク(900)の事前学習済みビデオエンコーダ及び事前学習済みビデオデコーダにある。
NICフレームワーク(900)はニューラルネットワークに基づくことができ、例えば、NICフレームワーク(900)内の1つ以上のコンポーネントは、CNN、DNN、及び/又は同様のもののようなニューラルネットワークを含むことができる。上述されたように、ニューラルネットワークは、重み、バイアス、などのような種々のタイプのパラメータによって指定され得る。
NICフレームワーク(900)内の夫々のニューラルネットワークベースのコンポーネント(例えば、コンテキストモデルNN(916)、エントロピパラメータNN(917)、メインエンコーダネットワーク(911)、メインデコーダネットワーク(915)、ハイパーエンコーダ(921)、又はハイパーデコーダ(925))は、各々の重み、バイアス、又は重みとバイアスとの組み合わせなどの適切なパラメータにより構成され得る。CNNが使用される場合に、重みは畳み込みカーネルの要素を含むことができる。1つ以上のタイプのパラメータが、ニューラルネットワークを指定するために使用され得る。実施形態において、更新される1つ以上の事前学習済みパラメータはバイアス項であり、バイアス項のみが1つ以上の置換パラメータによって置換される。実施形態において、更新される1つ以上の事前学習済みパラメータは重みであり、重みのみが1つ以上の置換パラメータによって置換される。実施形態において、更新される1つ以上の事前学習済みパラメータは重み及びバイアス項を含み、重み及びバイアス項を含む全ての事前学習済みパラメータが1つ以上の置換パラメータによって置換される。実施形態において、他のパラメータがニューラルネットワークを指定するために使用されてもよく、他のパラメータがファインチューニングされ得る。
ファインチューニングプロセスは、1つ以上の事前学習済みパラメータ(例えば、重み、バイアス)が反復的なファインチューニングプロセスで更新又は学習される複数のエポック(例えば、繰り返し)を含むことができる。ファインチューニングプロセスは、訓練損失が平らになるか又はおおよそ平らになる場合に停止することができる。例において、ファインチューニングプロセスは、訓練損失(例えば、R-D損失L)が第1閾値を下回る場合に停止する。例において、ファインチューニングプロセスは、2つの連続した訓練損失の間の差が第2閾値を下回る場合に停止する。
2つのハイパーパラメータ(例えば、ステップサイズ及びステップの最大数)が、タイプIのコンテンツ適応オンライン訓練で述べられたように、損失関数(例えば、R-D損失L)とともに、ファインチューニングプロセスで使用され得る。
ファインチューニングプロセスの終わりに、1つ以上の更新されたパラメータは、各々の1つ以上の置換パラメータについて計算され得る。実施形態において、1つ以上の更新されたパラメータは、1つ以上の置換パラメータと対応する1つ以上の事前学習済みパラメータとの間の差として計算される。実施形態において、1つ以上の更新されたパラメータは夫々、1つ以上の置換パラメータである。
実施形態において、1つ以上の更新されたパラメータは、例えば、特定の線形又は非線形変換を用いて、1つ以上の置換パラメータから生成され得、1つ以上の更新されたパラメータは、1つ以上の置換パラメータに基づき生成された代表的なパラメータである。1つ以上の置換パラメータは、より良い圧縮のために1つ以上の更新されたパラメータに変換される。
1つ以上の更新されたパラメータの第1サブセットは、1つ以上の置換パラメータの第1サブセットに対応し、1つ以上の更新されたパラメータの第2サブセットは、1つ以上の置換パラメータの第2サブセットに対応する。
例において、1つ以上の更新されたパラメータは、例えば、Lempel-Ziv-Markovチェーンアルゴリズム(LZMA)バリエーションであるLZMA2、bzip2アルゴリズム、などを用いて、圧縮され得る。例において、圧縮は、1つ以上の更新されたパラメータについては省略される。いくつかの実施形態において、1つ以上の更新されたパラメータ又は1つ以上の更新されたパラメータの第2サブセットは、ニューラルネットワーク更新情報としてビットストリーム内にエンコーディングされ得る。ここで、ニューラルネットワーク更新情報は、1つ以上の置換パラメータ又は1つ以上の置換パラメータの第2サブセットを示す。
ファインチューニングプロセスの後、いくつかの例において、エンコーダ側の事前学習済みビデオエンコーダは、(i)1つ以上の置換パラメータの第1サブセット、又は(ii)1つ以上の置換パラメータ、に基づき更新又はファインチューニングされ得る。入力画像(例えば、ファインチューニングプロセスで使用される1つ以上の画像のうちの1つ)は、更新されたビデオエンコーダを用いてビットストリーム内にエンコーディングされ得る。このようにして、ビットストリームは、エンコーディングされた画像及びニューラルネットワーク更新情報の両方を含む。
適用可能である場合には、例において、ニューラルネットワーク更新情報は、1つ以上の更新されたパラメータ又は1つ以上の更新されたパラメータの第2サブセットを取得するよう事前学習済みビデオデコーダによってデコーディング(例えば、圧縮解除)される。例において、1つ以上の置換パラメータ又は1つ以上の置換パラメータの第2サブセットは、上記の、1つ以上の更新されたパラメータと1つ以上の置換パラメータとの間の関係に基づき取得され得る。事前学習済みビデオデコーダはファインチューニングされ得、更新されたビデオデコーダは、上述されたように、エンコーディングされた画像をデコーディングするために使用され得る。
NICフレームワークは、如何なるタイプのニューラルネットワークも含み、コンテキスト-ハイパープライア・エンコーダ-デコーダフレームワーク(例えば、図9に示されているNICフレームワーク)、スケール-ハイパープライア・エンコーダ-デコーダフレームワーク、混合ガウス尤度フレームワーク及び混合ガウス尤度フレームワークの変形、RNNベースの回帰的圧縮方法及びRNNベースの回帰的圧縮方法の変形、などのような、任意のニューラルネットワークに基づいた画像圧縮方法を使用することができる。
関連するE2E画像圧縮方法と比較して、本開示のコンテンツ適応型のオンライン訓練方法及び装置には、次の利点がある。適応オンライン訓練メカニズムは、NICコーディング効率を改善するために利用可能である。柔軟性がある一般的なフレームワークの使用は、様々なタイプの事前学習されたフレームワーク及び品質メトリクスに適合することができる。例えば、様々なタイプの事前学習されたフレームワークの特定の事前学習済みパラメータは、エンコーディングされて伝送される画像によるオンライン訓練を使用することによって、置換され得る。
いくつかの例において、タイプIのコンテンツ適応オンライン訓練及びタイプIIのコンテンツ適応オンライン訓練を含むコンテンツ適応オンライン訓練は、エンコーディング及び/又は伝送される画像(例えば、ロー画像又は残差データを伴った画像)内の1つ以上の入力ブロックに基づくことができる。1つ以上の入力ブロックに基づいたタイプIのコンテンツ適応オンライン訓練は、ブロックワイズのタイプIコンテンツ適応オンライン訓練と呼ばれ得る。
実施形態において、タイプIのコンテンツ適応オンライン訓練及びタイプIIのコンテンツ適応オンライン訓練は、事前学習済みNICフレームワークで使用される事前学習済みパラメータ(例えば、重み及び/又はバイアス)及び事前学習済みパラメータの1つ以上の組を変更する変更パラメータ(例えば、スケーリング係数及び/又はオフセット)がコンテンツ適応オンライン訓練を用いて更新されるように,組み合わされる。
IV.コンテンツ適応オンライン訓練に基づいた例示的なエンコーディングプロセス及びデコーディングプロセスを説明するフローチャート
図19は、開示の実施形態に従うプロセス(1900)を説明するフローチャートを示す。プロセス(1900)は、ロー画像又は残差データのような画像をエンコーディングするために使用され得る。様々な実施形態において、プロセス(1900)は、端末デバイス(310)、(320)、(330)及び(340)内の処理回路、ビデオエンコーダ(1600A)の機能を実行する処理回路、ビデオエンコーダ(1700)の機能を実行する処理回路、NICフレームワーク(900)の機能を実行する処理回路、などのような処理回路によって実行される。例において、処理回路は、(i)ビデオエンコーダ(403)、(603)、及び(703)のうちの1つと、(ii)ビデオエンコーダ(1600A)及びビデオエンコーダ(1700)のうちの1つと、の機能の組み合わせを実行する。実施形態において、プロセス(1900)はソフトウェア命令で実装されるので、処理回路がソフトウェア命令を実行する場合に、処理回路はプロセス(1900)を実行する。プロセスは、(S1901)から始まる。例において、NICフレームワークはニューラルネットワークに基づく。例において、NICフレームワークは、図9を参照して説明されたNICフレームワーク(900)である。NICフレームワークは、図10~15を参照して説明されたようなCNNに基づくことができる。ビデオエンコーダ(例えば、(1600A)又は(1700))及び対応するビデオデコーダ(例えば、(1600B)又は(1800))は、上述されたように、NICフレームワーク内の複数のコンポーネントを含むことができる。ニューラルネットワークに基づいたNICフレームワークは事前学習されるので、ビデオエンコーダ及びビデオデコーダは事前学習される。プロセス(1900)は(S1910)へ進む。
(S1910)で、ファインチューニングプロセスが、1つ以上の画像(又は入力画像)に基づいてNICフレームワークに対して実行される。入力画像は、如何なる適切なサイズも有する如何なる適切な画像であることもできる。いくつかの例において、入力画像は、空間領域内にあるロー画像、自然画像、コンピュータにより生成された画像、及び/又は同様のものを含む。
いくつかの例において、入力画像は、例えば、残差計算部(例えば、残差計算部(273))によって計算された、空間領域内の残差データを含む。様々な装置のコンポーネントが、(S1910)を達成するよう適切に組み合わされ得る。例えば、図7及び9を参照すると、残差計算部からの残差データは、画像に結合され、NICフレームワーク内のメインエンコーダネットワーク(911)に供給される。
1つ以上の変更パラメータは、1つ以上の画像に基づいて決定され、例えば、デフォルト値(例えば、スケーリング係数については1であり、オフセットについては0である。)から調整され得る。実施形態において、1つ以上の変更パラメータは、(S1910)で記載された訓練プロセス中に、例えば、各ステップで、更新されている。1つ以上の変更パラメータは、スケーリング係数又はオフセットであることができる。1つ以上の変更パラメータは、置換パラメータの1つ以上の組を生成するようNICフレームワーク内の少なくとも1つのニューラルネットワークで事前学習済みパラメータの1つ以上の組を夫々変更することができる。1つ以上の変更パラメータの夫々は、事前学習済みパラメータの対応する組を変更することができる。
実施形態において、1つ以上の変更パラメータの第1サブセットによって変更される事前学習済みパラメータの1つ以上の組のうちの第1サブセットは、ビデオエンコーダ(例えば、事前学習済みビデオエンコーダ)内の少なくとも1つのニューラルネットワークで使用され、このようにして、ビデオエンコーダ内の少なくとも1つのニューラルネットワークは、1つ以上の変更パラメータの第1サブセットに基づき更新され得る。例において、ビデオエンコーダ内の少なくとも1つのニューラルネットワークは、事前学習済みパラメータの1つ以上の組のうちの第1サブセットが置換パラメータの1つ以上の組のうちの第1サブセットで夫々置換される場合に、更新される。例において、ビデオエンコーダ内の少なくとも1つのニューラルネットワークは、ファインチューニングプロセスで繰り返し更新される。
例において、事前学習済みパラメータの1つ以上の組のどれもビデオエンコーダに含まれず、よって、ビデオエンコーダは更新されず、事前学習済みビデオエンコーダのままである。
(S1920)で、1つ以上の画像のうちの1つが、少なくとも1つの更新されたニューラルネットワークを備えたビデオエンコーダを用いてエンコーディングされ得る。例において、1つ以上の画像のうちのその1つは、ビデオエンコーダ内の少なくとも1つのニューラルネットワークが更新された後でエンコーディングされる。
ステップ(S1920)は適切に適応され得る。例えば、ビデオエンコーダは、事前学習済みパラメータの1つ以上の組のどれもビデオエンコーダ内の少なくとも1つのニューラルネットワークに含まれない場合に更新されず、よって、1つ以上の画像のうちの1つは、事前学習済みビデオエンコーダ(例えば、少なくとも1つの事前学習済みニューラルネットワークを含むビデオエンコーダ)を用いてエンコーディングされ得る。
(S1930)で、1つ以上の変更パラメータの第2サブセットを示すニューラルネットワーク更新情報がビットストリーム内にエンコーディングされ得る。例において、1つ以上の変更パラメータの第2サブセットは、デコーダ側のビデオデコーダ内の少なくとも1つのニューラルネットワークを更新するために使用されるものである。ステップ(S1930)は省略可能であり、例えば、1つ以上の変更パラメータの第2サブセットが変更パラメータを含まず、ニューラルネットワーク更新情報がビットストリームでシグナリングされない場合には、ビデオデコーダ内のニューラルネットワークのどれも更新されない。
(S1940)で、1つ以上の画像のうちのエンコーディングされた1つと、ニューラルネットワーク更新情報とを含むビットストリームが送信され得る。ステップ(S1940)は適切に適応され得る。例えば、ステップ(S1930)が省略される場合には、ビットストリームはニューラルネットワーク更新情報を含まない。プロセス(1900)は(S1999)へ進み、終了する。
プロセス(1900)は、様々なシナリオに適切に適応可能であり、プロセス(1900)のステップはそれに応じて調整され得る。プロセス(1900)のステップのうちの1つ以上は、適応、省略、繰り返し、及び/又は結合され得る。如何なる適切な順序もプロセス(1900)を実装するために使用可能である。追加のステップが追加可能である。例えば、1つ以上の画像のうちの1つをエンコーディングすることに加えて、1つ以上の画像のうちの残りの1つなどの他の画像が(S1920)でエンコーディングされ、(S1940)で送信される。
プロセス(1900)のいくつかの例において、1つ以上の画像のうちの1つは、更新されたビデオエンコーダによってエンコーディングされ、ビットストリームで送信される、ファインチューニングプロセスが1つ以上の画像に基づくということで、ファインチューニングプロセスは、エンコーディングされるコンテキストに基づき、よって、コンテキストベースである。
いくつかの例において、ニューラルネットワーク更新情報は、ビデオデコーダ内のどの事前学習済みパラメータを1つ以上の変更パラメータの第2サブセットが変更して、ビデオデコーダ内の対応する事前学習済みパラメータが更新され得るようにするかを更に示す。ニューラルネットワーク更新情報は、1つ以上の変更パラメータの第2サブセットが変更するビデオデコーダ内の事前学習済みパラメータのコンポーネント情報(例えば、(915))、レイヤ情報(例えば、第4の層DeConv:5×5 c3 s2)、チャネル情報(例えば、第2チャネル)、及び/又は同様のものを示すことができる。従って、図11を参照すると、1つ以上の変更パラメータの第2サブセットが変更するビデオデコーダ内の事前学習済みパラメータは、メインデコーダネットワーク(915)内のDeConv:5×5 c3 s2の第2チャネルの畳み込みカーネルを含む。よって、事前学習済みのメインデコーダネットワーク(915)内のDeConv:5×5 c3 s2の第2チャネルの畳み込みカーネルは更新される。いくつかの例において、1つ以上の変更パラメータの第2サブセットが変更するビデオデコーダ内の事前学習済みパラメータのコンポーネント情報(例えば、(915))、レイヤ情報(例えば、第4の層DeConv:5×5 c3 s2)、チャネル情報(例えば、第2チャネル)、及び/又は同様のものは、予め決定されて、事前学習済みビデオデコーダで記憶されるので、シグナリングされない。
図20は、開示の実施形態に従うプロセス(2000)を説明するフローチャートを示す。プロセス(2000)は、エンコーディングされた画像の再構成において使用され得る。様々な実施形態において、プロセス(2000)は、端末デバイス(310)、(320)、(330)及び(340)内の処理回路、ビデオデコーダ(1600B)の機能を実行する処理回路、ビデオデコーダ(1800)の機能を実行する処理回路、NICフレームワーク(900)の機能を実行する処理回路、などのような処理回路によって実行される。例において、処理回路は、(i)ビデオデコーダ(410)、ビデオデコーダ(510)、及びビデオデコーダ(810)のうちの1つと、(ii)ビデオデコーダ(1600B)又はビデオデコーダ(1800)のうちの1つと、の機能の組み合わせを実行する。いくつかの実施形態において、プロセス(2000)はソフトウェア命令で実装されるので、処理回路がソフトウェア命令を実行する場合に、処理回路はプロセス(2000)を実行する。プロセスは、(S2001)から始まる。例において、NICフレームワークはニューラルネットワークに基づく。例において、NICフレームワークは、図9を参照して説明されたNICフレームワーク(900)である。NICフレームワークは、図10~15を参照して説明されたようなCNNに基づくことができる。ビデオデコーダ(例えば、(1600B)又は(1800))は、上述されたように、NICフレームワーク内の複数のコンポーネントを含むことができる。ニューラルネットワークに基づいたNICフレームワークは事前学習される。ビデオデコーダは、事前学習済みパラメータにより事前学習される。プロセス(2000)は(S2010)へ進む。
(S2010)で、コーディングされたビットストリーム内のニューラルネットワーク更新情報がデコーディングされ得る。ニューラルネットワーク更新情報は、ビデオデコーダ内の少なくとも1つのニューラルネットワーク用であることができる。少なくとも1つのニューラルネットワークは、予め定義されるか、又はコーディングされたビットストリーム若しくはニューラルネットワーク更新情報で示され得る。少なくとも1つのニューラルネットワークは、事前学習済みパラメータの組により設定され得る。ニューラルネットワーク更新情報は、再構成されるべきエンコーディングされた画像に対応し、第1変更パラメータを示すことができる。
例において、第1変更パラメータはスケーリング係数である。ニューラルネットワーク更新情報は、事前学習済みパラメータの組を変更するためのオフセットを更に示すことができる。
例において、第1変更パラメータはオフセットである。
例において、事前学習済みパラメータの組は、少なくとも1つのニューラルネットワークのうちの1つの畳み込み層のバイアスを含む。
例において、事前学習済みパラメータの組は、少なくとも1つのニューラルネットワークのうちの1つの畳み込み層の畳み込みカーネルの重みを含む。
例において、ビデオデコーダは、図18に示されるビデオデコーダ(1800)である。ニューラルネットワークはメインデコーダネットワーク(915)である。
例において、ビデオデコーダは、図16Bに示されるビデオデコーダ(1600B)である。例において、少なくとも1つのニューラルネットワークは、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピパラメータNN(917)、及びハイパーデコーダ(925)のうちの1つである。例えば、少なくとも1つのニューラルネットワークはコンテキストモデルNN(916)である。ビデオデコーダの少なくとも1つのニューラルネットワークは、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピパラメータNN(917)、及びハイパーデコーダ(925)の複数個を含むことができる。
(S2020)で、第1変更パラメータがニューラルネットワーク更新情報に基づき決定され得る。実施形態において、更新されたパラメータはニューラルネットワーク更新情報から取得される。例において、更新されたパラメータは、圧縮解除によってニューラルネットワーク更新情報から取得され得る。例において、ニューラルネットワーク更新情報は、更新されたパラメータが第1変更パラメータ(例えば、1.1のスケーリング係数)と事前学習された変更パラメータ(例えば、1のスケーリング係数)との間の差(例えば、0.1)であることを示し、第1変更パラメータは、更新されたパラメータと事前学習された変更パラメータとの和に応じて計算され得る。実施形態において、第1変更パラメータは、更新されたパラメータであるよう決定される。
(S2030)で、ビデオデコーダ内の少なくとも1つのニューラルネットワークの事前学習済みパラメータの組は、第1変更パラメータに基づき更新され得る。例えば、事前学習済みパラメータの組は、ハイパーデコーダ(925)の図13に示されたCNNの第3畳み込み層(DeConv:3×3 c384 s1)の第1チャネル(例えば、c1)の9つの重みに対応する。
例において、第1変更パラメータがスケーリング係数である場合に、事前学習済みパラメータの組は、置換パラメータの組で夫々置換され、このとき、置換パラメータの組は、スケーリング係数を乗じられた事前学習済みパラメータの組である。
例において、第1変更パラメータはオフセットであり、オフセットは、事前学習済みパラメータの組を更新するよう少なくとも1つのニューラルネットワークの事前学習済みパラメータの組に加えられる。
(S2040)で、ビットストリーム内のエンコーディングされた画像が、更新されたビデオデコーダによって、例えば、更新された少なくとも1つのニューラルネットワークに基づきデコーディングされ得る。(S2040)で生成される出力画像は、如何なる適切なサイズも有する如何なる適切な画像であることもできる。いくつかの例において、出力画像は、空間領域内にある再構成されたロー画像、自然画像、コンピュータにより生成された画像、及び/又は同様のものを含む。
いくつかの例において、ビデオデコーダの出力画像は、空間領域内の残差データを含み、よって、更なる処理が、再構成された画像を出力画像に基づき生成するために使用され得る。例えば、再構成モジュール(874)は、空間領域において、残差データ及び予測結果(インター又はイントラ予測モジュールによって出力される。)を結合して、再構成された画像の部分であり得る再構成されたブロックを形成するよう構成される。デブロッキング動作などのような追加の適切な動作が、視覚品質を改善するために実行され得る。様々な装置のコンポーネントが、(S2040)を達成するよう適切に組み合わされ得る。例えば、図7及び9を参照すると、ビデオデコーダ内のメインデコーダネットワークからの残差データ及び対応する予測結果は、再構成された画像を生成するよう再構成モジュール(874)に供給される。
例において、ビットストリームは、エンコーディングされた画像をデコーディングするためのコンテキストモデルを決定するために使用される1つ以上のエンコーディングされたビットを更に含む。ビデオデコーダは、メインデコーダネットワーク(例えば、(911))、コンテキストモデルネットワーク(例えば、(916))、エントロピパラメータネットワーク(例えば、(917))、及びハイパーデコーダネットワーク(例えば、(925))を含むことができる。少なくとも1つのニューラルネットワークは、メインデコーダネットワーク、コンテキストモデルネットワーク、エントロピパラメータNN、及びハイパーデコーダネットワークのうちの1つ以上を含む。1つ以上のエンコーディングされたビットは、ハイパーデコーダネットワークを用いてデコーディングされ得る。エントロピモデル(例えば、コンテキストモデル)は、デコーディングされたビットと、コンテキストモデルネットワークが利用することができるエンコーディングされた画像の量子化されたレイテントとに基づき、コンテキストモデルネットワーク及びエントロピパラメータネットワークを用いてデコーディングされ得る。エンコーディングされた画像は、メインデコーダネットワーク及びエントロピモデルを用いてデコーディングされ得る。
プロセス(2000)は(S2999)へ進み、終了する。
プロセス(2000)は、様々なシナリオに適切に適応可能であり、プロセス(2000)のステップはそれに応じて調整され得る。プロセス(2000)のステップのうちの1つ以上は、適応、省略、繰り返し、及び/又は結合され得る。如何なる適切な順序もプロセス(2000)を実装するために使用可能である。追加のステップが追加可能である。
例えば、(S2040)で、コーディングされたビットストリーム内の1つ以上の追加のエンコーディングされた画像が、更新されたニューラルネットワークに基づきデコーディングされる。よって、エンコーディングされた画像及び1つ以上の追加のエンコーディングされた画像は、同じニューラルネットワーク更新情報を共有することができる。
例において、ニューラルネットワーク更新情報は、事前学習済みパラメータの第2の組により設定された少なくとも1つのニューラルネットワークのための第2変更パラメータを示す。(S2030)で、少なくとも1つのニューラルネットワークの事前学習済みパラメータの第2の組は、第2変更パラメータに基づき更新され得る。例において、事前学習済みパラメータの組は、少なくとも1つのニューラルネットワークのうちの1つの畳み込み層の畳み込みカーネルの重みを含み、事前学習済みパラメータの第2の組は、少なくとも1つのニューラルネットワークのうちの1つの畳み込み層のバイアスを含む。
開示の実施形態は、別々に使用されても、又は如何なる順序でも結合されてよい。更に、方法(又は実施形態)、エンコーダ、及びデコーダの夫々は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ可読媒体に記憶されているプログラムを実行する。
本開示は、ニューラルネットワークに基づいたエンコーダのようなエンコーダや、ニューラルネットワークに基づいたデコーダのようなデコーダのために使用される方法に如何なる制限も置くものではない。エンコーダ、デコーダ、及び/又は同様のもので使用されるニューラルネットワークは、DNN、CNN、などのような如何なる適切なタイプのニューラルネットワークでもあることができる。
よって、本開示のコンテンツ適応オンライン訓練方法は、種々のタイプのNICフレームワーク、例えば、種々のタイプのエンコーディングDNN、デコーディングDNN、エンコーディングCNN、デコーディングCNN、及び/又は同様のものに適合することができる。
V.開示の実施形態を実装するための例示的なコンピュータシステム
上記の技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つ以上のコンピュータ可読媒体に物理的に記憶され得る。例えば、図21は、開示される対象の特定の実施形態を実装するのに適したコンピュータシステム(2100)を示す。
コンピュータソフトウェアは、1つ以上のコンピュータ中央演算処理装置(CPU)、グラフィクス処理ユニット(GPU)などによって、直接に、又は解釈、マイクロコード実行などを通じて、実行され得る命令を含むコードを生成するように、アセンブリ、コンパイル、リンキングなどのメカニズムに従い得る如何なる適切な機械コード又はコンピュータ言語によってもコーディング可能である。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、インターネット・オブ・シングス(Internet of Things)デバイス、などを含む様々なタイプのコンピュータ又はその構成要素で実行可能である。
コンピュータシステム(2100)に関して図21に示されるコンポーネントは、本質的に例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関して如何なる限定も示唆することを意図しない。コンポーネントの構成は、コンピュータシステム(2100)の例示的な実施形態において説明される構成要素のうちのいずれか1つ又は組み合わせに関して何らかの依存又は要件を有するものとして解釈されるべきではない。
コンピュータシステム(2100)は、特定のヒューマンインターフェース入力デバイスを含んでよい。かようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーボード、スワイプ、データグロープ動作)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず。)を通じた一人以上のユーザによる入力に反応してよい。ヒューマンインターフェースデバイスはまた、音声(例えば、発話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画カメラから取得された写真画像)、映像(例えば、二次元映像、立体視映像を含む三次元映像)などの、人による意識的な入力に必ずしも直接には関係しない特定のメディアを捕捉するためにも使用され得る。
入力ヒューマンインターフェースデバイスは、キーボード(2101)、マウス(2102)、トラックパッド(2103)、タッチスクリーン(2110)、データグローブ(図示せず。)、ジョイスティック(2105)、マイク(2106)、スキャナ(2107)、カメラ(2108)(各1つしか表されていない。)のうちの1つ以上を含んでよい。
コンピュータシステム(2100)は、特定のヒューマンインターフェース出力デバイスも含んでよい。かようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音響、光、及び匂い/味を通じて一人以上のユーザの感覚を刺激し得る。かようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2110)、データグローブ(図示せず。)、又はジョイスティック(2105)による触覚フィードバック、しかし、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る。)、音声出力デバイス(例えば、スピーカ(2109)、ヘッドホン(図示せず。))、視覚出力デバイス(例えば、夫々タッチスクリーン入力機能の有無によらず、夫々触覚フィードバック機能の有無によらず、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それらのうちのいくつかは、立体視出力、仮想現実メガネ(図示せず。)、ホログラフィックディスプレイ及びスモークタンク(図示せず。)などの手段により二次元視覚出力又は三次元よりも多い次元の出力を出力可能なスクリーン(2110))、及びプリンタ(図示せず。)を含んでよい。
コンピュータシステム(2100)は、人がアクセス可能な記憶デバイス及びそれらの関連する媒体、例えば、CD/DVD又は同様の媒体(2121)によるCD/DVD ROM/RW(2120)、サムドライブ(2122)、リムーバブルハードディスク又はソリッドステートドライブ(2123)、レガシー磁気媒体、例えば、テープ及びフロッピー(登録商標)ディスク(図示せず。)、専用のROM/ASIC/PLDベースデバイス、例えば、セキュリティドングル(図示せず。)、なども含むことができる。
当業者であれば、目下開示されている対象に関連して使用されている「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことも理解するはずである。
コンピュータシステム(2100)は、1つ以上の通信ネットワーク(2155)へのインターフェース(2154)も含むことができる。ネットワークは、例えば、ワイヤレス、ワイヤライン、光であることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び工業、実時間、遅延耐性、などであることができる。ネットワークの例には、イーサネット(登録商標)などのローカルエリアネットワーク、ワイヤレスLAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTVワイヤライン又はワイヤレス広域デジタルネットワーク、CANバスを含む車両及び工場ネットワーク、などがある。特定のネットワークは、一般に、特定の汎用デジタルポート又はペリフェラルバス(2149)(例えば、コンピュータシステム(2100)のUSBポートなど)に取り付けられた外付けネットワークインターフェースアダプタを必要とする。他は、一般に、後述されるようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットネットワーク、又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム(2100)のコアに組み込まれる。これらのネットワークのいずれかを使用して、コンピュータシステム(2100)は他のエンティティと通信することができる。そのような通信は、単方向の受信専用(例えば、ブロードキャストTV)又は単方向の送信専用(例えば、特定のCANバスデバイスへのCANバス)であることができ、あるいは、例えば、ローカル若しくは広域デジタルネットワークを使用して他のコンピュータシステムに対して双方向であることができる。特定のプロトコル又はプロトコルスタックが、上述されたようなネットワーク及びネットワークインターフェースの夫々で使用可能である。
上記のヒューマンインターフェースデバイス、人がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(2100)のコア(2140)へ取り付けられ得る。
コア(2140)は、1つ以上の中央演算処理装置(CPU)(2141)、グラフィクス処理ユニット(GPU)(2142)、フィールドプログラマブルゲートエリア(FPGA)(2143)の形をとる専用のプログラム可能処理ユニット、特定のタスクのためのハードウェアアクセラレータ(2144)、グラフィクスアダプタ(2150)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(2145)、ランダムアクセスメモリ(RAM)(2146)、内部のユーザアクセス不能ハードドライブなどの内蔵大容量記憶装置、SSD、など(2147)とともに、システムバス(2148)を通じて接続されてよい。いくつかのコンピュータシステムでは、システムバス(2148)は、追加のCPU、GPUなどによる拡張を可能にするように、1つ以上の物理プラグの形でアクセス可能であることができる。コアのシステムバス(2148)へ直接に又はペリフェラルバス(2149)を通じて、周辺機器が取り付けられ得る。例において、ディスプレイ(2110)は、グラフィクスアダプタ(2150)へ接続され得る。ペリフェラルバスのためのアーキテクチャには、PCI、USBなどがある。
CPU(2141)、GPU(2142)、FPGA(2143)、及びアクセラレータ(2144)は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行可能である。そのコンピュータコードは、ROM(2145)又はRAM(2146)に記憶され得る。一時データもRAM(2146)に記憶可能であり、一方、永続性データは、例えば、内蔵大容量記憶装置(2147)に記憶可能である。メモリデバイスのいずれかへの高速な格納及び読み出しは、キャッシュメモリの使用により可能にされ得る。キャッシュメモリは、1つ以上のCPU(2141)、GPU(2142)、大容量記憶装置(2147)、ROM(2145)、RAM(2146)などと密接に関連し得る。
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構成されたものであることができ、あるいは、それらは、コンピュータソフトウェア技術で通常の知識を有する者によく知られており利用可能である種類のものであることができる。
例として、限定としてではなく、アーキテクチャ(2100)、具体的にはコア(2140)を有するコンピュータシステムは、1つ以上の有形なコンピュータ可読媒体において具現されているソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ、などを含む。)の結果として機能を提供することができる。かようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(2147)又はROM(2145)などの、非一時的な性質であるコア(2140)の特定の記憶装置に加えて、先に紹介されたユーザアクセス可能な大容量記憶装置に関連した媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2140)によって実行可能である。コンピュータ可読媒体には、特定のニーズに応じて、1つ以上のメモリデバイス又はチップが含まれ得る。ソフトウェアは、コア(2140)、及び、具体的には、その中のプロセッサ(CPU、GPU、FPGAなどを含む。)に、RAM(2146)に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することとを含め、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的に、又は代替案として、コンピュータシステムは、本明細書で説明されている特定のプロセス又は特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに又はそれとともに動作することができる、回路内でハードワイヤード又は別なふうに具現されたロジック(例えば、アクセラレータ(2144))の結果として、機能を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶している回路(例えば、集積回路(IC))、実行のためのロジックを具現する回路、又は両方を包含することができる。本開示は、ハードウェア及びソフトウェアの如何なる適切な組み合わせも包含する。
付録A:頭字語
JEM:Joint Exploration Model
VVC:Versatile Video Coding
BMS:Benchmark Set
MV:Motion Vector
HEVC:High Efficiency Video Coding
SEI:Supplementary Enhancement Information
VUI:Video Usability Information
GOP:Group of Picture(s)
TU:Transform Unit(s)
PU:Prediction Unit(s)
CTU:Coding Tree Unit(s)
CTB:Coding Tree Block(s)
PB:Prediction Block(s)
HRD:Hypothetical Reference Decoder
SNR:Signal Noise Ratio
CPU:Central Processing Unit(s)
GPU:Graphics Processing Unit(s)
CRT:Cathode Ray Tube
LCD:Liquid-Crystal Display
OLED:Organic Light-Emitting Diode
CD:Compact Disc
DVD:Digital Video Disc
ROM:Read-Only Memory
RAM:Random Access Memory
ASIC:Application-Specific Integrated Circuit
PLD:Programmable Logic Device
LAN:Local Area Network
GSM:Global System for Mobile communications
LTE:Long-Term Evolution
CANBus:Controller Area Network Bus
USB:Universal Serial Bus
PCI:Peripheral Component Interconnect
FPGA:Field Programmable Gate Area(s)
SSD:Solid-State Drive
IC:Integrated Circuit
CU:Coding Unit
NIC:Neural Image Compression
R-D:Rate-Distortion
E2E:End to End
ANN:Artificial Neural Network
DNN:Deep Neural Network
CNN:Convolution Neural Network
本開示は、いくつかの例示的な実施形態について記載してきたが、本開示の範囲内にある代替、交換、及び様々な置換均等物が存在する。よって、明らかなように、当業者であれば、たとえ本明細書で明示的に図示又は説明されていないとしても、本開示の原理を具現し、よって、その精神及び範囲の中にある多数のシステム及び方法に想到可能である。