(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-15
(45)【発行日】2023-12-25
(54)【発明の名称】ビデオコーディング方法及び装置
(51)【国際特許分類】
H04N 19/117 20140101AFI20231218BHJP
H04N 19/154 20140101ALI20231218BHJP
H04N 19/176 20140101ALI20231218BHJP
【FI】
H04N19/117
H04N19/154
H04N19/176
(21)【出願番号】P 2022554885
(86)(22)【出願日】2021-09-24
(86)【国際出願番号】 US2021052049
(87)【国際公開番号】W WO2022132275
(87)【国際公開日】2022-06-23
【審査請求日】2022-09-12
(32)【優先日】2020-12-16
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-09-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】チュン・アウヨン
(72)【発明者】
【氏名】ジョンジェン・ユアン
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】松元 伸次
(56)【参考文献】
【文献】国際公開第2019/031410(WO,A1)
【文献】特表2019-525544(JP,A)
【文献】特表2019-537133(JP,A)
【文献】特開2008-236758(JP,A)
【文献】特表2007-529125(JP,A)
【文献】米国特許出願公開第2010/121610(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H03M3/00-9/00
H04N19/00-19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ処理方法であって、
処理回路によって、量子化パラメータ(QP)値に少なくとも部分的に基づいて、エキスパートモジュールに関連するゲーティング重みを決定するステップであって、前記エキスパートモジュールは、前記QP値に基づいて再構成される画像ブロックを含む入力ブロックを処理するように構成される、ステップと、
前記処理回路によって、前記ゲーティング重みに基づいて前記エキスパートモジュールに重みを付けて、前記画像ブロックに対応する出力画像ブロックを生成するステップと、を含む方法。
【請求項2】
前記処理回路によって、前記ゲーティング重みに基づいて前記エキスパートモジュールからのモジュール出力を組み合わせて、前記画像ブロックに対応する前記出力画像ブロックを生成するステップを更に含む、請求項1に記載の方法。
【請求項3】
前記処理回路によって、前記ゲーティング重みに基づいて前記エキスパートモジュールを結合する結合エキスパートモジュールを決定するステップを更に含む、請求項1に記載の方法。
【請求項4】
前記量子化パラメータと、前記画像ブロック及び前記画像ブロックの隣接ピクセルを含む前記入力ブロックとに基づいて前記ゲーティング重みを決定するステップを更に含む、請求項1に記載の方法。
【請求項5】
少なくとも1つの畳み込みニューラルネットワーク層を使用して前記ゲーティング重みを決定するステップを更に含む、請求項1に記載の方法。
【請求項6】
非ゼロのゲーティング重みを有するエキスパートモジュールのサブセットをアクティブ化するステップと、
前記エキスパートモジュールのサブセットに関連する前記ゲーティング重みに基づいて前記エキスパートモジュールのサブセットのモジュール出力を組み合わせて、前記画像ブロックに対応する前記出力画像ブロックを生成するステップと、を更に含む、請求項1に記載の方法。
【請求項7】
畳み込みニューラルネットワークを有するエキスパートモジュールによって、前記画像ブロックを含む前記入力ブロックに応答してモジュール出力を生成するステップを更に含む、請求項1に記載の方法。
【請求項8】
前記エキスパートモジュールは有限インパルス応答(FIR)フィルタであり、
前記方法は、
前記ゲーティング重みに基づいて前記FIRフィルタを結合する結合FIRフィルタを決定するステップと、
前記結合FIRフィルタを前記画像ブロックを含む前記入力ブロックに適用して前記出力画像ブロックを生成するステップとを更に含む、請求項1に記載の方法。
【請求項9】
前記ゲーティング重みを決定論的な方法で決定するステップを更に含み、前記出力画像ブロックは、参照ピクチャに関連付けられたループ内で生成される、請求項1に記載の方法。
【請求項10】
前記ゲーティング重みを非決定論的な方法で決定するステップを更に含み、前記出力画像ブロックは、参照ピクチャに関連付けられたループ外で生成される、請求項1に記載の方法。
【請求項11】
処理回路を含むビデオ処理装置であって、前記処理回路は、
請求項1~10のいずれか1項に記載の方法を実行するように構成される、ビデオ処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年12月16日に出願された米国仮出願第63/126,186号「A QUANTIZATION PARAMETER ADAPTIVE MIXTURE‐OF‐EXPERT FILTER FOR VIDEO PROCESSING」の優先権の利益を主張する、2021年9月15日に出願された米国特許出願第17/447,806号「METHOD AND APPARATUS FOR VIDEO CODING」の優先権の利益を主張し、以前の出願の開示全体は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、一般にビデオ処理に関連する実施形態を説明する。より具体的には、本開示は、ビデオコーデックにおけるピクチャ品質を改善するためのニューラルネットワーク処理技術を提供する。
【背景技術】
【0003】
本明細書で提供される背景技術の記載は、本開示の背景を概略的に示すためのものである。現在記載されている発明者の研究は、この背景技術の部分に記載されておる範囲で、出願時に別の形で先行技術としての資格を有しない明細書の態様と同様に、明示又は黙示を問わず本技術に対する先行技術として認めるものではない。
【0004】
ビデオコーディング及びデコーディングは、動き補償を伴うインターピクチャ予測を用いて実行することができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプル及び関連するクロミナンスサンプルの空間次元を有する。一連のピクチャは、例えば毎秒60枚のピクチャ又は60Hzの固定又は可変のピクチャレート(非公式にはフレームレートとも知られている)を有することができる。非圧縮ビデオには、かなりのビットレート要件がある。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル解像度)には、1.5Gbit/sに近い帯域幅が必要である。1時間分のそのようなビデオには、600ギガバイトを超えるストレージスペースが必要である。
【0005】
ビデオコーディング及びデコーディングの1つの目的は、圧縮によって入力ビデオ信号の冗長性を低減することであり得る。圧縮は、前述の帯域幅及び/又はストレージスペース要件を、場合によっては2桁以上低減するのに役立つ。可逆圧縮及び非可逆圧縮の両方、並びにそれらの組み合わせを使用することができる。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構成することができる技術を指す。非可逆圧縮を使用する場合、再構成された信号は元の信号と同一ではない場合があるが、元の信号と再構成された信号との間の歪みは、再構成された信号を意図された用途に有用なものにするのに十分に小さい。ビデオの場合、非可逆圧縮が広く用いられている。許容される歪みの量はアプリケーションによって異なり、例えば、特定の消費者向けストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容する可能性がある。達成可能な圧縮比は、より高い許容可能な歪み/許容歪みがより高い圧縮比をもたらし得ることを反映することができる。
【0006】
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化、及びエントロピーコーディングを含むいくつかの広いカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプル又は他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャはサンプルのブロックに空間的に再分割される。サンプルのすべてのブロックがイントラモードでコード化される場合、そのピクチャはイントラピクチャであり得る。イントラピクチャ及び独立デコーダリフレッシュピクチャのようなそれらの派生物は、デコーダ状態をリセットするために使用することができ、したがって、コード化されたビデオビットストリーム及びビデオセッションにおける最初のピクチャとして、又は静止画像として使用することができる。イントラブロックのサンプルを変換することができ、変換係数は、エントロピーコーディングの前に量子化することができる。イントラ予測は、前変換領域のサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さいほど、またAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所定の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えばMPEG‐2世代コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、一部の新しいビデオ圧縮技術は、例えば、空間的に隣接し、且つデコード順序において先行するデータのブロックのエンコーディング/デコーディング中に得られた周囲のサンプルデータ及び/又はメタデータから試みる技術を含む。このような技術は、以降「イントラ予測」技術と呼ばれる。少なくとも一部の場合では、イントラ予測は、再構成中の現在ピクチャからの参照データのみを使用し、参照ピクチャからの参照データを使用しないことに留意されたい。
【0009】
イントラ予測には多くの異なる形式があり得る。そのような技術の2つ以上が所定のビデオコーディング技術において使用できる場合、使用中の技術は、イントラ予測モードでコード化することができる。特定の場合では、モードはサブモード及び/又はパラメータを有することができ、それらは個別にコード化することも、又はモードコードワードに含めることもできる。所定のモード/サブモード/パラメータの組み合わせに対してどのコードワードを使用するかは、イントラ予測によるコーディング効率利得に影響を与えることができ、また、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与えることができる。
【0010】
イントラ予測の特定のモードは、H.264で導入され、H.265で改良され、共同探索モデル(joint exploration model、JEM)、多用途ビデオコーディング(versatile video coding、VVC)、及びベンチマークセット(benchmark set、BMS)などの新しいコーディング技術で更に改良された。予測子ブロックは、既に利用可能なサンプルに属する隣接サンプル値を使用して形成することができる。隣接サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリーム内でコード化されてもよく、又はそれ自体が予測されてもよい。
【0011】
図1Aを参照すると、右下に示されているのは、H.265の33個の可能な予測子方向(35個のイントラモードの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は、Y次元及びX次元の両方におけるブロック(104)の第4のサンプルである。ブロックのサイズが4×4サンプルであるため、S44は右下にある。更に、同様の番号付けスキームに従う参照サンプルが示されている。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)及びX位置(列インデックス)でラベル付けされている。H.264及びH.265の両方において、予測サンプルは再構成中のブロックに隣接しており、したがって、負の値を使用する必要はない。
【0013】
イントラピクチャ予測は、信号で送られた予測方向によって適切に隣接サンプルから参照サンプル値をコピーすることで機能することができる。例えば、コード化されたビデオビットストリームが、このブロックについて、矢印(102)と一致する予測方向を示すシグナリングを含むと仮定し、即ち、サンプルは、水平から45度の角度で右上の1つ又は複数の予測サンプルから予測される。その場合、サンプルS41、S32、S23、及びS14は、同じ参照サンプルR05から予測される。次に、サンプルS44はサンプルR08から予測される。
【0014】
特定の場合では、特に方向が45度で均等に割り切れない場合、参照サンプルを計算するために、例えば補間によって、複数の参照サンプルの値を組み合わせることができる。
【0015】
ビデオコーディング技術が発展するにつれて、可能な方向の数が増加してきた。H.264(2003年)では、9つの異なる方向を表すことができた。これはH.265(2013年)では33個に増加し、JEM/VVC/BMSは、開示の時点で最大65個の方向をサポートできる。最も可能性の高い方向を特定するために実験が行われ、エントロピーコーディングにおける特定の技術は、可能性の低い方向の特定の不利益を受け入れて、これらの可能性の高い方向を少数のビットで表すために使用される。更に、方向自体は、既にデコードされた隣接ブロックで使用される隣接方向から予測できる場合がある。
【0016】
図1Bは、時間と共に増加する予測方向の数を説明するために、JEMによる65個のイントラ予測方向を示す概略図(180)を示す。
【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予測自体が非可逆である可能性がある。
【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】
本開示の態様は、ビデオ処理方法及び装置を提供する。一部の例では、ビデオ処理装置は、処理回路を含む。処理回路は、量子化パラメータ(quantization parameter、QP)値に少なくとも部分的に基づいて、エキスパートモジュールに関連するゲーティング重みを決定する。エキスパートモジュールは、QP値に基づいて再構成される画像ブロックを含む入力ブロックを処理するように構成される。次に、処理回路は、ゲーティング重みに基づいてエキスパートモジュールに重みを付けて、画像ブロックに対応する出力画像ブロックを生成する。
【0023】
一部の例では、処理回路は、ゲーティング重みに基づいてエキスパートモジュールからのモジュール出力を組み合わせて、画像ブロックに対応する出力画像ブロックを生成する。
【0024】
一部の例では、処理回路は、ゲーティング重みに基づいてエキスパートモジュールを結合する結合エキスパートモジュールを決定する。
【0025】
一部の例では、処理回路は、量子化パラメータと、画像ブロック及び画像ブロックの隣接ピクセルを含む入力ブロックとに基づいてゲーティング重みを決定する。
【0026】
一部の例では、処理回路は、少なくとも1つの畳み込みニューラルネットワーク層を使用してゲーティング重みを決定する。
【0027】
一部の例では、処理回路は、非ゼロのゲーティング重みを有するエキスパートモジュールのサブセットをアクティブ化し、そして、エキスパートモジュールのサブセットに関連するゲーティング重みに基づいてエキスパートモジュールのサブセットのモジュール出力を組み合わせて、画像ブロックに対応する出力画像ブロックを生成する。
【0028】
一部の例では、エキスパートモジュールは畳み込みニューラルネットワークで実装され、画像ブロックを含む入力ブロックに応答してモジュール出力を生成することができる。
【0029】
一部の例では、エキスパートモジュールは有限インパルス応答(finite impulse response、FIR)フィルタであり、処理回路は、ゲーティング重みに基づいてFIRフィルタを結合する結合FIRフィルタを決定し、そして結合FIRフィルタを画像ブロックを含む入力ブロックに適用して出力画像ブロックを生成すことができる。
【0030】
一部の例では、処理回路は、ゲーティング重みを決定論的な方法で決定し、出力画像ブロックは、参照ピクチャに関連付けられたループ内で生成される。
【0031】
一部の例では、処理回路は、ゲーティング重みを非決定論的な方法で決定し、出力画像ブロックは、参照ピクチャに関連付けられたループ外で生成される。
【0032】
本開示の態様はまた、コンピュータによって実行されると、コンピュータにビデオ処理方法を実行させる命令を記憶する非一時的なコンピュータ可読媒体を提供する。
【図面の簡単な説明】
【0033】
開示された主題の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【
図2】一例における現在ブロック及びその周囲の空間マージ候補の概略図である。
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態による通信システム(400)の簡略化されたブロック図の概略図である。
【
図5】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図6】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図7】別の実施形態によるエンコーダのブロック図である。
【
図8】別の実施形態によるデコーダのブロック図である。
【
図9】一部の例におけるループフィルタユニットのブロック図である。
【
図10】疎にゲートされた混合エキスパート(mixture of experts、MoE)ネットワークの一例を示す図である。
【
図11】MoEネットワークによるデータ処理のプロセスを概説するフローチャートである。
【
図12】画像及び/又はビデオ処理用の適応MoEフィルタの一例を示す図である。
【
図13】一部の例におけるニューラルネットワーク構造の一例を示す図である。
【
図14】一部の例におけるエキスパートモジュールの図である。
【
図15】一部の例にける適応MoEフィルタによる画像データ処理のプロセスを概説するフローチャートである。
【
図16】適応MoEフィルタによる画像データ処理のプロセスを概説する別のフローチャートである。
【
図17】画像及び/又はビデオ処理用の適応MoEフィルタの一例を示す図である。
【
図18】プロセス例を概説するフローチャートである。
【
図19】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0034】
図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)及び(320)を含む。
図3の例では、第1の対の端末装置(310)及び(320)は、データの一方向送信を実行する。例えば、端末装置(310)は、ネットワーク(350)を介して他方の端末装置(320)に送信するために、ビデオデータ(例えば、端末装置(310)によってキャプチャされたビデオピクチャのストリーム)をコード化することができる。エンコードされたビデオデータは、1つ又は複数のコード化されたビデオビットストリームの形式で送信することができる。端末装置(320)は、ネットワーク(350)からコード化されたビデオデータを受信し、コード化されたデータをデコードしてビデオピクチャを復元し、そして復元したビデオデータに従ってビデオピクチャを表示することができる。一方向データ送信は、メディアサービングアプリケーションなどにおいて一般的である可能性がある。
【0035】
別の例では、通信システム(300)は、例えば、ビデオ会議中に発生する可能性のあるコード化されたビデオデータの双方向送信を実行する第2の対の端末装置(330)及び(340)を含む。データの双方向送信の場合、一例では、端末装置(330)及び(340)の各端末装置は、ネットワーク(350)を介して端末装置(330)及び(340)の他方の端末装置に送信するために、ビデオデータ(例えば、端末装置によってキャプチャされたビデオピクチャのストリーム)をコード化することができる。端末装置(330)及び(340)の各端末装置はまた、端末装置(330)及び(340)の他方の端末装置によって送信されたコード化されたビデオデータを受信し、コード化されたビデオデータをデコードしてビデオピクチャを復元し、そして復元したビデオデータに従ってアクセス可能なディスプレイデバイスでビデオピクチャを表示することができる。
【0036】
図3の例では、端末装置(310)、(320)、(330)、及び(340)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして示されてもよいが、本開示の原理は、そのように限定されない場合がある。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー、及び/又は専用ビデオ会議装置に適用される。ネットワーク(350)は、例えば有線(配線された)通信ネットワーク及び/又は無線通信ネットワークを含めて、端末装置(310)、(320)、(330)及び(340)間でコード化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換チャネル及び/又はパケット交換チャネルでデータを交換することができる。代表的なネットワークとしては、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、及び/又はインターネットが挙げられる。本議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない可能性がある。
【0037】
図4は、開示された主題の適用の一例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリースティックなどを含むデジタル媒体への圧縮ビデオの保存などを含めて、他のビデオ対応アプリケーションにも同様に適用可能である。
【0038】
ストリーミングシステムは、キャプチャサブシステム(413)を含むことができ、これは、例えば、圧縮されていないビデオピクチャ(402)のストリームを作成するビデオソース(401)、例えばデジタルカメラを含むことができる。一例では、ビデオピクチャ(402)のストリームは、デジタルカメラによって撮影されたサンプルを含む。ビデオピクチャ(402)のストリームは、エンコードされたビデオデータ(404)(又はコード化されたビデオビットストリーム)と比較した場合に高いデータ量を強調するために太線で示され、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子装置(420)によって処理することができる。ビデオエンコーダ(403)は、以下により詳細に説明されるように、開示された主題の態様を可能にするか又は実装するために、ハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。エンコードされたビデオデータ(404)(又はエンコードされたビデオビットストリーム(404))は、ビデオピクチャ(402)のストリームと比較した場合に低いデータ量を強調するために細線で示され、将来の使用のためにストリーミングサーバ(405)に記憶することができる。
図4のクライアントサブシステム(406)及び(408)などの1つ又は複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコードされたビデオデータ(404)のコピー(407)及び(409)を検索することができる。クライアントサブシステム(406)は、例えば、電子装置(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの着信コピー(407)をデコードし、そしてディスプレイ(412)(例えば、ディスプレイ画面)又は他のレンダリングデバイス(図示せず)上にレンダリングされ得るビデオピクチャ(411)の発信ストリームを作成する。一部のストリーミングシステムでは、エンコードされたビデオデータ(404)、(407)及び(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコードすることができる。これらの規格の例としては、ITU‐T勧告H.265が挙げられる。一例では、開発中のビデオコーディング規格は、非公式に多用途ビデオコーディング(Versatile Video Coding、VVC)として知られている。開示された主題は、VVCの文脈で使用することができる。
【0039】
電子装置(420)及び(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子装置(420)は、ビデオデコーダ(図示せず)を含むことができ、電子装置(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0040】
図5は、本開示の一実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子装置(530)に含まれてもよい。電子装置(530)は、受信機(531)(例えば、受信回路)を含むことができる。
図4の例では、ビデオデコーダ(410)の代わりにビデオデコーダ(510)を使用することができる。
【0041】
受信機(531)は、ビデオデコーダ(510)によってデコードされるべき1つ又は複数のコード化されたビデオシーケンスを、同じ又は別の実施形態では、一度に1つのコード化されたビデオシーケンスで受信することができ、各コード化されたビデオシーケンスのデコーディングは他のコード化されたビデオシーケンスから独立している。コード化されたビデオシーケンスは、チャネル(501)から受信されてもよく、チャネル(501)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであってもよい。受信機(531)は、エンコードされたビデオデータを、他のデータ、例えば、コード化されたオーディオデータ及び/又は補助データストリームと共に受信することができ、これらのデータは、それぞれの使用エンティティ(図示せず)に転送され得る。受信機(531)は、コード化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッターに対処するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」)との間に結合されてもよい。特定の用途では、バッファメモリ(515)はビデオデコーダ(510)の一部である。他の用途では、これはビデオデコーダ(510)(図示せず)の外部にあってもよい。更に他の用途では、例えばネットワークジッターに対処するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、更に、例えばプレイアウトタイミングを処理するためにビデオデコーダ(510)の内部に別のバッファメモリ(515)があってもよい。受信機(531)が十分な帯域幅及び制御性を有するストア/フォワードデバイスから、又は等同期ネットワークからデータを受信しているとき、バッファメモリ(515)は必要とされなくてもよく、又は小さくてもよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要とされる場合があり、それは比較的大きくてもよく、有利には適応サイズとすることができ、また、ビデオデコーダ(510)の外部のオペレーティングシステム又は同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0042】
ビデオデコーダ(510)は、コード化されたビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含んでもよい。これらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報と、
図5に示されるように電子装置(530)の不可欠な部分ではないが、電子装置(530)に結合され得るレンダリングデバイス(512)(例えば、ディスプレイ画面)などのレンダリングデバイスを制御するための潜在的な情報とが含まれる。レンダリングデバイス用の制御情報は、補足強化情報(Supplemental Enhancement Information、SEIメッセージ)又はビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセットフラグメント(図示せず)の形式であってもよい。パーサ(520)は、受信されたコード化されたビデオシーケンスを解析/エントロピーデコードすることができる。コード化されたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、また、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴う又は伴わない算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コード化されたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループの少なくとも1つ用のサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャグループ(Groups of Pictures、GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Unit、CU)、ブロック、変換ユニット(Transform Unit、TU)、予測ユニット(Prediction Unit、PU)などを含むことができる。パーサ(520)はまた、コード化されたビデオシーケンスから変換係数、量子化器パラメータ値、動きベクトルなどの情報を抽出することができる。
【0043】
パーサ(520)は、バッファメモリ(515)から受信したビデオシーケンスに対してエントロピーデコード/解析動作を実行して、シンボル(521)を作成することができる。
【0044】
シンボル(521)の再構成には、コード化されたビデオピクチャ又はその一部のタイプ(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック)、及び他の要因に応じて、複数の異なるユニットが関与する可能性がある。どのユニットが関与するか、及びどのように関与するかは、パーサ(520)によってコード化されたビデオシーケンスから解析されたサブグループ制御情報によって制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、分かりやすくするために示されていない。
【0045】
既に述べた機能ブロックに加えて、ビデオデコーダ(510)は、以下に説明されるように、概念的にいくつかの機能ユニットに再分割することができる。商業的制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、また少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明する目的では、以下の機能ユニットへの概念的な再分割が適切である。
【0046】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)から、量子化された変換係数、並びに使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報をシンボル(521)として受信することができる。スケーラ/逆変換ユニット(551)は、サンプル値を含むブロックを出力することができ、これらのブロックはアグリゲータ(555)に入力することができる。
【0047】
場合によっては、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラコード化されたブロック、即ち、以前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に再構成された部分からの予測情報を使用できるブロックに関連する可能性がある。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャメモリ(558)からフェッチされた周囲の既に再構成された情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供された出力サンプル情報に追加する。
【0048】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコード化され、潜在的に動き補償されたブロックに関連する可能性がある。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチしたサンプルを動き補償した後、アグリゲータ(555)によってこれらのサンプルをスケーラ/逆変換ユニット(551)の出力(この場合、残差サンプル又は残差信号と呼ばれる)に追加して、出力サンプル情報を生成することができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、動きベクトルによって制御することができ、動きベクトルは、例えば、X、Y、及び参照ピクチャ成分を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能であり得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズムなどを含むことができる。
【0049】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、インループフィルタ技術を含むことができ、これらの技術は、コード化されたビデオシーケンス(コード化されたビデオビットストリームとも呼ばれる)に含まれているパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、コード化されたピクチャ又はコード化されたビデオシーケンスの前の(デコード順の)部分のデコード中に得られたメタ情報に応答することも、以前に再構成及びループフィルタリングされたサンプル値に応答することもできる。
【0050】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力され得るだけでなく、将来のインターピクチャ予測に使用するために参照ピクチャメモリ(557)に記憶され得るサンプルストリームであり得る。
【0051】
特定のコード化されたピクチャは、完全に再構成されると、将来の予測のための参照ピクチャとして使用することができる。例えば、現在ピクチャに対応するコード化されたピクチャが完全に再構成され、またコード化されたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は参照ピクチャメモリ(557)の一部になることができ、そして次のコード化されたピクチャの再構成を開始する前に、新しい現在ピクチャメモリを再割り当てすることができる。
【0052】
ビデオデコーダ(510)は、ITU‐T Rec.H.265などの規格における所定のビデオ圧縮技術に従ってデコード動作を実行することができる。コード化されたビデオシーケンスは、コード化されたビデオシーケンスがビデオ圧縮技術又は規格の構文及びビデオ圧縮技術又は規格で文書化されたプロファイルの両方に準拠するという意味で、使用されているビデオ圧縮技術又は規格によって指定された構文に準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術又は規格で利用可能なすべてのツールから、そのプロファイルで使用できる唯一のツールとして特定のツールを選択することができる。また、準拠のためには、コード化されたビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義された範囲内であることも必要である。場合によっては、レベルによって、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプルで測定)、最大参照ピクチャサイズなどが制限される。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(Hypothetical Reference Decoder、HRD)仕様及びコード化されたビデオシーケンスで信号で送られたHRDバッファ管理用のメタデータによって更に制限されることがある。
【0053】
一実施形態では、受信機(531)は、エンコードされたビデオと共に追加の(冗長)データを受信することができる。追加のデータは、コード化されたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードするため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間的、空間的、又は信号雑音比(signal noise ratio、SNR)強化層、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形式であり得る。
【0054】
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子装置(620)に含まれている。電子装置(620)は、送信機(640)(例えば、送信回路)を含む。
図4の例では、ビデオエンコーダ(403)の代わりにビデオエンコーダ(603)を使用することができる。
【0055】
ビデオエンコーダ(603)は、ビデオソース(601)(
図6の例では電子装置(620)の一部ではない)からビデオサンプルを受信することができ、ビデオソース(601)は、ビデオエンコーダ(603)によってコード化されるべきビデオ画像をキャプチャすることができる。別の例では、ビデオソース(601)は、電子装置(620)の一部である。
【0056】
ビデオソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット…)、任意の色空間(例えば、BT.601 Y CrCB、RGB…)、及び任意の適切なサンプリング構造(例えば、Y CrCB 4:2:0、Y CrCB 4:4:4)であり得るデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(603)によってコード化されるべきソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶する記憶装置であってもよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、順番に見たときに動きを与える複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間配列として編成することができ、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つ又は複数のサンプルを含むことができる。当業者であれば、ピクセルとサンプルとの間の関係を容易に理解することができる。以下では、サンプルに焦点を当てて説明する。
【0057】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、又はアプリケーションによって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスのピクチャをコード化し、コード化されたビデオシーケンス(643)に圧縮することができる。適切なコーディング速度を適用することは、コントローラ(650)の1つの機能である。一部の実施形態では、コントローラ(650)は以下に説明されるように他の機能ユニットを制御し、また他の機能ユニットに機能的に結合される。分かりやすくするために、結合は示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、…)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計用に最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
【0058】
一部の実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に単純化された説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コード化されるべき入力ピクチャ及び参照ピクチャに基づいてシンボルストリームなどのシンボルを作成する役割を果たす)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダがサンプルデータを作成するのと同様の方法でシンボルを再構成してサンプルデータを作成する(シンボルとコード化されたビデオビットストリームとの間の任意の圧縮が、開示された主題で検討されているビデオ圧縮技術において可逆であるため)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコードにより、デコーダの位置(ローカル又はリモート)に関係なくビット精度の結果が得られるため、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット精度となる。言い換えれば、エンコーダの予測部分は、デコード中に予測を使用するときにデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(及び、例えばチャネルエラーのために同期性を維持できない場合に結果として生じるドリフト)のこの基本原理は、一部の関連技術でも使用されている。
【0059】
「ローカル」デコーダ(633)の動作は、
図5に関連して上記で既に詳細に説明されている「リモート」デコーダ(510)の動作と同じであってもよい。しかし、
図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサ(520)によってシンボルをコード化されたビデオシーケンスにエンコード/デコードすることは可逆であり得るため、バッファメモリ(515)及びパーサ(520)を含むビデオデコーダ(510)のエントロピーデコード部分は、ローカルデコーダ(633)に完全に実装されていない可能性がある。
【0060】
この時点で行うことができる観察は、デコーダに存在する解析/エントロピーデコードを除くいかなるデコーダ技術も、対応するエンコーダ内に実質的に同一の機能形態で存在する必要があるということである。このため、開示された主題は、デコーダの動作に焦点を当てている。エンコーダ技術は、包括的に説明されているデコーダ技術の逆である可能性があるため、その説明を省略することができる。特定の領域についてのみ、より詳細な説明が必要であり、以下に提供する。
【0061】
動作中、一部の例では、ソースコーダ(630)は、動き補償予測コーディングを実行することができ、これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ又は複数の以前にコード化されたピクチャを参照して入力ピクチャを予測的にコード化する。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差分をコード化する。
【0062】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコード化されたビデオデータをデコードすることができる。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであり得る。コード化されたビデオデータがビデオデコーダ(
図6には示されていない)でデコードされ得る場合、再構成されたビデオシーケンスは、通常、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得るデコードプロセスを複製し、そして再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダ(送信エラーがない)によって取得される再構成された参照ピクチャとして共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶することができる。
【0063】
予測器(635)は、コーディングエンジン(632)のために予測検索を実行することができる。即ち、コード化されるべき新しいピクチャについて、予測器(635)は、参照ピクチャメモリ(634)を検索して、サンプルデータ(候補参照ピクセルブロックとして)又は参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを探すことができ、それらは、新しいピクチャに対する適切な予測参照として役立つことができる。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックごとのピクセルブロックベースで動作することができる。場合によっては、予測器(635)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから抽出された予測参照を有してもよい。
【0064】
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含めて、ソースコーダ(630)のコーディング動作を管理することができる。
【0065】
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)においてエントロピーコーディングを受けることができ。エントロピーコーダ(645)は、例えばハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆的に圧縮することによって、様々な機能ユニットによって生成されたシンボルをコード化されたビデオシーケンスに変換する。
【0066】
送信機(640)は、エントロピーコーダ(645)によって作成されたコード化されたビデオシーケンスをバッファリングして、通信チャネル(660)を介した送信に備えることができ、通信チャネル(660)は、エンコードされたビデオデータを記憶する記憶装置へのソフトウェア/ハードウェアリンクであり得る。送信機(640)は、ビデオコーダ(603)からのコード化されたビデオデータを、送信されるべき他のデータ、例えば、コード化されたオーディオデータ及び/又は補助データストリーム(ソースは示されていない)とマージすることができる。
【0067】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コード化されたピクチャに特定のコード化されたピクチャタイプを割り当てることができ、このコード化されたピクチャタイプは、それぞれのピクチャに適用され得るコーディング技術に影響を与える可能性がある。例えば、ピクチャは、多くの場合、次のピクチャタイプのいずれかとして割り当てられてもよい。
【0068】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用することなくコード化及びデコードされ得るものであり得る。一部のビデオコーデックでは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含めて、様々なタイプのイントラピクチャが可能である。当業者は、Iピクチャのそれらの変形並びにそれらのそれぞれの用途及び特徴を知っている。
【0069】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を用いてコード化及びデコードされ得るものであり得る。
【0070】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大で2つの動きベクトル及び参照インデックスを使用するイントラ予測又はインター予測を用いてコード化及びデコードされ得るものであり得る。同様に、複数の予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【0071】
ソースピクチャは、一般に、空間的に複数のサンプルブロック(例えば、それぞれ4x4、8x8、4x8、又は16x16サンプルのブロック)に再分割され、ブロックごとにコード化されてもよい。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定された他の(既にコード化された)ブロックを参照して予測的にコード化されてもよい。例えば、Iピクチャのブロックは、非予測的にコード化されてもよく、又はそれらは、同じピクチャの既にコード化されたブロックを参照して予測的にコード化されてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコード化された参照ピクチャを参照して、空間予測を介して、又は時間予測を介して予測的にコード化されてもよい。Bピクチャのブロックは、1つ又は2つの以前にコード化された参照ピクチャを参照して、空間予測を介して、又は時間予測を介して、予測的にコード化されてもよい。
【0072】
ビデオエンコーダ(603)は、ITU‐T Rec.H.265などの所定のビデオコーディング技術又は規格に従ってコーディング動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含めて、様々な圧縮動作を実行することができる。したがって、コード化されたビデオデータは、使用されているビデオコーディング技術又は規格によって指定された構文に準拠することができる。
【0073】
一実施形態では、送信機(640)は、エンコードされたビデオと共に追加のデータを送信することができる。ソースコーダ(630)は、コード化されたビデオシーケンスの一部としてそのようなデータを含むことができる。追加データは、時間/空間/SNR強化層、冗長ピクチャ及びスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含むことができる。
【0074】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされてもよい。イントラピクチャ予測(多くの場合、イントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又はその他の)相関を利用する。一例では、エンコーディング/デコーディング中の特定のピクチャは、現在ピクチャと呼ばれ、ブロックに分割される。現在ピクチャ内のブロックが、ビデオ内の以前にコード化され、まだバッファリングされている参照ピクチャ内の参照ブロックと類似している場合、現在ピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコード化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0075】
一部の実施形態では、インターピクチャ予測において双方向予測技術を使用することができる。双方向予測技術によれば、ビデオ内の現在ピクチャよりもデコード順が両方とも前である(ただし、表示順に、それぞれ過去と将来であり得る)2つの参照ピクチャ、例えば第1の参照ピクチャ及び第2の参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによってコード化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測することができる。
【0076】
更に、インターピクチャ予測において、マージモード技術を使用してコーディング効率を向上させることができる。
【0077】
本開示の一部の実施形態によれば、インターピクチャ予測及びイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、一連のビデオピクチャ内のピクチャは圧縮のためにコーディングツリーユニット(coding tree unit、CTU)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルなどの同じサイズを有する。一般に、CTUは、3つのコーディングツリーブロック(coding tree block、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つ又は複数の予測ユニット(prediction unit、PU)に分割される。一般に、各PUは、輝度予測ブロック(prediction block、PB)及び2つの彩度PBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロック単位で実行される。予測ブロックの一例として輝度予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのピクセルの値(例えば、輝度値)の行列を含む。
【0078】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、一連のビデオピクチャにおける現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、そして処理ブロックを、コード化されたビデオシーケンスの一部であるコード化されたピクチャにエンコードするように構成される。一例では、
図4の例のビデオエンコーダ(403)の代わりにビデオエンコーダ(703)が使用される。
【0079】
HEVCの例では、ビデオエンコーダ(703)は、8x8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、イントラモード、インターモード、又は、例えばレート歪み最適化を使用する双方向予測モードを用いて最適にコード化されているか否かを判定する。処理ブロックがイントラモードでコード化される場合、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックをコード化されたピクチャにエンコードすることができ、処理ブロックがインターモード又は双方向予測モードでコード化される場合、ビデオエンコーダ(703)は、インター予測又は双方向予測技術をそれぞれ使用して、処理ブロックをコード化されたピクチャにエンコードすることができる。特定のビデオコーディング技術では、マージモードは、インターピクチャ予測サブモードであってもよく、ここで、動きベクトルは、予測子以外のコード化された動きベクトル成分なしに、1つ又は複数の動きベクトル予測子から導出される。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在する場合がある。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
【0080】
図7の例では、ビデオエンコーダ(703)は、
図7に示されているように互いに結合されインターエンコーダ(730)、イントラエンコーダ(722)、残差計算機(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、及びエントロピーエンコーダ(725)を含む。
【0081】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを、参照ピクチャ内の1つ又は複数の参照ブロック(例えば、前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、そして任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。一部の例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされたデコードされた参照ピクチャである。
【0082】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、そのブロックを同じピクチャ内で既にコード化されたブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つ又は複数のイントラエンコーディング技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、イントラ予測情報及び同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0083】
汎用コントローラ(721)は、汎用制御データを決定し、そして汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードである場合、汎用コントローラ(721)は、残差計算機(723)で使用するためのイントラモード結果を選択するようにスイッチ(726)を制御し、そして、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御し、また、モードがインターモードである場合、汎用コントローラ(721)は、残差計算機(723)で使用するためのインター予測結果を選択するようにスイッチ(726)を制御し、そして、インター予測情報を選択してインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
【0084】
残差計算機(723)は、受信ブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との間の差分(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次に、変換係数は量子化処理され、量子化変換係数が得られる。様々な実施形態において、ビデオエンコーダ(703)はまた、残差デコーダ(728)を含む。残差デコーダ(728)は、逆変換を実行してデコードされた残差データを生成するように構成される。デコードされた残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、デコードされた残差データ及びインター予測情報に基づいてデコードされたブロックを生成することができ、イントラエンコーダ(722)は、デコードされた残差データ及びイントラ予測情報に基づいてデコードされたブロックを生成することができる。デコードされたブロックは、適切に処理されてデコードされたピクチャを生成し、デコードされたピクチャは、メモリ回路(図示せず)にバッファリングされ、一部の例では参照ピクチャとして使用され得る。
【0085】
エントロピーエンコーダ(725)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報を含むように構成される。一例では、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の適切な情報をビットストリーム内に含むように構成される。開示された主題によれば、インターモード又は双方向予測モードのいずれかのマージサブモードでブロックをコード化する場合、残差情報がないことに留意されたい。
【0086】
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コード化されたビデオシーケンスの一部であるコード化されたピクチャを受信し、そしてコード化されたピクチャをデコードして再構成されたピクチャを生成するように構成される。一例では、
図4の例のビデオデコーダ(410)の代わりにビデオデコーダ(810)が使用される。
【0087】
図8の例では、ビデオデコーダ(810)は、
図8に示されるように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)を含む。
【0088】
エントロピーデコーダ(871)は、コード化されたピクチャから、コード化されたピクチャを構成する構文要素を表す特定のシンボルを再構成するように構成することができる。そのようなシンボルは、例えば、ブロックがコード化されるモード(例えば、イントラモード、インターモード、双方向予測モード、マージサブモード又は別のサブモードにおける後者の2つなど)、イントラデコーダ(872)又はインターデコーダ(880)による予測にそれぞれ使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報など)、例えば量子化変換係数の形式の残差情報などを含むことができる。一例では、予測モードがインター予測モード又は双方向予測モードである場合、インター予測情報は、インターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報は、イントラデコーダ(872)に提供される。残差情報は逆量子化されてもよく、そして残差デコーダ(873)に提供される。
【0089】
インターデコーダ(880)は、インター予測情報を受信し、そしてインター予測情報に基づいてインター予測結果を生成するように構成される。
【0090】
イントラデコーダ(872)は、イントラ予測情報を受信し、そしてイントラ予測情報に基づいて予測結果を生成するように構成される。
【0091】
残差デコーダ(873)は、逆量子化を実行して逆量子化変換係数を抽出し、そして逆量子化変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、(量子化パラメータ(QP)を含めるために)特定の制御情報を必要とする場合があり、その情報は、エントロピーデコーダ(871)によって提供されてもよい(これは、少量の制御情報のみである可能性があるため、データパスは示されていない)。
【0092】
再構成モジュール(874)は、空間領域において、残差デコーダによって出力された残差と、予測結果(場合によっては、インター予測モジュール又はイントラ予測モジュールによって出力された)とを組み合わせて再構成されたブロックを形成するように構成され、再構成されたブロックは、再構成されたピクチャの一部である可能性があり、また再構成されたピクチャは、再構成されたビデオの一部である可能性がある。視覚的品質を改善するために、デブロッキング動作などの他の適切な動作を実行することができることに留意されたい。
【0093】
ビデオエンコーダ(403)、(603)、及び(703)、並びにビデオデコーダ(410)、(510)、及び(810)は、任意の適切な技術を使用して実装できることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、及び(703)、並びにビデオデコーダ(410)、(510)、及び(810)は、1つ又は複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、及び(703)、並びにビデオデコーダ(410)、(510)、及び(810)は、ソフトウェア命令を実行する1つ又は複数のプロセッサを使用して実装することができる。
【0094】
ニューラルネットワーク技術はビデオコーディング技術と共に使用することができ、ニューラルネットワークを用いたビデオコーディング技術はハイブリッドビデオコーディング技術と呼ぶことができる。本開示の一部の態様は、ニューラルネットワークを使用してピクチャ品質を改善するためのハイブリッドビデオコーディング技術における適応フィルタリングの技術を提供する。具体的には、本開示の一部の態様によれば、ビデオコーディングにおいて適応混合エキスパートフィルタリングの技術を使用して、ビデオ品質を向上させることができる。一部の例では、ハイブリッドビデオコーディング技術における適応フィルタリングは、ピクチャ品質を改善するために量子化パラメータに基づいて制御される混合エキスパートネットワークを使用することができる。適応フィルタリング技術は、インループフィルタ及び後処理のフィルタで使用することができる。
【0095】
本開示の一態様によれば、インループフィルタは、参照データに影響を与えるフィルタである。後処理のフィルタは参照データに影響を与えない。例えば、ループフィルタユニット(556)によってフィルタリングされた画像は、更なる予測のための参照として、参照ピクチャメモリ(557)などのバッファに記憶される。一部の例では、フィルタリングされた画像は、
図5の後処理ユニット(図示せず)によって更に処理されてもよい。後処理ユニットは、記憶されたフィルタリングされた画像に影響を与えない。後処理ユニットは、フィルタを含んでもよい。
【0096】
図9は、一部の例におけるループフィルタユニット(910)のブロック図を示す。一例では、ループフィルタユニット(556)の代わりにループフィルタユニット(910)を使用することができる。
図9の例では、ループフィルタユニット(910)は、デブロッキングフィルタ(901)、サンプル適応オフセット(sample adaptive offset、SAO)フィルタ(902)、及び適応ループフィルタ(adaptive loop filter、ALF)フィルタ(903)を含む。一部の例では、ALFフィルタ(903)は、交差成分適応ループフィルタ(cross component adaptive loop filter、CCALF)を含むことができる。
【0097】
動作中、一例では、ループフィルタユニット(910)は、再構成されたピクチャを受信し、再構成されたピクチャに様々なフィルタを適用し、そして再構成されたピクチャに応答してフィルタリングされたピクチャを生成する。フィルタリングされたピクチャを、例えば、更なるデコーディングのための参照ピクチャとして参照ピクチャメモリ(920)に記憶することができる。フィルタリングされたピクチャを、デコーダ側の後処理ユニット(930)によって更に処理して、デコーダ出力として出力ピクチャを生成することができる。一部の例では、後処理ユニット(930)は、参照ピクチャに影響を与えない後処理フィルタ(931)を含むことができる。
【0098】
一部の例では、デブロッキングフィルタ(901)及びSAOフィルタ(902)は、ブロックコーディング技術が使用されるときに導入されるブロッキングアーチファクトを除去するように構成される。デブロッキングフィルタ(901)は、ブロックコーディング技術が使用されるときに形成される形状エッジを滑らかにすることができる。SAOフィルタ(902)は、ビデオフレーム内の他のサンプルに対して歪みを低減するために、サンプルに特定のオフセットを適用することができる。ALFフィルタ(903)は、例えば、サンプルのブロックに分類を適用し、次に、当該サンプルのブロックに分類に関連するフィルタを適用することができる。フィルタのフィルタ係数は、エンコーダによって決定され、一部の例ではデコーダに信号で送られてもよい。
【0099】
本開示の態様は、ピクチャ品質を改善するためのハイブリッドビデオコーディング技術における適応フィルタリング技術を提供する。一部の例では、適応混合エキスパートネットワークは、ALFフィルタ(903)などの適応ループフィルタで使用される。一部の例では、適応混合エキスパートネットワークは、後処理フィルタ(931)などの後処理フィルタで使用される。一部の実施形態では、適応混合エキスパートネットワークは、画像ブロック及び画像ブロックの隣接ピクセルを含む隣接ブロックを受信することができ、そして画像ブロックを再構成するために使用された量子化パラメータ(QP)値を受信することができる。適応混合エキスパートネットワークは、QP値に基づいて品質が向上した出力画像ブロックを生成することができる。
【0100】
一部のビデオコーディングの例(例えば、VVC規格)では、ブロックベースの適応フィルタはビデオコーディングで使用することができる。例えば、ブロックベースの適応フィルタは、ブロックベースの適応ループフィルタ(block based adaptive loop filter、BALF)と呼ばれるインループフィルタとして使用することができる。一部の例では、BALFは、ブロックレベル(例えば、4×4ブロックとも呼ばれる4×4ピクセルのブロック)で有限インパルス応答(FIR)フィルタを適応的に切り替えて、ブロックのビデオ品質を向上させることができるインループフィルタである。具体的には、一部の例では、BALFは、2つのステップで実行することができる。BALFの第1のステップでは、4×4ブロックなどのブロックを、ブロックの近傍、例えば4×4ブロックの10×10隣接ブロック(例えば、4×4ブロックは10×10隣接ブロックの中央部分にある)に基づいて、クラスのグループ(例えば、最大100クラス)からあるクラスとして分類する。次に、BALFの第2のステップでは、4×4ブロックの分類に基づいて、FIRフィルタのグループからあるFIRフィルタを選択して10×10隣接ブロックをフィルタリングし、フィルタリングされた4×4ブロックを出力画像ブロックとして取得する。
【0101】
一部の例では、FIRフィルタのグループを事前定義することができ、選択したフィルタのフィルタ係数は、エンコーダとデコーダの両方によって利用可能である。一部の他の例では、選択したFIRフィルタのフィルタ係数は、ウィーナーフィルタの例のように、エンコーダによって計算される。選択したFIRフィルタのフィルタ係数がエンコーダによって計算されると、フィルタ係数はコード化されたビデオビットストリームにエンコードされ、コード化されたビデオビットストリームはデコーダに送信され、選択したFIRフィルタのフィルタ係数をデコーダに信号で送る。
【0102】
一部の例では、フィルタ係数がエンコーダによって計算される場合、エンコーダは、クラスの数及び対応するフィルタ係数を決定して、ピクチャ歪みと対応するフィルタ係数をエンコードするビット数との間の微妙なバランスを達成することができる。一般に、クラスが多いほど歪みは少なくなるが、フィルタ係数をエンコードするビット数を増加させることができる。
【0103】
本開示の一部の態様は、ビデオコーディング用のフィルタにおいて、疎にゲートされた混合エキスパート(MoE)ネットワークを使用する技術を提供する。MoEネットワークは、多数のエキスパートモジュールを使用して入力データを処理し、ゲーティングネットワークを使用してエキスパートモジュールのサブセットを条件付きで選択し、対応する重みを使用して出力を計算するネットワークアーキテクチャである。
【0104】
図10は、MoEネットワーク(1000)の一例を示す。MoEネットワーク(1000)は、ゲーティングネットワーク(1010)と、E
1~E
Nによって示される複数のエキスパートモジュール(1020)とを含み、ここで、Nは、エキスパートモジュールの数であり、正の整数である。エキスパートモジュールE
1~E
Nは、異なるパラメータ又は異なる関数を有することができる。MoEネットワーク(1000)は、入力信号xを受信し、出力信号yを生成する。入力信号xは、ゲーティングネットワーク(1010)及び複数のエキスパートモジュール(1020)に提供される。ゲーティングネットワーク(1010)は、入力信号xに基づいて、エキスパートモジュールE
1~E
Nに対してそれぞれゲーティング重みG
1(x)~G
N(x)を生成する。エキスパートモジュールE
1~E
Nは、入力信号xに基づいてモジュール出力(E
1(x)~E
N(x)で示される)をそれぞれ生成することができる。出力yは、ゲーティング重みG
1(x)~G
N(x)に基づくモジュール出力E
1(x)~E
N(x)の重み付けされた組み合わせである。
【0105】
図11は、MoEネットワーク(1000)などのMoEネットワークによるデータ処理のプロセス(1100)を概説するフローチャートを示す。
【0106】
(S1110)において、MoEネットワーク(1000)は、入力信号xを受信する。
【0107】
(S1120)において、ゲーティングネットワーク(1010)は、入力信号xに基づいて、エキスパートモジュールE1~ENのそれぞれのゲーティング重みを計算する。
【0108】
(S1130)において、入力信号xは、それぞれエキスパートモジュールE1~ENに供給され、エキスパートモジュールE1~ENは、それぞれ、入力信号xに基づいてモジュール出力E1(x)~EN(x)を生成する。
【0109】
(S1140)において、ゲーティング重みに基づいてエキスパートモジュールからのモジュール出力の加重和が計算される。エキスパートモジュールのゲーティング重みがゼロの場合、当該エキスパートモジュールはゲートされ、モジュール出力は出力に含まれないことに留意されたい。
【0110】
(S1150)において、加重和は、MoEネットワーク(1000)の出力信号yとして出力される。
【0111】
一部の例では、MoEネットワーク(1000)及びプロセス(1100)は、言語モデリング及び機械翻訳において使用され、ゲーティング重みは、行列乗算に基づいて決定され得る。例えば、N個のゲーティング重み(例えば、
図10のG
1(x)-G
N(x)、Nはエキスパートモジュールの数)を含むベクトルG(x)は、式(1)~式(3)に従って生成することができる。
【数1】
ここで、H(x)は、式(1)に基づいて計算された要素H(x)
iを有するベクトルであり、Softmax()は、出力ベクトルを生成し、出力ベクトルの成分の合計が1であることを保証する正規化された指数関数であり、Softplus()は、ReLu関数の平滑近似であり、一例ではf(x)=ln(1+e
x)をSoftplus関数と呼ぶことができ、StandardNormal()は、ゼロ平均と単位分散のガウス分布に基づいて乱数を生成する乱数発生器であり、KeepTopK()は、上位k個の値を保持し、残りを-∞(Softmax()が適用された後はゼロになる)に設定するために使用され、W
g及びW
noiseは、トレーニング可能な重み行列であり、kは、ベクトルG(x)内の非ゼロ要素の数である。
【0112】
一部の例では、KeepTopK()関数は、k(kがNよりも小さい)個のゲーティング重みを非ゼロにし、残りのゲーティング重みをゼロにすることができ、また計算を節約するためにスパース性を作り出すことができることに留意されたい。
【0113】
一例では、ゲーティング重みG
i(x)が非ゼロの場合、対応するエキスパートモジュールE
iがアクティブ化されて、モジュール出力E
i(x)を生成する。エキスパートモジュールがモジュール出力を生成すると、モジュール出力は対応するゲーティング重みに基づいて重み付けされる。重み付けされたモジュール出力を組み合わせて、MoEネットワークの最終出力を生成することができる。一部の例では、MoEネットワークの最終出力は、式(4)に従って計算することができる。
【数2】
【0114】
本開示の一部の態様は、適応フィルタリングにおいてMoEネットワークを使用して、ビデオコーデックにおける歪みとレートのバランスをとるための技術を提供する。以下の説明では、MoEネットワークを使用する適応フィルタは、適応MoEフィルタと呼ぶことができる。一部の例では、適応MoEフィルタはBALFの代わりに使用することができ、適応MoEフィルタは、コード化されたビデオビットストリーム内にフィルタ係数をエンコードせずに、フィルタリングに使用できる別個のフィルタの数を100万を超える数に増やすことができる。一部の他の例では、適応MoEフィルタは、後処理で使用することができ、例えば、後処理フィルタ(931)の代わりに使用することができる。
【0115】
一部の例では、適応MoEフィルタは、ブロックベースの適応ループフィルタ(BALF)と同様の方法で動作することができる。具体的には、適応MoEフィルタは、M1×M2ブロックでFIRフィルタを切り替えることができ、ここで、例えば、VVCの場合のようにM1=M2=4である。次に、適応MoEフィルタは、M1×M2ブロックのN1×N2隣接ブロックを入力画像ブロックとすることができ、ここで、例えば、VVCの場合のようにN1=N2=10であり、M1×M2ブロックは、N1×N2隣接ブロックの中央部分であり得る。次に、適応MoEフィルタは、M1×M2フィルタリングされた出力画像ブロックを生成することができる。
【0116】
本開示の一態様によれば、BALFとは異なり、適応MoEフィルタは、N1×N2近傍に基づいてM1×M2ブロックを分類しない。その代わりに、一部の例では、適応MoEフィルタは、M1×M2ブロックのN1×N2隣接ブロックと、M1×M2ブロックに関連する量子化パラメータ値を入力として受信する。入力に基づいて、k(k>1)個のFIRフィルタをN個の事前決定されたFIRフィルタから選択することができ、その後、一部の例では、選択したk個のFIRフィルタの重み付けされた線形結合として最終的なFIRフィルタを生成する。次に、最終的なフィルタを適用してN1×N2近傍をフィルタリングし、M1×M2フィルタリングされた出力ブロックを生成する。一例では、フィルタリングに使用できる一意のフィルタの数がN!/(k!・(N-k)!)より大きく、フィルタ係数をコード化されたビデオビットストリーム内でエンコードする必要はない。一例では、N=1000、k>1であり、線形結合の各重みが2ビットを超える場合、フィルタリング用の一意のフィルタの数は100万を超える。
【0117】
画像及び/又はビデオデータの処理において、画像/ビデオデータは2次元であり、複数のチャネルを含み得る。本開示の一態様によれば、画像及びビデオ処理のためのMoEネットワークを使用して、画像及び/又はビデオデータのためのMoEネットワークのエキスパートモジュール及びゲーティングネットワークは、畳み込みを主動作として使用するように構成することができる。
【0118】
更に、本開示の一態様によれば、画像及び/又はビデオコーディングにおいて、量子化パラメータ(QP)は、デコードされた画像の品質を制御するために使用することができ、QPは、デコードされた画像をどのようにフィルタリングしてピクチャ品質を向上させるかを決定する際に使用することができる。関連技術では、QPは、複数の処理モジュールから1つの処理モジュールを選択する(例えば、複数のフィルタから1つのフィルタを選択する)ために使用される。別の関連技術では、QPは、単一のニューラルネットワークなどの単一の処理モジュールへの入力として使用され、単一のニューラルネットワークは、異なるQP値の画像をフィルタリングするようにトレーニングされる。本開示の一部の実施形態では、QP値は、複数の処理モジュール(例えば、複数のフィルタ)を選択するために使用することができ、選択した処理モジュールは、入力画像ブロックを処理するが、一部の例ではQP値を処理しない。
【0119】
図12は、画像及び/又はビデオ処理用の適応MoEフィルタ(1200)の一例を示す。適応MoEフィルタ(1200)は、ゲーティングネットワーク(1210)と、E
1~E
Nによって示される複数のエキスパートモジュール(1220)とを含み、ここで、Nは、エキスパートモジュールの数であり、正の整数である。エキスパートモジュールE
1~E
Nは、異なるパラメータ又は異なる関数を有することができる。適応MoEネットワーク(1200)は、画像ブロックの隣接ブロックである入力ブロックx及びQP値を受信する。一部の例では、隣接ブロックは、隣接ブロックの中心位置に画像ブロックを含み、また画像ブロックの隣接ピクセルを含む。画像ブロックはQP値に基づいて再構成される。適応MoEネットワーク(1200)は、フィルタリングされた画像ブロックyを生成することができる。入力ブロックx及びQP値は、ゲーティングネットワーク(1210)に提供される。ゲーティングネットワーク(1210)は、入力ブロックx及びQP値に基づいて、エキスパートモジュールE
1~E
Nに対してそれぞれゲーティング重みG
1(x,QP)~G
N(x,QP)を生成する畳み込みニューラルネットワークを含む。入力ブロックxは、エキスパートモジュールE
1~E
Nにも提供される。一部の例では、エキスパートモジュールE
1~E
Nは、異なるフィルタリング機能又は異なるフィルタリングパラメータを有するフィルタである。エキスパートモジュールE
1~E
Nは、入力ブロックxに基づいて、中間フィルタリング出力(F
1(x)~F
N(x)で示される)をそれぞれ生成することができる。フィルタリングされた画像ブロックyは、ゲーティング重みG
1(x,QP)~G
N(x,QP)に基づくF
1(x)~F
N(x)の重み付けされ組み合わせである。
【0120】
図12の例では、適応MoEフィルタ(1200)は、入力として2次元画像データ(例えば、隣接ブロック)を受信し、そして、フィルタリングされた2次元画像データ(例えば、フィルタリングされた画像ブロック)を出力する。一部の例では、畳み込みニューラルネットワークは、エキスパートモジュールE
1~E
N(1220)及び/又はゲーティングネットワーク(1210)で使用される。一部の例では、ゲーティングネットワーク(1210)は、入力ブロック及びQP値(入力ブロックの中央部分で画像ブロックを再構成するために使用される)の両方を入力として受信することができ、ゲーティングネットワーク(1210)は、行列乗算の代わりにニューラルネットワーク構造を使用して、2次元画像データ(例えば、隣接ブロック)とスカラー値(例えば、QP値)を組み合わせて、エキスパートモジュールのアクティブ化及び重み付けのためのN次元ベクトル(例えば、ゲーティング重みG
1(x,QP)~G
N(x,QP))を決定する。
【0121】
一部の例では、ゲーティング重みG1(x,QP)~GN(x,QP)は、アクティブ化のために対応するエキスパートモジュールE1~ENに提供される。例えば、G1(x,QP)が非ゼロの場合、エキスパートモジュールE1がアクティブ化され、中間フィルタリング出力F1(x)を生成する。ただし、G1(x,QP)がゼロの場合、計算を節約するためにエキスパートモジュールE1が非アクティブ化される。
【0122】
図13は、本開示の一実施形態によるニューラルネットワーク構造(1300)の一例を示す。ニューラルネットワーク構造(1300)は、畳み込みニューラルネットワークに基づいており、一例ではゲーティングネットワーク(1210)で使用することができる。
【0123】
図13の例では、ニューラルネットワーク構造(1300)は、3つの畳み込み層(1310)、(1320)、(1330)と、1つの最大値プーリング層(1340)と、1つの線形ロジスティック回帰層(1350)とを含む。一例では、ニューラルネットワーク構造(1300)は、3チャネル入力ブロックx(例えば、YUVチャネル)及び3チャネル入力ブロックの中央部分を再構成するために使用されるQP値を入力として受信する。QP値は3チャネル入力ブロックと連結されて4チャネル入力を形成する。第1の畳み込み層(1310)は、4チャネル入力を受け取り、Mチャネル出力を出力し、例えば、M=32である。第2の畳み込み層及び第3の畳み込み層(1320)、(1330)は両方とも、Mチャネル入力を受け取り、Mチャネル出力を出力する。第3の畳み込み層(1330)からのMチャネル出力は、Mチャネル特徴マップとも呼ばれる。すべての畳み込み層(1310)、(1320)、及び(1330)は、3×3のカーネルサイズを使用でき、Leaky ReLU関数によってアクティブ化される。一例では、最大値プーリング層(1340)は、Mチャネル特徴マップを入力として受け取り、ストライドが2の2×2カーネルを使用した最大値プーリング操作を通じて特徴マップをダウンサンプリングすることができる。結果として得られるダウンサンプリングされた特徴マップは、ベクトルに平坦化され、QP値と連結される。このベクトルは線形ロジスティック回帰層(1350)に渡され、N次元ベクトル
【数3】
が計算される。
【0124】
更に、一例では、ゲーティングネットワーク(1210)は、式(5)、式(6)及び式(7)を使用して、N個のゲーティング重み(例えば、
図12のG
1(x,QP)-G
N(x,QP)、Nは、エキスパートモジュールの数)のベクトルG(x,QP)を決定することができる。ベクトルG(x,QP)は、k個の非ゼロ要素を有する疎ベクトルである。要素G
i(x,QP)が非ゼロの場合、対応するエキスパートモジュールE
iがアクティブ化され、それ以外の場合、要素G
i(x,QP)はゼロであり、対応するエキスパートモジュールE
iはアクティブ化されない。
【数4】
【0125】
本開示の一態様によれば、トレーニング可能な行列W
noiseがゼロでない場合、乱数生成関数StandardNormal()により、式(6)のG(x,QP)は決定論的ではない。一部の例では、非決定論的パラメータを有する適応MoEフィルタ(1200)は、例えば、後処理ユニット(930)において、後処理にのみ使用され、そうでない場合、インループフィルタリングにおいて(非決定論的パラメータを有する)適応MoEフィルタ(1200)を使用すると、エンコーダ側及びデコーダ側で参照ピクチャの不整合が発生し、デコーダエラー及び重大な歪みが発生する可能性がある。一部の例では、トレーニング可能な行列W
noiseを強制的にゼロにすることができ、その後、G(x,QP)が決定論的になり、適応MoEフィルタ(1200)をインループフィルタリングに使用することができる。適応MoEフィルタ(1200)がインループフィルタリングに使用される場合、G(x,QP)は、式(7)及び式(8)を使用して計算され、ここで、
【数5】
は、ニューラルネットワーク構造(1300)からの出力である。
【数6】
【0126】
ニューラルネットワーク構造(1300)は、異なる数の畳み込み層、異なる数の中間チャネル、異なる活性化関数を使用するように修正できることに留意されたい。一例では、1つの線形層ロジスティック回帰に加えて、多層ニューラルネットワークを使用することができる。QP値はまた、ゲーティングネットワーク内の任意の層への入力として、ゲーティングネットワーク内の任意の点(例えば、第2の畳み込み層(1320)、第3の畳み込み層(1330)、最大値プーリング層(1340))で連結することができる。
【0127】
一部の例では、N個のエキスパートモジュールのそれぞれは、出力活性化層のないL×Lカーネルを有する畳み込み層を含む。
【0128】
図14は、一部の例におけるエキスパートモジュール(1420)の図を示す。一例では、エキスパートモジュール(1420)は、エキスパートモジュール(1220)のそれぞれの代わりに使用することができる。エキスパートモジュール(1420)は、畳み込み層(1421)を含む。エキスパートモジュール(1420)は、3チャネル入力ブロックx(例えば、隣接ブロックの中央部分にある画像ブロックの隣接ブロック)であり得る入力ブロックxを受信し、そして3チャネル入力ブロックxを畳み込み層(1421)でフィルタリングすることができる。
【0129】
一例では、トレーニングプロセスを容易にするために、残差接続(1422)を使用して、入力ブロックを畳み込み層(1421)の出力に追加し、エキスパートモジュール(1420)のモジュール出力であるFi(x)を得る。一例では、VVCにおけるBALFフィルタサイズに一致するようにLが7であるように選択される。
【0130】
一部の例では、残差接続(1422)を除去することができることに留意されたい。
【0131】
図14の例では、エキスパートモジュール(1420)は、畳み込み層を使用して入力ブロックをフィルタリングする。エキスパートモジュール(1420)は、複数の中間チャネルを有する複数の畳み込み層、異なるサイズの畳み込みカーネル、異なる活性化関数、及び残差接続を使用するオプションなど、異なる設定の畳み込み層を使用するように修正できることに留意されたい。
【0132】
図15は、適応MoEフィルタ(1200)などの適応MoEフィルタによる画像データ処理のプロセス(1500)を概説するフローチャートを示す。
【0133】
(S1510)において、適応MoEフィルタ(1200)は、隣接ブロックの中央部分にある画像ブロックの隣接ブロックと、画像ブロックを再構成するために使用されるQP値とを受信する。一例では、適応MoEフィルタ(1200)は、N1×N2ブロックを受信する。N1×N2ブロックは、M1×M2ブロック及びM1×M2ブロックの隣接ピクセルを含む。適応MoEフィルタ(1200)はまた、M1×M2ブロックの再構成に使用されるQP値を受信する。
【0134】
(S1520)において、ゲーティングネットワーク(1210)は、ニューラルネットワーク構造(例えば、ニューラルネットワーク構造(1300))を使用して、N1×N2ブロック及びQP値に基づいてエキスパートモジュールE1~ENのそれぞれのゲーティング重みを計算する。
【0135】
(S1530)において、隣接ブロックがエキスパートモジュールによってフィルタリングされ、モジュール出力が生成される。例えば、エキスパートモジュールE1などのエキスパートモジュールは、N1×N2ブロック上で動作し、それに応じてモジュール出力としてM1×M2ブロックを生成することができる。一例では、エキスパートモジュールに対応するゲーティング重みが非ゼロの場合、エキスパートモジュールがアクティブ化される。入力ブロックは、アクティブ化されたエキスパートモジュールによってフィルタリングすることができる。別の例では、入力ブロックは、すべてのエキスパートモジュールによってフィルタリングすることができる。
【0136】
(S1540)において、エキスパートモジュールからのモジュール出力の加重和は、ゲーティング重みに基づいて、例えば式(9)に従って計算される。
【数7】
【0137】
一例では、アクティブ化されたエキスパートモジュールからのモジュール出力の加重和が計算される。別の例では、すべてのエキスパートモジュールからのモジュール出力の加重和が計算される。エキスパートモジュールのゲーティング重みがゼロの場合、モジュール出力は加重和に含まれない。
【0138】
(S1550)において、加重和は、適応MoEフィルタ(1200)によってフィルタリングされた画像ブロックとして出力される。
【0139】
図16は、適応MoEフィルタ(1200)などの適応MoEフィルタによる画像データ処理のプロセス(1600)を概説する別のフローチャートを示す。
【0140】
(S1610)において、適応MoEフィルタ(1200)は、隣接ブロックの中央部分にある画像ブロックの隣接ブロックと、画像ブロックを再構成するために使用されるQP値とを受信する。一例では、適応MoEフィルタ(1200)は、N1×N2ブロックを受信する。N1×N2ブロックは、M1×M2ブロック及びM1×M2ブロックの隣接ピクセルを含む。適応MoEフィルタ(1200)はまた、M1×M2ブロックの再構成に使用されるQP値を受信する。
【0141】
(S1620)において、ゲーティングネットワーク(1210)は、ニューラルネットワーク構造(例えば、ニューラルネットワーク構造(1300))を使用して、N1×N2ブロック及びQP値に基づいてエキスパートモジュールE1~ENのそれぞれのゲーティング重みを計算する。
【0142】
(S1630)において、エキスパートモジュールE1~ENのサブセットがゲーティング重みに基づいてアクティブ化される。一部の例では、非ゼロのゲーティング重みを有するエキスパートモジュールE1~ENのサブセットがアクティブ化され、ゼロのゲーティング重みを有する残りのエキスパートモジュールE1~ENが非アクティブ化される。一例では、ゲーティングネットワーク(1210)は、k個の非ゼロのゲーティング重みを出力するように構成される(kは整数、k>1である)。
【0143】
(S1640)において、隣接ブロックがアクティブ化されたエキスパートモジュールによってフィルタリングされ、モジュール出力が生成される。例えば、アクティブ化されたエキスパートモジュールは、N1×N2ブロック上で動作し、それに応じてモジュール出力としてM1×M2ブロックを生成することができる。隣接ブロックは、アクティブ化されたエキスパートモジュールによってフィルタリングすることができる。
【0144】
(S1650)において、アクティブ化されたエキスパートモジュールからのモジュール出力の加重和が、ゲーティング重みに基づいて、例えば式(9)に従って計算される。
【0145】
(S1660)において、加重和は、適応MoEフィルタ(1200)によってフィルタリングされた画像ブロックとして出力される。
【0146】
一部の実施形態では、適応MoEフィルタは、ビデオ処理におけるノイズ低減のためのインループフィルタとして使用される。一部の例では、適応MoEフィルタのエキスパートモジュールは、M1×M2ブロックのピクチャ品質を向上させるための事前定義されたフィルタとして構成することができる。適応MoEフィルタは、QP値と、M1×M2ブロック及びM1×M2ブロックの隣接ピクセルを含むN1×N2ブロックとを入力として受け取る。
【0147】
N1×N2ブロック及びQP値に基づいて、適応MoEフィルタは、N個の事前定義されたエキスパートモジュールからk個のエキスパートモジュールを選択し、そしてk個のエキスパートモジュールの重みを計算することができ、ここで、k>1である。k個のエキスパートモジュールは、それぞれモジュール出力を計算することができる。各エキスパートモジュールは、1つのM1×M2ブロックを出力する。
【0148】
次に、線形結合用のk個のエキスパートモジュールの計算した重みを使用して、適応MoEフィルタの出力を、選択したk個のエキスパートモジュールのモジュール出力の線形結合として計算する。
【0149】
一部の例では、ゲーティングネットワークからの重みはQPの関数であるが、N個の事前定義されたフィルタのフィルタ係数はQPの関数ではないことに留意されたい。
【0150】
一部の実施形態では、エキスパートモジュールはFIRフィルタである。FIRフィルタは適切に組み合わせることができる。
【0151】
図17は、画像及び/又はビデオ処理用の適応MoEフィルタ(1700)の一例を示す。適応MoEフィルタ(1700)は、ゲーティングネットワーク(1710)と、
図17のFIR
1~FIR
Nによって示される事前定義されたFIRフィルタとして実装される複数のエキスパートモジュール(1720)とを含み、ここでNはエキスパートモジュールの数であり、正の整数である。FIR
1~FIR
Nは異なるパラメータを有することができる。適応MoEフィルタ(1700)は、隣接ブロックの中央部分にある画像ブロックの隣接ブロックxと、画像ブロックの再構成に使用されるQP値とを受信し、そしてフィルタリングされた画像ブロックyを生成することができる。隣接ブロックx及びQP値は、ゲーティングネットワーク(1710)に提供される。ゲーティングネットワーク(1710)は、ニューラルネットワーク構造(1300)などの畳み込みニューラルネットワークを含み、隣接ブロックx及びQP値に基づいて、FIR
1~FIR
Nに対してそれぞれゲーティング重みG
1(x,QP)~G
N(x,QP)を生成することができる。一例では、ゲーティング重みG
1(x,QP)~G
N(x,QP)のうち、k個のゲーティング重みは非ゼロであり、kは1より大きい正の整数である。ゲーティング重みG
1(x,QP)~G
N(x,QP)に基づいて、結合FIRフィルタ(1725)は、線形結合用のゲーティング重みG
1(x,QP)~G
N(x,QP)を使用してFIR
1~FIR
Nの線形結合として決定される。次に、隣接ブロックxが結合FIRフィルタ(1725)に提供され、結合FIRフィルタ(1725)は、フィルタリングされた画像ブロックyを出力する。
【0152】
一例では、FIR1~FIRNのそれぞれは畳み込み演算で実装される。適応MoEフィルタ(1700)を使用すると、1つの畳み込み演算が実行され、フィルタリングされた画像ブロックyが生成される。比較のために、一例では、適応MoEフィルタ(1200)を使用すると、k個の畳み込み演算が実行される。
【0153】
図18は、本開示の一実施形態によるプロセス(1800)を概説するフローチャートを示す。プロセス(1800)は、ニューラルネットワーク処理で、例えばビデオコーデックにおけるニューラルネットワークベースのフィルタで使用することができる。様々な実施形態では、プロセス(1800)は、処理回路、例えば、端末装置(310)、(320)、(330)及び(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などによって実行される。一部の実施形態では、プロセス(1800)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(1800)を実行する。プロセスは(S1801)から始まり、(S1810)に進む。
【0154】
(S1810)において、量子化パラメータ(QP)値に少なくとも部分的に基づいてエキスパートモジュールに関連するゲーティング重みを決定する。エキスパートモジュールは、QP値に基づいて再構成される画像ブロックを含む入力ブロックを処理するように構成される。
【0155】
一部の例では、ゲーティング重みは、量子化パラメータと、画像ブロック及び画像ブロックの隣接ピクセルを含む入力ブロックとに基づいて決定される。一部の例では、ゲーティング重みは、少なくとも1つの畳み込みニューラルネットワーク層を使用して決定される。
【0156】
(S1820)において、ゲーティング重みに基づいてエキスパートモジュールに重みを付けて、画像ブロックに対応する出力画像ブロックを生成する。
【0157】
一部の例では、ゲーティング重みに基づいてエキスパートモジュールからのモジュール出力を組み合わせて、画像ブロックに対応する出力画像ブロックを生成する。
【0158】
一部の例では、ゲーティング重みに基づいてエキスパートモジュールを結合する結合エキスパートモジュールを決定することができる。一例では、エキスパートモジュールは有限インパルス応答(FIR)フィルタである。次に、ゲーティング重みに基づいてFIRフィルタを結合する結合FIRフィルタを決定することができる。結合FIRフィルタを画像ブロックを含む入力ブロックに適用して、出力画像ブロックを生成する。
【0159】
一部の例では、エキスパートモジュールの非ゼロのゲーティング重みを有するサブセットをアクティブ化する。次に、エキスパートモジュールのサブセットに関連するゲーティング重みに基づいてエキスパートモジュールのサブセットのモジュール出力を組み合わせて、画像ブロックに対応する出力画像ブロックを生成する。
【0160】
一部の例では、ゲーティング重みは決定論的な方法で決定される。出力画像ブロックは、参照ピクチャに関連付けられたループ内で生成することができる。
【0161】
一部の例では、ゲーティング重みは、非決定論的な方法で決定される。出力画像ブロックは、参照ピクチャに関連付けられたループ外で生成される。
【0162】
一部の例では、エキスパートモジュールはそれぞれ、画像ブロックを含む入力ブロックに応答してモジュール出力を生成する畳み込みニューラルネットワークを含むことができる。
【0163】
次に、プロセスは(S1899)に進む。
【0164】
上記の説明における様々なユニット、ブロック、及びモジュールは、処理回路、ソフトウェア命令を実行するプロセッサ、ハードウェア及びソフトウェアの組み合わせなどの様々な技術によって実装することができることに留意されたい。
【0165】
上記の技術は、コンピュータ可読命令を使用し、且つ1つ又は複数のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして実装することができる。例えば、
図19は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1900)を示す。
【0166】
コンピュータソフトウェアは、任意の適切な機械コード又はコンピュータ言語を使用してコード化することができ、これらの機械コード又はコンピュータ言語は、アセンブリ、コンパイル、リンク、又は同様のメカニズムを受けて、コンピュータ中央処理装置(central processing unit、CPU)、グラフィック処理装置(Graphics Processing Unit、GPU)などによって直接、又は解釈、マイクロコード実行などを通じて実行できる命令を含むコードを作成することができる。
【0167】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置などを含めて、様々なタイプのコンピュータ又はその構成要素上で実行することができる。
【0168】
コンピュータシステム(1900)について
図19に示されている構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関するいかなる限定も示唆することを意図するものではない。また、構成要素の構成は、コンピュータシステム(1900)の例示的な実施形態に示されている構成要素のいずれか1つ又は組み合わせに関連する依存性又は要件を有すると解釈されるべきではない。
【0169】
コンピュータシステム(1900)は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)を介して、1人以上の人間ユーザによる入力に応答することができる。ヒューマンインターフェースデバイスはまた、オーディオ(音声、音楽、周囲音など)、画像(走査画像、静止画像カメラから取得した写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定のメディアをキャプチャするために使用することができる。
【0170】
入力ヒューマンインターフェースデバイスは、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチスクリーン(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイクロフォン(1906)、スキャナ(1907)、及びカメラ(1908)のうちの1つ又は複数を含むことができる(それぞれのうちの1つのみを示す)。
【0171】
コンピュータシステム(1900)はまた、特定のヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び匂い/味覚を通じて、1人以上の人間ユーザの感覚を刺激することができる。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1910)、データグローブ(図示せず)、又はジョイスティック(1905)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(1909)、ヘッドフォン(図示せず)など)、視覚出力デバイス(それぞれがタッチスクリーン入力機能を有しても有しなくてもよく、それぞれが触覚フィードバック機能を有しても有しなくてもよく、一部がステレオグラフィック出力などの手段を介して2次元視覚出力又は3次元以上の出力を出力することができるCRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1910)、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)など)、及びプリンタ(図示せず)を含むことができる。
【0172】
コンピュータシステム(1900)はまた、人間がアクセス可能な記憶装置、及びCD/DVD付きのCD/DVD ROM/RW(1920)を含む光学媒体又は同様の媒体(1921)、サムドライブ(1922)、リムーバブルハードドライブ又はソリッドステートドライブ(1923)、テープ及びフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの特殊なROM/ASIC/PLDベースのデバイス(図示せず)などの関連する媒体を含むことができる。
【0173】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
【0174】
コンピュータシステム(1900)はまた、1つ又は複数の通信ネットワーク(1955)へのインターフェース(1954)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは更に、ローカル、広域、メトロポリタン、自動車及び産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例としては、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、及び地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBusを含む自動車及び産業用ネットワークなどが挙げられる。特定のネットワークでは一般に、特定の汎用データポート又は周辺バス(1949)(例えば、コンピュータシステム(1900)のUSBポートなど)に接続された外部ネットワークインターフェースアダプタが必要であり、他のネットワークは、一般に、以下に説明されるように、システムバスに接続することによってコンピュータシステム(1900)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1900)は他のエンティティと通信することができる。そのような通信は、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの一方向、受信のみ(例えば、放送TV)、一方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、又は双方向であり得る。上記のように、特定のプロトコル及びプロトコルスタックは、これらのネットワーク及びネットワークインターフェースのそれぞれで使用することができる。
【0175】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、及びネットワークインターフェースは、コンピュータシステム(1900)のコア(1940)に接続することができる。
【0176】
コア(1940)は、1つ又は複数の中央処理装置(CPU)(1941)、グラフィック処理装置(GPU)(1942)、フィールドプログラマブルゲートエリア(Field Programmable Gate Area、FPGA)の形態の特殊なプログラマブル処理ユニット(1943)、特定のタスク用のハードウェアアクセラレータ(1944)、グラフィックアダプタ(1950)などを含むことができる。これらのデバイスは、読み取り専用メモリ(Read-only memory、ROM)(1945)、ランダムアクセスメモリ(1946)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置(1947)と共に、システムバス(1948)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(1948)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ又は複数の物理プラグの形態でアクセス可能である。周辺機器は、コアのシステムバス(1948)に直接接続することも、周辺バス(1949)を介して接続することもできる。一例では、スクリーン(1910)は、グラフィックアダプタ(1950)に接続することができる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
【0177】
CPU(1941)、GPU(1942)、FPGA(1943)、及びアクセラレータ(1944)は、特定の命令を実行することができ、これらの命令は、組み合わせて前述のコンピュータコードを構成することができる。そのコンピュータコードは、ROM(1945)又はRAM(1946)に記憶することができる。移行データはRAM(1946)に記憶することもできるが、永続データは、例えば内部大容量記憶装置(1947)に記憶することができる。1つ又は複数のCPU(1941)、GPU(1942)、大容量記憶装置(1947)、ROM(1945)、RAM(1946)などと密接に関連付けることができるキャッシュメモリを使用することで、任意のメモリデバイスへの高速記憶及び検索を可能にすることができる。
【0178】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、又はそれらは、コンピュータソフトウェア技術の当業者によく知られ、利用可能な種類のものであってもよい。
【0179】
限定ではなく、一例として、アーキテクチャ、具体的にはコア(1940)を有するコンピュータシステム(1900)は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ又は複数の有形のコンピュータ可読媒体に具体化されたソフトウェアを実行する結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介したユーザがアクセス可能な大容量記憶装置に関連付けられた媒体、及びコア内部大容量記憶装置(1947)又はROM(1945)などの非一時的な性質を有するコア(1940)の特定の記憶装置であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1940)によって実行され得る。コンピュータ可読媒体は、特定の必要に応じて、1つ又は複数のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1940)、特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1946)に記憶されたデータ構造を定義すること、及びソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含めて、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。更に又は代替として、コンピュータシステムは、ソフトウェアの代わりに又はソフトウェアと共に動作して本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行することができる回路(例えば、アクセラレータ(1944))に配線され、又は他の方法で具体化された論理の結果として機能を提供することができる。ソフトウェアへの言及は、論理を包含することができ、必要に応じてその逆も同様である。コンピュータ可読媒体への言及は、実行用のソフトウェアを記憶する回路(集積回路(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:コーディングユニット
【0180】
本開示は、いくつかの非限定的な例示的な実施形態を説明してきたが、本開示の範囲内にある変更、変形、及び様々な置換同等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具体化し、したがってその精神及び範囲内にある多数のシステム及び方法を考案することができることが理解されるであろう。
【符号の説明】
【0181】
101 点
102 矢印
103 矢印
104 ブロック