図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば通信システム(300)は、ネットワーク(350)を介して相互接続される第1の対の端末デバイス(310)及び(320)を含む。図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を実行する。例えば端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に伝送するために、ビデオデータ(例えば端末デバイス(310)によってキャプチャされるビデオピクチャのストリーム)をコーディングし得る。符号化されたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形態で伝送することができる。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受け取ることができ、コーディングされたビデオデータを復号して、ビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示する。一方向データ伝送は、メディア供給アプリケーション等において一般的であり得る。
別の例では、通信システム(300)は、例えばビデオ会議中に生じ得るコーディングされたビデオデータの双方向伝送を実行する、第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(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つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、符号化ビデオデータ(404)のコピー(407)及び(409)を取り出すことができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は符号化ビデオデータの入力コピー(407)を復号し、そして、ディスプレイ(412)(例えばディスプレイ画面)又は他のレンダリングデバイス(図示せず)上でレンダリングすることができる、ビデオピクチャの出力ストリーム(411)を作成する。いくつかのストリーミングシステムでは、符号化ビデオデータ(404)、(407)及び(409)(例えばビデオビットストリーム)を、特定のビデオコーディング/圧縮規格に従って符号化することができる。これらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、(VVC:Versatile Video Coding)として非公式に知られている。開示される主題はVVCの文脈で使用され得る。
電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
図5は、本開示の一実施形態による、ビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば受信回路)を含むことができる。図4の例のビデオデコーダ(410)の代わりに、ビデオデコーダ(510)を用いることができる。
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つ以上のコーディングされたビデオシーケンスを受け取ることがあり;同じ又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスを受け取り、この場合、各コーディングされたビデオシーケンスの復号は、他のコーディングビデオシーケンスとは独立である。コーディングされたビデオシーケンスはチャネル(501)から受け取られてよく、該チャネルは、符号化ビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであり得る。受信機(531)は、他のデータ、例えばコーディングされたオーディオデータ及び/又は補助データストリームとともに、符号化ビデオデータを受け取ってよく、これらのデータは、それらのそれぞれの使用エンティティ(図示せず)に転送されてよい。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタをなくすために、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」)との間に結合され得る。特定の適用では、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他では、バッファメモリ(515)は、ビデオデコーダ(510)(図示せず)の外側にある可能性がある。更に他では、例えば再生タイミングを処理するためにビデオデコーダ(510)の内部にある別のバッファメモリ(515)に加えて、例えばネットワークジッタをなくすためにビデオデコーダ(510)の外側にバッファメモリ(図示せず)が存在する可能性がある。受信機(531)が、十分な帯域幅及び制御可能性を有するストア/転送デバイスから又は等同期(isosynchronous)ネットワークからデータを受信しているとき、バッファメモリ(515)は必要でないことがあり、あるいは小さいものとすることができる。インターネットのようなベストエフォート・パケットネットワークにおける使用のために、バッファメモリ(515)が必要とされることがあり、そのサイズは比較的大きいものとすることができ、有利には適応サイズとすることができ、少なくとも部分的に、ビデオデコーダ(510)の外側のオペレーティングシステム又は類似の要素(図示せず)において実装されることがある。
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためにパーサ(520)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、電子デバイス(530)の一体部分ではないが図5に示されたように電子デバイス(530)に結合されることができるレンダデバイス(512)(例えばディスプレイ画面)のようなレンダリングデバイスを制御する情報とを含む。レンダリングデバイスの制御情報は、補足強化情報(SEI:Supplemental Enhancement Information)メッセージ又はビデオユーザビリティ情報(VUI:Video Usability Information)パラメータセットフラグメント(図示せず)の形式であってよい。パーサ(520)は、受信される、コーディングされたビデオシーケンスを構文解析/エントロピー復号し得る。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存(context sensitivity)を伴うか伴わない算術コーディング等を含む、様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループについてのサブグループパラメータのセットを、グループに対応する少なくとも1つのパラメータに基づいて抽出することができる。サブグループは、ピクチャのグループ(GOPs:Groups of Pictures)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CUs:Coding Units)、ブロック、変換ユニット(TUs:Transform Units)、予測ユニット(PUs:Prediction Units)等を含むことができる。パーサ(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 Rec. H.265のような規格の所定のビデオ圧縮技術に従って復号動作を実行し得る。コーディングされたビデオシーケンスは、該コーディングされたビデオシーケンスが、ビデオ圧縮技術又は規格の構文と、ビデオ圧縮技術又は規格で文書化されるプロファイルとの両方を守るという意味において、使用されているビデオ圧縮技術又は規格によって指定された構文に準拠し得る。具体的には、プロファイルは、そのプロファイルの下での使用に使用可能な唯一のツールとして、特定のツールを選択することができる。また、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることが、準拠には必要であり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプル(megasamples)で測定される)、最大参照ピクセルサイズ等を制限する。レベルによって設定される限界(limit)は、場合によっては、コーディングされたビデオシーケンスでシグナリングされる仮想リファレンスデコーダ(HRD:Hypothetical Reference Decoder)のバッファ管理のためのHRD仕様及びメタデータを通して更に制限される可能性がある。
実施形態では、受信機(531)は、符号化ビデオとともに追加の(冗長な)データを受け取ることがある。追加のデータは、コーディングされたビデオシーケンスの一部として含まれてよい。追加のデータは、データを適切に復号し、かつ/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば時間的、空間的又は信号対ノイズ比(SNR)強化層(enhancement layers)、冗長スライス、冗長ピクチャ、順方向誤り訂正コード等の形態とすることができる。
図6は、本開示の実施形態による、ビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば送信回路)を含む。図4の例のビデオエンコーダ(403)の代わりに、ビデオエンコーダ(603)を使用することができる。
ビデオエンコーダ(603)は、ビデオサンプルを、ビデオエンコーダ(603)によってコーディングされるべきビデオ画像をキャプチャし得るビデオソース(601)(図6の例では電子デバイス(620)の一部ではない)から受け取ってよい。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば8ビット、10ビット、12ビット、...)、任意の色空間(例えばBT.601 YCrCB、RGB、...)及び任意の適切なサンプリング構造(例えばYCrCb 4:2:0、YCrCb 4:4:4)とすることができるデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムにおいて、ビデオソース(601)は、事前に準備されたビデオを記憶するストレージデバイスであってよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、シーケンスで見るときに動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、この場合、各ピクセルは、使用中のサンプリング構造、色空間等に応じて1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
一実施形態によると、ビデオエンコーダ(603)は、リアルタイムで又はアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディング及び圧縮して、コーディングされたビデオシーケンス(643)にすることができる。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能である。いくつかの実施形態において、コントローラ(650)は、以下で説明されるように、他の機能ユニットを制御し、該他の機能ユニットに機能的に結合される。この結合は、明確性のために図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、ピクチャのグループ(GOP)のレイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(650)は、特定のシステム設計のために最適化された、ビデオエンコーダ(603)と関係する他の適切な機能を有するように構成されることができる。
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過剰に簡略化した説明として、一例では、コーディングループは、ソースコーダ(630)(例えばコーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリーム等のシンボルを作成することを担当する)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダも作成するのと同様の方法で、シンボルを再構成してサンプルデータを作成する(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮は、開示される主題において考慮されるビデオ圧縮技術で可逆であるので)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダ位置(ローカル又はリモート)とは独立のビット正確な結果(bit-exact results)をもたらすので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャのシンクロニシティ(synchronicity)のこの基本原理(及び例えばチャネルエラーのためにシンクロニシティを維持することができない場合の結果として生じるドリフト)は、いくつかの関連する技術でも同様に使用される。
「ローカル」デコーダ(633)の動作は、ビデオデコーダ(510)のような「リモート」デコーダと同じものとすることができ、これは、既に図5に関連して上述されている。しかしながら、図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)は、各コーディングされたピクチャに、特定のコーディングピクチャタイプ(coded picture type)を割り当ててよく、該コーディングピクチャタイプは、それぞれのピクチャに適用され得るコーディングに影響を与え得る。例えばピクチャは、しばしば、次のピクチャタイプのうちの1つとして割り当てられ得る:
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいずれの他のピクチャも使用せずにコーディング及び復号され得るものであり得る。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュ(「IDR:Independent Decoder Refresh」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形並びにそれらのそれぞれの用途及び特徴を知っている。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大1つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して、コーディング及び復号され得るものであり得る。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大2つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して、コーディング及び復号され得るものであり得る。同様に、複数予測ピクチャ(multiple-predictive pictures)は、単一のブロックの再構成のために、2つより多くの参照ピクチャ及び関連するメタデータを使用することができる。
ソースピクチャは、通常、空間的に複数のサンプルブロック(例えば各々4×4、8×8、4×8又は16×16サンプルのブロック)に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックに関連して予測的にコーディングされ得る。例えばIピクチャのブロックは、非予測的にコーディングされてもよく、あるいはそれらは、同じピクチャの既にコーディングされたブロックに関連して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前にコーディングされた1つの参照ピクチャに関連して、空間予測を介して又は時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャに関連して、空間予測を介して又は時間予測を介して予測的にコーディングされ得る。
ビデオエンコーダ(603)は、ITU-T Rec. H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行し得る。コーディングされたビデオデータは、したがって、使用されているビデオコーディング技術又は規格によって指定された構文に従うことができる。
一実施形態では、送信機(640)は、符号化されたビデオとともに追加データを送信してもよい。ソースコーダ(630)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含んでよい。追加データは、時間/空間/SNR強化層、冗長ピクチャ及びスライス、SEIメッセージ、VUIパラメータセットフラグメント等のような他の形式の冗長データを含んでもよい。
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間的相関を使用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を使用する。一例では、符号化/復号中の特定のピクチャは、現在のピクチャと呼ばれ、ブロックに区分化される。現在のピクチャ内のブロックが、ビデオ内の以前にコーディングされて依然としてバッファされている参照ピクチャ内の参照ブロックに類似するとき、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されているケースでは、参照ピクチャを識別する第3次元(third dimension)を有することができる。
いくつかの実施形態では、インターピクチャ予測において双予測技術を使用することができる。双予測技術によると、第1参照ピクチャと第2参照ピクチャのように、両方とも、復号順序でビデオ内の現在のピクチャに先行する(ただし、表示順序では、それぞれ、過去及び将来であり得る)2つの参照ピクチャが使用される。現在のピクチャ内のブロックを、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルとによってコーディングすることができる。ブロックは、第1参照ブロックと第2参照ブロックの組合せによって、予測されることができる。
さらに、コーディング効率を改善するために、インターピクチャ予測においてマージモード技術を使用することができる。
本開示のいくつかの実施形態によると、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックのユニット(unit)において実行される。例えばHEVC規格によると、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に区分化され、ピクチャ内のCTUsは、64×64ピクセル、32×32ピクセル又は16×16ピクセルのように、同じサイズを有する。一般に、CTUは、3つのコーディングツリーブロック(CTBs)を含み、該3つのCTBは、1つのルマ(luma)CTBと2つのクロマCTBである。各CTUは、1つ又は複数のコーディングユニット(CUs)に再帰的に四分木分裂(quadtree split)することができる。例えば64×64ピクセルのCTUを、64×64ピクセルの1つのCUに又は32×32ピクセルの4つのCUに又は16×16ピクセルの16個のCUに分裂することができる。一例では、各CUを分析して、インター予測タイプ又はイントラ予測タイプのような、CUの予測タイプを決定する。CUは、時間的及び/又は空間的予測可能性に依存して、1つ以上の予測ユニット(PUs)に分裂される。一般に、各PUはルマ予測ブロック(PB)と2つのクロマPBsを含む。一実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロックのユニットにおいて実行される。予測ブロックの例としてルマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のような、ピクセルについての値(例えばルマ値)の行列を含んでよい。
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば予測ブロック)を受け取り、処理ブロックを符号化して、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにするように構成される。一例では、ビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用される。
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロック等のような処理ブロックのサンプル値の行列を受け取る。ビデオエンコーダ(703)は、処理ブロックが、例えばレート歪み最適化(rate-distortion optimization)を使用して、イントラモード、インターモード又は双予測(bi-prediction)モードを使用して最も良くコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされるべきであるとき、ビデオエンコーダ(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)は、コーディングされたビデオシーケンスの一部である、コーディングされたピクチャを受け取り、コーディングされたピクチャを復号して再構成ピクチャを生成するよう構成される。一例では、図4の例のビデオデコーダ(410)の代わりにビデオデコーダ(810)が使用される。
図8の例では、ビデオデコーダ(810)は、図8に示されるように一緒に結合される、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)及びイントラデコーダ(872)を含む。
エントロピーデコーダ(871)は、コーディングされたピクチャから、該コーディングされたピクチャが構成される構文要素を表す特定のシンボルを再構成するよう構成されることができる。そのようなシンボルは、例えばブロックがコーディングされるモード(例えばイントラモード、インターモード、双予測モード、後者2つのマージサブモード又は別のサブモード等)、イントラデコーダ(872)又はインターデコーダ(880)によってそれぞれ予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えばイントラ予測情報又はインター予測情報等)、例えば量子化された変換係数の形態の残差情報等を含むことができる。一例では、予測モードがインターモード又は双予測モードであるとき、インター予測情報がインターデコーダ(880)に提供され、予測モードがイントラ予測モードであるとき、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化の対象となり得、残差デコーダ(873)に提供される。
インターデコーダ(880)は、インター予測情報を受け取り、該インター予測情報に基づいてインター予測結果を生成するよう構成される。
イントラデコーダ(872)は、イントラ予測情報を受け取り、該イントラ予測情報に基づいて予測結果を生成するよう構成される。
残差デコーダ(873)は、逆量子化を実行して非量子化(de-quantized)変換係数を抽出し、非量子化変換係数を処理して残差を周波数領域から空間領域に変換するよう構成され得る。残差デコーダ(873)はまた、特定の制御情報(量子化器パラメータ(QP:Quantizer Parameter)を含む)も要求することがあり、この情報は、エントロピーデコーダ(871)によって提供され得る(これは低量の制御情報のみであり得るので、データ経路は図示されない)。
再構成モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と、(場合によっては、インター又はイントラ予測モジュールによる出力としての)予測結果とを組み合わせて再構成ブロックを形成するよう構成され、該再構成ブロックは、再構成ビデオの一部であり得る再構成ピクチャの一部であり得る。視覚品質を改善するために、デブロッキング操作等の他の適切な操作を実行することができることに留意されたい。
ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、任意の適切な技術を使用して実装されることができることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、1つ以上の集積回路を使用して実装されることができる。別の実施形態では、ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装されることができる。
本開示は、人工知能(AI)ベースのニューラル画像圧縮(NIC:neural image compression)のようなニューラル画像圧縮技術及び/又はニューラルビデオ圧縮技術に関連するビデオコーディング技術を説明する。本開示の態様は、ニューラルネットワークに基づくエンドツーエンド(E2E)最適化画像コーディングフレームワークのためのブロックワイズ・コンテンツ適応オンライントレーニング(block-wise content-adaptive online training)NIC方法のような、NICにおけるコンテンツ適応オンライントレーニングを含む。ニューラルネットワーク(NN)は、ディープニューラルネットワーク(DNN)、畳み込みニューラルネットワーク(CNN)等のような人工ニューラルネットワークを含むことができる。
一実施形態では、関連するハイブリッドビデオコーデックを全体として最適化することは難しい。例えばハイブリッドビデオコーデックにおける単一のモジュール(例えばエンコーダ)の改善は、全体的な性能におけるコーディングゲインをもたらさない可能性がある。NNベースのビデオコーディングフレームワークでは、学習プロセス又はトレーニングプロセス(例えば機械学習プロセス)を実行することによって、最終目標(例えば本開示で記載されるレート歪み損失Lのようなレート歪み性能)を改善するために、異なるモジュールを入力から出力まで共同で最適化することができ、したがって、E2E最適化NICをもたらすことができる。
例示的なNICフレームワーク又はシステムは、以下のように説明することができる。NICフレームワークは、ニューラルネットワークエンコーダ(例えばDNNのようなニューラルネットワークに基づくエンコーダ)への入力として入力ブロックxを使用して、例えば記憶及び伝送目的のためにコンパクトであり得る圧縮表現(例えばコンパクト表現)
を計算することができる。ニューラルネットワークデコーダ(例えばDNNのようなニューラルネットワークに基づくデコーダ)は、圧縮表現
を入力として使用して、出力ブロック(再構成ブロックとも呼ばれる)
を再構成することができる。様々な実施形態では、入力ブロックxと再構成ブロック
は、空間領域にあり、圧縮表現
は、空間領域とは異なる領域にある。いくつかの例では、圧縮表現
は量子化され、エントロピーコーディングされる。
いくつかの例では、NICフレームワークは変分オートエンコーダ(VAE)構造を使用することができる。VAE構造では、ニューラルネットワークエンコーダは、入力ブロックx全体をニューラルネットワークエンコーダへの入力として直接使用することができる。入力ブロックx全体は、圧縮表現
を計算するためにブラックボックスとして機能する、ニューラルネットワーク層のセットを通過することができる。圧縮表現
は、ニューラルネットワークエンコーダの出力である。ニューラルネットワークデコーダは、圧縮表現
全体を入力としてとることができる。圧縮表現
は、再構成ブロック
を計算するために別のブラックボックスとして機能するニューラルネットワーク層の別のセットを通過することができる。レート歪み(R-D)損失
を最適化して、再構成ブロック
の歪み損失
と、トレードオフハイパーパラメータλを用いるコンパクト表現
のビット消費Rとの間のトレードオフを達成することができる。
ニューラルネットワーク(例えばANN)は、タスク固有のプログラミングなしに、例からタスクを実行することを学習することができる。ANNは、接続されたノード又は人工ニューロンで構成されることができる。ノード間の接続は、第1ノードから第2ノード(例えば受信ノード)に信号を送信することができ、該信号を、接続の重み係数によって示される重みによって修正することができる。受信ノードは、信号を受信ノードに送信するノードからの信号(すなわち、受信ノードに対する入力信号)を処理し、次いで、関数を入力信号に適用することによって出力信号を生成することができる。関数は線形関数とすることができる。一例では、出力信号は、入力信号の加重総和(weighted summation)である。一例では、出力信号は、バイアス項によって示され得るバイアスによって更に修正され、したがって、出力信号は、バイアスと入力信号の加重総和との和(sum)である。関数は、例えばバイアスと入力信号の加重総和との加重和(weighted sum)又は和に対する非線形演算を含むことができる。出力信号を、受信ノードに接続されたノード(ダウンストリームノード)に送信することができる。ANNは、パラメータ(例えば接続の重み及び/又はバイアス)によって表現又は構成されることができる。重み及び/又はバイアスを反復的に調整することができる例でANNをトレーニングすることによって、重み及び/又はバイアスを取得することができる。決定された重み及び/又は決定されたバイアスで構成されるトレーニングされたANNを使用して、タスクを実行することができる。
ANN内のノードを、任意の適切なアーキテクチャで編成することができる。様々な実施形態では、ANN内のノードは、ANNへの入力信号を受信する入力層と、ANNからの出力信号を出力する出力層とを含む層として編成される。一実施形態では、ANNは、入力層と出力層との間の隠れ層のような層を更に含む。異なる層は、該異なる層のそれぞれの入力に対して異なる種類の変換を実行することができる。信号は、入力層から出力層へ移動することができる。
入力層と出力層との間に複数の層を有するANNを、DNNと称することができる。一実施形態では、DNNは、データがループバックなしで入力層から出力層に流れるフィードフォワードネットワークである。一例では、DNNは、1つのレイヤ内の各ノードが次のレイヤのすべてのノードに接続される完全接続ネットワークである。一実施形態では、DNNは、データが任意の方向に流れることができるリカレントニューラルネットワークである。一実施形態では、DNNはCNNである。
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行列)に沿って、ストライドと呼ばれるサイズだけシフトすることができ、したがって、畳み込み演算は、特徴マップ(feature map)又は活性化マップ(activation map)(例えば別の2D行列)を生成し、これは、CNN内の次の層の入力に寄与する。例えば入力信号は、256×256サンプルを有する2Dブロックであり、ストライドは、2サンプル(例えば2のストライド(a stride of 2))である。2のストライドでは、畳み込みカーネルは、2サンプルだけ、X方向(例えば水平方向)及び/又はY方向(例えば垂直方向)に沿ってシフトする。
複数の畳み込みカーネルを、同じ畳み込み層で入力信号に適用して、それぞれ複数の特徴マップを生成することができ、ここで、各特徴マップは、入力信号の特有の特徴を表すことができる。一般に、N個のチャネル(すなわち、N個の畳み込みカーネル)を有する畳み込み層、M×Mサンプルを有する各畳み込みカーネル及びストライドSを、Conv:M×M cN sSとして指定することができる。例えば192のチャネルの畳み込みレイヤ、5×5サンプルを有する各畳み込みカーネル及び2のストライドは、Conv:5×5 c192 s2として指定される。隠れ層は、2D逆畳み込み(deconvolution)のような逆畳み込みを実行する(例えばデコーダで使用される)逆畳み込み層を含むことができる。逆畳み込みは畳み込みの逆である。192のチャネルの逆畳み込みレイヤ、5×5サンプルを有する各逆畳み込みカーネル及び2のストライドは、DeConv:5×5 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つの層における複数のノードからの出力を次の層内の単一のノードに結合することによってデータの寸法を低減することができる。入力として特徴マップを有するプーリング層のプーリング操作を以下に説明する。この説明を、他の入力信号に適切に適合させることができる。特徴マップを、サブ領域(例えば矩形サブ領域)に分割することができ、例えば平均プーリングの平均値又は最大プーリングの最大値をとることによって、それぞれのサブ領域内の特徴を独立に単一の値にダウンサンプリング(又はプーリング)することができる。
プーリング層は、ローカルプーリング、グローバルプーリング、最大プーリング、平均プーリング及び/又は同様のもののようなプーリングを実行することができる。プーリングは非線形ダウンサンプリングの一形態である。ローカルプーリングは、特徴マップ内の少数のノード(例えば2×2ノードのようなノードのローカルクラスター)を結合する。グローバルプーリングは、例えば特徴マップのすべてのノードを結合することができる。
プーリング層は、表現のサイズを低減することができ、したがって、パラメータの数、メモリフットプリント及びCNNにおける計算量を低減することができる。一例では、プーリング層が、CNN内の連続した畳み込み層の間に挿入される。一例では、プーリング層の後に、整流線形ユニット(ReLU:rectified linear unit)層のような活性化関数が続く。一例では、プーリング層は、CNN内の連続した畳み込み層の間で省略される。
正規化層は、ReLU、leaky ReLU、GDN(generalized divisive normalization)、逆GDN(IGDN)等とすることができる。ReLUは、負の値をゼロに設定することによって、特徴マップのような入力信号から負の値を除去するために、非飽和活性化関数(non-saturating activation function)を適用することができる。leaky ReLUは、平坦な傾き(例えば0)の代わりに、負の値に対して小さな傾き(例えば0.01)を有することができる。したがって、値xが0より大きい場合、leaky ReLUからの出力はxである。そうでなければ、leaky ReLUからの出力は、xに小さな傾き(例えば0.01)を乗じた値である。一例では、傾きはトレーニング前に決定され、したがって、トレーニング中には学習されない。
DNNベース又はCNNベースの画像圧縮方法のようなNNベースの画像圧縮方法では、画像全体を直接符号化する代わりに、ブロックベース又はブロックワイズのコーディング機構は、FVCのようなDNNベースのビデオコーディング規格で画像を圧縮するのに有効であり得る。画像全体を同じ(又は様々な)サイズのブロックに分割することができ、ブロックを個々に圧縮することができる。一実施形態では、画像は、等しいサイズ又は等しくないサイズのブロックに分裂され得る。画像の代わりに、分裂されたブロックを圧縮することができる。図9Aは、本開示の一実施形態によるブロックワイズの画像コーディングの一例を示す。画像(980)を、ブロック、例えばブロック(981)~(996)に分割することができる。ブロック(981)~(996)を、例えば走査順序に従って圧縮することができる。図9Aに示される例では、ブロック(981)~(989)は既に圧縮されており、ブロック(990)~(996)が圧縮されることになる。
画像はブロックとして扱うことができる。一実施形態では、画像は、ブロックへ分裂させることなく圧縮される。画像全体は、E2E NICフレームワークの入力とすることができる。
図9Bは、本開示の一実施形態による、例示的なNICフレームワーク(900)(例えばNICシステム)を示す。NICフレームワーク(900)は、DNN及び/又はCNNのようなニューラルネットワークに基づくことができる。NICフレームワーク(900)を使用して、ブロックを圧縮(例えば符号化)し、圧縮されたブロック(例えば符号化ブロック)を解凍(例えば復号又は再構成)することができる。NICフレームワーク(900)は、ニューラルネットワークを使用して実装される2つのサブニューラルネットワーク、すなわち、第1サブNN(951)と第2サブNN(952)を含むことができる。
第1サブNN(951)は、オートエンコーダに類似することができ、入力ブロックxの圧縮ブロック
を生成し、該圧縮ブロック
を解凍して、再構成ブロック
を取得するようにトレーニングされることができる。第1サブNN(951)は、メインエンコーダニューラルネットワーク(又はメインエンコーダネットワーク)(911)、量子化器(912)、エントロピーエンコーダ(913)、エントロピーデコーダ(914)及びメインデコーダニューラルネットワーク(又はメインデコーダネットワーク)(915)のような複数の構成要素(又はモジュール)を含むことができる。図9Bを参照すると、メインエンコーダネットワーク(911)は、入力ブロックx(例えば圧縮又は符号化されるべきブロック)から、潜在要素(latent)又は潜在表現(latent representation)yを生成することができる。一例では、メインエンコーダネットワーク(911)は、CNNを使用して実装される。潜在表現yと入力ブロックxとの間の関係を、式2を使用して説明することができる。
y=f
1(x
1; θ
1) 式2
ここで、パラメータθ
1は、メインエンコーダネットワーク(911)の畳み込みカーネルで使用される重み及びバイアス(メインエンコーダネットワーク(911)でバイアスが使用される場合)のようなパラメータを表す。
量子化器(912)を使用して潜在表現yを量子化して、量子化潜在要素(quantized latent)
を生成することができる。量子化潜在要素
を、例えばエントロピーエンコーダ(913)による可逆圧縮を使用して圧縮して、入力ブロックxの圧縮表現
である圧縮ブロック(例えば符号化ブロック)
(931)を生成することができる。エントロピーエンコーダ(913)は、ハフマンコーディング、算術コーディング等のようなエントロピーコーディング技術を使用することができる。一例では、エントロピーエンコーダ(913)は、算術符号化を使用し、算術エンコーダである。一例では、符号化ブロック(931)は、コーディングされたビットストリームで送信される。
符号化ブロック(931)を、エントロピーデコーダ(914)によって解凍(例えばエントロピー復号)して、出力を生成することができる。エントロピーデコーダ(914)は、エントロピーエンコーダ(913)で使用されるエントロピー符号化技術に対応するハフマンコーディング、算術コーディング等のようなエントロピーコーディング技術を使用することができる。一例では、エントロピーデコーダ(914)は、算術復号を使用し、算術デコーダである。一例では可逆圧縮がエントロピーエンコーダ(913)で使用され、可逆解凍がエントロピーデコーダ(914)で使用され、符号化ブロック(931)の伝送等に起因するノイズは省くことができ、エントロピーデコーダ(914)からの出力は、量子化潜在要素
である。
メインデコーダネットワーク(915)は、量子化潜在要素
を復号して、再構成ブロック
を生成することができる。一例では、メインデコーダネットワーク(915)は、CNNを使用して実装される。再構成ブロック
(すなわち、メインデコーダネットワーク(915)の出力)と量子化潜在要素
(すなわち、メインデコーダネットワーク(915)の入力)との間の関係を、式3を使用して説明することができる。
ここで、パラメータθ
2は、メインデコーダネットワーク(915)の畳み込みカーネルで使用される重み及びバイアス(メインデコーダネットワーク(915)でバイアスが使用される場合)のようなパラメータを表す。したがって、第1サブNN(951)は、入力ブロックxを圧縮(例えば符号化)して符号化ブロック(931)を取得し、符号化ブロック(931)を解凍(例えば復号)して再構成ブロック
を取得することができる。再構成ブロック
は、量子化器(912)によって導入される量子化損失のために、入力ブロックxと異なる可能性がある。
第2サブNN(952)は、エントロピーコーディングに使用される量子化潜在要素
にわたってエントロピーモデル(例えば事前確率モデル)を学習することができる。したがって、エントロピーモデルは、条件付きエントロピーモデル、例えば入力ブロックxに依存するガウス混合モデル(GMM)、ガウススケールモデル(GSM)とすることができる。第2サブNN(952)は、コンテキストモデルNN(916)、エントロピーパラメータNN(917)、ハイパーエンコーダ(921)、量子化器(922)、エントロピーエンコーダ(923)、エントロピーデコーダ(924)及びハイパーデコーダ(925)を含むことができる。コンテキストモデルNN(916)で使用されるエントロピーモデルは、潜在要素(例えば量子化潜在要素
)に対する自己回帰モデルとすることができる。一例において、ハイパーエンコーダ(921)、量子化器(922)、エントロピーエンコーダ(923)、エントロピーデコーダ(924)及びハイパーデコーダ(925)は、ハイパーニューラルネットワーク(例えばハイパープライア(hyperprior)NN)を形成する。ハイパーニューラルネットワークは、コンテキストベースの予測を補正するのに有用な情報を表すことができる。コンテキストモデルNN(916)及びハイパーニューラルネットワークからのデータを、エントロピーパラメータNN(917)によって組み合わせることができる。エントロピーパラメータNN(917)は、条件付きガウスエントロピーモデル(例えばGMM)のようなエントロピーモデルのための平均及びスケールパラメータのようなパラメータを生成することができる。
図9Bを参照すると、エンコーダ側では、量子化器(912)からの量子化潜在要素
がコンテキストモデルNN(916)に供給される。デコーダ側では、エントロピーデコーダ(914)からの量子化潜在要素
がコンテキストモデルNN(916)に供給される。コンテキストモデルNN(916)を、CNNのようなニューラルネットワークを使用して実装することができる。コンテキストモデルNN(916)は、該コンテキストモデルNN(916)に利用可能な量子化潜在要素
であるコンテキスト
に基づいて出力O
cm,iを生成することができる。コンテキスト
は、エンコーダ側で以前に量子化された潜在要素又はデコーダ側で以前にエントロピー復号された量子化された潜在要素を含むことができる。コンテキストモデルNN(916)の出力O
cm,iと入力(例えば
)との間の関係を、式4を使用して説明することができる。
ここで、パラメータθ
3は、コンテキストモデルNN(916)の畳み込みカーネルで使用される重み及びバイアス(コンテキストモデルNN(916)でバイアスが使用される場合)のようなパラメータを表す。
コンテキストモデルNN(916)からの出力Ocm,i及びハイパーデコーダ(925)からの出力Ohcは、エントロピーパラメータNN(917)に供給されて、出力Oepを生成する。エントロピーパラメータNN(917)を、CNNのようなニューラルネットワークを使用して実装することができる。エントロピーパラメータNN(917)の出力Oepと入力(例えばOcm,i及びOhc)との間の関係を、式5を使用して説明することができる。
Oep=f4(Ocm,i, Ohc; θ4) 式5
ここで、パラメータθ4は、エントロピーパラメータNN(917)の畳み込みカーネルで使用される重み及びバイアス(エントロピーパラメータNN(917)でバイアスが使用される場合)のようなパラメータを表す。エントロピーパラメータNN(917)の出力Oepを、エントロピーモデルの決定(例えば条件付け)に使用することができ、したがって、条件付けされたエントロピーモデルは、例えばハイパーデコーダ(925)からの出力Ohcを介して、入力ブロックxに依存し得る。一例では、出力Oepは、エントロピーモデル(例えばGMM)を条件付け(condition)するために使用される平均及びスケールパラメータのようなパラメータを含む。図9Bを参照すると、エントロピーモデル(例えば条件付けされたエントロピーモデル)は、エントロピーエンコーダ(913)及びエントロピーデコーダ(914)によって、それぞれエントロピーコーディング及びエントロピー復号において使用され得る。
第2サブNN(952)を、以下に説明することができる。潜在要素yをハイパーエンコーダ(921)に供給して、ハイパー潜在要素(hyper latent)zを生成することができる。一例では、ハイパーエンコーダ(921)は、CNNのようなニューラルネットワークを用いて実装される。ハイパー潜在要素zと潜在要素yとの間の関係を、式6を使用して説明することができる。
z=f5(y; θ5) 式6
ここで、パラメータθ5は、ハイパーエンコーダ(921)の畳み込みカーネルで使用される重み及びバイアス(ハイパーエンコーダ(921)でバイアスが使用される場合)のようなパラメータを表す。
ハイパー潜在要素zは量子化器(922)によって量子化され、量子化潜在要素
を生成する。量子化潜在要素
を、例えばエントロピーエンコーダ(923)による可逆圧縮を使用して圧縮し、ハイパーニューラルネットワークから符号化ビット(932)のようなサイド情報(side information)を生成することができる。エントロピーエンコーダ(923)は、ハフマンコーディング、算術コーディング等のようなエントロピーコーディング技術を使用することができる。一例では、エントロピーエンコーダ(923)は、算術エンコーダを使用し、算術エンコーダである。一例では、符号化ビット(932)のようなサイド情報を、コーディングされたビットストリームにおいて、例えば符号化ブロック(931)とともに送信することができる。
符号化ビット(932)のようなサイド情報を、エントロピーデコーダ(924)によって解凍(例えばエントロピー復号)して出力を生成することができる。エントロピーデコーダ(924)は、ハフマンコーディング、算術コーディング等のようなエントロピーコーディング技術を使用することができる。一例では、エントロピーデコーダ(924)は、算術復号を使用し、算術デコーダである。一例では、可逆圧縮がエントロピーエンコーダ(923)で使用され、可逆解凍がエントロピーデコーダ(924)で使用され、サイド情報の伝送等に起因するノイズを省くことができ、エントロピーデコーダ(924)からの出力は、量子化潜在要素
とすることができる。ハイパーデコーダ(925)は、量子化潜在要素
を復号して出力O
hcを生成することができる。出力O
hcと量子化潜在要素
との間の関係を、式7を使用して説明することができる。
ここで、パラメータθ
6は、ハイパーデコーダ(925)の畳み込みカーネルで使用される重み及びバイアス(ハイパーデコーダ(925)でバイアスが使用される場合)のようなパラメータを表す。
上述のように、圧縮又は符号化ビット(932)を、コーディングされたビットストリームにサイド情報として追加することができ、これは、エントロピーデコーダ(914)が、条件付きエントロピーモデルを使用することを可能にする。したがって、エントロピーモデルはブロック依存で空間的に適応的なものとすることができ、したがって、固定エントロピーモデルよりも正確であることができる。
NICフレームワーク(900)は、例えば図9Bに示される1つ以上の構成要素を省略し、図9Bに示される1つ以上の構成要素を修正し、かつ/又は図9Bに示されない1つ以上の構成要素を含むように、適切に適合され得る。一例では、固定エントロピーモデルを使用するNICフレームワークは、第1サブNN(951)を含み、第2サブNN(952)は含まない。一例では、NICフレームワークは、エントロピーエンコーダ(923)及びエントロピーデコーダ(924)を除いて、NICフレームワーク(900)内の構成要素を含む。
一実施形態では、図9Bに示される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つのセットを含み、層の各セットは、畳み込み層5×5 c192 s2とそれに続くGDN層を含む。図10に示される1つ以上の層を修正及び/又は省略することができる。追加の層をメインエンコーダネットワーク(911)に追加することができる。
図11は、本開示の一実施形態による、メインデコーダネットワーク(915)の例示的なCNNを示す。例えばメインデコーダネットワーク(915)は、層の3つのセットを含み、層の各セットは、逆畳み込み層5×5 c192 s2とそれに続くIGDN層を含む。加えて、層の3つのセットの後に、逆畳み込み層5×5 c3 s2が続き、それにIGDN層が続く。図11に示される1つ以上の層を修正及び/又は省略することができる。追加の層をメインデコーダネットワーク(915)に追加することができる。
図12は、本開示の一実施形態による、ハイパーエンコーダ(921)の例示的なCNNを示す。例えばハイパーエンコーダ(921)は、畳み込み層3×3 c192 s1とそれに続くleaky ReLU、畳み込み層5×5 c192 s2とそれに続くleaky ReLU、そして畳み込み層5×5 c192 s2を含む。図12に示される1つ以上の層を修正及び/又は省略することができる。追加の層をハイパーエンコーダ(921)に追加することができる。
図13は、本開示の一実施形態による、ハイパーデコーダ(925)の例示的なCNNを示す。例えばハイパーデコーダ(925)は、逆畳み込み層5×5 c192 s2とそれに続くleaky ReLU、逆畳み込み層5×5 c288 s2とそれに続くleaky ReLU、そして逆畳み込み層3×3 c384 s1を含む。図13に示される1つ以上の層は修正及び/又は省略することができる。追加の層をハイパーデコーダ(925)に追加することができる。
図14は、本開示の一実施形態による、コンテキストモデルNN(916)の例示的なCNNを示す。例えばコンテキストモデルNN(916)は、コンテキスト予測のためのマスクされた畳み込み5×5 c384 s1を含み、したがって、式4のコンテキスト
は、限定されたコンテキスト(例えば5×5の畳み込みカーネル)を含む。図14の畳み込み層を修正することができる。追加のレイヤをコンテキストモデルNN(916)に追加することができる。
図15は、本開示の一実施形態による、エントロピーパラメータNN(917)の例示的なCNNを示す。例えばエントロピーパラメータNN(917)は、畳み込み層1×1 c640 s1とそれに続くleaky ReLU、畳み込み層1×1 c512 s1とそれに続くleaky ReLU、そして畳み込み層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)で使用されるとき、追加のパラメータを含めることができる。
図9Bを参照すると、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つ以上の構成要素をトレーニングすることができる。トレーニングブロックのセットは、任意の適切なサイズを有する任意の適切なブロックを含むことができる。いくつかの例では、トレーニングブロックのセットは、空間領域内にある生画像、自然画像、コンピュータ生成画像及び/又は同様のものからのブロックを含む。いくつかの例では、トレーニングブロックのセットは、空間領域内の残差データを有する残差ブロック又は残差画像からのブロックを含む。残差データを、残差計算器(例えば残差計算器(723))によって計算することができる。いくつかの例では、生画像及び/又は残差データを含む残差画像を直接使用して、NICフレームワーク内のニューラルネットワークをトレーニングすることができる。したがって、生画像、残差画像、生画像からのブロック及び/又は残差画像からのブロックを使用して、NICフレームワーク内のニューラルネットワークをトレーニングすることができる。
簡潔性の目的のために、以下では、トレーニングプロセスは、例としてトレーニングブロックを使用して説明される。説明を、トレーニング画像に適切に適合させることができる。トレーニングブロックのセットのトレーニングブロックtを、図9Bの符号化プロセスを通過させて、圧縮表現(例えばビットストリームへの符号化情報)を生成することができる。符号化情報を、図9Bで説明される復号プロセスを通過させて、再構成ブロック
を計算して再構成することができる。
NICフレームワーク(900)では、2つの競合する目標、例えば再構成品質とビット消費がバランスがとれられる。品質損失関数(例えば歪み又は歪み損失)
を使用して、再構成(例えば再構成ブロック
)と元のブロック(例えばトレーニングブロックt)との間の差のような再構成品質を示すことができる。レート(又はレート損失)Rを使用して、圧縮表現のビット消費を示すことができる。一例では、レート損失Rは、例えばコンテキストモデルを決定する際に使用されるサイド情報を更に含む。
ニューラル画像圧縮のために、量子化の微分可能な近似をE2E最適化において使用することができる。様々な例において、ニューラルネットワークベースの画像圧縮のトレーニングプロセスでは、ノイズ注入が量子化をシミュレートするために使用され、したがって、量子化は、量子化器(例えば量子化器(912))によって実行される代わりに、ノイズ注入によってシミュレートされる。したがって、ノイズ注入を用いるトレーニングは、量子化誤差を変動的に近似することができる。ピクセル当たりのビット(BPP:bits per pixel)推定器を使用してエントロピーコーダをシミュレートすることができ、したがって、エントロピーコーディングは、エントロピーエンコーダ(例えば(913))とエントロピーデコーダ(例えば(914))によって実行される代わりに、BPP推定器によってシミュレートされる。したがって、トレーニングプロセス中の式1で示される損失関数Lにおけるレート損失Rは、例えばノイズ注入及びBPP推定器に基づいて推定することができる。一般に、より高いレートRはより低い歪みDを許容することができ、より低いレートRはより高い歪みDをもたらすことができる。したがって、式1におけるハイパーパラメータλのトレードオフを使用して、共同R-D損失L(joint R-D loss L)を最適化することができ、ここで、Lを、λDとRの和として最適化することができる。共同R-D損失Lが最小化又は最適化されるように、トレーニングプロセスを使用して、NICフレームワーク(900)内の1つ以上の構成要素(例えば(911)(915))のパラメータを調整することができる。一例では、ハイパーパラメータλのトレードオフを使用して、次のように共同レート歪み(R-D)損失を最適化することができる:
ここで、Eは、符号化前の元のブロック残差と比較した、復号ブロック残差の歪みを測定し、これは、残差符号化/復号DNN及び符号化/復号DNNについての正規化損失として機能する。βは、正規化損失の重要性のバランスをとるために使用されるハイパーパラメータである。
様々なモデルを使用して、歪み損失Dとレート損失Rを決定し、したがって、式1の共同R-D損失Lを決定することができる。一例では、歪み損失
は、平均二乗誤差、マルチスケール構造類似性(MS-SSIM:multiscale structural similarity)品質インデックス、ピーク信号対雑音比(PSNR)とMS-SSIMの重み付けされた組合せ等に基づくメトリックである、ピーク信号対雑音比(PSNR)として表される。
一例では、トレーニングプロセスの目標は、エンコーダ側で使用されるビデオエンコーダのような符号化ニューラルネットワーク(例えば符号化DNN)と、デコーダ側で使用されるビデオデコーダのような復号ニューラルネットワーク(例えば復号DNN)をトレーニングすることである。一例では、図9Bを参照すると、符号化ニューラルネットワークは、メインエンコーダネットワーク(911)、ハイパーエンコーダ(921)、ハイパーデコーダ(925)、コンテキストモデルNN(916)及びエントロピーパラメータNN(917)を含むことができる。復号ニューラルネットワークは、メインデコーダネットワーク(915)、ハイパーデコーダ(925)、コンテキストモデルNN(916)及びエントロピーパラメータNN(917)を含むことができる。ビデオエンコーダ及び/又はビデオデコーダは、NNに基づく及び/又はNNに基づかない他の構成要素を含むことができる。
NICフレームワーク(例えばNICフレームワーク(900))を、E2E方式でトレーニングすることができる。一例では、符号化ニューラルネットワーク及び復号ニューラルネットワークは、E2E方式で逆伝播勾配に基づくトレーニングプロセスにおいて一緒に更新される。
NICフレームワーク(900)内のニューラルネットワークのパラメータがトレーニングされた後、NICフレームワーク(900)内の1つ以上の構成要素を使用してブロックを符号化及び/又は復号することができる。一実施形態では、エンコーダ側では、ビデオエンコーダは、入力ブロックxを符号化して、ビットストリーム内で送信される符号化ブロック(931)にするように構成される。ビデオエンコーダは、NICフレームワーク(900)内の複数の構成要素を含むことができる。一実施形態では、デコーダ側では、対応するビデオデコーダは、ビットストリーム内の符号化ブロック(931)を復号して、再構成ブロック
にするように構成される。ビデオデコーダは、NICフレームワーク(900)内の複数の構成要素を含むことができる。
一例では、ビデオエンコーダは、例えばコンテンツ適応オンライントレーニングが用いられるとき、NICフレームワーク(900)内のすべての構成要素を含む。
図16Aは、本開示の一実施形態による例示的ビデオエンコーダ(1600A)を示す。ビデオエンコーダ(1600A)は、図9Bを参照して説明した、メインエンコーダネットワーク(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)の例は、図9Bに関連して説明されている。図18を参照すると、ビデオデコーダ(1800)は、メインデコーダネットワーク(915)及びエントロピーデコーダ(914)を含む。メインデコーダネットワーク(915)及びエントロピーデコーダ(914)の例は、図9Bに関連して説明されている。図17及び図18を参照すると、ビデオエンコーダ(1700)は、ビットストリームで送信されるべき符号化ブロック(931)を生成することができる。ビデオデコーダ(1800)は、符号化ブロック(931)を受け取って復号することができる。
上述のように、ビデオエンコーダ及びビデオデコーダを含むNICフレームワーク(900)を、トレーニング画像のセット内の画像及び/又はブロックに基づいてトレーニングすることができる。いくつかの例において、圧縮(例えば符号化)及び/又は送信されるべき1つ以上のブロックは、トレーニングブロックのセットとは著しく異なる特性を有する。したがって、トレーニングブロックのセットに基づいてトレーニングされたビデオエンコーダ及びビデオデコーダをそれぞれ使用して1つ以上のブロックを符号化及び復号することは、比較的不十分なR-D損失L(例えば比較的大きな歪み及び/又は比較的大きなビットレート)をもたらす可能性がある。したがって、本開示の態様は、NICのためのブロックワイズ・コンテンツ適応オンライントレーニング方法のような、NICのためのコンテンツ適応オンライントレーニング方法を説明する。
ブロックワイズ・コンテンツ適応オンライントレーニング方法では、入力画像をブロックに分裂させることができ、該ブロックのうちの1つ以上を使用して、レート歪み性能を最適化することによって、事前トレーニングされたNICフレームワーク内の1つ以上のパラメータを更新して1つ以上の置換パラメータにすることができる。1つ以上の置換パラメータ又は1つ以上の置換パラメータのサブセットを示すニューラルネットワーク更新情報を、ブロックのうちの符号化される1つ以上のブロックとともにビットストリームに符号化することができる。デコーダ側では、ビデオデコーダは、ブロックのうちの符号化された1つ以上のブロックを復号することができ、1つ以上の置換パラメータ又は1つ以上の置換パラメータのサブセットを使用することによって、より良好な圧縮性能を達成することができる。ブロックワイズ・コンテンツ適応オンライントレーニング方法は、事前トレーニングされたE2E NIC圧縮方法の圧縮性能を高めるための前処理ステップ(例えば事前符号化ステップ)として使用されることができる。
トレーニングブロックのセットに基づくトレーニングプロセスと、圧縮(例えば符号化)及び/又は送信される1つ以上のブロックに基づくコンテンツ適応オンライントレーニングプロセスを区別するために、トレーニングブロックのセットによってトレーニングされるNICフレームワーク(900)、ビデオエンコーダ及びビデオデコーダは、それぞれ、事前トレーニングされたNICフレームワーク(900)、事前トレーニングされたビデオエンコーダ及び事前トレーニングされたビデオデコーダと呼ばれる。事前トレーニングされたNICフレームワーク(900)、事前トレーニングされたビデオエンコーダ又は事前トレーニングされたビデオデコーダ内のパラメータは、それぞれ、NIC事前トレーニングパラメータ、エンコーダ事前トレーニングパラメータ及びデコーダ事前トレーニングパラメータと呼ばれる。一例において、NIC事前トレーニングパラメータは、エンコーダ事前トレーニングパラメータ及びデコーダ事前トレーニングパラメータを含む。一例では、エンコーダ事前トレーニングパラメータ及びデコーダ事前トレーニングパラメータは、エンコーダ事前トレーニングパラメータのいずれもデコーダ事前トレーニングパラメータに含まれない場合、重複しない。例えば(1700)におけるエンコーダ事前トレーニングパラメータ(例えばメインエンコーダネットワーク(911)の事前トレーニングパラメータ)と、(1800)におけるデコーダ事前トレーニングパラメータ(例えばメインデコーダネットワーク(915)の事前トレーニングパラメータ)は重複しない。一例では、エンコーダ事前トレーニングパラメータ及びデコーダ事前トレーニングパラメータは、エンコーダ事前トレーニングパラメータのうちの少なくとも1つがデコーダ事前トレーニングパラメータに含まれる場合、重複する。例えば(1600A)におけるエンコーダ事前トレーニングパラメータ(例えばコンテキストモデルNN(916)の事前トレーニングパラメータ)と、(1600B)におけるデコーダ事前トレーニングパラメータ(例えばコンテキストモデルNN(916)の事前トレーニングパラメータ)は重複する。NIC事前トレーニングパラメータを、トレーニングブロックのセット内のブロック及び/又は画像に基づいて取得することができる。
コンテンツ適応オンライントレーニングプロセスは、微調整プロセス(finetuning process)と呼ばれることがあり、以下に説明される。事前トレーニングされた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つ以上の事前トレーニングパラメータと同一である。したがって、事前トレーニングされたビデオエンコーダ(1600A)が、更新されたビデオエンコーダ(1600A)へと更新されることができるように、事前トレーニングされたコンテキストモデルNN(916)のN1事前トレーニングパラメータを、N1対応置換パラメータによって置き換えることができる。事前トレーニングされたコンテキストモデルNN(916)も更新され、更新されたコンテキストモデルNN(916)となる。デコーダ側では、N1事前トレーニングパラメータをN1対応置換パラメータによって置き換えることができ、N2事前トレーニングパラメータをN2対応置換パラメータによって置き換えることができ、更新されたコンテキストモデル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)内にある。したがって、事前トレーニングされたビデオエンコーダ(1600A)が更新されて、更新されたビデオエンコーダ(1600A)となり得るように、事前トレーニングされたメインエンコーダネットワーク(911)内の1つ以上の事前トレーニングパラメータを、1つ以上の置換パラメータによって置き換えることができる。事前トレーニングされたメインエンコーダネットワーク(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つのハイパーパラメータ(例えばステップサイズ及びステップの最大数)を、損失関数(例えばR-D損失L)とともに、微調整プロセスにおいて使用することができる。最大反復回数を、微調整プロセスを終了するための最大反復回数の閾値として使用することができる。一例では、微調整プロセスは、反復の回数が最大反復回数に達すると停止する。
ステップサイズは、オンライントレーニングプロセス(例えばオンライン微調整プロセス)の学習レート(learning rate)を示すことができる。ステップサイズを、勾配降下アルゴリズム又は微調整プロセスで実行される逆伝播計算で使用することができる。ステップサイズは、任意の適切な方法を使用して決定されることができる。
画像内の各ブロックのステップサイズは異なるものとすることができる。一実施形態では、より良好な圧縮結果(例えばより良好なR-D損失L)を達成するために、画像に対して異なるステップサイズを割り当てることができる。
いくつかの例では、NICフレームワーク(例えばNICフレームワーク(900))に基づくビデオエンコーダ及びビデオデコーダは、画像を直接符号化及び復号することができる。したがって、1つ以上の画像を直接使用することによって、NICフレームワーク内の特定のパラメータを更新し、よって、ビデオエンコーダ及び/又はビデオデコーダを更新するように、ブロックワイズ・コンテンツ適応オンライントレーニング方法を適合させることができる。異なる画像は、最適化された圧縮結果を達成するために、異なるステップサイズを有することができる。
一実施形態では、最適な結果を達成するために、異なるタイプのコンテンツを有するブロックに対して異なるステップサイズが使用される。異なるタイプは、異なる分散を指すことができる。一例では、ステップサイズは、NICフレームワークを更新するために使用されるブロックの分散に基づいて決定される。例えば高い分散を有するブロックのステップサイズは、低い分散を有するブロックのステップサイズよりも大きく、この場合、高い分散は低い分散より大きい。
一実施形態では、ステップサイズは、ブロックのRGB分散のような、ブロック又は画像の特性に基づいて選択される。一実施形態では、ステップサイズは、ブロックのRD性能(例えばR-D損失L)に基づいて選択される。複数のセットの置換パラメータを、異なるステップサイズに基づいて生成することができ、より良好な圧縮性能(例えばより小さなR-D損失)を有するセットを選択することができる。
一実施形態では、第1ステップサイズを使用して、特定の回数(例えば100)の反復を実行することができる。次いで、第2ステップサイズ(例えば第1のステップサイズ±サイズ増加)を使用して、特定の回数の反復を実行することができる。第1ステップサイズ及び第2ステップサイズからの結果を比較して、使用されるべきステップサイズを決定することができる。2つ以上のステップサイズをテストして、最適なステップサイズを決定してもよい。
ステップサイズは、微調整プロセス中に変化することができる。ステップサイズは、微調整プロセスの開始時には初期値を有することができ、微調整プロセスの後の段階、例えば特定の回数の反復の後には、より微細なチューニングを達成するために、初期値を低減(例えば半減)させることができる。ステップサイズ又は学習レートは、反復オンライントレーニング中にスケジューラによって変化させることができる。スケジューラは、ステップサイズを調整するために使用されるパラメータ調整方法を含むことができる。スケジューラは、ステップサイズが複数の間隔において増加し、減少し又は一定に保たれることができるように、ステップサイズの値を決定することができる。一例では、学習レートは、スケジューラによって各ステップにおいて変更される。単一のスケジューラ又は複数の異なるスケジューラを、異なるブロックに使用することができる。したがって、複数のセットの置換パラメータを、複数のスケジューラに基づいて生成することができ、複数のセットの置換パラメータのうちのより良好な圧縮性能(例えばより小さいR-D損失)を有する1つを選択することができる。
一実施形態では、より良好な圧縮結果を達成するために、複数の学習レートスケジュールが異なるブロックに割り当てられる。一実施形態では、画像内のすべてのブロックは、同じ学習レートスケジュールを共有する。一実施形態では、学習レートスケジュールの選択は、ブロックのRGB分散のようなブロックの特性に基づく。一実施形態では、学習レートスケジュールの選択は、ブロックのRD性能に基づく。
一実施形態では、異なるブロックを使用して、NICフレームワーク内の異なる構成要素(例えばコンテキストモデルNN(916)又はハイパーデコーダ(925))内の異なるパラメータを更新することができる。例えば第1ブロックを使用してコンテキストモデルNN(916)のパラメータを更新し、第2ブロックを使用してハイパーデコーダ(925)のパラメータを更新する。
一実施形態では、異なるブロックを使用して、NICフレームワーク内の異なるタイプのパラメータ(例えばバイアス又は重み)を更新することができる。例えば第1ブロックを使用して、NICフレームワーク内の1つ以上のニューラルネットワーク内の少なくとも1つのバイアスを更新し、第2ブロックを使用して、NICフレームワーク内の1つ以上のニューラルネットワーク内の少なくとも1つの重みを更新する。
一実施形態では、画像内の複数のブロック(例えばすべてのブロック)が、同一の1つ以上のパラメータを更新する。
一実施形態では、更新されるべき1つ以上のパラメータは、ブロックのRGB分散のようなブロックの特性に基づいて選択される。一実施形態では、更新されるべき1つ以上のパラメータは、ブロックのRD性能に基づいて選択される。
微調整プロセスの終了時に、1つ以上の更新されたパラメータを、それぞれの1つ以上の置換パラメータについて計算することができる。一実施形態では、1つ以上の更新されたパラメータは、1つ以上の置換パラメータと、対応する1つ以上の事前トレーニングパラメータとの間の差として計算される。一実施形態では、1つ以上の更新されたパラメータは、それぞれ、1つ以上の置換パラメータである。
一実施形態では、1つ以上の更新されたパラメータを、1つ以上の置換パラメータから、例えば特定の線形又は非線形変換を使用して生成することができ、1つ以上の更新されたパラメータは、1つ以上の置換パラメータに基づいて生成される代表パラメータ(representative parameter)である。1つ以上の置換パラメータは、より良好な圧縮のために1つ以上の更新されたパラメータに変換される。
1つ以上の更新されたパラメータの第1サブセットは、1つ以上の置換パラメータの第1サブセットに対応し、1つ以上の更新されたパラメータの第2サブセットは、1つ以上の置換パラメータの第2サブセットに対応する。
一実施形態では、異なるブロックは、1つ以上の更新されたパラメータと1つ以上の置換パラメータとの間に異なる関係を有する。例えば第1ブロックについては、1つ以上の更新されたパラメータが、1つ以上の置換パラメータと対応する1つ以上の事前トレーニングパラメータとの間の差として計算される。第2ブロックについては、1つ以上の更新されたパラメータがそれぞれ、1つ以上の置換パラメータである。
一実施形態では、画像内の複数のブロック(例えばすべてのブロック)は、1つ以上の更新されたパラメータと1つ以上の置換パラメータとの間に同じ関係を有する。
一実施形態では、1つ以上の更新されたパラメータと1つ以上の置換パラメータとの間の関係は、ブロックのRGB分散のような、ブロックの特性に基づいて選択される。一実施形態では、1つ以上の更新されたパラメータと1つ以上の置換パラメータとの間の関係は、ブロックのRD性能に基づいて選択される。
一例では、1つ以上の更新されたパラメータは、例えばLempel-Ziv-Markovチェーンアルゴリズム(LZMA)の変形であるLZMA2、bzip2アルゴリズム等を使用して圧縮されることができる。一例では、1つ以上の更新されたパラメータついては、圧縮は省略される。いくつかの実施形態において、1つ以上の更新されたパラメータ又は1つ以上の更新されたパラメータの第2サブセットを、ニューラルネットワーク更新情報としてビットストリームに符号化することができ、この場合、ニューラルネットワーク更新情報は、1つ以上の置換パラメータ又は1つ以上の置換パラメータの第2サブセットを示す。
一実施形態では、1つ以上の更新されたパラメータの圧縮方法は、異なるブロックについて異なる。例えば第1ブロックでは、LZMA2を使用して1つ以上の更新されたパラメータを圧縮し、第2ブロックでは、bzip2を使用して1つ以上の更新されたパラメータを圧縮する。一実施形態では、同一の圧縮方法が、画像内の複数のブロック(例えばすべてのブロック)についての1つ以上の更新されたパラメータを圧縮するために使用される。一実施形態では、圧縮方法は、ブロックのRGB分散のようなブロックの特性に基づいて選択される。一実施形態では、圧縮方法は、ブロックのRD性能に基づいて選択される。
微調整プロセスの後、いくつかの例では、エンコーダ側の事前トレーニングされたビデオエンコーダを、(i)1つ以上の置換パラメータの第1サブセット又は(ii)1つ以上の置換パラメータに基づいて、更新又は微調整することができる。入力ブロック(例えば微調整プロセスにおいて使用される1つ以上のブロックのうちの1つ)は、更新されたビデオエンコーダを使用してビットストリームに符号化されることができる。したがって、ビットストリームは、符号化ブロックとニューラルネットワーク更新情報の両方を含む。
該当する場合、一例では、ニューラルネットワーク更新情報を、事前トレーニングされたビデオデコーダによって復号(例えば解凍)して、1つ以上の更新されたパラメータ又は1つ以上の更新されたパラメータの第2サブセットを取得する。一例では、上述の1つ以上の更新されたパラメータと1つ以上の置換パラメータとの間の関係に基づいて、1つ以上の置換パラメータ又は1つ以上の置換パラメータの第2サブセットを取得することができる。上述のように、事前トレーニングされたビデオデコーダを微調整することができ、更新されたビデオデコーダを使用して符号化ブロックを復号することができる。
NICフレームワークは、任意のタイプのニューラルネットワークを含むことができ、コンテキストハイパープライア(context-hyperprior)エンコーダ-デコーダフレームワーク(例えば図9Bに示されるNICフレームワーク)、スケールハイパープライア(scale-hyperprior)エンコーダ-デコーダフレームワーク、ガウス混合尤度(Gaussian Mixture Likelihoods)フレームワーク及びガウス混合尤度フレームワークの変形、RNNベースの再帰的圧縮方法及びRNNベースの再帰的圧縮方法の変形のような、任意のニューラルネットワークベースの画像圧縮方法を使用することができる。
関連するE2E画像圧縮方法と比較して、本開示におけるコンテンツ適応オンライントレーニング方法及び装置は、以下の利点を有することができる。適応オンライントレーニングメカニズムを利用してNICコーディング効率を改善する。柔軟かつ一般的なフレームワークの使用は、様々なタイプの事前トレーニングされたフレームワークと品質メトリクスを受け入れることができる。例えば様々なタイプの事前トレーニングされたフレームワークにおける特定の事前トレーニングパラメータは、符号化されて送信されるべきブロックを用いるオンライントレーニングを使用することによって置き換えられることができる。
図19は、本開示の一実施形態によるプロセス(1900)を概略的に示すフローチャートを示す。プロセス(1900)を使用して、生画像内のブロック又は残差画像内のブロックのようなブロックを符号化することができる。様々な実施形態では、プロセス(1900)は、端末デバイス(310)、(320)、(330)及び(340)内の処理回路、ビデオエンコーダ(1600A)の機能を実行する処理回路、ビデオエンコーダ(1700)の機能を実行する処理回路のような処理回路によって実行される。一例では、処理回路は、(i)ビデオエンコーダ(403)、(603)及び(703)のうちの1つと、(ii)ビデオエンコーダ(1600A)及びビデオエンコーダ(1700)のうちの1つとの機能の組合せを実行する。いくつかの実施形態では、プロセス(1900)は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(1900)を実行する。プロセスは(S1901)で開始する。一例では、NICフレームワークはニューラルネットワークに基づく。一例において、NICフレームワークは、図9Bに関連して説明されるNICフレームワーク(900)である。NICフレームワークは、図10~図15に関連して説明されるような、CNNに基づくことができる。ビデオエンコーダ(例えば(1600A)又は(1700))及び対応するビデオデコーダ(例えば(1600B)又は(1800))は、上述のように、NICフレームワーク内の複数の構成要素を含むことができる。ニューラルネットワークに基づくNICフレームワークは事前トレーニングされ、したがって、ビデオエンコーダ及びビデオデコーダは事前トレーニングされる。プロセス(1900)は(S1910)に進む。
(S1910)において、1つ以上のブロック(又は入力ブロック)に基づいて、微調整プロセスがNICフレームワークに対して実行される。入力ブロックは、任意の適切なサイズを有する任意の適切なブロックとすることができる。いくつかの例では、入力ブロックは、空間領域内にある生画像、自然画像、コンピュータ生成画像及び/又は類似のものの中のブロックを含む。
いくつかの例において、入力ブロックは、例えば残差計算器(例えば残差計算器(723))によって計算される、空間領域内の残差データを含む。(S1910)を達成するために様々な装置内の構成要素を適切に組み合わせることができ、例えば図7及び図9を参照すると、残差計算器からの残差ブロックを、NICフレームワーク内のメインエンコーダネットワーク(911)に供給することができる。
NICフレームワーク(例えば事前トレーニングされたNICフレームワーク)内の1つ以上のニューラルネットワーク(例えば1つ以上の事前トレーニングされたニューラルネットワーク)内の1つ以上のパラメータ(例えば1つ以上の事前トレーニングパラメータ)は、上述のように、それぞれ1つ以上の置換パラメータとなるように更新されることができる。一実施形態では、1つ以上のニューラルネットワーク内の1つ以上のパラメータは、例えば各ステップにおいて、(S1910)に記載されるトレーニングプロセスの間に更新されている。
一実施形態では、ビデオエンコーダ(例えば事前トレーニングされたビデオエンコーダ)内の少なくとも1つのニューラルネットワークは、1つ以上の事前トレーニングパラメータの第1サブセットで構成され、したがって、ビデオエンコーダ内の少なくとも1つのニューラルネットワークを、1つ以上の置換パラメータの対応する第1サブセットに基づいて更新することができる。一例では、1つ以上の置換パラメータの第1サブセットは、1つ以上の置換パラメータのすべてを含む。一例では、ビデオエンコーダ内の少なくとも1つのニューラルネットワークは、1つ以上の事前トレーニングパラメータの第1サブセットが、それぞれ、1つ以上の事前トレーニングパラメータの第1サブセットで置き換えられるときに更新される。一例では、ビデオエンコーダ内の少なくとも1つのニューラルネットワークは、微調整プロセスにおいて反復的に更新される。一例では、1つ以上の事前トレーニングパラメータのいずれもビデオエンコーダに含まれず、したがって、ビデオエンコーダは更新されず、事前トレーニングされたビデオエンコーダのままである。
(S1920)において、1つ以上のブロックのうちの1つを、少なくとも1つの更新されたニューラルネットワークを有するビデオエンコーダを使用して符号化することができ、この場合、ビデオエンコーダは、1つ以上の置換パラメータの第1サブセットで構成される。一例では、1つ以上のブロックのうちの当該1つは、ビデオエンコーダ内の少なくとも1つのニューラルネットワークが更新された後に符号化される。
ステップ(S1920)を適切に適合させることができる。例えばビデオエンコーダは、1つ以上の置換パラメータのいずれもビデオエンコーダ内の少なくとも1つのニューラルネットワークに含まれないときは更新されず、したがって、1つ以上のブロックのうちの上記の1つは、事前トレーニングされたビデオエンコーダ(例えば少なくとも1つの事前トレーニングされたニューラルネットワークを含むビデオエンコーダ)を使用して符号化されることができる。
(S1930)において、1つ以上の置換パラメータの第2サブセットを示すニューラルネットワーク更新情報を、ビットストリーム内に符号化することができる。一例では、1つ以上の置換パラメータの第2サブセットは、デコーダ側のビデオデコーダ内の少なくとも1つのニューラルネットワークを更新するために使用されるものである。例えば1つ以上の置換パラメータの第2サブセットがパラメータを含まず、ニューラルネットワーク更新情報がビットストリーム内でシグナリングされない場合、ステップ(S1930)を省略することができ、ビデオデコーダ内のニューラルネットワークはいずれも更新されない。
(S1940)において、1つ以上のブロックのうちの符号化された1つとニューラルネットワーク更新情報とを含むビットストリームを送信することができる。ステップ(S1940)を適切に適合させることができる。例えばステップ(S1930)が省略される場合、ビットストリームはニューラルネットワーク更新情報を含まない。プロセス(1900)は(S1999)に進み、終了する。
プロセス(1900)を、様々なシナリオに適切に適合させることができ、プロセス(1900)のステップを、それに応じて調整することができる。プロセス(1900)のステップのうちの1つ以上を適合させ、省略し、反復し及び/又は組み合わせることができる。任意の適切な順序を使用して、プロセス(1900)を実装することができる。追加のステップを追加することができる。例えば1つ以上のブロックのうちの1つを符号化することに加えて、1つ以上のブロックを(S1920)において符号化し、そして(S1940)において送信する。
プロセス(1900)のいくつかの例において、1つ以上のブロックのうちの1つは、更新されたビデオエンコーダによって符号化され、ビットストリームで送信される。微調整プロセスは1つ以上のブロックに基づいているので、微調整プロセスは、符号化されるコンテキストに基づいており、したがって、コンテキストベース(context-based)である。
いくつかの例において、ニューラルネットワーク更新情報は更に、ビデオデコーダ内の対応する事前トレーニングパラメータを更新することができるように、1つ以上の事前トレーニングパラメータの第2サブセット(又は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)の機能を実行する処理回路のような処理回路によって実行される。一例では、処理回路は、(i)ビデオデコーダ(410)、ビデオデコーダ(510)及びビデオデコーダ(810)のうちの1つと、(ii)ビデオデコーダ(1600B)又はビデオデコーダ(1800)のうちの1つとの機能の組合せを実行する。いくつかの実施形態では、プロセス(2000)は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路は、プロセス(2000)を実行する。プロセスは(S2001)で開始する。一例では、NICフレームワークはニューラルネットワークに基づく。一例において、NICフレームワークは、図9Bに関連して説明したNICフレームワーク(900)である。NICフレームワークは、図10~図15に関連して説明されるような、CNNに基づくことができる。ビデオデコーダ(例えば(1600B)又は(1800))は、上述のように、NICフレームワーク内の複数の構成要素を含むことができる。ニューラルネットワークに基づくNICフレームワークを、事前トレーニングすることができる。ビデオデコーダを、事前トレーニングパラメータで事前トレーニングすることができる。プロセス(2000)は(S2010)に進む。
(S2010)において、コーディングされたビットストリーム内の第1ニューラルネットワーク更新情報を復号することができる。第1ニューラルネットワーク更新情報は、ビデオデコーダ内の第1ニューラルネットワークについてのものとすることができる。第1ニューラルネットワークを、複数の第1事前トレーニングパラメータで構成することができる。第1ニューラルネットワーク更新情報は、再構成されるべき画像内の第1ブロックに対応し、複数の第1事前トレーニングパラメータのうちのある第1事前トレーニングパラメータに対応する第1置換パラメータを示すことができる。
一例では、第1事前トレーニングパラメータは、事前トレーニングされたバイアス項である。
一例において、第1事前トレーニングパラメータは、事前トレーニングされた重み係数である。
一実施形態では、ビデオデコーダは、複数のニューラルネットワークを含む。第1ニューラルネットワーク更新情報は、複数のニューラルネットワークのうちの1つ以上の残りのニューラルネットワークについての更新情報を示すことができる。例えば第1ニューラルネットワーク更新情報は更に、複数のニューラルネットワーク内の1つ以上の残りのニューラルネットワークについての1つ以上の置換パラメータを示す。1つ以上の置換パラメータは、1つ以上の残りのニューラルネットワークについての1つ以上のそれぞれの事前トレーニングパラメータに対応する。一例では、第1事前トレーニングパラメータ及び1つ以上の事前トレーニングパラメータの各々は、それぞれの事前トレーニングされたバイアス項である。一例では、第1事前トレーニングパラメータ及び1つ以上の事前トレーニングパラメータの各々は、それぞれの事前トレーニングされた重み係数である。一例では、第1事前トレーニングパラメータ及び1つ以上の事前トレーニングパラメータは、複数のニューラルネットワークにおける1つ以上の事前トレーニングされたバイアス項及び1つ以上の事前トレーニングされた重み係数を含む。
一例では、第1ニューラルネットワーク更新情報は、複数のニューラルネットワークのサブセットについての更新情報を示し、複数のニューラルネットワークの残りのサブセットは更新されない。
一例では、ビデオデコーダは、図18に示されるビデオデコーダ(1800)である。第1ニューラルネットワークは、メインデコーダネットワーク(915)である。
一例において、ビデオデコーダは、図16Bに示されるビデオデコーダ(1600B)である。ビデオデコーダ内の複数のニューラルネットワークは、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピーパラメータNN(917)及びハイパーデコーダ(925)を含む。第1ニューラルネットワークは、コンテキストモデルNN(916)のように、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピーパラメータNN(917)及びハイパーデコーダ(925)のうちの1つである。一例では、第1ニューラルネットワーク更新情報は更に、ビデオデコーダ内の1つ以上の残りのニューラルネットワーク(例えばメインデコーダネットワーク(915)、エントロピーパラメータNN(917)及び/又はハイパーデコーダ(925))についての1つ以上の置換パラメータを含む。
(S2020)において、第1ニューラルネットワーク更新情報に基づいて、第1置換パラメータを決定することができる。一実施形態では、更新されたパラメータは、第1ニューラルネットワーク更新情報から取得される。一例では、更新されたパラメータを、解凍(例えばLZMA2又はbzip2アルゴリズム)によって第1ニューラルネットワーク更新情報から取得することができる。
一例では、第1ニューラルネットワーク更新情報は、更新されたパラメータが、第1置換パラメータと第1事前トレーニングパラメータとの間の差であることを示す。更新されたパラメータと第1事前トレーニングパラメータの和に従って、第1置換パラメータを計算することができる。
一実施形態では、第1置換パラメータは、更新されたパラメータであると決定される。
一実施形態では、更新されたパラメータは、エンコーダ側で第1置換パラメータに基づいて(例えば線形変換又は非線形変換を使用して)生成された代表パラメータであり、第1置換パラメータは、代表パラメータに基づいて取得される。
(S2030)において、ビデオデコーダ内の第1ニューラルネットワークを、第1置換パラメータに基づいて、例えば第1ニューラルネットワーク内において第1事前トレーニングパラメータを第1置換パラメータで置換することによって、更新(又は微調整)することができる。ビデオデコーダが複数のニューラルネットワークを含み、第1ニューラルネットワーク更新情報が複数のニューラルネットワークについての更新情報(例えば追加の置換パラメータ)を示す場合、複数のニューラルネットワークを更新することができる。例えば第1ニューラルネットワーク更新情報は更に、ビデオデコーダ内の1つ以上の残りのニューラルネットワークについての1つ以上の置換パラメータを含み、1つ以上の残りのニューラルネットワークを、1つ以上の置換パラメータに基づいて更新することができる。
(S2040)において、ビットストリーム内の符号化された第1ブロックを、例えば更新された第1ニューラルネットワークに基づいて、更新されたビデオデコーダによって復号することができる。(S2040)において生成される出力ブロックは、任意の適切なサイズを有する任意の適切なブロックとすることができる。いくつかの例では、出力ブロックは、空間領域内の再構成画像における再構成ブロックである。
いくつかの例では、ビデオデコーダの出力ブロックは、空間領域内の残差データを含み、したがって、更なる処理を使用して、出力ブロックに基づいて再構成ブロックを生成することができる。例えば再構成モジュール(874)は、空間領域において、(インター又はイントラ予測モジュールによる出力として)残差データと予測結果とを組み合わせて、再構成画像の一部であり得る再構成ブロックを形成するように構成される。デブロッキング操作等のような追加の適切な操作を実行して、視覚品質を改善することができる。(S2040)を達成するために、様々な装置内の構成要素を適切に組み合わせることができ、例えば図8及び図9を参照すると、ビデオデコーダ内のメインデコーダネットワーク(915)からの残差データ及び対応する予測結果が、再構成モジュール(874)に供給され、再構成画像を生成する。
一例では、ビットストリームは更に、符号化ブロックを復号するためのコンテキストモデルを決定するために使用される1つ以上の符号化ビットを含む。ビデオデコーダは、メインデコーダネットワーク(例えば(911))、コンテキストモデルネットワーク(例えば(916))、エントロピーパラメータネットワーク(例えば(917))及びハイパーデコーダネットワーク(例えば(925))を含むことができる。ニューラルネットワークは、メインデコーダネットワーク、コンテキストモデルネットワーク、エントロピーパラメータNN及びハイパーデコーダネットワークのうちの1つである。ハイパーデコーダネットワークを使用して、1つ以上の符号化ビットを復号することができる。エントロピーモデル(例えばコンテキストモデル)は、コンテキストモデルネットワークに利用可能な符号化ブロックの量子化潜在要素と復号されたビットとに基づいて、コンテキストモデルネットワーク及びエントロピーパラメータネットワークを使用して決定されることができる。符号化ブロックは、メインデコーダネットワーク及びエントロピーモデルを使用して復号されることができる。
プロセス(2000)は(S2099)に進み、終了する。
プロセス(2000)を、様々なシナリオに適切に適合させることができ、プロセス(2000)のステップを、それに応じて調整することができる。プロセス(2000)のステップのうちの1つ以上を適合させ、省略し、反復し及び/又は組み合わせることができる。任意の適切な順序を使用して、プロセス(2000)を実装することができる。追加のステップを追加することができる。
一例では、(S2040)において、コーディングされたビットストリーム内の別のブロックが、第1ブロックについての更新された第1ニューラルネットワークに基づいて復号される。
一例では、(S2010)において、ビデオデコーダ内の第2ニューラルネットワークについてのコーディングされたビットストリーム内の第2ニューラルネットワーク更新情報が、復号される。第2ニューラルネットワークは、第2事前トレーニングパラメータで構成される。第2ニューラルネットワーク更新情報は、再構成されるべき画像内の第2ブロックに対応し、第2事前トレーニングパラメータ内の第2事前トレーニングパラメータに対応する第2置換パラメータを示す。第2ニューラルネットワーク(例えばコンテキストモデルNN(916))は、第1ニューラルネットワーク(例えばメインデコーダネットワーク(915))とは異なるものとすることができる。(S2030)において、ビデオデコーダ内の第2ニューラルネットワークを、第2置換パラメータに基づいて更新することができる。(S2040)において、第2ブロックを、第2ブロックについての更新された第2ニューラルネットワークに基づいて復号することができる。一例において、第1事前トレーニングパラメータは、事前トレーニングされた重み係数と事前トレーニングされたバイアス項のうちの一方である。一例において、第2事前トレーニングパラメータは、事前トレーニングされた重み係数と事前トレーニングされたバイアス項のうちの他方である。
本開示の実施形態は、別個に又は任意の順序で組み合わせて使用されてよい。さらに、方法(又は実施形態)、エンコーダ及びデコーダの各々は、処理回路(例えば1つ以上のプロセッサ又は1つ以上の集積回路)によって実装されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読取可能媒体に記憶されるプログラムを実行する。
本開示は、ニューラルネットワークベースのエンコーダのようなエンコーダ、ニューラルネットワークベースのデコーダのようなデコーダに使用される方法に対していかなる制限も課さない。エンコーダ、デコーダ及び/又は同様のもので使用されるニューラルネットワークは、DNN、CNN等のような、任意の適切なタイプのニューラルネットワークとすることができる。
したがって、本開示のコンテンツ適応オンライントレーニング方法は、異なるタイプのNICフレームワーク、例えば異なるタイプの符号化DNN、復号DNN、符号化CNN、復号CNN及び/又は同様のものに対応することができる。
上述の技術を、コンピュータ読取可能命令を使用してコンピュータソフトウェアとして実装し、1つ以上のコンピュータ読取可能媒体に物理的に記憶することができる。例えば図21は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(2100)を示す。
コンピュータソフトウェアは、アセンブリ、コンパイル、リンキング又は類似のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコーディングされ、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)等によって直接的に又は解釈やマイクロコード実行等を通して実行され得る命令を含む、コードを作成することができる。
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はその構成要素において実行されることができる。
コンピュータシステム(2100)について図21に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関して、いかなる制限も示唆するように意図されていない。また、構成要素の構成は、コンピュータシステム(2100)の例示的実施形態に示される構成要素の任意の1つ又は組合せに関するいかなる依存性又は要件も有するものとして解釈されてはならない。
コンピュータシステム(2100)は、特定のヒューマンインタフェース入力デバイスを含み得る。そのようなヒューマンインタフェース入力デバイスは、例えば触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通して、1人以上の人間のユーザによる入力に応答し得る。また、ヒューマンインタフェース入力デバイスは、オーディオ(音声、音楽、環境音等)、画像(スキャンされた画像、静止画像カメラから得られる写真画像等)、ビデオ(2次元ビデオ、立体映像を含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関係しているとは限らない、特定の媒体をキャプチャするためにも使用されることができる。
ヒューマンインタフェース入力デバイスは、キーボード(2101)、マウス(2102)、トラックパッド(2103)、タッチ画面(2110)、データグローブ(図示せず)、ジョイスティック(2105)、マイクロホン(2106)、スキャナ(2107)及びカメラ(2108)(各々の1つのみが図示される)のうちの1つ以上を含んでもよい。
コンピュータシステム(2100)はまた、特定のヒューマンインタフェース出力デバイスも含み得る。そのようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音響、光及び嗅覚/味覚を通して、1人以上の人間のユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えばタッチ画面(2110)、データグローブ(図示せず)又はジョイスティック(2105)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、オーディオ出力デバイス(スピーカー(2109)、ヘッドフォン(図示せず)等)、視覚出力デバイス(各々タッチ画面入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にもかかわらないが、その一部は、立体画像出力や仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)のような手段を通して、2次元視覚出力又は3次元超の出力を出力することができる、CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(2110)等)及びプリンタ(図示せず)を含んでよい。
コンピュータシステム(2100)はまた、CD/DVDを有するCD/DVD ROM/RW(2120)を含む光媒体又は類似の媒体(2121)、サムドライブ(2122)、取り外し可能ハードドライブ又はソリッドステートドライブ(2123)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特別なROM/ASIC/PLDベースのデバイスのような、ヒューマンアクセス可能なストレージデバイス及びそれらの関連する媒体も含むことができる。
当業者はまた、現在開示されている主題に関連して使用されるとき、「コンピュータ読取可能媒体」という用語が、伝送媒体、搬送波又は他の一時的信号を包含しないことを理解すべきである。
コンピュータシステム(2100)はまた、1つ以上の通信ネットワーク(2155)へのインタフェース(2154)も含むことができる。ネットワークは、例えば無線、有線、光とすることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び産業用、リアルタイム、遅延耐性等とすることができる。ネットワークの例は、イーサネット(登録商標)、無線LAN等のローカルエリアネットワーク、GSM(登録商標)、3G、4G、5G、LTE等を含むセルラネットワーク、ケーブルTV、衛星TV及び地上放送TVを含むTV有線又は無線ワイドエリアデジタルネットワーク、CANBus等を含む車両及び産業用ネットワークを含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(2149)に取り付けられ外部ネットワークインタフェースアダプタ(例えばコンピュータシステム(2100)のUSBポート等)を必要とし、他のものは、一般に、後述するシステムバスへの取り付けによって(例えばPCコンピュータシステムへのイーサネット(登録商標)インタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)、コンピュータシステム(2100)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(2100)は、他のエンティティと通信することができる。このような通信は、例えばローカル又はワイドエリアデジタルネットワークを使用して、他のコンピュータシステムに対する、単方向の受信専用(例えば放送TV)、単方向の送信専用(例えば特定のCANbusから特定のCANbusデバイスへ)又は双方向であり得る。上述のように、特定のプロトコル及びプロトコルスタックを、これらのネットワーク及びネットワークインタフェースの各々において使用することができる。
前述のヒューマンインタフェースデバイス、ヒューマンアクセス可能なストレージデバイス及びネットワークインタフェースを、コンピュータシステム(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)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が1つ以上の有形のコンピュータ読取可能媒体に具現化されたソフトウェアを実行する結果としての機能性を提供することができる。このようなコンピュータ読取可能媒体は、上記で紹介したようなユーザアクセス可能な大容量ストレージ、並びにコア内部大容量ストレージ(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)
GOPs:ピクチャのグループ(Groups of Pictures)
TUs:変換ユニット(Transform Units)
PUs:予測ユニット(Prediction Units)
CTUs:コーディングツリーユニット(Coding Tree Units)
CTBs:コーディングツリーブロック(Coding Tree Blocks)
PBs:予測ブロック(Prediction Blocks)
HRD:仮想リファレンスデコーダ(Hypothetical Reference Decoder)
SNR:信号対ノイズ比(Signal Noise Ratio)
CPUs:中央処理ユニット(Central Processing Units)
GPUs:グラフィクス処理ユニット(Graphics Processing Units)
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 Array)
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)
本開示は、いくつかの例示的な実施形態について説明しているが、本開示の範囲内にある変更、置換及び様々な代替均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は説明されていないが、本開示の原理を具体化しており、よって、本開示の精神及び範囲内にある、様々システム及び方法を考案することができることが理解されよう。