本開示は、様々な変更を加えることができ、様々な実施形態を有することができるところ、特定の実施形態を図面に例示し、詳細に説明しようとする。しかし、これは、本開示を特定の実施形態に限定しようとするものではない。本文書で常用する用語は、単に特定の実施形態を説明するために使用されたものであって、本開示の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明らかに異なるように意味しない限り、複数の表現を含む。本明細書において、「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、又はこれらを組み合わせたものが存在することを指定しようとするものであり、1つ又はそれ以上の他の特徴や、数字、ステップ、動作、構成要素、部品、又はこれらを組み合わせたものの存在又は付加可能性を予め排除しないことと理解されるべきである。
一方、本開示において説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで実現されるということを意味するものではない。例えば、各構成のうち、2つ以上の構成を合わせて1つの構成をなすことがあり、1つの構成が複数の構成に分けられることもある。各構成が統合及び/又は分離された実施形態も、本文書の本質から逸脱しない限り、本開示の権利範囲に含まれる。
本明細書において「AまたはB(A or B)」は、「Aのみ」、「Bのみ」、または「AとBの両方」を意味することができる。他に表現すれば、本明細書において「AまたはB(A or B)」は、「A及び/又はB(A and/or B)」と解釈されることができる。例えば、本明細書において「A、B、またはC(A、B or C)」は、「Aのみ」、「Bのみ」、「Cのみ」、または「A、B、及びCの任意の全ての組み合わせ(any combination of A、B and C)」を意味することができる。
本明細書において使用されるスラッシュ(/)やコンマ(comma)は、「及び/又は(and/or)」を意味することができる。例えば、「A/B」は、「A及び/又はB」を意味することができる。これにより、「A/B」は、「Aのみ」、「Bのみ」、または「AとBの両方」を意味することができる。例えば、「A、B、C」は、「A、B、またはC」を意味することができる。
本明細書において「少なくとも1つのA及びB(at least oneof A and B)」は、「Aのみ」、「Bのみ」、または「AとBの両方」を意味することができる。また、本明細書において「少なくとも1つのAまたはB(at least one of A or B)」や「少なくとも1つのA及び/又はB(at least one of A and/or B)」という表現は、「少なくとも1つのA及びB(at least one of A and B)」と同様に解釈されることができる。
また、本明細書において「少なくとも1つのA、B、及びC(at least one of A、B and C)」は、「Aのみ」、「Bのみ」、「Cのみ」、または「A、B、及びCの任意の全ての組み合わせ(any combination of A、B and C)」を意味することができる。また、「少なくとも1つのA、B、またはC(at least one of A、B or C)」や「少なくとも1つのA、B、及び/又はC(at least one of A、B and/or C)」は、「少なくとも1つのA、B、及びC(at least one of A、B and C)」を意味することができる。
また、本明細書で使用される括弧は、“例えば(for example)”を意味することができる。具体的に、“予測(イントラ予測)”で表示された場合、“予測”の一例として“イントラ予測”が提案されたものである。他の表現としては、本明細書の“予測”は、“イントラ予測”に制限(limit)されるものではなく、“イントラ予測”が“予測”の一例として提案されたものである。また、“予測(即ち、イントラ予測)”で表示された場合にも、“予測”の一例として“イントラ予測”が提案されたものである。
本明細書において1つの図面内で個別的に説明される技術的特徴は、個別的に実現されることができ、同時に実現されることもできる。
以下、添付した図面を参照して、本開示の望ましい実施形態をより詳細に説明しようとする。以下、図面上の同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素について重複した説明は省略されることができる。
図1は、本開示が適用され得るビデオ/画像コーディングシステムの例を概略的に示す。
図1に示すように、ビデオ/画像コーディングシステムは、第1の装置(ソースデバイス)及び第2の装置(受信デバイス)を含むことができる。ソースデバイスは、エンコードされたビデオ(video)/画像(image)情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達することができる。
前記ソースデバイスは、ビデオソース、エンコード装置、送信部を含むことができる。前記受信デバイスは、受信部、デコード装置、及びレンダラを含むことができる。前記エンコード装置は、ビデオ/画像エンコード装置と呼ばれることができ、前記デコード装置は、ビデオ/画像デコード装置と呼ばれることができる。送信機は、エンコード装置に含まれることができる。受信機は、デコード装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
ビデオソースは、ビデオ/画像のキャプチャ、合成または生成過程などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、1つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成できる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成されることができ、この場合、ビデオ/画像キャプチャ過程を関連データが生成される過程に代替されることができる。
エンコード装置は、入力ビデオ/画像をエンコードすることができる。エンコード装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコードされたデータ(エンコードされたビデオ/画像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
送信部は、ビットストリーム形態で出力されたエンコードされたビデオ/画像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な格納媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコード装置に伝達できる。
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/画像をデコードすることができる。
レンダラは、デコードされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介してディスプレイされることができる。
この文書は、ビデオ/画像コーディングに関するものである。例えば、この文書において開示された方法/実施形態は、VVC(versatile video coding)標準、EVC(essential video coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of audio video coding standard)、または次世代ビデオ/画像コーディング標準(ex.H.267 or H.268等)に開示される方法に適用されることができる。
この文書では、ビデオ/画像コーディングに関する様々な実施形態を提示し、他の言及がない限り、前記実施形態は、互いに組み合わせて実行されることもできる。
この文書において、ビデオ(video)は、時間の流れによる一連の画像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定時間帯の1つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、1つ以上のCTU(coding tree unit)を含むことができる。1つのピクチャは、1つ以上のスライス/タイルで構成されることができる。
タイルは、特定タイル列及び特定タイル列以内のCTUの四角領域である(A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture)。前記タイル列は、CTUの四角領域であり、前記四角領域は、前記ピクチャの高さと同じ高さを有し、幅は、ピクチャパラメータセット内のシンタックス要素によって明示されることができる(The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set)。前記タイル行は、CTUの四角領域であり、前記四角領域は、ピクチャパラメータセット内のシンタックス要素によって明示される幅を有し、高さは、前記ピクチャの高さと同一であることができる(The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture)。タイルスキャンは、ピクチャをパーティショニングするCTUの特定の順次的オーダリングを表すことができ、前記CTUは、タイル内のCTUラスタースキャンで連続的に整列されることができ、ピクチャ内のタイルは、前記ピクチャの前記タイルのラスタースキャンで連続的に整列されることができる(A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。スライスは、複数の完全なタイルまたは1つのNALユニットに含まれることができるピクチャの1つのタイル内の複数の連続的なCTU行を含むことができる。この文書においてタイルグループとスライスとは混用されることができる。例えば、本文書においてtile group/tile group headerは、slice/slice headerと呼ばれることができる。
一方、1つのピクチャは、2つ以上のサブピクチャに区分されることができる。サブピクチャは、ピクチャ内の1つ以上のスライスの四角領域であることができる(an rectangular region of one or more slices within a picture)。
ピクセル(pixel)またはペル(pel)は、1つのピクチャ(または、画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用され得る。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。または、サンプルは、空間ドメインでのピクセル値を意味することもでき、このようなピクセル値が周波数ドメインに変換されると、周波数ドメインでの変換係数を意味することもできる。
ユニット(unit)は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び当該領域に関連した情報のうち少なくとも1つを含むことができる。1つのユニットは、1つのルマブロック及び2つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(または、サンプルアレイ)、または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
図2は、本開示が適用され得るビデオ/画像エンコード装置の構成を概略的に説明する図である。以下、ビデオエンコード装置とは、画像エンコード装置を含むことができる。
図2に示すように、エンコード装置200は、画像分割部(image partitioner)210、予測部(predictor)220、レジデュアル処理部(residual processor)230、エントロピーエンコード部(entropy encoder)240、加算部(adder)250、フィルタリング部(filter)260、及びメモリ(memory)270を備えて構成されることができる。予測部220は、インター予測部221及びイントラ予測部222を備えることができる。レジデュアル処理部230は、変換部(transformer)232、量子化部(quantizer)233、逆量子化部(dequantizer)234、逆変換部(inverse transformer)235を備えることができる。レジデュアル処理部230は、減算部(subtractor、231)をさらに備えることができる。加算部250は、復元部(reconstructor)または復元ブロック生成部(recontructged block generator)と呼ばれることができる。上述した画像分割部210、予測部220、レジデュアル処理部230、エントロピーエンコード部240、加算部250、及びフィルタリング部260は、実施形態によって1つ以上のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)によって構成されることができる。また、メモリ270は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体によって構成されることもできる。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに備えることもできる。
画像分割部210は、エンコード装置200に入力された入力画像(または、ピクチャ、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、1つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/又はターナリ構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/又はターナリ構造がその後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本開示に係るコーディング手順が行われ得る。この場合、画像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使用されることができ、または、必要に応じてコーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使用されることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに備えることができる。この場合、前記予測ユニット及び前記変換ユニットは、各々上述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であることができ、前記変換ユニットは、変換係数を導く単位及び/又は変換係数からレジデュアル信号(residual signal)を導く単位であることができる。
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)等の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、画像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
エンコード装置200は、入力画像信号(原本ブロック、原本サンプルアレイ)から、インター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成でき、生成されたレジデュアル信号は、変換部232に送信される。この場合、図示されたように、エンコード装置200内で入力画像信号(原本ブロック、原本サンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231と呼ばれることができる。予測部は、処理対象ブロック(以下、現在ブロックという)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成できる。予測部は、現在ブロックまたはCU単位でイントラ予測が適用されるか、またはインター予測が適用されるか決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する様々な情報を生成してエントロピーエンコード部240に伝達することができる。予測に関する情報は、エントロピーエンコード部240でエンコードされてビットストリーム形態で出力されることができる。
イントラ予測部222は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの周辺(neighbor)に位置することができ、または、離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示であり、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用され得る。イントラ予測部222は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、周辺ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的周辺ブロックを含む参照ピクチャとは同じであることができ、異なることもできる。前記時間的周辺ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(col CU)などの名前で呼ばれることができ、前記時間的周辺ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成できる。様々な予測モードに基づいてインター予測が行われ得るし、例えば、スキップモードとマージモードとの場合に、インター予測部221は、周辺ブロックの動き情報を現在ブロックの動き情報として利用することができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)をシグナリングすることにより、現在ブロックの動きベクトルを指示することができる。
予測部220は、後述する様々な予測方法に基づいて予測信号を生成できる。例えば、予測部は、1つのブロックに対する予測のためにイントラ予測またはインター予測を適用できるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と類似して行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを利用できる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
前記予測部(インター予測部221及び/又は前記イントラ予測部222を備える)を介して生成された予測信号は、復元信号を生成するために用いられるか、レジデュアル信号を生成するために用いられることができる。変換部232は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成できる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)のうち、少なくとも1つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとするとき、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正四角形の同じサイズを有するピクセルブロックに適用されることができ、正四角形でない可変サイズのブロックにも適用されることができる。
量子化部233は、変換係数を量子化してエントロピーエンコード部240に送信され、エントロピーエンコード部240は、量子化された信号(量子化された変換係数に関する情報)をエンコードしてビットストリームに出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部233は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列することができ、前記1次元ベクトル形態の量子化された変換係数に基づいて前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコード部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような様々なエンコード方法を行うことができる。エントロピーエンコード部240は、量子化された変換係数の他に、ビデオ/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値等)とともに、または別にエンコードすることもできる。エンコードされた情報(ex.エンコードされたビデオ/画像情報)は、ビットストリーム形態でNAL(network abstraction layer)ユニット単位で送信または格納されることができる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書においてエンコード装置からデコード装置に伝達/シグナリングされる情報及び/又はシンタックス要素は、ビデオ/画像情報に含まれることができる。前記ビデオ/画像情報は、上述したエンコード手順を介してエンコードされて前記ビットストリームに含まれることができる。前記ビットストリームは、ネットワークを介して送信されることができ、またはデジタル格納媒体に格納されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な格納媒体を含むことができる。エントロピーエンコード部240から出力された信号は、送信する送信部(図示せず)及び/又は格納する格納部(図示せず)がエンコード装置200の内/外部エレメントとして構成されることができ、または送信部は、エントロピーエンコード部240に備えられることもできる。
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元できる。加算部155は、復元されたレジデュアル信号をインター予測部221またはイントラ予測部222から出力された予測信号に加算することによって復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成され得る。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部250は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
一方、ピクチャエンコード及び/又は復元過程でLMCS(luma mapping with chrom ascaling)が適用されることもできる。
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に対する説明で後述するように、フィルタリングに関する多様な情報を生成してエントロピーエンコード部240に伝達できる。フィルタリング関する情報は、エントロピーエンコード部240でエンコードされてビットストリーム形態で出力されることができる。
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使われることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置200とデコード装置での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ270のDPBは。修正された復元ピクチャをインター予測部221での参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するためにインター予測部221に伝達できる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達できる。
一方、本文書において量子化/逆量子化及び/又は変換/逆変換のうち、少なくとも1つは省略されることができる。前記量子化/逆量子化が省略される場合、前記量子化された変換係数は、変換係数と呼ばれることができる。前記変換/逆変換が省略される場合、前記変換係数は、係数またはレジデュアル係数と呼ばれることができ、または、表現の統一性のために、変換係数と依然として呼ばれることもできる。
また、本文書において量子化された変換係数及び変換係数は、各々変換係数及びスケーリングされた(scaled)変換係数と称されることができる。この場合、レジデュアル情報は、変換係数(等)に関する情報を含むことができ、前記変換係数(等)に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。前記レジデュアル情報(または、前記変換係数(等)に関する情報)に基づいて変換係数が導出され得るし、前記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出され得る。前記スケーリングされた変換係数に対する逆変換(変換)に基づいてレジデュアルサンプルが導出され得る。これは、本文書の他の部分でも同様に適用/表現されることができる。
図3は、本開示が適用され得るビデオ/画像デコード装置の構成を概略的に説明する図である。
図3に示すように、デコード装置300は、エントロピーデコード部(entropy decoder)310、レジデュアル処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、及びメモリ(memoery)360を備えて構成されることができる。予測部330は、イントラ予測部331及びインター予測部332を備えることができる。レジデュアル処理部320は、逆量子化部(dequantizer)321及び逆変換部(inverse transformer)322を備えることができる。上述したエントロピーデコード部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施形態によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに備えることもできる。
ビデオ/画像情報を含むビットストリームが入力されれば、デコード装置300は、図2のエンコード装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元することができる。例えば、デコード装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出できる。デコード装置300は、エンコード装置で適用された処理ユニットを用いてデコードを行うことができる。したがって、デコードの処理ユニットは、例えば、コーディングユニットであることができ、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/又はターナリツリー構造にしたがって分割されることができる。コーディングユニットから1つ以上の変換ユニットが導出され得る。そして、デコード装置300を介してデコード及び出力された復元画像信号は、再生装置を介して再生されることができる。
デコード装置300は、図3のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコード部310を介してデコードされることができる。例えば、エントロピーデコード部310は、前記ビットストリームをパーシングして画像復元(または、ピクチャ復元)に必要な情報(ex.ビデオ/画像情報)を導出できる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコード装置は、さらに前記パラメータセットに関する情報及び/又は前記一般制限情報に基づいてピクチャをデコードすることができる。本文書において後述されるシグナリング/受信される情報及び/又はシンタックス要素は、前記デコード手順を介してデコードされて、前記ビットストリームから取得されることができる。例えば、エントロピーデコード部310は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法を基にビットストリーム内の情報をデコードし、画像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力できる。より詳細に、CABACエントロピーデコード方法は、ビットストリームで各シンタックス要素に該当するビンを受信し、デコード対象シンタックス要素情報と周辺及びデコード対象ブロックのデコード情報、あるいは以前ステップでデコードされたシンボル/ビンの情報を利用して文脈(context)モデルを決定し、決定された文脈モデルによってビン(bin)の発生確率を予測し、ビンの算術デコード(arithmetic decoding)を行って、各シンタックス要素の値に該当するシンボルを生成できる。このとき、CABACエントロピーデコード方法は、文脈モデル決定後、次のシンボル/ビンの文脈モデルのためにデコードされたシンボル/ビンの情報を利用して文脈モデルをアップデートすることができる。エントロピーデコード部310でデコードされた情報のうち、予測に関する情報は、予測部(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコード部310でエントロピーデコードが行われたレジデュアル値、すなわち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部320に入力されることができる。レジデュアル処理部320は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出できる。また、エントロピーデコード部310でデコードされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置300の内/外部エレメントとしてさらに構成されることができ、または受信部は、エントロピーデコード部310の構成要素であることもできる。一方、本文書に係るデコード装置は、ビデオ/画像/ピクチャデコード装置と呼ばれることができ、前記デコード装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコード部310を備えることができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、及びイントラ予測部331のうち、少なくとも1つを備えることができる。
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコード装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコード部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
予測部330は、後述する様々な予測方法に基づいて予測信号を生成できる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用できるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と類似して行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを利用できる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/画像情報に含まれてシグナリングされることができる。
イントラ予測部331は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの周辺(neighbor)に位置でき、または離れて位置することもできる。イントラ予測において、予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、周辺ブロックに適用された予測モードを利用し、現在ブロックに適用される予測モードを決定することもできる。
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、周辺ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロックまたはサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)と、を含むことができる。例えば、インター予測部332は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出できる。多様な予測モードに基づいてインター予測が実行されることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
加算部340は、取得されたレジデュアル信号を予測部(インター予測部332及び/又はイントラ予測部331を備える)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加算することによって復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成できる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用され得る。
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることができ、後述するように、フィルタリングを経て出力されることもでき、または、次のピクチャのインター予測のために使われることもできる。
一方、ピクチャデコード過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ360、具体的に、メモリ360のDPBに送信できる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使われることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するためにインター予測部332に伝達できる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部331に伝達できる。
本明細書において、エンコード装置200のフィルタリング部260、インター予測部221、及びイントラ予測部222で説明された実施形態は、各々デコード装置300のフィルタリング部350、インター予測部332、及びイントラ予測部331にも同一または対応するように適用されることができる。
一方、前述したように、ビデオコーディングを実行するにあたって圧縮効率を上げるために予測を実行する。それによって、コーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコード装置及びデコード装置で同様に導出され、前記エンコード装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに関する情報(レジデュアル情報)をデコード装置にシグナリングすることで画像コーディング効率を上げることができる。デコード装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックを加算して復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコード装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連したレジデュアル情報を(ビットストリームを介して)デコード装置にシグナリングすることができる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出できる。デコード装置は、予測されたブロックと前記レジデュアルブロックに基づいて復元ピクチャを生成することができる。また、エンコード装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
図4は、インター予測の手順を例示的に示す。
図4を参照すると、インター予測の手順は、インター予測モード決定ステップと、決定された予測モードによる動き情報導出ステップと、導出された動き情報に基づいた予測実行(予測サンプルの生成)ステップと、を含むことができる。前記インター予測の手順は、前述したように、エンコーディング装置及びデコーディング装置で実行されることができる。本文書において、コーディング装置とは、エンコーディング装置及び/又はデコーディング装置を含むことができる。
図4を参照すると、コーディング装置は、現在ブロックに対するインター予測モードを決定する(S400)。ピクチャ内の現在ブロックの予測のために多様なインター予測モードが使用できる。例えば、マージモード、スキップモード、MVP(motion vector prediction)モード、アフィン(Affine) モード、サブブロックマージモード、MMVD(merge with MVD)モード等の多様なモードが使用できる。DMVR(Decoder side motion vector refinement)モード、AMVR(adaptive motion vector resolution)モード、Bi-prediction with CU-level weight(BCW)、Bi-directional optical flow(BDOF)等が付随的なモードとしてさらに、又は代わりに使用できる。アフィンモードは、アフィン動き予測(affine motion prediction)モードとも呼ばれ得る。MVPモードは、AMVP(advanced motion vector prediction)モードとも呼ばれ得る。本文書において、一部モード及び/又は一部モードにより導出された動き情報の候補は、他のモードの動き情報に関する候補のうちの一つに含まれることもある。例えば、HMVP候補は、前記マージ/スキップモードのマージ候補に追加されることがあり、或いは前記MVPモードのmvp候補に追加されることもある。前記HMVP候補が前記マージモード又はスキップモードの動き情報の候補に使用される場合、前記HMVP候補は、HMVPマージ候補とも呼ばれ得る。
現在ブロックのインター予測モードを指す予測モード情報がエンコーディング装置からデコーディング装置にシグナリングされることができる。前記予測モード情報は、ビットストリームに含まれてデコーディング装置に受信されることができる。前記予測モード情報は、多数の候補モードのうちの一つを指示するインデックス情報を含むことができる。或いは、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、前記予測モード情報は、一つ以上のフラグを含むことができる。例えば、スキップフラグをシグナリングしてスキップモードの適用可否を指示し、スキップモードが適用されない場合に、マージフラグをシグナリングしてマージモードの適用可否を指示し、マージモードが適用されない場合に、MVPモード適用されるものと指示するか、追加的な区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立的なモードでシグナリングされることもあり、或いはマージモード又はMVPモード等に従属的なモードでシグナリングされることもある。例えば、アフィンモードは、アフィンマージモード及びアフィンMVPモードを含むことができる。
コーディング装置は、前記現在ブロックに対する動き情報を導出する(S410)。前記動き情報の導出を前記インター予測モードに基づいて導出されることができる。
コーディング装置は、現在ブロックの動き情報を用いてインター予測を実行することができる。エンコーディング装置は、動き推定(motion estimation)手順を介して、現在ブロックに対する最適の動き情報を導出することができる。例えば、エンコーディング装置は、現在ブロックに対する原本ピクチャ内の原本ブロックを用いて、相関性の高い類似する参照ブロックを参照ピクチャ内の決められた探索範囲内で分数ピクセル単位で探索することができ、これを介して動き情報を導出することができる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現在ブロック(又は現在ブロックのテンプレート)と参照ブロック(又は参照ブロックのテンプレート)との間のSADに基づいて計算されることができる。この場合、探索領域内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて、様々な方法によってデコーディング装置にシグナリングされることができる。
コーディング装置は、前記現在ブロックに対する動き情報に基づいてインター予測を実行する(S420)。コーディング装置は、前記動き情報に基づいて、前記現在ブロックに対する予測サンプルを導出することができる。前記予測サンプルを含む現在ブロックは、予測されたブロックと呼ばれ得る。
図5は、インター予測においてマージモードを説明するための図面である。
マージモード(merge mode)が適用される場合、現在予測ブロックの動き情報が直接的に送信されずに、周辺予測ブロックの動き情報を利用して前記現在予測ブロックの動き情報を導くようになる。したがって、マージモードを用いたことを報知するフラグ情報及び周辺のどの予測ブロックを用いたかを報知するマージインデックスを送信することによって現在予測ブロックの動き情報を指示できる。前記マージモードは、レギュラーマージモード(regular merge mode)と呼ばれることができる。例えば、前記マージモードは、regular_merge_flagシンタックス要素の値が1である場合に適用されることができる。
エンコード装置は、マージモードを行うために、現在予測ブロックの動き情報を導くために用いられるマージ候補ブロック(merge candidate block)をサーチ(search)しなければならない。例えば、前記マージ候補ブロックは、最大5個まで用いられることができるが、本文書の実施形態(等)は、これに限定されない。そして、前記マージ候補ブロックの最大個数は、スライスヘッダまたはタイルグループヘッダで送信されることができるが、本文書の実施形態(等)は、これに限定されない。前記マージ候補ブロックを探した後、エンコード装置は、マージ候補リストを生成でき、これらのうち、最も小さい費用を有するマージ候補ブロックを最終マージ候補ブロックとして選択することができる。
本文書は、前記マージ候補リストを構成するマージ候補ブロックに対する様々な実施形態を提供できる。
例えば、前記マージ候補リストは、5個のマージ候補ブロックを用いることができる。例えば、4個の空間的マージ候補(spatial merge candidate)と1個の時間的マージ候補(temporal merge candidate)とを利用できる。具体的な例として、空間的マージ候補の場合、図4に示されたブロックを空間的マージ候補として用いることができる。以下、前記空間的マージ候補または後述する空間的MVP候補は、SMVPと呼ばれることができ、前記時間的マージ候補または後述する時間的MVP候補は、TMVPと呼ばれることができる。
前記現在ブロックに対するマージ候補リストは、例えば、次のような手順に基づいて構成されることができる。
コーディング装置(エンコーディング装置/デコーディング装置)は、現在ブロックの空間的周辺ブロックを探索し、導出された空間的マージ候補をマージ候補リストに挿入することができる。例えば、前記空間的周辺ブロックは、前記現在ブロックの左下側角の周辺ブロック、左側の周辺ブロック、右上側角の周辺ブロック、上側の周辺ブロック、左上側角の周辺ブロックを含むことができる。但し、これは例示であって、前述した空間的周辺ブロック以外にも、右側の周辺ブロック、下側の周辺ブロック、右下側の周辺ブロック等、追加的な周辺ブロックがさらに前記空間的周辺ブロックとして使用できる。コーディング装置は、前記空間的周辺ブロックを優先順位に基づいて探索して利用可能なブロックを検出し、検出されたブロックの動き情報を前記空間的マージ候補として導出できる。例えば、エンコーディング装置又はデコーディング装置は、図5に示された5個のブロックをA1->B1->B0->A0->B2のように順序通り探索して、利用可能な候補を順次にインデキシングし、マージ候補リストで構成することができる。
コーディング装置は、前記現在ブロックの時間的周辺ブロックを探索し、導出された時間的マージ候補を前記マージ候補リストに挿入することができる。前記時間的周辺ブロックは、前記現在ブロックが位置する現在ピクチャと異なるピクチャである参照ピクチャ上に位置することができる。前記時間的周辺ブロックが位置する参照ピクチャは、コロケーテッド(collocated)ピクチャまたはコル(col)ピクチャと呼ばれることができる。前記時間的周辺ブロックは、前記コル(col)ピクチャ上での前記現在ブロックに対する同一位置ブロック(co-located block)の右下側コーナー周辺ブロック及び右下側センターブロックの順に探索されることができる。一方、動き情報圧縮(motion data compression)が適用される場合、前記コル(col)ピクチャに一定格納単位毎に特定動き情報を代表動き情報として格納することができる。この場合、前記一定格納単位内の全てのブロックに対する動き情報を格納する必要がなく、これを介して動き情報圧縮(motion data compression)効果を得ることができる。この場合、一定格納単位は、例えば、16×16サンプル単位、または8×8サンプル単位などで予め決められることができ、またはエンコード装置からデコード装置に前記一定格納単位に対するサイズ情報がシグナリングされることもできる。前記動き情報圧縮(motion data compression)が適用される場合、前記時間的周辺ブロックの動き情報は、前記時間的周辺ブロックが位置する前記一定格納単位の代表動き情報に代替されることができる。すなわち、この場合、実現の側面から見ると、前記時間的周辺ブロックの座標に位置する予測ブロックでない、前記時間的周辺ブロックの座標(左上端サンプルポジション)に基づいて一定値の分だけ算術的右側シフト後、算術的左側シフトした位置をカバーする予測ブロックの動き情報に基づいて前記時間的マージ候補が導出され得る。例えば、前記一定格納単位が2n×2nサンプル単位である場合、前記時間的周辺ブロックの座標が(xTnb、yTnb)とすれば、修正された位置である((xTnb>>n)<<n)、(yTnb>>n)<<n))に位置する予測ブロックの動き情報が前記時間的マージ候補のために使用されることができる。具体的に、例えば、前記一定格納単位が16×16サンプル単位である場合、前記時間的周辺ブロックの座標が(xTnb、yTnb)とすれば、修正された位置である((xTnb>>4)<<4)、(yTnb>>4)<<4))に位置する予測ブロックの動き情報が前記時間的マージ候補のために使用されることができる。または、例えば、前記一定格納単位が8×8サンプル単位である場合、前記時間的周辺ブロックの座標が(xTnb、yTnb)とすれば、修正された位置である((xTnb>>3)<<3)、(yTnb>>3)<<3))に位置する予測ブロックの動き情報が前記時間的マージ候補のために使用されることができる。
コーディング装置は、現在マージ候補の個数が最大マージ候補の個数より小さいか否かを確認できる。前記最大マージ候補の個数は、予め定義されるか、エンコード装置からデコード装置にシグナリングされることができる。例えば、エンコード装置は、前記最大マージ候補の個数に関する情報を生成し、エンコードしてビットストリーム形態で前記デコーダに伝達することができる。前記最大マージ候補の個数が全て満たされれば、以後の候補追加過程は、進行しないことができる。
前記確認結果、前記現在マージ候補の個数が前記最大マージ候補の個数より小さい場合、コーディング装置は、追加マージ候補を前記マージ候補リストに挿入することができる。例えば、前記追加マージ候補は、後述するヒストリー基盤のマージ候補(等)(history based merge candidate(s))、ペアワイズ平均マージ候補(等)(pair-wise average merge candidate(s))、ATMVP、組み合わせられた双予測(combined bi-predictive)マージ候補(現在スライス/タイルグループのスライス/タイルグループタイプがBタイプである場合)、及び/又はゼロベクトルマージ候補のうち、少なくとも1つを含むことができる。
前記確認結果、前記現在マージ候補の個数が前記最大マージ候補の個数より小さくない場合、コーディング装置は、前記マージ候補リストの構成を終了できる。この場合、エンコード装置は、RD(rate-distortion)コスト(cost)基盤で前記マージ候補リストを構成するマージ候補ののうち、最適のマージ候補を選択でき、前記選択されたマージ候補を指す選択情報(ex.merge index)をデコード装置にシグナリングすることができる。デコード装置は、前記マージ候補リスト及び前記選択情報に基づいて前記最適のマージ候補を選択できる。
前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報として使用されることができ、前記現在ブロックの動き情報に基づいて前記現在ブロックの予測サンプルを導出できることは、上述したとおりである。エンコード装置は、前記予測サンプルに基づいて前記現在ブロックのレジデュアルサンプルを導出でき、前記レジデュアルサンプルに関するレジデュアル情報をデコード装置にシグナリングすることができる。デコード装置は、前記レジデュアル情報に基づいて導出されたレジデュアルサンプル及び前記予測サンプルに基づいて復元サンプルを生成でき、これに基づいて復元ピクチャを生成できることは、上述したとおりである。
スキップモード(skipmode)が適用される場合、上記でマージモードが適用される場合と同じ方法で前記現在ブロックの動き情報を導出できる。ただし、スキップモードが適用される場合、当該ブロックに対するレジデュアル信号が省略され、したがって、予測サンプルが直ちに復元サンプルとして用いられることができる。前記スキップモードは、例えば、cu_skip_flagシンタックス要素の値が1である場合に適用されることができる。
一方、前記ペアワイズ平均マージ候補(pair-wise average merge candidate)は、ペアワイズ平均候補またはペアワイズ候補と呼ばれることができる。ペアワイズ平均候補(等)は、既存の(existing)マージ候補リストで予め定義された候補のペアを平均して生成されることができる。また、予め定義されたペアは、{(0、1)、(0、2)、(1、2)、(0、3)、(1、3)、(2、3)}のように定義されることができる。ここで、数字は、マージ候補リストに対するマージインデックスを表すことができる。平均化された動きベクトル(averaged motion vector)は、各参照リストに対して別に計算されることができる。例えば、2個の動きベクトルが1つのリスト内で利用可能である場合、前記2個の動きベクトルは、互いに異なる参照ピクチャを指しても平均化されることができる。例えば、1つの動きベクトルのみが利用可能である場合、直ちに(directly)1つが使用され得る。例えば、利用可能な動きベクトルがない場合、リストを有効でない状態に維持することができる。
例えば、ペアワイズ平均マージ候補が追加された後にも、マージ候補リストが満たされなかった場合、すなわち、マージ候補リスト内に現在マージ候補の個数が最大マージ候補の個数より小さい場合、最大マージ候補番号が表れるまでゼロベクトル(zero MVP)が最後に挿入され得る。すなわち、マージ候補リスト内の現在マージ候補の個数が最大マージ候補個数になるまでゼロベクトルを挿入できる。
一方、既存にはコーディングブロックの動きを表現するために、ただ一つの動きベクトルを使用することができた。すなわち、トランスレーション(translation)動きモデルが使用できた。但し、このような方法がブロック単位で最適の動きを表現するかもしれないが、実際に各サンプルの最適の動きではなく、サンプル単位で最適の動きベクトルを決定することができれば、コーディング効率を高めることができる。このため、アフィン動きモデル(affine motion model)が使用できる。アフィン動きモデルを使用してコーディングするアフィン動き予測方法は、後述する内容のように4つの動きを効率的に表現できる。
図6は、アフィン動きモデルを介して表現される動きを例示的に示す。
図6を参照すると、前記アフィン動きモデルを介して表現され得る動きは、並進(translate)動き、スケール(scale)動き、回転(rotate)動き及びせん断(shear)動きを含むことができる。すなわち、図6に示した時間の流れに応じて映像(の一部)が平面移動する並進動きだけでなく、時間の流れに応じて映像(の一部)がスケール(scale)されるスケール動き、時間の流れに応じて映像(の一部)が回転する回転動き、時間の流れに応じて映像(の一部)が平行四辺形変形されるせん断動きを前記アフィン動き予測を介して効率的に表現できる。
エンコーディング装置/デコーディング装置は、前記アフィン動き予測を介して、現在ブロックのコントロールポイント(control point、CP)での動きベクトルに基づいて映像の歪曲形態を予測することができ、これを介して予測の正確度を高めることによって映像の圧縮性能を向上させることができる。また、前記現在ブロックの周辺ブロックの動きベクトルを用いて、前記現在ブロックの少なくとも一つのコントロールポイントに対する動きベクトルが誘導できるが、追加される付加情報に対するデータ量の負担を減らし、インター予測の効率をかなり向上させることができる。
アフィン動きモデルが表現し得る動きのうちの3つの動き(トランスレーション(translation)、スケール(scale)、回転(rotate))を表現するアフィン動きモデルは類似(similarity)(又は簡素化された(simplified))アフィン動きモデルと呼ばれ得る。しかし、アフィン動きモデルが前述の動きモデルに限定されるわけではない。
アフィン動きの予測方法は、2個、3個又は4個の動きベクトルを用いて、ブロックの各サンプル単位で動きベクトルを表現することができる。
図7a及び図7bは、アフィン動き予測のためのCPMVを例示的に示す。
アフィン動き予測は、2個以上のコントロールポイント動きベクトル(Control Point Motion Vector、CPMV)を用いて、ブロックが含むサンプル位置の動きベクトルを決定することができる。そのとき、動きベクトルの集合をアフィン動きベクトルフィールド(MVF:Motion Vector Field)と示すことができる。
例えば、図7aは、2個のCPMVが用いられる場合を示すことができ、これは、4-パラメータアフィンモデルと呼ばれ得る。この場合、(x,y)のサンプル位置での動きベクトルは、例えば、数式1のように決定されることができる。
例えば、図7bは、3個のCPMVが用いられる場合を示すことができ、これは、6-パラメータアフィンモデルと呼ばれ得る。この場合、(x,y)サンプル位置での動きベクトルは、例えば、数式2のように決定されることができる。
数式1及び数式2において、{vx,vy}は(x,y)位置での動きベクトルを示すことができる。また、{v0x,v0y}は、コーディングブロックの左上側角の位置のコントロールポイント(CP:Control Point)のCPMVを示すことができ、{v1x,v1y}は、右上側角の位置のCPのCPMVを示すことができ、{v2x,v2y}は、左下側角の位置のCPのCPMVを示すことができる。また、Wは、現在ブロックの幅(width)を示すことができ、Hは、現在ブロックの高さ(hight)を示すことができる。
図8は、アフィンMVFがサブブロックの単位で決定される場合を例示的に示す。
エンコーディング/デコーディング過程でアフィンMVFはサンプル単位或いは既に定義されたサブブロックの単位で決定されることができる。例えば、サンプル単位で決定する場合、各サンプル値を基準に動きベクトルが得られる。或いは、例えば、サブブロックの単位で決定する場合、サブブロックの中央(センターの右下側、すなわち、中央の4個のサンプルのうちの右下側サンプル)サンプル値を基準に当該ブロックの動きベクトルが得られる。すなわち、アフィン動き予測で現在ブロックの動きベクトルは、サンプル単位又はサブブロックの単位で導出されることができる。
図8の場合、アフィンMVFが4x4サブブロックの単位で決定されるが、サブブロックのサイズは多様に変形されることができる。
すなわち、アフィン予測が利用可能な場合、現在ブロックに適用可能な動きモデルは、3つ(移し動きモデル(translational motion model)、4-パラメータアフィン動きモデル(4-parameter affine motion model)、6-パラメータアフィン動きモデル(6-parameter affine motion model))を含むことができる。ここで、移し動きモデルは、既存のブロック単位動きベクトルが使用されるモデルを表すことができ、4-パラメータアフィン動きモデルは、2個のCPMVが使用されるモデルを表すことができ、6-パラメータアフィン動きモデルは、3個のCPMVが使用されるモデルを表すことができる。
一方、アフィン動き予測は、アフィンMVP(または、アフィンインター)モードまたはアフィンマージモードを含むことができる。
図9は、インター予測においてアフィンマージモードを説明するための図面である。
例えば、アフィンマージモードでCPMVは、アフィン動き予測でコーディングされた周辺ブロックのアフィン動きモデルによって決定されることができる。例えば、サーチ(search)順序上のアフィン動き予測でコーディングされた周辺ブロックがアフィンマージモードのために使用されることができる。すなわち、周辺ブロックのうち、少なくとも1つがアフィン動き予測でコーディングされた場合、現在ブロックは、アフィンマージモードでコーディングされることができる。ここで、アフィンマージモードは、AF_MERGEと呼ばれることができる。
アフィンマージモードが適用される場合、周辺ブロックのCPMVを利用して現在ブロックのCPMVが導出され得る。この場合、周辺ブロックのCPMVがそのまま現在ブロックのCPMVとして使用されることができ、周辺ブロックのCPMVが前記周辺ブロックのサイズ及び前記現在ブロックのサイズなどに基づいて修正されて現在ブロックのCPMVとして使用されることもできる。
一方、サブブロック単位で動きベクトル(MV:Motion Vector)が導出されるアフィンマージモードの場合には、サブブロックマージモードと呼ばれることができ、これは、サブブロックマージフラグ(または、merge_subblock_flagシンタックス要素)に基づいて指示されることができる。または、merge_subblock_flagシンタックス要素の値が1である場合、サブブロックマージモードが適用されることが指示され得る。この場合、後述するアフィンマージ候補リストは、サブブロックマージ候補リストと呼ばれることもできる。この場合、前記サブブロックマージ候補リストには、後述するSbTMVPで導出された候補がさらに含まれることができる。この場合、前記SbTMVPで導出された候補は、前記サブブロックマージ候補リストの0番インデックスの候補として利用されることができる。言い換えれば、前記SbTMVPで導出された候補は、前記サブブロックマージ候補リスト内で後述する継承されたアフィン候補(inherited affine candidate)または構成されたアフィン候補(constructed affine candidate)より前に位置することができる。
アフィンマージモードが適用される場合、現在ブロックに対するCPMV導出のために、アフィンマージ候補リストが構成され得る。例えば、アフィンマージ候補リストは、次の候補のうち、少なくとも1つを含むことができる。1)継承された(inherited)アフィンマージ候補。2)構成された(constructed)アフィンマージ候補。3)ゼロ動きベクトル候補(または、ゼロベクトル)。ここで、前記継承されたアフィンマージ候補は、周辺ブロックがアフィンモードでコーディングされた場合、周辺ブロックのCPMVsに基づいて導出される候補であり、前記構成されたアフィンマージ候補は、各CPMV単位で当該CPの周辺ブロックのMVに基づいてCPMVsを構成して導出された候補であり、ゼロ動きベクトル候補は、その値が0であるCPMVで構成された候補を表すことができる。
前記アフィンマージ候補リストは、例えば、次のように構成されることができる。
最大2個の継承されたアフィン候補がありうるし、継承されたアフィン候補は、周辺ブロックのアフィン動きモデルから導出されることができる。周辺ブロックは、1つの左側周辺ブロックと上側の周辺ブロックとを含むことができる。候補ブロックは、図4のように位置することができる。左側予測子(left predictor)のためのスキャン順序は、A1→A0であることができ、上側予測子(above predictor)のためのスキャン順序は、B1→B0→B2であることができる。左側及び上側の各々から1つの継承された候補のみが選択され得る。2つの継承された候補間には、プルーニングチェック(pruning check)が行われないことがある。
周辺アフィンブロックが確認される場合、確認したブロックのコントロールポイント動きベクトルが現在ブロックのアフィンマージリスト内のCPMVP候補を導出するために使用できる。ここで、周辺アフィンブロックは、現在ブロックの周辺ブロックのうち、アフィン予測モードでコーディングされたブロックを示すことができる。例えば、図8を参照すると、左下側(bottom-left)の周辺ブロックAがアフィン予測モードでコーディングされた場合、周辺ブロックAの左上側(top-left)角、右上側(top-right)角及び左下側(bottom-left)角の動きベクトルv2、v3及びv4が取得できる。周辺ブロックAが4-パラメータアフィン動きモデルでコーディングされた場合、現在ブロックの2個のCPMVがv2及びv3によって算出されることができる。周辺ブロックAが6-パラメータアフィン動きモデルでコーディングされた場合、現在ブロックの3個のCPMVv2、v3及びv4によって算出されることができる。
図10は、アフィンマージモードにおいて候補の位置を説明するための図面である。
構成された(constructed)アフィン候補は、各コントロールポイントの周辺のtranslational動き情報を組み合わせて構成される候補を意味することができる。コントロールポイントの動き情報は、特定された空間的周辺及び時間的周辺から導出されることができる。CPMVk(k=0,1,2,3)は、k番目のコントロールポイントを示すことができる。
図10を参照すると、CPMV0のためにB2->B3->A2の順序によってブロックがチェックでき、第一に利用可能なブロックの動きベクトルが使用できる。CPMV1のためにB1->B0の順序によってブロックがチェックでき、CPMV2のためにA1->A0の順序によってブロックがチェックできる。TMVP(temporal motion vector predictor)は、利用可能な場合、CPMV3に使用されることができる。
4個のコントロールポイントの動きベクトルが取得された後、アフィンマージ候補は、取得した動き情報に基づいて生成されることができる。コントロールポイント動きベクトルの組み合わせは、{CPMV0、CPMV1、CPMV2}、{CPMV0、CPMV1、CPMV3}、{CPMV0、CPMV2、CPMV3}、{CPMV1、CPMV2、CPMV3}、{CPMV0、CPMV1}、及び{CPMV0、CPMV2}のうち、いずれか1つに該当することができる。
3個のCPMVの組み合わせは、6-パラメータアフィンマージ候補を構成でき、2個のCPMVの組み合わせは、4-パラメータアフィンマージ候補を構成できる。動きスケーリング過程を回避するために、コントロールポイントの参照インデックスが互いに異なる場合、コントロールポイント動きベクトルの関連した組み合わせは捨てられることができる。
図11は、インター予測においてSbTMVPを説明するための図面である。
一方、SbTMVP(subblock-based temporal motion vector prediction)方法が利用されることもできる。例えば、SbTMVPは、ATMVP(advanced temporal motion vector prediction)と呼ばれることができる。SbTMVPは、動きベクトル予測及び現在ピクチャ内のCUに対するマージモードを向上するために、コロケーテッドピクチャ(collocated picture)内の動きフィールドを利用できる。ここで、コロケーテッドピクチャは、コル(col)ピクチャと呼ばれることもできる。
例えば、SbTMVPは、サブブロック(または、サブCU)レベルで動きを予測できる。また、SbTMVPは、コルピクチャから時間的動き情報をフェッチング(fetching)する前に動きシフト(shift)を適用できる。ここで、動きシフトは、現在ブロックの空間的周辺ブロックのうち、1つの動きベクトルから取得されることができる。
SbTMVPは、2つのステップによって現在ブロック(または、CU)内のサブブロック(または、サブCU)の動きベクトルを予測できる。
第1のステップで空間的周辺ブロックは、図4のA1、B1、B0、及びA0の順序によって試験されることができる。コル(col)ピクチャを自分の参照ピクチャとして使用する動きベクトルを有する1番目の空間的周辺ブロックが確認され得るし、動きベクトルは、適用される動きシフトで選択されることができる。空間的周辺ブロックからこのような動きが確認されない場合、動きシフトは、(0、0)に設定されることができる。
第2のステップでは、第1のステップで確認された動きシフトがcolピクチャからサブブロックレベル動き情報(動きベクトル及び参照インデックス)を取得するために適用されることができる。例えば、動きシフトが現在ブロックの座標に追加されることができる。例えば、動きシフトが図4のA1の動きとして設定されることができる。この場合、各サブブロックに対してcolピクチャ内の対応ブロックの動き情報は、サブブロックの動き情報を導出するために使用されることができる。時間的動きスケーリングは、時間的動きベクトルの参照ピクチャと現在ブロックの参照ピクチャとを整列するために適用されることができる。
SbTVMP候補及びアフィンマージ候補を全て含む組み合わせられたサブブロック基盤のマージリストは、アフィンマージモードのシグナリングに使用されることができる。ここで、アフィンマージモードは、サブブロック基盤のマージモードと呼ばれることができる。SbTVMPモードは、SPS(sequence parameter set)に含まれたフラグにより利用可能または利用不可能であることができる。SbTMVPモードが利用可能である場合、SbTMVP予測子は、サブブロック基盤のマージ候補のリストの第1のエントリーとして追加されることができ、アフィンマージ候補が次にくることができる。アフィンマージ候補リストの最大に許容されるサイズは、5個であることができる。
SbTMVPで使用されるサブCU(または、サブブロック)のサイズは、8×8に固定されることができ、アフィンマージモードと同様に、SbTMVPモードは、幅及び高さが共に8以上であるブロックにのみ適用されることができる。追加的なSbTMVPマージ候補のエンコードロジックは、他のマージ候補と同一であることができる。すなわち、PまたはBスライス内の各CUに対して追加的なRD(rate-distortion)コストを利用するRDチェックがSbTMVP候補を利用するか決定するために行われることができる。
一方、予測モードによって導出された動き情報に基づいて現在ブロックに対する予測されたブロックを導出できる。前記予測されたブロックは、前記現在ブロックの予測サンプル(予測サンプルアレイ)を含むことができる。現在ブロックの動きベクトルが分数サンプル単位を指す場合、補間(interpolation)手順が行われ得るし、これを介して参照ピクチャ内で分数サンプル単位の参照サンプルに基づいて前記現在ブロックの予測サンプルが導出され得る。現在ブロックにアフィンインター予測(アフィン予測モード)が適用される場合、サンプル/サブブロック単位MVに基づいて予測サンプルを生成できる。双(Bi)予測が適用される場合、L0予測(すなわち、参照ピクチャリストL0内の参照ピクチャとMVL0を用いた予測)に基づいて導出された予測サンプルとL1予測(すなわち、参照ピクチャリストL1内の参照ピクチャとMVL1を用いた予測)に基づいて導出された予測サンプルの(位相による)加重合計(weighted sum)または加重平均(weighted average)を介して導出された予測サンプルが現在ブロックの予測サンプルとして用いられることができる。ここで、L0方向の動きベクトルは、L0動きベクトルまたはMVL0と呼ばれることができ、L1方向の動きベクトルは、L1動きベクトルまたはMVL1と呼ばれることができる。双(Bi)予測が適用される場合、L0予測に用いられた参照ピクチャとL1予測に用いられた参照ピクチャとが現在ピクチャを基準に互いに異なる時間的方向に位置する場合(すなわち、双予測でありながら、両方向予測に該当する場合)、これをトゥルー(true)双予測と呼ぶことができる。
また、導出された予測サンプルに基づいて復元サンプル及び復元ピクチャが生成され得るし、その後、インループフィルタリングなどの手順が行われ得ることは、前述したとおりである。
一方、現在ブロックに双予測が適用される場合、加重平均に基づいて予測サンプルを導出できる。例えば、加重平均を利用した双予測は、BCW(Bi-prediction with CU-level Weight)、BWA(Bi-prediction with Weighted Average)、または加重平均双予測(wighted averaging bi-prediction)と呼ばれることができる。
既存に双予測信号(すなわち、双予測サンプル)は、L0予測信号(L0予測サンプル)とL1予測信号(L1予測サンプル)との単純平均によって導出されることができた。すなわち、双予測サンプルは、L0参照ピクチャ及びMVL0に基づいたL0予測サンプルとL1参照ピクチャ及びMVL1に基づいたL1予測サンプルとの平均で導出された。ただし、双予測が適用される場合、次のように、L0予測信号とL1予測信号との加重平均によって双予測信号(双予測サンプル)を導出することもできる。例えば、双予測信号(双予測サンプル)は、数式3のように導出されることができる。
数式3において、Pbi-predは、双予測信号の値、すなわち、双予測が適用されて導出された予測サンプル値を表すことができ、wは、加重値を表すことができる。また、P0は、L0予測信号の値、すなわち、L0予測が適用されて導出された予測サンプル値を表すことができ、P1は、L1予測信号の値、すなわち、L1予測が適用されて導出された予測サンプル値を表すことができる。
例えば、加重平均双予測では、5個の加重値が許容され得る。例えば、前記5個の加重値(w)は、-2、3、4、5、または10を含むことができる。すなわち、加重値(w)は、-2、3、4、5、または10を含む加重値候補のうち1つに決定されることができる。双予測が適用される各CUに対して加重値wは、2つの方法のうち、1つにより決定されることができる。1番目の方法は、併合されていないCUに対して加重値インデックスが動きベクトル差分(motion vector difference)以後にシグナリングされることができる。2番目の方法は、併合されたCUに対して加重値インデックスがマージ候補インデックスに基づいて周辺ブロックから推論されることができる。
例えば、加重平均双予測は、256個以上のルマサンプルを有するCUに適用されることができる。すなわち、CUの幅及び高さの積が256より大きいか、同一である場合に加重平均双予測が適用され得る。低遅延(low-delay)ピクチャの場合、5個の加重値が使用され得るし、低遅延でない(non-low-delay)ピクチャの場合、3個の加重値が使用され得る。例えば、前記3個の加重値は、3、4、または5を含むことができる。
例えば、エンコード装置において、早いサーチアルゴリズムは、エンコード装置の複雑性(complexity)を大きく増加させないながら、加重値インデックスを探すために適用されることができる。このようなアルゴリズムは、次のように要約されることができる。例えば、AMVR(adaptive motion vector resolution)と組み合わせられるとき(インター予測モードとしてAMVRが利用されるとき)、現在ピクチャが低遅延ピクチャである場合、同一でない加重値は、1-pel及び4-pel動きベクトル精密度に対して条件付きでチェックされることができる。例えば、アフィン(affine)と組み合わせられるとき(インター予測モードとしてアフィン予測モードが利用されるとき)、アフィン予測モードが現在ベストモード(best mode)と選択された場合、アフィンME(Motion Estimation)は、同一でない加重値に対して行われることができる。例えば、双予測の2個の参照ピクチャが同一である場合、同一でない加重値が条件付きでチェックされることができる。例えば、現在ピクチャと参照ピクチャとの間のPOC距離、コーディングQP(quantization parameter)、及び時間的レベル(temporal level)に依存して特定条件が満たされる場合、同一でない加重値がサーチされないことがある。
例えば、BCW加重値インデックス(または、加重値インデックス)は、1つのコンテクストコーディングされたビン(context coded bin)及び後続するバイパスコーディングされたビン(bypass coded bin)を用いてコーディングされることができる。1番目のコンテクストコーディングされたビンは、同じ加重値が使用されるか否かを表すことができる。1番目のコンテクストコーディングされたビンに基づいて同一でない加重値が使用される場合、使用される同一でない加重値を指示するために、バイパスコーディングを使用して追加的なビンがシグナリングされ得る。
一方、双予測が適用される場合、予測サンプルを生成するのに利用される加重値情報は、マージ候補リストに含まれた候補のうち、選択された候補に対する加重値インデックス情報に基づいて導出されることができる。
本文書の一実施形態によれば、マージモードのための動きベクトル候補構成の際、時間的動きベクトル候補に対する加重値インデックス情報は、下記のように導出することができる。例えば、時間的動きベクトル候補が双予測を使用するとき、加重平均のための加重値インデックス情報を導出できる。すなわち、インター予測タイプが双(bi)予測である場合、マージ候補リスト内の時間的マージ候補(または、時間的動きベクトル候補)のための加重値インデックス情報を導出できる。
例えば、時間的動きベクトル候補に対して加重平均のための加重値インデックス情報は、常に0に導出されることができる。ここで、加重値インデックス情報が0であることは、各参照方向(すなわち、双予測でL0予測方向及びL1予測方向)の加重値が同一であることを意味することができる。例えば、マージモードのためのルマ成分の動きベクトルを導出する手順は、次の表1のとおりでありうる。
前記表1を参照すれば、gbiIdxは、双予測加重値インデックスを表すことができ、gbiIdxColは、時間的マージ候補(例えば、マージ候補リスト内の時間的動きベクトル候補)に対する双予測加重値インデックスを表すことができる。前記マージモードのためのルマ成分の動きベクトルを導出する手順(8.4.2.2の目次3)で前記gbiIdxColは、0に導出されることができる。すなわち、時間的動きベクトル候補の加重値インデックスは、0に導出されることができる。
または、時間的動きベクトル候補に対する加重平均のための加重値インデックスは、コロケーテッド(collocated)ブロックの加重値インデックス情報に基づいて導出されることができる。ここで、コロケーテッドブロックは、コル(col)ブロック、同一位置ブロック、または同一位置参照ブロックと呼ばれることができ、コルブロックは、参照ピクチャ上で現在ブロックと同じ位置のブロックを表すことができる。例えば、マージモードのためのルマ成分の動きベクトルを導出する手順は、次の表2のとおりでありうる。
前記表2を参照すれば、gbiIdxは、双予測加重値インデックスを表すことができ、gbiIdxColは、時間的マージ候補(例えば、マージ候補リスト内の時間的動きベクトル候補)に対する双予測加重値インデックスを表すことができる。前記マージモードのためのルマ成分の動きベクトルを導出する手順でスライスのタイプまたはタイルグループのタイプがBである場合(8.4.2.2の目次4)には、前記gbiIdxColがgbiIdxColで導出されることができる。すなわち、時間的動きベクトル候補の加重値インデックスは、コル(col)ブロックの加重値インデックスで導出されることができる。
一方、本文書の他の実施形態によれば、サブブロック単位のマージモードのための動きベクトル候補構成の際、時間的動きベクトル候補に対する加重平均のための加重値インデックスを導出できる。ここで、サブブロック単位のマージモードは、(サブブロック単位の)アフィンマージモードと呼ばれることができる。時間的動きベクトル候補は、サブブロック基盤の時間的動きベクトル候補を表すことができ、SbTMVP(または、ATMVP)候補と呼ばれることもできる。すなわち、インター予測タイプが双(bi)予測である場合、アフィンマージ候補リストまたはサブブロックマージ候補リスト内のSbTMVP候補(または、サブブロック基盤の時間的動きベクトル候補)に対する加重値インデックス情報を導出できる。
例えば、サブブロック基盤の時間的動きベクトル候補に対する加重平均のための加重値インデックス情報は、常に0に導出されることができる。ここで、加重値インデックス情報が0であることは、各参照方向(すなわち、双予測でL0予測方向及びL1予測方向)の加重値が同一であることを意味することができる。例えば、サブブロックマージモード内の動きベクトル及び参照インデックスを導出する手順及びサブブロック基盤の時間的マージ候補を導出する手順は、各々次の表3及び表4のとおりでありうる。
前記表3及び表4を参照すれば、gbiIdxは、双予測加重値インデックスを表すことができ、gbiIdxSbColは、サブブロック基盤の時間的マージ候補(例えば、サブブロック基盤のマージ候補リスト内の時間的動きベクトル候補)に対する双予測加重値インデックスを表すことができ、前記サブブロック基盤の時間的マージ候補を導出する手順(8.4.4.3)で前記gbiIdxSbColは、0に導出されることができる。すなわち、サブブロック基盤の時間的動きベクトル候補の加重値インデックスは、0に導出されることができる。
または、サブブロック基盤の時間的動きベクトル候補に対する加重平均のための加重値インデックス情報は、時間的センター(center)ブロックの加重値インデックス情報に基づいて導出されることができる。例えば、前記時間的センターブロックは、コル(col)ブロックまたはコル(col)ブロックのセンターに位置したサブブロックまたはサンプルを表すことができ、具体的には、コルブロックの中央の4個のサブブロックまたはサンプルのうち、右下側に位置したサブブロックまたはサンプルを表すことができる。例えば、この場合、サブブロックマージモード内の動きベクトル及び参照インデックスを導出する手順、サブブロック基盤の時間的マージ候補を導出する手順、及びサブブロック基盤の時間的マージのためのベース動き情報を導出する手順は、各々次の表5、表6、及び表7のとおりでありうる。
前記表5、表6、及び表7を参照すれば、gbiIdxは、双予測加重値インデックスを表すことができ、gbiIdxSbColは、サブブロック基盤の時間的マージ候補(例えば、サブブロック基盤のマージ候補リスト内の時間的動きベクトル候補)のための双予測加重値インデックスを表すことができる。サブブロック基盤の時間的マージのためのベース動き情報を導出する手順(8.4.4.4)で前記gbiIdxSbColは、gbiIdxcolCbで導出されることができる。すなわち、サブブロック基盤の時間的動きベクトル候補の加重値インデックスは、時間的センターブロックの加重値インデックスで導出されることができる。例えば、前記時間的センターブロックは、コル(col)ブロックまたはコル(col)ブロックのセンターに位置したサブブロックまたはサンプルを表すことができ、具体的には、コルブロックの中央の4個のサブブロックまたはサンプルのうち、右下側に位置したサブブロックまたはサンプルを表すことができる。
または、サブブロック基盤の時間的動きベクトル候補に対する加重平均のための加重値インデックス情報は、それぞれのサブブロック単位の加重値インデックス情報に基づいて導出されることができ、サブブロックが利用可能でない場合、時間的センター(center)ブロックの加重値インデックス情報に基づいて導出されることができる。例えば、前記時間的センターブロックは、コル(col)ブロックまたはコル(col)ブロックのセンターに位置したサブブロックまたはサンプルを表すことができ、具体的には、コルブロックの中央の4個のサブブロックまたはサンプルのうち、右下側に位置したサブブロックまたはサンプルを表すことができる。例えば、この場合、サブブロックマージモード内の動きベクトル及び参照インデックスを導出する手順、サブブロック基盤の時間的マージ候補を導出する手順、及びサブブロック基盤の時間的マージのためのベース動き情報を導出する手順は、次の表8、表9、及び表10のとおりでありうる。
前記表8、表9、及び表10を参照すれば、gbiIdxは、双予測加重値インデックスを表すことができ、gbiIdxSbColは、サブブロック基盤の時間的マージ候補(例えば、サブブロック基盤のマージ候補リスト内の時間的動きベクトル候補)のための双予測加重値インデックスを表すことができる。サブブロック基盤の時間的マージのためのベース動き情報を導出する手順(8.4.4.3)で前記gbiIdxSbColは、gbiIdxcolCbで導出されることができる。または、条件(例えば、availableFlagL0SbCol及びavailableFlagL1SbColが共に0である場合)によってサブブロック基盤の時間的マージのためのベース動き情報を導出する手順(8.4.4.3)で前記gbiIdxSbColは、ctrgbiIdxで導出されることができ、サブブロック基盤の時間的マージのためのベース動き情報を導出する手順(8.4.4.4)で前記ctrgbiIdxは、gbiIdxSbColで導出されることができる。すなわち、サブブロック基盤の時間的動きベクトル候補の加重値インデックスは、それぞれのサブブロック単位の加重値インデックスで導出されることができ、サブブロックが利用可能でない場合、時間的センターブロックの加重値インデックスで導出されることができる。例えば、前記時間的センターブロックは、コル(col)ブロックまたはコル(col)ブロックのセンターに位置したサブブロックまたはサンプルを表すことができ、具体的には、コルブロックの中央の4個のサブブロックまたはサンプルのうち、右下側に位置したサブブロックまたはサンプルを表すことができる。
一方、本文書のさらに他の実施形態によれば、マージモードのための動きベクトル候補構成の際、ペアワイズ(pair-wise)候補に対する加重値インデックス情報を導出できる。例えば、マージ候補リストにペアワイズ候補が含まれ得るし、前記ペアワイズ候補の加重平均のための加重値インデックス情報が導出され得る。前記ペアワイズ候補は、前記マージ候補リスト内の他のマージ候補に基づいて導出されることができ、前記ペアワイズ候補が双予測を使用する場合、加重平均のための加重値インデックスを導出できる。すなわち、インター予測タイプが双(bi)予測である場合、マージ候補リスト内のペアワイズ候補のための加重値インデックス情報を導出できる。
前記ペアワイズ候補は、前記マージ候補リストに含まれた候補のうち、他の2個のマージ候補(例えば、cand0及びcand1)に基づいて導出されることができる。
例えば、前記ペアワイズ候補に対する加重値インデックス情報は、前記2個のマージ候補のうち、いずれか1つのマージ候補(例えば、マージ候補cand0またはマージ候補cand1)の加重値インデックス情報に基づいて導出されることができる。例えば、前記ペアワイズ候補に対する加重値インデックス情報は、前記2個のマージ候補のうち、双予測を使用する候補の加重値インデックス情報に基づいて導出されることができる。
または、前記他の2個のマージ候補のそれぞれの加重値インデックス情報が第1の加重値インデックス情報と同一である場合、前記ペアワイズ候補に対する加重値インデックス情報は、前記第1の加重値インデックス情報に基づいて導出されることができる。一方、前記他の2個のマージ候補のそれぞれの加重値インデックス情報が互いに同一でない場合、前記ペアワイズ候補に対する加重値インデックス情報は、デフォルト(DEFAULT)加重値インデックス情報に基づいて導出されることができる。デフォルト加重値インデックス情報は、L0予測サンプル及びL1予測サンプルの各々に同じ加重値を付与する加重値インデックス情報に該当することができる。
または、前記他の2個のマージ候補のそれぞれの加重値インデックス情報が第1の加重値インデックス情報と同一である場合、前記ペアワイズ候補に対する加重値インデックス情報は、前記第1の加重値インデックス情報に基づいて導出されることができる。一方、前記他の2個のマージ候補のそれぞれの加重値インデックス情報が互いに同一でない場合、前記ペアワイズ候補に対する加重値インデックス情報は、前記他の2個の候補のそれぞれの加重値インデックス情報のうち、デフォルト(DEFAULT)加重値インデックス情報でない加重値インデックス情報に基づいて導出されることができる。デフォルト加重値インデックス情報は、L0予測サンプル及びL1予測サンプルの各々に同じ加重値を付与する加重値インデックス情報に該当することができる。
一方、本文書のさらに他の実施形態によれば、サブブロック単位のマージモードのための動きベクトル候補構成の際、時間的動きベクトル候補に対する加重平均のための加重値インデックス情報を導出できる。ここで、サブブロック単位のマージモードは、(サブブロック単位の)アフィンマージモードと呼ばれることができる。時間的動きベクトル候補は、サブブロック基盤の時間的動きベクトル候補を表すことができ、SbTMVP(または、ATMVP)候補と呼ばれることもできる。前記SbTMVP候補に対する加重値インデックス情報は、現在ブロックの左側周辺ブロックの加重値インデックス情報に基づいて導出されることができる。すなわち、SbTMVPで導かれた候補が双予測を使用する場合、現在ブロックの左側周辺ブロックの加重値インデックスをサブブロック基盤のマージモードのための加重値インデックスで導出することができる。
例えば、SbTMVP候補は、現在ブロックの空間的に隣接した左側ブロック(または、左側周辺ブロック)を基準にコル(col)ブロックを導出できるので、前記左側周辺ブロックの加重値インデックスは、信頼されることができるとみなすことができる。これにより、前記SbTMVP候補に対する加重値インデックスは、左側周辺ブロックの加重値インデックスで導出されることができる。
一方、本文書のさらに他の実施形態によれば、アフィンマージモードのための動きベクトル候補構成の際、アフィンマージ候補が双予測を使用するとき、加重平均のための加重値インデックス情報を導出できる。すなわち、インター予測タイプが双(bi)予測である場合、アフィンマージ候補リストまたはサブブロックマージ候補リスト内の候補に対する加重値インデックス情報を導出できる。
例えば、アフィンマージ候補のうち、構成された(constructed)アフィンマージ候補は、現在ブロックの空間的(spatial)に隣接したブロック(または、空間的周辺ブロック)または時間的(temporal)に隣接したブロック(または、時間的周辺ブロック)の動き情報に基づき、CP0、CP1、CP2、またはCP3候補を導出してアフィンモデルでMVFを導出する候補を表すことができる。例えば、CP0は、現在ブロックの左上端サンプルポジションに位置するコントロールポイントを表すことができ、CP1は、現在ブロックの右上端サンプルポジションに位置するコントロールポイントを表すことができ、CP2は、現在ブロックの左下端サンプルポジションに位置するコントロールポイントを表すことができる。また、CP3は、現在ブロックの右下端サンプルポジションに位置するコントロールポイントを表すことができる。
例えば、アフィンマージ候補のうち、構成された(constructed)アフィンマージ候補は、{CP0,CP1,CP2}、{CP0,CP1,CP3}、{CP0,CP2,CP3}、{CP1,CP2,CP3}、{CP0,CP1}及び{CP0,CP2}のように現在ブロックの各コントロールポイントの組み合わせに基づいて生成されることができる。例えば、アフィンマージ候補は、{CPMV0,CPMV1,CPMV2}、{CPMV0,CPMV1,CPMV3}、{CPMV0,CPMV2,CPMV3}、{CPMV1,CPMV2,CPMV3}、{CPMV0,CPMV1}及び{CPMV0,CPMV2}のうち少なくとも一つを含み得る。CPMV0、CPMV1、CPMV2及びCPMV3は、CP0、CP1、CP2及びCP3それぞれに対する動きベクトルに該当し得る。
一実施形態において、前記アフィンマージ候補が現在ブロックの左上側に位置するCP0(Control Point 0)に対するCPMV0を含む場合、前記アフィンマージ候補に対する加重値インデックス情報は、前記CP0に対する第0加重値インデックス情報に基づいて導出されることができる。前記第0加重値インデックス情報は、前記CP0の周辺ブロックのうち、前記CPMV0の導出のために使用されるブロックの加重値インデックス情報に該当し得る。そのとき、前記CP0の周辺ブロックは、現在ブロックの左上側角の周辺ブロック、左上側角の周辺ブロックの下側に隣接した左側の周辺ブロック及び左上側角の周辺ブロックの右側に隣接した上側の周辺ブロックを含むことができる。
一方、前記アフィンマージ候補が現在ブロックの左上側に位置するCP0に対する CPMV0を含まない場合、前記アフィンマージ候補に対する加重値インデックス情報は、現在ブロックの右上側に位置するCP1(Control Point 1)に対する第1加重値インデックス情報に基づいて導出されることができる。前記第1加重値インデックス情報は、前記CP1の周辺ブロックのうち、前記CPMV1の導出のために使用されるブロックの加重値インデックス情報に該当し得る。そのとき、前記CP1の周辺ブロックは、現在ブロックの右上側角の周辺ブロック及び右上側角の周辺ブロックの左側に隣接した上側の周辺ブロックを含むことができる。
前述の方法によると、前記アフィンマージ候補に対する加重値インデックス情報は、{CPMV0,CPMV1,CPMV2}、{CPMV0,CPMV1,CPMV3}、{CPMV0,CPMV2,CPMV3}、{CPMV1,CPMV2,CPMV3}、{CPMV0,CPMV1}及び{CPMV0,CPMV2}それぞれに対して、1番目のCPMVの導出のために使用されるブロックの加重値インデックス情報に基づいて導出されることができる。
前記アフィンマージ候補に対する加重値インデックス情報を導出する別の実施形態に係ると、現在ブロックの左上側に位置するCP0に対する加重値インデックス情報と現在ブロックの右上側に位置するCP1に対する加重値インデックス情報とが同一である場合、前記アフィンマージ候補に対する加重値インデックス情報は、前記CP0に対する第0加重値インデックス情報に基づいて導出されることができる。前記第0加重値インデックス情報は、前記CP0の周辺ブロックのうち、前記CPMV0の導出のために使用されるブロックの加重値インデックス情報に該当し得る。一方、現在ブロックの左上側に位置するCP0に対する加重値インデックス情報と現在ブロックの右上側に位置するCP1に対する加重値インデックス情報とが同一ではない場合、前記アフィンマージ候補に対する加重値インデックス情報は、デフォルト(DEFAULT)加重値インデックス情報に基づいて導出されることができる。前記デフォルト加重値インデックス情報は、前記L0予測サンプル及び前記L1予測サンプルのそれぞれに同一の加重値を付与する加重値インデックス情報に該当し得る。
前記アフィンマージ候補に対する加重値インデックス情報を導出するさらに他の実施形態によれば、前記アフィンマージ候補に対する加重値インデックス情報は、各候補の加重値インデックスのうち、発生頻度が高い候補の加重値インデックスで導出されることができる。例えば、CP0候補ブロックのうち、CP0における動きベクトルと決定された候補ブロックの加重値インデックス、CP1候補ブロックのうち、CP1における動きベクトルと決定された候補ブロックの加重値インデックス、CP2候補ブロックのうち、CP2における動きベクトルと決定された候補ブロックの加重値インデックス、及び/又はCP3候補ブロックのうち、CP3における動きベクトルと決定された候補ブロックの加重値インデックスのうち、最も多く重複する加重値インデックスを前記アフィンマージ候補の加重値インデックスで導出することができる。
例えば、前記コントロールポイントとしてCP0及びCP1が用いられ得るし、CP0、CP1、及びCP2が用いられ得るし、CP3は用いられないこともある。ただし、例えば、アフィンブロック(アフィン予測モードでコーディングされるブロック)のCP3候補を活用しようとするときには、上述した実施形態等で説明した時間的候補ブロックにおける加重値インデックスを導出する方法が活用され得る。
図12及び13は、本文書の実施形態に係るビデオ/映像エンコーディング方法及び関連のコンポーネントの一例を概略的に示す。
図12において開示された方法は、図2又は図13において開示されたエンコーディング装置によって実行されることができる。具体的に、例えば、図12のS1200乃至S1220は、図13の前記エンコーディング装置200の予測部220によって実行されることができ、図12のS1230は、図13の前記エンコーディング装置200のエントロピーエンコーディング部240によって実行されることができる。また、図12で示していないが、図12において前記エンコーディング装置200の予測部220により予測サンプル又は予測関連情報を導出することができ、前記エンコーディング装置200のレジデュアル処理部230により原本サンプル又は予測サンプルからレジデュアル情報が導出でき、前記エンコーディング装置200のエントロピーエンコーディング部240によりレジデュアル情報又は予測関連情報からビットストリームが生成できる。図12で開示された方法は、本文書で前述した実施形態を含むことができる。
図12を参照すると、エンコーディング装置は、現在ブロックのインター予測モードを決定し、インター予測モードを示すインター予測モード情報を生成することができる(S1200)。例えば、エンコーディング装置は、現在ブロックに適用するインター予測モードとして、マージモード、アフィン(マージ)モード又はサブブロックマージモードを決定することができ、これを示すインター予測モード情報を生成することができる。
エンコーディング装置は、インター予測モードに基づいて、現在ブロックのマージ候補リストを生成することができる(S1210)。例えば、エンコーディング装置は、決定したインター予測モードによってマージ候補リストを生成することができる。ここで、決定したインター予測モードがアフィンマージモード又はサブブロックマージモードである場合、前記マージ候補リストは、アフィンマージ候補リスト又はサブブロックマージ候補リスト等のように呼ばれ得るが、簡略にマージ候補リストとも呼ばれ得る。
例えば、前記マージ候補リスト内の候補の個数が最大候補個数になるまでマージ候補リストに候補が挿入され得る。ここで、候補は、現在ブロックの動き情報(または、動きベクトル)を導出するための候補または候補ブロックを表すことができる。例えば、候補ブロックは、現在ブロックの周辺ブロックに対する探索を介して導出されることができる。例えば、周辺ブロックは、現在ブロックの空間的周辺ブロック及び/又は時間的周辺ブロックを含むことができ、空間的周辺ブロックが先に探索されて(空間的マージ)候補が導出され得るし、その後、時間的周辺ブロックが探索されて(時間的マージ)候補と導出されることができ、導出された候補は、前記マージ候補リストに挿入されることができる。例えば、前記マージ候補リストは、前記候補を挿入した後にも、前記マージ候補リスト内の候補の個数が最大候補個数より少ない場合、追加候補を挿入できる。例えば、追加候補は、history based merge candidate(s)、pair-wise average merge candidate(s)、ATMVP、combined bi-predictiveマージ候補(現在スライス/タイルグループのスライス/タイルグループタイプがBタイプである場合)、及び/又はゼロベクトルマージ候補のうち、少なくとも1つを含むことができる。
または、例えば、アフィンマージ候補リスト内の候補の個数が最大候補個数になるまでアフィンマージ候補リストに候補が挿入され得る。ここで、候補は、現在ブロックのCPMV(Control Point Motion Vector)を含むことができる。または、前記候補は、前記CPMVを導出するための候補または候補ブロックを表すこともできる。前記CPMVは、現在ブロックのCP(Control Point)における動きベクトルを表すことができる。例えば、CPは、2個、3個、または4個であることができ、現在ブロックの左上側(または、左上側コーナー)、右上側(または、右上側コーナー)、左下側(または、左下側コーナー)、または右下側(または、右下側コーナー)のうち、少なくとも一部に位置することができ、各位置毎に1つのCPのみが存在しうる。
例えば、候補は、現在ブロックの周辺ブロック(または、現在ブロックのCPの周辺ブロック)に対する探索を介して導出されることができる。例えば、アフィンマージ候補リストは、継承された(inherited)アフィンマージ候補、構成された(constructed)アフィンマージ候補、またはゼロ(zero)動きベクトル候補のうち、少なくとも1つを含むことができる。例えば、アフィンマージ候補リストは、先に前記継承されたアフィンマージ候補を挿入でき、その後、構成されたアフィンマージ候補を挿入できる。また、アフィンマージ候補リストに構成されたアフィンマージ候補まで挿入したが、前記アフィンマージ候補リスト内の候補の個数が最大候補個数より小さい場合、残りは、ゼロ動きベクトル候補で満たすことができる。ここで、ゼロ動きベクトル候補は、ゼロベクトルと呼ばれることもできる。例えば、アフィンマージ候補リストは、サンプル単位で動きベクトルが導出されるアフィンマージモードによるリストであることができるが、サブブロック単位で動きベクトルが導出されるアフィンマージモードによるリストであることもできる。この場合、アフィンマージ候補リストは、サブブロックマージ候補リストと呼ばれることができ、サブブロックマージ候補リストは、SbTMVPで導出された候補(または、SbTMVP候補)も含まれることができる。例えば、SbTMVP候補がサブブロックマージ候補リストに含まれる場合、サブブロックマージ候補リスト内で継承されたアフィンマージ候補及び構成されたアフィンマージ候補より前に位置することができる。
エンコーディング装置は、マージ候補リストに含まれた候補のうちの一つの候補を示す選択情報を生成することができる(S1220)。例えば、マージ候補リストは、空間的マージ候補、時間的マージ候補、ペアワイズ候補又は零ベクトル候補のうち少なくとも一部を含むことができ、現在ブロックのインター予測のために、このような候補のうちの一つの候補を選択することができる。或いは、例えば、サブブロックのマージ候補リストは、承継されたアフィンマージ候補、構成されたアフィンマージ候補、SbTMVP候補又は零ベクトル候補のうち少なくとも一部を含むことができ、現在ブロックのインター予測のために、このような候補のうちの一つの候補を選択することができる。
例えば、前記選択情報は、前記マージ候補リスト内の選択された候補を示すインデックス情報を含むことができる。例えば、前記選択情報は、マージインデックス情報又はサブブロックマージインデックス情報とも呼ばれ得る。
また、エンコーディング装置は、現在ブロックのインター予測タイプを双予測(bi-prediction)で示すインター予測タイプ情報を生成することができる。例えば、前記現在ブロックのインター予測タイプは、L0予測、L1予測又は双(bi)予測のうち、双予測と決定されることができ、これを示すインター予測タイプ情報を生成することができる。ここで、L0予測は、参照ピクチャリスト0ベースの予測を示すことができ、L1予測は、参照ピクチャリスト1ベースの予測を示すことができ、双予測は、参照ピクチャリスト0及び参照ピクチャリスト1ベースの予測を示すことができる。例えば、エンコーディング装置は、前記インター予測タイプに基づいて、インター予測タイプ情報を生成することができる。例えば、前記インター予測タイプ情報は、inter_pred_idcシンタックス要素を含むことができる。
エンコーディング装置は、インター予測モード情報及び選択情報を含む映像情報をエンコーディングすることができる(S1230)。例えば、前記映像情報は、ビデオ情報とも呼ばれ得る。前記映像情報は、本文書の前述した実施形態に係る多様な情報を含むことができる。例えば、映像情報は、予測関連情報又はレジデュアル関連情報のうち少なくとも一部を含むことができる。例えば、前記予測関連情報は、前記インター予測モード情報、選択情報及びインター予測タイプ情報のうち少なくとも一部を含むことができる。例えば、エンコーディング装置は、前述した情報(又はシンタックス要素)の全部又は一部を含む映像情報をエンコーディングし、ビットストリーム又はエンコーディングされた情報を生成することができる。或いは、ビットストリームの形態で出力することができる。また、前記ビットストリーム又はエンコーディングされた情報は、ネットワーク又は保存媒体を介してデコーディング装置に送信されることができる。
図12に示していないが、例えば、エンコーディング装置は、現在ブロックの予測サンプルを生成することができる。或いは、例えば、エンコーディング装置は選択された候補に基づいて現在ブロックの予測サンプルを生成することができる。又は、例えば、エンコーディング装置は、選択された候補に基づいて動き情報を導出することができ、動き情報に基づいて現在ブロックの予測サンプルを生成することができる。例えば、エンコーディング装置は、双予測によってL0予測サンプル及びL1予測サンプルを生成することができ、前記L0予測サンプル及び前記L1予測サンプルに基づいて、現在ブロックの予測サンプルを生成することができる。この場合、双予測のための加重値インデックス情報(又は加重値情報)を用いて、前記L0予測サンプル及び前記L1予測サンプルから現在ブロックの予測サンプルを生成することができる。ここで、加重値情報は、前記加重値インデックス情報に基づいて示されることができる。
言い換えれば、例えば、エンコード装置は、選択された候補に基づいて現在ブロックのL0予測サンプル及びL1予測サンプルを生成できる。例えば、現在ブロックのインター予測タイプが双予測と決定された場合、現在ブロックの予測のために、参照ピクチャリスト0及び参照ピクチャリスト1が利用され得る。例えば、前記L0予測サンプルは、前記参照ピクチャリスト0に基づいて導出された現在ブロックの予測サンプルを表すことができ、前記L1予測サンプルは、前記参照ピクチャリスト1に基づいて導出された現在ブロックの予測サンプルを表すことができる。
例えば、前記候補は、空間的マージ候補を含むことができる。例えば、前記選択された候補が前記空間的マージ候補である場合、前記空間的マージ候補に基づいてL0動き情報及びL1動き情報が導出され得るし、これに基づいて前記L0予測サンプル及び前記L1予測サンプルが生成され得る。
例えば、前記候補は、時間的マージ候補を含むことができる。例えば、前記選択された候補が前記時間的マージ候補である場合、前記時間的マージ候補に基づいてL0動き情報及びL1動き情報が導出され得るし、これに基づいて前記L0予測サンプル及び前記L1予測サンプルが生成され得る。
例えば、前記候補は、ペアワイズ(pair-wise)候補を含むことができる。例えば、前記選択された候補がペアワイズ候補である場合、前記ペアワイズ候補に基づいてL0動き情報及びL1動き情報が導出され得るし、これに基づいて前記L0予測サンプル及び前記L1予測サンプルが生成され得る。例えば、前記ペアワイズ候補は、前記マージ候補リストに含まれた候補のうち、他の2個の候補に基づいて導出されることができる。
または、例えば、前記マージ候補リストは、サブブロックマージ候補リストであることができ、アフィンマージ候補、サブブロックマージ候補、またはSbTMVP候補が選択されることもできる。ここで、サブブロック単位のアフィンマージ候補は、サブブロックマージ候補と呼ばれることもできる。
例えば、前記候補は、サブブロックマージ候補を含むことができる。例えば、前記選択された候補が前記サブブロックマージ候補である場合、前記サブブロックマージ候補に基づいてL0動き情報及びL1動き情報が導出され得るし、これに基づいて前記L0予測サンプル及び前記L1予測サンプルが生成され得る。例えば、前記サブブロックマージ候補は、CPMV(Control Point Motion Vector)を含むことができ、前記L0予測サンプル及び前記L1予測サンプルは、前記CPMVに基づいてサブブロック単位で予測が行われて生成されることができる。
ここで、CPMVは、前記現在ブロックのCP(Control Point)の周辺ブロックのうち、1つのブロックに基づいて表されることができる。例えば、CPは、2個、3個、または4個であることができ、現在ブロックの左上側(または、左上側コーナー)、右上側(または、右上側コーナー)、左下側(または、左下側コーナー)、または右下側(または、右下側コーナー)のうち、少なくとも一部に位置することができ、各位置毎に1つのCPのみが存在しうる。
例えば、前記CPが前記現在ブロックの左上側に位置するCP0であり得る。この場合、前記周辺ブロックは、前記現在ブロックの左上側角の周辺ブロック、前記左上側角の周辺ブロックの下側に隣接した左側の周辺ブロック及び前記左上側角の周辺ブロックの右側に隣接した上側の周辺ブロックを含むことができる。或いは、前記周辺ブロックは、図10において、A2ブロック、B2ブロック又はB3ブロックを含むことができる。
又は、例えば、前記CPが前記現在ブロックの右上側に位置するCP1であり得る。この場合、前記周辺ブロックは、前記現在ブロックの右上側角の周辺ブロック及び前記右上側角の周辺ブロックの左側に隣接した上側の周辺ブロックを含むことができる。或いは、前記周辺ブロックは、図10において、B0ブロック又はB1ブロックを含むことができる。
又は、例えば、前記CPが前記現在ブロックの左下側に位置するCP2であり得る。この場合、前記周辺ブロックは、前記現在ブロックの左下側角の周辺ブロック及び前記左下側角の周辺ブロックの上側に隣接した左側の周辺ブロックを含むことができる。或いは、前記周辺ブロックは、図10において、A0ブロック又はA1ブロックを含むことができる。
又は、例えば、前記CPが前記現在ブロックの右下側に位置するCP3であり得る。ここで、CP3はRBとも呼ばれ得る。この場合、前記周辺ブロックは、前記現在ブロックのコル(col)ブロック又は前記コルブロックの右下側角の周辺ブロックを含むことができる。ここで、前記コルブロックは、前記現在ブロックが位置する現在ピクチャと異なる参照ピクチャ内に前記現在ブロックと同じ位置のブロックを含むことができる。或いは、前記周辺ブロックは、図10においてTブロックを含むことができる。
または、例えば、前記候補は、SbTMVP候補を含むことができる。例えば、前記選択された候補が前記SbTMVP候補である場合、前記現在ブロックの左側周辺ブロックに基づいてL0動き情報及びL1動き情報が導出され得るし、これに基づいて前記L0予測サンプル及び前記L1予測サンプルが生成され得る。例えば、前記L0予測サンプル及び前記L1予測サンプルは、サブブロック単位で予測が行われて生成されることができる。
例えば、L0動き情報は、L0参照ピクチャインデックス及びL0動きベクトルなどを含むことができ、L1動き情報は、L1参照ピクチャインデックス及びL1動きベクトルなどを含むことができる。L0参照ピクチャインデックスは、参照ピクチャリスト0で参照ピクチャを表す情報を含むことができ、L1参照ピクチャインデックスは、参照ピクチャリスト1で参照ピクチャを表す情報を含むことができる。
例えば、エンコード装置は、L0予測サンプル、L1予測サンプル、及び加重値情報に基づいて現在ブロックの予測サンプルを生成できる。例えば、前記加重値情報は、加重値インデックス情報に基づいて表されることができる。前記加重値インデックス情報は、双予測のための加重値インデックス情報を表すことができる。例えば、前記加重値情報は、L0予測サンプルまたはL1予測サンプルの加重平均のための情報を含むことができる。すなわち、前記加重値インデックス情報は、前記加重平均に用いられた加重値に対するインデックス情報を表すことができ、前記加重平均に基づいて予測サンプルを生成する手順で加重値インデックス情報を生成することもできる。例えば、加重値インデックス情報は、3個または5個の加重値のうち、いずれか1つの加重値を表す情報を含むことができる。例えば、前記加重平均は、BCW(Bi-prediction with CU-level Weight)またはBWA(Bi-prediction with Weighted Average)における加重平均を表すことができる。
例えば、前記候補は、時間的マージ候補を含むことができ、前記時間的マージ候補に対する加重値インデックス情報は、0に表されることができる。すなわち、時間的マージ候補に対する加重値インデックス情報は、0に表されることができる。ここで、0である加重値インデックス情報は、各参照方向(すなわち、双予測でL0予測方向及びL1予測方向)の加重値が同一であることを表すことができる。または、例えば、前記候補は、時間的マージ候補を含むことができ、前記加重値インデックス情報は、コル(col)ブロックの加重値インデックス情報に基づいて表されることができる。すなわち、時間的マージ候補のための加重値インデックス情報は、コル(col)ブロックの加重値インデックス情報に基づいて表されることができる。ここで、前記コルブロックは、前記現在ブロックが位置する現在ピクチャと異なる参照ピクチャ内に前記現在ブロックと同じ位置のブロックを含むことができる。
例えば、前記候補は、ペアワイズ(pair-wise)候補を含むことができ、前記加重値インデックス情報は、前記ペアワイズ候補を導出するのに利用されたマージ候補リスト内の他の2個の候補のうち1つの加重値インデックス情報に基づいて表されることができる。すなわち、前記ペアワイズ候補に対する加重値インデックス情報は、前記ペアワイズ候補を導出するのに利用されたマージ候補リスト内の他の2個の候補のうち1つの加重値インデックス情報に基づいて表されることができる。
例えば、前記候補は、ペアワイズ(pair-wise)候補を含み、前記ペアワイズ候補は、前記候補のうち、他の2個の候補に基づいて表されることができる。前記他の2個の候補のそれぞれの加重値インデックス情報が第1の加重値インデックス情報と互いに同一である場合、前記ペアワイズ候補に対する加重値インデックス情報は、前記第1の加重値インデックス情報に基づいて表されることができる。前記他の2個の候補のそれぞれの加重値インデックス情報が互いに同一でない場合、前記ペアワイズ候補に対する加重値インデックス情報は、デフォルト(DEFAULT)加重値インデックス情報に基づいて表されることができる。このとき、前記デフォルト加重値インデックス情報は、前記L0予測サンプル及び前記L1予測サンプルの各々に同じ加重値を付与する加重値インデックス情報に該当することができる。
例えば、前記候補は、ペアワイズ(pair-wise)候補を含み、前記ペアワイズ候補は、前記候補のうち、他の2個の候補に基づいて表されることができる。前記他の2個の候補のそれぞれの加重値インデックス情報が第1の加重値インデックス情報と互いに同一である場合、前記ペアワイズ候補に対する加重値インデックス情報は、前記第1の加重値インデックス情報に基づいて表されることができる。前記他の2個の候補のそれぞれの加重値インデックス情報が互いに同一でない場合、前記ペアワイズ候補に対する加重値インデックス情報は、前記他の2個の候補のそれぞれの加重値インデックス情報のうち、デフォルト(DEFAULT)加重値インデックス情報でない加重値インデックス情報に基づいて表されることができる。前記デフォルト加重値インデックス情報は、前記L0予測サンプル及び前記L1予測サンプルの各々に同じ加重値を付与する加重値インデックス情報に該当することができる。
例えば、前記マージ候補リストは、サブブロックマージ候補リストであることができ、アフィンマージ候補、サブブロックマージ候補、またはSbTMVP候補が選択されることもできる。ここで、サブブロック単位のアフィンマージ候補は、サブブロックマージ候補と呼ばれることもできる。
例えば、前記候補は、アフィンマージ候補を含むことができ、前記アフィンマージ候補は、CPMV(Control Point Motion Vector)を含むことができる。
例えば、前記アフィンマージ候補が前記現在ブロックの左上側に位置するCP0(Control Point 0)に対するCPMV0を含む場合、前記アフィンマージ候補に対する加重値インデックス情報は、前記CP0に対する第0加重値インデックス情報に基づいて示されることができる。前記アフィンマージ候補が前記現在ブロックの左上側に位置するCP0に対するCPMV0を含まない場合、前記アフィンマージ候補に対する加重値インデックス情報は、前記現在ブロックの右上側に位置するCP1(Control Point 1)に対する第1加重値インデックス情報に基づいて示されることができる。
前記第0加重値インデックス情報は、前記CP0の周辺ブロックのうち、前記CPMV0の導出のために使用されるブロックの加重値インデックス情報に該当し、前記CP0の周辺ブロックは、前記現在ブロックの左上側角の周辺ブロック、前記左上側 角の周辺ブロックの下側に隣接した左側の周辺ブロック及び前記左上側角の周辺ブロックの右側に隣接した上側の周辺ブロックを含むことができる。
前記第1加重値インデックス情報は、前記CP1の周辺ブロックのうち、前記CPMV1の導出のために使用されるブロックの加重値インデックス情報に該当し、前記CP1の周辺ブロックは、前記現在ブロックの右上側角の周辺ブロック及び前記右上側角の周辺ブロックの左側に隣接した上側の周辺ブロックを含むことができる。
または、例えば、前記候補は、SbTMVP候補を含むことができ、前記SbTMVP候補に対する加重値インデックス情報は、前記現在ブロックの左側周辺ブロックの加重値インデックス情報に基づいて表されることができる。すなわち、SbTMVP候補のための加重値インデックス情報は、前記左側周辺ブロックの加重値インデックス情報に基づいて表されることができる。
または、例えば、前記候補は、SbTMVP候補を含むことができ、前記SbTMVP候補に対する加重値インデックス情報は、0に表されることができる。すなわち、SbTMVP候補のための加重値インデックス情報は、0に表されることができる。ここで、0である加重値インデックス情報は、各参照方向(すなわち、双予測でL0予測方向及びL1予測方向)の加重値が同一であることを表すことができる。
または、例えば、前記候補は、SbTMVP候補を含むことができ、前記加重値インデックス情報は、コル(col)ブロック内のセンターブロックの加重値インデックス情報に基づいて表されることができる。すなわち、SbTMVP候補のための加重値インデックス情報は、コル(col)ブロック内のセンターブロックの加重値インデックス情報に基づいて表されることができる。ここで、前記コルブロックは、前記現在ブロックが位置する現在ピクチャと異なる参照ピクチャ内に前記現在ブロックと同じ位置のブロックを含むことができ、前記センターブロックは、前記コルブロックの中央に位置する4個のサブブロックのうち、右下側サブブロックを含むことができる。
または、例えば、前記候補は、SbTMVP候補を含むことができ、前記加重値インデックス情報は、コル(col)ブロックのサブブロックのそれぞれの加重値インデックス情報に基づいて表されることができる。すなわち、SbTMVP候補のための加重値インデックス情報は、コル(col)ブロックのサブブロックのそれぞれの加重値インデックス情報に基づいて表されることができる。
或いは、図12で示していないが、例えば、エンコーディング装置は、前記予測サンプルと原本サンプルに基づいてレジデュアルサンプルを導出することができる。この場合、前記レジデュアルサンプルに基づいてレジデュアル関連情報が導出できる。前記レジデュアル関連情報に基づいてレジデュアルサンプルが導出できる。前記レジデュアルサンプル及び前記予測サンプルに基づいて、復元サンプルが生成できる。前記復元サンプルに基づいて、復元ブロック及び復元ピクチャが導出できる。又は、例えば、エンコーディング装置は、レジデュアル関連情報又は予測関連情報を含む映像情報をエンコーディングすることができる。
例えば、エンコーディング装置は、前述した情報(又はシンタックス要素)の全部又は一部を含む映像情報をエンコーディングし、ビットストリーム又はエンコーディングされた情報を生成することができる。或いは、ビットストリームの形態で出力することができる。また、前記ビットストリーム又はエンコーディングされた情報は、ネットワーク又は保存媒体を介してデコーディング装置に送信されることができる。或いは、前記ビットストリーム又はエンコーディングされた情報は、コンピュータ読み取り可能な保存媒体に保存されることができ、前記ビットストリーム又は前記エンコーディングされた情報は、前述した映像エンコーディング方法により生成されることができる。
図14及び図15は、本文書の実施形態に係るビデオ/映像デコーディング方法及び関連のコンポーネントの一例を概略的に示す。
図14において開示された方法は、図3又は図15において開示されたデコーディング装置によって実行されることができる。具体的に、例えば、図14のS1400は、図15において前記デコーディング装置300のエントロピーデコーディング部310によって実行されることができ、図14のS1410乃至S1440は、図15において前記デコーディング装置300の予測部330によって実行されることができる。また、図14で示していないが、図15において前記デコーディング装置300のエントロピーデコーディング部310によりビットストリームから予測関連情報又はレジデュアル情報が導出でき、前記デコーディング装置300のレジデュアル処理部320によりレジデュアル情報からレジデュアルサンプルが導出でき、前記デコーディング装置300の予測部330により予測関連情報から予測サンプルが導出でき、前記デコーディング装置300の加算部340によりレジデュアルサンプル又は予測サンプルから復元ブロック又は復元ピクチャが導出できる。図14において開示された方法は、本文書で前述した実施形態を含むことができる。
図14を参照すると、デコーディング装置はビットストリームを介してインター予測モード情報を含む映像情報を受信することができる(S1400)。例えば、前記映像情報は、ビデオ情報とも呼ばれ得る。前記映像情報は、本文書の前述した実施形態に係る多様な情報を含むことができる。例えば、映像情報は、予測関連情報又はレジデュアル関連情報のうち少なくとも一部を含むことができる。
例えば、前記予測関連情報は、インター予測モード情報又はインター予測タイプ情報を含むことができる。例えば、前記インター予測モード情報は、多様なインター予測モードのうち少なくとも一部を示す情報を含むことができる。例えば、マージモード、スキップモード、MVP(motion vector prediction)モード、アフィン(Affine)モード、サブブロックマージモード又はMMVD(merge with MVD)モード等の多様なモードが使用できる。また、DMVR(Decoder side motion vector refinement)モード、AMVR(adaptive motion vector resolution)モード、BCW(Bi-prediction with CU-level weight)又はBDOF(Bi-directional optical flow)等が付随的なモードとしてさらに、又は代わりに使用できる。例えば、前記インター予測タイプ情報は、inter_pred_idcシンタックス要素を含むことができる。或いは、前記インター予測タイプ情報は、L0予測、L1予測又は双(bi)予測のいずれかを示す情報を含むことができる。
デコーディング装置は、インター予測モード情報に基づいて、現在ブロックのマージ候補リストを生成することができる(S1410)。例えば、デコーディング装置は、前記インター予測モード情報に基づいて、現在ブロックのインター予測モードをマージモード、アフィン(マージ)モード又はサブブロックマージモードと決定することができ、決定したインター予測モードによってマージ候補リストを生成することができる。ここで、インター予測モードがアフィンマージモード又はサブブロックマージモードと決定された場合、前記マージ候補リストは、アフィンマージ候補リスト又はサブブロックマージ候補リスト等のように呼ばれ得るが、簡略にマージ候補リストとも呼ばれ得る。
例えば、前記マージ候補リスト内の候補の個数が最大候補個数になるまでマージ候補リストに候補が挿入され得る。ここで、候補は、現在ブロックの動き情報(または、動きベクトル)を導出するための候補または候補ブロックを表すことができる。例えば、候補ブロックは、現在ブロックの周辺ブロックに対する探索を介して導出されることができる。例えば、周辺ブロックは、現在ブロックの空間的周辺ブロック及び/又は時間的周辺ブロックを含むことができ、空間的周辺ブロックが先に探索されて(空間的マージ)候補が導出され得るし、その後、時間的周辺ブロックが探索されて(時間的マージ)候補と導出されることができ、導出された候補は、前記マージ候補リストに挿入されることができる。例えば、前記マージ候補リストは、前記候補を挿入した後にも、前記マージ候補リスト内の候補の個数が最大候補個数より少ない場合、追加候補を挿入できる。例えば、追加候補は、history based merge candidate(s)、pair-wise average merge candidate(s)、ATMVP、combined bi-predictiveマージ候補(現在スライス/タイルグループのスライス/タイルグループタイプがBタイプである場合)、及び/又はゼロベクトルマージ候補のうち、少なくとも1つを含むことができる。
または、例えば、アフィンマージ候補リスト内の候補の個数が最大候補個数になるまでアフィンマージ候補リストに候補が挿入され得る。ここで、候補は、現在ブロックのCPMV(Control Point Motion Vector)を含むことができる。または、前記候補は、前記CPMVを導出するための候補または候補ブロックを表すこともできる。前記CPMVは、現在ブロックのCP(Control Point)における動きベクトルを表すことができる。例えば、CPは、2個、3個、または4個であることができ、現在ブロックの左上側(または、左上側コーナー)、右上側(または、右上側コーナー)、左下側(または、左下側コーナー)、または右下側(または、右下側コーナー)のうち、少なくとも一部に位置することができ、各位置毎に1つのCPのみが存在しうる。
例えば、候補ブロックは、現在ブロックの周辺ブロック(または、現在ブロックのCPの周辺ブロック)に対する探索を介して導出されることができる。例えば、アフィンマージ候補リストは、継承された(inherited)アフィンマージ候補、構成された(constructed)アフィンマージ候補、またはゼロ(zero)動きベクトル候補のうち、少なくとも1つを含むことができる。例えば、アフィンマージ候補リストは、先に前記継承されたアフィンマージ候補を挿入でき、その後、構成されたアフィンマージ候補を挿入できる。また、アフィンマージ候補リストに構成されたアフィンマージ候補まで挿入したが、前記アフィンマージ候補リスト内の候補の個数が最大候補個数より小さい場合、残りは、ゼロ動きベクトル候補で満たすことができる。ここで、ゼロ動きベクトル候補は、ゼロベクトルと呼ばれることもできる。例えば、アフィンマージ候補リストは、サンプル単位で動きベクトルが導出されるアフィンマージモードによるリストであることができるが、サブブロック単位で動きベクトルが導出されるアフィンマージモードによるリストであることもできる。この場合、アフィンマージ候補リストは、サブブロックマージ候補リストと呼ばれることもでき、サブブロックマージ候補リストは、SbTMVPで導出された候補(または、SbTMVP候補)も含まれることができる。例えば、SbTMVP候補がサブブロックマージ候補リストに含まれる場合、サブブロックマージ候補リスト内で継承されたアフィンマージ候補及び構成されたアフィンマージ候補より前に位置することができる。
デコーディング装置は、マージ候補リストのうち、選択された候補に基づいて現在ブロックの動き情報を導出することができる(S1420)。例えば、マージ候補リストは、空間的マージ候補、時間的マージ候補、ペアワイズ候補又は零ベクトル候補のうち少なくとも一部を含むことができ、現在ブロックのインター予測のために、このような候補のうちの一つの候補を選択することができる。或いは、例えば、サブブロックマージ候補リストは、承継されたアフィンマージ候補、構成されたアフィンマージ候補、SbTMVP候補又は零ベクトル候補のうち少なくとも一部を含むことができ、現在ブロックのインター予測のために、このような候補のうちの一つの候補を選択することができる。例えば、前記選択された候補は、選択情報に基づいて前記マージ候補リストから選択されることができる。例えば、前記選択情報は、前記マージ候補リスト内の選択された候補を示すインデックス情報を含むことができる。例えば、前記選択情報は、マージインデックス情報又はサブブロックマージインデックス情報とも呼ばれ得る。例えば、前記選択情報は、前記映像情報に含まれることがある。或いは、前記選択情報は、前記インター予測モード情報に含まれることもある。
デコーディング装置は、動き情報に基づいて、現在ブロックのL0予測サンプル及びL1予測サンプルを生成することができる(S1430)。例えば、デコーディング装置は、インター予測タイプが双予測で導出される場合、選択された候補に基づいてL0動き情報及びL1動き情報を導出することができる。デコーディング装置は、インター予測タイプ情報に基づいて、現在ブロックのインター予測タイプを双予測(bi-prediction)で導出することができる。例えば、前記現在ブロックのインター予測タイプは、前記インター予測タイプ情報に基づいて、L0予測、L1予測又は双(bi)予測のうち、双予測で導出されることができる。ここで、L0予測は、参照ピクチャリスト0ベースの予測を示すことができ、L1予測は、参照ピクチャリスト1ベースの予測を示すことができ、双予測は、参照ピクチャリスト0及び参照ピクチャリスト1ベースの予測を示すことができる。例えば、前記インター予測タイプ情報は、inter_pred_idcシンタックス要素を含むことができる。
例えば、L0動き情報は、L0参照ピクチャインデックス及びL0動きベクトル等を含むことができ、L1動き情報は、L1参照ピクチャインデックス及びL1動きベクトル等を含むことができる。L0参照ピクチャインデックスは、参照ピクチャリスト0で参照ピクチャを示す情報を含むことができ、L1参照ピクチャインデックスは、参照ピクチャリスト1で参照ピクチャを示す情報を含むことができる。
例えば、前記候補は、空間的マージ候補を含むことができる。例えば、前記選択された候補が前記空間的マージ候補である場合、前記空間的マージ候補に基づいてL0動き情報及びL1動き情報が導出され得るし、これに基づいて前記L0予測サンプル及び前記L1予測サンプルが生成され得る。
例えば、前記候補は、時間的マージ候補を含むことができる。例えば、前記選択された候補が前記時間的マージ候補である場合、前記時間的マージ候補に基づいてL0動き情報及びL1動き情報が導出され得るし、これに基づいて前記L0予測サンプル及び前記L1予測サンプルが生成され得る。
例えば、前記候補は、ペアワイズ(pair-wise)候補を含むことができる。例えば、前記選択された候補がペアワイズ候補である場合、前記ペアワイズ候補に基づいてL0動き情報及びL1動き情報が導出され得るし、これに基づいて前記L0予測サンプル及び前記L1予測サンプルが生成され得る。例えば、前記ペアワイズ候補は、前記マージ候補リストに含まれた候補のうち、他の2個の候補に基づいて導出されることができる。
または、例えば、前記マージ候補リストは、サブブロックマージ候補リストであることができ、アフィンマージ候補、サブブロックマージ候補、またはSbTMVP候補が選択されることもできる。ここで、サブブロック単位のアフィンマージ候補は、サブブロックマージ候補と呼ばれることもできる。
例えば、前記候補は、アフィンマージ候補を含むことができる。例えば、前記選択された候補が前記アフィンマージ候補である場合、前記アフィンマージ候補に基づいてL0動き情報及びL1動き情報が導出され得るし、これに基づいて前記L0予測サンプル及び前記L1予測サンプルが生成され得る。例えば、前記アフィンマージ候補は、CPMV(Control Point Motion Vector)を含むことができ、前記L0予測サンプル及び前記L1予測サンプルは、前記CPMVに基づいてサブブロック単位で予測が行われて生成されることができる。
ここで、CPMVは、前記現在ブロックのCP(Control Point)の周辺ブロックのうち、1つのブロックに基づいて導出されることができる。例えば、CPは、2個、3個、または4個であることができ、現在ブロックの左上側(または、左上側コーナー)、右上側(または、右上側コーナー)、左下側(または、左下側コーナー)、または右下側(または、右下側コーナー)のうち、少なくとも一部に位置することができ、各位置毎に1つのCPのみが存在しうる。
例えば、前記CPが前記現在ブロックの左上側に位置するCP0であり得る。この場合、前記周辺ブロックは、前記現在ブロックの左上側角の周辺ブロック、前記左上側角の周辺ブロックの下側に隣接した左側の周辺ブロック及び前記左上側角の周辺ブロックの右側に隣接した上側の周辺ブロックを含むことができる。或いは、前記周辺ブロックは、図10において、A2ブロック、B2ブロック又はB3ブロックを含むことができる。
又は、例えば、前記CPが前記現在ブロックの右上側に位置するCP1であり得る。この場合、前記周辺ブロックは、前記現在ブロックの右上側角の周辺ブロック及び前記右上側角の周辺ブロックの左側に隣接した上側の周辺ブロックを含むことができる。或いは、前記周辺ブロックは、図10において、B0ブロック又はB1ブロックを含むことができる。
又は、例えば、前記CPが前記現在ブロックの左下側に位置するCP2であり得る。この場合、前記周辺ブロックは、前記現在ブロックの左下側角の周辺ブロック及び前記左下側角の周辺ブロックの上側に隣接した左側の周辺ブロックを含むことができる。或いは、前記周辺ブロックは、図10において、A0ブロック又はA1ブロックを含むことができる。
又は、例えば、前記CPが前記現在ブロックの右下側に位置するCP3であり得る。ここで、CP3はRBとも呼ばれ得る。この場合、前記周辺ブロックは、前記現在ブロックのコル(col)ブロック又は前記コルブロックの右下側角の周辺ブロックを含むことができる。ここで、前記コルブロックは、前記現在ブロックが位置する現在ピクチャと異なる参照ピクチャ内に前記現在ブロックと同じ位置のブロックを含むことができる。或いは、前記周辺ブロックは、図10においてTブロックを含むことができる。
又は、例えば、前記候補は、SbTMVP候補を含むことができる。例えば、前記選択された候補が前記SbTMVP候補である場合、前記現在ブロックの左側の周辺ブロックに基づいてL0動き情報及びL1動き情報が導出でき、これに基づいて、前記L0予測サンプル及び前記L1予測サンプルが生成できる。例えば、前記L0予測サンプル及び前記L1予測サンプルは、サブブロックの単位で予測が実行されて生成されることができる。
デコーディング装置は、L0予測サンプル、L1予測サンプル及び加重値情報に基づいて、現在ブロックの予測サンプルを生成することができる(S1440)。例えば、前記加重値情報は、マージ候補リストに含まれた候補のうち、選択された候補に対する加重値インデックス情報に基づいて導出されることができる。例えば、前記加重値情報は、L0予測サンプル又はL1予測サンプルの加重平均のための情報を含むことができる。すなわち、前記加重値インデックス情報は、前記加重平均に用いられた加重値に対するインデックス情報を示すことができ、前記加重平均は、加重値インデックス情報に基づいて実行されることができる。例えば、加重値インデックス情報は、3個又は5個の加重値のいずれかの加重値を示す情報を含むことができる。例えば、前記加重平均は、BCW(Bi-prediction with CU-level Weight)又はBWA(Bi-prediction with Weighted Average)での加重平均を示すことができる。
例えば、前記候補は、時間的マージ候補を含むことができ、前記時間的マージ候補に対する加重値インデックス情報は、0に導出されることができる。すなわち、時間的マージ候補のための加重値インデックス情報は、0に導出されることができる。ここで、0である加重値インデックス情報は、各参照方向(すなわち、双予測でL0予測方向及びL1予測方向)の加重値が同一であることを表すことができる。
例えば、前記候補は、時間的マージ候補を含むことができ、前記時間的マージ候補に対する加重値インデックス情報は、コル(col)ブロックの加重値インデックス情報に基づいて導出されることができる。すなわち、時間的マージ候補に対する加重値インデックス情報は、コル(col)ブロックの加重値インデックス情報に基づいて導出されることができる。ここで、前記コルブロックは、前記現在ブロックが位置する現在ピクチャと異なる参照ピクチャ内に前記現在ブロックと同じ位置のブロックを含むことができる。
例えば、前記候補は、ペアワイズ(pair-wise)候補を含むことができ、前記加重値インデックス情報は、前記ペアワイズ候補を導出するのに利用されたマージ候補リスト内の他の2個の候補のうち1つの加重値インデックス情報で導出されることができる。すなわち、前記ペアワイズ候補に対する加重値インデックス情報は、前記ペアワイズ候補を導出するのに利用されたマージ候補リスト内の他の2個の候補のうち1つの加重値インデックス情報で導出されることができる。
例えば、前記候補は、ペアワイズ(pair-wise)候補を含み、前記ペアワイズ候補は、前記候補のうち、他の2個の候補に基づいて導出されることができる。前記他の2個の候補のそれぞれの加重値インデックス情報が第1の加重値インデックス情報と互いに同一である場合、前記ペアワイズ候補に対する加重値インデックス情報は、前記第1の加重値インデックス情報に基づいて導出されることができる。前記他の2個の候補のそれぞれの加重値インデックス情報が互いに同一でない場合、前記ペアワイズ候補に対する加重値インデックス情報は、デフォルト(DEFAULT)加重値インデックス情報に基づいて導出されることができる。このとき、前記デフォルト加重値インデックス情報は、前記L0予測サンプル及び前記L1予測サンプルの各々に同じ加重値を付与する加重値インデックス情報に該当することができる。
例えば、前記候補は、ペアワイズ(pair-wise)候補を含み、前記ペアワイズ候補は、前記候補のうち、他の2個の候補に基づいて導出されることができる。前記他の2個の候補のそれぞれの加重値インデックス情報が第1の加重値インデックス情報と互いに同一である場合、前記ペアワイズ候補に対する加重値インデックス情報は、前記第1の加重値インデックス情報に基づいて導出されることができる。前記他の2個の候補のそれぞれの加重値インデックス情報が互いに同一でない場合、前記ペアワイズ候補に対する加重値インデックス情報は、前記他の2個の候補のそれぞれの加重値インデックス情報のうち、デフォルト(DEFAULT)加重値インデックス情報でない加重値インデックス情報に基づいて導出されることができる。前記デフォルト加重値インデックス情報は、前記L0予測サンプル及び前記L1予測サンプルの各々に同じ加重値を付与する加重値インデックス情報に該当することができる。
例えば、前記マージ候補リストは、サブブロックマージ候補リストであることができ、アフィンマージ候補、サブブロックマージ候補、またはSbTMVP候補が選択されることもできる。ここで、サブブロック単位のアフィンマージ候補は、サブブロックマージ候補と呼ばれることもできる。
例えば、前記候補は、アフィンマージ候補を含むことができ、前記アフィンマージ候補は、CPMV(Control Point Motion Vector)を含むことができる。
例えば、前記アフィンマージ候補が前記現在ブロックの左上側に位置するCP0(Control Point 0)に対するCPMV0を含む場合、前記アフィンマージ候補に対する加重値インデックス情報は、前記CP0に対する第0加重値インデックス情報に基づいて導出されることができる。前記アフィンマージ候補が前記現在ブロックの左上側に位置するCP0に対するCPMV0を含まない場合、前記アフィンマージ候補に対する加重値インデックス情報は、前記現在ブロックの右上側に位置するCP1(Control Point 1)に対する第1加重値インデックス情報に基づいて導出されることができる。
前記第0加重値インデックス情報は、前記CP0の周辺ブロックのうち、前記CPMV0の導出のために使用されるブロックの加重値インデックス情報に該当し、前記CP0の周辺ブロックは、前記現在ブロックの左上側角の周辺ブロック、前記左上側角の周辺ブロックの下側に隣接した左側の周辺ブロック、及び前記左上側角の周辺ブロックの右側に隣接した上側の周辺ブロックを含むことができる。
前記第1加重値インデックス情報は、前記CP1の周辺ブロックのうち、前記CPMV1の導出のために使用されるブロックの加重値インデックス情報に該当し、前記CP1の周辺ブロックは、前記現在ブロックの右上側角の周辺ブロック及び前記右上側角の周辺ブロックの左側に隣接した上側の周辺ブロックを含むことができる。
或いは、例えば、前記候補はSbTMVP候補を含むことができ、前記SbTMVP候補に対する加重値インデックス情報は、前記現在ブロックの左側の周辺ブロックの加重値インデックス情報に基づいて導出されることができる。すなわち、SbTMVP候補のための加重値インデックス情報は、前記左側の周辺ブロックの加重値インデックス情報に基づいて導出されることができる。
又は、例えば、前記候補はSbTMVP候補を含むことができ、前記SbTMVP候補に対する加重値インデックス情報は0で導出されることができる。すなわち、SbTMVP候補のための加重値インデックス情報は0で導出されることができる。ここで、0である加重値インデックス情報は、各参照方向(すなわち、双予測でL0予測方向及びL1予測方向)の加重値が同一であることを示すことができる。
或いは、例えば、前記候補は、SbTMVP候補を含むことができ、前記加重値インデックス情報は、コル(col)ブロック内のセンターブロックの加重値インデックス情報に基づいて導出されることができる。すなわち、SbTMVP候補のための加重値インデックス情報は、コル(col)ブロック内のセンターブロックの加重値インデックス情報に基づいて導出されることができる。ここで、前記コルブロックは、前記現在ブロックが位置する現在ピクチャと異なる参照ピクチャ内に前記現在ブロックと同じ位置のブロックを含むことができ、前記センターブロックは、前記コルブロックの中央に位置する4個のサブブロックのうち、右下側のサブブロックを含むことができる。
又は、例えば、前記候補はSbTMVP候補を含むことができ、前記加重値インデックス情報は、コル(col)ブロックのサブブロックそれぞれの加重値インデックス情報に基づいて導出されることができる。すなわち、SbTMVP候補のための加重値インデックス情報は、コル(col)ブロックのサブブロックそれぞれの加重値インデックス情報に基づいて導出されることができる。
図14に示していないが、例えば、デコーディング装置は、前記映像情報に含まれたレジデュアル関連情報に基づいてレジデュアルサンプルを導出することができる。また、デコーディング装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて復元サンプルを生成することができる。前記復元サンプルに基づいて、復元ブロック及び復元ピクチャが導出できる。
例えば、デコード装置は、ビットストリームまたはエンコードされた情報をデコードして前述した情報(または、シンタックス要素)の全部または一部を含む映像情報を取得することができる。また、前記ビットストリームまたはエンコードされた情報は、コンピュータ読み取り可能な格納媒体に格納されることができ、前述したデコード方法が実行されるようにすることができる。
前述した実施形態において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、該当実施形態は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または、流れ図の1つまたはそれ以上のステップが本文書の実施形態の範囲に影響を及ぼさずに削除可能であることを理解することができる。
前述した本文書の実施形態による方法は、ソフトウェア形態で実現されることができ、本文書によるエンコード装置及び/又はデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を実行する装置に含まれることができる。
本文書において、実施形態がソフトウェアで実現される時、前述した方法は、前述した機能を遂行するモジュール(過程、機能など)で実現されることができる。モジュールは、メモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/又はデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/又は他の格納装置を含むことができる。即ち、本文書で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で実現されて実行されることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で実現されて実行されることができる。この場合、実現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル格納媒体に格納されることができる。
また、本文書の実施形態が適用されるデコード装置及びエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(virtual reality)装置、AR(argumente reality)装置、画像電話ビデオ装置、運送手段端末(例えば、車両(自律走行車両を含む)端末、飛行機端末、船舶端末等)、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使われることができる。例えば、OTTビデオ(Over the top video)装置として、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含むことができる。
また、本文書の実施形態が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。また、本文書の実施形態によるデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読みだすことができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納され、または、有無線通信ネットワークを介して送信されることができる。
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で実現されることができ、前記プログラムコードは、本文書の実施形態によりコンピュータで実行されることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
図16は、本文書において開示された実施形態が適用できるコンテンツストリーミングシステムの例を示す。
図16を参照すると、本文書の実施形態が適用されるコンテンツストリーミングシステムは大きくエンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディアストレージ、ユーザ装置、及びマルチメディア入力装置を含むことができる。
前記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略されることができる。
前記ビットストリームは、本文書の実施形態に適用されるエンコード方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
前記ストリーミングサーバは、メディア格納所及び/またはエンコードサーバからコンテンツを受信することができる。例えば、前記エンコードサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間格納することができる。
前記ユーザ装置の例として、携帯電話、スマートフォン(smart phone)、ノートブックコンピュータ(laptop computer)、デジタル放送用端末、PDA(personal digital assistants)、PMP(portable multimedia player)、ナビゲーション、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(ultrabook)、ウェアラブルデバイス(wearable device、例えば、ウォッチ型端末(smartwatch)、グラス型端末(smart glass)、HMD(head mounted display)、デジタルTV、デスクトップコンピュータ、デジタルサイニジがある。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせて装置で実現されることができ、本明細書の装置請求項の技術的特徴が組み合わせて方法で実現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて装置で実現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて方法で実現されることができる。