以下の説明では、添付の図面を参照し、これらの図面は本開示の一部を形成し、例として、本発明の実施形態の特定の態様または本発明の実施形態が使用されうる特定の態様を示している。本発明の実施形態は他の態様で使用されてもよく、図に描写されていない構造的変更または論理的変更を含む場合もあることが理解される。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって規定される。
例えば、記載の方法に関連する開示は、その方法を行うように構成された対応するデバイスまたはシステムにも当てはまる場合があり、その逆も同様であることが理解される。例えば、1つまたは複数の特定の方法のステップが記載されている場合、対応するデバイスは、記載された1つまたは複数の方法のステップを行うための1つまたは複数のユニット、例えば機能ユニット(例えば、1つもしくは複数のステップを行う1つのユニット、または複数のステップのうちの1つもしくは複数を各々行う複数のユニット)を、そのような1つまたは複数のユニットが図に明示的に記載または例示されていなくても、含んでいてもよい。一方、例えば、特定の装置が1つまたは複数のユニット、例えば機能ユニットに基づいて記載されている場合、対応する方法は、1つまたは複数のユニットの機能を行うための1つのステップ(例えば、1つもしくは複数のユニットの機能を行う1つのステップ、または複数のユニットの1つもしくは複数の機能を各々行う複数のステップ)を、そのような1つまたは複数のステップが図面に明示的に記載または例示されていなくても、含んでいてもよい。さらに、特に断らない限り、本明細書に記載された様々な例示的実施形態および/または態様の特徴は、互いに組み合わされてもよいことが理解される。
以下では、本開示を通して使用される技術用語のいくつかの簡単な概要を提供する。
ビデオシーケンスのカラーフォーマット:カラーフォーマットは、ビデオシーケンス内の色の特定の編成を記述する。通常、カラーフォーマットは、色が表現されることができる方法を記述する数学モデルとして、例えば、数のタプルとして表現される。例えば、RGBフォーマットは、フレーム(ピクチャまたは画像)が赤(R)、緑(G)、および青(B)の色成分と組み合わされることを記述する。これに対して、YUVフォーマットは、フレームが1つのルーマ成分(Y)および2つのクロマ成分(U,V)と結合されることを記述する。それによって、ルーマは、ピクチャやピクチャ部分などのサンプル、ピクセル、またはサンプル/ピクセルのグループの輝度成分を指す。一般に、カラーフォーマットは、1つまたは複数の色成分を有しうる。
RGB:RGBカラーフォーマットは加法色モデルであり、赤(R)、緑(G)、および青(B)の成分を含む。RGB色空間のピクチャは、サンプルまたはピクセルの数に、よって解像度に対応するフレームの幅および高さなど、それぞれの幅および高さに関して同じサイズを有する成分を、通常有する。これらのRGB成分は、広範囲の色を表現するために様々な方法で加算されうる。
YUV:YUVカラーフォーマットは3つの成分を含み、ルーマ成分Yは明るさ情報(すなわち輝度)を指し、クロマ成分U(青色投影)およびV(赤色投影)はクロミナンスまたは色情報を指す。色情報のデジタルエンコーディングでは、以下に例示されるように、YUVは線形行列によってRGBから直接変換されることができる。
言い換えれば、YUV成分の各々は、RGB成分の線形結合によって書かれてもよい。ゆえに、そのような変換の後、YUVの3つの成分も同じサイズ(幅および高さ)を有する。
クロマサブサンプリング:クロマサブサンプリングは、ルーマ情報(Y)に対してよりもクロマ情報(U,V)に対して低い解像度を実装することによって画像をエンコードする手法である。クロマ成分をサブサンプリングする理由は、輝度に対してよりも色差に対してより低い人間の視覚システムの視力を利用することにある。よって、ルーマ視覚システムに関する限り、YUV(またはYCbCr)フォーマットを使用する場合、ルーマ成分は最も重要なチャネルとみなされうる。
クロマサブサンプリングは、クロマ成分信号を大幅に低減しうる。一般的に使用されるクロマサブサンプリングフォーマットが、以下で簡単に説明されている。
YUV4:4:4(または略してYUV444)は、クロマサブサンプリングがないことを指し、すなわち、図1(a)に示されるように、Y成分、U成分、およびV成分は同じサイズ(幅および高さ)を有する。
YUV4:2:2(または略してYUV422)は、図1(b)に示されるように、クロマ成分(UおよびV)を水平方向に係数2でサブサンプリングすることを指す。例えば、ルーマ成分がw×hのサイズを有し、wがルーマ成分の幅を表し、hがルーマ成分の高さを表す場合、YUV4:2:2のクロマ成分UおよびVは、w/2×h(例えば、サンプルまたはピクセルの数に関して、幅の半分、すなわちw/2、およびルーマ成分と同じ高さh)のサイズを各々有する。この場合、各クロマ成分は長方形の形状を有する。
YUV4:2:0(または略してYUV420)は、図1(c)に示されるように、クロマ成分(UおよびV)を水平方向と垂直方向の両方に係数2でサブサンプリングすることを指す。例えば、ルーマ成分がw×hのサイズを有し、wがルーマ成分の重みを表し、hがルーマ成分の高さを表す場合、YUV4:2:0のクロマ成分は、w/2×h/2(例えば、サンプルまたはピクセルの数に関して、ルーマ成分の幅の半分、すなわちw/2、および高さの半分、すなわち、h/2)のサイズを各々有する。この場合、各クロマ成分は正方形の形状を有する。
YUV4:2:0クロマサブサンプリングは、ビデオコーディングにおいて最も一般的に使用されるクロマサブサンプリング方法であることに留意されたい。サブサンプリングは、一般に、ピクチャを取り込むイメージセンサの構成の結果でありうる。例えば、いくつかのセンサは、特定の色成分を取り込むためのより多くのピクセルを提供する。しかしながら、サブサンプリングはまた、取り込まれたピクチャのさらなる処理の結果でもありうる。
上記のYUVフォーマットは、本開示ではルーマ-クロマ成分(チャネル)の例として使用されており、それぞれのクロマはルーマチャネルとして異なる解像度(すなわち、異なるサイズ)を有する。また、一般に、2つのクロマ成分のうちの一方のみがサブサンプリングの対象となってもよく、他方はそのサイズを維持することにも留意されたい。さらに、図1(b)に示されるようにクロマ成分を水平方向にのみサブサンプリングする代わりに、前記(1つまたは複数の)クロマ成分が代わりに垂直方向にサブサンプリングされてもよい。
人工ニューラルネットワーク
人工ニューラルネットワーク(ANN)またはコネクショニストシステムは、動物の脳を構成する生物の神経ネットワークから漠然と着想を得たコンピューティングシステムである。そのようなシステムは、例を考慮することによってタスクを行うことを「学習し」、一般にタスク固有の規則でプログラムされることはない。例えば、画像認識では、そのようなシステムは、「ネコ」または「ネコではない」と手動でラベル付けされている例示的な画像を解析し、その結果を使用して他の画像内のネコを識別することによって、ネコを含む画像を識別することを学習しうる。そのようなシステムは、例えば、ネコは毛皮、尾、ひげ、およびネコのような顔を有するというネコの事前知識なしでこれを行う。代わりに、そのようなシステムは、それらが処理する例から識別特性を自動的に生成する。
ANNは、生物の脳内のニューロンを大まかにモデル化する人工ニューロンと呼ばれる接続されたユニットまたはノードの集合に基づくものである。各接続は、生物の脳内のシナプスと同様に、他のニューロンに信号を送信することができる。信号を受信した人工ニューロンは、次いで信号を処理し、そのニューロンに接続されたニューロンにシグナリングすることができる。
ANN実装形態では、接続における「信号」は実数であり、各ニューロンの出力は、その入力の和の何らかの非線形関数によって計算される。この接続はエッジと呼ばれる。ニューロンおよびエッジは、典型的には、学習が進むにつれて調整する重みを有する。重みは、接続における信号の強度を増減させる。ニューロンは、集約信号がその閾値を超える場合にのみ信号が送信されるような閾値を有しうる。典型的には、ニューロンは層に集約される。異なる層は、それらの入力に対して異なる変換を行いうる。信号は、場合によっては層を複数回トラバースした後に、最初の層(入力層)から最後の層(出力層)まで進む。
ANN手法の当初の目標は、人間の脳がするのと同じ方法で問題を解決することであった。時間の経過と共に、特定のタスクを行うことに注意が移り、生物学からの逸脱につながった。ANNは、コンピュータビジョン、音声認識、機械翻訳、ソーシャルネットワークフィルタリング、ボードゲームやビデオゲーム、医療診断を含む様々なタスクに対して、さらには絵を描くことのような、人間だけのものであると従来みなされてきた活動においても使用されてきた。
畳み込みニューラルネットワーク
「畳み込みニューラルネットワーク」(CNN)という名前は、このネットワークが畳み込みと呼ばれる数学演算を用いることを示している。畳み込みは、特殊な種類の線形演算である。畳み込みネットワークは、それらの層のうちの少なくとも1つにおいて一般的な行列乗算の代わりに畳み込みを使用する単なるニューラルネットワークである。
図2Aは、CNNなどのニューラルネットワークによる処理の一般概念を模式的に示している。畳み込みニューラルネットワークは、入力層および出力層、ならびに複数の隠れ層からなる。入力層は、処理のために入力(図2Aに示されるような画像の一部分など)が提供される層である。CNNの隠れ層は、典型的には、乗算または他のドット積で畳み込む一連の畳み込み層からなる。層の結果は、チャネルと呼ばれることもある1つまたは複数の特徴マップ(図2Aのf.maps)である。層の一部または全部に関与するサブサンプリングが存在しうる。結果として、図2Aに示されるように、特徴マップが小さくなる場合がある。CNNにおける活性化関数は、通常、RELU(正規化線形ユニット)層であり、その後に、プーリング層、全結合層、正規化層などの追加の畳み込みが続き、これらの入力および出力は活性化関数および最終的な畳み込みによってマスクされるため隠れ層と呼ばれる。層は口語的に畳み込みと呼ばれるが、これは慣例によるものにすぎない。数学的には、それは、技術的にスライディングドット積または相互相関である。これは、特定のインデックスポイントで重みがどのように決定されるかに影響を及ぼすという点で、行列内のインデックスにとって重要である。
画像を処理するためのCNNをプログラムする場合、図2Aに示されるように、入力は、形状(画像数)×(画像幅)×(画像高さ)×(画像深度)を有するテンソルである。次いで、畳み込み層を通過した後、画像は、形状(画像数)×(特徴マップ幅)×(特徴マップ高さ)×(特徴マップチャネル)を有する特徴マップに抽象化される。ニューラルネットワーク内の畳み込み層は、以下の属性を有する必要がある。幅および高さによって定義される畳み込みカーネル(ハイパーパラメータ)。入力チャネルおよび出力チャネルの数(ハイパーパラメータ)。畳み込みフィルタの深度(入力チャネル)は、入力特徴マップの数チャネル(深度)に等しい必要がある。
過去には、従来の多層パーセプトロン(MLP)モデルが画像認識に使用されてきた。MLPは、全結合ニューラルネットワーク(FCN)とも呼ばれる。しかしながら、ノード間の全結合のために、MLPモデルは高い次元数に悩まされ、より高い解像度の画像とうまく対応しなかった。RGBカラーチャネルを有する1000×1000ピクセルの画像は300万の重みを有し、これは高すぎて、全結合で大規模に効率的に都合よく処理することができない。よって、MLP/FCNは、多くの場合、データの過剰適合を起こしやすい。層の各ノード(パーセプトロン)は、隣接する層のすべてのノードの出力を入力として取るので、FCNのネットワークアーキテクチャは、(例えば、層のノードを横切る)データの空間構造を考慮に入れず、遠く離れている入力ピクセルを互いに近接するピクセルと同じように扱う。これは、計算的にも意味的にも、画像データにおける参照の局所性を無視する。よって、空間的に局所的な入力パターンが優勢な画像認識などの目的には、ニューロンの全結合性は無駄である。
畳み込みニューラルネットワークは、視覚野の挙動をエミュレートするように特別に設計された多層パーセプトロンの生物学的に着想を得た変形である。これらのモデルは、自然画像に存在する強い空間的に局所的な相関を利用することによって、MLPアーキテクチャによってもたらされる課題を軽減する。畳み込み層は、CNNのコアビルディングブロックである。層のパラメータは、1組の学習可能なフィルタ(上記のカーネル)からなり、これらは小さい受容野を有するが、入力ボリュームの全深度にわたって延在する。前方パスの間、各フィルタは入力ボリュームの幅および高さにわたって畳み込まれ、フィルタのエントリと入力との間のドット積を計算し、そのフィルタの2次元活性化マップを生成する。結果として、ネットワークは、入力内のある空間位置で何らかの特定のタイプの特徴を検出したときに活性化するフィルタを学習する。
深度次元に沿ってすべてのフィルタの活性化マップを積み重ねることが、畳み込み層の全出力ボリュームを形成する。よって、出力ボリューム内のすべてのエントリは、入力内の小さい領域を見て、同じ活性化マップ内のニューロンとパラメータを共有するニューロンの出力として解釈されることもできる。特徴マップ、または活性化マップは、所与のフィルタの出力活性化である。特徴マップと活性化とは同じ意味である。これは、いくつかの論文では、画像の異なる部分の活性化に対応するマッピングであるため活性化マップと呼ばれ、また、特定の種類の特徴が画像内のどこで見つかるかのマッピングでもあるため、特徴マップとも呼ばれる。高い活性化は、特定の特徴が見つかったことを意味する。
CNNの別の重要な概念がプーリングであり、これは非線形ダウンサンプリングの一形態である。プーリングを実装するためのいくつかの非線形関数があり、そのうち最大値プーリングが最も一般的である。最大値プーリングは、入力画像を1組の重なり合わない長方形に分割し、そのようなサブ領域ごとに最大値を出力する。
直感的には、特徴の正確な位置は、他の特徴に対するその大まかな位置よりも重要ではない。これは、畳み込みニューラルネットワークにおけるプーリングの使用の背後にある考え方である。プーリング層は、表現の空間サイズを漸進的に縮小し、ネットワーク内のパラメータの数、メモリフットプリント、および計算量を低減し、よって過剰適合も制御するのに役立つ。CNNアーキテクチャでは、連続する畳み込み層の間にプーリング層を周期的に挿入することが一般的である。プーリング演算は、別の形態の移動不変性を提供する。
プーリング層は、入力の深度スライスごとに独立して動作し、それを空間的にサイズ変更する。最も一般的な形態は、サイズ2×2のフィルタを有するプーリング層であり、幅と高さの両方に沿って2ずつ入力の深度スライスごとに2ダウンサンプルの刻み幅で適用され、活性化の75%を廃棄する。この場合、すべての最大値演算は4つの数にわたるものである。深度次元は不変のままである。
最大値プーリングに加えて、プーリングユニットは、平均値プーリングやL2ノルムプーリングなどの他の関数を使用することもできる。平均値プーリングは歴史的によく使用されてきたが、最近では、実際によりうまく機能する最大値プーリングと比較して好まれなくなっている。表現のサイズの積極的な縮小のために、より小さいフィルタを使用するか、またはプーリング層を完全に廃棄するという最近の傾向がある。「関心領域」プーリング(ROIプーリングとしても知られている)は、最大値プーリングの変形であり、出力サイズが固定されており、入力される長方形がパラメータである。プーリングは、高速R-CNNアーキテクチャに基づく物体検出のための畳み込みニューラルネットワークの重要な構成要素である。
上記のReLUは、正規化線形ユニットの略称であり、非飽和活性化関数を適用する。ReLUは、負の値を0に設定することによって、活性化マップから負の値を効果的に除去する。ReLUは、畳み込み層の受容野に影響を与えることなく、決定関数およびネットワーク全体の非線形特性を増加させる。他の関数、例えば飽和双曲線正接やシグモイド関数も、非線形性を増加させるために使用される。ReLUは、一般化精度を著しく損なうことなくニューラルネットワークを数倍速く訓練するので、他の関数よりも好まれることが多い。
いくつかの畳み込み層および最大値プーリング層の後、ニューラルネットワークにおける高レベルの推論が全結合層を介して行われる。全結合層のニューロンは、通常の(非畳み込み)人工ニューラルネットワークに見られるように、前の層のすべての活性化に接続されている。よって、それらの活性化は、アフィン変換として計算されることができ、行列乗算の後にバイアスオフセット(学習または固定されたバイアス項のベクトル加算)が続く。
「損失層」は、訓練が予測(出力)ラベルと真のラベルとの間の偏差にどのようにペナルティを課すかを指定し、通常、ニューラルネットワークの最終層である。異なるタスクに適した様々な損失関数が使用されうる。ソフトマックス損失は、K個の相互排他的なクラスの単一のクラスを予測するために使用される。シグモイド交差エントロピー損失は、[0,1]におけるK個の独立した確率値を予測するために使用される。ユークリッド損失は、実数値ラベルに回帰するために使用される。
オートエンコーダおよび教師なし学習
オートエンコーダは、教師なしで効率的なデータコーディングを学習するために使用される人工ニューラルネットワークの1タイプである。その概略図が図2Bに示されている。オートエンコーダの目的は、信号「ノイズ」を無視するようにネットワークを訓練することによって、典型的には次元数削減のために、データセットの表現(エンコーディング)を学習することである。削減側と共に、再構成側が学習され、オートエンコーダは、削減されたエンコーディングから、その元の入力、よってその名前に可能な限り近い表現を生成しようと試みる。最も単純な場合には、1つの隠れ層が与えられると、オートエンコーダのエンコーダ段は入力xを取り、それをhにマップし、
h=σ(Wx+b)
である。
この画像hは、通常、コード、潜在変数、または潜在表現と呼ばれる。ここで、σは、シグモイド関数や正規化線形ユニットなどの要素ごとの活性化関数である。Wは重み行列であり、bはバイアスベクトルである。重みおよびバイアスは、通常、ランダムに初期設定され、次いで、逆伝搬を介して訓練中に反復的に更新される。その後、オートエンコーダのデコーダ段は、hをxと同じ形状の再構成x’にマップする:
x’=σ’(W’h’+b’)
式中、デコーダのσ’、W’、およびb’は、エンコーダの対応するσ、W、およびbとは無関係でありうる。
変分オートエンコーダモデルは、潜在変数の分布に関して強い仮定を行う。変分オートエンコーダモデルは、潜在表現学習に変分法を使用し、その結果、追加の損失成分および確率的勾配変分ベイズ(SGVB)推定量と呼ばれる訓練アルゴリズムのための特定の推定量が得られる。データは、有向グラフィカルモデルpθ(x|h)によって生成され、エンコーダが事後分布pθ(x|h)に対する近似qφ(h|x)を学習していると仮定し、φおよびθは、それぞれエンコーダ(認識モデル)およびデコーダ(生成モデル)のパラメータを表す。VAEの潜在ベクトルの確率分布は、典型的には、標準的なオートエンコーダよりもはるかに近く訓練データの確率分布と一致する。VAEの目的は以下の形式を有する。
式中、DKLは、カルバック・ライブラー情報量を表す。潜在変数に対する事前分布は、通常、中心等方性多変量ガウス分布pθ(h)=N(0,Ι)に設定される。一般に、変分分布および尤度分布の形状は、それらが因数分解されたガウス分布になるように選択される:
qφ(h|x)=N(ρ(x),ω2(x)Ι)
pφ(x|h)=N(μ(h),σ2(h)Ι)
式中、ρ(x)およびω2(x)はエンコーダ出力であり、μ(h)およびσ2(h)はデコーダ出力である。
人工ニューラルネットワーク分野、特に畳み込みニューラルネットワークにおける最近の進歩は、ニューラルネットワークに基づく技術を画像およびビデオ圧縮のタスクに適用するという研究者の関心を可能にする。例えば、変分オートエンコーダに基づくネットワークを使用するエンドツーエンド最適化画像圧縮が提案されている。それに対応して、データ圧縮は、工学における基本的で十分に研究された問題とみなされており、一般に、最小のエントロピーで所与の離散データアンサンブルのためのコードを設計するという目的で定式化される。この解決策は、データの確率的構造の知識に大きく依拠しており、よって、問題は確率的ソースモデリングに密接に関連している。しかしながら、すべての実際のコードは有限のエントロピーを有さなければならないため、連続値データ(画像ピクセル強度のベクトルなど)が離散値の有限集合に量子化されなければならず、これは誤差をもたらす。これに関連して、非可逆圧縮問題として知られている、離散化表現のエントロピー(レート)と量子化から生じる誤差(歪み)という2つの競合するコストをトレードオフしなければならない。データ記憶や限られた容量のチャネルを介した送信などの異なる圧縮用途は、異なるレート歪みのトレードオフを要求する。レートと歪みの同時最適化は困難である。さらなる制約がなければ、高次元空間における最適量子化の一般的問題は扱いにくい。このため、ほとんどの既存の画像圧縮方法は、データベクトルを適切な連続値表現に線形変換し、その要素を独立して量子化し、次いで、得られた離散表現を、可逆エントロピーコードを使用してエンコードすることによって動作する。この方式は、変換の中心的な役割から変換コーディングと呼ばれる。例えば、JPEGは、ピクセルのブロックに対して離散コサイン変換を使用し、JPEG2000は、マルチスケール直交ウェーブレット分解を使用する。典型的には、変換コーディング方法の3つの構成要素、変換、量子化、およびエントロピーコードは、(多くの場合手動パラメータ調整によって)別々に最適化される。HEVC、VVC、およびEVCのような最新のビデオ圧縮規格もまた、予測後に残差信号をコーディングするために変換された表現を使用する。離散コサイン変換および離散サイン変換(DCT、DST)、ならびに低周波数非分離可能手動最適化変換(LFNST)などの、いくつかの変換がその目的のために使用される。
上記の種類のネットワークのうち、CNNは、ビデオ/画像(デ)コーディングに有利であることが示されており、「Variational image compression with a scale hyperior」(arXiv preprint arXiv:1802.01436(2018))でJ.Balleによって論じられているように、変分オートエンコーダ(VAE)に実装されている。以下では、この文書を「J.Balle」と呼ぶ。
VAE構造は、深層学習を基にした画像圧縮のために設計されており、非常に効率的な構造を構成する。VAEに入力される画像のカラーフォーマットは通常、サブサンプリングなしのRGBであるため、3つの成分/チャネルは同じサイズ(幅および高さ)を有する。ゆえに、VAE構造への入力として提供されるRGBカラーフォーマット画像は、直接処理および再構成されうる。
J.Balleには、変分オートエンコーダ(VAE)に基づく画像圧縮のためのエンドツーエンド訓練可能モデルが記載されている。このモデルは、潜在表現における空間的依存性を効果的に取り込むために超事前分布を組み込んでいる。この超事前分布は、デコーディング側にも送信されるサイド情報に関連し、事実上すべての最新の画像コーデックに共通する概念であるが、ANNを使用した画像圧縮ではほとんど検討されていない。既存のオートエンコーダ圧縮方法とは異なり、このモデルは、基礎となるオートエンコーダと一緒に複雑な事前分布を訓練する。
VAEフレームワークは、非線形変換コーディングモデルとみなされることができる。変換プロセスは、主に4つの部分に分割されることができる。これは、VAEフレームワークを示す図2Cに例示されている。
図2Cは、超事前モデルを含むネットワークアーキテクチャを示している。左側(ga,gs)は、画像オートエンコーダアーキテクチャ(VAE)を示しており、右側(ha,hs)は、超事前分布を実装するオートエンコーダに対応する。因数分解された事前モデルは、解析および合成変換gaおよびgsに同一のアーキテクチャを使用する。Qは量子化を表し、AE、ADはそれぞれ算術エンコーダ、算術デコーダを表す。
エンコーダは、入力画像xにgaを受けさせ、空間的に変化する標準偏差を有する応答y(潜在表現)をもたらす。エンコーディングgaは、サブサンプリングを有する複数の畳み込み層と、活性化関数として一般化された分割正規化(GDN)とを含む。具体的には、エンコーダga(1)は、関数y=f(x)を介して画像xを潜在表現yにマップする。潜在表現を離散値
に変換する量子化器Q(2)。
応答はhaに供給され、zにおける標準偏差の分布を要約する。zは次いで量子化され、圧縮され、サイド情報として送信される。エントロピーモデルまたはハイパーエンコーダ/デコーダha(超事前分布としても知られている)(3)は、可逆エントロピーソースコーディングで達成可能な最小レートを得るために
の分布を推定する。超事前分布のさらなるサイド情報はz=ha(y)として定義され、これは
として量子化される。次いで、エンコーダは、量子化ベクトル
を使用して、
、算術コーディング(AE)の確率値(または頻度値)取得するために使用される標準偏差の空間分布を推定し、それを使用して量子化画像表現
(または潜在表現)を圧縮して送信する。超事前分布の
およびサイド情報
は、算術コーディング(AE)を使用してビットストリームに含められる。
図2Cに示されるVAE構造のデコーダ側、すなわち、gsおよびhsでは、デコーダはまず、算術デコーダによってビットストリームから
を構文解析することによって圧縮信号から
を復元する。次いで、VAEにおいてパラメータとして算術デコーダADに使用される
が
として再構成される。同様に、
も、
の正常な復元を保証する正しい確率推定値を提供するように、
を算術デコーダパラメータとして使用して算術デコーダによってビットストリームから構文解析される。最後に、再構成画像
が
によって生成される。
深層学習を基にした画像/ビデオ圧縮システムの大部分は、信号を2進数(ビット)に変換する前に信号の次元数を削減する。例えば、VAEフレームワークでは、非線形変換であるエンコーダは、入力画像xをyにマップし、yはxよりも小さい幅および高さを有する。yは、より小さい幅および高さ、よってより小さいサイズを有するので、信号の次元が削減される。したがって、信号yを圧縮することがより容易である。圧縮の一般原理は、図2Cに例示されている。エンコーダgaの出力およびデコーダgsの入力である潜在空間
は、圧縮データを表現する。潜在空間のサイズは、典型的には、入力信号サイズよりもはるかに小さいことに留意されたい。
入力信号のサイズの縮小は図2Cに例示されており、図2Cは深層学習を基にしたエンコーダおよびデコーダを表現している。前述のように、入力画像xは入力データに対応し、これは図2Cに示されるエンコーダの入力である。変換信号yは潜在空間
に対応し、これは入力信号よりも小さい次元数を有する。丸の各列は、それぞれエンコーダまたはデコーダの処理チェーン内の層を表現している。各層内の丸の数は、その層における信号のサイズまたは次元数を示している。
図2Cから明らかなように、エンコーディング操作は入力信号のサイズの縮小に対応し、デコーディング操作は画像の元のサイズの再構成に対応する。
VAE構造の入力では、1つの畳み込みネットワーク層(conv N×5×5/2↓)が使用される。「N×5×5/2↓」は、ここではCNNの層を指定する表記を指すことに留意されたい。この例では、5×5畳み込み層を有するCNNが、出力としてN個のチャネルを有すると定義されている。出力は、下矢印によって示されるように、両方の次元において係数2でダウンサンプリングされる。この畳み込み層のために、入力画像の3つの成分すべてのサイズは同じである(例えば、RGBまたはYUV444)。そうでない場合、この例の畳み込みネットワーク層は、例えばYUV422フォーマットやYUV420フォーマットの場合のように、異なるサイズを有する画像(またはピクチャ部分)を入力として取り込まない。
同様に、図2Cが示すように、VAE構造の終わりにある最後の逆畳み込みネットワーク層(conv 3×5×5/2↑)のために、出力画像(再構成画像)の3つの成分のサイズは同じである。
よって、既存のVAE構造を使用してビデオシーケンス内のフレームを圧縮する場合に問題がある。例えば、3つの成分のサイズが同一ではないために、VAE構造がクロマサブサンプリングカラーフォーマットのビデオフレーム(例えば、YUV422、YUV420)を直接取り扱わない場合がある。前述のように、場合によっては、入力画像は入力畳み込みネットワーク層によって処理されないことがあり、その結果、出力画像は入力画像と同じサイズを有さないことがある。
MPEG提案(Ankitesh K.Singhら「M55267:[DNNVC]A study of handling YUV420 input format for DNN-based video coding」)は、ビデオシーケンスのYUV420カラーフォーマットフレームの特定の事例について、上記の問題の一部に対処する方法を論じている。
図3は、MPEG提案の1つの方法を示している。エンコーダ側では、畳み込みネットワーク層conv N×5×5/2↓(すなわち、畳み込みカーネルは5×5であり、出力チャネルはNであり、出力は両方の次元において2だけダウンサンプリングされる)を使用して、ルーマ成分が水平方向と垂直方向の両方に係数2でダウンサンプリングされる。クロマ成分は、ダウンサンプリングなしで畳み込みネットワーク層conv N×5×5/1↓によって処理される(CNN表記に関して、これは「/1」、すなわち1で除算によって示される)。そのため、出力Y、U、およびVは同じサイズを有し、VAE構造によって処理されることができる。デコーダ側では、ルーマ出力Y成分は、conv 1×5×5/2↑を使用して水平方向と垂直方向の両方に係数2でアップサンプリングされる。これに対して、クロマ成分は、アップサンプリングなしでconv 2×5×5/1↑によって処理される。よって、最終的な再構成画像は、元の入力YUV420画像と同じサイズを有する。
上記の処理から明らかなように、図3の方法は、ルーマ成分をダウンサンプリングすることによって同じサイズを有するルーマおよびクロマ成分を提供する。言い換えれば、人間の視覚システムにとって最も重要なものであり、ビデオフレームの最も詳細な情報を搬送する成分が処理される。これは、重要なルーマ情報が廃棄されるという結果をもたらし、品質損失につながる可能性がある。
しかしながら、フレームの成分および/またはチャネルが異なる解像度(すなわち、サイズ)を有すると、VAE構造はもはやビデオシーケンスのこのフレームを圧縮することができなくなる。特に、3つの成分のサイズが同じではないため、VAE構造はクロマサブサンプリングカラーフォーマットのビデオフレーム(例えば、YUV422、YUV420)を直接処理することができない。前述のように、入力画像(入力画像のピクチャ部分を含む)は入力畳み込みネットワーク層によって処理されることができず、出力画像は入力画像と同じサイズを有さない。
第1の実施形態
本開示のいくつかの実施形態は、既存のANNまたはVAEフレームワーク構造に適したサブサンプリングされたクロマ成分を取り扱う上記の問題に対する解決策を提供しうる。
本開示の一実施形態によれば、ピクチャ部分をエンコードするための方法が提供され、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含む。
ピクチャ部分は、ピクチャ(画像)のサンプルの数を指し、前記数(量)は、前記ピクチャのサンプルの総数よりも小さい。本明細書におけるピクチャおよび画像という用語は同じ意味を有することに留意されたい。ピクチャ部分は、ピクチャの一部(1つまたは複数)または全部のサンプルを含みうる。本明細書におけるサンプルおよびピクセルという用語は同じ意味を有する。ピクチャは、静止画像、または例えばビデオシーケンス(動画)のフレームに対応するビデオピクチャでありうる。
ピクチャ部分は、1つまたは複数の色成分、例えばルーマ成分および1つまたは複数のクロマ成分を含みうる。例えば、上記のように、ルーマ-クロマフォーマットYUV420のピクチャ部分は、2つのクロマ成分UおよびV(クロマチャネルとも呼ばれる)を含む。ピクチャ部分のクロマ解像度は、ピクチャ全体に対してルーマチャネルの解像度よりも低くてもよい。代替的に、クロマ解像度は、画像の一部に対してルーマチャネルの解像度よりも低くてもよい。言い換えれば、ピクチャに取り込まれたシーンの一部は、(同じクロミナンスの)クロマサンプルよりも多くのルーマサンプルによって表現されうる。解像度は、2次元(2D)ルーマのサイズ(次元)によって、または2Dクロマチャネルのサイズによって与えられうる。これは、典型的には、2D画像内のルーマサンプルまたはクロマサンプルのxy方向に沿ったサンプルの数によって、またはサンプルの総数によって与えられる。相対解像度は、上記のように、例えば4:2:0、4:2:2など、輝度サンプルとクロミナンスサンプルとの間の比として指定されうる。いくつかの例示的実施形態がルーマチャネルおよび(1つまたは複数の)クロマチャネルについて本明細書で説明されているが、本開示はそれらに限定されないことに留意されたい。一般に、1つまたは複数の色成分に加えて、またはその代わりに、深度などの他のチャネルが本開示で論じられるように処理されてもよい。
この方法は、図13に示されており、ルーマ成分の解像度と一致するアップサンプリングされたクロマ成分を取得するためにクロマ成分をアップサンプリングするステップ1310を含む。アップサンプリングされたクロマ成分は、中間クロマ成分とも呼ばれる。解像度の一致は、ルーマ成分の次元の一致に対応しうる。方法は、ルーマ成分とアップサンプリングされたクロマ成分とをビットストリームにエンコードするステップ1320をさらに含む。
アップサンプリングするステップの前に、ルーマ成分の解像度が取得されてもよい。これは、解像度をメモリからまたは入力ピクチャのビットストリームなどから読み取ることによって決定することによってなされてもよい。クロマ成分の解像度も同様に取得されうる。ルーマチャネルおよびクロマチャネルを含むそれぞれのピクチャ部分の解像度は、メモリ内、または一般に、任意の種類の記憶媒体内のそれぞれのチャネルと共に示されうる。それぞれのチャネルの解像度は、サンプルの数として提供されうる。代替的または追加的に、チャネル解像度は、(ビットストリームで示されるか、または別の方式で取得されうる)ピクチャのサイズ、すなわち前記ピクチャのすべてのサンプルに対する比として提供されてもよい。
上記のエンコーディングは、変分オートエンコーダVAEによって行われうる。VAEは、ピクチャのエンコーディングおよびデコーディングに関連するタスクを効率的に行うための分野で公知であり、必要とされるビットレートと再構成画像/ピクチャの品質との間の良好な妥協を有する。サイズ変更されたクロマがルーマと同じ解像度を有するようにサブサンプリングされたクロマ成分(すなわち、ルーマチャネルよりも低い解像度を有するクロマ)をアップサンプリングすることによって、元のサブサンプリングされたYUVカラーフォーマットはVAEによるエンコーディングの対象となりうる。次いで、図2Cに示されるVAEのエンコーダ部分は、図2Cを参照して前述されたような方式で、それぞれの等サイズの3チャネル入力を処理しうる。そのプロセスにおいて、ルーマチャネルは影響を受けないままであり、よって、ルーマによって提供されるような場合によっては重要な画像情報は保存されうる。
しかしながら、VAEによるエンコーディングは、可能な有利な実装形態のうちの1つにすぎないことに留意されたい。これは本開示を限定するものではなく、図2Bに示されるような構造を有するものなど、他の種類のオートエンコーダでも効率的に動作しうる。さらに、本開示はオートエンコーダに限定されず、任意のANNを基にした、または一般に任意の訓練されたネットワークに適用されうる。原則として、本開示は、任意の種類のエンコーダまたはデコーダに適用可能である。
方法の一例示的実装形態では、クロマ成分のアップサンプリングは、ルーマ成分のサンプルに基づくものである。これは、前記アップサンプリングがルーマサンプルの値に基づくものであり、よってコンテンツ適応的であることを意味する。ルーマサンプルは、1つまたは複数のルーマサンプルを指しうる。これは、アップサンプリングにすべてのルーマサンプルを使用することを含む。
クロマアップサンプリングは、クロマ成分を訓練されたネットワークによって処理するステップをさらに含んでいてもよい。サイズ等化は、訓練されたネットワークに、ルーマ成分およびクロマ成分を入力するステップと、訓練されたネットワークから、アップサンプリングされたクロマ成分を出力するステップと、を含みうる。この訓練されたネットワークの入力としてのルーマ成分の使用は、ルーマチャネルとクロマチャネルとの間の成分間情報を保存しうる。
エンコーディング側の訓練されたネットワークは、アップサンプリングに適した任意の種類のネットワークであってもよい。これは、例えば、全結合ネットワークやスパースニューラルネットワーク、畳み込みニューラルネットワーク(CNN)などの人工ニューラルネットワーク(ANN)を含む。特に、CNNは、ピクチャのエンコーディングおよびデコーディングのための画像/ピクチャ処理タスクに首尾よく適用されている。クロマアップサンプリングに使用される訓練されたネットワークは、出力として、ルーマチャネルの解像度と一致した解像度を有するサイズ変更されたクロマ成分(すなわち、中間クロマ成分)を提供するため、サイズ等化ネットワークとも呼ばれうる。言い換えれば、サイズ等化ネットワークによる処理の後、すべての出力されたルーマ-クロマチャネルは同じ解像度(すなわち、サイズ)を有する。しかしながら、本開示は、そのようなアップサンプリングに限定されない。後で示されるように、アップサンプリングのいくつかの可能な有利な実装形態がある。訓練されたという用語は、機械学習によって予め訓練されるネットワークのタイプを指す。そのようなネットワークはまた、機械学習のための入力(教師ありまたは教師なし)を有する訓練可能なネットワークでもありうる。しかしながら、訓練されたネットワークは、同じネットワークの訓練を行わずに重みを構成することによって、例えば記憶媒体から重みを取得することによって提供されてもよい。重みは、同様のネットワークを訓練することによって事前に取得され、記憶されてもよい。代替的に、重み(係数とも呼ばれる)は、ウィーナーフィルタやカルマンフィルタなどの数学的フィルタの使用によって導出されてもよい。別の選択肢は、変換層、例えば離散コサイン変換(DCT)や離散サイン変換(DST)の使用によって重みを導出することである。変換層は訓練されたネットワークに含まれうるが、それぞれの重みは固定係数であってもよく、パラメータとみなされてもよい。DCTおよびDSTは単なる例であり、一般に、例えば、アダマール変換、高速フーリエ変換(FFT)、離散フーリエ変換(DFT)、または上記の変換を何らかの実装制約(数表現やビット深度など)に従うように変更することによって得られる変換、またはカルーネン・レーベ変換など、直交ユニタリ変換などの任意の適切な公知の変換が適用されてもよいことに留意されたい。
以下でさらに論じられるように、訓練されたネットワークの第1の層(または他の場所)で行われうるアップサンプリングは、最近傍を基にしたフィルタリング方法の代わりに双線形フィルタまたは別の種類の線形もしくは非線形補間フィルタを使用してもよい。最近傍フィルタリングは、補間フィルタの簡略化バージョンとみなされてもよい。追加的または代替的に他の超解像法が使用されてもよい。
一例として、エンコーダ側では、YUV420、YUV422などといったサブサンプリングカラーフォーマットのビデオフレームのクロマ成分が、サイズ等化ネットワーク層を使用してルーマ成分のサイズに等化される。
一例示的実装形態では、訓練されたネットワークは少なくとも2つの処理層を備える。2つの処理層のうちには、入力されたクロマ成分に基づいてアップサンプリングを行うための第1の層と、前記第1の層の出力のルーマ成分と一緒の処理を行うための第2の層とがある。ここでの「第1」および「第2」という用語は単なるラベルであり、層の順序におけるネットワークの1番目の層および2番目の層に必ずしも対応しない。前記第1の層と第2の層との間に何らかの他の1つまたは複数の層が存在していてもよい。
一実装例では、第1の層の出力をルーマ成分と一緒に処理することは、ルーマ成分とアップサンプリングされたクロマ成分とを要素ごとに加算することを含む。よって、「加算演算」は低複雑度を有するため、ルーマをサイド情報として使用するクロマアップサンプリングは効率的に行われうる。ルーマ成分とクロマ成分との「結合」を基にした処理は、加算演算に限定されない場合もある。この例では、成分間情報は保存される。ここで、保存されるという用語は、高周波数情報および鋭いエッジに関する詳細を含むルーマ情報がクロマアップサンプリング操作において使用されることを意味する。先行技術と比較して、クロマ成分はこのようにして深く強化される。
代替的に、クロマはルーマと連結されてもよい。これは、典型的には、ルーマおよびクロマ成分の各々よりも大きいサイズを有する連結されたルーマ-クロマ合成をもたらす。他の種類の「結合」の種類の操作が代わりに使用され、かつ/または加算もしくは連結と組み合わされてもよく、それによって、ルーマの情報が、サイズ等化ネットワークによるサブサンプリングされたクロマのアップサンプリングおよび/または処理のために利用される。
上記の処理は、エンコーダ側とエンコーダ側の両方をカバーしている、本開示のいくつかの実施形態を示している図4から図8によって例示されうる。
図4の上部に示されているエンコーダ側では、ルーマ成分Yとクロマ成分UおよびVとの入力を含む。特に、クロマ成分UおよびVは、(サブサンプリングされた、ルーマ成分Yと比較して)(1つまたは複数の)クロマ成分をルーマ成分のサイズにアップコンバートするサイズ等化ネットワーク層410に入力される。「アップコンバート」という用語は、アップサンプリングとも呼ばれうる。前述のように、前記アップコンバージョンまたはアップサンプリングは、サイズ等化ネットワークのための入力情報(すなわち、サイド情報)としてルーマ成分も使用して行われてもよく、これは、図4において、NNサイズ等化モジュール410への第3の入力によって示されている。NNサイズ等化モジュール410の出力は、ルーマ成分Yと次元が一致する中間クロマ成分UおよびVである。ルーマ成分と中間クロマ成分の両方がVAEエンコーダ420に入力される。VAEエンコーダは、図2Bや図2Cなどに示されるようなエンコーダであってもよい。VAEエンコーダ420は、中間クロマ成分U、Vおよびルーマ成分Yが含まれる、例えば圧縮されたビットストリームを出力する。
これに対応して、図4の下部は、例示的なデコーダ側を示している。特に、エンコードされたビットストリーム(VAE420によってエンコードされたビットストリームなど)が、VAEデコーダ470に入力される。VAEデコーダ470は、図2Bや図2Cなどに示されるようなデコーダであってもよい。VAEデコーダ470は、ルーマ成分Yと中間クロマ成分UおよびVとを出力する。これらのデコードされたルーマ成分Yと中間クロマ成分UおよびVとは、エンコーダ側のルーマおよび中間クロマ成分と必ずしも同じではない。これは、いくつかの実施形態では、VAEエンコーダ420が入力を非可逆的な方式で圧縮する場合があるためである。次いで、解像度が一致しているデコードされた成分Y、U、Vは、入力サイズ(解像度)に戻すNNサイズ変換を行うダウンサンプリングネットワーク480に入力される。中間クロマ成分UおよびVは、クロマ成分の次元にダウンサンプリングされる。ダウンサンプリングのプロセスでは、ルーマ成分Yが使用されてもよい。
図5は、エンコーダ側のサイズ等化ネットワーク410のための本開示の実装例を示している。この例では、それぞれの層は、畳み込みニューラルネットワーク(CNN)に属する。図5を参照すると、畳み込みネットワーク層は以下のように定義されている。
・Conv N×K×K:K×K個の畳み込みのカーネルを有し、Kが正の整数である、畳み込みネットワーク層を表す。Kの典型的な数は3または5である。しかしながら、Kはこれらの数に限定されず、任意の他の正の整数であってもよい。特に、より大きい値のKが可能である。Nは正の整数であり、畳み込みニューラルネットワークの出力チャネルの数を表す。Nの典型的な数は128または192である。しかしながら、出力の必要に応じて任意の他の数が使用されてもよい。特に、Nは1または2であってもよく、すなわち、1つまたは2つの出力チャネルを有するCNN層に対応するconv 1×K×Kまたはconv 2×K×Kであってもよい。
・Act.:非線形活性化関数、例えば、上記の正規化線形ユニット(ReLU)やGDNでありうる活性化層を指す。前記関数は、畳み込み層を活性化するために使用される。活性化がなければ、畳み込み層は単なる線形結合になり、畳み込み演算なしと同じになる。
・Conv N×K×K/2↑:Conv N×K×Kと同じものを表すが、(この例では)出力を水平方向と垂直方向の両方に係数2でさらにアップサンプリング(アップコンバート)する。これは、「2」および上矢印によって示されている。
・Conv. N×K×K, Act:畳み込み層+活性化層を表す。
図5は、カラーフォーマットYUV420の場合のエンコーダ側の例を示している。これは、3つのチャネルY、U、およびVが関与することを意味し、よってN=3である。
例えば、ルーマサイズがw×hであり、クロマサイズがw/2×h/2であり、カラーフォーマットがYUV420である場合、サイズ等化ネットワーク層は、クロマ成分UおよびVを水平方向と垂直方向の両方に係数2でアップサンプリングする。式中、wは幅を表し、hは、例えば(整数)サンプル数でカウントされるルーマ成分の高さを表す。conv N×K×K/2↑層は、U成分およびV成分を水平方向と垂直方向の両方に各々係数2でアップサンプリングする。この層の出力は、N個のチャネルを有する。
図5から明らかなように、Y成分は、アップサンプリングなしでconv N×K×K層で処理され、よって、ルーマ成分の解像度(次元)を保存する。この層の出力もまた、サイズ等化層conv N×K×K/2↑としてN個のチャネルを有する。層conv N×K×K/2↑と層conv N×K×Kの両方の出力信号が、特徴マップを出力するそれぞれの活性化層(すなわち、非線形活性化関数、例えばReLUやGDN)によって処理され、特徴マップは次いで加算される(合計される)。この例では、信号の単純和が使用される。これは、それぞれの出力が要素ごとに加算される(特徴マップの要素が合計される)ことを意味する。これは、conv(畳み込み)層からの出力のサイズ(次元)が幅および高さに関して同じであるために可能である。
クロマとルーマとのマージを基にした演算(結合)には、他の種類の演算が可能である。例えば、ルーマ出力とクロマ出力との連結が適する。加算は、結果として得られるフレーム内にN個のチャネルのみを有する最も単純な解決策の1つでありうる。これは、和演算がチャネルの数を保存することを意味する。対照的に、連結は、2N個のチャネルを有する潜在表現を導入する。よって、和演算は、チャネル数のさらなる増加なしで、ルーマと共にクロマをアップサンプリング処理するための低複雑度を提供する。
次いで、結合信号は、1つまたは複数の畳み込み層および活性化層によって処理され、出力として2つのクロマチャネル(アップサンプリングされたクロマ成分に対応するサイズ変更されたU、V)を提供する。元のY信号も、ビットストリームへのエンコーディング420である次のステップに提供される。アップサンプリングされたクロマは、中間クロマ成分/チャネルとも呼ばれる。これらの等サイズの出力(信号)は、次いで、VAE構造への入力として使用される。
図5の例では、YとアップサンプリングされたクロマUおよびVとの加算演算は、第1の層の後に配置されている。しかしながら、前記演算(さらに言えば、信号を連結および/またはマージするための任意の他の適切な演算)は、任意の他の層の後に配置されてもよい。この設計の利点は、Y個の特徴が、加算演算後に配置された畳み込み層によってほとんど抽出されることである。
別の例では、ルーマサイズがw×hであり、クロマサイズがw/2×hであり、カラーフォーマットがYUV422である場合、サイズ等化ネットワーク層は、クロマ成分UおよびVを水平方向に係数2でアップサンプリングする。この場合、アップサンプリングされたクロマ成分は長方形形状を有する。いずれの場合も、サイズ等化ネットワーク層の出力されたアップサンプリングされたクロマ成分UおよびVは、元のY成分と同じサイズを有する。よって、前記サイズ等化ネットワーク層の出力は、VAE構造の入力として使用されうる。
一例示的実装形態では、アップサンプリングは、クロマ成分のサンプルのn本のラインごとの後に、サンプルの追加のラインを挿入することを含む。ここで、ラインは行および/または列を指し、nは1以上の整数である。これは、例えば、各奇数行が追加された行であることを意味する。追加的または代替的に、例えば、結果として得られるアップサンプリングされた成分の各奇数列は追加された列である。奇数の代わりに、各偶数行および/または偶数列が追加されてもよい。これらの例は、n=1の場合であり、1行ごとの後(または前)に、追加の行が挿入される。そのようなアップサンプリングは、2倍のアップサンプリングである。しかしながら、本開示は、この特定の例に限定されない。むしろ、nはより大きくてもよく、これは、整数の行の後にサンプルの追加の行が挿入されることを意味する。同様の手法が列にも適用可能である。nは、行と列とで異なっていてもよい。さらに、これは、特定の行および/または列でラインサンプルを挿入することによるクロマアップサンプリングのさらなる適応を可能にする。
さらに、アップサンプリングは、クロマ成分のサンプルのn本のラインごとの後に、値0を有するサンプルのラインを挿入することによって行われてもよい。これは、ゼロ充填と呼ばれうる。これは、それぞれのラインサンプルを0に設定するだけでアップサンプリングを行う簡単な方式である。よって、さらなるシグナリングまたは処理オーバーヘッドは不要である。そのような手法が、アップサンプリングされたクロマの4×4サンプルを示す図9に例示されている。黒丸は、元のクロマのサンプルを指している。白丸は、0値を有するサンプルを指している。この例では、ゼロ値サンプルのラインは、クロマ成分の各行および各列の後に挿入される。さらに、この例では、サイズ等化ネットワークは、図5の「加算」演算の後にそれ以上の層がない1層ネットワーク(M=1)に簡略化されている。図9(エンコーダ側)では、UおよびVのアップサンプリングが、YUV420カラーフォーマットの場合について各行および各列に0を充填することとして簡略化されている。YUV422フォーマットの場合には、ゼロの充填は各列についてである)。この場合、ネットワークは畳み込みニューラルネットワークではないが、全結合ニューラルネットワーク(FCNN)の1つの層として理解されることができる。したがって、このネットワーク自体は必ずしも訓練可能ではない。しかしながら、より良好なコーディング性能のためにVAE構造と一緒に訓練されることができる。よって、それぞれのFCNNは、訓練されたネットワークも指しうる。
別の実装形態では、クロマアップサンプリングは、クロマ成分のサンプルのn本のラインごとの後に、クロマ成分内のそれぞれの最近傍サンプルに等しい値を有するサンプルのラインを挿入することによって行われうる。値の挿入は、例えば、クロマ値をそれぞれの近傍サンプルにコピーすることによって行われてもよい。上記のゼロ充填の場合と同様に、これは、特定の行および/または列でラインサンプルを挿入することによるクロマアップサンプリングのさらなる適応を可能にする。さらに、クロマの最近傍サンプルを参照した挿入されたラインサンプルの値を使用すると、クロマアップサンプリングの精度は、元のクロマを参照した(近傍クロマサンプル値によって反映される)隣接情報が用いられるためにより正確である。
これは、アップサンプリングされたクロマの4×4サンプルを示す図11に例示されている。この場合もやはり、黒丸は、元のクロマのサンプルを指している。ここでは、白丸は、それぞれのクロマ近傍サンプルに応じた値を有するサンプルを指している。図11では、それぞれの近傍サンプルへのクロマ値の挿入は矢印で示されている。この例では、サンプル値は、クロマ成分の各1行および各1列の後に挿入される。さらに、この例では、サイズ等化ネットワークは、図5の「加算」演算の後にそれ以上の層がない1層ネットワーク(M=1)に簡略化されており、ルーマからクロマへの成分間情報は、「加算」演算によって保存される。例えば、ルーマが(より高い元の解像度を有するため)より多くの情報を含む場合、追加情報は、ルーマとクロマとが同じ次元を有するときに正しい位置でクロマサンプルに追加される。図11(エンコーダ側)では、UとVのアップサンプリングは、図11でYUV420フォーマットについて示されるように、各行および各列の最近傍サンプルのアップサンプリングとして簡略化されている。YUV422フォーマットの場合には、最近傍サンプルのアップサンプリングは各列に対してである。クロマアップサンプリングの上記の例では、ネットワークは畳み込みニューラルネットワークではないが、全結合ネットワークの1つの層として理解されることができる。したがって、このネットワーク自体は訓練可能ではないが、より良好なコーディング性能のためにVAE構造と一緒に訓練されることができる。よって、それぞれのFCNNは、訓練されたネットワークも指しうる。ここでの最近傍アップサンプリングは、(予め定義された方向の)最近傍サンプルの値が新たに追加されたサンプルにコピーされることを意味する。図11では、左と上との最近傍が取られている。これは、本開示を限定しない規則である。最近傍は、右側および下からコピーされてもよい。補間(例えば、隣接サンプル値の平均)または他の種類のアップサンプリングが関与してもよい。
上記のアップサンプリングネットワークは、1つの層を有するサイズ等化のための訓練されたネットワークの単なる例である。図5および図7を通して示されるように、サイズ等化層が2つ以上の層を有していてもよいことは、当業者には明らかである。この場合、サイズ等化ネットワークは、クロマアップサンプリングを行うように訓練されうる。
前述の考察では、ルーマ成分は、サブサンプリングされたクロマチャネルのアップサンプリングを行うように、サイド情報として使用され、サイズ等化層に入力された。図7に示されるようなサイズ等化ネットワークのさらなる実装例では、アップサンプリングは、ルーマのさらなる使用なしで行われうる。言い換えれば、ルーマチャネルは、エンコーダ側のサイズ等化ネットワークに入力されない。そうでない場合、エンコーダによるサブサンプリングされたクロマの処理は、ルーマがクロマアップサンプリングのためのサイド情報として使用された場合について既に論じられたものと同じである。これは、入力として(1つまたは複数の)クロマ成分のみを取るので、サイズ等化ネットワークの簡略化された設計を可能にする。
本開示の一実施形態によれば、ビットストリームからピクチャ部分をデコードするための方法が提供され、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含む。ピクチャ部分は、画像および/またはピクチャのサンプルの数を指し、前記数は、前記画像/ピクチャのサンプルの総数よりも小さい。ピクチャ部分はまた、画像またはピクチャのすべてのサンプルを含んでいてもよい。サンプルという用語は、ピクセルを指す場合もある。画像は、静止ピクチャまたはビデオピクチャでありうる。ピクチャ部分は、1つまたは複数のクロマ成分を含んでいてもよい。例えば、ルーマ-クロマフォーマットYUV420のピクチャ部分は、2つのクロマ成分UおよびV(クロマチャネルとも呼ばれる)を含む。ピクチャ部分のクロマ解像度は、ピクチャ/画像全体に対してルーマチャネルの解像度よりも低くてもよい。代替的に、クロマ解像度は、画像の一部に対してルーマチャネルの解像度よりも低くてもよい。この「部分的な」ルーマ解像度の場合、ルーマチャネルおよび(1つまたは複数の)クロマチャネルは、ピクチャの同じ部分に関連している。ピクチャの同じ部分は、ピクチャの領域とも呼ばれうる。
方法は図14に例示されており、ルーマ成分と、ビットストリームからのクロマ成分の解像度と一致する中間クロマ成分とをデコードするステップ1410を含む。中間クロマ成分は、前記中間成分がクロマ成分をアップサンプリングすることによって生成/取得されたことを反映して、アップサンプリングされたクロマ成分とも呼ばれる。解像度は、2次元(2D)ルーマチャネルまたはクロマチャネルのサイズ(すなわち、次元)に関して与えられる。これは、典型的には、2Dルーマサンプルまたは2Dクロマサンプルのxy方向に沿ったサンプルの数によって、またはサンプルの総数によって与えられる。方法は、前記ピクチャ部分のクロマ成分を取得するように中間クロマ成分をダウンサンプリングするステップ1420をさらに含む。上記のデコーディングは、変分オートエンコーダ(VAE)によって行われうる。VAEは、画像/ピクチャのエンコーディング/デコーディングに関連するタスクを非常に効率的に行うための分野で公知であり、必要とされるビットレートと再構成ピクチャの品質との間の良好な妥協を有する。次に、図2Cに示されるVAEのエンコーダ部分は、図2Cを参照して前述されたような方式で、ルーマおよび中間クロマを含むそれぞれの等サイズのチャネル入力を処理しうる。そのプロセスにおいて、ルーマチャネルは影響を受けないままであり、よって、ビットストリームからルーマ成分をデコードするときに、ルーマによって提供される最も重要な画像情報が保存される。
中間クロマ成分(すなわち、ルーマチャネルと同じ解像度を有するクロマ)をダウンサンプリングすることによって、元のクロマ成分(すなわち、サブサンプリングされたクロマ)が再構成されうる。特に、元のルーマ-クロマフォーマットを有するピクチャ部分は、高品質で再構成されうる。よって、デコーダは、クロマフォーマットのピクチャ部分を出力として提供することができ、クロマはルーマよりも低い解像度(すなわち、サイズ)を有する。
方法の一例示的実装形態では、ダウンサンプリングは、訓練されたネットワークによって中間クロマ成分を処理するステップをさらに含む。このネットワークは、入力された中間クロマ(ルーマと同じサイズを有する)を、ルーマよりも低い解像度(すなわち、より小さいサイズ)を有する元のクロマのサイズに変換するというその目的を反映して、サイズ変換ネットワークと呼ばれうる。
デコーディング側の訓練されたネットワークは、ダウンサンプリングに適した任意の種類のネットワークであってもよい。これは、例えば、ニューラルネットワーク、畳み込みニューラルネットワーク(CNN)などといった人工ニューラルネットワーク(ANN)を含む。特に、CNNは、ピクチャのエンコーディングおよびデコーディングのための画像/ピクチャ処理タスクに首尾よく適用されている。クロマダウンサンプリングに使用される訓練されたネットワークは、出力として、ルーマチャネルよりも低い解像度を有するサイズ変更されたクロマ成分(すなわち、元のサブサンプリングされたクロマ成分)を提供するので、サイズ変換ネットワークとも呼ばれうる。言い換えれば、サイズ変換ネットワークによる処理の後、すべての出力されたルーマ-クロマチャネルは異なる解像度(すなわち、サイズ)を有する。
方法の第1の例示的実装形態では、訓練されたネットワークによって処理するステップは、訓練されたネットワークに、中間クロマ成分を入力し、訓練されたネットワークからクロマ成分を出力するステップを含む。これは、訓練されたネットワークが中間クロマのダウンサンプリングを行うための入力として中間クロマのみを使用することを意味する。よって、この例では、サイズ変換ネットワーク層によってルーマに関するサイド情報は使用されない。したがって、訓練されたネットワークは、低複雑度で設計されてもよく、ルーマがサイド情報として使用されないため、低処理オーバーヘッドを提供する。
これは、ルーマ成分がデコーダでサイズ変換ネットワークの入力として使用されない場合があることを示す図8に例示されている。この例では、2つのクロマ成分UおよびVは、カラーフォーマットYUV444を指し、UおよびVはルーマYと同じサイズを有する。そうでない場合、デコーダによる中間クロマの処理は、図4を参照して既に論じられたものと同じである。訓練されたネットワークの例示的実装形態では、訓練されたネットワークは少なくとも2つの処理層を備える。これらの少なくとも2つの層のうち、第1の層は、入力された中間クロマ成分の処理を行い、少なくとも2つの処理層のうちの第2の層は、前記第1の層の出力のダウンサンプリングを行う。
図8の例では、デコーダ側のサイズ変換ネットワークは、複数の畳み込み層および活性化層Conv. N×K×K, act.で構成されている。左側の最初のConv. N×K×K, Actは、中間クロマ成分UおよびVを入力として取る。ネットワークの最後の層(Conv. 2×K×K/2↓)は、信号を水平方向と垂直方向の両方向に係数2でダウンサンプリングし、2つのチャネルを出力する。これら2つのチャネルは、YUV420フォーマットの再構成されたUおよびV信号として使用される。すべての中間Conv. N×K×K, Act.層が除去されると、最後のConv. 2×K×K/2↓は2番目の層を指す。
この例では、Y情報は、J.Balleの手法と比較してダウンサンプリングされない。したがって、Yのルーマ情報および空間情報は、ほとんど保存される。上記のように、クロマダウンサンプリングは、ルーマ情報をサイド情報として利用せずに行われうる。
別の例示的実装形態では、中間クロマ成分のダウンサンプリングは、ルーマ成分のサンプルに基づくものである。これは、前記ダウンサンプリングがサイズに基づくものではなく、むしろルーマチャネルの内容、すなわちルーマサンプルのそれぞれの値に基づくものであることを意味する。ルーマサンプルは、1つまたは複数のルーマサンプルを指しうる。これは、アップサンプリングにすべてのルーマサンプルを使用することを含む。
クロマが訓練されたネットワークによって処理されるときに、訓練されたネットワークによって処理するステップは、訓練されたネットワークに、ルーマ成分を入力するステップを含む。一例示的実装形態では、訓練されたネットワークの最初の層は、中間クロマ成分をルーマ成分と一緒に処理するステップを行う。言い換えれば、ルーマは、クロマダウンサンプリング処理のためのサイド情報として使用される。これは、ルーマチャネルとクロマチャネルとの間の成分間情報を保存する。特に、ルーマ成分は、サブサンプリングされた(元の)クロマ成分よりも多くの詳細情報を含みうる。ルーマをサイド情報として使用することにより、クロマの一部の詳細がルーマ成分に基づいて復元されうる。アップサンプリングネットワークは、そのようなアップサンプリングのために特に訓練されうる。
デコーダ側では、サイズ変換ネットワークの最初の処理層は、エンコーダ側とは対照的に「加算演算」を行う必要がない場合があり、そのような種類の演算は、図5に示されるように行われうる(少なくともある種の明示的な結合演算が、エンコーダにおけるサイズ等化ネットワークに用いられうる)ことに留意されたい。これは、ルーマYおよび(1つまたは複数の)中間クロマU、Vを含むデコーダのサイズ変換ネットワークの最初の層への入力が、図6に示されるように既に同じサイズを有するためである。むしろ、3つの等サイズのチャネルは、別個の加算演算を必要とせずに前記第1のCNN層に直接入力しうる。これは、図5に示されるエンコーダのサイズ等化ネットワークの最初の層への入力には当てはまらない。この場合、クロマは、最初にアップサンプリングされ、続いてアップサンプリングされたクロマおよびルーマを加算する。次いで、これはCNN層に供給される。
図6は、その入力としてVAE構造の前述のエンコーディング側の出力を取る、VAE構造のデコーディング側の実装例を示している。上記のように、ここでは、サイズ変換ネットワークへのそれぞれの入力は、同じサイズの3つの成分を有する(すなわち、YUV444)。最初のチャネルは、再構成ルーマ成分として直接使用され、YUV420フォーマットの元のルーマ成分と同じサイズを有する。Conv. 2×K×K/2↓は、Conv N×K×Kと同じものを表すが、出力を水平方向と垂直方向の両方に係数2でさらにダウンサンプリング(ダウンコンバート)する。これは、「2」および下矢印によって示されている。上記のように、そのような配置は、成分間情報を保存するために、例えば、クロマよりも元々より高い解像度(次元)を有していたルーマからのさらなる詳細でクロマを強化するために有利でありうる。
一般に、VAE構造のデコーダ側でルーマを使用する訓練されたネットワークは、入力として追加のルーマを考慮することを除いて、ルーマなしと同じ方式で構築されてもよい。これは図6に例示されており、サイズ変換ネットワークはやはり、複数の畳み込み層および活性化層Conv. N×K×K, Actで設計されている。この場合もやはり、ネットワークの最後の層(Conv. 2×K×K/2↓)は、信号を水平方向と垂直方向の両方向に係数2でダウンサンプリングし、2つのチャネルを出力する。これら2つのチャネルは、YUV420フォーマットの再構成されたUおよびV信号として使用される。
例えば、カラーフォーマットがYUV420である場合、サイズ変換ネットワーク層は、中間クロマ成分UおよびVを水平方向と垂直方向の両方に係数2でダウンサンプリングする。別の例では、カラーフォーマットがYUV422である場合、サイズ変換ネットワーク層は、中間クロマ成分UおよびVを水平方向に係数2でダウンサンプリングする。いずれの場合も、最終出力は、それぞれカラーフォーマットYUV420またはYUV422を有する入力フレームの元の成分と同じサイズを有する。
方法の一例示的実装形態では、ダウンサンプリングは、中間クロマ成分のサンプルのn本のラインごとの後で、サンプルのラインを除去するステップを含む。ここで、ラインは行および/または列であり、nは1以上の整数である。これは、例えば、各1つ(n=1)または2つ(n=2)の行および/または列の後で、前記ラインサンプルが除去または削除されうることを意味する。よって、中間クロマのダウンサンプリングは、それぞれのラインサンプルを単に除去することによって迅速に行われうる。代替的に、ダウンサンプリングは、例えば、それぞれのクロマサンプルに最も近く隣接するサンプル値を(場合によっては重み付きで)平均することによって行われてもよい。
ラインサンプル除去の例が図10および図12に示されている。図10および図12のサンプル構成は、それぞれ、エンコーダ側でのクロマ成分のアップサンプリング処理の結果として、図9および図11のサンプル構成に対応することに留意されたい。
具体的には、図10および図12は、中間クロマの4×4サンプルを示している。黒丸は、元のクロマのサンプルを指している。×印の付いた白丸は、エンコーディング側のサイズ等化ネットワークによるクロマアップサンプリング処理(サイド情報としてのルーマの使用あり、およびなしの)ならびに/またはデコーディング側のサイズ変換ネットワークの(1つもしくは複数の)最初の層を介したクロマ処理の結果として非ゼロ値でありうるサンプルを指している。
図10および図12に示される例では、サイズ変換ネットワークは、1層のネットワーク(M=1)として簡略化されている。図10および図12(デコーダ側)では、UおよびVのダウンサンプリングは、YUV420カラーフォーマットの場合には奇数行および奇数列のサンプルを廃棄するように簡略化されている。YUV422では、奇数列サンプルが除去される。図10および図12に示されるこれらの場合のいずれにおいても、それぞれのネットワークは畳み込みニューラルネットワークではないが、全結合ニューラルネットワーク(FCNN)の1つの層として理解されることができる。したがって、このネットワーク自体は訓練可能ではない。しかしながら、より良好なコーディング性能のためにVAE構造と一緒に訓練されることができる。よって、それぞれのFCNNは、訓練されたネットワークも指しうる。
しかしながら、これは、1つの層を有するサイズ変換のための訓練されたネットワークの単なる例である。図6および図8を通して示されるように、サイズ変換層が2つ以上の層を有していてもよいことは、当業者には明らかである。この場合、サイズ変換ネットワークは、クロマアップサンプリングを行うように訓練されうる。
図5に示されるエンコーダ側のサイズ等化ネットワークおよび図6に示されるデコーダ側のサイズ変換ネットワークは、VAE構造を用いて一緒に訓練されうることに留意されたい。これは、特にVAEフレームワーク内のサブサンプリングされたクロマ成分のエンコーディング-デコーディング処理をさらに改善しうる。これは、例えば、エンコーディング-デコーディング性能および/または再構成ピクチャ/画像の品質を含む。
代替的に、それらは別々に訓練され、予め訓練されたVAEネットワークとして使用されてもよい。いずれの場合も、それぞれのネットワークは訓練されたネットワークを指す。係数2での(サンプリング係数)アップ/ダウンサンプリングは非限定的な例であるが、使用される典型的な値の1つであることに留意されたい。一般に、サンプリング係数は、1以上の任意の整数であってもよい。サンプリング係数は、代替的に、比、例えば2つの正の整数pおよびqのp/qとして与えられる分数のサンプリング係数であってもよい。
実施形態のこの部分を要約すると、(アップサンプリングのための)サイズ等化ネットワークおよび(ダウンサンプリングのための)サイズ変換ネットワークが、YUV420の3つの成分が同じサイズを有するようにサブサンプリングされたクロマチャネルのサイズを調整するために使用される。次いで、これらは、既存のVAE構造によって取り扱われ/処理されうる。
さらに、既に説明されたように、本開示はまた、上記の方法のステップを行うように構成されたデバイスも提供する。
図15は、ピクチャ部分をエンコードするためのエンコーダ1500を示しており、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含む。エンコーダは、ルーマ成分の解像度と一致するアップサンプリングされたクロマ成分を取得するためにクロマ成分をアップサンプリングするように構成されたアップサンプリングモジュール1510と、ルーマ成分とアップサンプリングされたクロマ成分とをビットストリームにエンコードするように構成されたエンコーディングモジュール1520とを備える。
一実装例では、エンコーダは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行するためのプログラミングを記憶した非一時的コンピュータ可読記憶媒体であって、プログラミングが、1つまたは複数のプロセッサによって実行されるとき、エンコーダを、上記の方法を実行するように構成する、非一時的コンピュータ可読記憶媒体とを備えていてもよい。
図16は、ビットストリームからピクチャ部分をデコードするためのデコーダ1600を示しており、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含む。デコーダは、ルーマ成分と、ビットストリームからのクロマ成分の解像度と一致する中間クロマ成分とをデコードするように構成されたデコーディングモジュール1610と、前記ピクチャ部分のクロマ成分を取得するように中間クロマ成分をダウンサンプリングするように構成されたダウンサンプリングモジュール1620とを備える。
特に、デコーダは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行するためのプログラミングを記憶した非一時的コンピュータ可読記憶媒体であって、プログラミングが、1つまたは複数のプロセッサによって実行されるとき、デコーダを、上記の方法を実行するように構成する、非一時的コンピュータ可読記憶媒体とを備えていてもよい。
本開示の一実施形態による、1つまたは複数のプロセッサにおいて実行されるとき、上記の方法のいずれかのステップを行うコードを含む非一時的媒体上に記憶されたコンピュータプログラム。
本開示のいくつかの実施形態は、以下のように要約される以下の利点を提供しうる。
・ルーマのサンプル情報が完全に保存される。
・ルーマの空間情報が完全に保存される。
・サイズ等化およびサイズ変換に使用されるネットワーク(すなわち、訓練されたネットワーク)(両方の訓練されたネットワークがCNNであってもよい)が、VAEネットワーク構造と一緒に訓練されてもよい。これは、結果をさらに改善するという利点を提供しうる。
・YUV422などのVAEネットワーク構造による様々な他のクロマサブサンプリングフォーマットの取り扱いにおける柔軟性。
・成分間情報が保存されることができる。
第2の実施形態
第2の実施形態は、第1の実施形態の例示的実装形態のいずれかと組み合わされてもよい。上記のように、第1の実施形態は、ルーマ成分と比較してサブサンプリングされたクロマ成分の取り扱いを対象としている。クロマ成分のアップサンプリングは、ANNやVAEなどの訓練可能なネットワークを基にしたフレームワーク内のさらなる処理に適したルーマ成分と共にそのようなサイズ変更されたクロマ成分を作る。それによって、ルーマ成分はほとんど影響を受けないままでありえ、よってルーマのサンプル情報および空間情報は保存されうる。これは、再構成ピクチャ(またはその部分)の高品質が必要とされる多くの用途にとって望ましい場合がある。これは、大解像度が維持される必要があることを意味し、したがって、エンコーディング-デコーディング処理はルーマを改ざんしてはならない。
しかしながら、他の用途では、高解像度は必ずしも最も重要な目標ではなく、むしろエンコーディング-デコーディングプロセスをより迅速に行う。さらに、所望の目標が、例えばルーマダウンサンプリングによって提供されるようなより低い解像度をもたらす、低ビットレートの場合もある。よって、低解像度または高解像度のいずれかのピクチャを提供するエンコーディング-デコーディング処理の中から選択することが望ましい場合がある。
この問題は、2つ以上の入力チャネルの解像度を一致するように適合させる場合のルーマのダウンサンプリングとクロマのアップサンプリングとの間の適応的切り替えを対象とする第2の実施形態によって解決されうる。ルーマダウンサンプリングおよびクロマアップサンプリングは、サンプリングモードとも呼ばれうる。2つのサンプリングモードのうちのどちらが行われうるかは、ルーマチャネルおよびクロマチャネルに基づいてエンコーダ側で決定され、デコーダ側にシグナリングされ、かつ/またはデコーダ側によって決定される。
特に、本開示の様々な例示的実装形態および態様を参照して以下でさらに論じられるように、クロマのサイズ(解像度)と一致するルーマダウンサンプリングおよびルーマのサイズ(解像度)と一致するクロマアップサンプリングが、エンコーダによって適応的に選択される。サンプリングモードのうちのどちらがエンコーダによって選択されるかは、以下でさらに詳述されるように、様々な方法で示されてもよく、受信されたビットストリームによる指示および/または受信されたビットストリームからの決定を含みうる。サンプリングモード(すなわち、ルーマダウンサンプリングまたはクロマアップサンプリング)のうちの一方が示される方式に応じて、デコーダ側は次いで、ルーマアップサンプリングまたはクロマダウンサンプリングのどちらかを行って、エンコーダに入力されたピクチャ部分と同じ解像度(すなわち、入力フレームと同じサブサンプリングフォーマット)を有する再構成ピクチャ部分を生成する。
本開示の一実施形態によれば、ピクチャ部分をエンコードするための方法が提供される。ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含む。ピクチャ部分は、画像および/またはピクチャのサンプルの数を指し、前記数は、前記画像/ピクチャのサンプルの総数よりも小さい。ピクチャ部分はまた、ピクチャのすべてのサンプルを含んでいてもよい。サンプルという用語は、ピクセルを指す場合もある。ピクチャ部分は、静止ピクチャまたはビデオピクチャであってもよい。ピクチャ、画像、およびピクチャ部分という用語は、同義的に使用されうる。ピクチャ部分は、1つまたは複数のクロマ成分を含んでいてもよい。例えば、ルーマ-クロマフォーマットYUV420のピクチャ部分は、2つのクロマ成分UおよびV(クロマチャネルとも呼ばれる)を含む。ピクチャ部分のクロマ解像度は、ピクチャまたは画像全体に対してルーマチャネルの解像度よりも低くてもよい。代替的に、クロマ解像度は、画像の一部に対してルーマチャネルの解像度よりも低くてもよい。この「部分的な」ルーマ解像度の場合、ルーマチャネルおよび(1つまたは複数の)クロマチャネルは、ピクチャの同じ部分に関連している。ピクチャの一部は、ピクチャの領域とも呼ばれうる。
ダウンサンプリングルーマは、低解像度でビットレートを節約するために有益であり、アップサンプリングクロマは、大解像度でルーマ情報を保存するために有益である。よって、適応的切り替えは、ビットレートまたはピクチャまたは画質に対する要求および/または制限に応じたサンプリングモードの選択を可能にする。ピクチャ部分の選択されたピクチャ処理のいずれの場合も、処理されたルーマ-クロマ成分は一致した解像度を有するので、出力は、効率的なエンコーディングを可能にするVAEフレームワークまたは別のフレームワーク内で取り扱われうる。
この方法は、図31に例示されており、ピクチャ部分のピクチャ処理として
クロマ成分の解像度と一致するダウンサンプリングされたルーマ成分を取得するようにルーマ成分をダウンサンプリングするステップ、および
ルーマ成分の解像度と一致するアップサンプリングされたクロマ成分を取得するようにクロマ成分をアップサンプリングするステップ
の一方を選択するステップ3110を含む。
解像度は、2次元(2D)ルーマチャネルのサイズ(すなわち、次元)に関して与えられる。しかしながら、解像度は、クロマチャネルなどのルーマとは異なるチャネル、または深度チャネルなどといった別の種類のチャネルの次元によっても与えられうることに留意されたい。解像度は、典型的には、2Dルーマおよび/もしくはクロマチャネルのxy方向に沿ったサンプルの数によって、または1つの瞬間におけるチャネル内のサンプルの総数(ピクチャ内のサンプルの総数)によって与えられる。
ルーマダウンサンプリングおよび/またはクロマアップサンプリングの前に、ルーマ成分および/またはクロマ成分の解像度は、例えばメモリまたはストレージから取得されてもよく、解像度はエンコードされるべきピクチャ部分と共に記憶されていてもよい。ピクチャ部分は、ピクチャの一部であってもよいし、ピクチャ全体であってもよい。よって、ピクチャ部分は、ルーマの1つまたは複数のサンプルおよびクロマの1つまたは複数のサンプルを含んでいてもよい。いくつかの実施形態では、ピクチャ部分は、ピクチャを形成する複数のピクチャ部分のうちの1つでありうる。これらは、ピクチャをピクチャ部分に細分することによって取得されうる。一般に、ピクチャ部分は、同じサイズを有してもよいし、異なるサイズ(次元)を有してもよい。
ピクチャは、ビデオ(動画)の一部であってもよい。それぞれのチャネルの解像度は、サンプルの数として提供されうる。代替的に、チャネル解像度は、ピクチャのサイズ、すなわち前記ピクチャのすべてのサンプルに対する比として提供されてもよい。
図31の方法は、選択されたピクチャ処理に従ってピクチャ部分を処理するステップ3120をさらに含む。言い換えれば、選択されたピクチャ処理は、ルーマダウンサンプリングまたはクロマアップサンプリングの一方でありうる。さらに、方法は、選択されたピクチャ処理に従ってビットストリームを生成するステップ3130であって、生成することが、処理されたピクチャ部分をエンコードすることを含む、ステップを含む。ピクチャ部分のエンコーディングは、オートエンコーダによって、例えば変分オートエンコーダVAEによって、または別のタイプのオートエンコーダによって行われうる。VAEは、ピクチャのエンコーディングおよびデコーディングに関連するタスクを効率的に行うための分野で公知であり、必要とされるビットレートと再構成ピクチャの品質との間の良好な妥協を有する。
ルーマダウンサンプリングおよびクロマアップサンプリングの一方を選択するピクチャ処理は、いずれの場合も、等しい解像度(例えば、等しい次元)を有するサイズ変更されたルーマおよびクロマ成分を提供する。よって、選択されたピクチャ処理にかかわらず、等サイズのルーマ-クロマチャネルは、例えばVAEなど、ANNフレームワークなどの共通フレームワーク内で取り扱われうる。
これは、特に、YUV422、YUV420などのサブサンプリングされたクロマフォーマットを含む。カラーフォーマットはまた、チャネルのいずれかが異なるサイズを有しうる任意の他のルーマ-クロマフォーマットも含みうる。次いで、図2に示されるVAEのエンコーダ部分は、図2を参照して前述されたような方式で、それぞれの等サイズの3チャネル入力を処理しうる。さらに、ピクチャ処理の選択は、ルーマダウンサンプリングとクロマアップサンプリングとを適応的に切り替えることを可能にする。よって、低解像度または高解像度のピクチャ処理が選択されうる。
図17は、YUV420カラーフォーマットの例でエンコーダ側を例示しており、その場合、クロマ入力U、Vは、ルーマ成分Yよりも低い解像度を有する。図15に示されるように、エンコーディング側では、YUV入力はサイズ等化処理を受ける。これは、一方では、図17の上の分岐に示されるようなルーマ成分のダウンサンプリング1710を含む。この例の出力は、同じサイズを有する3つのYUV成分である。ここでは、同じサイズは、クロマ成分UおよびVのサイズ(次元)を指す。他方、クロマ成分は、図17の下の分岐で行われるサイズ等化処理を介してアップサンプリングされる1720。この場合もやはり、出力は、同じサイズを有する3つのYUV成分である。ここでは、同じサイズはルーマ成分を指す。上の分岐および下の分岐のサイズ等化されたYUVを、例えばVAEによってエンコードした後、コスト関数に関するコストが決定される。これは、例えば、レート歪み最適化(RDO)1730に基づくものであってもよい。サンプリングモード(すなわち、クロマアップサンプリングまたはルーマダウンサンプリング)のどちらが最終的に使用されるかは、低コストを提供するのが上の分岐の処理かそれとも下の分岐の処理かに依存する。図17の例では、最低コストのサンプリングモードは、フラグ(インジケータ)によって示され、ビットストリームにエンコードされるか、またはデコーダに別々にシグナリングされる。コストに基づいてサンプリングモードを選択する方法の様々な手段は、以下で詳細に論じられる。
RDOでは、レートと歪みの加重和が最適化される。しかしながら、本開示は、レートおよび開示に基づくコスト最小化に限定されない。例えば、レートおよび/または歪みに加えて、またはその代わりに、コスト関数において複雑度が考慮されてもよい。上記のものの代わりに、他のコストパラメータが追加または使用されてもよい。
方法の一実装例態では、アップサンプリングおよび/またはダウンサンプリングは訓練されたネットワークによって行われる。
実施形態1で既に述べられたように、エンコーディング側の訓練されたネットワークは、ダウンサンプリングまたはアップサンプリングに適した任意の種類のネットワークであってもよい。これは、例えば、ニューラルネットワーク、畳み込みニューラルネットワーク(CNN)などといった人工ニューラルネットワーク(ANN)を含む。ルーマダウンサンプリングおよび/またはクロマアップサンプリングに使用される訓練されたネットワークは、両方のネットワークが、出力として、クロマチャネルの解像度と一致した(ルーマダウンサンプリング1710)またはルーマチャネルと一致した(クロマアップサンプリング1720)解像度を有するサイズ変更された色(ルーマ、クロマ)成分を提供するので、サイズ等化ネットワークとも呼ばれうる。言い換えれば、サイズ等化ネットワークによる処理の後、出力されたY、U、およびVチャネルは同じ解像度(すなわち、サイズ)を有する。
図19および図20は、YUV420カラーフォーマットの場合のエンコーダ側のサイズ等化ネットワークの実装例を示している。図19は、ルーマダウンサンプリングを行うサイズ等化ネットワーク(上の分岐)を示しており、図20は、2つのクロマUおよびVのアップサンプリングを行うサイズ等化ネットワークを示している。この例では、それぞれの層は、畳み込みニューラルネットワーク(CNN)に属する。
図19および図20に示される畳み込みネットワーク層は、実施形態1(例えば、図5~図8)と同様に定義される。要約すると、以下の通りである。
・Conv N×K×K:K×K個の畳み込みカーネルを有し、Kが正の整数である、畳み込みネットワーク層を表す。Kの典型的な数は3または5である。しかしながら、Kは、これらの数に限定されず、別の正の整数に設定されてもよい。特に、2以上のKの値が可能である。Nは正の整数であり、畳み込みニューラルネットワークの出力チャネルの数を表す。
・Act.:非線形活性化関数、例えば、前述のReLUやGDNでありうる活性化層を指す。
・Conv N×K×K/2↑:Conv N×K×Kと同じものを表すが、この層は、出力を水平方向と垂直方向の両方に係数2でさらにアップサンプリング(アップコンバート)する。これは、「2」および上矢印によって示されている。
・Conv. 2×K×K/2↓:Conv N×K×Kと同じものを表すが、出力を水平方向と垂直方向の両方に係数2でさらにダウンサンプリング(ダウンコンバート)する。これは、「2」および下矢印によって示されている。
・Conv. N×K×K, Act:畳み込み層+活性化層を表す。
図19および図20に示されるように、カラーフォーマットは、エンコードされるべきピクチャ部分についてYUV420である。これは、ルーマサイズがw×hであり、クロマサイズがw/2×h/2であることを意味する。しかしながら、当業者には明らかなように、YUV422などといった他のフォーマット(クロマサブサンプリングのタイプ)も実行可能である。
ルーマ処理-図19のルーマ処理のためのサイズ等化ネットワークは、K×K個のカーネルおよび出力としてのN個のチャネルを有する第1の層Conv. N×K×K/2↓を備える。この層は、ルーマ成分を水平方向と垂直方向の両方に係数2でダウンサンプリングする。この後に、活性化層のシーケンスAct.および活性化を有する畳み込み層Conv. N×K×K, Act.が続く。サイズ等化ネットワークは、畳み込み層Conv. 1×K×Kである最後の層によって終端され、よって、出力として1つのチャネル、すなわちダウンサンプリングされたルーマ成分Yを有する。ここで、ルーマ成分は、クロマ成分UおよびVと同じサイズ(解像度)を有するようにサイズ変更されている。この処理は、図17の上の分岐(1710)で行われる。
クロマ処理-図20のクロマ成分処理のためのサイズ等化ネットワークは、K×K個のカーネルおよび出力としてのN個のチャネルを有する第1の層Conv N×K×K/2↑を備える。この層は、2つのクロマ成分UおよびVを水平方向と垂直方向の両方に係数2でアップサンプリングする。この後に、活性化層のシーケンスAct.および活性化を有する畳み込み層Conv. N×K×K, Act.が続く。サイズ等化ネットワークは、畳み込み層Conv. 2×K×Kである最後の層によって終端され、よって、出力として2つのチャネル、すなわちアップサンプリングされたクロマ成分UおよびVを有する。ここで、クロマ成分UおよびVは、ルーマ成分Yと同じサイズ(解像度)を有するようにサイズ変更されている。この処理は、図17の下の分岐(1720)で行われる。この場合、ルーマ成分は、第1の実施形態で論じられたすべての利点を伴って保存されることに留意されたい。
図19および図20から明らかなように、いずれの場合も、それぞれの畳み込み層Conv. N×K×K/2↓およびConv N×K×K/2↑の出力はN個のチャネルを有し、活性化層(すなわち、非線形活性化関数、例えばReLUやGDN)でさらに処理される。サイズ変更されたルーマおよび(1つまたは複数の)クロマは、それぞれ中間ルーマおよび(1つまたは複数の)中間クロマとも呼ばれうる。それぞれの等サイズの出力ルーマ-クロマ(1つまたは複数)は、次いで、上の分岐および下の分岐のそれぞれのVAEへの入力として使用される。上の分岐および下の分岐のVAEは、結果として、コーディングされたビットストリームを出力し、これは次いで品質(損失)を取得するように再構成されうる。品質(歪みに反比例する)およびレート(例えば、ビットストリーム内のビットの量によって測定される)は、次いで、RDO1730で、RDOの後に続くVAEが行われうる適切な処理を選択するために使用されうる。
上記のサイズ等化処理は、YUV420のカラーフォーマットに限定されず、YUV422などといった他のサブサンプリングされたクロマフォーマットに適用されてもよい。
第1の実施形態では、エンコーダ側のクロマアップサンプリングがサイド情報としてルーマ成分を利用しうることが説明された。これは、第2の実施形態の(1つまたは複数の)クロマ成分の上記の処理と組み合わされてもよい。さらに、同じ手順は、クロマがサイド情報として使用されるという点においてエンコーダ側のルーマのダウンサンプリングにも適用されうる。
図23は、これをさらに、図17と同様のエンコーダ構造を示すエンコーダ側について、ピクチャ部分のピクチャ処理の選択がエンコードされたビットストリームにエンコードされたフラグ(インジケータ)によってシグナリングされうる例示的な場合について例示している。図23が示すように、図17の概略図との違いは、ルーマダウンサンプリング(上の分岐)がクロマ成分UおよびVに関する情報を利用することにある。同様に、(1つまたは複数の)クロマアップサンプリング(下の分岐)は、ルーマYに関する情報を利用する。そうでない場合、ルーマおよび(1つまたは複数の)クロマのそれぞれのサンプリング処理は、図17を参照して上記で論じられたのと同じ方式で行われる。
よって、ルーマダウンサンプリングおよび/またはクロマアップサンプリングが行われるかどうかにかかわらず、いずれの場合も、クロス情報がそれぞれのサンプリングに使用される。これは、ルーマと(1つまたは複数の)クロマとの間の相関が保存されることを意味する。
図25および図26は、それぞれ、エンコーダ側のルーマダウンサンプリングおよびクロマアップサンプリングのためのサイズ等化ネットワークの例示的実装形態を示している。図25および図26に示されるように、それぞれのサイズ等化ネットワークは、畳み込み層および活性化層が図19および図20に示されるものとしてどのように配置されるかの順序に関して同じ設計を有する。違いは、図25の(1つもしくは複数の)クロマまたは図26のルーマをそれぞれのサイズ等化ネットワークに提供するように追加の層が追加される点にある。図25の場合、前記追加された層は、K×K個のカーネルおよびN個のチャネルを出力として有する、クロマ成分のための畳み込み層Conv N×K×K/1↑であり、これは活性化層Act.に入力される。図26の場合、前記追加された層は、K×K個のカーネルおよびN個のチャネルを出力として有するルーマのための畳み込み層Conv. N×K×K/1↓であり、これは活性化層Act.に入力される。図25および図26に示される例において、それぞれの出力信号は、それぞれ、最初の畳み込み層Conv. N×K×K/2↓およびConv N×K×K/2↑の後にサイズ等化ネットワークの活性化層Act.の出力に追加される。
例えば、それぞれの加算は、(1つまたは複数の)クロマ成分とダウンサンプリングされた(1つまたは複数の)ルーマ成分とを要素ごとに加算すること、および(1つまたは複数の)ルーマ成分とアップサンプリングされた(1つまたは複数の)クロマ成分とをそれぞれ要素ごとに加算することであってもよい。よって、ルーマをサイド情報として使用するクロマアップサンプリングおよびクロマをサイド情報として使用するルーマダウンサンプリングが効率的に行われうる。しかも、元々より高い解像度を有するルーマに存在しうる詳細が、元々サブサンプリングされたクロマ内に復元されることができる。同様に、元々より低い解像度を有するクロマに存在しうる詳細が、元のルーマ内に復元されることができる。
ルーマ成分とクロマ成分の結合(組み合わせ)処理(ルーマダウンサンプリング処理および/またはクロマアップサンプリング処理の両方での)は、加算演算に限定されなくてもよい。代替的に、クロマとルーマとは連結されてもよい。これは、典型的には、ルーマおよびクロマ成分の各々よりも大きいサイズを有する連結されたルーマ-クロマ合成をもたらす。他の種類の組み合わせ操作が代わりに使用され、かつ/または加算もしくは連結と組み合わされてもよい。それによって、ルーマおよびクロマの情報は、それぞれのサイズ等化ネットワークによってクロマアップサンプリングおよび/またはルーマダウンサンプリングに利用される。
前述のように、ピクチャ処理のどちらがエンコーディング側で行われるかは、様々な方法で決定されうる。これが次に論じられる。
方法の一例示的実装形態では、選択することは、レートおよび歪みのコスト関数の評価を含む。(エンコーディング)方法の一実装形態によれば、選択することは、前記コスト関数に従って、中間のダウンサンプリングされたルーマ成分およびクロマ成分のコストと、それぞれ、ルーマ成分および中間のアップサンプリングされたクロマ成分のコストとを決定することをさらに含む。さらに、選択においては、その決定されたコストがより低いピクチャ部分のピクチャ処理が選択される。よって、コストが最低であるサンプリングモード(すなわち、ルーマダウンサンプリングまたはクロマアップサンプリング)を使用することによって、ルーマ成分およびサブサンプリングされたクロマ成分の全体的なエンコーディングが効率的に行われる。
例えば、コストは、再構成ピクチャ部分と元のピクチャ部分との間の歪みおよびビットレートに関して指定された損失であってもよい。この場合、損失は、以下のように表されうる:
損失=レート+λ歪み
または、
損失=λレート+歪み。
式中、λはラグランジュ乗数を表し、これは事前定義されうる数である。この数は、所望の用途および/または結果に基づいて経験的に決定されてもよい。上記のように、コスト関数の代替パラメータまたは追加パラメータが用いられてもよい。さらに、本開示は必ずしもRDOを含まないことに留意されたい。例えば、選択は、そのような選択のために事前に訓練された、訓練されたネットワーク(例えば、ANN)によって行われてもよい。様々な他の手法も可能でありうる。
選択することは、ルーマ成分をダウンサンプリングし、それによって中間のダウンサンプリングされたルーマ成分を取得することと、クロマ成分をアップサンプリングし、それによって中間のアップサンプリングされたクロマ成分を取得することとをさらに含みうる。図17では、RDO1730の後、ルーマダウンサンプリングまたはクロマアップサンプリングのいずれかの後に、サイズが一致する色成分にVAEが適用される。しかしながら、そうである必要はない。むしろ、VAEを再度用いる代わりに、選択された上(1710)の分岐または下(1720)の分岐のいずれかのVAEによって生成されたビットストリームが取られてもよい。言い換えれば、コーディングされた部分が再利用されてもよく、よって若干の複雑度を軽減する。
図17は3つのVAEを示している。VAEを3回適用することは複雑で時間を要する場合がある。よって、複雑度を低減するために、いくつかの例示的実装形態では、上の分岐および下の分岐におけるVAEは完全なネットワークではない。むしろ、それらは、ビットストリームを実際には生成せず、むしろレートおよび歪みを推定するモデルによって置き換えられてもよい。どの分岐がより良いかが推定/選択された後、RDO1730の後に実際のVAEを用いて、デコーダに送信(伝達)されるビットストリームを生成する。これは、分岐におけるモデルVAEによるレートおよび歪みの推定が、RDOの後に続くVAEよりも速い場合に有利でありうる。エンコーダ側では、両方のケースが可能である(2つのVAE対3つのVAE)。
例示的実装形態のうちの1つでは、コストの決定は、中間のダウンサンプリングされたルーマ成分およびクロマ成分を第1のビットストリームにエンコードすることと、ルーマ成分と中間のアップサンプリングされたクロマ成分とを第2のビットストリームにエンコードすることと、を含む。この後に続いて、前記コスト関数に従って第1のビットストリームおよび第2のビットストリームのコストを決定する。よって、実際のコストは、エンコードされた第1および第2のビットストリームに基づくものであるため、正確に決定されうる。しかしながら、上記のように、本開示は、そのような手法に限定されない。むしろ、ビットストリームへのエンコーディングを行う代わりに、コストは、推定機能によって推定されてもよい。さらに、レートを取得するためのエンコーディングは、ビットストリームを実際に生成することによって行われる必要はない。例えば、コストは、量子化データの数および/またはそれらの分布に関して、またはそのような推定のために訓練された訓練されたネットワークを適用することによって、または任意の考えられる方式によって推定されてもよい。
一実装例によれば、エンコードされたピクチャまたはビデオデータを搬送するためのビットストリームを生成することは、ビットストリームに、選択されたピクチャ処理を示す選択インジケータをエンコードすることを含む。これは、ビットストリームに対して行われたピクチャ処理の低複雑度シグナリングを提供する。例えば、選択インジケータは、1ビットの長さを有していてもよく、一方がルーマダウンサンプリングを表現し、他方がクロマアップサンプリングを表現する2つの値を区別することができてもよい。
これは図17に示されている。前述のように、ルーマ成分およびサブサンプリングされたクロマ成分を有するピクチャ部分に対して、ルーマダウンサンプリング(上の分岐)およびクロマアップサンプリング(下の分岐)のサンプリング処理が行われる。いずれの場合も、等サイズのルーマ-クロマ成分が提供され、例えば、それぞれ、上の分岐および下の分岐のVAEに入力される。両方のVAEは、それぞれのルーマ-クロマ入力に対して、ビットレートおよび歪み(RDO)に基づくものでありうるコストを計算する。どちらのコストが低いかに応じて、それぞれのピクチャ処理が選択される。選択されたピクチャ処理に基づいて、ビットストリームが生成されるが、ビットストリームにインジケータをエンコードしない。前記ピクチャ処理(すなわち、エンコーダ側でのルーマダウンサンプリングまたはクロマアップサンプリング)の選択は、選択インジケータによって示されてもよい。前記インジケータは、例えば、フラグであってもよい。フラグをビットストリームに挿入する(エンコードすることを含みうる)ことによって、エンコーディング側で行われた選択されたピクチャ処理は、ビットストリームにおいてデコーダにシグナリングされうる。次いで、デコーダは、ビットストリームからインジケータを構文解析し、インジケータに基づいてどのピクチャ処理を行うかを決定する。特に、そのような選択インジケータは、第1の値および第2の値を取ることができる。そのような選択インジケータの第1の値は、ルーマがエンコーダにおいてダウンサンプリングされており(1710)、よってデコーダにおいてアップサンプリングされるべきであることを示しうる。そのような選択インジケータの第2の値は、クロマがエンコーダにおいてアップサンプリングされており(1720)、よってデコーダにおいてダウンサンプリングされるべきであることを示しうる。図17において、機能ブロック「アップまたはダウン」1740は、選択インジケータのビットストリームへの挿入を表現している。
代替的に、選択されたピクチャ処理は、ビットストリームにエンコードされた明示的なインジケータ(例えば、1ビットフラグ)なしで示されてもよい。
別の実装例によれば、ビットストリームを生成することは、ビットストリームに、ルーマ成分の幅Wおよび/または高さHの指示をエンコードすることを含む。よって、元のピクチャ部分の幅および高さがエンコーダにシグナリングされうる。そのような指示は、ルーマ成分の解像度を指定しうる。ルーマの解像度とクロマ成分との間の比が知られている場合、クロマ解像度は、シグナリングされたWおよびHに基づいてそれに応じて決定されうる。このシグナリングは、ピクチャまたはビデオコーディングの一部であってもよい。典型的には、エンコードされたピクチャまたはビデオのビットストリームは、ピクチャまたはビデオの次元の指示を含む。
一例示的実装形態が図29に例示されている。図17に例示された例と同様に、ルーマ成分と、ルーマ成分よりも低い解像度のクロマ成分とを有する(よって、ルーマ成分に関して「サブサンプリングされた」)ピクチャ部分について、ルーマダウンサンプリング(上の分岐)2910と、クロマアップサンプリング(下の分岐)2920のサンプリング処理が行われる。上の分岐および下の分岐の等サイズのルーマ-クロマ成分は、それぞれVAEに入力される。両方のVAEは、それぞれのルーマ-クロマ入力に対して、ビットレートおよび歪み(RDO)2930に基づくものでありうるコストを計算する。どちらのコストが低いかに応じて、それぞれのピクチャ処理が選択される。選択されたピクチャ処理に基づいて、ビットストリームが生成される。この例示的実装形態では図17の他に、選択インジケータ(例えば、フラグ)をビットストリームにエンコードしない。次いで、デコーダは、ビットストリームに基づいて、例えばビットストリームにエンコードされたルーマの幅および高さに基づいて、どのピクチャ処理を行うかを決定しうる。代替的または追加的に、例えばコーディング目的のためにビットストリームでシグナリングされたさらなるパラメータが、デコーダにおいて、どの処理(ルーマアップサンプリングまたはクロマダウンサンプリング)が適用されるべきかを導出するために使用されてもよい。そのようなパラメータは、エンコーダおよびデコーダが処理の選択のために一貫してそれらを使用するように、エンコーダおよびデコーダにおいて事前定義され知られていてもよい。
本開示の一実施形態によれば、ビットストリームからピクチャ部分を再構成するための方法が提供される。そのような方法は、デコーダ側で適用されうる。実施形態1を参照して上述されたように、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含む。ピクチャ部分は、画像および/またはピクチャのサンプルの数を指し、前記数は、前記画像/ピクチャのサンプルの総数よりも小さい。ピクチャ部分はまた、画像またはピクチャのすべてのサンプルを含んでいてもよい。ピクチャは、静止ピクチャであってもよいし、ビデオ(ピクチャのシーケンス)であってもよい。ピクチャ部分は、1つまたは複数のクロマ成分を含んでいてもよい。例えば、ルーマ-クロマフォーマットYUV420のピクチャ部分は、2つのクロマ成分UおよびV(クロマチャネルとも呼ばれる)を含む。クロマ解像度は、(ピクチャ部分またはピクチャ全体で)ルーマチャネルの解像度よりも低くてもよい。ピクチャ部分のルーマおよびクロマ成分は、それらが同じピクチャ領域を指すため、典型的には空間的に相関している。
方法は、図32に例示されており、ビットストリームから同じ解像度を有するルーマ成分およびクロマ成分をデコードするステップS3210を含む。上記のように、解像度は、2次元(2D)ルーマチャネルのサイズ(すなわち、次元)によって与えられうる。ビットストリームからの処理されたピクチャ部分のデコーディングは、変分オートエンコーダ(VAE)などのオートエンコーダによって行われうる。VAEは、画像またはピクチャのエンコーディングおよびデコーディングに関連するタスクを非常に効率的に行うための分野で公知であり、必要とされるビットレートと再構成ピクチャの品質との間の良好な妥協を有する。しかしながら、本開示は、オートエンコーダの適用に限定されない。一般に、例えば、デコーダの動作または機能の一部のみに訓練されたネットワーク(例えば、ANNや任意のML/DLを基にしたネットワーク)を使用するエンコーダを含む、任意のエンコーダが適用されうる。
方法は、ピクチャ処理として、
デコードされたルーマ成分をアップサンプリングし、前記デコードされたクロマ成分およびアップサンプリングされたルーマ成分を含む再構成ピクチャ部分を取得するステップ、ならびに
デコードされたクロマ成分をダウンサンプリングし、前記デコードされたルーマ成分およびダウンサンプリングされたクロマ成分を含む再構成ピクチャ部分を取得するステップ
の一方をビットストリームに基づいて決定するステップS3220をさらに含む。
決定は、ビットストリームから、適用されるべき処理を示すための選択インジケータを構文解析することによって行われうる。しかしながら、上記のように、いくつかの実施形態では、選択指示は明示的にシグナリングされる必要はない。むしろ、エンコードされたピクチャまたはビデオデータに関連するビットストリーム内の他のパラメータから導出されてもよい。
さらに、方法は、決定されたピクチャ処理に従って前記ピクチャ部分を取得するステップS3230を含む。よって、ビットストリームにエンコードされたピクチャ部分は、エンコードされたルーマ成分とクロマ成分とが同じサイズを有するので、図2に示されるVAEなどの同じタイプの訓練されたネットワークのデコーダ部分によって処理されうる。さらに、ルーマアップサンプリングおよびクロマダウンサンプリングのうちの一方のピクチャ処理決定は、いずれの場合も、それらがエンコーディングのために入力された成分(元のピクチャ成分)に対応する異なるサイズを有するようにサイズ変更されたルーマ成分またはクロマ成分を提供する。これは、ピクチャ部分が、クロマがクロマよりも低い解像度を有する、その元のカラーフォーマットに再構成されることを意味する。よって、決定されたピクチャ処理にかかわらず、エンコードされた等サイズのルーマ-クロマチャネルは、共通のVAEフレームワーク内で取り扱われうる。さらに、ピクチャ処理の決定は、ルーマアップサンプリングとクロマダウンサンプリングとを適応的に切り替えることを可能にする。これは、いずれの場合も、元のカラーフォーマットを有するピクチャ部分が再構成されることを保証する。よって、適応的切り替えは、例えば、RDOなどといったいくつかの最適化基準に基づく、低解像度または高解像度ピクチャ処理の選択を可能にする。
図18は、デコーダ側とその動作を例示している。サンプリングモードがビットストリームにエンコードされたフラグ(インジケータ)によって示される図17の例を参照すると、フラグはデコーダ側でビットストリームから構文解析される。機能ブロック1840内のフラグの値(すなわち、それがエンコーダ側でのダウンコンバージョン(ルーマ)を示すか、それともアップコンバージョン(クロマ)を示すか)に応じて、それぞれの上の分岐および下の分岐において、ルーマがアップコンバートされるか1810、またはクロマがダウンコンバートされる1820。これは、フラグによる指示に応じて、入力ビットストリームのルーマ-クロマ成分が、元々コーディングされたピクチャの(1つもしくは複数の)クロマのサイズまたはルーマのサイズのいずれかを有することを意味する。どちらの場合も、それぞれのアップサンプリング処理および/またはダウンサンプリング処理は、サイズ変換処理によって行われてもよく、出力として、その元のフォーマットの再構成フレームを提供する。しかしながら、図18に示されるように、上の分岐1810は、ルーマアップサンプリングを行い、下の分岐は、クロマ成分(Uおよび/またはV)ダウンサンプリング1820を行う。それぞれのサイズ変換は、対応するサイズ変換ネットワークによって行われうる。図17の場合と同様に、エンコードされたフラグによるサンプリングモードの指示は、デコーダが元のピクチャ部分の再構成のためにどのサンプリングモードを行うかを決定することを可能にする一例である。デコーダ側でどのサンプリングモードを行うかを決定する方法の様々な手段は、以下で論じられるように他の方法によって行われてもよい。さらに、これらの例では、サイズ変更された色成分(チャネル)は、元々コーディングされたピクチャのサイズと一致することに留意されたい。しかしながら、これは本開示を限定するものではない。いくつかの用途では、元々コーディングされたピクチャの次元とは異なる次元を有する色成分を提供することが有益な場合もある。
一実装例では、アップサンプリングおよび/またはダウンサンプリングは訓練されたネットワークによって行われる。エンコーディング側の訓練されたネットワークは、ダウンサンプリングまたはアップサンプリングに適した任意の種類のネットワークであってもよい。これは、例えば、ニューラルネットワーク、畳み込みニューラルネットワーク(CNN)などといった人工ニューラルネットワーク(ANN)を含む。デコーダにおける訓練されたネットワークは、所望の解像度に応じてそれに入力されたチャネルのサイズを適合させる任意のサイズ変更ネットワークであってもよい。その結果は、元々エンコードされたピクチャの次元や他の所望の次元など、互いに異なる次元(サイズ)を有するチャネルになりうる。
図21および図22は、YUV444カラーフォーマットの場合のデコーダ側のサイズ変換ネットワークの実装例を示しており、ルーマ成分とクロマ成分UおよびVとは同じサイズを有する。図21は、ルーマアップサンプリングを行うサイズ変換ネットワーク(1810に対応する上の分岐)を示している。図22(1820に対応する)は、2つのクロマUおよびVのダウンサンプリングを行うサイズ変換ネットワークを示している。この例では、それぞれの層は、畳み込みニューラルネットワークの層として見られることができる。
図5を参照すると、図21および図22に示される畳み込みネットワーク層が同様に定義されている。それに対応して、同じ用語および/または表記法がここでも適用される。図21および図22に示されるように、入力カラーフォーマットは、ビットストリームからデコードされるべきピクチャ部分についてYUV444である。これは、ビットストリームからデコードされるルーマ成分とクロマ成分とが同じサイズ(すなわち、解像度)を有することを意味する。
ルーマ処理(図18の上の分岐1810および図21):ルーマ処理のためのサイズ変換ネットワークは、畳み込み層+活性化層の対Conv. N×K×K, Act.のシーケンスからなる。サイズ変換ネットワークは、畳み込み層Conv 1×K×K/2↑である最後の層によって終端され、これは、ルーマ成分を水平方向と垂直方向の両方に係数2でアップサンプリングする。出力は1つのチャネル、すなわち、元のルーマと同じサイズを有する再構成ルーマ成分である。
クロマ処理(図18の下の分岐1820および図22):クロマ成分処理のためのサイズ変換ネットワークは、同様に、畳み込み層+活性化層Conv. N×K×K. Actからなる。サイズ変換ネットワークは、畳み込み層Conv. 2×K×K/2↓である最後の層によって終端され、2つのクロマ成分を水平方向と垂直方向の両方に係数2でダウンサンプリングする。出力は2つのチャネル、すなわち、元のクロマ成分と同じサイズを有する再構成された2つのクロマ成分である。この場合、ルーマ成分は、第1の実施形態で論じられたすべての利点を伴って保存されうることに留意されたい。
デコーディング側の(1つまたは複数の)サイズ変換ネットワークへの入力ルーマ-クロマ成分は、同じ解像度(すなわち、サイズ)を有するので、それらは、同じ入力サイズを有するANNアーキテクチャなどの既存の同じフレームワーク内で効率的に処理されうる。よって、(1つまたは複数の)サブサンプリングされたクロマを有する任意のカラーフォーマットを有するピクチャ部分が、ルーマに適用されるのと同じネットワークアーキテクチャを使用して再構成されうる。よって、異なる成分(チャネル)の処理において成分間相関情報を保存することも可能にする。
第1の実施形態では、デコーダ側のクロマダウンサンプリングがサイド情報としてルーマ成分を利用しうることが説明された。これは、第2の実施形態の(1つまたは複数の)クロマ成分の上記の処理と組み合わされてもよい。さらに、同じ手順は、クロマがサイド情報として使用されるという点においてデコーダ側のルーマのアップサンプリングにも適用されうる。
図24は、これをさらに、図18と同様のデコーダ構造を示すデコーダ側について、ピクチャ部分のピクチャ処理の選択がエンコードされたビットストリームにエンコードされたフラグ(インジケータ)によってシグナリングされうる例示的な場合について例示している。図24が示すように、図18の概略図との違いは、ルーマアップサンプリング(上の分岐)がクロマ成分UおよびVに関する情報を利用することにある。同様に、(1つまたは複数の)クロマダウンサンプリング(下の分岐)は、ルーマYに関する情報を利用する。そうでない場合、ルーマおよび(1つまたは複数の)クロマのそれぞれのサンプリング処理は、図18を参照して上記で論じられたのと同じ方式で行われる。
よって、ルーマアップサンプリングおよび/またはクロマダウンサンプリングが行われるかどうかにかかわらず、いずれの場合も、クロス情報がそれぞれのサンプリングに使用される。これは、ルーマと(1つまたは複数の)クロマとの間の相関がチャネルを再構成するために利用されうることを意味する。同じことは、他の色空間のチャネル、または一般に、深度や動きやピクチャに関連する他の追加情報などのカラーチャネルに限定されない任意のチャネルに適用されうる。
図27および図28は、それぞれ、デコーダ側のルーマアップサンプリングおよびクロマダウンサンプリングのためのサイズ変換ネットワークの例示的実装形態を示している。図27および図28に示されるように、サイズ変換ネットワークは、畳み込み層および活性化層が図21および図22に示されるものとしてどのように配置されるかの順序に関して同じ設計を有する。違いは、図27の場合には、クロマ成分UおよびVがダウンサンプリングされたルーマと一緒に最初の畳み込み層Conv. N×K×K, Act.に直接入力されることにある。同様に、図28の場合には、ルーマは、アップサンプリングされたクロマ成分UおよびVと一緒に最初の畳み込み層Conv. N×K×K, Actに直接入力される。
これは、デコーダ側では、サイズ変換ネットワークの最初の処理層は、エンコーダ側とは対照的に加算演算を行う必要がない場合があることを意味し、そのような種類の演算は、図25および図26に示されるように行われうる。エンコーダのサイズ等化ネットワークにおける組み合わせ(結合または結合処理)は、成分間相関を利用するのに役立った。そのような処理をデコーダ側で反転する必要はなく、というのは、図24に例示されるように、ルーマおよびクロマ成分を含むデコーダのサイズ変換ネットワークの最初の層への入力は、既にエンコーダで取得された同じサイズを有するからである。
前述のように、ピクチャ処理のどちらがデコーディング側で行われるかは、様々な方法で決定されうる。これが次に論じられる。
一例示的実装形態では、適用されるべき処理の決定は、ビットストリームから、ピクチャ処理を示す選択インジケータをデコードすることと、前記ピクチャ処理として、選択インジケータによって示される処理を決定することとをさらに含む。これは、ピクチャ処理の効率的なシグナリングを可能にする。それに対応して、デコーディング側は、ビットストリームに含まれる単純なインジケータに基づいて、エンコーダ側でどのピクチャ処理が使用されたか(すなわち、ルーマダウンサンプリングまたはクロマアップサンプリング)を迅速に決定しうる。選択インジケータは、エンコーダ側を参照して上記で説明されている。上記のように、これは、少なくとも、ルーマのアップサンプリング(デコーダ側における、これはエンコーダ側でのルーマのダウンサンプリングに対応する)を示す第1の値、および(1つまたは複数の)クロマのダウンサンプリング(デコーダ側における、エンコーダ側での(1つまたは複数の)クロマのアップサンプリングに対応する)を示す第2の値を取ることができるインジケータとすることができる。選択インジケータは、一般に、3つ以上の値のうちの1つを取りうることに留意されたい。例えば、選択インジケータは、サイズ変更が行われないことを示す第3の値および/または2つ以上の成分がサイズ変更されることを示す第4の値を取ってもよく、またはサイズ変更がどのように(どの割り当てだけ、またはどの所望の解像度に)行われるべきかをさらに指定する。これはエンコーダ側とデコーダ側の両方に当てはまり、というのは、エンコーダとデコーダとは、選択インジケータの同じ理解(解釈またはセマンティクス)を有するはずだからである。他方、2つの値(第1の値と第2の値)の一方のみを取ることができる1ビットのフラグ(インジケータ)を提供することは、高い追加のシグナリングオーバーヘッドを導入しないので、効率的でありうる。
デコーダ側の動作が図18に例示されている。前述のように、デコーダは、同じサイズのルーマおよびクロマ成分を有するビットストリームを受信する。これは、エンコーダ側でのピクチャ処理の結果である。選択インジケータ(フラグ、例えばRDO)がビットストリームにエンコードされている場合、デコーダは、ビットストリームを構文解析し、選択インジケータに基づいてピクチャ処理のどちらを行うかを決定する。次いで、デコーダは、ルーマがエンコーダ側でダウンサンプリングを受けていることをフラグが示す場合、ルーマ成分のアップサンプリングを行う。これに対して、デコーダは、クロマ成分がエンコーダ側でアップサンプリングを受けていることをフラグが示す場合、クロマ成分のダウンサンプリングを行う。いずれの場合も、元のサイズのピクチャ部分が再構成される。
決定することはいくつかの実施形態では、(他の例示的実装形態に加えて、またはその代替として)ビットストリームからピクチャ部分のルーマ成分の幅Wおよび/または高さHをデコードすることを含みうる。これは、ピクチャ部分のルーマチャネルの幅および高さに基づいてピクチャ処理を決定することを可能にする。言い換えれば、ピクチャ部分の重要な情報を搬送するチャネルが、前記決定のための参照として使用される。
さらに、一例示的実装形態によれば、決定することは、幅Wおよび高さHがデコードされたルーマ成分のそれぞれの幅
および高さ
と同じであるかどうかを決定することをさらに含んでいてもよい。決定の結果として、WおよびHが
および
と同じである場合、デコードされたクロマ成分はダウンサンプリングされる。ここで、「同じ」とは、WおよびHとそれぞれ
および
とが同じ次元、例えば幅方向(すなわち、xに沿って水平方向に)と高さ方向(すなわち、yに沿って垂直方向に)とに同じサンプルの数を有することを意味する。言い換えれば、WおよびHの各々は、それぞれの対応するもの
および
と一致する。この事例では、クロマはエンコーディング側でアップサンプリングされている(高解像度結果)。しかしながら、上記のように、一致は、エンコーダでルーマをダウンサンプリングすることによっても達成されうる。次いで、デコーダは、逆の操作を行い、例えば、エンコーディング前にピクチャの元の解像度を取得するためにルーマをアップサンプリングするか、またはクロマをダウンサンプリングする。幅および高さから適用されるべき処理を導出することによって、明示的な選択インジケータを含めないことによるレートの節約が可能である。ピクチャまたはピクチャ部分の幅および高さは、典型的には、ピクチャまたはピクチャ部分のエンコーディング/デコーディングを構成するためのパラメータセット内で既にシグナリングされている。
エンコーディング側およびデコーディング側のピクチャ部分のこのピクチャ処理、すなわちクロマアップサンプリング(エンコーダ)およびクロマダウンサンプリング(デコーダ)は、サンプリング処理(アップ/ダウン)に関する限り、第1の実施形態の処理に対応することに留意されたい。
上記の例では、元のピクチャのWおよびHがそれぞれ、ビットストリームからデコードされたピクチャの
および
と一致しなかった場合、エンコーダはクロマをアップサンプリングしたと仮定されたので、クロマはダウンサンプリングされた。これはデフォルト機能であってもよい。
しかしながら、本開示はこれに限定されない。デフォルト機能は、代わりに、エンコーダがルーマをダウンサンプリングしたと仮定して、デコーダ側でルーマをアップサンプリングすることを含んでいてもよい。
それに対応して、決定の結果として、WおよびHのいずれかが
および/または
と同じでない場合、デコードされたルーマ成分はアップサンプリングされる。ここで、「同じでない」とは、Wおよび/またはHとそれぞれ
および
とが幅方向(すなわち、xに沿って水平方向に)および/または高さ方向(すなわち、yに沿って垂直方向に)に同じサンプルの数を有さないことを意味する。言い換えれば、WおよびHのいずれも、それぞれの対応するもの
および/または
と一致しない。この場合、ルーマはエンコーディング側でダウンサンプリングされている(低解像度結果)。
よって、ピクチャ処理は、ルーマのWおよびHとデコードされたルーマのそれぞれの幅
および高さ
との単純な比較によってエンコーディング側で容易に決定されうる。(デコードされた)クロマに関する情報は使用されない場合がある。これは、ピクチャ処理の決定におけるオーバーヘッドを低減させる。
上記のクロマのダウンサンプリングまたはルーマのアップサンプリングは、どちらも、デコーダで適用可能でありうることに留意されたい。例えば、デコーダおよびエンコーダは、2つの処理タイプのうちのどちらが使用されるかがそれに従って判断される規則を有していてもよい。規則は、幅および高さ、ならびに/または品質パラメータや他のパラメータなどのいくつかの構文要素(エンコーディングパラメータ)に依存するいくつかの条件に基づく判断でありうる。
別の例示的実装形態では、適用されるべき処理を決定することは、ビットストリームのサイズSを決定することを含む。サイズSは、ビット、バイト、ワードなどといった任意の単位であってもよい。決定することは、ビットストリームから、ピクチャ部分の潜在表現
をさらにデコードすることを含み、潜在表現は幅
および/または高さ
を有する。さらに、ピクチャ処理は、ビットストリームのサイズと幅
および高さ
との関数と、所定の閾値Tとの比較に基づいて決定される。これは、潜在表現
に基づいたピクチャ処理の決定を可能にする。潜在表現は、特徴マップに基づくものであってもよい。よって、ピクチャ処理の決定は、潜在表現を特徴マップと共に利用するので、より正確である。一実装例によれば、決定することは、サイズSと
との比が所定の閾値以上であるかどうかを決定することを含む(式中、「*」は乗算を指す)。決定の結果として、比が所定の閾値以上である場合、デコードされたクロマ成分はダウンサンプリングされる。この場合、クロマはエンコーディング側でアップサンプリングされている(高解像度結果)。エンコーディング側およびデコーディング側のピクチャ部分のこのピクチャ処理、すなわちクロマアップサンプリング(エンコーダ)およびクロマダウンサンプリング(デコーダ)は、サンプリング処理(アップ/ダウン)に関する限り、第1の実施形態の処理に対応しうることに留意されたい。
適用されるべき処理の決定の結果として、比が所定の閾値よりも小さい場合、一例示的実装形態では、デコードされたルーマ成分がアップサンプリングされる。この場合、ルーマはエンコーディング側でダウンサンプリングされている(低解像度結果)。
よって、ピクチャ処理は、ビットストリームサイズと潜在空間のサイズ
との比を単純に閾値処理することによってエンコーディング側で容易に決定されうる。これは、ビットストリームおよび潜在空間のみが使用されるため、ピクチャ処理の決定をより効率的かつ高速にする。これは、ピクチャ処理の決定におけるオーバーヘッドをさらに低減させる。
これは図30に示されている。この場合、デコーダは、ビットストリームからどのピクチャ処理を行うかを決定する。前記決定は、例えば、ビットストリームを解析する判断モジュールによって行われてもよい。例えば、ピクチャ部分のルーマ成分の幅Wおよび高さHがビットストリームにエンコードされている場合、デコーダはビットストリームからWおよびHを構文解析する。さらに、ルーマおよびクロマ成分がビットストリームからデコードされる。よって、デコードされたルーマ成分の幅
および高さ
は知られているか、またはデコーダ側で決定されうる。これは、例えば、判断モジュールによっても行われうる。次いで、前記モジュールは、(例えば、サンプルごとに)WおよびHをデコードされたルーマ成分のそれぞれの幅
および高さ
と比較する。
および
の場合、デコードされたクロマ成分はダウンサンプリングされる。そうではなく、これらの等化のいずれかが真でない場合、デコードされたルーマ成分はアップサンプリングされる。
代替的または追加的に、決定モジュールは、ビットストリームのサイズSおよび潜在空間表現
に基づいてピクチャ処理を決定していてもよい。次いで、判断モジュールは、比較関数を所定の閾値と併せて使用して、サイズSを幅
および/高さ
と比較しうる。例えば、比較関数は、比
を取ることと、Rが所定の閾値以上であるかどうか決定することとにあってもよい。
そうである場合、すなわちR>=Tの場合、デコードされたクロマ成分はダウンサンプリングされる。この場合、クロマはエンコーディング側でアップサンプリングされている(高解像度結果)。そうでない場合(すなわち、R>Tの場合)、デコードされたルーマ成分がアップサンプリングされる。この場合、ルーマはエンコーディング側でダウンサンプリングされている(低解像度結果)。一実装例によれば、決定することは、ビットストリームから潜在表現
をデコードすることを含む。さらに、ピクチャ処理は、デコードされた潜在表現を供給された分類ニューラルネットワークの出力として決定される、出力は、第1のクラスおよび第2のクラスの一方であり、第1のクラスは、デコードされたルーマ成分のアップサンプリングを示し、第2のクラスは、デコードされたクロマ成分のダウンサンプリングを示す。これは、分類を用いてニューラルネットワークを使用することによって柔軟にピクチャ処理決定を行うことを可能にする。さらに、これは、前記決定のための特徴の分類と組み合わされてもよく、よって、ピクチャ処理をより正確に決定することを可能にする。さらに、デコーダ側でのアップサンプリングまたはダウンサンプリングは、ビットストリームからサイド情報を構文解析せずに行われてもよく、これはビットレートコストを削減する。
そのようなニューラルネットワークを基にした決定はまた、判断モジュールによって行われてもよく、その場合、前記モジュールは分類結果に基づいてピクチャ処理を判断する。分類は、例えば、入力として再構成された潜在空間
を使用する残差ニューラルネットワーク(ResNet)によって行われてもよい。サンプリング処理、すなわち、エンコーダ側のクロマアップサンプリングおよびデコーダ側のクロマダウンサンプリングは、第1の実施形態で既に論じられたのと同様に行われてもよい。これは完全性のために繰り返される。
例えば、クロマアップサンプリング(エンコーディング側)は、クロマ成分のサンプルのn本のラインごとの後に、サンプルのラインを挿入することを含んでいてもよい。ここで、ラインは行および/または列を指し、nは1以上の整数である。これは、例えば、各1つ(n=1)または2つ(n=2)の行および/または列の後に、前記ラインサンプルが挿入されうることを意味する。これは、特定の行および/または列でラインサンプルを挿入することによるクロマアップサンプリングのさらなる適応を可能にする。同様の処理がデコーダ側でルーマに対して適用されてもよい。
代替的に、クロマアップサンプリング(エンコーディング側)は、クロマ成分のサンプルのn本のラインごとの後に、値0を有するサンプルのラインを挿入することを含んでいてもよい。これは、ゼロ充填と呼ばれうる。これは、それぞれのラインサンプルを0に設定するだけでアップサンプリングを行う簡単な方式である。よって、さらなるシグナリングおよび/または処理オーバーヘッドは必要とされない。同様の処理がデコーダ側でルーマに対して適用されてもよい。
これは、アップサンプリングされたクロマの4×4サンプルを示す図9に例示されている。黒丸は、元のクロマのサンプルを指している。白丸は、0値を有するサンプルを指している。この例では、ゼロ値サンプルは、クロマ成分の最初の行および列の各々の後に挿入される。さらに、この例では、サイズ等化ネットワークは、図5の「加算」演算の後にそれ以上の層がない1層ネットワーク(M=1)に簡略化されている。図9(エンコーダ側)では、UおよびVのアップサンプリングが、YUV420カラーフォーマットの場合について各行および各列に0を充填することとして簡略化されている。YUV422フォーマットの場合には、ゼロの充填は各列についてである)。この場合、ネットワークは畳み込みニューラルネットワークではないが、全結合ニューラルネットワーク(FCNN)の1つの層として理解されることができる。したがって、このネットワーク自体は訓練可能ではない。しかしながら、より良好なコーディング性能のためにVAE構造と一緒に訓練されることができる。よって、それぞれのFCNNは、訓練されたネットワークも指しうる。
別の実装形態では、クロマアップサンプリングは、クロマ成分のサンプルのn本のラインごとの後に、クロマ成分内のそれぞれの最近傍サンプルに等しい値を有するサンプルのラインを挿入することによって行われうる。値の挿入は、例えば、クロマ値をそれぞれの近傍サンプルにコピーすることによって行われてもよい。上記のゼロ充填の場合と同様に、これは、特定の行および/または列でラインサンプルを挿入することによるクロマアップサンプリングのさらなる適応を可能にする。さらに、クロマの最近傍サンプルを参照した挿入されたラインサンプルの値を使用すると、クロマアップサンプリングの精度は、元のクロマを参照した(近傍クロマサンプル値によって反映される)隣接情報が用いられるためにより正確である。
これは、アップサンプリングされたクロマの4×4サンプルを示す図11に例示されている。この場合もやはり、黒丸は、元のクロマのサンプルを指している。ここでは、白丸は、それぞれのクロマ近傍サンプルに応じた値を有するサンプルを指している。図11では、それぞれの近傍サンプルへのクロマ値の挿入は矢印で示されている。この例では、サンプル値は、クロマ成分の最初の行および列の各々の後に挿入される。さらに、この例では、サイズ等化ネットワークは、図5の「加算」演算の後にそれ以上の層がない1層ネットワーク(M=1)に簡略化されている。図11(エンコーダ側)では、UとVのアップサンプリングは、図11でYUV420フォーマットについて示されるように、各行および各列の最近傍サンプルのアップサンプリングとして簡略化されている。YUV422フォーマットの場合には、最近傍サンプルのアップサンプリングは各列に対してである。クロマアップサンプリングの上記の例では、ネットワークは畳み込みニューラルネットワークではないが、全結合ネットワークの1つの層として理解されることができる。したがって、このネットワーク自体は訓練可能ではないが、より良好なコーディング性能のためにVAE構造と一緒に訓練されることができる。よって、それぞれのFCNNは、訓練されたネットワークも指しうる。
しかしながら、これは、1つの層を有するサイズ等化のための訓練されたネットワークの単なる例である。図5および図7を通して示されるように、サイズ等化層が2つ以上の層を有していてもよいことは、当業者には明らかである。この場合、サイズ等化ネットワークは、クロマアップサンプリングを行うように訓練されうる。
デコーディング側でルーマをアップサンプリングする同様のピクチャ処理が、少なくとも、いくつかの追加のサンプルによってn本のラインごとに充填することに関して行われうる。しかしながら、補間フィルタを使用すること、すなわち、隣接サンプルの関数として、例えば平均または加重平均などとして、加算されたルーマサンプルの値を決定することによってルーマアップサンプリングを行うことが有利でありうる。ML/CLを基にしたネットワークなどといった訓練された(予め訓練された)ネットワークを使用することによってルーマアップサンプリングを行うことが有利でありうる。
例えば、クロマダウンサンプリング(デコーダ側)は、中間クロマ成分のサンプルのn本のラインごとの後で、サンプルのラインを除去することによって行われてもよい。ここで、ラインは行および/または列であり、nは1以上の整数である。これは、例えば、各1つ(n=1)または2つ(n=2)の行および/または列の後で、前記ライン(行および/または列)が除去(削除)されうることを意味する。よって、中間クロマのダウンサンプリングは、それぞれのラインサンプルを単に除去することによって迅速に行われうる。
ラインサンプル除去の例が図10および図12に示されている。図10および図12のサンプル構成は、それぞれ、エンコーダ側でのクロマ成分のアップサンプリング処理の結果として、図9および図11のサンプル構成に対応することに留意されたい。具体的には、図10および図12は、中間クロマの4×4サンプルを示している。黒丸は、元のクロマのサンプルを指している。×印の付いた白丸は、エンコーディング側のサイズ等化ネットワークによるクロマアップサンプリング処理(サイド情報としてのルーマの使用あり、およびなしの)ならびに/またはデコーディング側のサイズ変換ネットワークの(1つもしくは複数の)最初の層を介したクロマ処理の結果として非ゼロ値でありうるサンプルを指している。
図10および図12に示される例では、サイズ変換ネットワークは、1層のネットワーク(M=1)として簡略化されている。図10および図12(デコーダ側)では、UおよびVのダウンサンプリングは、YUV420カラーフォーマットの場合には奇数行および奇数列のサンプルを廃棄するように簡略化されている。YUV422では、奇数列サンプルが除去される。図10および図12に示されるこれらの場合のいずれにおいても、それぞれのネットワークは畳み込みニューラルネットワークではないが、全結合ニューラルネットワーク(FCNN)の1つの層として理解されることができる。したがって、この例では、このネットワーク自体は訓練可能ではない。しかしながら、より良好なコーディング性能のためにVAE構造と一緒に訓練されることができる。よって、それぞれのFCNNは、訓練されたネットワークも指しうる。
しかしながら、これは、1つの層を有するサイズ変換のための訓練されたネットワークの単なる例である。図6および図8を通して示されるように、サイズ変換層が2つ以上の層を有していてもよいことは、当業者には明らかである。この場合、サイズ変換ネットワークは、クロマアップサンプリングを行うように訓練されうる。
図5に示されるエンコーダ側のサイズ等化ネットワークおよび図6に示されるデコーダ側のサイズ変換ネットワークは、VAE構造を用いて一緒に訓練されうることに留意されたい。これは、特にVAEフレームワーク内のサブサンプリングされたクロマ成分のエンコーディング-デコーディング処理をさらに改善しうる。これは、例えば、エンコーディング-デコーディング性能および/または再構成ピクチャ/画像の品質を含む。
代替的に、それらは別々に訓練され、予め訓練されたVAEネットワークとして使用されてもよい。いずれの場合も、それぞれのネットワークは訓練されたネットワークまたは予め訓練されたネットワークを指す。エンコーディング側でルーマをダウンサンプリングする同様のピクチャ処理が行われてもよい。一般に、訓練は事前に、すなわち、ネットワークがエンコーディング、アップサンプリング、デコーディングなどのための推論フェーズで使用される前に行われうる。
さらに、既に説明されたように、本開示はまた、上記の方法のステップを行うように構成されたデバイスも提供する。
図33は、ピクチャ部分をエンコードするためのエンコーダ3300を示している。ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含む。エンコーダは、ピクチャ部分のピクチャ処理として、クロマ成分の解像度と一致するダウンサンプリングされたルーマ成分を取得するようにルーマ成分をダウンサンプリングすること、およびルーマ成分の解像度と一致するアップサンプリングされたクロマ成分を取得するようにクロマ成分をアップサンプリングすることの一方を選択するように構成された選択モジュール3310を備える。さらに、エンコーダは、選択されたピクチャ処理に従ってピクチャ部分を処理するように構成された処理モジュール3320を備える。エンコーダは、選択されたピクチャ処理に従ってビットストリームを生成するように構成された生成モジュール3330であって、生成することが処理されたピクチャ部分をエンコードすることを含む、生成モジュール3330をさらに備える。
一実装例では、エンコーダは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行するためのプログラミングを記憶した非一時的コンピュータ可読記憶媒体であって、プログラミングが、1つまたは複数のプロセッサによって実行されるとき、エンコーダを、上記の方法を実行するように構成する、非一時的コンピュータ可読記憶媒体とを備えていてもよい。
図34は、ビットストリームからピクチャ部分を再構成するためのデコーダ3400を示している。ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含む。デコーダは、ビットストリームから同じ解像度を有するルーマ成分およびクロマ成分をデコードするように構成されたデコーディングモジュール3410を備える。さらに、デコーダは、ビットストリームから、ピクチャ処理として、デコードされたルーマ成分をアップサンプリングし、前記デコードされたクロマ成分およびアップサンプリングされたルーマ成分を含む再構成ピクチャ部分を取得すること、ならびにデコードされたクロマ成分をダウンサンプリングし、前記デコードされたルーマ成分およびダウンサンプリングされたクロマ成分を含む再構成ピクチャ部分を取得すること、の一方を決定するように構成された決定モジュール3420を備える。デコーダは、決定されたピクチャ処理に従って前記ピクチャ部分を取得するように構成された取得モジュール3430をさらに備える。
一実装例では、デコーダは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行するためのプログラミングを記憶した非一時的コンピュータ可読記憶媒体であって、プログラミングが、1つまたは複数のプロセッサによって実行されるとき、デコーダを、上記の方法を実行するように構成する、非一時的コンピュータ可読記憶媒体とを備えていてもよい。
本開示の一実施形態による、1つまたは複数のプロセッサにおいて実行されるとき、上記の方法のいずれかのステップを行ったコードを含む非一時的媒体上に記憶されたコンピュータプログラム。
本開示の実施形態のいくつかは、以下のように要約されうる利点を提供しうる。
・ルーマサンプル情報が完全に保存される。
・ルーマ空間情報が完全に保存される。
・サイズ等化CNNおよびサイズ変換CNNが、VAEネットワーク構造を用いて一緒に訓練されることができる。同時訓練は、結果をさらに改善しうる。代替的に、サイズ等化CNNおよびサイズ変換CNNはまた、VAEとは別に訓練されてもよい。
・他の種類のクロマサブサンプリングフォーマット(例えば、YUV422)が、VAEネットワーク構造によって取り扱われうる。
・成分間ルーマ-クロマ情報が保存されうる。
・ビットレートを節約する小解像度のためのルーマダウンサンプリングと、ルーマ情報を保存する大解像度のためのクロマアップサンプリングとの間の適応的切り替え。
ハードウェアおよびソフトウェアにおけるいくつかの例示的実装形態
上記のエンコーダ-デコーダ処理チェーンを展開しうる対応するシステムが、図35に示されている。図35は、例示的なコーディングシステム、例えば、本出願の技術を利用しうるビデオ、画像、オーディオ、および/または他のコーディングシステム(または略してコーディングシステム)を例示する概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(または略してエンコーダ20)およびビデオデコーダ30(または略してデコーダ30)は、本出願に記載された様々な例に従った技術を行うように構成されうるデバイスの例を表現している。例えば、ビデオコーディングおよびビデオデコーディングは、図2Aから図2Cに示されるようなニューラルネットワークを用いてもよく、これらのニューラルネットワークは、分散されていてもよく、先行してクロマがアップサンプリングされか(実施形態1)、またはクロマをアップサンプリングするかそれともルーマをダウンサンリングするかが評価される(実施形態2)、上記のエンコードされたビットストリームを含んでいてもよい。
図35に示されるように、コーディングシステム10は、例えば、エンコードされたピクチャデータ13をデコードするために宛先デバイス14にエンコードされたピクチャデータ21を提供するように構成された送信元デバイス12を備える。
送信元デバイス12はエンコーダ20を備え、ピクチャソース16、プリプロセッサ(または前処理ユニット)18、例えば、ピクチャプリプロセッサ18、および通信インターフェースまたは通信ユニット22を、追加的に、すなわち任意選択で、備えていてもよい。
本開示の実施形態1および実施形態2、ならびにエンコーディングに関連して上述されたそれらの例示的実装形態は、エンコーダ20の一部として行われうることに留意されたい。しかしながら、代替的に、これらの実施形態は、プリプロセッサ18によって行われることが考えられる。同様に、デコーダ側では、本開示の実施形態1および実施形態2、ならびにデコーディングに関連して上述されたそれらの例示的実装形態は、デコーダ30の一部として行われうる。しかしながら、代替的に、これらの実施形態は、ポストプロセッサ32によって行われることが考えられる。
ピクチャソース16は、任意の種類のピクチャ取り込みデバイス、例えば現実世界のピクチャを取り込むためのカメラ、ならびに/または任意の種類のピクチャ生成デバイス、例えばコンピュータアニメーションピクチャを生成するためのコンピュータグラフィックスプロセッサ、または現実世界のピクチャ、コンピュータ生成ピクチャ(例えば、スクリーンコンテンツ、仮想現実(VR)ピクチャ)、および/もしくはそれらの任意の組み合わせ(例えば、拡張現実(AR)ピクチャ)を取得および/もしくは提供するための任意の種類の他のデバイスを備えるか、またはそれらであってもよい。ピクチャソースは、前述のピクチャのうちのいずれかを記憶する任意の種類のメモリまたはストレージであってもよい。
プリプロセッサ18および前処理ユニット18によって行われる処理と区別して、ピクチャまたはピクチャデータ17は、生ピクチャまたは生ピクチャデータ17とも呼ばれうる。
プリプロセッサ18は、(生)ピクチャデータ17を受信し、ピクチャデータ17に対して前処理を行って、前処理されたピクチャ19または前処理されたピクチャデータ19を取得するように構成される。プリプロセッサ18によって行われる前処理は、例えば、トリミング、カラーフォーマット変換(例えば、RGBからYCbCrに)、色補正、またはノイズ除去を含みうる。前処理ユニット18は任意選択の構成要素であってもよいことが理解されることができる。前処理はまた、(例えば、図1から図7のいずれかに示されるような)ニューラルネットワークを用いてもよいことに留意されたい。上記のように、前処理は、ニューラルネットワーク(訓練されたネットワーク)による、クロマをアップサンプリングする(実施形態1および/もしくは実施形態2)か、またはルーマをダウンサンプリングする(実施形態2)ための処理を含みうる。
ビデオエンコーダ20は、前処理されたピクチャデータ19を受信し、エンコードされたピクチャデータ21を提供するように構成される。
送信元デバイス12の通信インターフェース22は、エンコードされたピクチャデータ21を受信し、エンコードされたピクチャデータ21(またはその任意のさらに処理されたバージョン)を、記憶または直接再構成のために、通信チャネル13を介して別のデバイス、例えば宛先デバイス14や任意の他のデバイスに送信するように構成されうる。
宛先デバイス14は、デコーダ30(例えば、ビデオデコーダ30)を備え、追加的に、すなわち、任意選択で、通信インターフェースまたは通信ユニット28、ポストプロセッサ32(または後処理ユニット32)、および表示デバイス34を備えていてもよい。
宛先デバイス14の通信インターフェース28は、例えば送信元デバイス12から、または任意の他のソース、例えば記憶デバイス、例えばエンコードされたピクチャデータの記憶デバイスから直接、エンコードされたピクチャデータ21(またはその任意のさらに処理されたバージョン)を受信し、エンコードされたピクチャデータ21をデコーダ30に提供するように構成される。
通信インターフェース22および通信インターフェース28は、送信元デバイス12と宛先デバイス14との間の直接通信リンク、例えば、直接の有線もしくは無線接続を介して、または任意の種類のネットワーク、例えば有線もしくは無線ネットワークもしくはそれらの任意の組み合わせや、任意の種類のプライベートおよびパブリックネットワーク、もしくはそれらの任意の種類の組み合わせを介して、エンコードされたピクチャデータ21またはエンコードされたデータ13を送受信するように構成されうる。
通信インターフェース22は、例えば、エンコードされたピクチャデータ21を適切なフォーマット、例えばパケットにパッケージ化し、かつ/または通信リンクもしくは通信ネットワークを介した送信のための任意の種類の送信エンコーディングもしくは処理を使用してエンコードされたピクチャデータを処理するように構成されうる。
通信インターフェース28は、通信インターフェース22の相手側を形成し、例えば、送信されたデータを受信し、任意の種類の対応する送信デコーディングもしくは処理および/またはパッケージ解除を使用して送信データを処理してエンコードされたピクチャデータ21を取得するように構成されうる。
通信インターフェース22と通信インターフェース28とはどちらも、送信元デバイス12から宛先デバイス14を指し示す図35の通信チャネル13の矢印によって示されるような単方向通信インターフェースとして、または双方向通信インターフェースとして構成されてもよく、例えば、メッセージを送信および受信するように、例えば、接続をセットアップし、通信リンクおよび/またはデータ送信、例えば、エンコードされたピクチャデータ送信に関連する任意の他の情報を確認し交換するように構成されてもよい。デコーダ30は、エンコードされたピクチャデータ21を受信し、(例えば、図1から図7のうちの1つまたは複数に基づくニューラルネットワークを用いて)デコードされたピクチャデータ31またはデコードされたピクチャ31を提供するように構成される。
宛先デバイス14のポストプロセッサ32は、デコードされたピクチャデータ31(再構成ピクチャデータとも呼ばれる)、例えばデコードされたピクチャ31を後処理して、後処理されたピクチャデータ33、例えば後処理されたピクチャ33を取得するように構成される。後処理ユニット32によって行われる後処理は、例えばデコードされたピクチャデータ31を、例えば表示デバイス34によって表示するために準備するために、例えば、カラーフォーマット変換(例えばYCbCrからRGBに)、色補正、トリミング、または再サンプリング、または任意の他の処理を含みうる。
宛先デバイス14の表示デバイス34は、ピクチャを例えばユーザやビューアに表示するための後処理されたピクチャデータ33を受信するように構成される。表示デバイス34は、再構成ピクチャを表現するための任意の種類のディスプレイ、例えば、一体型または外付けのディスプレイまたはモニタであってもよいし、これを備えていてもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS)、デジタルライトプロセッサ(DLP)、または任意の種類の他のディスプレイを備えていてもよい。
図35は、送信元デバイス12と宛先デバイス14とを別個のデバイスとして描写しているが、デバイスの実施形態はまた、両方または両方の機能、すなわち、送信元デバイス12または対応する機能と宛先デバイス14または対応する機能とを備えていてもよい。そのような実施形態では、送信元デバイス12または対応する機能および宛先デバイス14または対応する機能は、同じハードウェアおよび/もしくはソフトウェアを使用して、または別個のハードウェアおよび/もしくはソフトウェアまたはそれらの任意の組み合わせによって実装されてもよい。
説明に基づけば当業者には明らかなように、図35に示される送信元デバイス12および/または宛先デバイス14内の異なるユニットの機能または機能の存在および(正確な)分割は、実際のデバイスおよび用途に応じて変化しうる。
エンコーダ20(例えば、ビデオエンコーダ20)もしくはデコーダ30(例えば、ビデオデコーダ30)、またはエンコーダ20とデコーダ30の両方は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ハードウェア、ビデオコーディング専用、またはそれらの任意の組み合わせなどの処理回路を介して実装されうる。エンコーダ20は、図2Aから図2Cのいずれかまたはその部分に示されるものなどのニューラルネットワークを含む様々なモジュールを具現化するために処理回路46を介して実装されうる。デコーダ30は、図2Aから図2Cに関して論じられた様々なモジュールおよび/または本明細書に記載の任意の他のデコーダシステムもしくはサブシステムを具現化するために処理回路46を介して実装されうる。処理回路は、後述されるように様々な動作を行うように構成されうる。技術がソフトウェアで部分的に実装される場合、デバイスは、ソフトウェアのための命令を適切な非一時的コンピュータ可読記憶媒体に記憶してもよく、本開示の技術を行うためにそれらの命令をハードウェアにおいて1つまたは複数のプロセッサを使用して実行してもよい。ビデオエンコーダ20およびビデオデコーダ30のどちらかが、例えば、図36に示されるように、単一のデバイス内の組み合わせエンコーダ/デコーダ(CODEC)の一部として統合されていてもよい。
送信元デバイス12および宛先デバイス14は、任意の種類のハンドヘルドデバイスまたは固定式デバイス、例えば、ノートブックもしくはラップトップコンピュータ、携帯電話、スマートフォン、タブレット、もしくはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、表示デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス(コンテンツサービスサーバやコンテンツ配信サーバなど)、放送受信デバイス、放送送信デバイスなどを含む、広範囲のデバイスのいずれかを備えていてもよく、オペレーティングシステムを使用しなくてもよいし、任意の種類のオペレーティングシステムを使用してもよい。場合によっては、送信元デバイス12および宛先デバイス14は、無線通信のために装備されていてもよい。よって、送信元デバイス12および宛先デバイス14は無線通信デバイスであってもよい。
場合によっては、図35に例示されるビデオコーディングシステム10は単なる例であり、本出願の技術は、エンコーディングデバイスとデコーディングデバイスとの間のデータ通信を必ずしも含まないビデオコーディング設定(例えば、ビデオコーディングやビデオデコーディング)に適用してもよい。他の例では、データがローカルメモリから取り出されたり、ネットワークを介してストリーミングされたりする。ビデオエンコーディングデバイスは、データをエンコードしてメモリに記憶してもよく、かつ/またはビデオデコーディングデバイスは、データをメモリから取り出してデコードしてもよい。いくつかの例では、エンコーディングおよびデコーディングは、互いに通信せずに単にデータをメモリにエンコードし、かつ/またはデータをメモリから取り出してデコードするデバイスによって行われる。
図37は、本開示の一実施形態による、ビデオコーディングデバイス1000の概略図である。ビデオコーディングデバイス1000は、本明細書に記載された開示の実施形態を実装するのに適している。一実施形態では、ビデオコーディングデバイス1000は、図35のビデオデコーダ30などのデコーダ、または図35のビデオエンコーダ20などのエンコーダであってもよい。
ビデオコーディングデバイス1000は、データを受信するための入口ポート1010(または入力ポート1010)および受信機ユニット(Rx)1020と、データを処理するためのプロセッサ、論理ユニット、または中央処理装置(CPU)1030と、データを送信するための送信機ユニット(Tx)1040および出口ポート1050(または出力ポート1050)と、データを記憶するためのメモリ1060とを備える。ビデオコーディングデバイス1000はまた、光信号または電気信号の出入りのために入口ポート1010、受信機ユニット1020、送信機ユニット1040、および出口ポート1050に結合された光-電気(OE)構成要素および電気-光(EO)構成要素も備えていてもよい。
プロセッサ1030は、ハードウェアおよびソフトウェアによって実装される。プロセッサ1030は、1つまたは複数のCPUチップ、(例えば、マルチコアプロセッサとしての)コア、FPGA、ASIC、およびDSPとして実装されてもよい。プロセッサ1030は、入口ポート1010、受信機ユニット1020、送信機ユニット1040、出口ポート1050、およびメモリ1060と通信する。プロセッサ1030は、コーディングモジュール1070を備える。コーディングモジュール1070は、上記に記載された開示の実施形態を実装する。例えば、コーディングモジュール1070は、様々なコーディング演算を実装、処理、準備、または提供する。したがって、コーディングモジュール1070を含むことは、ビデオコーディングデバイス1000の機能に大幅な改善を提供し、ビデオコーディングデバイス1000の異なる状態への変換をもたらす。代替的に、コーディングモジュール1070は、メモリ1060に記憶され、プロセッサ1030によって実行される命令として実装される。
メモリ1060は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備えていてもよく、プログラムが実行のために選択されたときにそのようなプログラムを記憶し、プログラムの実行中に読み出された命令およびデータを記憶するための、オーバーフローデータ記憶デバイスとして使用されてもよい。メモリ1060は、例えば、揮発性および/または不揮発性であってもよく、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、および/またはスタティックランダムアクセスメモリ(SRAM)であってもよい。
図38は、一例示的実施形態による、図35の送信元デバイス12および宛先デバイス14のどちらかまたは両方として使用されうる装置800の簡略ブロック図である。
装置1100内のプロセッサ1102は、中央処理装置とすることができる。代替的に、プロセッサ1102は、現存するかまたは今後開発される、情報を操作または処理することが可能な任意の他のタイプのデバイス、または複数のデバイスとすることもできる。開示の実装形態は、図示のような単一のプロセッサ、例えば、プロセッサ1102を用いて実施されることができるが、2つ以上のプロセッサを使用して速度および効率における利点が達成されることができる。
装置1100内のメモリ1104は、一実装形態では読み出し専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスとすることができる。任意の他の適切なタイプの記憶デバイスがメモリ1104として使用されることができる。メモリ1104は、バス1112を使用してプロセッサ1102によってアクセスされるコードおよびデータ1106を含むことができる。メモリ1104は、オペレーティングシステム1108およびアプリケーションプログラム1110をさらに含むことができ、アプリケーションプログラム1110は、プロセッサ1102が本明細書に記載される方法を行うことを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム1110は、アプリケーション1からアプリケーションNを含むことができ、該アプリケーションは、本明細書に記載される方法を行うビデオコーディングアプリケーションをさらに含む。
装置1100はまた、ディスプレイ1118などの1つまたは複数の出力デバイスも含むことができる。ディスプレイ1118は、一例では、ディスプレイとタッチ入力を感知するように動作可能なタッチセンサ式要素とを組み合わせたタッチセンサ式ディスプレイであってもよい。ディスプレイ1118は、バス1112を介してプロセッサ1102に結合されることができる。
ここでは単一のバスとして描写されているが、装置1100のバス1112は複数のバスから構成されることができる。さらに、セカンダリストレージは、装置1100のその他の構成要素に直接結合されることができるか、またはネットワークを介してアクセスされることができ、メモリカードなどの単一の統合ユニットまたは複数のメモリカードなどの複数のユニットを備えることができる。よって、装置1100は、多種多様な構成で実装されることができる。
いくつかの例示的実施形態の概要
本開示のいくつかの実施形態は、入力としてルーマ成分およびサブサンプリングされたクロマ成分を有するピクチャ部分のエンコーディングおよびデコーディングのための方法および装置を提供する。ルーマ成分はダウンサンプリングによって処理されうるので、エンコーディング-デコーディング処理は、低ビットレートでより迅速に行われ、結果としてより低い解像度をもたらしうる。クロマ成分は、クロマアップサンプリングによって処理され、高解像度の結果を提供する。ルーマとクロマとの間の空間相関も、このようにして保存されうる。いずれの場合も、サイズ変更されたルーマ-クロマ成分は、一致した解像度を有し、訓練されたネットワークによるエンコーディングは、一致した成分に適用される。エンコーダは、ルーマダウンサンプリングとクロマアップサンプリングとの間で適応的に選択してもよく、デコーダは、ルーマアップサンプリングおよびクロマダウンサンプリングの逆のピクチャ処理を行う。よって、エンコーディング-デコーディング処理は、選択されたピクチャ処理に応じて低解像度または高解像度のいずれかのピクチャ/画像を提供しうる。
本開示の一態様によれば、ピクチャ部分をエンコードするための方法であって、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含み、方法は、ピクチャ部分の処理として、クロマ成分の解像度と一致するダウンサンプリングされたルーマ成分を取得するようにルーマ成分をダウンサンプリングするステップ、およびルーマ成分の解像度と一致するアップサンプリングされたクロマ成分を取得するようにクロマ成分をアップサンプリングするステップ、の一方を選択するステップと、選択されたピクチャ処理に従ってピクチャ部分を処理するステップと、選択された処理に従ってビットストリームを生成するステップであって、生成することが処理されたピクチャ部分をエンコードすることを含む、ステップと、を含む。
これは、ルーマ成分がダウンサンプリングされるか、それともクロマ成分がアップサンプリングされるかにかかわらず、出力として等サイズのルーマ-クロマ出力を提供する。よって、前記出力は、次いで、同様の構造、特に同じ入力解像度を有する(例えば、機械学習フレームワーク内の)訓練されたネットワークによって取り扱われうる。すべての色成分の解像度が同じである場合には、機械学習フレームワークは、すべてのサンプル位置で同じ方法で相互色相関を利用することができる。ピクチャプロセスの1つにおいて、ルーマチャネルは影響を受けないままでありえ、その場合、品質損失はない。
ダウンサンプリングルーマは、低解像度でビットレートを節約するために有益であり、アップサンプリングクロマは、大解像度でルーマ情報を保存するために有益である。よって、適応的切り替えは、ビットレートまたはピクチャ品質に対する要求および/または制限に応じたサンプリングモードの選択を可能にする。ピクチャ部分の選択されたピクチャ処理のいずれの場合も、処理されたルーマ-クロマ成分は一致した解像度を有するので、出力は、効率的なエンコーディングを可能にするVAEフレームワークまたは別のフレームワーク内で取り扱われうる。
いくつかの例示的実装形態では、選択するステップは、レートおよび歪みのコスト関数の評価を含む。よって、サンプリングモード(すなわち、ルーマダウンサンプリングおよびクロマアップサンプリング)の選択はコストに基づくものである。
方法の一例示的実装形態によれば、選択するステップは、ルーマ成分をダウンサンプリングし、それによって中間のダウンサンプリングされたルーマ成分を取得するステップと、クロマ成分をアップサンプリングし、それによって中間のアップサンプリングされたクロマ成分を取得するステップと、を含む。ルーマダウンサンプリングおよびクロマアップサンプリングを含むサンプリングモードの選択は、いずれの場合も、一致した解像度(すなわち、サイズ)を各々有する中間ルーマおよび中間クロマ成分を提供する。次いで、等サイズのルーマ-クロマ成分は、例えば、VAEによるさらなる処理を受けてもよい。
方法のさらなる実装例では、選択するステップは、前記コスト関数に従って、中間のダウンサンプリングされたルーマ成分およびクロマ成分のコスト、ならびに、それぞれ、ルーマ成分および中間のアップサンプリングされたクロマ成分のコストを決定するステップ、を含み、選択においては、その決定されたコストがより低いピクチャ部分のピクチャ処理が選択される。よって、コストが最低であるサンプリングモード(すなわち、ルーマダウンサンプリングまたはクロマアップサンプリング)を使用することによって、ルーマ成分およびサブサンプリングされたクロマ成分の全体的なエンコーディングが効率的に行われる。
方法の一実装例によれば、決定するステップは、中間のダウンサンプリングされたルーマ成分およびクロマ成分を第1のビットストリームにエンコードするステップと、ルーマ成分と中間のアップサンプリングされたクロマ成分とを第2のビットストリームにエンコードするステップと、前記コスト関数に従って第1のビットストリームおよび第2のビットストリームのコストを決定するステップと、を含む。よって、実際のコストは、実際のエンコードされた第1および第2のビットストリームに基づくものであるため、正確に決定されうる。
方法の一例では、ビットストリームを生成するステップは、ビットストリームに選択されたピクチャ処理を示す選択インジケータをエンコードするステップを含む。これは、ビットストリームに対して行われたピクチャ処理の低複雑度シグナリングを提供する。
別の例では、ビットストリームを生成するステップは、ビットストリームに、ルーマ成分の幅Wおよび/または高さHの指示をエンコードするステップを含む。よって、元のピクチャ部分の幅および高さがエンコーダにシグナリングされうる。
方法の一例示的実装形態によれば、アップサンプリングおよび/またはダウンサンプリングは訓練されたネットワークによって行われる。訓練されたネットワークを用いるコーディングは、そのようなネットワークを所望のデータで訓練する可能性のおかげで、改善された性能を提供しうる。
一例によれば、処理されたピクチャ部分のエンコーディングは、変分オートエンコーダ(VAE)によって行われる。VAEは、画像および/またはピクチャのエンコーディングおよび/またはデコーディングに関連するタスクを非常に効率的に行うのに有利な場合があり、必要とされるビットレートと再構成画像またはピクチャの品質との間の良好な妥協を有する。
本開示の一態様によれば、ビットストリームからピクチャ部分を再構成するための方法が提供され、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含み、方法は、ビットストリームから同じ解像度を有するルーマ成分およびクロマ成分をデコードするステップと、ビットストリームから、ピクチャ処理として、デコードされたルーマ成分をアップサンプリングし、前記デコードされたクロマ成分およびアップサンプリングされたルーマ成分を含む再構成ピクチャ部分を取得するステップ、ならびにデコードされたクロマ成分をダウンサンプリングし、前記デコードされたルーマ成分およびダウンサンプリングされたクロマ成分を含む再構成ピクチャ部分を取得するステップ、の一方を決定するステップと、決定されたピクチャ処理に従って前記ピクチャ部分を取得するステップと、を含む。
よって、ルーマアップサンプリングおよびクロマダウンサンプリングの一方の決定されたピクチャ処理は、いずれの場合も、エンコーディングのために入力された成分(元のピクチャ成分)に対応する異なるサイズを有するようなサイズ変更されたルーマまたはクロマ成分を提供する。したがって、ピクチャ部分は、その元のカラーフォーマットに再構成され、クロマは、クロマよりも低い解像度を有する。結果として、エンコードされた等サイズのルーマ-クロマチャネルは、決定されたピクチャ処理にかかわらず、共通のVAEフレームワーク内で取り扱われうる。一般に、デコーディング側で提供される利点は、それぞれのエンコーディング方法の対応する追加の特徴によってエンコーダ側で提供される利点と同様でありうる。
方法の一実装例によれば、決定するステップは、ビットストリームから、ピクチャ処理を示す選択インジケータをデコードするステップと、前記ピクチャ処理として、選択インジケータによって示される処理を決定するステップと、をさらに含む。これは、ピクチャ処理の効率的なシグナリングを可能にする。それに対応して、デコーディング側は、ビットストリームに含まれる単純なインジケータに基づいて、エンコーダ側でどのピクチャ処理が使用されたか(すなわち、ルーマダウンサンプリングまたはクロマアップサンプリング)を迅速に決定しうる。
別の例示的実装形態によれば、決定するステップは、ビットストリームから、ピクチャ部分のルーマ成分の幅Wおよび/または高さHをデコードするステップをさらに含む。これは、ピクチャ部分のルーマチャネルの幅および高さに基づいてピクチャ処理を決定することを可能にする。言い換えれば、ピクチャ部分の重要な情報を搬送するチャネルが、前記決定のための参照として使用される。
一例では、決定するステップは、幅Wおよび高さHがデコードされたルーマ成分のそれぞれの幅
および高さ
と同じであるかどうかを決定するステップと、決定の結果として、WおよびHが
および
と同じである場合、デコードされたクロマ成分をダウンサンプリングするステップと、決定の結果として、WおよびHのいずれかが
および/または
と同じでない場合、デコードされたルーマ成分をアップサンプリングするステップと、をさらに含む。幅および高さから適用されるべき処理を導出することによって、明示的な選択インジケータを含めないことによるレートの節約が可能である。さらに、ピクチャ処理は、ルーマのWおよびHとデコードされたルーマのそれぞれの幅
および高さ
との単純な比較によってエンコーディング側で容易に決定されうる。(デコードされた)クロマに関する情報は使用されなくてもよく、よって、ピクチャ処理の決定におけるオーバーヘッドを低減する。
さらなる実装例によれば、決定するステップは、ビットストリームのサイズSを決定するステップと、ビットストリームから、ピクチャ部分の潜在表現
をデコードするステップであって、潜在表現が幅
および/または高さ
を有する、ステップと、ピクチャ処理を、ビットストリームのサイズと幅
および高さ
との関数と、所定の閾値Tとの比較に基づいて決定するステップと、を含む。これは、潜在表現
に基づいたピクチャ処理の決定を可能にする。潜在表現は、特徴マップに基づくものであってもよい。よって、ピクチャ処理の決定は、潜在表現を特徴マップと共に利用するので、より正確である。
一例示的実装形態では、決定するステップは、サイズSと
との比が所定の閾値以上であるかどうかを決定するステップと、決定の結果として、比が所定の閾値以上である場合、デコードされたクロマ成分をダウンサンプリングするステップと、決定の結果として、比が所定の閾値未満である場合、デコードされたルーマ成分をアップサンプリングするステップと、を含む。それに対応して、デコーダによって行われるべきピクチャ処理は、ビットストリームサイズSと潜在空間のサイズ
との比を使用して単純に決定されうる。さらに、ビットストリームサイズと潜在空間のサイズ
との比を単純に閾値処理することによって、ピクチャ処理の高速決定が円滑化される。これは、ビットストリームおよび潜在空間のみが使用されるため、ピクチャ処理の決定をより効率的にする。これは、ピクチャ処理の決定におけるオーバーヘッドをさらに低減させる。
別の実装例によれば、決定するステップは、ビットストリームから潜在表現
をデコードするステップと、ピクチャ処理を、デコードされた潜在表現を供給された分類ニューラルネットワークの出力として決定するステップであって、出力が、第1のクラスおよび第2のクラスの一方であり、第1のクラスが、デコードされたルーマ成分のアップサンプリングを示し、第2のクラスが、デコードされたクロマ成分のダウンサンプリングを示す、ステップと、を含む。これは、ピクチャ処理決定を決定するためにニューラルネットワークを利用することを可能にする。これは、ピクチャ処理決定をより柔軟にする。さらに、潜在空間は特徴マップに基づくものでありうるため、これは、前記決定のための特徴の分類と組み合わされてもよい。それに対応して、ピクチャ処理の決定は、より正確に行われうる。さらに、アップサンプリングまたはダウンサンプリングの方法は、デコーダ側でビットストリームからサイド情報を構文解析せずに取得されてもよく、これはビットレートコストを削減する。
一例示的実装形態によれば、アップサンプリングおよび/またはダウンサンプリングは訓練されたネットワークによって行われる。ダウンサンプリングされたルーマまたはアップサンプリングされたクロマに基づいてビットストリームを提供することによって、デコーディング側は、より高い品質および/またはより低いレートでピクチャ(静止またはビデオ)を再構成しうる。訓練されたネットワークは、適応的で効率的なコーディングを提供し、よって、同じレートで改善された品質または同じ品質で改善されたレートに提供しうる。
例えば、処理されたピクチャ部分のデコーディングは、変分オートエンコーダVAEによって行われる。よって、デコーディングは効率的に行われる可能性があり、必要とされるビットレートおよび/または再構成ピクチャもしくは画像の品質の間の良好な妥協を有する。
本開示の一態様によれば、1つまたは複数のプロセッサにおいて実行されるとき、上記の方法のいずれかのステップを行うコードを含む非一時的媒体上に記憶されたコンピュータプログラムが提供される。
本開示の一態様によれば、ピクチャ部分をエンコードするためのエンコーダが提供され、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含み、エンコーダは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行するためのプログラミングを記憶した非一時的コンピュータ可読記憶媒体であって、プログラミングが、1つまたは複数のプロセッサによって実行されるとき、エンコーダを、上記のエンコーディング方法を実行するように構成する、非一時的コンピュータ可読記憶媒体と、を備える。
本開示の一態様によれば、ビットストリームからピクチャ部分を再構成するためのデコーダが提供され、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含み、デコーダは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、1つまたは複数のプロセッサによって実行するためのプログラミングを記憶した非一時的コンピュータ可読記憶媒体であって、プログラミングが、1つまたは複数のプロセッサによって実行されるとき、デコーダを、上記のデコーディング方法を実行するように構成する、非一時的コンピュータ可読記憶媒体と、を備える。
本開示の一態様によれば、ピクチャ部分をエンコードするためのエンコーダが提供され、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含み、エンコーダは、上記のエンコーディング方法のステップを行うように構成された処理回路を備える。
予め設定された開示の一態様によれば、ビットストリームからピクチャ部分を再構成するためのデコーダであって、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含み、デコーダは、上記のデコーディング方法のステップを行うように構成された処理回路を備える。
本開示の一態様によれば、ピクチャ部分をエンコードするためのエンコーダが提供され、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含み、エンコーダは、ピクチャ部分のピクチャ処理として、クロマ成分の解像度と一致するダウンサンプリングされたルーマ成分を取得するようにルーマ成分をダウンサンプリングすること、およびルーマ成分の解像度と一致するアップサンプリングされたクロマ成分を取得するようにクロマ成分をアップサンプリングすること、の一方を選択するように構成された選択モジュールと、選択されたピクチャ処理に従ってピクチャ部分を処理するように構成された処理モジュールと、選択されたピクチャ処理に従ってビットストリームを生成するように構成された生成モジュールであって、生成することが処理されたピクチャ部分をエンコードすることを含む、生成モジュールと、を備える。
本開示の一態様によれば、ビットストリームからピクチャ部分をデコードするためのデコーダが提供され、ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含み、デコーダは、ビットストリームから同じ解像度を有するルーマ成分およびクロマ成分をデコードするように構成されたデコーディングモジュールと、ビットストリームから、ピクチャ処理として、デコードされたルーマ成分をアップサンプリングし、前記デコードされたクロマ成分およびアップサンプリングされたルーマ成分を含む再構成ピクチャ部分を取得すること、ならびにデコードされたクロマ成分をダウンサンプリングし、前記デコードされたルーマ成分およびダウンサンプリングされたクロマ成分を含む再構成ピクチャ部分を取得すること、の一方を決定するように構成された決定モジュールと、決定されたピクチャ処理に従って前記ピクチャ部分を取得するように構成された取得モジュールと、を備える。
実施形態は、所望の用途に応じて入力ピクチャ部分のクロマアップサンプリングとルーマダウンサンプリングとを適応的に切り替えることを可能にする。例えば、用途の中には、ルーマダウンサンプリングがより有利でありうる場合に複雑度またはビットレートの低減を目的とするものもあり、クロマアップサンプリングがより有利でありうる場合により高い品質を目的とするものもある。それに対応して、ルーマ成分およびサブサンプリングされたクロマ成分を有するピクチャ部分が、ルーマダウンサンプリングおよびクロマアップサンプリングを含むピクチャ処理のサンプリングモードのいずれかにおいて、効率的にエンコードおよび/またはデコードされうる。
本開示は、特定のフレームワークに限定されないことに留意されたい。さらに、本開示は、画像またはビデオ圧縮に限定されず、物体検出、画像生成、および認識システムにも適用されうる。
本発明は、ハードウェアおよび/またはソフトウェアで実装されることができる。
明確にするために、前述の実施形態のいずれか1つが、その他の前述の実施形態のいずれか1つまたは複数と組み合わされて、本開示の範囲内の新しい実施形態を作成する場合がある。
要約すると、本開示は、ビデオのエンコーディングおよびデコーディングに関し、特に、深層学習を基にしたビデオ(デ)コーディングにおけるクロマサブサンプルフォーマットの取り扱いに関する。対応する装置および方法は、ルーマ成分、およびルーマ成分よりも低い解像度を有するクロマ成分を含むそれぞれのピクチャ部分のエンコーディングおよびデコーディングのための処理を可能にする。そのような異なるサイズのルーマ-クロマチャネルを取り扱うために、クロマ成分は、得られるアップサンプリングされたクロマ成分がルーマ成分の1つと一致した解像度を有するようにアップサンプリングされる。次いで、ルーマおよびアップサンプリングされたクロマ成分は、ビットストリームにエンコードされる。ピクチャ部分を再構成するために、ルーマ成分およびルーマ成分の解像度と一致する中間クロマ成分がビットストリームからデコードされ、続いて中間クロマ成分がダウンサンプリングされる。よって、サブサンプリングされたクロマフォーマットは、ルーマチャネルを保存しながら、オートエンコーダ/オートデコーダフレームワークによって取り扱われうる。
さらに、本開示は、ピクチャまたはビデオのエンコーディングおよびデコーディングに関する。ピクチャ部分は、ルーマ成分と、ルーマ成分の解像度よりも低い解像度を有するクロマ成分とを含む。ルーマ成分およびクロマ成分の一致した解像度を取得するために、ルーマ成分のダウンサンプリング処理とクロマ成分のアップサンプリング処理との間で選択が行われる。次いで、選択された処理がピクチャ部分に適用される。次いで、ビットストリームが選択された処理に基づいて生成され、処理されたピクチャ部分をエンコードすることを含む。クロマアップサンプリングとルーマダウンサンプリングとの間の選択は、所望の用途のための入力ピクチャ部分の適合を可能にする。例えば、用途の中には、ルーマダウンサンプリングがより有利でありうる場合に複雑度またはビットレートの低減を目的とするものもあり、クロマアップサンプリングがより有利でありうる場合により高い品質を目的とするものもある。