(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】ニューラル画像圧縮におけるコンテンツ適応型オンライン訓練のための方法、装置およびコンピュータプログラム
(51)【国際特許分類】
H04N 19/85 20140101AFI20240716BHJP
H04N 19/46 20140101ALI20240716BHJP
【FI】
H04N19/85
H04N19/46
(21)【出願番号】P 2022566707
(86)(22)【出願日】2022-04-29
(86)【国際出願番号】 US2022072023
(87)【国際公開番号】W WO2022232842
(87)【国際公開日】2022-11-03
【審査請求日】2022-11-01
(32)【優先日】2021-04-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-04-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ディン・ディン
(72)【発明者】
【氏名】ウェイ・ジアン
(72)【発明者】
【氏名】ウェイ・ワン
(72)【発明者】
【氏名】シャン・リュウ
【審査官】田部井 和彦
(56)【参考文献】
【文献】国際公開第2020/187587(WO,A1)
【文献】米国特許出願公開第2020/0160565(US,A1)
【文献】特表2022-522685(JP,A)
【文献】Yat-Hong Lam et al.,AHG11: Content-adaptive neural network post-processing filter [online],JVET-V0075v2(JVET-V0075_v2.docx), [2023年11月23日検索],インターネット <URL: https://jvet-experts.org/doc_end_user/documents/22_Teleconference/wg11/JVET-V0075-v3.zip>,2021年04月23日
【文献】Yat-Hong Lam et al.,Efficient Adaptation of Neural Network Filter for Video Compression [online],arXiv:2007.14267 [eess.IV], [2023年11月23日検索],2020年08月13日,インターネット <URL: https://arxiv.org/pdf/2007.14267.pdf>
【文献】Yat Hong LAM et al.,Compressing Weight-updates for Image Artifacts Removal Neural Networks [online],arXiv:1905.04079 [cs.LG], [2023年11月23日検索],2019年06月14日,pp.4321-4325,インターネット <URL: https://arxiv.org/pdf/1905.04079.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/85
H04N 19/46
(57)【特許請求の範囲】
【請求項1】
ビデオデコーダが実行するビデオ復号のための方法であって、
前記ビデオデコーダ内のニューラルネットワークのためのコード化ビットストリーム内のニューラルネットワーク更新情報を復号するステップであって、前記ニューラルネットワークが事前訓練されたパラメータで構成され、前記ニューラルネットワーク更新情報が復元される符号化画像に対応し、前記事前訓練されたパラメータのうちの事前訓練されたパラメータに対応する置換パラメータを示
し、
前記コード化ビットストリームが、前記符号化画像を復号するためのコンテキストモデルを決定するために使用される1つまたは複数の符号化ビットをさらに示し、前記ビデオデコーダが、エントロピーデコーダを含み、前記ニューラルネットワークが、メインデコーダネットワーク、コンテキストモデルネットワーク、エントロピーパラメータネットワーク、およびハイパーデコーダネットワークを含み、ステップと、
前記置換パラメータに基づいて前記ビデオデコーダ内の前記ニューラルネットワークを更新するステップ
であって、
前記ハイパーデコーダネットワークを使用して前記1つまたは複数の符号化ビットを復号し、出力o
hc
を取得するステップと、
前記エントロピーデコーダを使用して、前記符号化画像に基づく量子化潜像を生成するステップと、
前記コンテキストモデルネットワークを使用して、前記量子化潜像に基づく出力o
cm,i
を取得するステップと、
前記エントロピーパラメータネットワークを使用して、前記出力o
hc
と、前記出力o
cm,i
とに基づく出力o
ep
を取得するステップと
を含む、ステップと、
前記符号化画像のための前記更新されたニューラルネットワークに基づいて前記符号化画像を復号するステップ
であって、
前記メインデコーダネットワークおよび前記出力o
ep
に基づくコンテキストモデルを使用して前記符号化画像を復号するステップを含む、
ステップと
を含む、方法。
【請求項2】
前記ニューラルネットワーク更新情報が、前記ビデオデコーダ内の1つまたは複数の残りのニューラルネットワーク用の1つまたは複数の置換パラメータをさらに示し、
前記方法が、前記1つまたは複数の置換パラメータに基づいて前記1つまたは複数の残りのニューラルネットワークを更新するステップをさらに含む、
請求項1に記載の方法。
【請求項3】
前記事前訓練されたパラメータが事前訓練されたバイアス項である、
請求項1に記載の方法。
【請求項4】
前記事前訓練されたパラメータが事前訓練された重み係数である、
請求項1に記載の方法。
【請求項5】
前記ニューラルネットワーク更新情報が、前記ニューラルネットワーク用の前記事前訓練されたパラメータのうちの複数の事前訓練されたパラメータに対応する複数の置換パラメータを示し、前記複数の事前訓練されたパラメータが前記事前訓練されたパラメータを含み、前記複数の事前訓練されたパラメータが、1つまたは複数の事前訓練されたバイアス項および1つまたは複数の事前訓練された重み係数を含み、
更新する前記ステップが、前記置換パラメータを含む前記複数の置換パラメータに基づいて、前記ビデオデコーダ内の前記ニューラルネットワークを更新するステップを含む、
請求項1に記載の方法。
【請求項6】
前記ニューラルネットワーク更新情報が、前記置換パラメータと前記事前訓練されたパラメータとの間の差を示し、
前記ニューラルネットワークを更新する前記ステップが、前記差と前記事前訓練されたパラメータの和に従って前記置換パラメータを決定するステップをさらに含む、
請求項1に記載の方法。
【請求項7】
前記更新されたニューラルネットワークに基づいて前記コード化ビットストリーム内の別の符号化画像を復号するステップ
をさらに含む、請求項1に記載の方法。
【請求項8】
請求項1~
7のいずれか一項に記載の方法を行うように構成された装置。
【請求項9】
少なくとも1つのプロセッサに、請求項1~
7のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年4月30日に出願された米国仮出願第63/182,396号「Content-adaptive Online Training in Neural Image Compression」に対する優先権の利益を主張する、2022年4月26日に出願された米国特許出願第17/729,994号「METHOD AND APPARATUS FOR CONTENT-ADAPTIVE ONLINE TRAINING IN NEURAL IMAGE COMPRESSION」に対する優先権の利益を主張する。先行出願の開示は、それらの全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、ビデオコーディングに関係する実施形態を記載する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の文脈を大まかに提示することを目的としている。ここに記名された発明者の仕事は、その仕事がこの背景技術セクションに記載されている限りにおいて、ならびにさもなければ出願時に従来技術として適格ではない可能性がある説明の態様は、本開示に対する従来技術として、明示的にも黙示的にも認められていない。
【0004】
ビデオのコーディングおよび復号は、動き補償を伴うインターピクチャ予測を使用して実行することができる。非圧縮デジタル画像および/またはビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連する彩度サンプルの空間次元を有する。一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの固定または可変の(非公式にはフレームレートとしても知られる)ピクチャレートを有することができる。非圧縮画像および/またはビデオは特有のビットレート要件を有する。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶空間を必要とする。
【0005】
ビデオのコーディングおよび復号の1つの目的は、圧縮を介して入力画像および/またはビデオ信号内の冗長性を低減することであり得る。圧縮は、前述の帯域幅および/または記憶空間の要件を、場合によっては、2桁以上削減するのに役立つことができる。可逆圧縮と非可逆圧縮の両方、ならびにそれらの組合せを採用することができる。可逆圧縮は、圧縮された元の信号から元の信号の正確なコピーを復元することができる技法を指す。非可逆圧縮を使用すると、復元された信号は元の信号と同一ではない可能性があるが、元の信号と復元された信号との間の歪みは、復元された信号を目的の用途に有用なものにするほど十分小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションに依存し、例えば、特定の消費者向けストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容することができる。実現可能な圧縮比は、許容/耐容歪みが大きいほど、圧縮比が高くなり得ることを反映することができる。本明細書の説明は、説明のための例としてビデオの符号化/復号を使用するが、同じ技法は、本開示の趣旨から逸脱することなく、同様の方式で画像の符号化/復号に適用することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリからの技法を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技法を含むことができる。イントラコーディングでは、サンプル値は、以前に復元された参照ピクチャからのサンプルまたは他のデータを参照することなく表される。一部のビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分化される。サンプルのすべてのブロックがイントラモードでコーディングされるとき、そのピクチャはイントラピクチャであり得る。イントラピクチャ、および独立デコーダリフレッシュピクチャなどのそれらの派生物は、デコーダ状態をリセットするために使用することができるので、コーディングされたビデオビットストリームおよびビデオセッション内の最初のピクチャとして、または静止画像として使用することができる。イントラブロックのサンプルは、変換にさらされる可能性があり、変換係数は、エントロピーコーディングの前に量子化することができる。イントラ予測は、変換前領域内のサンプル値を最小化する技法であり得る。場合によっては、変換後のDC値が小さいほど、かつAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップのサイズにおいて必要とされるビットは少なくなる。
【0008】
例えばMPEG-2生成コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、復号順序で先行するデータのブロックの符号化/復号の間に取得される周囲のサンプルデータおよび/またはメタデータから試行する技法を含む。そのような技法は、以後「イントラ予測」技法と呼ばれる。少なくともいくつかの場合では、イントラ予測は復元中の現在ピクチャからの参照データのみを使用し、参照ピクチャからは使用しないことに留意されたい。
【0009】
イントラ予測には多くの異なる形式があり得る。そのような技法のうちの2つ以上が所与のビデオコーディング技術において使用され得るとき、使用中の技法はイントラ予測モードでコーディングすることができる。特定の場合には、モードは下位モードおよび/またはパラメータを有することができ、それらは個別にコーディングされ得るか、またはモードコードワードに含まれ得る。所与のモード/下位モード/パラメータの組合せにどのコードワードを使用するかは、イントラ予測によるコーディング効率の向上に影響を及ぼす可能性があるので、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術に影響を及ぼす可能性がある。
【0010】
イントラ予測の特定のモードは、H.264から導入され、H.265において改良され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術においてさらに改良された。予測器ブロックは、すでに利用可能なサンプルに属する隣接サンプル値を使用して形成することができる。隣接サンプルのサンプル値は、方向に従って予測器ブロックにコピーされる。使用中の方向への参照は、ビットストリーム内でコーディングされ得るか、またはそれ自体が予測されてもよい。
【0011】
図1Aを参照すると、右下に描写されているのは、H.265の(35個のイントラモードのうちの33個の角度モードに対応する)33個の可能な予測器方向から知られる9つの予測器方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、そこからサンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が水平から45度の角度で右上にある1つまたは複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が水平から22.5度の角度でサンプル(101)の左下にある1つまたは複数のサンプルから予測されることを示す。
【0012】
さらに
図1Aを参照すると、左上には、(太い破線によって示された)4×4サンプルの正方形ブロック(104)が描写されている。正方形ブロック(104)は16個のサンプルを含み、各々、「S」、Y次元のその位置(例えば、行インデックス)、およびX次元のその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)内のY次元およびX次元の両方で4番目のサンプルである。ブロックはサイズが4×4サンプルなので、S44は右下にある。同様の番号付け方式に従う参照サンプルがさらに示されている。参照サンプルは、ブロック(104)に対してR、そのY位置(例えば、行インデックス)、およびX位置(列インデックス)でラベル付けされている。H.264およびH.265の両方において、予測サンプルは復元中のブロックに隣接するので、負の値が使用される必要はない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向によって割り当てられるように、隣接サンプルからの参照サンプル値をコピーすることによって機能することができる。例えば、コーディングされたビデオビットストリームが、このブロックに関して、矢印(102)と一致する予測方向を示すシグナリングを含む、すなわち、サンプルが水平から45度の角度で右上にある1つまたは複数の予測サンプルから予測されると仮定する。その場合、同じ参照サンプルR05からサンプルS41、S32、S23、およびS14が予測される。次いで、参照サンプルR08からサンプルS44が予測される。
【0014】
特定の場合には、参照サンプルを計算するために、特に方向が45度によって均等に割り切れないとき、複数の参照サンプルの値は、例えば補間によって組み合わされてもよい。
【0015】
可能な方向の数は、ビデオコーディング技術が発展するにつれて増加している。H.264(2003年)では、9つの異なる方向を表すことができた。それがH.265(2013年)では33に増加し、本開示の時点では、JEM/VVC/BMSは最大65個の方向をサポートすることができる。最も可能性が高い方向を識別するために実験が行われており、エントロピーコーディングの特定の技術は、それらの可能性が高い方向を少数のビットで表すために使用され、可能性が低い方向に関しては一定のペナルティを受け入れている。さらに、方向自体は、時々、隣接するすでに復号されたブロックにおいて使用された隣接方向から予測することができる。
【0016】
図1Bは、経時的に増加する数の予測方向を示すために、JEMによる65個のイントラ予測方向を描写する概略図(110)を示す。
【0017】
方向を表す、コーディングされたビデオビットストリーム内のイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なってもよく、例えば、予測方向のイントラ予測モードへの単純な直接マッピングから、コードワード、最も可能性が高いモードを含む複雑な適応方式、および同様の技術まで及ぶことができる。しかしながら、すべての場合において、ビデオコンテンツ内で特定の他の方向よりも統計的に発生する可能性が低い特定の方向が存在する可能性がある。ビデオ圧縮の目的は冗長性の低減であるので、それらの可能性が低い方向は、良好に機能するビデオコーディング技術では、可能性が高い方向よりも多いビット数によって表される。
【0018】
動き補償は非可逆圧縮技法であり得、以前に復元されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以降、MV)によって示された方向に空間的にシフトされた後に、新しく復元されるピクチャまたはピクチャの一部の予測に使用される技法に関することができる。場合によっては、参照ピクチャは現在復元中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有することができ、3番目の次元は、使用中の参照ピクチャの指示である(後者は、間接的に時間次元であり得る)。
【0019】
いくつかのビデオ圧縮技法では、サンプルデータの特定の領域に適用可能なMVは、他のMVから、例えば、復元中の領域に空間的に隣接し、復号順序でそのMVに先行するサンプルデータの別の領域に関連するMVから予測することができる。そうすることにより、MVのコーディングに必要なデータ量を大幅に削減することができ、それによって冗長性が排除され、圧縮率が増加する。例えば、(ナチュラルビデオとして知られている)カメラから導出された入力ビデオ信号をコーディングするとき、単一のMVが適用可能な領域よりも大きい領域が同様の方向に移動する統計的な可能性が存在するので、MV予測は効果的に機能することができ、したがって、場合によっては、隣接する領域のMVから導出された同様の動きベクトルを使用して予測することができる。その結果、所与の領域について検出されたMVは、周囲のMVから予測されたMVと同様または同じであり、エントロピーコーディング後、直接MVをコーディングする場合に使用されるビット数より少ないビット数で表すことができる。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合、MV予測自体は、例えば、いくつかの周囲のMVから予測器を計算するときの丸め誤差のために、非可逆であり得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に記載されている。H.265が提供する多くのMV予測メカニズムのうち、本明細書に記載されるのは、以降「空間マージ」と呼ばれる技法である。
【0021】
図2を参照すると、現在ブロック(201)は、動き検索プロセス中にエンコーダにより、空間的にシフトされた同じサイズの以前のブロックから予測可能であることが見出されたサンプルを含む。直接そのMVをコーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ、202~206)と表記された5つの周囲サンプルのいずれか1つに関連付けられたMVを使用して、1つまたは複数の参照ピクチャに関連付けられたメタデータから、例えば、(復号順序で)最新の参照ピクチャから導出することができる。H.265では、MV予測は、隣接するブロックが使用している同じ参照ピクチャからの予測器を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示の態様は、ビデオ符号化およびビデオ復号のための方法および装置を提供する。いくつかの例では、ビデオ復号のための装置は処理回路を含む。処理回路は、ビデオデコーダ内のニューラルネットワークのためのコード化ビットストリーム内のニューラルネットワーク更新情報を復号するように構成される。ニューラルネットワークは、事前訓練されたパラメータで構成される。ニューラルネットワーク更新情報は、復元される符号化画像に対応し、事前訓練されたパラメータのうちの事前訓練されたパラメータに対応する置換パラメータを示す。処理回路は、置換パラメータに基づいてビデオデコーダ内のニューラルネットワークを更新するように構成される。処理回路は、符号化画像用の更新されたニューラルネットワークに基づいて符号化画像を復号するように構成される。
【0023】
一実施形態では、ニューラルネットワーク更新情報は、ビデオデコーダ内の1つまたは複数の残りのニューラルネットワーク用の1つまたは複数の置換パラメータをさらに示す。処理回路は、1つまたは複数の置換パラメータに基づいて1つまたは複数の残りのニューラルネットワークを更新するように構成される。
【0024】
一実施形態では、コード化ビットストリームは、符号化画像を復号するためのコンテキストモデルを決定するために使用される1つまたは複数の符号化ビットをさらに示す。ビデオデコーダは、メインデコーダネットワーク、コンテキストモデルネットワーク、エントロピーパラメータネットワーク、およびハイパーデコーダネットワークを含む。ニューラルネットワークは、メインデコーダネットワーク、コンテキストモデルネットワーク、エントロピーパラメータネットワーク、およびハイパーデコーダネットワークのうちの1つである。処理回路は、ハイパーデコーダネットワークを使用して1つまたは複数の符号化ビットを復号するように構成される。処理回路は、コンテキストモデルネットワークに利用可能な符号化画像の1つまたは複数の復号されたビットおよび量子化された潜像に基づいて、コンテキストモデルネットワークおよびエントロピーパラメータネットワークを使用してコンテキストモデルを決定することができる。処理回路は、メインデコーダネットワークおよびコンテキストモデルを使用して符号化画像を復号することができる。
【0025】
一例では、事前訓練されたパラメータは事前訓練されたバイアス項である。
【0026】
一例では、事前訓練されたパラメータは事前訓練された重み係数である。
【0027】
一例では、ニューラルネットワーク更新情報は、ニューラルネットワーク用の事前訓練されたパラメータのうちの複数の事前訓練されたパラメータに対応する複数の置換パラメータを示す。複数の事前訓練されたパラメータは事前訓練されたパラメータを含み、複数の事前訓練されたパラメータは、1つまたは複数の事前訓練されたバイアス項および1つまたは複数の事前訓練された重み係数を含む。処理回路は、置換パラメータを含む複数の置換パラメータに基づいてビデオデコーダ内のニューラルネットワークを更新することができる。
【0028】
一実施形態では、ニューラルネットワーク更新情報は、置換パラメータと事前訓練されたパラメータとの間の差を示す。処理回路は、差と事前訓練されたパラメータの和に従って置換パラメータを決定することができる。
【0029】
一実施形態では、処理回路は、更新されたニューラルネットワークに基づいてコード化ビットストリーム内の別の符号化画像を復号することができる。
【0030】
本開示の態様はまた、ビデオの符号化および復号のための方法を実行するように少なくとも1つのプロセッサによって実行可能なプログラムを記憶する非一時的コンピュータ可読記憶媒体を提供する。
【0031】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【図面の簡単な説明】
【0032】
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【
図2】一実施形態による、現在ブロック(201)および周囲サンプルを示す図である。
【
図3】一実施形態による、通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態による、通信システム(400)の簡略化されたブロック図の概略図である。
【
図5】一実施形態による、デコーダの簡略化されたブロック図の概略図である。
【
図6】一実施形態による、エンコーダの簡略化されたブロック図の概略図である。
【
図7】別の実施形態による、エンコーダのブロック図である。
【
図8】別の実施形態による、デコーダのブロック図である。
【
図9】本開示の一実施形態による、例示的なNICフレームワークを示す図である。
【
図10】本開示の一実施形態による、メインエンコーダネットワークの例示的な畳み込みニューラルネットワーク(CNN)を示す図である。
【
図11】本開示の一実施形態による、メインデコーダネットワークの例示的なCNNを示す図である。
【
図12】本開示の一実施形態による、ハイパーエンコーダの例示的なCNNを示す図である。
【
図13】本開示の一実施形態による、ハイパーデコーダの例示的なCNNを示す図である。
【
図14】本開示の一実施形態による、コンテキストモデルネットワークの例示的なCNNを示す図である。
【
図15】本開示の一実施形態による、エントロピーパラメータネットワークの例示的なCNNを示す図である。
【
図16A】本開示の一実施形態による、例示的なビデオエンコーダを示す図である。
【
図16B】本開示の一実施形態による、例示的なビデオデコーダを示す図である。
【
図17】本開示の一実施形態による、例示的なビデオエンコーダを示す図である。
【
図18】本開示の一実施形態による、例示的なビデオデコーダを示す図である。
【
図19】本開示の一実施形態による、プロセスを概説するフローチャートである。
【
図20】本開示の一実施形態による、プロセスを概説するフローチャートを示す。
【
図21】一実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0033】
図3は、本開示の一実施形態による、通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えば、ネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。
図3の例では、端末デバイス(310)および(320)の第1のペアは、データの単方向送信を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に送信するためのビデオデータ(例えば、端末デバイス(310)によって取り込まれたビデオピクチャのストリーム)をコード化することができる。符号化ビデオデータは、1つまたは複数のコード化ビデオビットストリームの形式で送信することができる。端末デバイス(320)は、ネットワーク(350)からコード化ビデオデータを受信し、コード化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向データ送信は、メディアサービングアプリケーションなどで一般的であり得る。
【0034】
別の例では、通信システム(300)は、例えばビデオ会議中に発生する可能性があるコード化ビデオデータの双方向送信を実行する端末デバイス(330)および(340)の第2のペアを含む。データの双方向送信の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)のうちの他の端末デバイスに送信するためのビデオデータ(例えば、端末デバイスによって取り込まれたビデオピクチャのストリーム)をコード化することができる。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)のうちの他の端末デバイスによって送信されたコード化ビデオデータを受信することができ、コード化ビデオデータを復号してビデオピクチャを復元することができ、復元されたビデオデータに従ってアクセス可能な表示デバイスにビデオピクチャを表示することができる。
【0035】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示される場合があるが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器を用いるアプリケーションを見出す。ネットワーク(350)は、例えば、電線(有線)および/またはワイヤレスの通信ネットワークを含む、端末デバイス(310)、(320)、(330)、および(340)の間でコード化ビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要でない可能性がある。
【0036】
図4は、開示された主題についてのアプリケーション用の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオの格納などを含む、他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0037】
ストリーミングシステムは、例えば、圧縮されていないビデオピクチャのストリーム(402)を作成するビデオソース(401)、例えば、デジタルカメラを含むことができるキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されたサンプルを含む。符号化ビデオデータ(404)(またはコード化ビデオビットストリーム)と比較したときに多いデータ量を強調するために太い線として描写されたビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理することができる。ビデオエンコーダ(403)は、以下でより詳細に記載されるように、開示された主題の態様を可能にするかまたは実装するために、ハードウェア、ソフトウェア、またはそれらの組合せを含むことができる。ビデオピクチャのストリーム(402)と比較したときに少ないデータ量を強調するために細い線として描写された符号化ビデオデータ(404)(または符号化ビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)に格納することができる。
図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、符号化ビデオデータ(404)のコピー(407)および(409)を取り出すことができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、符号化ビデオデータの入力コピー(407)を復号し、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(描写せず)上でレンダリングすることができるビデオピクチャの出力ストリーム(411)を作成する。いくつかのストリーミングシステムでは、符号化ビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従って符号化することができる。それらの規格の例には、ITU-T勧告H.265が含まれる。一例では、開発中のビデオコーディング規格は、非公式に多用途ビデオコーディング(VVC)として知られている。開示された主題は、VVCの文脈で使用されてもよい。
【0038】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)もビデオエンコーダ(図示せず)を含むことができる。
【0039】
図5は、本開示の一実施形態による、ビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0040】
受信機(531)は、ビデオデコーダ(510)によって復号される1つまたは複数のコード化ビデオシーケンス、同じかまたは別の実施形態では、一度に1つのコード化ビデオシーケンスを受信することができ、各コード化ビデオシーケンスの復号は、他のコード化ビデオシーケンスから独立している。コード化ビデオシーケンスは、チャネル(501)から受信されてもよく、チャネル(501)は、符号化ビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであってもよい。受信機(531)は、それらのそれぞれの使用エンティティ(描写せず)に転送され得る他のデータ、例えば、コード化オーディオデータおよび/または補助データストリームとともに符号化ビデオデータを受信することができる。受信機(531)は、コード化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサー(520)(以下、「パーサー(520)」)との間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他のアプリケーションでは、それはビデオデコーダ(510)の外側にあり得る(描写せず)。さらに他のアプリケーションでは、例えば、ネットワークジッタに対抗するために、ビデオデコーダ(510)の外側にバッファメモリ(描写せず)があり、加えて、例えば、プレイアウトタイミングを処理するために、ビデオデコーダ(510)の内側に別のバッファメモリ(515)があり得る。受信機(531)が十分な帯域幅および制御可能性のストア/フォワードデバイスから、または等同期ネットワークからデータを受信しているとき、バッファメモリ(515)は必要とされない場合があるか、または小さい可能性がある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)は、必要とされる場合があり、比較的大きい可能性があり、有利なことに適応サイズであり得、オペレーティングシステムまたはビデオデコーダ(510)の外側の同様の要素(描写せず)に少なくとも部分的に実装されてもよい。
【0041】
ビデオデコーダ(510)は、コード化ビデオシーケンスからシンボル(521)を復元するためにパーサー(520)を含んでもよい。これらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報、および潜在的に、電子デバイス(530)の不可欠な部分ではないが、
図5に示されたように、電子デバイス(530)に結合することができるレンダリングデバイス(512)(例えば、表示画面)などのレンダリングデバイスを制御するための情報が含まれる。レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(描写せず)の形式であってもよい。パーサー(520)は、受け取ったコード化ビデオシーケンスを構文解析/エントロピー復号することができる。コード化ビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、文脈感度の有無にかかわらず、可変長コーディング、ハフマンコーディング、算術コーディングなどを含む様々な原理に従うことができる。パーサー(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コード化ビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのための一組のサブグループパラメータを抽出することができる。サブグループは、ピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサー(520)はまた、コード化ビデオシーケンスから、変換係数、量子化器パラメータ値、動きベクトルなどの情報を抽出することができる。
【0042】
パーサー(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受け取ったビデオシーケンスに対してエントロピー復号/構文解析動作を実行することができる。
【0043】
シンボル(521)の復元は、(ピクチャ間およびピクチャ内、ブロック間およびブロック内などの)コード化ビデオピクチャまたはその一部のタイプならびに他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットがどのように関与するかは、パーサー(520)によってコード化ビデオシーケンスから構文解析されたサブグループ制御情報によって制御することができる。パーサー(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、分かりやすくするために描写されていない。
【0044】
すでに述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下に記載されるように、概念的にいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合することができる。しかしながら、開示された主題を記載するために、以下の機能ユニットへの概念的な細分化が適切である。
【0045】
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサー(520)からシンボル(521)として受け取る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0046】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコード化ブロック、すなわち、以前に復元されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に復元された部分からの予測情報を使用することができるブロックに関連する可能性がある。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲のすでに復元された情報を使用して、復元中のブロックと同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に復元された現在ピクチャおよび/または完全に復元された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0047】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコード化され、潜在的に動き補償されたブロックに関連する可能性がある。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加することができる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズムなどを含むことができる。
【0048】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けることができる。ビデオ圧縮技術は、(コード化ビデオビットストリームとも呼ばれる)コード化ビデオシーケンスに含まれるパラメータによって制御され、パーサー(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるインループフィルタ技術を含むことができるが、コード化ピクチャまたはコード化ビデオシーケンスの(復号順序で)前の部分の復号中に取得されたメタ情報に応答するだけでなく、以前に復元およびループフィルタリングされたサンプル値に応答することもできる。
【0049】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力されるだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に格納することができるサンプルストリームであり得る。
【0050】
特定のコード化ピクチャは、完全に復元されると、将来の予測のために参照ピクチャとして使用することができる。例えば、現在ピクチャに対応するコード化ピクチャが完全に復元され、コード化ピクチャが参照ピクチャとして(例えば、パーサー(520)によって)識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、未使用の現在ピクチャバッファは、次のコード化ピクチャの復元を開始する前に再割当てすることができる。
【0051】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの規格における所定のビデオ圧縮技術に従って復号動作を実行することができる。コード化ビデオシーケンスがビデオ圧縮技術または規格の構文とビデオ圧縮技術において文書化されたプロファイルの両方を順守するという意味で、コード化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定された構文に準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、そのプロファイル下で使用するために利用可能な唯一のツールとしていくつかのツールを選択することができる。また、準拠するために必要なことは、コード化ビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルにより、最大ピクチャサイズ、最大フレームレート、(例えば、1秒あたりのメガサンプル単位で測定された)最大復元サンプルレート、最大参照ピクチャサイズなどが制限される。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコード化ビデオシーケンス内でシグナリングされるHRDバッファ管理用のメタデータによってさらに制限され得る。
【0052】
一実施形態では、受信機(531)は、符号化ビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コード化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切に復号するために、かつ/または元のビデオデータをより正確に復元するために、ビデオデコーダ(510)によって使用されてもよい。追加のデータは、例えば、時間、空間、または信号ノイズ比(SNR)の拡張層、冗長スライス、冗長ピクチャ、順方向誤り訂正コードなどの形式であり得る。
【0053】
図6は、本開示の一実施形態による、ビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は電子デバイス(620)に含まれる。電子デバイス(620)は送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、
図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0054】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコード化されるビデオ画像を取り込むことができる(
図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は電子デバイス(620)の一部である。
【0055】
ビデオソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(603)によってコード化されるソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを格納するストレージデバイスであってもよい。ビデオ会議システムでは、ビデオソース(601)は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであってもよい。ビデオデータは、順番に見たときに動きを伝える複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間配列として編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明はサンプルに焦点を当てる。
【0056】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、またはアプリケーションによって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコード化ビデオシーケンス(643)にコード化し圧縮することができる。適切なコーディング速度を強制することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に記載される他の機能ユニットを制御し、他の機能ユニットに機能的に結合されている。分かりやすくするために、結合は描写されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値、…)、ピクチャサイズ、ピクチャグループ(GOP)のレイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
【0057】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。単純化し過ぎた説明として、一例では、コーディングループは、(例えば、コード化される入力ピクチャ、および参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成することに関与する)ソースコーダ(630)、ならびにビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、(シンボルとコード化ビデオビットストリームとの間のいかなる圧縮も、開示された主題で考慮されるビデオ圧縮技術において可逆であるため)(リモート)デコーダも作成するのと同様の方式で、シンボルを復元してサンプルデータを作成する。復元されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果につながるので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えれば、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えば、チャネルエラーのために同期性が維持できない場合に結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも使用される。
【0058】
「ローカル」デコーダ(633)の動作は、
図5とともに上記で詳細にすでに記載されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。しかしながら、また
図5を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサー(520)によるコード化ビデオシーケンスへのシンボルの符号化/復号は可逆であり得るので、バッファメモリ(515)を含むビデオデコーダ(510)のエントロピー復号部分、およびパーサー(520)は、ローカルデコーダ(633)に完全に実装されていない可能性がある。
【0059】
一実施形態では、デコーダ内に存在する構文解析/エントロピー復号を除くデコーダ技術は、対応するエンコーダ内に同一または実質的に同一の機能形態で存在する。したがって、開示される主題はデコーダの動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されたデコーダ技術の逆であるため、省略することができる。特定の領域において、より詳細な説明が以下に提供される。
【0060】
動作中、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコード化されたピクチャを参照して入力ピクチャを予測的にコード化する、動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差をコード化する。
【0061】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコード化ビデオデータを復号することができる。コーディングエンジン(632)の動作は、有利なことに、非可逆プロセスであってもよい。コード化ビデオデータが(
図6には示されていない)ビデオデコーダで復号され得るとき、復元されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、復元された参照ピクチャが参照ピクチャキャッシュ(634)に格納されるようにすることができる。このようにして、ビデオエンコーダ(603)は、(送信エラーがない)遠端ビデオデコーダによって取得される復元された参照ピクチャとして共通のコンテンツを有する、復元された参照ピクチャのコピーをローカルに格納することができる。
【0062】
予測器(635)は、コーディングエンジン(632)のための予測検索を実行することができる。すなわち、コード化される新しいピクチャの場合、予測器(635)は、新しいピクチャのための適切な予測参照として役立つことができる、(候補参照ピクセルブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、ピクセルブロックごとにサンプルブロックに対して動作することができる。場合によっては、予測器(635)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測参照を有することができる。
【0063】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
【0064】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)内でエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコード化ビデオシーケンスに変換する。
【0065】
送信機(640)は、エントロピーコーダ(645)によって作成されたコード化ビデオシーケンスをバッファリングして、通信チャネル(660)を介した送信の準備をすることができ、通信チャネル(660)は、符号化ビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオコーダ(603)からのコード化ビデオデータを、送信される他のデータ、例えば、コード化オーディオデータおよび/または補助データストリーム(ソースは図示されていない)とマージすることができる。
【0066】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当てることができ、それは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられてもよい。
【0067】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいかなる他のピクチャも使用せずにコード化および復号され得るピクチャであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、様々なタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形形態、ならびにそれらのそれぞれの用途および特徴を認識している。
【0068】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くとも1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。
【0069】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くとも2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。同様に、複数の予測ピクチャは、単一ブロックの復元のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
【0070】
ソースピクチャは、通常、複数のサンプルブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分化され、ブロックごとにコード化される。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割当てによって決定されるように、他の(すでにコード化された)ブロックを参照して予測的にコード化されてもよい。例えば、Iピクチャのブロックは、非予測的にコード化されてもよいか、またはそれらは、同じピクチャのすでにコード化されたブロックを参照して予測的にコード化されてもよい(空間予測もしくはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化されてもよい。Bピクチャのブロックは、1つまたは2つの以前にコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化されてもよい。
【0071】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コード化されたビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に準拠することができる。
【0072】
一実施形態では、送信機(640)は、符号化されたビデオとともに追加のデータを送信することができる。ソースコーダ(630)は、コード化ビデオシーケンスの一部としてそのようなデータを含んでもよい。追加のデータは、時間/空間/SNR拡張層、冗長なピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでもよい。
【0073】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)として取り込まれてもよい。(しばしば、イントラ予測と省略される)イントラピクチャ予測は、所与のピクチャ内の空間の相関関係を利用し、インターピクチャ予測は、ピクチャ間の(時間または他の)相関関係を利用する。一例では、現在ピクチャと呼ばれる、符号化/復号中の特定のピクチャがブロックに分割される。現在ピクチャ内のブロックが、以前にコード化され、ビデオ内にまだバッファリングされている参照ピクチャ内の参照ブロックに類似しているとき、現在ピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコード化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0074】
いくつかの実施形態では、インターピクチャ予測において双予測技法を使用することができる。双予測技法によれば、両方ともビデオ内の現在ピクチャよりも復号順序で前にある(が、それぞれ、表示順序で過去および将来であり得る)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコード化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックの組合せによって予測することができる。
【0075】
さらに、コーディング効率を改善するために、インターピクチャ予測においてマージモード技法を使用することができる。
【0076】
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロックの単位で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの同じサイズを有する。一般に、CTUは3つのコーディングツリーブロック(CTB)を含み、それらは1つの輝度CTBおよび2つの彩度CTBである。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64ピクセルのCTUは、1つの64×64ピクセルのCU、または4つの32×32ピクセルのCU、または16個の16×16ピクセルのCUに分割することができる。一例では、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために、各CUが分析される。CUは、時間および/または空間の予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUは、1つの輝度予測ブロック(PB)および2つの彩度PBを含む。一実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロックの単位で実行される。予測ブロックの一例として輝度予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのピクセルの値(例えば、輝度値)の行列を含む。
【0077】
図7は、本開示の別の実施形態による、ビデオエンコーダ(703)の図を示す。
ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコード化ビデオシーケンスの一部であるコード化ピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、
図4の例のビデオエンコーダ(403)の代わりに使用される。
【0078】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロック用のサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最良にコード化されるかどうかを判定する。処理ブロックがイントラモードでコード化されるとき、ビデオエンコーダ(703)は、イントラ予測技法を使用して、処理ブロックをコード化ピクチャに符号化することができ、処理ブロックがインターモードまたは双予測モードでコード化されるとき、ビデオエンコーダ(703)は、それぞれ、インター予測技法または双予測技法を使用して、処理ブロックをコード化ピクチャに符号化することができる。特定のビデオコーディング技術では、マージモードは、予測器の外側のコード化された動きベクトル成分の利点がない、動きベクトルが1つまたは複数の動きベクトル予測器から導出されるインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためにモード決定モジュール(図示せず)などの他の構成要素を含む。
【0079】
図7の例では、ビデオエンコーダ(703)は、
図7に示されたように一緒に結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0080】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技法による冗長情報、動きベクトル、マージモード情報の記述)を生成し、任意の適切な技法を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号された復号参照ピクチャである。
【0081】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを同じピクチャ内のすでにコード化されたブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つまたは複数のイントラ符号化技法によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、同じピクチャ内のイントラ予測情報および参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0082】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのイントラモード結果を選択し、エントロピーエンコーダ(725)を制御してイントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、モードがインターモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのインター予測結果を選択し、エントロピーエンコーダ(725)を制御してインター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0083】
残差計算器(723)は、受信ブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するために、残差データに基づいて動作するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な実施形態では、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、復号された残差データおよびインター予測情報に基づいて復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データおよびイントラ予測情報に基づいて復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(図示せず)にバッファリングされ、いくつかの例では参照ピクチャとして使用することができる。
【0084】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(725)は、ビットストリーム内に汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報を含めるように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするときに残差情報が存在しないことに留意されたい。
【0085】
図8は、本開示の別の実施形態による、ビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コード化ビデオシーケンスの一部であるコード化ピクチャを受信し、コード化ピクチャを復号して復元されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、
図4の例のビデオデコーダ(410)の代わりに使用される。
【0086】
図8の例では、ビデオデコーダ(810)は、
図8に示されたように一緒に結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、復元モジュール(874)、およびイントラデコーダ(872)を含む。
【0087】
エントロピーデコーダ(871)は、コード化ピクチャから、コード化ピクチャが構成される構文要素を表す特定のシンボルを復元するように構成することができる。そのようなシンボルは、例えば、(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモードのうちの後者2つなどの)ブロックがコード化されるモード、それぞれ、イントラデコーダ(872)またはインターデコーダ(880)による予測に使用される特定のサンプルまたはメタデータを識別することができる(例えば、イントラ予測情報またはインター予測情報などの)予測情報、例えば、量子化変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインターモードまたは双予測モードであるとき、インター予測情報はインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプであるとき、イントラ予測情報はイントラデコーダ(872)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0088】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0089】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0090】
残差デコーダ(873)は、逆量子化を実行して逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、(量子化器パラメータ(QP)を含めるために)特定の制御情報を必要とする場合があり、その情報は、エントロピーデコーダ(871)によって提供される場合がある(これは、少量の制御情報のみである可能性があるので、データパスは描写されていない)。
【0091】
復元モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と(場合によってはインター予測モジュールまたはイントラ予測モジュールによって出力された)予測結果を組み合わせて、復元されたピクチャの一部であり得る復元されたブロックを形成するように構成され、復元されたピクチャは復元されたビデオの一部であり得る。見栄えを改善するために、デブロッキング動作などの他の適切な動作を実行することができることに留意されたい。
【0092】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技法を使用して実装することができることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
【0093】
本開示は、人工知能(AI)ベースのニューラル画像圧縮(NIC)などのニューラル画像圧縮技術および/またはニューラルビデオ圧縮技術に関連するビデオコーディング技術を記載する。本開示の態様は、ニューラルネットワークに基づくエンドツーエンド(E2E)最適化画像コーディングフレームワークのためのNIC方法などの、NICにおけるコンテンツ適応型オンライン訓練を含む。ニューラルネットワーク(NN)は、深層ニューラルネットワーク(DNN)、畳み込みニューラルネットワーク(CNN)などの人工ニューラルネットワーク(ANN)を含むことができる。
【0094】
一実施形態では、関連するハイブリッドビデオコーデックは、全体として最適化されることが困難である。例えば、ハイブリッドビデオコーデックにおける単一のモジュール(例えば、エンコーダ)の改善は、全体的な性能におけるコーディング利得をもたらさない場合がある。NNベースのビデオコーディングフレームワークでは、学習プロセスまたは訓練プロセス(例えば、機械学習プロセス)を実行することによって最終目的(例えば、本開示に記載されたレート歪み損失Lなどのレート歪み性能)を改善するために、入力から出力まで異なるモジュールを一緒に最適化することができ、したがってE2E最適化NICが得られる。
【0095】
例示的なNICフレームワークまたはシステムは、以下のように記載することができる。NICフレームワークは、ニューラルネットワークエンコーダ(例えば、DNNなどのニューラルネットワークに基づくエンコーダ)への入力として入力画像xを使用して、例えば、記憶および送信の目的でコンパクトにすることができる圧縮表現(例えば、コンパクトな表現)
【数1】
を計算することができる。ニューラルネットワークデコーダ(例えば、DNNなどのニューラルネットワークに基づくデコーダ)は、入力として圧縮表現
【数2】
を使用して、(復元画像とも呼ばれる)出力画像
【数3】
を復元することができる。様々な実施形態では、入力画像xおよび復元画像
【数4】
は空間領域内にあり、圧縮表現
【数5】
は空間領域とは異なる領域内にある。いくつかの例では、圧縮表現
【数6】
は量子化され、エントロピーコード化される。
【0096】
いくつかの例では、NICフレームワークは、変分オートエンコーダ(VAE)構造を使用することができる。VAE構造では、ニューラルネットワークエンコーダは、ニューラルネットワークエンコーダへの入力として入力画像x全体を直接使用することができる。入力画像x全体は、ブラックボックスとして機能して圧縮表現
【数7】
を計算する一組のニューラルネットワーク層を通過することができる。圧縮表現
【数8】
は、ニューラルネットワークエンコーダの出力である。ニューラルネットワークデコーダは、入力として圧縮表現
【数9】
全体を取得することができる。圧縮表現
【数10】
は、別のブラックボックスとして機能して圧縮表現
【数11】
を計算する別の組のニューラルネットワーク層を通過することができる。レート歪み(R-D)損失
【数12】
は、復元画像
【数13】
の歪み損失
【数14】
と、トレードオフハイパーパラメータλを有するコンパクト表現
【数15】
のビット消費量Rとの間のトレードオフを実現するように最適化することができる。
【数16】
【0097】
ニューラルネットワーク(例えば、ANN)は、タスク固有のプログラミングなしに、例からタスクを実行することを学習することができる。ANNは、接続されたノードまたは人工ニューロンで構成することができる。ノード間の接続は、第1のノードから第2のノード(例えば、受信ノード)に信号を送信することができ、信号は、接続用の重み係数によって示すことができる重みによって修正することができる。受信ノードは、受信ノードに信号を送信するノードからの信号(すなわち、受信ノード向けの入力信号)を処理し、次いで、入力信号に関数を適用することによって出力信号を生成することができる。関数は、線形関数であり得る。一例では、出力信号は入力信号の加重和である。一例では、出力信号は、バイアス項によって示すことができるバイアスによってさらに修正され、したがって、出力信号は、バイアスと入力信号の加重和の和である。関数は、例えば、入力信号の加重和またはバイアスと加重和の和に対する非線形演算を含むことができる。出力信号は、受信ノードに接続されたノード(下流ノード)に送信することができる。ANNは、パラメータ(例えば、接続の重みおよび/またはバイアス)によって表現または構成することができる。重みおよび/またはバイアスは、重みおよび/またはバイアスを反復的に調整することができる例を用いてANNを訓練することによって取得することができる。決定された重みおよび/または決定されたバイアスで構成された訓練されたANNは、タスクを実行するために使用することができる。
【0098】
ANN内のノードは、任意の適切なアーキテクチャにおいて編成することができる。様々な実施形態では、ANN内のノードは、ANNへの入力信号を受信する入力層と、ANNからの出力信号を出力する出力層とを含む層内で編成される。一実施形態では、ANNは、入力層と出力層との間の隠れ層などの層をさらに含む。異なる層は、異なる層のそれぞれの入力に対して異なる種類の変換を実行することができる。信号は、入力層から出力層に移動することができる。
【0099】
入力層と出力層との間に複数の層を有するANNは、DNNと呼ぶことができる。一実施形態では、DNNは、データがループバックすることなく入力層から出力層に流れるフィードフォワードネットワークである。一例では、DNNは、1つの層内の各ノードが次の層内のすべてのノードに接続される完全接続ネットワークである。一実施形態では、DNNは、データが任意の方向に流れることができる再帰型ニューラルネットワーク(RNN)である。一実施形態では、DNNはCNNである。
【0100】
CNNは、入力層、出力層、および入力層と出力層との間の隠れ層を含むことができる。隠れ層は、2次元(2D)畳み込みなどの畳み込みを実行する(例えば、エンコーダで使用される)畳み込み層を含むことができる。一実施形態では、畳み込み層で実行される2D畳み込みは、(5×5行列などのフィルタまたはチャネルとも呼ばれる)畳み込みカーネルと、畳み込み層への入力信号(例えば、2D画像、256×256行列などの2D行列)との間にある。様々な例では、畳み込みカーネルの次元(例えば、5×5)は、入力信号の次元(例えば、256×256)よりも小さい。したがって、畳み込みカーネルによってカバーされる入力信号(例えば、256×256行列)内の一部分(例えば、5×5の領域)は、入力信号の領域(例えば、256×256の領域)よりも小さく、したがって、次の層のそれぞれのノードにおける受容野と呼ぶことができる。
【0101】
畳み込みの間、畳み込みカーネルと入力信号内の対応する受容野の内積が計算される。したがって、畳み込みカーネルの各要素は、受容野内の対応するサンプルに適用される重みであり、したがって、畳み込みカーネルは重みを含む。例えば、5×5行列によって表される畳み込みカーネルは、25個の重みを有する。いくつかの例では、畳み込み層の出力信号にバイアスが印加され、出力信号は内積とバイアスの和に基づく。
【0102】
畳み込みカーネルは、ストライドと呼ばれるサイズだけ入力信号(例えば、2D行列)に沿ってシフトすることができ、したがって、畳み込み演算は、特徴マップまたは活性化マップ(例えば、別の2D行列)を生成し、それは次にCNNにおける次の層の入力に寄与する。例えば、入力信号は256×256個のサンプルを有する2D画像であり、ストライドは2サンプル(例えば、2のストライド)である。2のストライドの場合、畳み込みカーネルは、X方向(例えば、水平方向)および/またはY方向(例えば、垂直方向)に沿って2サンプルだけシフトする。
【0103】
複数の畳み込みカーネルは、それぞれ、複数の特徴マップを生成するために同じ畳み込み層内で入力信号に適用することができ、各特徴マップは入力信号の特定の特徴を表すことができる。一般に、N個のチャネル(すなわち、N個の畳み込みカーネル)を有する畳み込み層は、各畳み込みカーネルがM×M個のサンプルを有し、ストライドSはConv:M×M cN sSとして指定することができる。例えば、192個のチャネルを有する畳み込み層は、各畳み込みカーネルが5×5個のサンプルを有し、2のストライドはConv:5×5 c192 s2として指定される。隠れ層は、2D逆畳み込みなどの逆畳み込みを実行する(例えば、デコーダで使用される)逆畳み込み層を含むことができる。逆畳み込みは、畳み込みの反対である。192個のチャネルを有する逆畳み込み層は、各逆畳み込みカーネルが5×5個のサンプルを有し、2のストライドはDeConv:5×5 c192 s2として指定される。
【0104】
様々な実施形態では、CNNは以下の利点を有する。CNNにおける学習可能なパラメータの数(すなわち、訓練されるパラメータ)は、フィードフォワードDNNなどのDNNにおける学習可能なパラメータの数よりも大幅に小さくすることができる。CNNでは、比較的大きい数のノードが同じフィルタ(例えば、同じ重み)および(バイアスが使用される場合)同じバイアスを共有することができ、したがって、同じフィルタを共有するすべての受容野にわたって単一のバイアスおよび単一の重みベクトルを使用することができるので、メモリフットプリントを低減することができる。例えば、100×100個のサンプルを有する入力信号の場合、5×5個のサンプルを有する畳み込みカーネルによる畳み込み層は、25個の学習可能なパラメータ(例えば、重み)を有する。バイアスが使用される場合、1つのチャネルは、26個の学習可能なパラメータ(例えば、25個の重みおよび1つのバイアス)を使用する。畳み込み層がN個のチャネルを有する場合、学習可能なパラメータの総数は26×N個である。一方、DNNにおける完全接続層の場合、次の層のノードごとに100×100(すなわち、10000)個の重みが使用される。次の層がL個のノードを有する場合、学習可能なパラメータの総数は10000×L個である。
【0105】
CNNは、プーリング層、1つの層内のすべてのノードを別の層内のすべてのノードに接続することができる完全接続層、正規化層などの、1つまたは複数の他の層をさらに含むことができる。CNN内の層は、任意の適切な順序および任意の適切なアーキテクチャ(例えば、フィードフォワードアーキテクチャ、再帰型アーキテクチャ)で配置することができる。一例では、畳み込み層の後に、プーリング層、完全接続層、正規化層などの他の層が続く。
【0106】
プーリング層は、1つの層にある複数のノードからの出力を次の層内の単一のノードに結合することによってデータの次元を削減するために使用することができる。入力として特徴マップを有するプーリング層に対するプーリング動作が以下に記載される。説明は、他の入力信号に適切に適合させることができる。特徴マップは、サブ領域(例えば、矩形サブ領域)に分割することができ、それぞれのサブ領域内の特徴は、例えば、平均プーリングにおける平均値または最大プーリングにおける最大値を取ることにより、単一の値に単独でダウンサンプリング(またはプーリング)することができる。
【0107】
プーリング層は、ローカルプーリング、グローバルプーリング、最大プーリング、平均プーリングなどのプーリングを実行することができる。プーリングは非線形ダウンサンプリングの一形態である。ローカルプーリングは、特徴マップ内の少数のノード(例えば、2×2ノードなどのノードのローカルクラスタ)を組み合わせる。グローバルプーリングは、例えば、特徴マップのすべてのノードを組み合わせることができる。
【0108】
プーリング層は、表現のサイズを縮小することができ、したがって、CNNにおけるパラメータの数、メモリフットプリント、および計算量を削減することができる。一例では、プーリング層は、CNN内の連続する畳み込み層の間に挿入される。一例では、プーリング層の後に、整流線形ユニット(ReLU)層などの活性化関数が続く。一例では、プーリング層は、CNN内の連続する畳み込み層の間で省略される。
【0109】
正規化層は、ReLU、漏洩ReLU、一般化神経活動正規化(GDN)、逆GDN(IGDN)などであり得る。ReLUは、非飽和活性化関数を適用して、負の値を0に設定することにより、特徴マップなどの入力信号から負の値を除去することができる。漏洩ReLUは、平坦な勾配(例えば、0)ではなく、負の値に対して小さい勾配(例えば、0.01)を有することができる。したがって、値xが0より大きい場合、漏洩ReLUからの出力はxである。そうでない場合、漏洩ReLUからの出力は、値xに小さい勾配(例えば、0.01)を乗算したものである。一例では、勾配は訓練前に決定され、したがって訓練中に学習されない。
【0110】
図9は、本開示の一実施形態による、例示的なNICフレームワーク(900)(例えば、NICシステム)を示す。NICフレームワーク(900)は、DNNおよび/またはCNNなどのニューラルネットワークに基づくことができる。NICフレームワーク(900)は、画像を圧縮(例えば、符号化)し、圧縮画像(例えば、符号化画像)を解凍(例えば、復号または復元)するために使用することができる。NICフレームワーク(900)は、ニューラルネットワークを使用して実装される2つのサブニューラルネットワーク、第1のサブNN(951)および第2のサブNN(952)を含むことができる。
【0111】
第1のサブNN(951)はオートエンコーダに似ることができ、入力画像xの圧縮画像
【数17】
を生成し、圧縮画像
【数18】
を解凍して復元画像
【数19】
を取得するように訓練することができる。第1のサブNN(951)は、メインエンコーダニューラルネットワーク(またはメインエンコーダネットワーク)(911)、量子化器(912)、エントロピーエンコーダ(913)、エントロピーデコーダ(914)、およびメインデコーダニューラルネットワーク(またはメインエンコーダネットワーク)(915)などの、複数の構成要素(またはモジュール)を含むことができる。
図9を参照すると、メインエンコーダネットワーク(911)は、入力画像x(例えば、圧縮または符号化される画像)から潜像または潜在的表現yを生成することができる。一例では、メインエンコーダネットワーク(911)はCNNを使用して実装される。潜在的表現yと入力画像xとの間の関係は、式2を使用して記述することができる。
y=f
1(x;θ
1) 式2
ここで、パラメータθ
1は、メインエンコーダネットワーク(911)内の畳み込みカーネルで使用される重みおよび(メインエンコーダネットワーク(911)内でバイアスが使用される場合の)バイアスなどのパラメータを表す。
【0112】
潜在的表現yは、量子化潜像
【数20】
を生成するために量子化器(912)を使用して量子化することができる。量子化潜像
【数21】
は、例えば、エントロピーエンコーダ(913)による可逆圧縮を使用して圧縮されて、入力画像xの圧縮表現
【数22】
である圧縮画像(例えば、符号化画像)
【数23】
(931)を生成することができる。エントロピーエンコーダ(913)は、ハフマンコーディング、算術コーディングなどのエントロピーコーディング技法を使用することができる。一例では、エントロピーエンコーダ(913)は算術符号化を使用し、算術エンコーダである。一例では、符号化画像(931)はコード化ビットストリーム内で送信される。
【0113】
符号化画像(931)は、エントロピーデコーダ(914)によって解凍(例えば、エントロピー復号)されて出力を生成することができる。エントロピーデコーダ(914)は、エントロピーエンコーダ(913)で使用されるエントロピー符号化技法に対応するハフマンコーディング、算術コーディングなどのエントロピーコーディング技法を使用することができる。一例では、エントロピーデコーダ(914)は算術復号を使用し、算術デコーダである。一例では、エントロピーエンコーダ(913)で可逆圧縮が使用され、エントロピーデコーダ(914)で可逆解凍が使用され、符号化画像(931)の送信などによるノイズは省略可能であり、エントロピーデコーダ(914)からの出力は量子化潜像
【数24】
である。
【0114】
メインデコーダネットワーク(915)は、量子化潜像
【数25】
を復号して復元画像
【数26】
を生成することができる。一例では、メインデコーダネットワーク(915)はCNNを使用して実装される。復元画像
【数27】
(すなわち、メインデコーダネットワーク(915)の出力)と量子化潜像
【数28】
(すなわち、メインデコーダネットワーク(915)の入力)との間の関係は、式3を使用して記述することができる。
【数29】
ここで、パラメータθ
2は、メインデコーダネットワーク(915)内の畳み込みカーネルで使用される重みおよび(メインデコーダネットワーク(915)内でバイアスが使用される場合の)バイアスなどのパラメータを表す。したがって、第1のサブNN(951)は、入力画像xを圧縮(例えば、符号化)して符号化画像(931)を取得し、符号化画像(931)を解凍(例えば、復号)して復元画像
【数30】
を取得することができる。復元画像
【数31】
は、量子化器(912)によって導入される量子化損失に起因して入力画像xとは異なる可能性がある。
【0115】
第2のサブNN(952)は、エントロピーコーディングに使用される量子化潜像
【数32】
にわたってエントロピーモデル(例えば、事前確率モデル)を学習することができる。したがって、エントロピーモデルは、条件付きエントロピーモデル、例えば、ガウス混合モデル(GMM)、入力画像xに依存するガウススケールモデル(GSM)であり得る。第2のサブNN(952)は、コンテキストモデルNN(916)、エントロピーパラメータNN(917)、ハイパーエンコーダ(921)、量子化器(922)、エントロピーエンコーダ(923)、エントロピーデコーダ(924)、およびハイパーデコーダ(925)を含むことができる。コンテキストモデルNN(916)で使用されるエントロピーモデルは、潜像(例えば、量子化潜像
【数33】
)上の自己回帰モデルであり得る。一例では、ハイパーエンコーダ(921)、量子化器(922)、エントロピーエンコーダ(923)、エントロピーデコーダ(924)、およびハイパーデコーダ(925)は、ハイパーニューラルネットワーク(例えば、ハイパー事前NN)を形成する。ハイパーニューラルネットワークは、コンテキストベースの予測を補正するのに有用な情報を表すことができる。コンテキストモデルNN(916)およびハイパーニューラルネットワークからのデータは、エントロピーパラメータNN(917)によって組み合わせることができる。エントロピーパラメータNN(917)は、条件付きガウスエントロピーモデル(例えば、GMM)などのエントロピーモデル用の平均パラメータおよびスケールパラメータなどのパラメータを生成することができる。
【0116】
図9を参照すると、エンコーダ側では、量子化器(912)からの量子化潜像
【数34】
がコンテキストモデルNN(916)に供給される。デコーダ側では、エントロピーエンコーダ(914)からの量子化潜像
【数35】
がコンテキストモデルNN(916)に供給される。コンテキストモデルNN(916)は、CNNなどのニューラルネットワークを使用して実装することができる。コンテキストモデルNN(916)は、コンテキストモデルNN(916)に利用可能な量子化潜像
【数36】
であるコンテキスト
【数37】
に基づいて出力o
cm,iを生成することができる。コンテキスト
【数38】
は、エンコーダ側で以前に量子化された潜像、またはデコーダ側で以前にエントロピー復号された量子化潜像を含むことができる。出力o
cm,iとコンテキストモデルNN(916)の入力(例えば、
【数39】
)との間の関係は、式4を使用して記述することができる。
【数40】
ここで、パラメータθ
3は、コンテキストモデルNN(916)内の畳み込みカーネルで使用される重みおよび(コンテキストモデルNN(916)内でバイアスが使用される場合の)バイアスなどのパラメータを表す。
【0117】
コンテキストモデルNN(916)からの出力o
cm,iおよびハイパーデコーダ(925)からの出力o
hcは、エントロピーパラメータNN(917)に供給されて出力o
epを生成する。エントロピーパラメータNN(917)は、CNNなどのニューラルネットワークを使用して実装することができる。出力o
epとエントロピーパラメータNN(917)の入力(例えば、o
cm,iおよびo
hc)との間の関係は、式5を使用して記述することができる。
o
ep=f
4(o
cm,i,o
hc;θ
4) 式5
ここで、パラメータθ
4は、エントロピーパラメータNN(917)内の畳み込みカーネルで使用される重みおよび(エントロピーパラメータNN(917)内でバイアスが使用される場合の)バイアスなどのパラメータを表す。エントロピーパラメータNN(917)の出力o
epは、エントロピーモデルを決定する(例えば、条件付ける)際に使用することができ、したがって、条件付きエントロピーモデルは、例えば、ハイパーデコーダ(925)からの出力o
hcを介して入力画像xに依存することができる。一例では、出力o
epは、エントロピーモデル(例えば、GMM)を条件付けるために使用される平均パラメータおよびスケールパラメータなどのパラメータを含む。
図9を参照すると、エントロピーモデル(例えば、条件付きエントロピーモデル)は、それぞれ、エントロピーコーディングおよびエントロピー復号において、エントロピーエンコーダ(913)およびエントロピーデコーダ(914)によって使用することができる。
【0118】
第2のサブNN(952)は後述することができる。潜像yは、ハイパーエンコーダ(921)に供給されて、ハイパー潜像zを生成することができる。一例では、ハイパーエンコーダ(921)は、CNNなどのニューラルネットワークを使用して実装される。ハイパー潜像zと潜像yとの間の関係は、式6を使用して記述することができる。
z=f5(y;θ5) 式6
ここで、パラメータθ5は、ハイパーエンコーダ(921)内の畳み込みカーネルで使用される重みおよび(ハイパーエンコーダ(921)内でバイアスが使用される場合の)バイアスなどのパラメータを表す。
【0119】
ハイパー潜像zは、量子化器(922)によって量子化されて、量子化潜像
【数41】
を生成する。量子化潜像
【数42】
は、例えば、エントロピーエンコーダ(923)による可逆圧縮を使用して圧縮されて、ハイパーニューラルネットワークからの符号化ビット(932)などのサイド情報を生成することができる。エントロピーエンコーダ(923)は、ハフマンコーディング、算術コーディングなどのエントロピーコーディング技法を使用することができる。一例では、エントロピーエンコーダ(923)は算術符号化を使用し、算術エンコーダである。一例では、符号化ビット(932)などのサイド情報は、例えば、符号化画像(931)と一緒にコード化ビットストリーム内で送信することができる。
【0120】
符号化ビット(932)などのサイド情報は、エントロピーデコーダ(924)によって解凍(例えば、エントロピー復号)されて出力を生成することができる。エントロピーデコーダ(924)は、ハフマンコーディング、算術コーディングなどのエントロピーコーディング技法を使用することができる。一例では、エントロピーデコーダ(924)は算術復号を使用し、算術デコーダである。一例では、エントロピーエンコーダ(923)で可逆圧縮が使用され、エントロピーデコーダ(924)で可逆解凍が使用され、サイド情報の送信などによるノイズは省略可能であり、エントロピーデコーダ(924)からの出力は量子化潜像
【数43】
である。ハイパーデコーダ(925)は、量子化潜像
【数44】
を復号して出力o
hcを生成することができる。出力o
hcと量子化潜像
【数45】
との間の関係は、式7を使用して記述することができる。
【数46】
ここで、パラメータθ
6は、ハイパーデコーダ(925)内の畳み込みカーネルで使用される重みおよび(ハイパーデコーダ(925)内でバイアスが使用される場合の)バイアスなどのパラメータを表す。
【0121】
上述されたように、圧縮ビットまたは符号化ビット(932)をサイド情報としてコード化ビットストリームに追加することができ、それにより、エントロピーデコーダ(914)が条件付きエントロピーモデルを使用することが可能になる。したがって、エントロピーモデルは、画像依存かつ空間的に適応可能であり得、したがって、固定エントロピーモデルよりも正確であり得る。
【0122】
NICフレームワーク(900)は、例えば、
図9に示された1つもしくは複数の構成要素を省略し、
図9に示された1つもしくは複数の構成要素を修正し、かつ/または
図9に示されていない1つもしくは複数の構成要素を含むように適切に適合させることができる。一例では、固定エントロピーモデルを使用するNICフレームワークは、第1のサブNN(951)を含み、第2のサブNN(952)を含まない。一例では、NICフレームワークは、エントロピーエンコーダ(923)およびエントロピーデコーダ(924)を除くNICフレームワーク(900)内の構成要素を含む。
【0123】
一実施形態では、
図9に示されたNICフレームワーク(900)内の1つまたは複数の構成要素は、CNNなどのニューラルネットワークを使用して実装される。NICフレームワーク(例えば、NICフレームワーク(900))内の各NNベースの構成要素(例えば、メインエンコーダネットワーク(911)、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピーパラメータNN(917)、ハイパーエンコーダ(921)、またはハイパーデコーダ(925))は、(例えば、層の任意の適切な組合せを有する)任意の適切なアーキテクチャを含み、任意の適切なタイプのパラメータ(例えば、重み、バイアス、重みとバイアスの組合せなど)を含み、任意の適切な数のパラメータを含むことができる。
【0124】
一実施形態では、メインエンコーダネットワーク(911)、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピーパラメータNN(917)、ハイパーエンコーダ(921)、およびハイパーデコーダ(925)は、それぞれのCNNを使用して実装される。
【0125】
図10は、本開示の一実施形態による、メインエンコーダネットワーク(911)の例示的なCNNを示す。例えば、メインエンコーダネットワーク(911)は4組の層を含み、各組の層は畳み込み層5×5 c192 s2とそれに続くGDN層とを含む。
図10に示された1つまたは複数の層は、修正および/または省略することができる。メインエンコーダネットワーク(911)にさらなる層を追加することができる。
【0126】
図11は、本開示の一実施形態による、メインデコーダネットワーク(915)の例示的なCNNを示す。例えば、メインデコーダネットワーク(915)は3組の層を含み、各組の層は逆畳み込み層5×5 c192 s2とそれに続くIGDN層とを含む。加えて、3組の層の後に逆畳み込み層5×5 c3 s2が続き、その後にIGDN層が続く。
図11に示された1つまたは複数の層は、修正および/または省略することができる。メインデコーダネットワーク(915)にさらなる層を追加することができる。
【0127】
図12は、本開示の一実施形態による、ハイパーエンコーダ(921)の例示的なCNNを示す。例えば、ハイパーエンコーダ(921)は、漏洩ReLUがその後に続く畳み込み層3×3 c192 s1と、漏洩ReLUがその後に続く畳み込み層5×5 c192 s2と、畳み込み層5×5 c192 s2とを含む。
図12に示された1つまたは複数の層は、修正および/または省略することができる。ハイパーエンコーダ(921)にさらなる層を追加することができる。
【0128】
図13は、本開示の一実施形態による、ハイパーデコーダ(925)の例示的なCNNを示す。例えば、ハイパーデコーダ(925)は、漏洩ReLUがその後に続く逆畳み込み層5×5 c192 s2と、漏洩ReLUがその後に続く逆畳み込み層5×5 c288 s2と、逆畳み込み層3×3 c384 s1とを含む。
図13に示された1つまたは複数の層は、修正および/または省略することができる。ハイパーエンコーダ(925)にさらなる層を追加することができる。
【0129】
図14は、本開示の一実施形態による、コンテキストモデルNN(916)の例示的なCNNを示す。例えば、コンテキストモデルNN(916)は、コンテキスト予測のためのマスクされた畳み込み5×5 c384 s1を含み、したがって、式4のコンテキスト
【数47】
は、限定されたコンテキスト(例えば、5×5の畳み込みカーネル)を含む。
図14の畳み込み層は修正することができる。コンテキストモデルNN(916)にさらなる層を追加することができる。
【0130】
図15は、本開示の一実施形態による、エントロピーパラメータNN(917)の例示的なCNNを示す。例えば、エントロピーパラメータNN(917)は、漏洩ReLUがその後に続く畳み込み層1×1 c640 s1と、漏洩ReLUがその後に続く畳み込み層1×1 c512 s1と、畳み込み層1×1 c384 s1とを含む。
図15に示された1つまたは複数の層は、修正および/または省略することができる。エントロピーパラメータNN(917)にさらなる層を追加することができる。
【0131】
NICフレームワーク(900)は、
図10~
図15を参照して記載されたように、CNNを使用して実装することができる。NICフレームワーク(900)は、NICフレームワーク(900)内の1つまたは複数の構成要素(例えば、(911)、(915)、(916)、(917)、(921)、および/または(925))が任意の適切なタイプのニューラルネットワーク(例えば、CNNまたは非CNNベースのニューラルネットワーク)を使用して実装されるように適切に適合させることができる。NICフレームワーク(900)の1つまたは複数の他の構成要素は、ニューラルネットワークを使用して実装することができる。
【0132】
ニューラルネットワーク(例えば、CNN)を含むNICフレームワーク(900)は、ニューラルネットワークで使用されるパラメータを学習するように訓練することができる。例えば、CNNが使用されるとき、それぞれ、メインエンコーダネットワーク(911)内の畳み込みカーネルで使用される重みおよび(メインエンコーダネットワーク(911)内でバイアスが使用される場合の)バイアス、メインデコーダネットワーク(915)内の畳み込みカーネルで使用される重みおよび(メインデコーダネットワーク(915)内でバイアスが使用される場合の)バイアス、ハイパーエンコーダ(921)内の畳み込みカーネルで使用される重みおよび(ハイパーエンコーダ(921)内でバイアスが使用される場合の)バイアス、ハイパーデコーダ(925)内の畳み込みカーネルで使用される重みおよび(ハイパーデコーダ(925)内でバイアスが使用される場合の)バイアス、コンテキストモデルNN(916)内の畳み込みカーネルで使用される重みおよび(コンテキストモデルNN(916)内でバイアスが使用される場合の)バイアス、ならびにエントロピーパラメータNN(917)内の畳み込みカーネルで使用される重みおよび(エントロピーパラメータNN(917)内でバイアスが使用される場合の)バイアスなどの、θ1~θ6によって表されるパラメータは、訓練プロセスにおいて学習することができる。
【0133】
一例では、
図10を参照すると、メインエンコーダネットワーク(911)は4つの畳み込み層を含み、各畳み込み層は5×5の畳み込みカーネルおよび192個のチャネルを有する。したがって、メインエンコーダネットワーク(911)内の畳み込みカーネルで使用される重みの数は、19200(すなわち、4×5×5×192)である。メインエンコーダネットワーク(911)で使用されるパラメータは、19200個の重みおよび任意選択のバイアスを含む。バイアスおよび/またはさらなるNNがメインエンコーダネットワーク(911)で使用されるとき、さらなるパラメータを含めることができる。
【0134】
図9を参照すると、NICフレームワーク(900)は、ニューラルネットワーク上に構築された少なくとも1つの構成要素またはモジュールを含む。少なくとも1つの構成要素は、メインエンコーダネットワーク(911)、メインデコーダネットワーク(915)、ハイパーエンコーダ(921)、ハイパーデコーダ(925)、コンテキストモデルNN(916)、およびエントロピーパラメータNN(917)のうちの1つまたは複数を含むことができる。少なくとも1つの構成要素は個別に訓練することができる。一例では、訓練プロセスは、構成要素ごとのパラメータを別々に学習するために使用される。少なくとも1つの構成要素はグループとして一緒に訓練することができる。一例では、訓練プロセスは、少なくとも1つの構成要素のサブセット用のパラメータを一緒に学習するために使用される。一例では、訓練プロセスは、少なくとも1つの構成要素のすべてのパラメータを学習するために使用され、したがって、E2E最適化と呼ばれる。
【0135】
NICフレームワーク(900)内の1つまたは複数の構成要素向けの訓練プロセスでは、1つまたは複数の構成要素の重み(または重み係数)を初期化することができる。一例では、重みは、事前訓練された対応するニューラルネットワークモデル(例えば、DNNモデル、CNNモデル)に基づいて初期化される。一例では、重みは、重みを乱数に設定することによって初期化される。
【0136】
例えば、重みが初期化された後に、1つまたは複数の構成要素を訓練するために、一組の訓練画像を使用することができる。一組の訓練画像は、任意の適切なサイズを有する任意の適切な画像を含むことができる。いくつかの例では、一組の訓練画像は、空間領域内にある生画像、自然画像、コンピュータ生成画像などを含む。いくつかの例では、一組の訓練画像は、空間領域内の残差データを有する残差画像を含む。残差データは、残差計算器(例えば、残差計算器(723))によって計算することができる。いくつかの例では、一組の訓練画像内の訓練画像(例えば、生画像および/または残差データを含む残差画像)は、適切なサイズを有するブロックに分割することができ、ブロックおよび/または画像は、NICフレームワーク内のニューラルネットワークを訓練するために使用することができる。したがって、生画像、残差画像、生画像からのブロック、および/または残差画像からのブロックは、NICフレームワーク内のニューラルネットワークを訓練するために使用することができる。
【0137】
簡潔にするために、以下の訓練プロセスは、一例として訓練画像を使用して説明される。説明は、訓練ブロックに適切に適合させることができる。一組の訓練画像の訓練画像tは、圧縮表現(例えば、例えばビットストリームに符号化された情報)を生成するために、
図9の符号化プロセスを介して渡すことができる。符号化された情報は、
図9に記載された復号プロセスを介して渡されて、復元画像
【数48】
を計算および復元することができる。
【0138】
NICフレームワーク(900)の場合、2つの競合する目標、例えば、復元品質およびビット消費量のバランスが取られる。品質損失関数(例えば、歪みまたは歪み損失)
【数49】
は、復元(例えば、復元画像
【数50】
)と元の画像(例えば、訓練画像t)との間の差などの復元品質を示すために使用することができる。レート(またはレート損失)Rは、圧縮表現のビット消費量を示すために使用することができる。一例では、レート損失Rは、例えば、コンテキストモデルを決定する際に使用されるサイド情報をさらに含む。
【0139】
ニューラル画像圧縮の場合、E2E最適化において量子化の微分可能な近似を使用することができる。様々な例では、ニューラルネットワークベースの画像圧縮の訓練プロセスでは、量子化をシミュレートするためにノイズ注入が使用され、したがって、量子化は量子化器(例えば、量子化器(912))によって実行される代わりにノイズ注入によってシミュレートされる。したがって、ノイズ注入による訓練は、量子化誤差を変分的に近似することができる。ピクセル当たりのビット(BPP)推定器は、エントロピーコーダをシミュレートするために使用することができ、したがって、エントロピーコーディングは、エントロピーエンコーダ(例えば、(913))およびエントロピーデコーダ(例えば、(914))によって実行される代わりに、BPP推定器によってシミュレートされる。したがって、訓練プロセス中の式1に示された損失関数Lにおけるレート損失Rは、例えば、ノイズ注入およびBPP推定器に基づいて推定することができる。一般に、より高いレートRはより低い歪みDを可能にすることができ、より低いレートRはより高い歪みDをもたらすことができる。したがって、式1のトレードオフハイパーパラメータλは、接合R-D損失Lを最適化するために使用することができ、λDとRの和としてのLを最適化することができる。訓練プロセスは、接合R-D損失Lが最小化または最適化されるように、NICフレームワーク(900)内の1つまたは複数の構成要素(例えば、(911)、(915))のパラメータを調整するために使用することができる。
【0140】
様々なモデルは、歪み損失Dおよびレート損失Rを決定し、したがって式1の接合R-D損失Lを決定するために使用することができる。一例では、歪み損失
【数51】
は、平均二乗誤差に基づくメトリックであるピーク信号対雑音比(PSNR)、マルチスケール構造類似性(MS-SSIM)品質インデックス、PSNRとMS-SSIMとの加重組合せなどとして表される。
【0141】
一例では、訓練プロセスの目標は、エンコーダ側で使用されるビデオエンコーダなどの符号化ニューラルネットワーク(例えば、符号化DNN)と、デコーダ側で使用されるビデオデコーダなどの復号ニューラルネットワーク(例えば、復号DNN)とを訓練することである。一例では、
図9を参照すると、符号化ニューラルネットワークは、メインエンコーダネットワーク(911)、ハイパーエンコーダ(921)、ハイパーデコーダ(925)、コンテキストモデルNN(916)、およびエントロピーパラメータNN(917)を含むことができる。復号ニューラルネットワークは、メインデコーダネットワーク(915)、ハイパーデコーダ(925)、コンテキストモデルNN(916)、およびエントロピーパラメータNN(917)を含むことができる。ビデオエンコーダおよび/またはビデオデコーダは、NNに基づく、かつ/またはNNに基づかない他の構成要素を含むことができる。
【0142】
NICフレームワーク(例えば、NICフレームワーク(900))は、E2E方式で訓練することができる。一例では、符号化ニューラルネットワークおよび復号ニューラルネットワークは、E2E方式で逆伝搬勾配に基づく訓練プロセスにおいて一緒に更新される。
【0143】
NICフレームワーク(900)内のニューラルネットワークのパラメータが訓練された後に、NICフレームワーク(900)内の1つまたは複数の構成要素は、画像を符号化および/または復号するために使用することができる。一実施形態では、エンコーダ側で、ビデオエンコーダは、ビットストリーム内で送信される符号化画像(931)に入力画像xを符号化するように構成される。ビデオエンコーダは、NICフレームワーク(900)内に複数の構成要素を含むことができる。一実施形態では、デコーダ側で、対応するビデオデコーダは、ビットストリーム内の符号化画像(931)を復元画像
【数52】
に復号するように構成される。ビデオデコーダは、NICフレームワーク(900)内に複数の構成要素を含むことができる。
【0144】
一例では、例えば、コンテンツ適応型オンライン訓練が採用されるとき、ビデオエンコーダは、NICフレームワーク(900)内のすべての構成要素を含む。
【0145】
図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)を受信し復号することができる。
【0146】
図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)を受信し復号することができる。
【0147】
上述されたように、ビデオエンコーダおよびビデオデコーダを含むNICフレームワーク(900)は、一組の訓練画像内の画像および/またはブロックに基づいて訓練することができる。いくつかの例では、圧縮(例えば、符号化)され、かつ/または送信される1つまたは複数の画像は、一組の訓練画像とは著しく異なる特性を有する。したがって、それぞれ、一組の訓練画像に基づいて訓練されたビデオエンコーダおよびビデオデコーダを使用して1つまたは複数の画像を符号化および復号することは、比較的不十分なR-D損失L(例えば、比較的大きい歪みおよび/または比較的大きいビットレート)をもたらすことができる。したがって、本開示の態様は、NIC向けのコンテンツ適応型オンライン訓練方法を記載する。
【0148】
一組の訓練画像に基づく訓練プロセスと、圧縮(例えば、符号化)され、かつ/または送信される1つまたは複数の画像に基づくコンテンツ適応型オンライン訓練プロセスを区別するために、一組の訓練画像によって訓練されるNICフレームワーク(900)、ビデオエンコーダ、およびビデオデコーダは、それぞれ、事前訓練されたNICフレームワーク(900)、事前訓練されたビデオエンコーダ、および事前訓練されたビデオデコーダと呼ばれる。事前訓練されたNICフレームワーク(900)、事前訓練されたビデオエンコーダ、または事前訓練されたビデオデコーダ内のパラメータは、それぞれ、NIC事前訓練されたパラメータ、エンコーダ事前訓練されたパラメータ、およびデコーダ事前訓練されたパラメータと呼ばれる。一例では、NIC事前訓練されたパラメータは、エンコーダ事前訓練されたパラメータおよびデコーダ事前訓練されたパラメータを含む。一例では、エンコーダ事前訓練されたパラメータおよびデコーダ事前訓練されたパラメータは重複せず、エンコーダ事前訓練されたパラメータのいずれもデコーダ事前訓練されたパラメータに含まれない。例えば、(1700)のエンコーダ事前訓練されたパラメータ(例えば、メインエンコーダネットワーク(911)内の事前訓練されたパラメータ)および(1800)のデコーダ事前訓練されたパラメータ(例えば、メインデコーダネットワーク(915)内の事前訓練されたパラメータ)は重複しない。一例では、エンコーダ事前訓練されたパラメータおよびデコーダ事前訓練されたパラメータは重複し、エンコーダ事前訓練されたパラメータのうちの少なくとも1つがデコーダ事前訓練されたパラメータに含まれる。例えば、(1600A)のエンコーダ事前訓練されたパラメータ(例えば、コンテキストモデルNN(916)内の事前訓練されたパラメータ)および(1600B)のデコーダ事前訓練されたパラメータ(例えば、コンテキストモデルNN(916)内の事前訓練されたパラメータ)は重複する。NIC事前訓練されたパラメータは、一組の訓練画像内のブロックおよび/または画像に基づいて取得することができる。
【0149】
コンテンツ適応型オンライン訓練プロセスは、微調整プロセスと呼ぶことができ、以下に記載される。事前訓練された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つまたは複数の置換パラメータによって置き換えられる。
【0150】
第1のシナリオでは、1つまたは複数の事前訓練されたパラメータは、1つまたは複数の事前訓練されたパラメータの第1のサブセットと、1つまたは複数の事前訓練されたパラメータの第2のサブセットとを含む。1つまたは複数の交換パラメータは、1つまたは複数の交換パラメータの第1のサブセットと、1つまたは複数の交換パラメータの第2のサブセットとを含む。
【0151】
1つまたは複数の事前訓練されたパラメータの第1のサブセットは、事前訓練されたビデオエンコーダで使用され、例えば、訓練プロセスにおいて、1つまたは複数の置換パラメータの第1のサブセットによって置き換えられる。したがって、事前訓練されたビデオエンコーダは、訓練プロセスによって更新されたビデオエンコーダに更新される。ニューラルネットワーク更新情報は、1つまたは複数の置換パラメータの第2のサブセットを置き換えることになる1つまたは複数の置換パラメータの第2のサブセットを示すことができる。1つまたは複数の画像は、更新されたビデオエンコーダを使用して符号化され、ニューラルネットワーク更新情報とともにビットストリーム内で送信することができる。
【0152】
デコーダ側では、1つまたは複数の事前訓練されたパラメータの第2のサブセットは、事前訓練されたビデオデコーダで使用される。一実施形態では、事前訓練されたビデオデコーダは、ニューラルネットワーク更新情報を受信し復号して、1つまたは複数の置換パラメータの第2のサブセットを決定する。事前訓練されたビデオデコーダは、事前訓練されたビデオデコーダにおける1つまたは複数の事前訓練されたパラメータの第2のサブセットが1つまたは複数の置換パラメータの第2のサブセットによって置き換えられると、更新されたビデオデコーダに更新される。1つまたは複数の符号化画像は、更新されたビデオデコーダを使用して復号することができる。
【0153】
図16A~
図16Bは、第1のシナリオの一例を示す。例えば、1つまたは複数の事前訓練されたパラメータは、事前訓練されたコンテキストモデルNN(916)内のN1個の事前訓練されたパラメータと、事前訓練されたメインデコーダネットワーク(915)内のN2個の事前訓練されたパラメータとを含む。したがって、1つまたは複数の事前訓練されたパラメータの第1のサブセットはN1個の事前訓練されたパラメータを含み、1つまたは複数の事前訓練されたパラメータの第2のサブセットは1つまたは複数の事前訓練されたパラメータと同一である。それに応じて、事前訓練されたコンテキストモデルNN(916)内のN1個の事前訓練されたパラメータは、事前訓練されたビデオエンコーダ(1600A)が更新されたビデオエンコーダ(1600A)に更新され得るように、N1個の対応する置換パラメータによって置き換えることができる。事前訓練されたコンテキストモデルNN(916)も、更新されたコンテキストモデルNN(916)になるように更新される。デコーダ側では、N1個の事前訓練されたパラメータはN1個の対応する置換パラメータによって置き換えることができ、N2個の事前訓練されたパラメータはN2個の対応する置換パラメータによって置き換えることができ、事前訓練されたコンテキストモデルNN(916)を更新されたコンテキストモデルNN(916)になるように更新し、事前訓練されたメインデコーダネットワーク(915)を更新されたメインデコーダネットワーク(915)になるように更新する。したがって、事前訓練されたビデオデコーダ(1600B)は、更新されたビデオデコーダ(1600B)に更新することができる。
【0154】
第2のシナリオでは、1つまたは複数の事前訓練されたパラメータのいずれも、エンコーダ側の事前訓練されたビデオエンコーダで使用されない。むしろ、1つまたは複数の事前訓練されたパラメータは、デコーダ側の事前訓練されたビデオデコーダで使用される。したがって、事前訓練されたビデオエンコーダは更新されず、訓練プロセス後に事前訓練されたビデオエンコーダであり続ける。一実施形態では、ニューラルネットワーク更新情報は、1つまたは複数の置換パラメータを示す。1つまたは複数の画像は、事前訓練されたビデオエンコーダを使用して符号化され、ニューラルネットワーク更新情報とともにビットストリーム内で送信することができる。
【0155】
デコーダ側では、事前訓練されたビデオデコーダは、ニューラルネットワーク更新情報を受信し復号して、1つまたは複数の置換パラメータを決定する。事前訓練されたビデオデコーダは、事前訓練されたビデオデコーダにおける1つまたは複数の事前訓練されたパラメータが1つまたは複数の置換パラメータによって置き換えられると、更新されたビデオデコーダに更新される。1つまたは複数の符号化画像は、更新されたビデオデコーダを使用して復号することができる。
【0156】
図16A~
図16Bは、第2のシナリオの一例を示す。例えば、1つまたは複数の事前訓練されたパラメータは、事前訓練されたメインデコーダネットワーク(915)内のN2個の事前訓練されたパラメータを含む。したがって、1つまたは複数の事前訓練されたパラメータのいずれも、エンコーダ側の事前訓練されたビデオエンコーダ(例えば、事前訓練されたビデオエンコーダ(1600A))で使用されない。したがって、事前訓練されたビデオエンコーダ(1600A)は、訓練プロセス後に事前訓練されたビデオエンコーダであり続ける。デコーダ側では、N2個の事前訓練されたパラメータはN2個の対応する置換パラメータによって置き換えることができ、N2個の対応する置換パラメータは、事前訓練されたメインデコーダネットワーク(915)を更新されたメインデコーダネットワーク(915)に更新する。したがって、事前訓練されたビデオデコーダ(1600B)は、更新されたビデオデコーダ(1600B)に更新することができる。
【0157】
第3のシナリオでは、1つまたは複数の事前訓練されたパラメータは、事前訓練されたビデオエンコーダで使用され、例えば、訓練プロセスにおいて、1つまたは複数の置換パラメータによって置き換えられる。したがって、事前訓練されたビデオエンコーダは、訓練プロセスによって更新されたビデオエンコーダに更新される。1つまたは複数の画像は、更新されたビデオエンコーダを使用して符号化され、ビットストリーム内で送信することができる。ニューラルネットワーク更新情報は、ビットストリーム内で符号化されない。デコーダ側では、事前訓練されたビデオデコーダは更新されず、事前訓練されたビデオデコーダのままである。1つまたは複数の符号化画像は、事前訓練されたビデオデコーダを使用して復号することができる。
【0158】
図16A~
図16Bは、第3のシナリオの一例を示す。例えば、1つまたは複数の事前訓練されたパラメータは、事前訓練されたメインエンコーダネットワーク(911)内にある。したがって、事前訓練されたメインエンコーダネットワーク(911)内の1つまたは複数の事前訓練されたパラメータは、事前訓練されたビデオエンコーダ(1600A)が更新されたビデオエンコーダ(1600A)に更新され得るように、1つまたは複数の置換パラメータによって置き換えることができる。事前訓練されたメインエンコーダネットワーク(911)も、更新されたメインエンコーダネットワーク(911)になるように更新される。デコーダ側では、事前訓練されたビデオデコーダ(1600B)は更新されない。
【0159】
第1、第2、および第3のシナリオに記載されたような様々な例では、ビデオ復号は、事前訓練されたパラメータを更新する能力をもつデコーダおよびもたないデコーダを含む、異なる能力を有する事前訓練されたデコーダによって実行されてもよい。
【0160】
一例では、事前訓練されたビデオエンコーダおよび事前訓練されたビデオデコーダで1つまたは複数の画像をコード化することと比較して、更新されたビデオエンコーダおよび/または更新されたビデオデコーダで1つまたは複数の画像をコード化することにより、圧縮性能を向上させることができる。したがって、コンテンツ適応型オンライン訓練方法は、事前訓練されたNICフレームワーク(例えば、事前訓練されたNICフレームワーク(900))をターゲット画像コンテンツ(例えば、送信される1つまたは複数の画像)に適応させ、したがって事前訓練されたNICフレームワークを微調整することができる。それに応じて、エンコーダ側のビデオエンコーダおよび/またはデコーダ側のビデオデコーダを更新することができる。
【0161】
コンテンツ適応型オンライン訓練方法は、事前訓練されたE2E NIC圧縮方法の圧縮性能を高めるための前処理ステップ(例えば、事前符号化ステップ)として使用することができる。
【0162】
一実施形態では、1つまたは複数の画像は単一の入力画像を含み、微調整プロセスは単一の入力画像を用いて実行される。NICフレームワーク(900)は、単一の入力画像に基づいて訓練され更新(例えば、微調整)される。エンコーダ側の更新されたビデオエンコーダおよび/またはデコーダ側の更新されたビデオデコーダは、単一の入力画像および任意選択で他の入力画像をコード化するために使用することができる。ニューラルネットワーク更新情報は、符号化された単一の入力画像と一緒にビットストリーム内に符号化することができる。
【0163】
一実施形態では、1つまたは複数の画像は複数の入力画像を含み、微調整プロセスは複数の入力画像を用いて実行される。NICフレームワーク(900)は、複数の入力画像に基づいて訓練され更新(例えば、微調整)される。エンコーダ側の更新されたビデオエンコーダおよび/またはデコーダ側の更新されたデコーダは、複数の入力画像および任意選択で他の入力画像をコード化するために使用することができる。ニューラルネットワーク更新情報は、符号化された複数の入力画像と一緒にビットストリーム内に符号化することができる。
【0164】
レート損失Rは、ビットストリーム内のニューラルネットワーク更新情報のシグナリングとともに増加する可能性がある。1つまたは複数の画像が単一の入力画像を含むとき、ニューラルネットワーク更新情報は符号化画像ごとにシグナリングされ、レート損失Rへの第1の増加量は、画像ごとのニューラルネットワーク更新情報のシグナリングによるレート損失Rへの増加量を示すために使用される。1つまたは複数の画像が複数の入力画像を含むとき、ニューラルネットワーク更新情報は複数の入力画像のためにシグナリングされ、それらによって共有され、レート損失Rへの第2の増加量は、画像ごとのニューラルネットワーク更新情報のシグナリングによるレート損失Rへの増加量を示すために使用される。ニューラルネットワーク更新情報は複数の入力画像によって共有されるので、レート損失Rへの第2の増加量はレート損失Rへの第1の増加量よりも小さくなり得る。したがって、いくつかの例では、複数の入力画像を使用してNICフレームワークを微調整することが有利であり得る。
【0165】
一実施形態では、更新される1つまたは複数の事前訓練されたパラメータは、事前訓練されたNICフレームワーク(900)の1つの構成要素内にある。したがって、事前訓練されたNICフレームワーク(900)の1つの構成要素は、1つまたは複数の置換パラメータに基づいて更新され、事前訓練されたNICフレームワーク(900)の他の構成要素は更新されない。
【0166】
1つの構成要素は、事前訓練されたコンテキストモデルNN(916)、事前訓練されたエントロピーパラメータNN(917)、事前訓練されたメインエンコーダネットワーク(911)、事前訓練されたメインデコーダネットワーク(915)、事前訓練されたハイパーエンコーダ(921)、または事前訓練されたハイパーデコーダ(925)であり得る。事前訓練されたビデオエンコーダおよび/または事前訓練されたビデオデコーダは、事前訓練されたNICフレームワーク(900)内の構成要素のうちのどれが更新されるかに応じて更新することができる。
【0167】
一例では、更新される1つまたは複数の事前訓練されたパラメータは、事前訓練されたコンテキストモデルNN(916)内にあり、したがって事前訓練されたコンテキストモデルNN(916)は更新され、残りの構成要素(911)、(915)、(921)、(917)、および(925)は更新されない。一例では、エンコーダ側の事前訓練されたビデオエンコーダおよびデコーダ側の事前訓練されたビデオデコーダは、事前訓練されたコンテキストモデルNN(916)を含み、したがって、事前訓練されたビデオエンコーダおよび事前訓練されたビデオデコーダの両方が更新される。
【0168】
一例では、更新される1つまたは複数の事前訓練されたパラメータは、事前訓練されたハイパーデコーダ(925)内にあり、したがって、事前訓練されたハイパーデコーダ(925)は更新され、残りの構成要素(911)、(915)、(916)、(917)、および(921)は更新されない。したがって、事前訓練されたビデオエンコーダは更新されず、事前訓練されたビデオデコーダは更新される。
【0169】
一実施形態では、更新される1つまたは複数の事前訓練されたパラメータは、事前訓練されたNICフレームワーク(900)の複数の構成要素内にある。したがって、事前訓練されたNICフレームワーク(900)の複数の構成要素は、1つまたは複数の置換パラメータに基づいて更新される。一例では、事前訓練されたNICフレームワーク(900)の複数の構成要素は、ニューラルネットワーク(例えば、DNN、CNN)で構成されたすべての構成要素を含む。一例では、事前訓練されたNICフレームワーク(900)の複数の構成要素は、CNNベースの構成要素:事前訓練されたメインエンコーダネットワーク(911)、事前訓練されたメインデコーダネットワーク(915)、事前訓練されたコンテキストモデルNN(916)、事前訓練されたエントロピーパラメータNN(917)、事前訓練されたハイパーエンコーダ(921)、および事前訓練されたハイパーデコーダ(925)を含む。
【0170】
上述されたように、一例では、更新される1つまたは複数の事前訓練されたパラメータは、事前訓練されたNICフレームワーク(900)の事前訓練されたビデオエンコーダ内にある。一例では、更新される1つまたは複数の事前訓練されたパラメータは、NICフレームワーク(900)の事前訓練されたビデオデコーダ内にある。一例では、更新される1つまたは複数の事前訓練されたパラメータは、事前訓練されたNICフレームワーク(900)の事前訓練されたビデオデコーダおよび事前訓練されたビデオデコーダ内にある。
【0171】
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つまたは複数の置換パラメータによって置き換えられる。一実施形態では、ニューラルネットワークを指定するために他のパラメータを使用することができ、他のパラメータを微調整することができる。
【0172】
微調整プロセスは、複数のエポック(例えば、反復)を含むことができ、1つまたは複数の事前訓練されたパラメータは、反復微調整プロセスにおいて更新される。微調整プロセスは、訓練損失が平坦化したとき、または平坦化しようとしているときに停止することができる。一例では、訓練損失(例えば、R-D損失L)が第1のしきい値を下回ると、微調整プロセスが停止する。一例では、2つの連続する訓練損失の間の差が第2のしきい値を下回ると、微調整プロセスが停止する。
【0173】
損失関数(例えば、R-D損失L)と一緒に微調整プロセスにおいて2つのハイパーパラメータ(例えば、ステップサイズおよび最大ステップ数)を使用することができる。最大反復回数は、微調整プロセスを終了するための最大反復回数のしきい値として使用することができる。一例では、微調整プロセスは、反復回数が最大反復回数に達すると停止する。
【0174】
ステップサイズは、オンライン訓練プロセス(例えば、オンライン微調整プロセス)の学習率を示すことができる。ステップサイズは、微調整プロセス内で実行される勾配降下アルゴリズムまたは逆伝搬計算において使用することができる。ステップサイズは、任意の適切な方法を使用して決定することができる。一実施形態では、最適な結果を達成するために、異なるタイプのコンテンツを有する画像に対して異なるステップサイズが使用される。異なるタイプは異なる分散を指すことができる。一例では、ステップサイズは、NICフレームワークを更新するために使用される画像の分散に基づいて決定される。例えば、分散が高い画像のステップサイズは、分散が低い画像のステップサイズよりも大きく、高い分散は低い分散よりも大きい。
【0175】
一実施形態では、第1のステップサイズは、特定の数(例えば、100)の反復を実行するために使用することができる。次いで、第2のステップサイズ(例えば、第1のステップサイズプラスマイナスサイズ増分)は、特定の数の反復を実行するために使用することができる。第1のステップサイズおよび第2のステップサイズからの結果は、使用されるステップサイズを決定するために比較することができる。最適なステップサイズを決定するために、3つ以上のステップサイズを試験することができる。
【0176】
ステップサイズは、微調整プロセスの間に変化する可能性がある。ステップサイズは、微調整プロセスの開始時に初期値を有することができ、初期値は、微調整プロセスの後の段階、例えば、より細かい調整を実現するために特定の数の反復の後に削減(例えば、半減)することができる。ステップサイズまたは学習率は、反復オンライン訓練中にスケジューラによって変更することができる。スケジューラは、ステップサイズを調整するために使用されるパラメータ調整方法を含むことができる。スケジューラは、ステップサイズがある数の間隔で増加、減少、または残留することができるように、ステップサイズ用の値を決定することができる。一例では、学習率は、スケジューラによって各ステップで変更される。単一のスケジューラまたは複数の異なるスケジューラを異なる画像に使用することができる。したがって、複数のスケジューラに基づいて複数の組の置換パラメータを生成することができ、より良好な圧縮性能(例えば、より小さいR-D損失)を有する複数の組の置換パラメータのうちの1つを選択することができる。
【0177】
微調整プロセスの終わりに、それぞれの1つまたは複数の置換パラメータに対して1つまたは複数の更新されたパラメータを計算することができる。一実施形態では、1つまたは複数の更新されたパラメータは、1つまたは複数の置換パラメータと対応する1つまたは複数の事前訓練されたパラメータとの間の差として計算される。一実施形態では、1つまたは複数の更新されたパラメータは、それぞれ、1つまたは複数の置換パラメータである。
【0178】
一実施形態では、1つまたは複数の更新されたパラメータは、例えば、特定の線形変換または非線形変換を使用して、1つまたは複数の置換パラメータから生成することができ、1つまたは複数の更新されたパラメータは、1つまたは複数の置換パラメータに基づいて生成された代表パラメータである。1つまたは複数の置換パラメータは、より良好な圧縮のために1つまたは複数の更新されたパラメータに変換される。
【0179】
1つまたは複数の更新されたパラメータの第1のサブセットは、1つまたは複数の置換パラメータの第1のサブセットに対応し、1つまたは複数の更新されたパラメータの第2のサブセットは、1つまたは複数の置換パラメータの第2のサブセットに対応する。
【0180】
一例では、1つまたは複数の更新されたパラメータは、例えば、Lempel-Ziv-Markov連鎖アルゴリズム(LZMA)の変形であるLZMA2、bzip2アルゴリズムなどを使用して圧縮することができる。一例では、1つまたは複数の更新されたパラメータに対して圧縮が省略される。いくつかの実施形態では、1つもしくは複数の更新されたパラメータまたは1つもしくは複数の更新されたパラメータの第2のサブセットは、ニューラルネットワーク更新情報としてビットストリーム内に符号化することができ、ニューラルネットワーク更新情報は、1つもしくは複数の置換パラメータまたは1つもしくは複数の置換パラメータの第2のサブセットを示す。
【0181】
微調整プロセスの後に、いくつかの例では、エンコーダ側の事前訓練されたビデオエンコーダは、(i)1つもしくは複数の置換パラメータの第1のサブセット、または(ii)1つもしくは複数の置換パラメータに基づいて、更新または微調整することができる。入力画像(例えば、微調整プロセスで使用される1つまたは複数の画像のうちの1つ)は、更新されたビデオエンコーダを使用してビットストリーム内に符号化することができる。したがって、ビットストリームは、符号化画像とニューラルネットワーク更新情報の両方を含む。
【0182】
該当する場合、一例では、ニューラルネットワーク更新情報は、1つもしくは複数の更新されたパラメータまたは1つもしくは複数の更新されたパラメータの第2のサブセットを取得するために、事前訓練されたビデオデコーダによって復号(例えば、解凍)される。一例では、1つまたは複数の更新されたパラメータと上述された1つまたは複数の置換パラメータとの間の関係に基づいて、1つもしくは複数の置換パラメータまたは1つもしくは複数の置換パラメータの第2のサブセットを取得することができる。前述されたように、事前訓練されたビデオデコーダは微調整することができ、復号された更新ビデオは、符号化画像を復号するために使用することができる。
【0183】
NICフレームワークは、任意のタイプのニューラルネットワークを含み、コンテキスト-ハイパー事前エンコーダ-デコーダフレームワーク(例えば、図(9)に示されたNICフレームワーク)、スケール-ハイパー事前エンコーダ-デコーダフレームワーク、ガウス混合尤度フレームワークおよびガウス混合尤度フレームワークの変形、RNNベースの再帰圧縮方法およびRNNベースの再帰圧縮方法の変形などの任意のニューラルネットワークベースの画像圧縮方法を使用することができる。
【0184】
関連するE2E画像圧縮方法と比較して、本開示におけるコンテンツ適応型オンライン訓練方法および装置は、以下の利点を有することができる。適応型オンライン訓練メカニズムは、NICコーディング効率を改善するために活用される。柔軟で一般的なフレームワークの使用は、様々なタイプの事前訓練されたフレームワークおよび品質メトリックに適応することができる。例えば、様々なタイプの事前訓練されたフレームワークにおける特定の事前訓練されたパラメータは、符号化され送信される画像を用いるオンライン訓練を使用することによって置き換えることができる。
【0185】
図19は、本開示の一実施形態によるプロセス(1900)を概説するフローチャートを示す。プロセス(1900)は、生画像または残差画像などの画像を符号化するために使用することができる。様々な実施形態では、プロセス(1900)は、端末デバイス(310)、(320)、(330)、および(340)の処理回路、ビデオエンコーダ(1600A)の機能を実行する処理回路、ビデオエンコーダ(1700)の機能を実行する処理回路などの処理回路によって実行される。一例では、処理回路は、(i)ビデオエンコーダ(403)、(603)、および(703)のうちの1つ、ならびに(ii)ビデオエンコーダ(1600A)およびビデオエンコーダ(1700)のうちの1つの機能の組合せを実行する。いくつかの実施形態では、プロセス(1900)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1900)を実行する。プロセスは(S1901)から始まる。一例では、NICフレームワークはニューラルネットワークに基づく。一例では、NICフレームワークは、
図9を参照して記載されたNICフレームワーク(900)である。NICフレームワークは、
図10~
図15を参照して記載されたCNNなどのCNNに基づくことができる。ビデオエンコーダ(例えば、(1600A)または(1700))および対応するビデオデコーダ(例えば、(1600B)または(1800))は、上述されたように、NICフレームワーク内に複数の構成要素を含むことができる。ニューラルネットワークに基づくNICフレームワークが事前訓練され、したがって、ビデオエンコーダおよびビデオデコーダが事前訓練される。プロセス(1900)は(S1910)に進む。
【0186】
(S1910)において、1つまたは複数の画像(または入力画像)に基づいてNICフレームワーク上で微調整プロセスが実行される。入力画像は、任意の適切なサイズを有する任意の適切な画像であり得る。いくつかの例では、入力画像は、空間領域内にある生画像、自然画像、コンピュータ生成画像などを含む。
【0187】
いくつかの例では、入力画像は、例えば、残差計算器(例えば、残差計算器(723))によって計算された空間領域内の残差データを含む。例えば、
図7および
図9を参照すると、(S1910)を達成するために様々な装置の構成要素を適切に組み合わせることができ、残差計算器からの残差データは画像に結合され、NICフレームワーク内のメインエンコーダネットワーク(911)に供給される。
【0188】
NICフレームワーク(例えば、事前訓練されたNICフレームワーク)内の1つまたは複数の事前訓練されたニューラルネットワーク内の1つまたは複数のパラメータ(例えば、1つまたは複数の事前訓練されたパラメータ)は、上述されたように、それぞれ、1つまたは複数の置換パラメータになるように更新することができる。一実施形態では、1つまたは複数のニューラルネットワーク内の1つまたは複数のパラメータは、例えば、各ステップにおいて、(S1910)に記載された訓練プロセス中に更新されている。
【0189】
一実施形態では、ビデオエンコーダ(例えば、事前訓練されたビデオエンコーダ)内の少なくとも1つのニューラルネットワークは、1つまたは複数の事前訓練されたパラメータの第1のサブセットで構成され、したがって、ビデオエンコーダ内の少なくとも1つのニューラルネットワークは、対応する1つまたは複数の置換パラメータの第1のサブセットに基づいて更新することができる。一例では、1つまたは複数の交換パラメータの第1のサブセットは、1つまたは複数の交換パラメータのすべてを含む。一例では、ビデオエンコーダ内の少なくとも1つのニューラルネットワークは、1つまたは複数の事前訓練されたパラメータの第1のサブセットが、それぞれ、1つまたは複数の置換パラメータの第1のサブセットと置き換えられたときに更新される。一例では、ビデオエンコーダ内の少なくとも1つのニューラルネットワークは、微調整プロセスにおいて反復的に更新される。一例では、1つまたは複数の事前訓練されたパラメータのいずれもビデオエンコーダに含まれず、したがって、ビデオエンコーダは更新されず、事前訓練されたビデオエンコーダのままである。
【0190】
(S1920)において、少なくとも1つの更新されたニューラルネットワークを有するビデオエンコーダを使用して、1つまたは複数の画像のうちの1つを符号化することができる。一例では、1つまたは複数の画像のうちの1つは、ビデオエンコーダ内の少なくとも1つのニューラルネットワークが更新された後に更新される。
【0191】
ステップ(S1920)は適切に適合させることができる。例えば、ビデオエンコーダは、1つまたは複数の置換パラメータのいずれもビデオエンコーダ内の少なくとも1つのニューラルネットワークに含まれないときに更新されず、したがって、1つまたは複数の画像のうちの1つは、事前訓練されたビデオエンコーダ(例えば、少なくとも1つの事前訓練されたニューラルネットワークを含むビデオエンコーダ)を使用して符号化することができる。
【0192】
(S1930)において、1つまたは複数の置換パラメータの第2のサブセットを示すニューラルネットワーク更新情報をビットストリーム内に符号化することができる。一例では、1つまたは複数の置換パラメータの第2のサブセットは、デコーダ側のビデオデコーダ内の少なくとも1つのニューラルネットワークを更新するために使用されるべきである。ステップ(S1930)は省略することができ、例えば、1つまたは複数の置換パラメータの第2のサブセットがパラメータを含まず、ニューラルネットワーク更新情報がビットストリーム内でシグナリングされない場合、ビデオデコーダ内のニューラルネットワークのいずれも更新されない。
【0193】
(S1940)において、1つまたは複数の画像のうちの符号化された1つおよびニューラルネットワーク更新情報を含むビットストリームを送信することができる。ステップ(S1940)は適切に適合させることができる。例えば、ステップ(S1930)が省略された場合、ビットストリームはニューラルネットワーク更新情報を含まない。プロセス(1900)は(S1999)に進み、終了する。
【0194】
プロセス(1900)は様々なシナリオに適切に適合させることができ、プロセス(1900)内のステップはそれに応じて調整することができる。プロセス(1900)内のステップのうちの1つまたは複数は、適合させ、省略し、繰り返し、かつ/または組み合わせることができる。プロセス(1900)を実施するために、任意の適切な順序を使用することができる。さらなるステップを追加することができる。例えば、1つまたは複数の画像のうちの1つを符号化することに加えて、1つまたは複数の画像のうちの残りの1つなどの他の画像は、(S1920)において符号化され、(S1940)において送信される。
【0195】
プロセス(1900)のいくつかの例では、1つまたは複数の画像のうちの1つは、更新されたビデオエンコーダによって符号化され、ビットストリーム内で送信される。微調整プロセスは1つまたは複数の画像に基づくので、微調整プロセスは符号化されるコンテキストに基づき、したがってコンテキストベースである。
【0196】
いくつかの例では、ニューラルネットワーク更新情報は、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チャネル)などは事前決定され、事前訓練されたビデオデコーダに格納され、したがってシグナリングされない。
【0197】
図20は、本開示の一実施形態によるプロセス(2000)を概説するフローチャートを示す。プロセス(2000)は、符号化画像の復元において使用することができる。様々な実施形態では、プロセス(2000)は、端末デバイス(310)、(320)、(330)、および(340)の処理回路、ビデオデコーダ(1600B)の機能を実行する処理回路、ビデオデコーダ(1800)の機能を実行する処理回路などの処理回路によって実行される。一例では、処理回路は、(i)ビデオデコーダ(410)、ビデオデコーダ(510)、およびビデオデコーダ(810)のうちの1つ、ならびに(ii)ビデオデコーダ(1600B)またはビデオデコーダ(1800)のうちの1つの機能の組合せを実行する。いくつかの実施形態では、プロセス(2000)はソフトウェア命令内に実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(2000)を実行する。プロセスは(S2001)から始まる。一例では、NICフレームワークはニューラルネットワークに基づく。一例では、NICフレームワークは、
図9を参照して記載されたNICフレームワーク(900)である。NICフレームワークは、
図10~
図15を参照して記載されたCNNなどのCNNに基づくことができる。ビデオデコーダ(例えば、(1600B)または(1800))は、上述されたように、NICフレームワーク内に複数の構成要素を含むことができる。ニューラルネットワークに基づくNICフレームワークは、事前訓練することができる。ビデオデコーダは、事前訓練されたパラメータで事前訓練することができる。プロセス(2000)は(S2010)に進む。
【0198】
(S2010)において、コード化ビットストリーム内のニューラルネットワーク更新情報を復号することができる。ニューラルネットワーク更新情報は、ビデオデコーダ内のニューラルネットワーク向けであり得る。ニューラルネットワークは、事前訓練されたパラメータで構成することができる。ニューラルネットワーク更新情報は、復元される符号化画像に対応し、事前訓練されたパラメータのうちの事前訓練されたパラメータに対応する置換パラメータを示す。
【0199】
一例では、事前訓練されたパラメータは事前訓練されたバイアス項である。
【0200】
一例では、事前訓練されたパラメータは事前訓練された重み係数である。
【0201】
一実施形態では、ビデオデコーダは複数のニューラルネットワークを含む。複数のニューラルネットワークは、ニューラルネットワークを含む。ニューラルネットワーク更新情報は、複数のニューラルネットワークの中の1つまたは複数の残りのニューラルネットワーク用の更新情報を示すことができる。例えば、ニューラルネットワーク更新情報は、複数のニューラルネットワークの中の1つまたは複数の残りのニューラルネットワーク用の1つまたは複数の置換パラメータをさらに示す。1つまたは複数の置換パラメータは、1つまたは複数の残りのニューラルネットワーク用の1つまたは複数のそれぞれの事前訓練されたパラメータに対応する。一例では、事前訓練されたパラメータの各々および1つまたは複数の事前訓練されたパラメータは、それぞれの事前訓練されたバイアス項である。一例では、事前訓練されたパラメータの各々および1つまたは複数の事前訓練されたパラメータは、それぞれの事前訓練された重み係数である。一例では、事前訓練されたパラメータおよび1つまたは複数の事前訓練されたパラメータは、複数のニューラルネットワーク内の1つまたは複数の事前訓練されたバイアス項および1つまたは複数の事前訓練された重み係数を含む。
【0202】
一例では、ニューラルネットワーク更新情報は、複数のニューラルネットワークのサブセット用の更新情報を示し、複数のニューラルネットワークの残りのサブセットは更新されない。
【0203】
一例では、ビデオデコーダは
図18に示されたビデオデコーダ(1800)である。ニューラルネットワークは、メインデコーダネットワーク(915)である。
【0204】
一例では、ビデオデコーダは
図16Bに示されたビデオデコーダ(1600B)である。ビデオデコーダ内の複数のニューラルネットワークは、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピーパラメータNN(917)、およびハイパーデコーダ(925)を含む。ニューラルネットワークは、メインデコーダネットワーク(915)、コンテキストモデルNN(916)、エントロピーパラメータNN(917)、およびハイパーデコーダ(925)のうちの1つである。例えば、ニューラルネットワークはコンテキストモデルNN(916)である。ニューラルネットワーク更新情報は、ビデオデコーダ(1600B)内の1つまたは複数の残りのニューラルネットワーク(例えば、メインデコーダネットワーク(915)、エントロピーパラメータNN(917)、および/またはハイパーデコーダ(925))用の1つまたは複数の置換パラメータをさらに示す。
【0205】
一例では、ニューラルネットワーク更新情報は、ニューラルネットワーク用の事前訓練されたパラメータのうちの複数の事前訓練されたパラメータに対応する複数の置換パラメータを示す。複数の事前訓練されたパラメータは、事前訓練されたパラメータを含む。複数の事前訓練されたパラメータは、1つまたは複数の事前訓練されたバイアス項および1つまたは複数の事前訓練された重み係数を含む。
【0206】
(S2020)において、ニューラルネットワーク更新情報に基づいて置換パラメータを決定することができる。一実施形態では、ニューラルネットワーク更新情報から更新されたパラメータが取得される。一例では、更新されたパラメータは、解凍によってニューラルネットワーク更新情報から取得することができる。一例では、ニューラルネットワーク更新情報は、更新されたパラメータが置換パラメータと事前訓練されたパラメータとの間の差であることを示し、置換パラメータは、更新されたパラメータと事前訓練されたパラメータの和に従って計算することができる。一実施形態では、置換パラメータは、更新されたパラメータであると決定される。一実施形態では、更新されたパラメータは、エンコーダ側の置換パラメータに基づいて(例えば、線形変換または非線形変換を使用して)生成された代表パラメータであり、置換パラメータは代表パラメータに基づいて取得される。
【0207】
(S2030)において、ビデオデコーダ内のニューラルネットワークは、例えば、事前訓練されたパラメータをニューラルネットワーク内の置換パラメータと置き換えることにより、置換パラメータに基づいて更新(または微調整)することができる。ビデオデコーダが複数のニューラルネットワークを含み、ニューラルネットワーク更新情報が複数のニューラルネットワーク用の更新情報(例えば、さらなる置換パラメータ)を示す場合、複数のニューラルネットワークを更新することができる。例えば、ニューラルネットワーク更新情報は、ビデオデコーダ内の1つまたは複数の残りのニューラルネットワーク用の1つまたは複数の置換パラメータをさらに含み、1つまたは複数の残りのニューラルネットワークは、1つまたは複数の置換パラメータに基づいて更新することができる。
【0208】
(S2040)において、ビットストリーム内の符号化画像は、例えば、更新されたニューラルネットワークに基づいて更新されたビデオデコーダによって復号することができる。(S2040)において生成された出力画像は、任意の適切なサイズを有する任意の適切な画像であり得る。いくつかの例では、出力画像は、空間領域内にある復元された生画像、自然画像、コンピュータ生成画像などを含む。
【0209】
いくつかの例では、ビデオデコーダの出力画像は空間領域内の残差データを含み、したがって、出力画像に基づいて復元画像を生成するためにさらなる処理を使用することができる。例えば、復元モジュール(874)は、復元画像の一部であり得る復元ブロックを形成するために、空間領域において、(インターまたはイントラ予測モジュールによる出力として)残差データおよび予測結果を組み合わせるように構成される。見栄えを改善するために、デブロッキング動作などのさらなる適切な動作を実行することができる。様々な装置内の構成要素は、(S2040)を達成するために適切に組み合わせることができ、例えば、
図8および
図9を参照すると、ビデオデコーダ内のメインデコーダネットワーク(915)からの残差データおよび対応する予測結果は、復元画像を生成するために復元モジュール(874)に供給される。
【0210】
一例では、ビットストリームは、符号化画像を復号するためのコンテキストモデルを決定するために使用される1つまたは複数の符号化ビットをさらに含む。ビデオデコーダは、メインデコーダネットワーク(例えば、(911))、コンテキストモデルネットワーク(例えば、(916))、エントロピーパラメータネットワーク(例えば、(917))、およびハイパーデコーダネットワーク(例えば、(925))を含むことができる。ニューラルネットワークは、メインデコーダネットワーク、コンテキストモデルネットワーク、エントロピーパラメータNN、およびハイパーデコーダネットワークのうちの1つである。1つまたは複数の符号化ビットは、ハイパーデコーダネットワークを使用して復号することができる。エントロピーモデル(例えば、コンテキストモデル)は、コンテキストモデルネットワークに利用可能な符号化画像の復号ビットおよび量子化潜像に基づいて、コンテキストモデルネットワークおよびエントロピーパラメータネットワークを使用して決定することができる。符号化画像は、メインデコーダネットワークおよびエントロピーモデルを使用して復号することができる。
【0211】
プロセス(2000)は(S2099)に進み、終了する。
【0212】
プロセス(2000)は様々なシナリオに適切に適合させることができ、プロセス(2000)内のステップはそれに応じて調整することができる。プロセス(2000)内のステップのうちの1つまたは複数は、適合させ、省略し、繰り返し、かつ/または組み合わせることができる。プロセス(2000)を実施するために、任意の適切な順序を使用することができる。さらなるステップを追加することができる。
【0213】
例えば、(S2040)において、コード化ビットストリーム内の1つまたは複数のさらなる符号化画像が、更新されたニューラルネットワークに基づいて復号される。したがって、符号化画像および1つまたは複数のさらなる符号化画像は、同じニューラルネットワーク更新情報を共有することができる。
【0214】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0215】
本開示は、ニューラルネットワークベースのエンコーダなどのエンコーダ、ニューラルネットワークベースのデコーダなどのデコーダに使用される方法にいかなる制限も課さない。エンコーダ、デコーダなどで使用されるニューラルネットワークは、DNN、CNNなどの任意の適切なタイプのニューラルネットワークであり得る。
【0216】
したがって、本開示のコンテンツ適応型オンライン訓練方法は、異なるタイプのNICフレームワーク、例えば、異なるタイプの符号化DNN、復号DNN、符号化CNN、復号CNNなどに適応することができる。
【0217】
上術された技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図21は、開示された主題のいくつかの実施形態を実装するのに適したコンピュータシステム(2100)を示す。
【0218】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによる、直接、または解釈、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブル、コンパイル、リンク、または同様のメカニズムを受けることができる任意の適切な機械語またはコンピュータ言語を使用してコード化することができる。
【0219】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行することができる。
【0220】
コンピュータシステム(2100)に関して
図21に示された構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関するいかなる制限も示唆するものではない。構成要素の構成は、コンピュータシステム(2100)の例示的な実施形態に示された構成要素のいずれか1つまたは組合せに関するいかなる依存性または要件も有すると解釈されるべきでない。
【0221】
コンピュータシステム(2100)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、(キーストローク、スワイプ、データグローブの動きなどの)触覚入力、(音声、拍手などの)オーディオ入力、(ジェスチャなどの)視覚入力、(描写されていない)嗅覚入力を介して、1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、(音声、音楽、周囲の音などの)オーディオ、(走査画像、静止画カメラから取得された写真画像などの)画像、(2次元ビデオ、立体ビデオを含む3次元ビデオなどの)ビデオなどの、人間による意識的な入力に必ずしも直接関連しない特定の媒体を取り込むために使用することもできる。
【0222】
入力ヒューマンインターフェースデバイスには、キーボード(2101)、マウス(2102)、トラックパッド(2103)、タッチスクリーン(2110)、データグローブ(図示せず)、ジョイスティック(2105)、マイクロフォン(2106)、スキャナ(2107)、カメラ(2108)のうちの1つまたは複数が含まれてもよい(各々の1つのみが描写されている)。
【0223】
コンピュータシステム(2100)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を介して、1人または複数の人間のユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスには、触覚出力デバイス(例えば、タッチスクリーン(2110)、データグローブ(図示せず)、またはジョイスティック(2105)による触覚フィードバック、しかし入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、(スピーカ(2109)、ヘッドフォン(描写せず)などの)オーディオ出力デバイス、(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2110)など、各々タッチスクリーン入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にかかわらず、それらのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡(描写せず)、ホログラフィックディスプレイおよびスモークタンク(描写せず)などの手段を介して2次元視覚出力または3次元以上の出力を出力することが可能な場合がある)視覚出力デバイス、ならびにプリンタ(描写せず)が含まれてもよい。
【0224】
コンピュータシステム(2100)は、CD/DVDまたは同様の媒体(2121)を有するCD/DVD ROM/RW(2120)を含む光学媒体、サムドライブ(2122)、リムーバブルハードドライブまたはソリッドステートドライブ(2123)、テープおよびフロッピーディスクなどのレガシー磁気媒体(描写せず)、セキュリティドングルなどの特殊なROM/ASIC/PLDベースのデバイス(描写せず)などの、人間がアクセス可能なストレージデバイスおよびそれらに関連する媒体を含むこともできる。
【0225】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0226】
コンピュータシステム(2100)は、1つまたは複数の通信ネットワーク(2155)へのインターフェース(2154)を含むこともできる。ネットワークは、例えば、ワイヤレス、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、ワイヤレスLANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線またはワイヤレスの広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワークは、通常、(例えば、コンピュータシステム(2100)のUSBポートなどの)特定の汎用データポートまたは周辺バス(2149)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、通常、以下に記載されるシステムバスに取り付けることによってコンピュータシステム(2100)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2100)は他のエンティティと通信することができる。そのような通信は、単方向受信のみ(例えば、ブロードキャストTV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくは広域のデジタルネットワークを使用する他のコンピュータシステムとの双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上述されたこれらのネットワークおよびネットワークインターフェースの各々で使用することができる。
【0227】
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム(2100)のコア(2140)に取り付けることができる。
【0228】
コア(2140)は、1つまたは複数の中央処理装置(CPU)(2141)、グラフィックス処理装置(GPU)(2142)、フィールドプログラマブルゲートエリア(FPGA)(2143)、特定のタスク用のハードウェアアクセラレータ(2144)、グラフィックスアダプタ(2150)などの形態の特殊なプログラマブル処理装置を含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(2145)、ランダムアクセスメモリ(2146)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(2147)とともに、システムバス(2148)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(2148)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺機器は、コアのシステムバス(2148)に直接取り付けることも、周辺バス(2149)を介して取り付けることもできる。一例では、ディスプレイ(2110)は、グラフィックスアダプタ(2150)に接続することができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0229】
CPU(2141)、GPU(2142)、FPGA(2143)、およびアクセラレータ(2144)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2145)またはRAM(2146)に記憶することができる。移行データもRAM(2146)に記憶することができるが、永続データは、例えば、内部大容量ストレージ(2147)に記憶することができる。メモリデバイスのいずれかに対する高速の記憶および検索は、1つまたは複数のCPU(2141)、GPU(2142)、大容量ストレージ(2147)、ROM(2145)、RAM(2146)などと密接に関連付けることができるキャッシュメモリを使用して可能にすることができる。
【0230】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードをそこに有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
【0231】
一例として、限定としてではなく、アーキテクチャを有するコンピュータシステム(2100)、具体的にはコア(2140)は、1つまたは複数の有形のコンピュータ可読媒体内に具現化されたソフトウェアを(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが実行する結果として、機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたユーザアクセス可能大容量ストレージ、ならびにコア内部大容量ストレージ(2147)またはROM(2145)などの非一時的な性質のコア(2140)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2140)によって実行することができる。コンピュータ可読媒体は、特定のニーズに応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2140)、および具体的にはそのうちの(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(2146)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと一緒に動作することができる、回路(例えば、アクセラレータ(2144))内に配線された、またはさもなければ具現化されたロジックの結果として、機能を提供することができる 必要に応じて、ソフトウェアへの参照はロジックを包含することができ、その逆も同様である。必要に応じて、コンピュータ可読媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(IC)などの)回路、実行のためのロジックを具現化する回路、または両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
付記A:頭字語
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:ピクチャグループ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号対雑音比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読取り専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブル論理デバイス
LAN:ローカルエリアネットワーク
GSM:モバイル通信用グローバルシステム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺構成要素相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
CU:コーディングユニット
NIC:ニューラル画像圧縮
R-D:レート歪み
E2E:エンドツーエンド
ANN:人工ニューラルネットワーク
DNN:深層ニューラルネットワーク
CNN:畳み込みニューラルネットワーク
【0232】
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化し、したがって、その趣旨および範囲内にある多数のシステムおよび方法を考案できることが諒解されよう。
【符号の説明】
【0233】
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
110 概略図
201 現在ブロック
202 周囲サンプル
203 周囲サンプル
204 周囲サンプル
205 周囲サンプル
206 周囲サンプル
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 通信ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャのストリーム
403 ビデオエンコーダ
404 符号化ビデオデータ
405 ストリーミングサーバ
406 クライアントサブシステム
407 ビデオデータのコピー
408 クライアントサブシステム
409 ビデオデータのコピー
410 ビデオデコーダ
411 ビデオピクチャの出力ストリーム
412 ディスプレイ
413 キャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダリングデバイス
515 バッファメモリ
520 パーサー
521 シンボル
530 電子デバイス
531 受信機
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 現在ピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 コーディングエンジン
633 ローカルデコーダ
634 参照ピクチャメモリ
635 予測器
640 送信機
643 コード化ビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 復元モジュール
880 インターデコーダ
900 NICフレームワーク
911 メインエンコーダネットワーク
912 量子化器
913 エントロピーエンコーダ
914 エントロピーデコーダ
915 メインデコーダネットワーク
916 コンテキストモデルNN
917 エントロピーパラメータNN
921 ハイパーエンコーダ
922 量子化器
923 エントロピーエンコーダ
924 エントロピーデコーダ
925 ハイパーデコーダ
931 符号化画像
932 符号化ビット
951 第1のサブNN
952 第2のサブNN
1600A ビデオエンコーダ
1600B ビデオデコーダ
1700 ビデオエンコーダ
1800 ビデオデコーダ
2100 コンピュータシステム
2101 キーボード
2102 マウス
2103 トラックパッド
2105 ジョイスティック
2106 マイクロフォン
2107 スキャナ
2108 カメラ
2109 スピーカ
2110 タッチスクリーン
2120 CD/DVD ROM/RW
2121 CD/DVDまたは同様の媒体
2122 サムドライブ
2123 リムーバブルハードドライブまたはソリッドステートドライブ
2140 コア
2141 中央処理装置(CPU)
2142 グラフィックス処理装置(GPU)
2143 フィールドプログラマブルゲートエリア(FPGA)
2144 ハードウェアアクセラレータ
2145 読取り専用メモリ(ROM)
2146 ランダムアクセスメモリ(RAM)
2147 内部大容量ストレージ
2148 システムバス
2149 周辺バス
2150 グラフィックスアダプタ
2154 ネットワークインターフェース
2155 ネットワーク