本文書の開示は、様々な変更を加えることができ、様々な実施例を有することができるが、特定の実施例を図面に例示し、詳細に説明しようとする。しかし、これは、本開示を特定の実施例に限定しようとするわけではない。本文書で使用する用語は、単に特定の実施例を説明するために使用されたものであって、本文書における実施例の技術的思想を限定しようとする意図に使用されるものではない。単数の表現は、文脈上明らかに異なる意味ではない限り、複数の表現を含む。本文書において、「含む」又は「有する」等の用語は、文書上に記載された特徴、数字、段階、動作、構成要素、部品又はこれらを組み合わせたものが存在することを指定しようとするものであり、1つ又はそれ以上の異なる特徴や、数字、段階、動作、構成要素、部品又はこれらを組み合わせたものの存在又は付加の可能性を予め排除しないものと理解されるべきである。
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立して示すものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するのではない。例えば、各構成のうち、2つ以上の構成を合わせて1つの構成をなすこともあり、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)又は次世代ビデオ/映像コーディング標準(例えば、267又は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)。スライスは単一のNALユニットに排他的に含まれ得る、整数個の完全なタイル又はピクチャのタイル内の整数個の連続的な完全なCTU行を含み得る(A slice includes an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture that may be exclusively contained in a single NAL unit)
一方、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)の集合(または、アレイ)を含むことができる。
本文書において、「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 one of 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つの図面内で個別的に説明される技術的特徴は、個別的に具現されてもよく、同時に具現されてもよい。
図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)、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)の値等)を共にまたは別にエンコーディングすることもできる。エンコーディングされた情報(例えば、エンコーディングされたビデオ/映像情報)は、ビットストリーム形態で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 chroma scaling)が適用されることもできる。
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法についての説明で後述するように、フィルタリングに関する様々な情報を生成してエントロピーエンコーディング部240に伝達することができる。フィルタリングに関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコーディング装置は、これを介してインター予測が適用される場合、エンコーディング装置100とデコーディング装置における予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ270のDPBは、修正された復元ピクチャをインター予測部221における参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコーディングされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達することができる。
図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)321を備えることができる。上述したエントロピーデコーディング部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施例によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに備えることもできる。
ビデオ/映像情報を含むビットストリームが入力されれば、デコーディング装置300は、図3のエンコーディング装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元できる。例えば、デコーディング装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出できる。デコーディング装置300は、エンコーディング装置で適用された処理ユニットを用いてデコーディングを行うことができる。したがって、デコーディングの処理ユニットは、例えば、コーディングユニットであることができ、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/又はターナリツリー構造にしたがって分割されることができる。コーディングユニットから1つ以上の変換ユニットが導出され得る。そして、デコーディング装置300を介してデコーディング及び出力された復元映像信号は、再生装置を介して再生されることができる。
デコーディング装置300は、図3のエンコーディング装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコーディング部310を介してデコーディングされることができる。例えば、エントロピーデコーディング部310は、前記ビットストリームをパーシングして映像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/映像情報)を導出できる。前記ビデオ/映像情報は、アダプテーションパラメータセット(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は、現在ピクチャ内の動き情報が導出された(または、デコーディングされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納できる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納でき、イントラ予測部331に伝達することができる。
本明細書において、エンコーディング装置200のフィルタリング部260、インター予測部221、及びイントラ予測部222で説明された実施例等は、各々デコーディング装置300のフィルタリング部350、インター予測部332、及びイントラ予測部331にも同一または対応するように適用されることができる。
前述したように、ビデオコーディングを実行するにあたって、圧縮効率を上げるために予測を実行する。これを介してコーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコーディング装置及びデコーディング装置で同じく導出され、前記エンコーディング装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに対する情報(レジデュアル情報)をデコーディング装置にシグナリングすることで映像コーディング効率を上げることができる。デコーディング装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコーディング装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連したレジデュアル情報を(ビットストリームを介して)デコーディング装置にシグナリングできる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコーディング装置は、前記レジデュアル情報に基づいて逆量子化/逆変換の手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出することができる。デコーディング装置は、予測されたブロックと前記レジデュアルブロックに基づいて復元ピクチャを生成することができる。また、エンコーディング装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
本文書において、量子化/逆量子化及び/または変換/逆変換のうち少なくとも1つは、省略されることができる。前記量子化/逆量子化が省略される場合、前記量子化された変換係数は、変換係数と呼ばれることができる。前記変換/逆変換が省略される場合、前記変換係数は、係数またはレジデュアル係数と呼ばれることもでき、または、表現の統一性のために、依然として変換係数と呼ばれることもできる。
本文書において、量子化された変換係数及び変換係数は、各々、変換係数及びスケーリングされた(scaled)変換係数と呼ばれることができる。この場合、レジデュアル情報は、変換係数に関する情報を含むことができ、前記変換係数に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。前記レジデュアル情報(または、前記変換係数に関する情報)に基づいて変換係数が導出されることができ、前記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出されることができる。前記スケーリングされた変換係数に対する逆変換(変換)に基づいてレジデュアルサンプルが導出されることができる。これは本文書の他の部分でも同様に適用/表現されることができる。
イントラ予測は、現在ブロックが属するピクチャ(以下、現在ピクチャという)内の参照サンプルに基づいて現在ブロックに対する予測サンプルを生成する予測を示すことができる。現在ブロックにイントラ予測が適用される場合、現在ブロックのイントラ予測に使用する隣接参照サンプルが導出されることができる。前記現在ブロックの隣接参照サンプルは、nW×nHの大きさの現在ブロックの左側(left)境界に隣接したサンプル及び左下側(bottom-left)に隣接した総2×nH個のサンプル、現在ブロックの上側(top)境界に隣接したサンプル及び右上側(top-right)に隣接した総2×nW個のサンプル及び現在ブロックの左上側(top-left)に隣接した1個のサンプルを含むことができる。または、前記現在ブロックの隣接参照サンプルは、複数列の上側隣接サンプル及び複数行の左側隣接サンプルを含むこともできる。また、前記現在ブロックの隣接参照サンプルは、nW×nH大きさの現在ブロックの右側(right)境界に隣接した総nH個のサンプル、現在ブロックの下側(bottom)境界に隣接した総nW個のサンプル及び現在ブロックの右下側(bottom-right)に隣接した1個のサンプルを含むこともできる。
ただし、現在ブロックの隣接参照サンプルのうち一部は、まだデコーディングされない、または利用可能でない場合がある。この場合、デコーダは、利用可能なサンプルとして利用可能でないサンプルを代替(substitution)して予測に使用する隣接参照サンプルを構成することができる。または、利用可能なサンプルの補間(interpolation)を介して予測に使用する隣接参照サンプルを構成することができる。
隣接参照サンプルが導出された場合、(i)現在ブロックの隣接(neighboring)参照サンプルの平均(average)または補間(interpolation)に基づいて予測サンプルを誘導することができ、(ii)現在ブロックの隣接参照サンプルのうち、予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて前記予測サンプルを誘導することもできる。(i)の場合は、非方向性(non-directional)モードまたは非角度(non-angular)モードと呼ばれ、(ii)の場合は、方向性(directional)モードまたは角度(angular)モードと呼ばれることができる。
また、前記隣接参照サンプルのうち前記現在ブロックの予測サンプルを基準にして、前記現在ブロックのイントラ予測モードの予測方向に位置する第1の隣接サンプルと前記予測方向の反対方向に位置する第2の隣接サンプルとの補間を介して前記予測サンプルが生成されることもできる。前述した場合は、線形補間イントラ予測(Linear interpolation intra prediction、LIP)と呼ばれることができる。また、線形モデル(linear model)を利用してルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LMモードと呼ばれることができる。
また、フィルタリングされた隣接参照サンプルに基づいて前記現在ブロックの臨時予測サンプルを導出し、前記既存の隣接参照サンプル、即ち、フィルタリングされない隣接参照サンプルのうち、前記イントラ予測モードによって導出された少なくとも1つの参照サンプルと前記臨時予測サンプルとを加重和(weighted sum)して前記現在ブロックの予測サンプルを導出することもできる。前述した場合は、PDPC(Position dependent intra prediction)と呼ばれることができる。
また、現在ブロックの隣接多重参照サンプルラインの中から最も予測正確度が高い参照サンプルラインを選択して該当ラインで予測方向に位置する参照サンプルを利用して予測サンプルを導出し、この時に使われた参照サンプルラインをデコーディング装置に指示(シグナリング)する方法でイントラ予測符号化を実行することができる。前述した場合は、多重参照ライン(multi-reference line)イントラ予測またはMRLベースのイントラ予測と呼ばれることができる。
また、現在ブロックを垂直または水平のサブパーティションに分けて同じイントラ予測モードに基づいてイントラ予測を実行し、前記サブパーティション単位で隣接参照サンプルを導出して利用できる。即ち、この場合、現在ブロックに対するイントラ予測モードが前記サブパーティションに同じく適用され、前記サブパーティション単位で隣接参照サンプルを導出して利用することによって、場合によって、イントラ予測性能を高めることができる。このような予測方法は、ISP(intra sub-partitions)ベースのイントラ予測と呼ばれることができる。
前述したイントラ予測方法は、イントラ予測モードと区分してイントラ予測タイプと呼ばれることができる。前記イントラ予測タイプは、イントラ予測技法または付加イントラ予測モードなど、多様な用語で呼ばれることができる。例えば、前記イントラ予測タイプ(または、付加イントラ予測モードなど)は、前述したLIP、PDPC、MRL、ISPのうち少なくとも1つを含むことができる。前記LIP、PDPC、MRL、ISPなどの特定イントラ予測タイプを除外した一般イントラ予測方法は、ノーマルイントラ予測タイプと呼ばれることができる。ノーマルイントラ予測タイプは、前記のような特定イントラ予測タイプが適用されない場合、一般的に適用されることができ、前述したイントラ予測モードに基づいて予測が実行されることができる。一方、必要によって、導出された予測サンプルに対する後処理フィルタリングが実行されることもできる。
具体的に、イントラ予測手順は、イントラ予測モード/タイプ決定ステップ、隣接参照サンプル導出ステップ、イントラ予測モード/タイプベースの予測サンプル導出ステップを含むことができる。また、必要によって、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが実行されることもできる。
イントラ予測が適用される場合、隣接ブロックのイントラ予測モードを利用して現在ブロックに適用されるイントラ予測モードが決定されることができる。例えば、デコーディング装置は、現在ブロックの隣接ブロック(例えば、左側及び/または上側隣接ブロック)のイントラ予測モード及び追加的な候補モードに基づいて導出されたMPM(most probable mode)リスト内のMPM候補のうち1つを、受信されたMPMインデックスに基づいて選択でき、または、前記MPM候補(及びプラナーモード)に含まれない残りのイントラ予測モードのうち1つを、リメイニングイントラ予測モード情報に基づいて選択できる。前記MPMリストは、プラナーモードを候補として含む場合または含まない場合で構成されることができる。例えば、前記MPMリストがプラナーモードを候補として含む場合、前記MPMリストは、6個の候補を有することができ、前記MPMリストがプラナーモードを候補として含まない場合、前記MPMリストは、5個の候補を有することができる。前記MPMリストがプラナーモードを候補として含まない場合、現在ブロックのイントラ予測モードがプラナーモードでないかことを示すnotプラナーフラグ(例えば、intra_luma_not_planar_flag)がシグナリングされることができる。例えば、MPMフラグが先にシグナリングされ、MPMインデックス及びnotプラナーフラグは、MPMフラグの値が1である場合にシグナリングされることができる。また、前記MPMインデックスは、前記notプラナーフラグの値が1である場合にシグナリングされることができる。ここで、前記MPMリストがプラナーモードを候補として含まないように構成されることは、前記プラナーモードがMPMでないことを意味するより、MPMとして常にプラナーモードが考慮されるため、先にフラグ(not planar flag)をシグナリングしてプラナーモードであるかどうかを先に確認するためである。
例えば、現在ブロックに適用されるイントラ予測モードがMPM候補(及びプラナーモード)内にあるか、または、リメイニングモード内にあるかは、MPMフラグ(例えば、intra_luma_mpm_flag)に基づいて指示されることができる。MPMフラグの値1は、前記現在ブロックに対するイントラ予測モードがMPM候補(及びプラナーモード)内にあることを示すことができ、MPM flagの値0は、前記現在ブロックに対するイントラ予測モードがMPM候補(及びプラナーモード)内に無いことを示すことができる。前記notプラナーフラグ(例えば、intra_luma_not_planar_flag)値0は、前記現在ブロックに対するイントラ予測モードがプラナーモードであることを示すことができ、前記notプラナーフラグ値1は、前記現在ブロックに対するイントラ予測モードがプラナーモードでないことを示すことができる。前記MPMインデックスは、mpm_idxまたはintra_luma_mpm_idxシンテックス要素の形態でシグナリングされることができ、前記リメイニングイントラ予測モード情報は、rem_intra_luma_pred_modeまたはintra_luma_mpm_remainderシンテックス要素の形態でシグナリングされることができる。例えば、前記リメイニングイントラ予測モード情報は、全体イントラ予測モードのうち前記MPM候補(及びプラナーモード)に含まれない残りのイントラ予測モードを予測モード番号順にインデキシングしてそのうち1つを指すことができる。前記イントラ予測モードは、ルマ成分(サンプル)に対するイントラ予測モードである。以下、イントラ予測モード情報は、前記MPM flag(例えば、intra_luma_mpm_flag)、前記not planar flag(例えば、intra_luma_not_planar_flag)、前記MPMインデックス(例えば、mpm_idxまたはintra_luma_mpm_idx)、前記リメイニングイントラ予測モード情報(rem_intra_luma_pred_modeまたはintra_luma_mpm_remainder)のうち少なくとも1つを含むことができる。本文書において、MPMリストは、MPM候補リスト、candModeListなど、多様な用語で呼ばれることができる。MIPが現在ブロックに適用される場合、MIPのための別途のmpm flag(例えば、intra_mip_mpm_flag)、mpmインデックス(例えば、intra_mip_mpm_idx)、リメイニングイントラ予測モード情報(例えば、intra_mip_mpm_remainder)がシグナリングされることができ、前記not planar flagはシグナリングされない。
即ち、一般的に映像に対するブロック分割になると、コーディングしようとする現在ブロックと隣接(neighboring)ブロックは、類似する映像特性を有するようになる。したがって、現在ブロックと隣接ブロックは、互いに同じまたは類似するイントラ予測モードを有する確率が高い。したがって、エンコーダは、現在ブロックのイントラ予測モードをエンコーディングするために、隣接ブロックのイントラ予測モードを利用することができる。
例えば、エンコーダ/デコーダは、現在ブロックに対するMPM(most probable modes)リストを構成することができる。前記MPMリストは、MPM候補リストと示すこともできる。ここで、MPMとは、イントラ予測モードコーディング時、現在ブロックと隣接ブロックの類似性を考慮してコーディング効率を向上させるために利用されるモードを意味することができる。前述したように、MPMリストは、プラナーモードを含んで構成されることもでき、または、プラナーモードを除外して構成されることもできる。例えば、MPMリストがプラナーモードを含む場合、MPMリストの候補の個数は6個である。そして、MPMリストがプラナーモードを含まない場合、MPMリストの候補の個数は5個である。
エンコーダ/デコーダは、5個または6個のMPMを含むMPMリストを構成することができる。
MPMリストを構成するために、デフォルトイントラモード(Default intra modes)、隣接イントラモード(Neighbour intra modes)、及び導出されたイントラモード(Derived intra modes)の3つの種類のモードが考慮されることができる。
前記隣接イントラモードのために、2つの隣接ブロック、即ち、左側隣接ブロック及び上側隣接ブロックが考慮されることができる。
前述したように、もし、MPMリストがプラナーモードを含まないように構成する場合、前記リストからプラナー(planar)モードが除外され、前記MPMリスト候補の個数は、5個に設定されることができる。
また、イントラ予測モードのうち、非方向性モード(または、非角度モード)は、現在ブロックの隣接(neighboring)参照サンプルの平均(average)ベースのDCモードまたは補間(interpolation)ベースのプラナー(planar)モードを含むことができる。
インター予測が適用される場合、エンコーディング装置/デコーディング装置の予測部は、ブロック単位でインター予測を行って予測サンプルを導出することができる。インター予測は、現在ピクチャ以外のピクチャのデータ要素(例えば、サンプル値、又は動き情報)に依存的な方法で導出される予測を示すことができる。現在ブロックにインター予測が適用される場合、参照ピクチャのインデックスの指す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロック(予測サンプルアレイ)を誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、現在ブロックの動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャのインデックスを含むことができる。前記動き情報は、インター予測タイプ(L0予測、L1予測、BI予測等)の情報を更に含むことができる。インター予測が適用される場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと、前記時間的隣接ブロックを含む参照ピクチャとは同一であってもよく、異なってもよい。前記時間的隣接ブロックは、同じ位置参照ブロック(collocated reference block)、同じ位置CU(colCU)等の名称で呼ばれ得、前記時間的隣接ブロックを含む参照ピクチャは、同じ位置ピクチャ(collocated picture、colPic)と呼ばれることもある。例えば、現在ブロックの隣接ブロックに基づいて動き情報の候補リストが構成されることができ、前記現在ブロックの動きベクトル及び/又は参照ピクチャのインデックスを導出するために、どの候補が選択(使用)されるかを指示するフラグ又はインデックス情報がシグナリングされることができる。様々な予測モードに基づいてインター予測が行われ、例えば、スキップモードとマージモードの場合、現在ブロックの動き情報は、選択された隣接ブロックの動き情報を同一であり得る。スキップモードの場合、マージモードと異なり、レジデュアル信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、選択された隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)はシグナリングされることができる。この場合、前記動きベクトル予測子及び動きベクトル差分の和を用いて、前記現在ブロックの動きベクトルを導出することができる。
前記動き情報は、インター予測タイプ(L0予測、L1予測、BI予測等)に応じて、L0動き情報及び/又はL1動き情報を含むことができる。L0方向の動きベクトルは、L0動きベクトル又はMVL0と呼ばれ得、L1方向の動きベクトルは、L1動きベクトル又はMVL1と呼ばれ得る。L0動きベクトルに基づいた予測は、L0予測と呼ばれ得、L1動きベクトルに基づいた予測をL1予測と呼ばれ得、前記L0動きベクトル及び前記L1動きベクトルの両方に基づいた予測を双(Bi)予測と呼ばれ得る。ここで、L0動きベクトルは、参照ピクチャリストL0(L0)に関連した動きベクトルを示すことができ、L1動きベクトルは、参照ピクチャリストL1(L1)に関連した動きベクトルを示すことができる。参照ピクチャリストL0は、前記現在ピクチャよりも、出力順序上、以前のピクチャを参照ピクチャに含むことができ、参照ピクチャリストL1は、前記現在ピクチャよりも、出力順序上、以後のピクチャを含むことができる。前記以前のピクチャは、順方向(参照)ピクチャと呼ばれ得、前記以後のピクチャは、逆方向(参照)ピクチャと呼ばれ得る。前記参照ピクチャリストL0は、前記現在ピクチャよりも、出力順序上、以後のピクチャを参照ピクチャにさらに含むことができる。この場合、前記参照ピクチャリストL0内で前記以前のピクチャが先にインデキシングされ、前記以後のピクチャは、その後にインデキシングされ得る。前記参照ピクチャリストL1は、前記現在ピクチャよりも、出力順序上、以前のピクチャを参照ピクチャにさらに含むことができる。この場合、前記参照ピクチャリスト1内で前記以後のピクチャが先にインデキシングされ、前記以前のピクチャは、その後にインデキシングされ得る。ここで、出力順序は、POC(picture order count)順序(order)に対応し得る。
インター予測に基づくビデオ/映像エンコーディング手順は概略的に、例えば以下を含む。
図4は、インター予測ベースのビデオ/映像エンコーディング方法の例を示す。
エンコーディング装置は、現在ブロックに対するインター予測を行う(S400)。エンコーディング装置は、現在ブロックのインター予測モード及び動き情報を導出し、前記ブロックの予測サンプルを生成する。ここで、インター予測モード決定、動き情報導出及び予測サンプル生成の手順は同時に行われてもよく、ある1つの手順が他の手順より先に行われてもよい。例えば、エンコーディング装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を含み、予測モード決定部において前記現在ブロックに対する予測モードを決定し、動き情報導出部において前記現在ブロックの動き情報を導出し、予測サンプル導出部において前記現在ブロックの予測サンプルを導出する。例えば、エンコーディング装置のインター予測部は、動き推定(motion estimation)により参照ピクチャの一定領域(サーチ領域)内において前記現在ブロックと類似したブロックをサーチし、前記現在ブロックとの差が最小又は一定基準以下である参照ブロックを導出する。これに基づいて前記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、前記参照ブロックと前記現在ブロックの位置差に基づいて動きベクトルを導出することができる。エンコーディング装置は、様々な予測モードのうち前記現在ブロックに対して適用されるモードを決定する。エンコーディング装置は、前記様々な予測モードに対するRD costを比較し、前記現在ブロックに対する最適の予測モードを決定することができる。
例えば、エンコーディング装置は、前記現在ブロックにスキップモード又はマージモードが適用される場合、後述するマージ候補リストを構成し、前記マージ候補リストに含まれるマージ候補が指す参照ブロックのうち前記現在ブロックとの差が最小又は一定基準以下である参照ブロックを導出することができる。この場合、前記導出された参照ブロックに関連するマージ候補が選択され、前記選択されたマージ候補を指すマージインデックス情報が生成されてデコーディング装置にシグナリングされる。前記選択されたマージ候補の動き情報を利用して前記現在ブロックの動き情報が導出されることができる。
他の例として、エンコーディング装置は、前記現在ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、前記(A)MVP候補リストに含まれるmvp(motion vector predictor)候補のうち選択されたmvp候補の動きベクトルを前記現在ブロックのmvpとして利用できる。この場合、例えば、前述の動き推定により導出された参照ブロックを指す動きベクトルが前記現在ブロックの動きベクトルとして利用されることができ、前記mvp候補のうち前記現在ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が前記選択されたmvp候補となり得る。前記現在ブロックの動きベクトルから前記mvpを引いた差分であるMVD(motion vector difference)が導出されることができる。その場合、前記MVDに関する情報がデコーディング装置にシグナリングされることができる。また、(A)MVPモードが適用される場合、前記参照ピクチャインデックスの値は参照ピクチャインデックス情報で構成され、別途に前記デコーディング装置にシグナリングされる。
エンコーディング装置は、前記予測サンプルに基づいてレジデュアルサンプルを導出する(S410)。エンコーディング装置は、前記現在ブロックの原本サンプルと前記予測サンプルを比較することにより、前記レジデュアルサンプルを導出することができる。
エンコーディング装置は、予測情報やレジデュアル情報を含む映像情報をエンコーディングする(S420)。エンコーディング装置は、エンコーディングされた映像情報をビットストリーム形態で出力する。前記予測情報は、前記予測手順に関連する情報であり、予測モード情報(例えは、skip flag、merge flag又はmode indexなど)及び動き情報に関する情報を含む。前記動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、mvp flag又はmvp index)を含む。また、前記動き情報に関する情報は、前述のMVDに関する情報及び/又は参照ピクチャインデックス情報を含む。また、前記動き情報に関する情報は、L0予測、L1予測、又は双(bi)予測が適用されるか否かを示す情報を含む。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含む。
出力されたビットストリームは、(デジタル)格納媒体に格納されてデコーディング装置に伝達されてもよく、また、ネットワークを介してデコーディング装置に伝達されてもよい。
一方、前述のように、エンコーディング装置は、前記参照サンプル及び前記レジデュアルサンプルに基づいて復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成する。これは、デコーディング装置で行われるのと同一の予測結果をエンコーディング装置から導出するためであり、これにより、コーディング効率を高めることができるからである。従って、エンコーディング装置は、復元ピクチャ(又は、復元サンプル、復元ブロック)をメモリに格納し、インター予測のための参照ピクチャとして活用することができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できることは前述の通りである。
インター予測に基づくビデオ/映像デコーディング手順は、概略的に、例えば以下を含む。
図5は、インター予測ベースのビデオ/映像デコーディング方法の例を示す。
図5に示すように、デコーディング装置は、前記エンコーディング装置で行われた動作と対応する動作を行う。デコーディング装置は、受信された予測情報に基づいて現在ブロックで予測を行い、予測サンプルを導出することができる。
具体的に、デコーディング装置は、受信された予測情報に基づいて前記現在ブロックに対する予測モードを決定する(S500)。デコーディング装置は、前記予測情報内の予測モード情報に基づいて前記現在ブロックにどのインター予測モードが適用されるかを決定することができる。
例えば、前記merge flagに基づいて前記現在ブロックに前記マージモードが適用されるか、又は、(A)MVPモードが決定されるか否かを決定することができる。または、前記mode indexに基づいて様々なインター予測モード候補のいずれか1つを選択することができる。前記インター予測モード候補は、スキップモード、マージモード及び/又は(A)MVPモードを含み、または、後述する様々なインター予測モードを含む。
デコーディング装置は、前記決定されたインター予測モードに基づいて前記現在ブロックの動き情報を導出する(S510)。例えば、デコーディング装置は、前記現在ブロックにスキップモード又はマージモードが適用される場合、後述するマージ候補リストを構成し、前記マージ候補リストに含まれたマージ候補のいずれか1つのマージ候補を選択する。前記選択は、前述の選択情報(merge index)に基づいて行われる。前記選択されたマージ候補の動き情報を利用して前記現在ブロックの動き情報を導出することができる。前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報として利用されることができる。
他の例として、デコーディング装置は、前記現在ブロックに(A)MVPモードが適用される場合、後述の(A)MVP候補リストを構成し、前記(A)MVP候補リストに含まれたmvp(motion vector predictor)候補のうち選択されたmvp候補の動きベクトルを前記現在ブロックのmvpとして利用できる。前記選択は、前述の選択情報(mvp flag又はmvp index)に基づいて行われる。この場合、前記MVDに関する情報に基づいて前記現在ブロックのMVDを導出することができ、前記現在ブロックのmvpと前記MVDに基づいて前記現在ブロックの動きベクトルを導出することができる。また、前記参照ピクチャインデックス情報に基づいて前記現在ブロックの参照ピクチャインデックスを導出することができる。前記現在ブロックに関する参照ピクチャリスト内において前記参照ピクチャインデックスが指すピクチャが前記現在ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
一方、後述のように候補リストの構成なしに前記現在ブロックの動き情報が導出されることができ、この場合、後述の予測モードにおいて開示された手順に従って前記現在ブロックの動き情報が導出されることができる。この場合、前述のような候補リスト構成は省略されてもよい。
デコーディング装置は、前記現在ブロックの動き情報に基づいて前記現在ブロックに対する予測サンプルを生成する(S520)。この場合、前記現在ブロックの参照ピクチャインデックスに基づいて前記参照ピクチャを導出し、前記現在ブロックの動きベクトルが前記参照ピクチャ上で指す参照ブロックのサンプルを利用して前記現在ブロックの予測サンプルを導出することができる。この場合、後述のように、場合によって、前記現在ブロックの予測サンプルのうち全部又は一部に対する予測サンプルフィルタリングの手順がさらに行われることがある。
例えば、デコーディング装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を含み、予測モード決定部で受信された予測モード情報に基づいて前記現在ブロックに対する予測モードを決定し、動き情報導出部で受信された動き情報に関する情報に基づいて前記現在ブロックの動き情報(動きベクトル及び/又は参照ピクチャインデックスなど)を導出し、予測サンプル導出部から前記現在ブロックの予測サンプルを導出することができる。
デコーディング装置は、受信されたレジデュアル情報に基づいて前記現在ブロックに対するレジデュアルサンプルを生成する(S530)。デコーディング装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成する(S540)。以後、前記復元ピクチャにインループフィルタリング手順などがさらに適用できることは前述の通りである。
図6は、インター予測手順を例示的に示す。
図6を参照すると、前述のように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードに応じる動き情報の導出ステップ、導出された動き情報に基づく予測実行(予測サンプル生成)ステップを含む。前記インター予測手順は、前述のように、エンコーディング装置及びデコーディング装置において行われる。本文書において、コーディング装置とは、エンコーディング装置及び/又はデコーディング装置を含む。
図6に示すように、コーディング装置は現在ブロックに対するインター予測モードを決定する(S600)。ピクチャ内の現在ブロックの予測のために様々なインター予測モードが使用できる。例えば、マージモード、スキップモード、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)モードと呼ばれてもよい。本文書において、一部のモード及び/又は一部のモードにより導出された動き情報候補は、他のモードの動き情報関連候補の1つとして含まれることもある。例えば、HMVP候補は前記マージ/スキップモードのマージ候補として追加されてもよく、または前記MVPモードのmvp候補として追加されてもよい。前記HMVP候補が前記マージモード又はスキップモードの動き情報候補として使用される場合、前記HMVP候補はHMVPマージ候補と呼ばれてもよい。
現在ブロックのインター予測モードを指す予測モード情報がエンコーディング装置からデコーディング装置にシグナリングされることができる。前記予測モード情報はビットストリームに含まれてデコーディング装置に受信されることができる。前記予測モード情報は、多数の候補モードのうち1つを指示するインデックス情報を含む。または、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、前記予測モード情報は1つ以上のフラグを含む。例えば、スキップフラグをシグナリングしてスキップモードが適用されるか否かを指示し、スキップモードが適用されない場合にマージフラグをシグナリングしてマージモードが適用されるか否かを指示し、マージモードが適用されない場合にMVPモードが適用されると指示するか、追加的な区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは独立的なモードでシグナリングされてもよく、またはマージモード又はMVPモードなどに従属的なモードでシグナリングされてもよい。例えば、アフィンモードは、アフィンマージモード及びアフィンMVPモードを含む。
一方、現在ブロックに前述のlist0(L0)予測、list1(L1)予測、または双予測(bi-prediction)が現在ブロック(現在コーディングユニット)に使用されるか否かを示す情報がシグナリングされることができる。前記情報は、動き予測方向情報、インター予測方向情報またはインター予測指示情報と呼ばれてもよく、例えば、inter_pred_idcシンタックス要素の形態で構成/エンコーディング/シグナリングされることができる。すなわち、inter_pred_idcシンタックス要素は、前述のlist0(L0)予測、list1(L1)予測、または双予測(bi-prediction)が現在ブロック(現在コーディングユニット)に使用されるか否かを示すことができる。本文書においては、説明の便宜のために、inter_pred_idcシンタックス要素が指すインター予測タイプ(L0予測、L1予測、又はBI予測)は動き予測方向であると表示されてもよい。L0予測はpred_L0、L1予測はpred_L1、双予測はpred_BIと表されてもよい。例えば、inter_pred_idcシンタックス要素の値によって以下のような予測タイプを示すことができる。
前述のように、1つのピクチャは1つ以上のスライスを含む。スライスは、I(intra)スライス、P(predictive)スライス及びB(bi-predictive)スライスを含むスライスタイプのうち1つのタイプを有することができる。前記スライスタイプは、スライスタイプの情報に基づいて指示される。Iスライス内のブロックに対しては予測のためにインター予測は使われずにイントラ予測のみが使用される。もちろん、この場合にも予測なしに原本サンプル値をコーディングしてシグナリングすることもできる。Pスライス内のブロックに対してはイントラ予測又はインター予測が使用され、インター予測が使用される場合は単(uni)予測のみが使用されることができる。一方、Bスライス内のブロックに対してはイントラ予測又はインター予測が使用され、インター予測が使用される場合は最大双(bi)予測まで使用されることができる。
L0及びL1は現在ピクチャより以前にエンコーディング/デコーディングされた参照ピクチャを含む。例えば、L0はPOC順序上、現在ピクチャより以前及び/又は以後の参照ピクチャを含み、L1はPOC順序上、現在ピクチャより以後及び/又は以前の参照ピクチャを含む。この場合、L0にはPOC順序上、現在ピクチャより以前の参照ピクチャに相対的にさらに低い参照ピクチャインデックスが割り当てられ、L1にはPOC順序上、現在ピクチャより以後の参照ピクチャに相対的にさらに低い参照ピクチャインデックスが割り当てられる。Bスライスの場合、双予測が適用され、この場合にも単方向双予測が適用されてもよく、または双方向双予測が適用されてもよい。双方向双予測は真(true)双予測とも呼ばれる。
次の表は、本文書の一実施例によるコーディングユニットに関するシンタックスを示す。
前記表2を参照すると、general_merge_flagは一般マージが利用可能であることを示し、general_merge_flagの値が1であるときはregular merge mode、mmvd mode及びmerge subblock mode(subblock merge mode)が利用可能である。例えば、general_merge_flagの値が1であるときにmerge data syntaxがエンコーディングされたビデオ/イメージ情報(又は、ビットストリーム)からパーシングされることができ、merge data syntaxは、次の表のような情報を含むように構成/コーディングされる。
コーディング装置は、前記現在ブロックに対する動き情報を導出する(S610)。前記動き情報の導出を前記インター予測モードに基づいて導出することができる。
コーディング装置は、現在ブロックの動き情報を利用してインター予測を行うことができる。エンコーディング装置は、動き推定(motion estimation)手順を介して現在ブロックに対する最適の動き情報を導出することができる。例えば、エンコーディング装置は、現在ブロックに対する原本ピクチャ内の原本ブロックを利用して相関性の高い類似した参照ブロックを参照ピクチャ内の決められた探索範囲内において分数ピクセル単位で探索し、これにより動き情報を導出することができる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現在ブロック(又は、現在ブロックのテンプレート)と参照ブロック(又は、参照ブロックのテンプレート)間のSAD(sum of absolute differences)に基づいて計算されることができる。この場合、探索領域内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて様々な方法によってデコーディング装置にシグナリングされる。
コーディング装置は、前記現在ブロックに対する動き情報に基づいてインター予測を行う(S620)。コーディング装置は、前記動き情報に基づいて前記現在ブロックに対する予測サンプルを導出することができる。前記予測サンプルを含む現在ブロックは、予測されたブロックと呼ばれてもよい。
マージモード(merge mode)が適用される場合、現在予測ブロックの動き情報が直接的に送信されることなく、周辺予測ブロックの動き情報を利用して前記現在予測ブロックの動き情報を誘導する。従って、マージモードを利用したことを示すフラグ情報及び周辺のどの予測ブロックを利用したのかを示すマージインデックスを送信することにより、現在予測ブロックの動き情報を指示することができる。前記マージモードはregular merge modeと呼ばれてもよい。
エンコーダは、マージモードを行うために、現在予測ブロックの動き情報を誘導するために用いられるマージ候補ブロック(merge candidate block)をサーチしなければならない。例えば、前記マージ候補ブロックは最大5個まで利用できるが、本文書の実施例はこれに限定されない。そして、前記マージ候補ブロックの最大個数はスライスヘッダ又はタイルグループヘッダにおいて送信される。前記マージ候補ブロックを見つけた後、エンコーダはマージ候補リストを生成し、これらのうち最小費用を有するマージ候補ブロックを最終マージ候補ブロックとして選択することができる。
前記マージ候補リストは、例えば、5つのマージ候補ブロックを利用することができる。例えば、4つの空間的マージ候補(spatial merge candidate)と1つの時間的マージ候補(temporal merge candidate)を利用することができる。以下、前記空間的マージ候補又は後述する空間的MVP候補はSMVPと呼ばれてもよく、前記時間的マージ候補又は後述する時間的MVP候補はTMVPと呼ばれてもよい。
以下、本文書によるマージ候補リストを構成する方法を説明する。
コーディング装置(エンコーダ/デコーダ)は、現在ブロックの空間的周辺ブロックを探索して導出された空間的マージ候補をマージ候補リストに挿入する。例えば、前記空間的周辺ブロックは、前記現在ブロックの左下側コーナー周辺ブロック、左側周辺ブロック、右上側コーナー周辺ブロック、上側周辺ブロック、左上側コーナー周辺ブロックを含む。ただし、これは例示であり、前述の空間的周辺ブロック以外にも右側周辺ブロック、下側周辺ブロック、右下側周辺ブロックなどの追加的な周辺ブロックがさらに前記空間的周辺ブロックとして使用されることができる。コーディング装置は、前記空間的周辺ブロックを優先順位に基づいて探索して利用可能なブロックを検出し、検出されたブロックの動き情報を前記空間的マージ候補として導出することができる。
コーディング装置は、前記現在ブロックの時間的周辺ブロックを探索して導出された時間的マージ候補を前記マージ候補リストに挿入する。前記時間的周辺ブロックは、前記現在ブロックが位置する現在ピクチャとは異なるピクチャである参照ピクチャ上に位置し得る。前記時間的周辺ブロックが位置する参照ピクチャは、コロケーテッド(collocated)ピクチャ又はcolピクチャと呼ばれてもよい。前記時間的周辺ブロックは、前記colピクチャ上での前記現在ブロックに対する同一位置ブロック(co-located block)の右下側コーナー周辺ブロック及び右下側センターブロックの順で探索されることができる。一方、モーションデータ圧縮(motion data compression)が適用される場合、前記colピクチャに一定格納単位ごとに特定の動き情報を代表動き情報として格納する。この場合、前記一定格納単位内の全てのブロックに対する動き情報を格納する必要がなく、これによりモーションデータ圧縮効果が得られる。この場合、一定格納単位は、例えば、16×16サンプル単位又は8×8サンプル単位などに予め定まってもよく、あるいはエンコーダからデコーダに前記一定格納単位に関するサイズ情報がシグナリングされてもよい。前記モーションデータ圧縮が適用される場合、前記時間的周辺ブロックの動き情報は、前記時間的周辺ブロックが位置する前記一定格納単位の代表動き情報に置き換えられることができる。すなわち、この場合、実現の側面から見ると、前記時間的周辺ブロックの座標に位置する予測ブロックではなく、前記時間的周辺ブロックの座標(左上端サンプルポジション)に基づいて一定値の分だけ算術的右シフトした後、算術的左シフトした位置をカバーする予測ブロックの動き情報に基づいて前記時間的マージ候補が導出される。例えば、前記一定格納単位が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))に位置する予測ブロックの動き情報が前記時間的マージ候補のために使用される。
コーディング装置は、現在マージ候補の個数が最大マージ候補の個数より小さいか否かを確認できる。前記最大マージ候補の個数は予め定義されるかエンコーダからデコーダにシグナリングされることができる。例えば、エンコーダは、前記最大マージ候補の個数に関する情報を生成し、エンコーディングしてビットストリーム形態で前記デコーダに伝達する。前記最大マージ候補の個数が充填されると、以後の候補追加過程は行われなくてもよい。
前記確認の結果、前記現在マージ候補の個数が前記最大マージ候補の個数より小さい場合、コーディング装置は追加マージ候補を前記マージ候補リストに挿入する。
前記確認の結果、前記現在マージ候補の個数が前記最大マージ候補の個数より小さくない場合、コーディング装置は前記マージ候補リストの構成を終了する。この場合、エンコーダは、RD(rate-distortion)費用に基づいて前記マージ候補リストを構成するマージ候補のうち最適のマージ候補を選択することができ、前記選択されたマージ候補を指す選択情報(例えば、merge index)をデコーダにシグナリングすることができる。デコーダは前記マージ候補リスト及び前記選択情報に基づいて前記最適マージ候補を選択する。
前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報として使用されることができ、前記現在ブロックの動き情報に基づいて前記現在ブロックの予測サンプルを導出できることは前述の通りである。エンコーダは、前記予測サンプルに基づいて前記現在ブロックのレジデュアルサンプルを導出し、前記レジデュアルサンプルに関するレジデュアル情報をデコーダにシグナリングすることができる。デコーダは、前記レジデュアル情報に基づいて導出されたレジデュアルサンプル及び前記予測サンプルに基づいて復元サンプルを生成し、これに基づいて復元ピクチャを生成できることは前述の通りである。
スキップモード(skip mode)が適用される場合、前述のマージモードが適用される場合と同一の方法で前記現在ブロックの動き情報を導出することができる。ただし、スキップモードが適用される場合、該当ブロックに対するレジデュアル信号が省略され、従って、予測サンプルが直ちに復元サンプルとして利用されることができる。
MVPモードが適用される場合、復元された空間的周辺ブロックの動きベクトル及び/又は時間的周辺ブロック(又は、Colブロック)に対応する動きベクトルを用いて、動きベクトル予測子(motion vector predictor、mvp)候補リストが生成される。すなわち、復元された空間的周辺ブロックの動きベクトル及び/又は時間的周辺ブロックに対応する動きベクトルは動きベクトル予測子候補として使用されることができる。双予測が適用される場合、L0動き情報導出のためのmvp候補リストとL1動き情報導出のためのmvp候補リストが個別に生成されて利用されることができる。前述の予測情報(又は、予測に関する情報)は、前記リストに含まれた動きベクトル予測子候補のうち選択された最適な動きベクトル予測子候補を指示する選択情報(例えば、MVPフラッグ又はMVPインデックス)を含む。ここで、予測部は前記選択情報を利用して、動きベクトル候補リストに含まれた動きベクトル予測子候補のうち、現在ブロックの動きベクトル予測子を選択することができる。エンコーディング装置の予測部は、現在ブロックの動きベクトルと動きベクトル予測子の間の動きベクトル差分(MVD)を求めることができ、これをエンコーディングしてビットストリーム形態で出力する。すなわち、MVDは現在ブロックの動きベクトルから前記動きベクトル予測子を引いた値として求められる。ここで、デコーディング装置の予測部は、前記予測に関する情報に含まれる動きベクトル差分を取得し、前記動きベクトル差分と前記動きベクトル予測子の加算により、現在ブロックの前記動きベクトルを導出することができる。デコーディング装置の予測部は、参照ピクチャを指示する参照ピクチャインデックスなどを前記予測に関する情報から取得又は誘導することができる。
以下、本文書による動きベクトル予測子候補リストを構成する方法を説明する。
一実施例は、まず動きベクトル予測のための空間的候補ブロックを探索して予測候補リストに挿入する。以降、一実施例は空間的候補ブロックの個数が2より小さいか否かを判断する。例えば、一実施例は空間的候補ブロックの個数が2より小さい場合、時間的候補ブロックを探索して予測候補リストに追加挿し、時間的候補ブロックが使用不可である場合はゼロ動きベクトルを使用する。すなわち、ゼロ動きベクトルを予測候補リストに追加挿入することができる。以降、一実施例は予備候補リストの構成を終了する。または、一実施例は空間的候補ブロックの個数が2より小さくない場合、予備候補リストの構成を終了する。ここで、予備候補リストはMVP候補リストを示す。
一方、MVPモードが適用される場合、参照ピクチャインデックスが明示的にシグナリングされる。この場合、L0予測のための参照ピクチャインデックス(refidxL0)とL1予測のための参照ピクチャインデックス(refidxL1)に区分されてシグナリングされることができる。例えば、MVPモードが適用され、双予測(BI prediction)が適用される場合、前記refidxL0に関する情報、及びrefidxL1に関する情報が両方ともシグナリングされることができる。
MVPモードが適用される場合、前述のように、エンコーディング装置から導出されたMVDに関する情報がデコーディング装置にシグナリングされる。MVDに関する情報は、例えば、MVD絶対値及び符号に対するx、y成分を示す情報を含むことができる。この場合、MVD絶対値が0より大きいか否か、及び1より大きいか否か、MVD残りを示す情報が段階的にシグナリングされることができる。例えば、MVD絶対値が1より大きいか否かを示す情報は、MVD絶対値が0より大きいか否かを示すflag情報の値が1である場合に限りシグナリングされることができる。
例えば、MVDに関する情報は、以下の表のようなシンタックスで構成されてエンコーディング装置においてエンコーディングされてデコーディング装置にシグナリングされる。
例えば、表4においてabs_mvd_greater0_flagシンタックス要素は差分(MVD)が0より大きいか否かに関する情報を示し、abs_mvd_greater1_flagシンタックス要素は差分(MVD)が1より大きいか否かに関する情報を示す。また、abs_mvd_minus2シンタックス要素は差分(MVD)に-2をした値に対する情報を示し、mvd_sign_flagシンタックス要素は差分(MVD)の符号に関する情報を示す。また、表4において各シンタックス要素の[0]はL0に関する情報であることを示し、[1]はL1に関する情報であることを示す。
例えば、MVD[compIdx]は、abs_mvd_greater0_flag[compIdx]*(abs_mvd_minus2[compIdx]+2)*(1-2*mvd_sign_flag[compIdx])に基づいて導出される。ここで、compIdx(又は、cpIdx)は各成分のインデックスを示し、0または1の値を有することができる。compIdxは、0はx成分を示し、compIdx1は7成分を示す。ただし、これは例示であり、x、y座標系ではなく、他の座標系を使って各成分別に値を表すこともできる。
一方、L0予測のためのMVD(MVD L0)とL1予測のためのMVD(MVD L1)を区分してシグナリングされてもよく、前記MVDに関する情報は、MVD L0に関する情報及び/又はMVD L1に関する情報を含んでもよい。例えば、現在ブロックにMVPモードが適用され、BI予測が適用される場合、前記MVD L0に関する情報及びMVD L1に関する情報が両方ともシグナリングされる。
図7は、SMVD(symmetric motion vector differences)を説明するための図である。
BI予測が適用される場合、コーディング効率を考慮してSMVD(symmetric MVD)が使用されてもよい。この場合は、動き情報のうち一部のシグナリングが省略されてもよい。例えば、SMVDが現在ブロックに適用される場合、refidxL0に関する情報、refidxL1に関する情報、MVD L1に関する情報がエンコーディング装置からデコーディング装置にシグナリングされることなく、内部的に導出されることができる。例えば、現在ブロックにMVPモード及びBI予測が適用される場合、SMVDの適用可否を指示するフラグ情報(例えば、SMVDフラグ情報又はsym_mvd_flagシンタックス要素)がシグナリングされ、前記フラグ情報の値が1である場合、デコーディング装置は前記現在ブロックにSMVDが適用されると判断する。
SMVDモードが適用される場合(すなわち、SMVDフラグ情報の値が1である場合)、mvp_l0_flag、mvp_l1_flag、及びMVD L0(動きベクトル差分L0)に関する情報が明示的に(explicitly)シグナリングされ、前述のようにrefidxL0に関する情報、refidx1に関する情報、及びMVD L1(動きベクトル差分L1)に関する情報のシグナリングが省略され、内部的に導出されることができる。例えば、refidxL0は参照ピクチャリスト(reference picture list)0(list0又はL0と呼ばれてもよい)内においてPOC手順上、現在ピクチャに最も近い以前参照ピクチャを指すインデックスとして導出されることができる。refidxL1は、参照ピクチャリスト(reference picture list)1(list1又はL1と呼ばれてもよい)内においてPOC手順上、現在ピクチャに最も近い以後参照ピクチャを指すインデックスとして導出されることができる。または、例えば、refidxL0及びrefidxL1は、両方ともそれぞれ0として導出されることができる。または、例えば、前記refidxL0及びrefidxL1は、現在ピクチャとの関係において同一のPOC差を有する最小インデックスとしてそれぞれ導出されることができる。具体的に、例えば、“[現在ピクチャのPOC]-[refidxL0が指示する第1参照ピクチャのPOC]”を第1POC差分といい、”[現在ピクチャのPOC]-[refidxL1が指示する第2参照ピクチャのPOC]”を第2POC差分というとき、前記第1POC差分と第2POC差分が同一である場合に限り、前記第1参照ピクチャを指すrefidxL0の値が前記現在ブロックの refidxL0として導出され、前記第2参照ピクチャを指すrefidxL1の値が前記現在ブロックの refidxL1として導出されることもある。また、例えば、前記第1POC差分と第2POC差分が同一である複数のセットがある場合、そのうち差分が最小であるセットのrefidxL0、refidxL1が現在ブロックのrefidxL0、refidxL1として導出されることができる。
図7に示すように、参照ピクチャリスト0、参照ピクチャリスト1、及びMVD L0、MVD L1が示されている。ここで、MVD L1はMVD L0と対称的である。
MVD L1は、マイナス(-)MVD L0と導出されることができる。例えば、現在ブロックに対する最終(改善又は修正された)動き情報(動きベクトル:MV)は、次の数式に基づいて導出される。
数式1において、mvx0及びmvy0は、L0動き情報又はL0予測のための動きベクトルのx成分及びy成分を示し、mvx1及びmvy1は、L1動き情報又はL1予測のための動きベクトルのx成分及びy成分を示す。また、mvpx0及びmvpy0は、L0予測のための動きベクトル予測子のx成分及びy成分を示し、mvpx1及びmvpy1は、L1予測のための動きベクトル予測子のx成分及びy成分を示す。また、mvdx0及びmvdy0は、L0予測のための動きベクトル差分のx成分及びy成分を示す。
一方、MMVDモードは、マージモードにMVD(motion vector difference)を適用する方法として、現在ブロック(すなわち、現在CU)の予測サンプルの生成に直接的に使われる動き情報が内在的に(implicitly)導出されることができる。例えば、現在ブロック(すなわち、現在CU)にMMVDを使用するか否かを示すMMVDフラグ(例:mmvd_flag)がシグナリングされ、このMMVDフラグに基づいてMMVDが行われることができる。MMVDが現在ブロックに適用される場合(例えば、mmvd_flagが1である場合)、MMVDに対する追加情報がシグナリングされることができる。
ここで、MMVDに対する追加情報は、マージ候補リスト内の第1候補又は第2候補がMVDと共に使用されるか否かを指示するマージ候補フラグ(例:mmvd_cand_flag)、動き大きさ(motion magnitude)を示すための距離インデックス(例:mmvd_distance_idx)、動き方向(motion direction)を示すための方向インデックス(mmvd_direction_idx )を含む。
MMVDモードでは、マージ候補リスト内の候補のうち1番目及び2番目のエントリに位置する2つの候補(すなわち、第1候補又は第2候補)を使用することができ、前記2つの候補(すなわち、第1候補又は第2候補)のいずれか1つがベースMVとして使用されることができる。例えば、マージ候補フラグ(例:mmvd_cand_flag)がマージ候補リスト内の2つの候補(すなわち、第1候補又は第2候補)のいずれか1つを示すためにシグナリングされることができる。
また、距離インデックス(例:mmvd_distance_idx)は、動き大きさ情報を示し、開始ポイントから予め定められたオフセット(offset)を指示することができる。前記オフセットは、開始動きベクトルの水平成分又は垂直成分に加えられてもよい。距離インデックスと予め定められたオフセットの関係は、次の表のように示すことができる。
前記表5を参照すると、距離インデックス(例:mmvd_distance_idx)の値によってMVDの距離(例:MmvdDistance)が定められており、MVDの距離(例:MmvdDistance)はtile_group_fpel_mmvd_enabled_flagの値に基づいて整数サンプル単位(integer sample precision)又は分数サンプル単位(fractional sample precision)を使用して導出されることができる。例えば、tile_group_fpel_mmvd_enabled_flagが1である場合、MVDの距離は現在タイルグループ(又は、ピクチャヘッダ)において整数サンプル単位を使用して導出されることを示し、tile_group_fpel_mmvd_enabled_flagが0である場合、MVDの距離はタイルグループ(又は、ピクチャヘッダ)において分数サンプル単位を使用して導出されることを示す。表1において、タイルグループのための情報(フラグ)はピクチャヘッダのための情報に置き換えられることができ、例えば、tile_group_fpel_mmvd_enabled_flagはph_fpel_mmvd_enabled_flag(又は、ph_mmvd_fullpel_only_flag)に置き換えられることができる。
また、方向インデックス(例:mmvd_direction_idx)は開始ポイントを基準にMVDの方向を示し、以下の表5に示すように4方向を示す。ここで、MVDの方向は、MVDの符号を示すことができる。方向インデックスとMVD符号の関係は、以下の表のように示す。
前記表6を参照すると、方向インデックス(例:mmvd_direction_idx)の値によってMVDの符号(例:MmvdSign)が定められており、MVDの符号(例:MmvdSign)は、L0参照ピクチャ及びL1参照ピクチャに対して導出される。
前述のような距離インデックス(例:mmvd_distance_idx)及び方向インデックス(例:mmvd_direction_idx)に基づいて次の数式のようにMVDのオフセットを計算することができる。
数式2及び数式3において、MMVD距離(MmvdDistance[x0][y0])及びMMVD符号(MmvdSign[x0][y0][0]、MmvdSign[x0][y0][1])は、表5及び又は表6に基づいて導出される。まとめると、MMVDモードでは、周辺ブロックに基づいて導出されたマージ候補リストのマージ候補子のうちマージ候補フラグ(例:mmvd_cand_flag)により指示されるマージ候補を選択し、前記選択されたマージ候補をベース(base)候補(例えば、MVP)として使用することができる。そして、ベース候補に基づいて距離インデックス(例:mmvd_distance_idx)及び方向インデックス(例:mmvd_direction_idx)を用いて導出されたMVDを加えて現在ブロックの動き情報(すなわち、動きベクトル)を導出することができる。
予測モードによって導出された動き情報に基づいて現在ブロックに対する予測されたブロックを導出することができる。前記予測されたブロックは、前記現在ブロックの予測サンプル(予測サンプルアレイ)を含む。現在のブロックの動きベクトルが分数サンプル単位を指す場合、補間(interpolation)手順が行われることができ、これにより参照ピクチャ内において分数サンプル単位の参照サンプルに基づいて前記現在のブロックの予測サンプルが導出されることができる。双予測が適用される場合、L0予測(すなわち、参照ピクチャリストL0内の参照ピクチャとMVL0を用いた予測)に基づいて導出された予測サンプルとL1予測(すなわち、参照ピクチャリストL1内の参照ピクチャとMVL1を用いた予測)に基づいて導出された予測サンプルの(位相に応じた)加重和又は加重平均により導出された予測サンプルが現在のブロックの予測サンプルとして利用できる。双予測が適用される場合、L0予測に利用された参照ピクチャとL1予測に利用された参照ピクチャが現在ピクチャを基準に互いに異なる時間的方向に位置する場合(すなわち、双予測でありながら双方向予測に該当する場合)、これを真(true)双予測と呼んでもよい。
導出された予測サンプルに基づいて復元サンプル及び復元ピクチャが生成され、その後、インループフィルタリングなどの手順が実行できることは前述の通りである。
前述のように本文書によれば、現在ブロックに双予測が適用される場合、加重平均(weighted average)に基づいて予測サンプルを導出することができる。既存には、双予測信号(すなわち、双予測サンプル)は、L0予測信号(L0予測サンプル)とL1予測信号(L1予測サンプル)の単純平均により導出されていた。すなわち、双予測サンプルは、L0参照ピクチャ及びMVL0に基づくL0予測サンプルとL1参照ピクチャ及びMVL1に基づくL1予測サンプルの平均として導出された。しかしながら、本文書によると、双予測が適用される場合、次のように、L0予測信号とL1予測信号の加重平均により双予測信号(双予測サンプル)を導出することができる。
前述のMMVDに関連する実施例において、MMVDのMVD誘導過程においてロングターム参照ピクチャを考慮した方法が提案でき、これにより、様々なアプリケーションにおいて圧縮効率を維持及び増加させることができるようにする。また、本文書の実施例において提案する方法は、MERGEにおいて使用されるMMVD技術以外に、インターモード(MVPモード)において使用される対称的(Symmetric)MVD技術であるSMVDにおいても同様に適用できる。
図8は、インター予測において動きベクトルを導出する方法を説明するための図である。
本文書の一実施例において、時間的動き候補(Temporal motion candidate、temporal merge candidate、又はtemporal mvp candidate)の動きベクトルスケーリング(MV scaling)の過程でロングターム参照ピクチャを考慮したMV誘導方法が使われている。時間的動き候補はmvCol(mvLXCol)に対応できる。時間的な動き候補は「TMVP」と呼ばれてもよい。
次の表は、ロングターム参照ピクチャの定義を説明する。
前記表7を参照すると、LongTermRefPic(aPic、aPb、refIdx、LX)が1(真、true)であると、対応する参照ピクチャはロングターム参照のために使われる(used for long-term reference)ものとマーキングされる。例えば、ロングターム参照のために使われるとマーキングされていない参照ピクチャはショートターム参照のために使われる(used for short-term reference)ものとマーキングされた参照ピクチャであり得る。他の例において、ロングターム参照のために使用されるものとマーキングされず、使用されていないものとマーキングされていない参照ピクチャは、ショートターム参照のために使用されるものとマーキングされた参照ピクチャであり得る。以下、ロングターム参照のために使用されるものとマーキングされた参照ピクチャは、ロングターム参照ピクチャと称されてもよく、ショートターム参照のために使用されるものとマーキングされた参照ピクチャは、ショートターム参照ピクチャと称されてもよい。
次の表はTMVP(mvLXCol)の導出を説明する。
図8及び表8を参照すると、現在ピクチャが指す参照ピクチャタイプ(例えば、long-term reference picture(LTRP)又はshort-term refrence picture(STRP)であるかを指す)とコロケーテッドピクチャ(collocated picture)が指すコロケーテッド参照ピクチャ(collocated reference picture)のタイプが同一であないと、時間的動きベクトル(mvLXCol)は使用されない。すなわち、全てロングターム参照ピクチャであるか、全てショートターム参照ピクチャである場合はcolMVを誘導し、他のタイプを有する場合はcolMVを誘導しない。また、全てロングターム参照ピクチャである場合と、現在ピクチャと現在ピクチャの参照ピクチャのPOC差分がコロケーテッドピクチャとコロケーテッドピクチャの参照ピクチャ間のPOC差分と同一である場合、スケーリングなしにコロケーテッドの動きベクトルをそのまま使用することができる。ショットターム参照ピクチャであり、POC差分が異なる場合、スケーリングされたコロケーテッドブロックの動きベクトルが使用される。
本文書の実施例において、MERGE/SKIPモードにおいて使用されるMMVDは、1つのコーディングブロックに対してベース動きベクトルインデックス(base MV index)、距離インデックス(distance index)、方向インデックス(direction index)を、MVD情報を誘導するための情報として、シグナリングする。単方向予測をする場合、動き情報からMVDを誘導し、双方向予測の場合、ミラーリング(mirroring)及びスケーリング方法を用いて対称的なMVD情報を生成する。
双方向予測をする場合、L0あるいはL1のためのMVD情報はスケーリングされてL1あるいはL0のMVDを生成するが、ロングターム参照ピクチャを参照する場合、MVD誘導過程での変更が必要である。
図9ないし図13は、本文書の実施例によるMMVDのMVD誘導方法を示す。図9ないし図13に示された方法は、双方向予測が適用されるブロックに対するものであり得る。
図9による一実施例において、L0参照ピクチャとの距離とL1参照ピクチャとの距離が同一であると、誘導されたMmvdOffsetをそのままMVDとして使用することができ、POC差分(L0参照ピクチャと現在ピクチャ間のPOC差分及びL1参照ピクチャと現在ピクチャ間のPOC差分)が異なる時、POC差分、及びロングタームあるいはショートターム参照ピクチャであるか否かによってスケーリングするか単純ミラーリング(すなわち、-1を*MmvdOffset)してMVDを誘導することができる。
一例として、双方向予測が適用されるブロックに対してMMVDを用いて対称的なMVDを誘導する方法は、ロングターム参照ピクチャを使用するブロックには適合せず、特に、各方向の参照ピクチャタイプが異なる場合、MMVD使用時の性能向上は期待しにくい。従って、次の図及び実施例においては、L0とL1の参照ピクチャタイプが異なる場合、MMVDが適用されないように実現される例が紹介される。
図10による一実施例において、現在ピクチャ(又は、現在スライス、現在ブロック)により参照される参照ピクチャがLTRP(long-term reference picture)又はSTRP(short-term reference picture)であるかによって異なるMVD誘導方法が適用される。一例において、図10による実施例の方法が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
図11による一実施例において、現在ピクチャ(又は、現在スライス、現在ブロック)により参照される参照ピクチャがLTRP(long-term reference picture)又はSTRP(short-term reference picture)であるかによって異なるMVD誘導方法が適用される。一例において、図11による実施例の方法が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
まとめると、各方向の参照ピクチャタイプが異なる場合、MVDを誘導しないMMVDのMVD誘導過程が説明されている。
図12による一実施例において、ロングターム参照ピクチャを参照する全ての場合にMVDが誘導されることではない。すなわち、L0、L1参照ピクチャが1つでもロングターム参照ピクチャであるときはMVDを0に設定し、ショットターム参照ピクチャを有する場合にのみMVDが誘導されることができる。
一例において、最優先条件(RefPicL0!=LTRP&&RefPicL1!=STRP)に基づいて現在ピクチャ(又は、現在スライス、現在ブロック)がショットターム参照ピクチャのみを参照する場合にMMVDのためのMVDが導出されることができる。一例において、図12による実施例の方法が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
図13による一実施例において、各方向の参照ピクチャタイプが異なる場合、ショットターム参照ピクチャを有する場合はMVDを誘導し、ロングターム参照ピクチャを有する場合はMVDが0に誘導される。
一例において、各方向の参照ピクチャタイプが異なる場合、現在ピクチャから距離の近い参照ピクチャ(ショットターム参照ピクチャ)を参照するとき、MmvdOffsetが適用され、現在ピクチャから距離の遠い参照ピクチャ(ロングターム参照ピクチャ)を参照するとき、MVDは0値を有する。ここで、現在ピクチャに近いピクチャはショットターム参照ピクチャを有するとみなすことができるが、近いピクチャがロングターム参照ピクチャである場合は、ショットターム参照ピクチャを指すリストの動きベクトルにmmvdOffsetを適用することができる。
例えば、前記表12に含まれた4つの段落は、前記図13に含まれた順序図の一番下のブロック(内容)を順次置き換えることができる。
一例において、図13による実施例の方法が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
次の表は、本文書に含まれた実施例間の比較表を示す。
表14を参照すると、図9ないし図13による実施例において説明されたMMVDのMVD導出のために、参照ピクチャタイプを考慮してオフセットを適用する方法間の比較が示される。表14において、実施例Aは既存のMMVDに関するものであり、実施例Bは図9ないし図11による実施例を示し、実施例Cは図12による実施例を示し、実施例Dは図13による実施例を示す。
すなわち、図9、図10及び図11による実施例においては、両方向の参照ピクチャタイプが同一である場合にのみMVDを誘導する方法、図12による実施例においては両方向ともショートターム参照ピクチャである場合にのみMVDを誘導する方法について記述した。図12による実施例の場合、単方向予測に対してロングターム参照ピクチャであればMVDを0に設定する。また、図13による実施例においては、両方向の参照ピクチャタイプが異なる場合、一方向にのみMVDを誘導する方法について記述した。このような実施例間の相違点は、本文書で説明される技術の様々な特徴を示し、前記特徴に基づいて本文書による実施例が達成しようとする効果が実現できることが本明細書の属する技術分野の通常の知識を有する者により理解できる。
本文書による実施例においては、参照ピクチャタイプがロングターム参照ピクチャである場合、別途のプロセスを有する。ロングターム参照ピクチャを含む場合、POC差分(POCDiff)ベースのスケーリングあるいはミラーリングは性能向上に影響がないため、ショットターム参照ピクチャを有する方向のMVDはMmvdOffset値が割り当てられ、ロングターム参照ピクチャを有する方向のMVDは0値が割り当てられるようにする。一例において、本実施例が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
他の例において、前記表15の一部分は、次の表に置き換えることができる。表16を参照すると、POCDiffではなく参照ピクチャタイプを基準としてOffsetが適用される。
また他の例において、前記表15の一部分は、次の表に置き換えることができる。表17を参照すると、参照ピクチャタイプを考慮せずに常にL0にMmvdOffsetを、L1に-MmvdOffsetを設定することができる。
本文書の一実施例によると、前述のMERGEモードにおいて使用されるMMVDに類似してインターモードでのSMVDが行われることができる。双方向予測をする場合、対称的MVD導出の可否がエンコーディング装置からデコーディング装置にシグナリングされ、関連フラグ(例えば、sym_mvd_flag)が真(又は、その値が1)であるとき、第1方向MVD(例えば、MVD L0)のミラーリングにより第2方向MVD(例えば、MVD L1)が誘導される。この場合、第1方向MVDに対するスケーリングは行われない場合がある。
次の表は、本文書の一実施例によるコーディングユニットに関するシンタックスを示す。
前記表18及び表19を参照すると、inter_pred_idc==PRED_BIであり、そして、L0とL1の参照ピクチャが利用可能(available)である場合(例えば、RefIdxSymL0>-1&&RefIdxSymL1>-1)、sym_mvd_flagがシグナリングされる。
次の表は、一例によるMMVD参照インデックスのためのデコーディング手順を示す。
表20を参照すると、L0とL1の参照ピクチャの利用可能性(availability)導出手順が説明される。すなわち、L0参照ピクチャのうちフォワード方向(forward direction)の参照ピクチャが存在する場合、現在ピクチャに最も近い参照ピクチャインデックスをRefIdxSymL0に設定し、該当値はL0の参照インデックスに設定される。また、L1参照ピクチャのうちバックワード方向(backward direction)の参照ピクチャが存在する場合、現在ピクチャに最も近い参照ピクチャインデックスをRefIdxSymL1に設定し、該当値はL1の参照インデックスに設定される。
以下の表21は、他の例によるMMVD参照インデックスのためのデコーディング手順を示す。
表21を参照すると、図9、図10、図11と共に説明された実施例のようにL0又はL1参照ピクチャタイプが異なる場合、すなわち、ロングターム参照ピクチャとショートターム参照ピクチャが使用される場合、SMVDを防ぐためにSMVDのための参照インデックス誘導の以後、L0とL1の参照ピクチャタイプが異なる場合、SMVDを使用しないようにする(表20の一番下の段落参照)。
本文書の一実施例において、マージモードで使用されるMMVDに類似してインターモードではSMVDが適用されることができる。図12とともに説明された実施例のように、ロングターム参照ピクチャが使用される場合、SMVDを防ぐために以下の表のようにSMVDのための参照インデックス誘導の過程でロングターム参照ピクチャを除外することができる。
本実施例の他の例による次の表は、SMVDのための参照ピクチャインデックス誘導以後にロングターム参照ピクチャを使用する場合、SMVDを適用しないように処理する例を示す。
本文書の一実施例において、TMVPのcolMV誘導過程で現在ピクチャの参照ピクチャタイプとコロケーテッドピクチャの参照ピクチャタイプが異なる場合、動きベクトルMVは0に設定されるが、MMVD、SMVDの場合の誘導方法と異なるので、これを統一されるようにする。
現在ピクチャの参照ピクチャタイプがロングターム参照ピクチャであり、コロケーテッドピクチャの参照ピクチャタイプがロングターム参照ピクチャである場合も動きベクトルはコロケーテッド動きベクトル値をそのまま使用しているが、MMVD、SMVDにおいて、この場合はMVを0に設定する。ここで、TMVPも追加誘導なしにMVを0に設定する。
また、参照ピクチャタイプが異なっても、現在ピクチャとの距離が近いロングターム参照ピクチャが存在し得るので、これを考慮してMVを0に設定する代わりにスケーリングなしにcolMVをMVとして使用することができる。
図14は、本文書の一実施形態によって、SMVDを説明するための図である。
SMVDの導出のために、図14のような方法が使用できる。すなわち、STRP(ショートターム参照ピクチャ)及び/又はLTRP(ロングターム参照ピクチャ)に基づいてSMVDが導出できる。ミラーリングされたL0 MVDをL1 MVDに使用する場合に、参照ピクチャのタイプが異なれば、不正確なMVDが導出され得る。これは、距離の比率(参照ピクチャ0と現在ピクチャとの間の距離及び参照ピクチャ1と現在ピクチャとの間の距離)が大きくなり、各方向に対する動きベクトルの相関度が下がるためである。
本文書の一実施形態に係ると、参照ピクチャの利用可能性がチェックされ、そして条件を満たせば、sym_mvd_flagがパーシングされ得る。万が一、sym_mvd_flagが真であれば、L1のMVD(MVDL1)がミラーリングされた(mirrored)MVDL0(L0のMVD)で導出されることができる。
次の表は、本実施形態に係るコーディングユニットシンタックスの一部分を示す。
表24に基づいて、本実施形態に係るsym_mvd_flagの導出手順が説明できる。
本実施形態では、SMVDのための参照ピクチャインデックス(RefIdxSymLX with X=0,1)が導出できる。RefIdxSymL0は、現在ピクチャのPOCよりも小さいPOCを有する最も近い参照ピクチャ(のインデックス)を示すことができる。RefIdxSymL1は、現在ピクチャのPOCよりも大きいPOCを有する最も近い参照ピクチャ(のインデックス)を示すことができる。
次の表は、本実施形態によって、SMVDのための参照ピクチャインデックスを導出する方法を標準文書の形式で記述する。
次の表は、実施形態の間の比較結果を示す。表26に含まれた実施形態によって参照ピクチャタイプが考慮されることによって、SMVDでのMVDの正確度が向上することができる。表26において、MVDは、MVD 0(L0のMVD)を示すことができる。
表26を参照すると、実施例Pは、既存のSMVDの導出方法を示す。実施例Qでは、L0及びL1で混合された参照ピクチャタイプ(ex.STRP/LTRP or LTRP/STRP)が使用される場合にSMVDが制限され得る。実施例Rでは、ロングターム参照ピクチャ(LTRP)を参照する場合にSMVDが制限され得る。
次の表は、表26の実施例QによってSMVDのための参照ピクチャインデックスを導出する方法を標準文書の形式で記述する。
次の表は、表26の実施例QによってSMVDのための参照ピクチャインデックスを導出する方法を標準文書の形式で記述する。
表28及び/又は表29を参照すると、ロングターム参照ピクチャ(LTRP)を参照する場合にSMVDが制限され得る。例えば、表28を参照すると、参照ピクチャチェッキング手順(reference picture checking process)でロングターム参照ピクチャが排除できる。これによって、他の参照ピクチャ(例えば、ロングターム参照ピクチャではない)がSMVDのために考慮できる。表29を参照すると、現在ピクチャから最も近い参照ピクチャがロングターム参照ピクチャである場合に、SMVDが実行されないことがある。例えば、参照ピクチャリストにショートターム参照ピクチャが含まれているとしても、現在ピクチャから最も近い参照ピクチャがロングターム参照ピクチャである場合には、SMVDが実行されないことがある。
本文書の一実施形態に係る一例において、MMVD手順でL0のPOC距離がL1のPOC以上である場合に、L1 MVDがスケーリングされた又はミラーリングされたL0 MVDとして導出されることができる。MMVD手順でL0のPOC距離がL1のPOCよりも小さい場合に、MMVD手順でL0 MVDがスケーリングされた又はミラーリングされたL1 MVDとして導出されることができる。
図15は、本文書の一実施形態に係るMMVDの導出方法を示すフローチャートである。
本文書の一実施形態において、POC差分及び/又は参照ピクチャタイプを考慮し、MMVDでMVD導出されることができる。図15を参照すると、currPocDiffLXは、現在ピクチャのPOCと参照ピクチャLXのPOCとの間の差を意味することができる。CurrPocDiffL0及びcurrPocDiffL1は互いに比較されることができ、そして参照ピクチャのタイプがチェックできる(“refPicList0!= LTRP” or “refPicList1 != LTRP”)。条件を考慮して、MmvdOffset(mmvd_cand_flag、mmvd_distance_idx、及び/又はmmvd_direction_idxを用いて導出された)は、mMvdLXと同じ値、ミラーリングされた値又はスケーリングされた値として割り当てられることができる。
次の表は、本実施形態に係る標準文書の一部分を示す。
現在ピクチャが一つ又はそれ以上のロングターム参照ピクチャ(LTRP)を参照する場合には、POC距離を考慮するミラーリング手順が必要ではないことがある。これは、他のMVDよりも非常に遠い距離の参照ピクチャから取得されたミラーリングMVDは、正確度の側面で効果的ではないためである。これを解決するための案が以下で説明される。
次の表は、実施例間の比較結果を示す。
表31を参照すると、実施例Xは、既存のMMVDの導出方法を示す。実施例Yでは、一つ又はそれ以上のロングターム参照ピクチャが現在ブロックに参照される場合にMMVD手順が制限され得る。すなわち、実施例Yでは、ロングターム参照ピクチャのためのPOC距離の比較手順が省略され得る。実施例Zでは、全ての場合に対して、MMVDの導出手順が制限され得る。すなわち、実施例Zでは、全ての場合に対して、POC距離を比較する手順が省略され得る。表31において、offsetはMmvdOffsetを指称し得る。
図16は、本文書の一実施形態に係るMMVDの導出方法を示すフローチャートである。図16のフローチャートは、前述の実施例YによるMMVDの導出方法を示すことができる。
図16を参照すると、参照ピクチャタイプがロングターム参照ピクチャである場合にPOC差分を比較する条件が除去され得、そして、ミラーリング手順のために使用されるアンカー(anchor)MVDは、L0 MVDに固定されることができる。
次の表は、表31の実施例YによってMMVDを導出する方法を標準文書の形式で記述する。
図17は、本文書の一実施形態に係るMMVDの導出方法を示すフローチャートである。図17のフローチャートは、前述の実施例ZによるMMVDの導出方法を示すことができる。
図17を参照すると、実施例Zでは、全ての場合に対して、MMVDの導出手順が制限され得る。全ての場合に対して、POC差分を比較する条件が除去され得、そして、ミラーリング又はスケーリング手順のために使用されるアンカー(anchor)MVDは、L0 MVDに固定されることができる。
次の表は、表31の実施例ZによってMMVDを導出する方法を標準文書の形式で記述する。
また、本実施形態の一例において、全ての場合に対して、POC差分を比較する条件が除去され得、そして、ただミラーリングする案のみが使用されることもある。次の表は、本例示において、MMVDを導出する方法を標準文書の形式で記述する。
以下の図面は,本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号メッセージフィールドの名称は例示的に提示されたものであるので、本明細書の技術的特徴は、以下の図面に用いられた具体的な名称に制限されない。
図18及び19は、本文書の実施形態に係るビデオ/画像エンコード方法及び関連のコンポーネントの一例を概略的に示す。図18において開示された方法は、図2において開示されたエンコード装置によって実行されることができる。具体的に、例えば、図18のS1800乃至S1850は、前記エンコード装置の予測部220により実行されることができ、S1860は、前記エンコード装置のレジデュアル処理部230によって実行されることができる。S1870は、前記エンコード装置のエントロピーエンコード部240によって実行されることができる。図18において開示された方法は、本文書で前述した実施形態を含むことができる。
図18を参照すると、エンコード装置は、現在ピクチャ内の現在ブロックのためにインター予測モードを導出する(S1800)。ここで、インター予測モードは、前述したマージモード、AMVPモード(動きベクトル予測子候補を用いたモード)、MMVD、SMVDを含むことができる。
エンコード装置は、前記インター予測モードのための参照ピクチャを導出することができる。エンコード装置は、参照ピクチャの導出のために参照ピクチャリストを構成することができる。一例において、参照ピクチャリストは、参照ピクチャリスト0(又はL0、参照ピクチャリストL0)又は参照ピクチャリスト1(又はL1、参照ピクチャリストL1)を含むことができる。例えば、エンコード装置は、現在ピクチャに含まれたスライスそれぞれ毎に参照ピクチャリストを構成することができる。
エンコード装置は、現在ブロックの周辺ブロックに基づいて、前記現在ブロックのためのMVP候補リストを構成する(S1810)。MVP候補リストは、MVP候補リストL0及びMVP候補リストL1を含むことができる。一例において、前記周辺ブロックは、前記現在ブロックを含む現在ピクチャに含まれ得る。別の例において、前記周辺ブロックは、前記現在ピクチャからの以前(参照)ピクチャ又は以後(参照)ピクチャに含まれ得る。ここで、以前ピクチャのPOCは、現在ピクチャのPOCよりも小さいことがあり、そして、以後ピクチャのPOCは、現在ピクチャのPOCよりも大きいことがある。一例によると、現在ピクチャと現在ピクチャからの以前(参照)ピクチャとの間のPOC差分は、0よりも大きいことがある。別の例において、現在ピクチャと現在ピクチャからの以後(参照)ピクチャとの間のPOC差分は、0よりも小さいことがある。但し、これは例示的なだけである。
エンコード装置は、前記MVP候補リストに基づいて、前記現在ブロックのためのMVPを導出することができる(S1820)。MVPは、MVPL0及びMVPL1を含むことができる。MVPL0は、MVP候補リストL0から導出されることができ、そして、MVPL1は、MVP候補リストL1から導出されることができる。エンコード装置は、前記MVP候補リストに含まれた動きベクトル予測子候補のうち、最適の動きベクトル予測子候補を導出することができる。エンコード装置は、前記最適の動きベクトル予測子候補を指示する選択情報(ex.MVPフラグ又はMVPインデックス)を生成することができる。
エンコード装置は、前記インター予測モードを含む予測関連情報を生成する(S1830)。一例において、前記予測関連情報は、前記現在ブロックのためのMVD(motion vector difference)に関する情報を含むことができる。また、前記予測関連情報は、MMVDに関する情報、SMVDに関する情報等を含むことができる。
エンコード装置は、前記MVP及び前記MVDに関する情報に基づいて、前記現在ブロックの予測のための動き情報を導出する(S1840)。例えば、動き情報は、SMVDのための参照インデックス(対称動きベクトル差分参照インデックス)を含むことができる。SMVDのための参照インデックスは、SMVDの適用のための参照ピクチャを指すことができる。SMVDのための参照インデックスは、参照インデックスL0(RefIdxSumL0)及び参照インデックスL1(RefIdxSumL1)を含むことができる。
エンコード装置は、前記動き情報に基づいて予測サンプルを生成する(S1850)。エンコード装置は、前記動き情報に含まれた動きベクトルと参照ピクチャインデックスに基づいて、前記予測サンプルを生成することができる。例えば、前記予測サンプルは、前記参照ピクチャインデックスが指す前記参照ピクチャ内のブロック(又はサンプル)のうち、前記動きベクトルにより指示されるブロック(又はサンプル)に基づいて生成されることができる。
エンコード装置は、前記予測サンプルに基づいてレジデュアル情報を導出する(S1860)。具体的に、エンコード装置は、前記予測サンプルと原本サンプルに基づいて、レジデュアルサンプルを導出することができる。エンコード装置は、前記レジデュアルサンプルに基づいて、レジデュアル情報が導出できる。前記レジデュアル情報の導出のために、前述した変換及び量子化過程を行うことができる。
エンコード装置は、前記予測関連情報及び前記レジデュアル情報を含む画像/ビデオ情報をエンコードする(S1870)。エンコードされた画像/ビデオ情報は、ビットストリームの形態で出力されることができる。前記ビットストリームは、ネットワーク又は(デジタル)格納媒体を介してデコード装置に送信されることができる。
前記画像/ビデオ情報は、本文書の実施形態に係る多様な情報を含むことができる。例えば、前記画像/ビデオ情報は、前述した表1乃至34のうち少なくとも一つに開示された情報を含むことができる。
一実施形態において、前記動き情報は、MV(motion vector)及び対称動きベクトル差分参照インデックスを含むことができる。前記MVは、L0予測に対するMVL0及びL1予測に対するMVL1を含むことができる。前記対称動きベクトル差分参照インデックスは、前記L0予測に対する対称動きベクトル差分参照インデックスL0及び前記L1予測に対する対称動きベクトル差分参照インデックスL1を含むことができる。前記MVDに関する情報は、前記L0予測に対するMVDL0に関する情報を含むことができる。一例において、前記L1予測に対するMVDL1に関する情報は、前記MVDL0に関する情報に基づいて導出されることができる。別の例において、現在ブロックの予測のための周辺ブロックに基づいて、MVDL0に関する情報及び/又はMVDL1に関する情報が導出できる。エンコード装置は、画像/ビデオ情報をエンコードするにあたって、MVDL1に関する情報は排除することもある。前記MVL0は、前記MVDL0に関する情報に基づいて導出され、そして、前記MVL1は、前記MVDL1に関する情報に基づいて導出されることができる。前記対称動きベクトル差分参照インデックスL0及び前記対称動きベクトル差分参照インデックスL1は、参照ピクチャリストに含まれた参照ピクチャのうち、ショートターム参照ピクチャに基づいて導出されることができる。
一実施形態において、前記MVPは、前記L0予測に対するMVPL0及び前記L1予測に対するMVPL1を含むことができる。前記MVL0は、前記MVDL0と前記MVPL0との合算に基づいて導出されることができる。前記MVL1は、前記MVDL1と前記MVPL1との合算に基づいて導出されることができる。
一実施形態において、前記予測関連情報は、対称動きベクトル差分に関する情報(SMVDに関する情報又はSMVDフラグ情報)を含むことができる。前記ショートターム参照ピクチャと前記現在ブロックを含む現在ピクチャとの間のPOC(picture order count)差分に基づいて、前記対称動きベクトル差分参照インデックスL0及び前記対称動きベクトル差分参照インデックスL1が導出される場合、前記対称動きベクトル差分に関する情報の値は1であり得る。
一実施形態において、前記MVDL1の大きさは、前記MVDL0の大きさと同一であり得る。前記MVDL1の符号は、前記MVDL0の符号と反対であり得る。
一実施形態において、前記ショートターム参照ピクチャは、ショートターム参照ピクチャL0及びショートターム参照ピクチャL1を含むことができる。例えば、前記対称動きベクトル差分参照インデックスL0は、前記ショートターム参照ピクチャL0を指すことができる。また、前記対称動きベクトル差分参照インデックスL1は、前記ショートターム参照ピクチャL1を指すことができる。
一実施形態において、前記参照ピクチャリストは、参照ピクチャリスト0を含むことができる。前記参照ピクチャリスト0は、前記ショートターム参照ピクチャL0を含むことができる。前記参照ピクチャリスト0に含まれたショートターム参照ピクチャのそれぞれと前記現在ブロックを含む現在ピクチャとの間のPOC(picture order count)差分に基づいて、前記対称動きベクトル差分参照インデックスL0が導出できる。
一実施形態において、前記POC差分の間の比較に基づいて、前記対称動きベクトル差分参照インデックスL0が導出できる。
一実施形態において、前記参照ピクチャリスト0は他のショートターム参照ピクチャL0をさらに含むことができる。前記POC差分は、前記ショートターム参照ピクチャL0と前記現在ピクチャとの間の第1POC差分、及び前記他のショートターム参照ピクチャL0と前記現在ピクチャとの間の第2POC差分を含むことができる。前記第1POC差分は、前記第2POC差分よりも小さいことがある。
図20及び21は、本文書の実施形態に係る画像/ビデオデコード方法及び関連のコンポーネントの一例を概略的に示す。図20において開示された方法は、図3において開示されたデコード装置によって実行されることができる。具体的に、例えば、図20のS2000は、前記デコード装置のエントロピーデコード部310によって実行されることができ、S2010乃至S2050は、前記デコード装置の予測部330によって実行されることができる。図20において開示された方法は、本文書で前述した実施形態を含むことができる。
図20を参照すると、デコード装置は、画像/ビデオ情報を受信/取得する(S2000)。デコード装置は、ビットストリームを介して前記画像/ビデオ情報を受信/取得することができる。前記画像/ビデオ情報は、予測関連情報(予測モード情報を含む)、MVDに関する情報、及び/又はレジデュアル情報を含むことができる。前記予測関連情報は、MMVDに関する情報、SMVDに関する情報等を含むことができる。また、前記画像/ビデオ情報は、本文書の実施形態に係る多様な情報を含むことができる。例えば、前記画像/ビデオ情報は、図1乃至17と共に説明された情報及び/又は前述した表1乃至34のうち少なくとも一つに開示された情報を含むことができる。
デコード装置は、前記予測関連情報に基づいて現在ブロックに対するインター予測モードを導出する(S2010)。ここで、インター予測モードは、前述したマージモード、AMVPモード(動きベクトル予測子候補を用いたモード)、MMVD、SMVDを含むことができる。
デコード装置は、現在ブロックの周辺ブロックに基づいて、前記現在ブロックのためのMVP候補リストを構成する(S2020)。MVP候補リストは、MVP候補リストL0及びMVP候補リストL1を含むことができる。一例において、前記周辺ブロックは、前記現在ブロックを含む現在ピクチャに含まれ得る。別の例において、前記周辺ブロックは、前記現在ピクチャからの以前(参照)ピクチャ又は以後(参照)ピクチャに含まれ得る。ここで、以前ピクチャのPOCは、現在ピクチャのPOCよりも小さいことがあり、そして、以後ピクチャのPOCは、現在ピクチャのPOCよりも大きいことがある。一例によると、現在ピクチャと現在ピクチャからの以前(参照)ピクチャとの間のPOC差分は、0よりも大きいことがある。別の例において、現在ピクチャと現在ピクチャからの以後(参照)ピクチャとの間のPOC差分は、0よりも小さいことがある。但し、これは例示的なだけである。
デコード装置は、前記MVP候補リストに基づいて、前記現在ブロックのためのMVPを導出することができる(S2030)。MVPは、MVPL0及びMVPL1を含むことができる。MVPL0は、MVP候補リストL0から導出されることができ、そして、MVPL1は、MVP候補リストL1から導出されることができる。デコード装置は、前記MVP候補リストに含まれた動きベクトル予測子候補のうち、最適の動きベクトル予測子候補を導出することができる。エンコード装置は、前記最適の動きベクトル予測子候補を指示する選択情報(ex.MVPフラグ又はMVPインデックス)を生成することができる。
デコード装置は、前記MVDに関する情報及び前記MVPに基づいて、前記現在ブロックのための動き情報を導出する(S2040)。例えば、動き情報は、SMVDのための参照インデックスを含むことができる。SMVDのための参照インデックスは、SMVDの適用のための参照ピクチャを指すことができる。SMVDのための参照インデックスは、参照インデックスL0(RefIdxSumL0)及び参照インデックスL1(RefIdxSumL1)を含むことができる。
デコード装置は、前記動き情報に基づいて予測サンプルを生成する(S2050)。デコード装置は、前記動き情報に含まれた動きベクトルと参照ピクチャインデックスに基づいて、前記予測サンプルを生成することができる。例えば、前記予測サンプルは、前記参照ピクチャインデックスが指す前記参照ピクチャ内のブロック(又はサンプル)のうち、前記動きベクトルにより指示されるブロック(又はサンプル)に基づいて生成されることができる。
デコード装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを生成することができる。具体的に、デコード装置は、前記レジデュアル情報に基づいて量子化された変換係数を導出することができる。量子化された変換係数は、係数スキャン順序に基づいて、1次元ベクトルの形態を有することができる。デコード装置は、前記量子化された変換係数に対する逆量子化手順に基づいて変換係数を導出することができる。デコード装置は、前記変換係数に対する逆変換手順に基づいてレジデュアルサンプルを導出することができる。
デコード装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて現在ピクチャの復元サンプルを生成することができる。デコード装置は、(修正された)復元サンプルを生成するためにフィルタリング手順をさらに実行することもできる。
一実施形態において、前記動き情報は、MV(motion vector)及び対称動きベクトル差分参照インデックスを含むことができる。前記MVは、L0予測に対するMVL0及びL1予測に対するMVL1を含むことができる。前記対称動きベクトル差分参照インデックスは、前記L0予測に対する対称動きベクトル差分参照インデックスL0、及び前記L1予測に対する対称動きベクトル差分参照インデックスL1を含むことができる。前記MVDに関する情報は、前記L0予測に対するMVDL0に関する情報を含むことができる。一例において、前記L1予測に対するMVDL1に関する情報は、前記MVDL0に関する情報に基づいて導出されることができる。別の例において、現在ブロックの予測のための周辺ブロックに基づいて、MVDL0に関する情報及び/又はMVDL1に関する情報が導出できる。エンコード装置は、画像/ビデオ情報をエンコードするにあたって、MVDL1に関する情報は排除することもある。前記MVL0は、前記MVDL0に関する情報に基づいて導出され、そして、前記MVL1は、前記MVDL1に関する情報に基づいて導出されることができる。前記対称動きベクトル差分参照インデックスL0及び前記対称動きベクトル差分参照インデックスL1は、参照ピクチャリストに含まれた参照ピクチャのうち、ショートターム参照ピクチャに基づいて導出されることができる。
一実施形態において、前記MVPは、前記L0予測に対するMVPL0及び前記L1予測に対するMVPL1を含むことができる。前記MVL0は、前記MVDL0と前記MVPL0との合算に基づいて導出されることができる。前記MVL1は、前記MVDL1と前記MVPL1との合算に基づいて導出されることができる。
一実施形態において、前記予測関連情報は、対称動きベクトル差分に関する情報(SMVDのための情報又はSMVDフラグ情報)を含むことができる。例えば、前記対称動きベクトル差分に関する情報の値が1である場合、前記ショートターム参照ピクチャと前記現在ブロックを含む現在ピクチャとの間のPOC差分に基づいて、前記対称動きベクトル差分参照インデックスL0及び前記対称動きベクトル差分参照インデックスL1が導出できる。
一実施形態において、前記MVDL1の大きさは、前記MVDL0の大きさと同一であり得る。前記MVDL1の符号は、前記MVDL0の符号と反対であり得る。
一実施形態において、前記ショートターム参照ピクチャは、ショートターム参照ピクチャL0及びショートターム参照ピクチャL1を含むことができる。例えば、前記対称動きベクトル差分参照インデックスL0は、前記ショートターム参照ピクチャL0を指すことができる。また、前記対称動きベクトル差分参照インデックスL1は、前記ショートターム参照ピクチャL1を指すことができる。
一実施形態において、前記参照ピクチャリストは、参照ピクチャリスト0を含むことができる。前記参照ピクチャリスト0は、前記ショートターム参照ピクチャL0を含むことができる。前記参照ピクチャリスト0に含まれたショートターム参照ピクチャのそれぞれと前記現在ブロックを含む現在ピクチャとの間のPOC(picture order count)差分に基づいて、前記対称動きベクトル差分参照インデックスL0が導出できる。
一実施形態において、前記POC差分の間の比較に基づいて、前記対称動きベクトル差分参照インデックスL0が導出できる。
一実施形態において、前記参照ピクチャリスト0は他のショートターム参照ピクチャL0をさらに含むことができる。前記POC差分は、前記ショートターム参照ピクチャL0と前記現在ピクチャとの間の第1POC差分、及び前記他のショートターム参照ピクチャL0と前記現在ピクチャとの間の第2POC差分を含むことができる。前記第1POC差分は、前記第2POC差分よりも小さいことがある。
一実施形態において、前記対称動きベクトル差分参照インデックスL0及び前記対称動きベクトル差分参照インデックスL1(ex.ref_idx_l1[x0][y0], ref_idx_l1[x0][y0])は、直接シグナリングされず、そして、前記対称動きベクトル差分に関する情報(ex.sym_mvd_flag)に基づいて導出されることができる。
前述した実施例において、方法は、一連のステップ又はブロックとしてフローチャートに基づいて説明されているが、該当実施例は、ステップの順序に限定されるわけではなく、あるステップは、前述したところと異なるステップと異なる順序で、又は同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、異なるステップが含まれるか、フローチャートの1つ又はそれ以上のステップが本文書の実施例の範囲に影響を与えずに削除され得ることを理解することができる。
前述した本文書の実施例に係る方法は、ソフトウェアの形態で具現されることができ、本文書に係るエンコーディング装置及び/又はデコーディング装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置等の映像処理を行う装置に含まれ得る。
本文書で、実施例がソフトウェアで具現される際、前述した方法は、前述した機能を行うモジュール(過程、機能等)で具現されることができる。モジュールはメモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部又は外部にあってもよく、よく知られている様々な手段でプロセッサと連結されてもよい。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/又はデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/又は他の格納装置を含むことができる。即ち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて行われ得る。例えば、各図面で示している機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて行われ得る。この場合、具現のための情報(ex.information on instructions)又はアルゴリズムがデジタル格納媒体に格納されることができる。
また、本文書の実施例が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、オーダーメイド型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(virtual reality)装置、AR(argumente reality)装置、映像電話ビデオ装置、運送手段端末(ex.車両(自律走行車両含む)端末、飛行機端末、船舶端末など)及び医療用ビデオ装置等に含まれ得、ビデオ信号又はデータ信号を処理するために使用され得る。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネットアクセスTV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)等を含み得る。
また、本文書の実施例が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取ることができる記録媒体に格納されることができる。本文書の実施例に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み取ることができる記録媒体に格納されることができる。前記コンピュータが読み取ることができる記録媒体は、コンピュータで読み取られるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取ることができる記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピディスク、及び光学的データ格納装置を含み得る。また、前記コンピュータが読み取ることができる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームが、コンピュータが読み取られる記録媒体に格納されるか、有無線通信ネットワークを介して送信されることができる。
また、本文書の実施例は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施例によってコンピュータで実行されることができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に格納されることができる。
図22は、本文書に開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す。
図22を参照すると、本文書の実施例が適用されるコンテンツストリーミングシステムは、大きくエンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディアストレージ、ユーザ装置、及びマルチメディア入力装置を含むことができる。
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダ等のようなマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。別の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略され得る。
前記ビットストリームは、本文書の実施例が適用されるエンコーディング方法又はビットストリームの生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信又は受信する過程で、一時的に前記ビットストリームを格納することができる。
前記ストリーミングサーバは、ウェブサーバを介してのユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すれば、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
前記ストリーミングサーバは、メディア格納所及び/又はエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムに受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間、格納することができる。
前記ユーザ装置の例では、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジなどがありうる。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせられて方法として具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて装置として具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて方法として具現されることができる。