本文書の開示は、様々な変更を加えることができ、種々の実施例を有することができ、特定実施例を図面に例示し、詳細に説明しようとする。しかしながら、これは、本開示を特定実施例に限定しようとするものではない。本文書で使用する用語は、単に特定の実施例を説明するために使用されたものであって、本文書の実施例の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本文書において「含む」または「有する」などの用語は、文書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて一つの構成をなすこともでき、一つの構成を複数の構成に分けることもできる。各構成が統合及び/または分離された実施例も本文書の本質から外れない限り、本文書の権利範囲に含まれる。
本文書は、ビデオ/映像コーディングに関する。例えば、本文書において開示された方法/実施例は、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等)に開示される方法に適用されることができる。
本文書では、ビデオ/映像コーディングに関する多様な実施例を提示し、他の言及がない限り、前記実施例は、互いに組合わせられて行われることもできる。
以下、添付図面を参照して、本文書の好ましい実施例を説明しようとする。以下、図面上の同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略されることができる。
図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)の集合(または、アレイ)を含むことができる。
本文書において“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”を意味できる。
本文書において“少なくとも一つのA及びB(at least one of A and B)”は、“ただA”、“ただB”または“AとB全部”を意味できる。また、本文書において“少なくとも一つのAまたはB(at least one of A or B)”または“少なくとも一つのA及び/またはB(at least one of A and/or B)”という表現は、“少なくとも一つのA及びB(at least one of A and B)”と同様に解析できる。
また、本文書において“少なくとも一つのA、B及びC(at least one of A、B and C)”は、“ただA”、“ただB”、“ただC”、または、“A、B及びCの任意のすべての組合せ(any combination of A、B and C)”を意味できる。また、“少なくとも一つのA、BまたはC(at least one of A、B or C)”または“少なくとも一つのA、B及び/またはC(at least one of A、Band/or C)”は、“少なくとも一つのA、B及びC(at least one of A、B and C)”を意味できる。
また、本文書において使用される括弧は、“例えば(for example)”を意味できる。具体的に、“予測(イントラ予測)”と表示された場合、“予測”の一例として“イントラ予測”が提案されたことでありうる。言い換えれば、本文書の“予測”は、“イントラ予測”に制限(limit)されず、“イントラ予測”が“予測”の一例として提案されたことでありうる。また、“予測(すなわち、イントラ予測)”と表示された場合にも、“予測”の一例として“イントラ予測”が提案されたことでありうる。
本文書において一つの図面内において個別的に説明される技術的特徴は、個別的に具現されることもでき、同時に具現されることもできる。
図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にも同一または対応するように適用されることができる。
一方、前述したように、ビデオコーディングを実行するにあたって圧縮効率を上げるために予測を実行する。それによって、コーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコード装置及びデコード装置で同様に導出され、前記エンコード装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに関する情報(レジデュアル情報)をデコード装置にシグナリングすることで画像コーディング効率を上げることができる。デコード装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックを加算して復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコード装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連したレジデュアル情報を(ビットストリームを介して)デコード装置にシグナリングすることができる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出できる。デコード装置は、予測されたブロックと前記レジデュアルブロックに基づいて復元ピクチャを生成することができる。また、エンコード装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
一方、ピクチャ内の現在ブロックの予測のために、多様なインター予測モードが使用されることができる。例えば、マージモード、スキップモード、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候補として追加されることができる。
現在ブロックのインター予測モードを指すインター予測モード情報がエンコーディング装置からデコーディング装置へシグナリングされることができる。前記インター予測モード情報は、ビットストリームに含まれてデコーディング装置に受信されることができる。前記インター予測モード情報は、多数の候補モードのうち、一つを指示するインデックス情報を含むことができる。または、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、前記インター予測モード情報は、一つ以上のフラグを含むことができる。例えば、スキップフラグをシグナリングしてスキップモードを適用するかどうかを指示し、スキップモードが適用されない場合に、マージフラグをシグナリングしてマージモードを適用するかどうかを指示し、マージモードが適用されない場合に、MVPモードが適用されることと指示するか、または追加的な区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立的なモードでシグナリングされることもでき、またはマージモードまたはMVPモードなどに従属的なモードでシグナリングされることもできる。例えば、アフィンモードは、アフィンマージモード及びアフィンMVPモードを含むことができる。
一方、現在ブロックにlist 0(L0)予測、list 1(L1)予測、または双予測(bi-prediction)が現在ブロック(現在コーディングユニット)に使用されるかどうかを表す情報がシグナリングされることができる。前記情報は、動き予測方向情報、インター予測方向情報またはインター予測指示情報と呼ばれることができ、例えばinter_pred_idcシンタックス要素の形態で構成/エンコーディング/シグナリングされることができる。すなわち、inter_pred_idcシンタックス要素は、上述したlist 0(L0)予測、list 1(L1)予測、または双予測(bi-prediction)が現在ブロック(現在コーディングユニット)に使用されるかどうかを表すことができる。本文書では、説明の便宜のためにinter_pred_idcシンタックス要素が指すインター予測タイプ(L0予測、L1予測、またはBI予測)は、動き予測方向と表示されることができる。L0予測は、pred_L0、L1予測は、pred_L1、双予測はpred_BIで表されることもできる。例えば、inter_pred_idcシンタックス要素の値によって次のような予測タイプを表すことができる。
上述したように、一つのピクチャは、一つ以上のsliceを含むことができる。sliceは、intra(I)slice、predictive(P)slice及びbi-predictive(B)sliceを含むsliceタイプのうち、一つタイプを有することができる。前記sliceタイプは、sliceタイプ情報に基づいて指示されることができる。I slice内のブロックに対しては、予測のためにインター予測は使用されず、イントラ予測のみが使用されることができる。もちろん、この場合にも予測無しで原本サンプル値をコーディングしてシグナリングすることもできる。P slice内のブロックに対しては、イントラ予測またはインター予測が使用されることができ、インター予測が使用される場合には、単(uni)予測のみが使用されることができる。一方、B slice内のブロックに対しては、イントラ予測またはインター予測が使用されることができ、インター予測が使用される場合には、最大双(bi)予測まで使用されることができる。
L0及びL1は、現在ピクチャより以前にエンコーディング/デコーディングされた参照ピクチャを含むことができる。例えば、L0は、POC順序上現在ピクチャより以前及び/または以後参照ピクチャを含むことができ、L1は、POC順序上現在ピクチャより以後及び/または以前参照ピクチャを含むことができる。この場合、L0には、POC順序上現在ピクチャより以前参照ピクチャに相対的により低い参照ピクチャインデックスが割り当てられることができ、L1には、POC順序上現在ピクチャより以後参照ピクチャに相対的により低い参照ピクチャインデックスが割り当てられることができる。B sliceの場合、双予測が適用されることができ、この場合にも、単方向双予測が適用されることができ、または両方向双予測が適用されることができる。両方向双予測は、true双予測と呼ばれることができる。
例えば、現在ブロックのインター予測モードに関する情報は、CU(CUシンタックス)等レベルにおいてコーディングされてシグナリングされるか、または条件によって暗黙的に決定されることができる。この場合、一部モードに対しては、明示的にシグナリングされ、残りの一部モードは、暗黙的に導き出されることができる。
例えば、CUシンタックスは、次のように(インター)予測モードに関する情報などを運ぶことができる。CUシンタックスは、下記の表1のとおりでありうる。
前記表1において、cu_skip_flagは、現在ブロック(CU)にスキップモードが適用されるかどうかを表すことができる。
pred_mode_flagが0であると、現在ブロックがインター予測モードでコーディングされるよう指定でき、pred_mode_flagが1であると、現在コーディングユニットがイントラ予測モードでコーディングされるよう指定できる。
pred_mode_ibc_flagが1であると、現在ブロックがIBC予測モードでコーディングされることを指定でき、pred_mode_ibc_flagが0であると、現在ブロック(CU)がIBC予測モードでコーディングされないことを指定できる。
また、pcm_flag[x0][y0]が1であると、pcm_sample()シンタックス構造が存在し、transform_tree()シンタックス構造が位置(x0,y0)のルーマコーディングブロックを含む現在ブロックに存在しないことを指定できる。pcm_flag[x0][y0]が0と同じであると、pcm_sample()シンタックス構造が存在しないことを指定できる。すなわち、pcm_flagは、現在ブロックにpuls coding modulation(PCM)モードが適用されるかどうかを表すことができる。現在ブロックにPCMモードが適用される場合、予測/変換/量子化などが適用されず、現在ブロック内の原本サンプルの値がコーディングされてシグナリングされることができる。
また、intra_mip_flag[x0][y0]が1であると、ルーマサンプルに対するイントラ予測類型がマトリックス基盤イントラ予測(MIP)であることを指定でき、intra_mip_flag[x0][y0]が0であると、ルーマサンプルに対するイントラ予測類型がマトリックス基盤イントラ予測でないことを指定できる。すなわち、intra_mip_flagは、現在ブロックのルーマサンプルにMIP予測モード(タイプ)が適用されるかどうかを表すことができる。
intra_chroma_pred_mode[x0][y0」は、現在ブロックからクロマサンプルに対するイントラ予測モードを指定できる。
general_merge_flag[x0][y0」は、現在ブロックに対するインター予測パラメータが隣接するインター予測されたパーティション(partition)から推論されるかどうかを指定できる。すなわち、general_merge_flagは、一般マージモードが利用可能であることを表すことができる。例えば、general_merge_flagの値が1の場合、レギュラーマージモード(regular merge mode)、MMVD(merge mode with motion vector difference)モード及びmerge subblock mode(subblock merge mode)などを利用可能である。例えば、general_merge_flagの値が1の場合、マージデータシンタックス(merge data syntax)がエンコーディングされたビデオ/イメージ情報(またはビットストリーム)からパーシングされることができ、マージデータシンタックスは、下記の表2のように構成/コーディングされることができる。
前記表2中、regular_merge_flag[x0][y0]が1であると、現在ブロックのインター予測パラメータを生成するためにレギュラーマージモード(regular merge mode)が使用されるように指定できる。すなわち、regular_merge_flagは、マージモード(正規マージモード)が現在ブロックに適用されるかどうかを表すことができる。
mmvd_merge_flag[x0][y0]が1であると、現在ブロックのインター予測パラメータを生成するためにMMVDモード(merge mode with motion vector difference mode)が使用されるように指定できる。すなわち、mmvd_merge_flagは、MMVDが現在ブロックに適用されるかどうかを表すことができる。
mmvd_cand_flag[x0][y0」は、マージ候補リストの第1番目の(0)または第2番目の(1)候補をmmvd_distance_idx[x0][y0]及びmmvd_direction_idx[x0][y0]から導き出された動きベクトル差分値(motion vector difference)と共に使用するかどうかを指定できる。
mmvd_distance_idx[x0][y0」は、MmvdDistance[x0][y0]を導き出すのに使用されるインデックスを指定できる。
mmvd_direction_idx[x0][y0」は、MmvdSign[x0][y0]を導き出すのに使用されるインデックスを指定できる。
merge_subblock_flag[x0][y0」は、現在ブロックに対するサブブロック基盤インター予測パラメータを指定できる。すなわち、merge_subblock_flagは、現在ブロックにサブブロックマージモード(またはアフィンマージモード)が適用されるかどうかを表すことができる。
merge_subblock_idx[x0][y0」は、サブブロック基盤マージ候補リストからマージ候補インデックスを指定できる。
ciip_flag[x0][y0」は、CIIP(combined inter-picture merge and intra-picture prediction)予測が現在ブロックに適用されるかどうかを指定できる。
merge_triangle_idx0[x0][y0」は、三角形状基盤の動き補償候補リスト(triangular shape based motion compensation candidatelist)の第1番目のマージ候補インデックスを指定できる。
merge_triangle_idx1[x0][y0」は、三角形状基盤の動き補償候補リスト(triangular shape based motion compensation candidatelist)の第2番目のマージ候補インデックスを指定できる。
merge_idx[x0][y0」は、マージ候補リストにおいてマージ候補インデックスを指定できる。
一方、再度CUシンタックスを参照すると、mvp_l0_flag[x0][y0」は、list 0において動きベクトル予測子インデックスを指定できる。すなわち、mvp_l0_flagは、MVPモードが適用される場合、MVP候補リスト0において前記現在ブロックのMVP導出のために選択される候補を指示できる。
mvp_l1_flag[x0][y0」は、mvp_l0_flagと同じ意味を有し、l0及びlist 0は、それぞれl1及びlist 1で代替されることができる。
inter_pred_idc[x0][y0」は、list 0、list 1または双予測(bi-prediction)が現在コーディング単位で使用するかどうかを指定できる。
sym_mvd_flag[x0][y0]が1であると、シンタックス要素ref_idx_l0[x0][y0]及びref_idx_l1[x0][y0]及びrefList 1に対するmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在しないことを指定できる。すなわち、sym_mvd_flagは、mvdコーディングにおいてsymmetric MVDが使用されるかどうかを表すことができる。
ref_idx_l0[x0][y0」は、現在ブロックに対するlist 0参照ピクチャインデックス(list 0 reference picture index)を指定できる。
ref_idx_l1[x0][y0」は、ref_idx_l0と同じ意味を有し、l0、L0及びlist 0は、それぞれl1、L1及びlist 1で代替されることができる。
inter_affine_flag[x0][y0]が1であると、PまたはBスライスをデコーディングする時、現在ブロックの予測サンプルを生成するために、アフィンモデル基盤の動き補償(affine model based motion compensation)が使用されるように指定できる。
cu_affine_type_flag[x0][y0]が1であると、PまたはBスライスをデコーディングする時、現在ブロックの予測サンプルを生成するために6-パラメータアフィンモデル基盤の動き補償(6-parameter affine model based motion compensation)が使用されるように指定できる。cu_affine_type_flag[x0][y0]が0であると、PまたはBスライスをデコーディングする時、現在ブロックの予測サンプルを生成するために4-パラメータアフィンモデル基盤の動き補償(4-parameter affine model based motion compensation)が使用されるように指定できる。
amvr_flag[x0][y0」は、動きベクトル差分値の解像度(resolution)を指定できる。アレイインデックスx0,y0は、ピクチャの左上段ルーマサンプルに対して考慮されるコーディングブロックの左上段ルーマサンプルの位置(x0,y0)を指定できる。amvr_flag[x0][y0]が0であると、動きベクトル差分値の解像度(resolution)がルーマサンプルの1/4であることを指定できる。amvr_flag[x0][y0]が1であると、動きベクトル差分値の解像度(resolution)がamvr_precision_flag[x0][y0]によりさらに指定されることができる。
amvr_precision_flag[x0][y0]が0であると、、inter_affine_flag[x0][y0]が0の場合、動きベクトル差分値の解像度(resolution)は1整数ルーマサンプルになり、そうでない場合、ルーマサンプルの1/16に指定されることができる。amvr_precision_flag[x0][y0]が1であると、、inter_affine_flag[x0][y0]が0の場合、動きベクトル差分値の解像度(resolution)が4ルーマサンプルになり、そうでない場合、1整数ルーマサンプルに指定されることができる。
bcw_idx[x0][y0」は、CU加重値を使用した双予測の加重値インデックス(weight index)を指定できる。
図4は、インター予測に基づいたビデオ/映像エンコーディング方法の一例を示し、図5は、エンコーディング装置内のインター予測部を概略的に示した一例である。図5のエンコーディング装置内のインター予測部は、上述した図2のエンコーディング装置200のインター予測部221にも同一または対応されるように適用されることができる。
図4及び図5に示すように、エンコーディング装置は、現在ブロックに対するインター予測を行う(S400)。エンコーディング装置は、現在ブロックのインター予測モード及び動き情報を導き出し、前記現在ブロックの予測サンプルを生成できる。ここで、インター予測モード決定、動き情報導出及び予測サンプルの生成手順は、同時に行われることもでき、いずれか一つの手順が他の手順よりまず行われることもできる。
例えば、エンコーディング装置のインター予測部221は、予測モード決定部221_1、動き情報導出部221_2、予測サンプル導出部221_3を含むことができ、予測モード決定部221_1で前記現在ブロックに対する予測モードを決定し、動き情報導出部221_2で前記現在ブロックの動き情報を導き出し、予測サンプル導出部221_3で前記現在ブロックの予測サンプルを導き出すことができる。例えば、エンコーディング装置のインター予測部221は、動き推定(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)。エンコーディング装置は、エンコーディングされた映像情報をビットストリーム形態で出力できる。予測情報は、予測手順に関連した情報として予測モード情報(ex.skip flag、merge flag or mode index等)及び動き情報に関する情報を含むことができる。動き情報に関する情報は、動きベクトルを導き出すための情報である候補選択情報(ex.merge index)を含むことができる。また、動き情報に関する情報は、L0予測、L1予測、または、双(bi)予測が適用されているかどうかを表す情報を含むことができる。レジデュアル情報は、レジデュアルサンプルに関する情報である。レジデュアル情報は、レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。
出力されたビットストリームは、(デジタル)格納媒体に格納されてデコーディング装置に伝達されることができ、またはネットワークを介してデコーディング装置に伝達されることもできる。
また、上述したようにエンコーディング装置は、参照サンプル及びレジデュアルサンプルに基づいて、復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成できる。これは、デコーディング装置で行われることと同じ予測結果をエンコーディング装置で導き出すためであり、これを介してコーディング効率を上げることができるためである。したがって、エンコーディング装置は、復元ピクチャ(または復元サンプル、復元ブロック)をメモリに格納し、インター予測のための参照ピクチャとして活用できる。復元ピクチャにインループフィルタリング手順などがさらに適用されうることは、上述のとおりである。
図6は、インター予測に基づいたビデオ/映像デコーディング方法の一例を示し、図7は、デコーディング装置内のインター予測部を概略的に示した一例である。図7のデコーディング装置内のインター予測部は、上述した図3のデコーディング装置300のインター予測部332にも同一または対応されるように適用されることができる。
図6及び図7に示すように、デコーディング装置は、前記エンコーディング装置で行われた動作と対応する動作を行うことができる。デコーディング装置は、受信された予測情報に基づいて現在ブロックに予測を行い、予測サンプルを導き出すことができる。
具体的にデコーディング装置は、受信された予測情報に基づいて現在ブロックに対する予測モードを決定できる(S600)。デコーディング装置は、予測情報内の予測モード情報に基づいて現在ブロックにどんなインター予測モードが適用されているかを決定できる。
インター予測モード候補は、スキップモード、マージモード及び/または(A)MVPモードを含むことができ、または多様なインター予測モードを含むことができる。
デコーディング装置は、決定されたインター予測モードに基づいて現在ブロックの動き情報を導き出す(S610)。例えば、デコーディング装置は、現在ブロックにスキップモードまたはマージモードが適用される場合、マージ候補リストを構成し、マージ候補リストに含まれたマージ候補のうち、いずれか一つのマージ候補を選択できる。ここで選択は、上述した選択情報(merge index)に基づいて行われることができる。選択されたマージ候補の動き情報を利用して、現在ブロックの動き情報が導き出されることができる。選択されたマージ候補の動き情報が現在ブロックの動き情報として利用されることができる。
他の例として、デコーディング装置は、現在ブロックに(A)MVPモードが適用される場合、(A)MVP候補リストを構成し、(A)MVP候補リストに含まれたmvp(motion vector predictor)候補のうち、選択されたmvp候補の動きベクトルを現在ブロックのmvpとして利用できる。ここで、選択は、上述した選択情報(mvp flag or mvp index)に基づいて行われることができる。この場合、前記MVDに関する情報に基づいて現在ブロックのMVDを導き出すことができ、現在ブロックのmvpとMVDに基づいて、現在ブロックの動きベクトルを導き出すことができる。また、参照ピクチャインデックス情報に基づいて現在ブロックの参照ピクチャインデックスを導き出すことができる。現在ブロックに関する参照ピクチャリスト内で参照ピクチャインデックスが指すピクチャが現在ブロックのインター予測のために参照される参照ピクチャとして導き出されることができる。
一方、候補リスト構成無しで現在ブロックの動き情報が導き出されることができ、この場合、予測モードにおいて開示された手順に従って、現在ブロックの動き情報が導き出されることができる。この場合、上述したような候補リスト構成は省略されうる。
デコーディング装置は、現在ブロックの動き情報に基づいて現在ブロックに対する予測サンプルを生成できる(S620)。この場合、現在ブロックの参照ピクチャインデックスに基づいて参照ピクチャを導き出し、現在ブロックの動きベクトルが参照ピクチャ上において指す参照ブロックのサンプルを利用して、現在ブロックの予測サンプルを導き出すことができる。この場合、場合によって現在ブロックの予測サンプルの全てまたは一部に対する予測サンプルフィルタリング手順がさらに行われることができる。
例えば、デコーディング装置のインター予測部332は、予測モード決定部332_1、動き情報導出部332_2、予測サンプル導出部332_3を含むことができ、予測モード決定部332_1で受信された予測モード情報に基づいて現在ブロックに対する予測モードを決定し、動き情報導出部332_1で受信された動き情報に関する情報に基づいて現在ブロックの動き情報(動きベクトル及び/または参照ピクチャインデックス等)を導き出し、予測サンプル導出部332_3で現在ブロックの予測サンプルを導き出すことができる。
デコーディング装置は、受信されたレジデュアル情報に基づいて現在ブロックに対するレジデュアルサンプルを生成する(S630)。デコーディング装置は、予測サンプル及びレジデュアルサンプルに基づいて現在ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成できる(S640)。以後、復元ピクチャにインループフィルタリング手順などがさらに適用されうることは上述したとおりである。
上述したように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードに応じる動き情報導出ステップ、導き出された動き情報に基づいた予測遂行(予測サンプル生成)ステップを含むことができる。インター予測手順は、上述したように、エンコーディング装置及びデコーディング装置で行われることができる。
一方、現在ブロックの動き情報を導き出すにおいて、空間的隣接ブロック(ら)及び時間的隣接ブロック(ら)に基づいて動き情報候補(ら)を導き出し、導き出された動き情報候補(ら)に基づいて現在ブロックのための動き情報候補を選択できる。このとき、選択された動き情報候補を現在ブロックの動き情報として使用することができる。
図8は、インター予測においてマージモードを説明するための図である。
マージモード(merge mode)が適用される場合、現在予測ブロックの動き情報が直接的に送信されずに、隣接予測ブロックの動き情報を利用して前記現在予測ブロックの動き情報を誘導するようになる。したがって、マージモードを利用したことを知らせるフラグ情報及び隣接のどんな予測ブロックを利用したかを知らせるマージインデックスを送信することによって、現在予測ブロックの動き情報を指示できる。前記マージモードは、レギュラーマージモード(regular merge mode)と呼ばれることができる。
エンコード装置は、マージモードを行うために、現在予測ブロックの動き情報を導くために用いられるマージ候補ブロック(merge candidate block)をサーチ(search)しなければならない。例えば、前記マージ候補ブロックは、最大5個まで用いられることができるが、本文書の実施形態(等)は、これに限定されない。そして、前記マージ候補ブロックの最大個数は、スライスヘッダまたはタイルグループヘッダで送信されることができるが、本文書の実施形態(等)は、これに限定されない。前記マージ候補ブロックを探した後、エンコード装置は、マージ候補リストを生成でき、これらのうち、最も小さい費用を有するマージ候補ブロックを最終マージ候補ブロックとして選択することができる。
本文書は、前記マージ候補リストを構成するマージ候補ブロックに対する様々な実施形態を提供できる。
例えば、前記マージ候補リストは、5個のマージ候補ブロックを用いることができる。例えば、4個の空間的マージ候補(spatial merge candidate)と1個の時間的マージ候補(temporal merge candidate)とを利用できる。具体的な例として、空間的マージ候補の場合、図4に示されたブロックを空間的マージ候補として用いることができる。以下、前記空間的マージ候補または後述する空間的MVP候補は、SMVPと呼ばれることができ、前記時間的マージ候補または後述する時間的MVP候補は、TMVPと呼ばれることができる。
前記現在ブロックに対するマージ候補リストは、例えば、次のような手順に基づいて構成されることができる。
コーディング装置(エンコーディング装置/デコーディング装置)は、現在ブロックの空間的隣接ブロックを探索して導き出された空間的マージ候補をマージ候補リストに挿入できる。例えば、前記空間的隣接ブロックは、前記現在ブロックの左下側コーナー隣接ブロック、左側隣接ブロック、右上側コーナー隣接ブロック、上側隣接ブロック、左上側コーナー隣接ブロックを含むことができる。ただし、これは、例示として上述した空間的隣接ブロックの他にも、右側隣接ブロック、下側隣接ブロック、右下側隣接ブロックなど、追加的な隣接ブロックがさらに前記空間的隣接ブロックとして使用されることができる。コーディング装置は、前記空間的隣接ブロックを優先順位に基づいて探索して、利用可能なブロックを検出し、検出されたブロックの動き情報を前記空間的マージ候補として導き出すことができる。例えば、エンコーディング装置またはデコーディング装置は、図8に示す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タイプの場合)及び/または零ベクトルマージ候補のうち、少なくとも一つを含むことができる。
前記確認結果、前記現在マージ候補の個数が前記最大マージ候補の個数より小さくない場合、コーディング装置は、前記マージ候補リストの構成を終了できる。この場合、エンコード装置は、RD(rate-distortion)コスト(cost)基盤で前記マージ候補リストを構成するマージ候補ののうち、最適のマージ候補を選択でき、前記選択されたマージ候補を指す選択情報(ex.merge index)をデコード装置にシグナリングすることができる。デコード装置は、前記マージ候補リスト及び前記選択情報に基づいて前記最適のマージ候補を選択できる。
前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報として使用されることができ、前記現在ブロックの動き情報に基づいて前記現在ブロックの予測サンプルを導出できることは、上述したとおりである。エンコード装置は、前記予測サンプルに基づいて前記現在ブロックのレジデュアルサンプルを導出でき、前記レジデュアルサンプルに関するレジデュアル情報をデコード装置にシグナリングすることができる。デコード装置は、前記レジデュアル情報に基づいて導出されたレジデュアルサンプル及び前記予測サンプルに基づいて復元サンプルを生成でき、これに基づいて復元ピクチャを生成できることは、上述したとおりである。
スキップモード(skipmode)が適用される場合、上記でマージモードが適用される場合と同じ方法で前記現在ブロックの動き情報を導出できる。ただし、スキップモードが適用される場合、当該ブロックに対するレジデュアル信号が省略され、したがって、予測サンプルが直ちに復元サンプルとして用いられることができる。前記スキップモードは、例えば、cu_skip_flagシンタックス要素の値が1である場合に適用されることができる。
図9は、インター予測においてMMVDモード(merge mode with motion vector difference mode)を説明するための図である。
MMVDモードは、現在ブロックの予測サンプルを生成するのに導き出された動き情報が直接的に使用されるマージモードにMVD(motion vector difference)を適用する方法である。
例えば、現在ブロック(すなわち、現在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候補)のうち、何れか一つがベースMVとして使用されることができる。例えば、マージ候補フラグ(例:mmvd_cand_flag)がマージ候補リスト内の2個の候補(すなわち、第1候補または第2候補)のうち、何れか一つを表すためにシグナリングできる。
また、距離インデックス(例:mmvd_distance_idx)は、動き大きさ情報を表し、開始ポイントから予め決まったオフセットを指示できる。図9を参考すると、前記オフセットは、開始動きベクトルの水平成分または垂直成分に加えられることができる。距離インデックスと予め決まったオフセットの関係は、次の表3のように表されることができる。
前記表3に示すように、距離インデックス(例:mmvd_distance_idx)の値に応じて、MVDの距離(例:MmvdDistance)が決まっており、MVDの距離(例:MmvdDistance)は、slice_fpel_mmvd_enabled_flagの値に基づいて整数サンプル単位(integer sample precision)または分数サンプル単位(fractional sample precision)を使用して導き出されることができる。例えば、slice_fpel_mmvd_enabled_flagが1の場合、MVDの距離は、現在スライスにおいて整数サンプル単位を使用して導き出されるのを表し、slice_fpel_mmvd_enabled_flagが0の場合、MVDの距離は、現在スライスにおいて分数サンプル単位を使用して導き出されるのを表すことができる。
また、方向インデックス(例:mmvd_direction_idx)は、開始ポイントを基準にMVDの方向を表し、以下の表4のように、4方向を表すことができる。このとき、MVDの方向は、MVDの符号を表すことができる。方向インデックスとMVD符号の関係は、次の表4のように表すことができる。
前記表4に示すように、方向インデックス(例:mmvd_direction_idx)の値に応じてMVDの符号(例:MmvdSign)が決まっており、MVDの符号(例:MmvdSign)は、L0参照ピクチャ及びL1参照ピクチャに対して導き出されることができる
上述したような距離インデックス(例:mmvd_distance_idx)及び方向インデックス(例:mmvd_direction_idx)に基づいて、次の数式1のようにMVDのオフセットを計算できる。
すなわち、MMVDモードでは、隣接ブロックに基づいて導き出されたマージ候補リストのマージ候補のうち、マージ候補フラグ(例:mmvd_cand_flag)により指示されるマージ候補を選択し、前記選択されたマージ候補をベース(base)候補(例えば、MVP)として使用することができる。そして、ベース候補に基づいて距離インデックス(例:mmvd_distance_idx)及び方向インデックス(例:mmvd_direction_idx)を利用して導き出されたMVDを足して、現在ブロックの動き情報(すなわち、動きベクトル)を導き出すことができる。
図10a及び図10bは、アフィン動き予測のためのCPMVを例示的に示す。
従来では、コーディングブロックの動きを表現するためにただ一つの動きベクトルを使用することができた。すなわち、並進(translation)動きモデルが使用されることができた。ただし、このような方法がブロック単位で最適の動きを表現したかも知らないが、実際各サンプルの最適の動きではなく、サンプル単位で最適の動きベクトルを決定できるならばコーディング効率を上げることができる。このために、アフィン動きモデル(affine motion model)が使用されることができる。アフィン動きモデルを使用してコーディングするアフィン動き予測方法は、次のとおりでありうる。
アフィン動き予測方法は、2個、3個または4個の動きベクトルを利用してブロックの各サンプル単位で動きベクトルを表現できる。例えば、アフィン動きモデルは、4種類の動きを表現できる。アフィン動きモデルが表現できる動きのうち、三通りの動き(並進(translation)、スケール(scale)、回転(rotate))を表現するアフィン動きモデルは、類似(similarity)(または簡素化された(simplified))アフィン動きモデルと呼ばれることができる。しかしながら、アフィン動きモデルが上述した動きモデルに限定されるものではない。
アフィン動き予測は、2個以上のコントロールポイント動きベクトル(Control Point Motion Vector、CPMV)を利用してブロックが含むサンプル位置の動きベクトルを決定できる。このとき、動きベクトルの集合をアフィン動きベクトルフィールド(MVF:Motion Vector Field)と表すことができる。
例えば、図6aは、2個のCPMVが利用される場合を表すことができ、これは、4-パラメータアフィンモデルと呼ばれることができる。この場合、(x,y)サンプル位置での動きベクトルは、例えば数式2のように決定されることができる。
例えば、図10aは、2個のCPMVが利用される場合を示すことができ、これは、4-パラメータアフィンモデルと呼ばれることができる。この場合、(x,y)サンプル位置での動きベクトルは、例えば数式2のように決定されることができる。
例えば、図10bは、3個のCPMVが利用される場合を示すことができ、これは、6-パラメータアフィンモデルと呼ばれることができる。この場合、(x,y)サンプル位置での動きベクトルは、例えば数式3のように決定されることができる。
数式2及び数式3中、{vx,vy}は、(x,y)位置での動きベクトルを表すことができる。また、{v0x,v0y}は、コーディングブロックの左上段コーナー位置のコントロールポイント(CP:Control Point)のCPMVを表すことができ、{v1x,v1y}は、右上段コーナー位置のCPのCPMVを表すことができ、{v2x,v2y}は、左下段コーナー位置のCPのCPMVを表すことができる。また、Wは、現在ブロックの幅(width)を表すことができ、Hは、現在ブロックの高さ(hight)を表すことができる。
図11は、アフィンMVFがサブブロック単位で決定される場合を例示的に示す。
エンコーディング/デコーディング過程でアフィンMVFは、サンプル単位あるいは既に定義されたサブブロック単位で決定されることができる。例えば、サンプル単位で決定する場合、各サンプル値を基準に動きベクトルが得られることができる。または、例えば、サブブロック単位で決定する場合、サブブロックのうち、中央(センター右下側、すなわち中央4個のサンプルのうち、右下側サンプル)サンプル値を基準に該当ブロックの動きベクトルを得ることができる。すなわち、アフィン動き予測において現在ブロックの動きベクトルは、サンプル単位またはサブブロック単位で導き出されることができる。
図11の場合、アフィン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(またはアフィンインター)モードまたはアフィンマージモードを含むことができる。
図12は、インター予測においてアフィンマージモードまたはサブブロックマージモードを説明するための図である。
例えば、アファインマージモードで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個の継承されたアフィン候補がありえ、継承されたアフィン候補は、隣接ブロックのアフィン動きモデルから導き出されることができる。隣接ブロックは、一つの左側隣接ブロックと上側の隣接ブロックを含むことができる。候補ブロックは、図8のように位置できる。左側予測子(left predictor)のためのスキャン順序は、A1->A0でありえ、上側予測子(above predictor)のためのスキャン順序は、B1->B0->B2でありうる。左側及び上側の各々から一つの継承された候補だけが選択されることができる。二つの継承された候補間には、プルーニングチェック(pruning check)が行われないことができる。
隣接アフィンブロックが確認される場合、確認したブロックのコントロールポイント動きベクトルが現在ブロックのアフィンマージリスト内のCPMVP候補を導き出すために使用されることができる。ここで、隣接アフィンブロックは、現在ブロックの隣接ブロックのうち、アフィン予測モードでコーディングされたブロックを表すことができる。例えば、図12に示すように、左下側(bottom-left)隣接ブロックAがアフィン予測モードでコーディングされた場合、隣接ブロックAの左上側(top-left)コーナー、右上側(top-right)コーナー及び左下側(bottom-left)コーナーの動きベクトルv2、v3及びv4が獲得されうる。隣接ブロックAが4-パラメータアフィン動きモデルでコーディングされた場合、現在ブロックの2個のCPMVがv2及びv3によって算出されることができる。隣接ブロックAが6-パラメータアフィン動きモデルでコーディングされた場合、現在ブロックの3個のCPMVがv2、v3及びv4によって算出されることができる。
図13は、アフィンマージモードまたはサブブロックマージモードにおいて候補の位置を説明するための図である。
アフィンマージモードまたはサブブロックマージモードにおいて構成された(constructed)アフィン候補は、各コントロールポイントの隣接のtranslational動き情報を組み合わせて構成される候補を意味できる。コントロールポイントの動き情報は、特定された空間的隣接及び時間的隣接から導き出される。 CPMVk(k=0,1,2,3)は、k番目のコントロールポイントを表すことができる。
図13に示すように、CPMV0のためにB2≧B3≧A2の順に従ってブロックがチェックされることができ、第1番目に利用可能なブロックの動きベクトルが使用されることができる。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}のうち、何れか一つに該当できる。
3個のCPMVの組み合わせは、6-パラメータアフィンマージ候補を構成でき、2個のCPMVの組み合わせは、4-パラメータアフィンマージ候補を構成できる。動きスケーリング過程を回避するために、コントロールポイントの参照インデックスが互いに異なる場合、コントロールポイント動きベクトルの関連した組み合わせは捨てられることができる。
図14は、インター予測においてSbTMVPを説明するための図である。
SbTMVP(subblock-based temporal motion vector prediction)は、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ピクチャからサブブロックレベル動き情報(動きベクトル及び参照インデックス)を獲得するために適用されることができる。例えば、動きシフトが現在ブロックの座標に追加されることができる。例えば、動きシフトが図8の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候補を利用するか決定するために行われることができる。
図15は、インター予測においてCIIPモード(combined inter-picture merge and intra-picture prediction mode)を説明するための図である。
CIIP(Combined Inter and Intra Prediction)は、現在CUに適用されることができる。例えば、CUがマージモードでコーディングされ、CUが少なくとも64個のルーマサンプルを含み(すなわち、CU幅とCU高さの積が64以上の場合)、CU幅及びCU高さが全部128個のルーマサンプルより小さな場合、前記CIIPモードが前記現在CUに適用されるかを指示するために、追加的なフラグ(例えば、ciip_flag)がシグナリングされることができる。
CIIP予測では、インター予測信号とイントラ予測信号とを結合できる。CIIPモードにおいてインター予測信号P_interは、レギュラーマージモードに適用される同じインター予測プロセスを利用して導き出されることができる。イントラ予測信号P_intraは、プランナーモード(planar mode)を有するイントラ予測プロセスによって導出できる。
イントラ予測信号及びインター予測信号は、加重平均を利用して結合されることができ、下記の数式4の通りでありうる。加重値は、図15に示す上側及び左側隣接ブロックのコーディングモードに応じて計算されることができる。
前記数式4において、上側隣接ブロックが使用可能でイントラコーディングされた場合、isIntraTopは1に設定され、そうでない場合isIntraTopは0に設定されることができる。左側隣接ブロックが使用可能でイントラコーディングされた場合、isIntraLeftは1に設定され、そうでない場合、isIntraLeftは0に設定されることができる。(isIntraLeft+isIntraLeft)が2の場合、wtは3に設定され、(isIntraLeft+isIntraLeft)が1の場合、wtは2に設定されることができる。そうでない場合、wtは1に設定されることができる。
図16は、インター予測においてパーティショニングモード(partitioning mode)を説明するための図である。
図16に示すように、パーティショニングモード(partitioning mode)が適用される場合、CUは、対角線分割または反対方向の対角線分割(diagonal split or anti-diagonal split)を使用して、二つの三角形状のパーティションで均等に分割されることができる。しかしながら、これは、パーティショニングモードの一例に過ぎず、CUは、多様な形状のパーティションで均等にまたは不均等に分割されることができる。
CUの各パーティションに対しては、単方向予測だけが許容されることができる。 すなわち、各パーティションは、一つの動きベクトルと一つの参照インデックス(reference index)を有することができる。単方向予測制約は、双予測と同様に、各CUに対してただ2個の動き補償予測が必要であるということを保障するためである。
パーティショニングモードが適用される場合、分割方向(対角線方向または反対対角線方向)を表すフラグ及び二つのマージインデックス(各パーティションに対して)がさらにシグナリングされることができる。
各々のパーティションを予測した後、対角線方向または反対対角線方向の境界線をサンプル値は、適応的加重値を基盤とするブレンディング過程(blending processing with adaptive weights)を利用して調整できる。
一方、マージモードまたはスキップモードが適用される場合、予測サンプルを生成するために、上述したように、レギュラーマージモード(regular merge mode)、MMVDモード(merge mode with motion vector difference)、マージサブブロックモード(merge subblock mode)、CIIPモード(combined inter-picture merge and intra-picture prediction mode)またはパーティショニングモード(partitioning mode)に基づいて動き情報を導き出すことができる。各モードは、SPS(Sequence paramenter set)でon/offフラグを介してイネーブル(enable)またはディセーブル(disable)されることができる。仮に、SPSで特定モードのためのon/offフラグがディセーブル(disable)されると、CUまたはPU単位で予測モードのために明確に送信されるシンタックスをシグナリングしないことができる。
下記の表5は、従来のmerge_data synatxからマージモードまたはスキップモードを誘導する過程に関するものである。下記の表5においてCUMergeTriangleFlag[x0][y0」は、図12において上述したパーティショニングモードのためのon/offフラグに該当することができ、merge_triangle_split_dir[x0][y0」は、パーティショニングモードが適用される場合、分割方向(対角線方向または反対対角線方向)を表すことができる。また、merge_triangle_idx0[x0][y0]及びmerge_triangle_idx1[x0][y0」は、パーティショニングモードが適用される場合、各パーティションに対する二つのマージインデックスを表すことができる。
一方、レギュラーマージモード、MMVDモード、マージサブブロックモード、CIIPモード及びパーティショニングモードを含む各予測モードは、下記の表6のようにSPS(Sequence paramenter set)からイネーブル(enable)またはディセーブル(disable)されることができる。下記の表6においてsps_triangle_enabled_flagは、図12において上述したパーティショニングモードをSPSからイネーブル(enable)またはディセーブル(disable)するフラグに該当できる。
前記表5のmerge_dataシンタックスは、前記表6のSPSのフラグと各予測モードが使用されることができる条件によってパーシング(parsing)または導き出されることができる。SPSのフラグと各予測モードが使用されることができる条件に応じるすべての場合を整理すると、下記の表7及び表8のとおりでありうる。表7は、現在ブロックがマージモードである場合に対する場合の数を表し、表8は、現在ブロックがスキップモードである場合に対する場合の数を表す。下記の表7及び表8においてTriangleまたはTRIは、図12において説明したパーティショニングモードに該当できる。
前記表7及び表8において言及された場合の一つの例として、現在ブロックが4x16でskipモードである場合を説明する。SPSにおいてマージサブブロックモード、MMVDモード、CIIPモード及びパーティショニングモードが全部イネーブル(enable)された場合、merge_dataシンタックスにおいてregular_merge_flag[x0][y0]、mmvd_flag[x0][y0]及びmerge_subblock_flag[x0][y0]が全部0であると、現在ブロックのための動き情報は、パーティショニングモードで導き出されなければならない。しかしながら、パーティショニングモードは、SPSにおいてon/offフラグからイネーブル(enable)されたとしても、追加的に下記の表9の条件を満たさなければ、予測モードとして使用されることができない。下記の表9中、MergeTriangleFlag[x0][y0」は、パーティショニングモードのためのon/offフラグに該当でき、sps_triangle_enabled_flagは、パーティショニングモードをSPSからイネーブル(enable)またはディセーブル(disable)するフラグに該当できる。
前記表9を参考すると、現在スライスがP sliceであると、パーティショニングモードを介して予測サンプルを生成できなくなるので、デコーダは、ビットストリームをもうこれ以上デコーディングできない場合が発生できる。このようにSPSの各on/offフラグとマージデータシンタックス(merge data syntax)によって最終予測モードを選択できないからデコーディングが行われない例外的な場合に発生する問題を解決するために、本文書では、デフォルトマージモード(default merge mode)を提案する。デフォルトマージモードは、様々な方法で予め設定(pre-define)されるか、または追加的なシンタックスシグナリングを介して誘導されることができる。
一実施例において、MMVDモード、マージサブブロックモード、CIIPモード及び現在ブロックを二つのパーティションに分けて予測を行うパーティショニングモードが利用可能でない場合に基づいて、現在ブロックにレギュラーマージモードが適用されることができる。すなわち、現在ブロックに対して最終的にマージモードを選択できない場合に、デフォルトマージモードとしてレギュラーマージモードが適用されることができる。
例えば、現在ブロックにマージモードが利用可能であるかどうかを表す一般マージフラグ(general merge flag)に基づいて現在ブロックにマージモードが利用可能であるが、現在ブロックに対して最終的にマージモードを選択できない場合に、デフォルトマージモードとしてレギュラーマージモードが適用されることができる。
このとき、レギュラーマージモードを適用して生成されたマージ候補リストに含まれるマージ候補のうち、一つの候補を指すマージインデックス情報を利用して現在ブロックの予測サンプルを生成できる。例えば、マージインデックス情報に基づいて現在ブロックの動き情報が導き出されることができ、導き出された動き情報に基づいて予測サンプルが生成されることができる。
これによるマージデータシンタックス(merge data syntax)は、下記の表10のとおりでありうる。
前記表10及び表6を参考すると、前記MMVDモードが利用可能でない場合に基づいて、SPSから前記MMVDモードをイネーブル(enable)またはディセーブル(disable)するフラグsps_mmvd_enabled_flagが0であるか、または前記MMVDモードが適用されるかどうかを表す第1フラグ(mmvd_merge_flag[x0][y0])が0でありうる。
また、前記マージサブブロックモードが利用可能でない場合に基づいて、SPSから前記マージサブブロックモードをイネーブルまたはディセーブル(enable/disable)するフラグsps_affine_enabled_flagが0であるか、または前記マージサブブロックモードが適用されるかどうかを表す第2フラグ(merge_subblock_flag[x0][y0])が0でありうる。
また、前記CIIPモードが利用可能でない場合に基づいて、SPSから前記CIIPモードをイネーブル(enable)またはディセーブル(disable)するフラグsps_ciip_enabled_flagが0であるか、または前記CIIPモードが適用されるかどうかを表す第3フラグ(ciip_flag[x0][y0])が0でありうる。
また、前記パーティショニングモードが利用可能でない場合に基づいて、SPSから前記パーティショニングモードをイネーブル(enable)またはディセーブル(disable)するフラグsps_triangle_enabled_flagが0であるか、または前記パーティショニングモードが適用されるかどうかを表す第4フラグ(MergeTriangleFlag[x0][y0])が0でありうる。
一方、例えば現在ブロックにマージモードが利用可能であるかどうかを表す一般マージフラグ(general merge flag)の値が1の場合に基づいて、前記MMVDモードが適用されるかどうかを表す第1フラグ(mmvd_merge_flag[x0][y0])、前記マージサブブロックモードが適用されるかどうかを表す第2フラグ(merge_subblock_flag[x0][y0])及び前記CIIPモードが適用されるかどうかを表す第3フラグ(ciip_flag[x0][y0])の値がシグナリングされることができる。
また、例えば、前記フラグsps_triangle_enabled_flagに基づいて前記パーティショニングモードがディセーブル(disable)される場合に基づいて、前記パーティショニングモードが適用されるかどうかを表す第4フラグ(MergeTriangleFlag[x0][y0])は0に設定されることができる。
他の一実施例において、レギュラーマージモード、MMVDモード、マージサブブロックモード、CIIPモード及び現在ブロックを二つのパーティションに分けて予測を行うパーティショニングモードが利用可能でない場合に基づいて、現在ブロックにレギュラーマージモードが適用されることができる。すなわち、現在ブロックに対して最終的にマージモードを選択できない場合に、デフォルトマージモードとしてレギュラーマージモードが適用されることができる。
例えば、現在ブロックにマージモードが利用可能であるかどうかを表す一般マージフラグ(general merge flag)に基づいて現在ブロックにマージモードが利用可能であるが、現在ブロックに対して最終的にマージモードを選択できない場合に、デフォルトマージモードとしてレギュラーマージモードが適用されることができる。
例えば、前記MMVDモードが利用可能でない場合に基づいて、SPSから前記MMVDモードをイネーブル(enable)またはディセーブル(disable)するフラグsps_mmvd_enabled_flagが0であるか、または前記MMVDモードが適用されるかどうかを表す第1フラグ(mmvd_merge_flag[x0][y0])が0でありうる。
また、前記マージサブブロックモードが利用可能でない場合に基づいて、SPSから前記マージサブブロックモードをイネーブルまたはディセーブル(enable/disable)するフラグsps_affine_enabled_flagが0であるか、または前記マージサブブロックモードが適用されるかどうかを表す第2フラグ(merge_subblock_flag[x0][y0])が0でありうる。
また、前記CIIPモードが利用可能でない場合に基づいて、SPSから前記CIIPモードをイネーブル(enable)またはディセーブル(disable)するフラグsps_ciip_enabled_flagが0であるか、または前記CIIPモードが適用されるかどうかを表す第3フラグ(ciip_flag[x0][y0])が0でありうる。
また、前記パーティショニングモードが利用可能でない場合に基づいて、SPSから前記パーティショニングモードをイネーブル(enable)またはディセーブル(disable)するフラグsps_triangle_enabled_flagが0であるか、または前記パーティショニングモードが適用されるかどうかを表す第4フラグ(MergeTriangleFlag[x0][y0])が0でありうる。
また、前記レギュラーマージモードが利用可能でない場合に基づいて、前記レギュラーマージモードが適用されるかどうかを表す第5フラグ(regular_merge_flag[x0][y0])が0でありうる。すなわち、第5フラグの値が0の場合にも、MMVDモード、マージサブブロックモード、CIIPモード及びパーティショニングモードが利用可能でない場合に基づいて現在ブロックにレギュラーマージモードが適用されることができる。
このとき、現在ブロックのマージ候補リストに含まれるマージ候補のうち、第1番目の候補に基づいて現在ブロックの動き情報が導き出されることができ、導き出された動き情報に基づいて予測サンプルが生成されることができる。
さらに他の一実施例において、レギュラーマージモード、MMVDモード、マージサブブロックモード、CIIPモード及び現在ブロックを二つのパーティションに分けて予測を行うパーティショニングモードが利用可能でない場合に基づいて、現在ブロックにレギュラーマージモードが適用されることができる。すなわち、現在ブロックに対して最終的にマージモードを選択できない場合に、デフォルトマージモードとしてレギュラーマージモードが適用されることができる。
例えば、現在ブロックにマージモードが利用可能であるかどうかを表す一般マージフラグ(general merge flag)に基づいて現在ブロックにマージモードが利用可能であるが、現在ブロックに対して最終的にマージモードを選択できない場合に、デフォルトマージモードとしてレギュラーマージモードが適用されることができる。
例えば、前記MMVDモードが利用可能でない場合に基づいて、SPSから前記MMVDモードをイネーブル(enable)またはディセーブル(disable)するフラグsps_mmvd_enabled_flagが0であるか、または前記MMVDモードが適用されるかどうかを表す第1フラグ(mmvd_merge_flag[x0][y0])が0でありうる。
また、前記マージサブブロックモードが利用可能でない場合に基づいて、SPSから前記マージサブブロックモードをイネーブルまたはディセーブル(enable/disable)するフラグsps_affine_enabled_flagが0であるか、または前記マージサブブロックモードが適用されるかどうかを表す第2フラグ(merge_subblock_flag[x0][y0])が0でありうる。
また、前記CIIPモードが利用可能でない場合に基づいて、SPSから前記CIIPモードをイネーブル(enable)またはディセーブル(disable)するフラグsps_ciip_enabled_flagが0であるか、または前記CIIPモードが適用されるかどうかを表す第3フラグ(ciip_flag[x0][y0])が0でありうる。
また、前記パーティショニングモードが利用可能でない場合に基づいて、SPSから前記パーティショニングモードをイネーブル(enable)またはディセーブル(disable)するフラグsps_triangle_enabled_flagが0であるか、または前記パーティショニングモードが適用されるかどうかを表す第4フラグ(MergeTriangleFlag[x0][y0])が0でありうる。
また、前記レギュラーマージモードが利用可能でない場合に基づいて、前記レギュラーマージモードが適用されるかどうかを表す第5フラグ(regular_merge_flag[x0][y0])が0でありうる。すなわち、第5フラグの値が0の場合にも、MMVDモード、マージサブブロックモード、CIIPモード及びパーティショニングモードが利用可能でない場合に基づいて、現在ブロックにレギュラーマージモードが適用されることができる。
このとき、(0,0)動きベクトルを現在ブロックの動き情報として導き出すことができ、(0,0)動き情報に基づいて現在ブロックの予測サンプルが生成されることができる。(0,0)動きベクトルは、L0参照リスト(reference list)の第0番目の参照ピクチャを参照して予測を行うことができる。しかしながら、L0参照リストの第0番目の参照ピクチャ(RefPicList[0][0])が存在しない場合、L1参照リストの第0番目の参照ピクチャ(RefPicList[1][0])を参照して予測を行うことができる。
図17及び18は、本文書の実施例(ら)によるビデオ/映像エンコーディング方法及び関連コンポーネントの一例を概略的に示す。
図17において開示された方法は、図2または図18において開示されたエンコーディング装置によって行われることができる。具体的に例えば、図17のS1700ないしS1710は、図18の前記エンコーディング装置200の予測部220によって行われることができ、図17のS1720は、図18の前記エンコーディング装置200のレジデュア処理部230によって行われることができる。図17のS1730は、図18の前記エンコーディング装置200のエントロピーエンコーディング部240によって行われることができる。図17において開示された方法は、本文書において上述した実施例を含むことができる。
図17に示すように、エンコーディング装置は、現在ブロックのインター予測モードを決定し、インター予測モードを表すインター予測モード情報を生成できる(S1700)。例えば、エンコーディング装置は、現在ブロックに適用するインター予測モードとしてレギュラーマージモード(regular merge mode)、スキップモード、MVP(motion vector prediction)モード、MMVDモード(merge mode with motion vector difference)、マージサブブロックモード(merge subblock mode)、CIIPモード(combined inter-picture merge and intra-picture prediction mode)及び現在ブロックを二つのパーティションに分けて予測を行うパーティショニングモード(partitioning mode)等、多様なモードのうち、少なくとも一つを決定でき、これを表すインター予測モード情報を生成できる。
エンコーディング装置は、決定された予測モードに基づいて現在ブロックの予測サンプルを生成できる(S1710)。例えば、エンコーディング装置は、決定されたインター予測モードに応じてマージ候補リストを生成できる。
例えば、前記マージ候補リスト内の候補の数が最大候補数になるまでマージ候補リストに候補が挿入されることができる。ここで、候補は、現在ブロックの動き情報(または動きベクトル)を導き出すための候補または候補ブロックを表すことができる。例えば、候補ブロックは、現在ブロックの隣接ブロックに対する探索を介して導き出されることができる。例えば、隣接ブロックは、現在ブロックの空間的隣接ブロック及び/または時間的隣接ブロックを含むことができ、空間的隣接ブロックが優先的に探索されて(空間的マージ)候補が導き出されることができ、以後時間的隣接ブロックが探索されて(時間的マージ)候補として導き出されることができ、導き出された候補は、前記マージ候補リストに挿入されることができる。例えば、前記マージ候補リストは、前記候補を挿入した後にも、前記マージ候補リスト内の候補の数が最大候補数より少ない場合、追加候補を挿入できる。例えば、追加候補は、history based merge candidate(s)、pair-wise average merge candidate(s)、ATMVP、combined bi-predictiveマージ候補(現在スライス/タイルグループのスライス/タイルグループタイプがBタイプの場合)及び/または零ベクトルマージ候補のうち、少なくとも一つを含むことができる。
上述したように、マージ候補リストは、空間的マージ候補、時間的マージ候補、ペアワイズ候補または零ベクトル候補のうち、少なくとも一部を含むことができ、現在ブロックのインター予測のために、このような候補のうち、一つの候補を選択できる。
例えば、前記選択情報は、前記マージ候補リストに含まれるマージ候補のうち、一つの候補を指すインデックス情報を含むことができる。例えば、前記選択情報は、マージインデックス情報と呼ばれることができる。
例えば、エンコーディング装置は、マージインデックス情報が指す候補に基づいて現在ブロックの予測サンプルを生成できる。または、例えば、エンコーディング装置は、マージインデックス情報が指す候補に基づいて動き情報を導き出すことができ、動き情報に基づいて現在ブロックの予測サンプルを生成できる。
一方、一実施例によれば、インター予測モード情報は、前記現在ブロックにマージモードが利用可能であるかどうかを表す一般マージフラグ(general merge flag)を含み、前記一般マージフラグに基づいて前記現在ブロックにマージモードが利用可能である。
このとき、MMVDモード(merge mode with motion vector difference)、マージサブブロックモード(merge subblock mode)、CIIPモード(combined inter-picture merge and intra-picture prediction mode)及び前記現在ブロックを二つのパーティションに分けて予測を行うパーティショニングモード(partitioning mode)が利用可能でない場合に基づいて、レギュラーマージモード(regular merge mode)が適用されることができる。
例えば、インター予測モード情報は、前記レギュラーマージモードを適用して生成されたマージ候補リストに含まれるマージ候補のうち、一つの候補を指すマージインデックス情報を含み、前記マージインデックス情報を利用して前記予測サンプルを生成できる。すなわち、マージインデックス情報が指す候補に基づいて現在ブロックの動き情報が導き出されることができ、導き出された動き情報に基づいて現在ブロックの予測サンプルが生成されることができる。
例えば、インター予測モード情報は、前記MMVDモードが適用されるかどうかを表す第1フラグ、前記マージサブブロックモードが適用されるかどうかを表す第2フラグ及び前記CIIPモードが適用されるかどうかを表す第3フラグを含むことができる。
例えば、前記MMVDモード、前記マージサブブロックモード、前記CIIPモード及び前記パーティショニングモードが利用可能でない場合に基づいて、前記第1フラグ、前記第2フラグ及び前記第3フラグの値は全部0でありうる。
また、例えば、前記一般マージフラグの値が1の場合に基づいて前記現在ブロックに前記マージモードが利用可能であり、前記一般マージフラグの値が1の場合に基づいて前記第1フラグ、前記第2フラグ及び前記第3フラグの値がシグナリングされることができる。
例えば、前記パーティショニングモードをイネーブルまたはディセーブル(enable/disable)するフラグは、前記映像情報のSPS(Sequence Parameter Set)に含まれ、前記パーティショニングモードがディセーブル(disable)される場合に基づいて、前記パーティショニングモードが適用されるかどうかを表す第4フラグの値は0に設定されることができる。
一方、インター予測モード情報は、前記レギュラーマージモードが適用されるかどうかを表す第5フラグをさらに含むことができる。前記第5フラグの値が0の場合にも、前記MMVDモード、前記マージサブブロックモード、前記CIIPモード及び前記パーティショニングモードが利用可能でない場合に基づいて、前記現在ブロックにレギュラーマージモードが適用されることができる。
このような場合、前記現在ブロックの動き情報は、前記現在ブロックのマージ候補リストに含まれるマージ候補のうち、第1番目のマージ候補に基づいて導き出されることができる。また、前記第1番目のマージ候補に基づいて導き出した前記現在ブロックの動き情報に基づいて前記予測サンプルを生成できる。
または、このような場合、(0,0)動きベクトルに基づいて前記現在ブロックの動き情報を導き出し、前記(0,0)動きベクトルに基づいて導き出した前記現在ブロックの動き情報に基づいて前記予測サンプルを生成できる。
エンコーディング装置は、現在ブロックに対するレジデュアルサンプルに基づいてレジデュアル情報を生成できる(S1720)。例えば、エンコーディング装置は、前記予測サンプルと原本サンプルに基づいてレジデュアルサンプルを導き出すことができる。例えば、エンコーディング装置は、レジデュアルサンプルの量子化された変換係数を表すレジデュアル情報を生成できる。レジデュアル情報は、指数ゴロム、CAVLC、CABACなどのような多様なエンコーディング方法により生成されることができる。
エンコーディング装置は、インター予測モード情報及びレジデュアル情報を含む映像情報をエンコーディングできる(S1730)。例えば、前記映像情報は、ビデオ情報とも呼ばれることができる。前記映像情報は、本文書の上述した実施例(ら)による多様な情報を含むことができる。例えば、映像情報は、予測関連情報またはレジデュアル関連情報のうち、少なくとも一部を含むことができる。例えば、前記予測関連情報は、前記インター予測モード情報、選択情報及びインター予測タイプ情報のうち、少なくとも一部を含むことができる。例えば、エンコーディング装置は、上述した情報(またはシンタックス要素)全部または一部を含む映像情報をエンコーディングして、ビットストリームまたはエンコーディングされた情報を生成できる。または、ビットストリーム形態で出力できる。また、前記ビットストリームまたはエンコーディングされた情報は、ネットワークまたは格納媒体を介してデコーディング装置に送信されることができる。
または、図17に示していないが、例えば、エンコーディング装置は、前記レジデュアルサンプル及び前記予測サンプルに基づいて復元サンプルが生成されることができる。前記復元サンプルに基づいて復元ブロック及び復元ピクチャが導き出されることができる。または、例えば、エンコーディング装置は、レジデュアル関連情報または予測関連情報を含む映像情報をエンコーディングできる。
例えば、エンコーディング装置は、上述した情報(またはシンタックス要素)全部または一部を含む映像情報をエンコーディングして、ビットストリームまたはエンコーディングされた情報を生成できる。または、ビットストリーム形態で出力できる。また、前記ビットストリームまたはエンコーディングされた情報は、ネットワークまたは格納媒体を介してデコーディング装置に送信されることができる。または、前記ビットストリームまたはエンコーディングされた情報は、コンピュータ読み取り可能な格納媒体に格納されることができ、前記ビットストリームまたは前記エンコーディングされた情報は、上述した映像エンコーディング方法により生成されることができる。
図19及び図20は、本文書の実施例(ら)によるビデオ/映像デコーディング方法及び関連コンポーネントの一例を概略的に示す。
図19において開示された方法は、図3または図20において開示されたデコーディング装置によって行われることができる。具体的に例えば、図19のS1900は、図20において前記デコーディング装置300のエントロピーデコーディング部310によって行われることができ、図19のS1910は、図20において前記デコーディング装置300のレジデュア処理部320によって行われることができる。また、図19のS1920は、図20において前記デコーディング装置300の予測部330によって行われることができ、図19のS1930は、図20において前記デコーディング装置300の加算部340によって行われることができる。図19において開示された方法は、本文書において上述した実施例を含むことができる。
図19に示すように、デコーディング装置は、ビットストリームを介してインター予測モード情報及びレジデュアル情報を含む映像情報を受信することができる(S1900)。例えば、前記映像情報は、ビデオ情報とも呼ばれることができる。前記映像情報は、本文書の上述した実施例(ら)による多様な情報を含むことができる。例えば、映像情報は、予測関連情報またはレジデュアル関連情報のうち、少なくとも一部を含むことができる。
例えば、前記予測関連情報は、インター予測モード情報またはインター予測タイプ情報を含むことができる。例えば、前記インター予測モード情報は、多様なインター予測モードのうち、少なくとも一部を表す情報を含むことができる。例えば、レギュラーマージモード(regular merge mode)、スキップモード、MVP(motion vector prediction)モード、MMVDモード(merge mode with motion vector difference)、マージサブブロックモード(merge subblock mode)、CIIPモード(combined inter-picture merge and intra-picture prediction mode)及び現在ブロックを二つのパーティションに分けて予測を行うパーティショニングモード(partitioning mode)等、多様なモードが使用されることができる。例えば、前記インター予測タイプ情報は、inter_pred_idcシンタックス要素を含むことができる。または、前記インター予測タイプ情報は、L0予測、L1予測または双(bi)予測のうち、いずれか一つを表す情報を含むことができる。
デコーディング装置は、レジデュアル情報に基づいてレジデュアルサンプルを生成できる(S1910)。デコーディング装置は、前記レジデュアル情報に基づいて量子化された変換係数を導き出すことができ、前記変換係数に対する逆変換手順に基づいてレジデュアルサンプルを導き出すことができる。
デコーディング装置は、インター予測モード情報に基づいて決定された予測モードを適用して、現在ブロックの予測サンプルを生成できる(S1510)。例えば、デコーディング装置は、前記インター予測モード情報に基づいて現在ブロックのインター予測モードをレギュラーマージモード(regular merge mode)、スキップモード、MVPモード、MMVDモード、マージサブブロックモード、CIIPモード及び現在ブロックを二つのパーティションに分けて予測を行うパーティショニングモードのうち、決定されたインター予測モードに応じてマージ候補リストを生成できる。
例えば、前記マージ候補リスト内の候補の数が最大候補数になるまでマージ候補リストに候補が挿入されることができる。ここで、候補は、現在ブロックの動き情報(または動きベクトル)を導き出すための候補または候補ブロックを表すことができる。例えば、候補ブロックは、現在ブロックの隣接ブロックに対する探索を介して導き出されることができる。例えば、隣接ブロックは、現在ブロックの空間的隣接ブロック及び/または時間的隣接ブロックを含むことができ、空間的隣接ブロックが優先的に探索されて(空間的マージ)候補が導き出されることができ、以後時間的隣接ブロックが探索されて(時間的マージ)候補として導き出されることができ、導き出された候補は、前記マージ候補リストに挿入されることができる。例えば、前記マージ候補リストは、前記候補を挿入した以後にも前記マージ候補リスト内の候補の数が最大候補数より少ない場合、追加候補を挿入できる。例えば、追加候補は、history based merge candidate(s)、pair-wise average merge candidate(s)、ATMVP、combined bi-predictiveマージ候補(現在スライス/タイルグループのスライス/タイルグループタイプがBタイプの場合)及び/または零ベクトルマージ候補のうち、少なくとも一つを含むことができる。
上述したように、マージ候補リストは、空間的マージ候補、時間的マージ候補、ペアワイズ候補または零ベクトル候補のうち、少なくとも一部を含むことができ、現在ブロックのインター予測のために、このような候補のうち、一つの候補を選択できる。
例えば、前記選択情報は、前記マージ候補リストに含まれるマージ候補のうち、一つの候補を指すインデックス情報を含むことができる。例えば、前記選択情報は、マージインデックス情報とも呼ばれることができる。
例えば、デコーディング装置は、マージインデックス情報が指す候補に基づいて現在ブロックの予測サンプルを生成できる。または、例えば、デコーディング装置は、マージインデックス情報が指す候補に基づいて動き情報を導き出すことができ、動き情報に基づいて現在ブロックの予測サンプルを生成できる。
一方、一実施例によれば、インター予測モード情報は、前記現在ブロックにマージモードが利用可能であるかどうかを表す一般マージフラグ(general merge flag)を含み、前記一般マージフラグに基づいて前記現在ブロックにマージモードが利用可能である。
このとき、MMVDモード(merge mode with motion vector difference)、マージサブブロックモード(merge subblock mode)、CIIPモード(combined inter-picture merge and intra-picture prediction mode)及び前記現在ブロックを二つのパーティションに分けて予測を行うパーティショニングモード(partitioning mode)が利用可能でない場合に基づいて、レギュラーマージモード(regular merge mode)が適用されることができる。
例えば、インター予測モード情報は、前記レギュラーマージモードを適用して生成されたマージ候補リストに含まれるマージ候補のうち、一つの候補を指すマージインデックス情報を含み、前記マージインデックス情報を利用して前記予測サンプルを生成できる。すなわち、マージインデックス情報が指す候補に基づいて現在ブロックの動き情報が導き出されることができ、導き出された動き情報に基づいて現在ブロックの予測サンプルが生成されることができる。
例えば、インター予測モード情報は、前記MMVDモードが適用されるかどうかを表す第1フラグ、前記マージサブブロックモードが適用されるかどうかを表す第2フラグ、及び前記CIIPモードが適用されるかどうかを表す第3フラグを含むことができる。
例えば、前記MMVDモード、前記マージサブブロックモード、前記CIIPモード及び前記パーティショニングモードが利用可能でない場合に基づいて、前記第1フラグ、前記第2フラグ及び前記第3フラグの値は全部0でありうる。
また、例えば、前記一般マージフラグの値が1の場合に基づいて前記現在ブロックに前記マージモードが利用可能であり、前記一般マージフラグの値が1の場合に基づいて前記第1フラグ、前記第2フラグ及び前記第3フラグの値がシグナリングされることができる。
例えば、前記パーティショニングモードをイネーブルまたはディセーブル(enable/disable)するフラグは、前記映像情報のSPS(Sequence Parameter Set)に含まれ、前記パーティショニングモードがディセーブル(disable)される場合に基づいて、前記パーティショニングモードが適用されるかどうかを表す第4フラグの値は0に設定されることができる。
一方、インター予測モード情報は、前記レギュラーマージモードが適用されるかどうかを表す第5フラグをさらに含むことができる。前記第5フラグの値が0の場合にも、前記MMVDモード、前記マージサブブロックモード、前記CIIPモード及び前記パーティショニングモードが利用可能でない場合に基づいて、前記現在ブロックにレギュラーマージモードが適用されることができる。
このような場合、前記現在ブロックの動き情報は、前記現在ブロックのマージ候補リストに含まれるマージ候補のうち、第1番目のマージ候補に基づいて導き出されることができる。また、前記第1番目のマージ候補に基づいて導き出した前記現在ブロックの動き情報に基づいて前記予測サンプルを生成できる。
または、このような場合、(0,0)動きベクトルに基づいて前記現在ブロックの動き情報を導き出し、前記(0,0)動きベクトルに基づいて導き出した前記現在ブロックの動き情報に基づいて前記予測サンプルを生成できる。
デコーディング装置は、予測サンプル及びレジデュアルサンプルに基づいて復元サンプルを生成できる(S1930)。例えば、デコーディング装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて復元サンプルを生成でき、前記復元サンプルに基づいて復元ブロック及び復元ピクチャが導き出されることができる。
例えば、デコーディング装置は、ビットストリームまたはエンコーディングされた情報をデコーディングして前述した情報(または、シンタックス要素)の全部または一部を含む映像情報を取得することができる。また、前記ビットストリームまたはエンコーディングされた情報は、コンピュータ読み取り可能な格納媒体に格納されることができ、前述したデコーディング方法が実行されるようにすることができる。
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、該当実施例は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または、流れ図の一つまたはそれ以上のステップが本文書の実施例の範囲に影響を及ぼさずに削除可能であることを理解することができる。
前述した本文書の実施例による方法は、ソフトウェア形態で具現されることができ、本文書によるエンコーディング装置及び/またはデコーディング装置は、例えば、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、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームが、コンピュータが読み取り可能な記録媒体に格納され、または、有無線通信ネットワークを介して送信されることができる。
また、本文書の実施例(ら)は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施例(ら)によりコンピュータで実行されることができる。前記プログラムコードは、コンピュータ
図21は、本文書において開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す。
図21に示すように、本文書の実施例が適用されるコンテンツストリーミングシステムは、大きくエンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置及びマルチメディア入力装置を含むことができる。
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略されることができる。
前記ビットストリームは、本文書の実施例に適用されるエンコーディング方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
前記ストリーミングサーバは、メディア格納所及び/またはエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間格納することができる。
前記ユーザ装置の例として、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジがある。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせて装置で具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせて方法で具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて装置で具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて方法で具現されることができる。