以下、添付図面を参照して、本開示の実施例について、本開示の属する技術分野における通常の知識を有する者が容易に実施し得るように詳細に説明する。しかし、本開示は、様々な異なる形態で実現でき、ここで説明する実施例に限定されない。
本開示の実施例を説明するにあたり、公知の構成又は機能についての具体的な説明が本開示の要旨を不明確にするおそれがあると判断される場合には、それについての詳細な説明は省略する。そして、図面において、本開示についての説明と関係ない部分は省略し、同様の部分には同様の図面符号を付した。
本開示において、ある構成要素が他の構成要素と「連結」、「結合」又は「接続」されているとするとき、これは、直接的な連結関係だけでなく、それらの間に別の構成要素が存在する間接的な連結関係も含むことができる。また、ある構成要素が他の構成要素を「含む」又は「有する」とするとき、これは、特に反対される記載がない限り、別の構成要素を排除するのではなく、別の構成要素をさらに含むことができることを意味する。
本開示において、「第1」、「第2」などの用語は、一つの構成要素を他の構成要素から区別する目的のみで使用され、特に言及されない限り、構成要素間の順序又は重要度などを限定しない。したがって、本開示の範囲内において、一実施例の第1構成要素は、他の実施例で第2構成要素と呼んでもよく、これと同様に、一実施例の第2構成要素を、他の実施例で第1構成要素と呼んでもよい。
本開示において、互いに区別される構成要素は、それぞれの特徴を明確に説明するためのものであり、構成要素が必ずしも分離されることを意味するものではない。つまり、複数の構成要素が統合されて一つのハードウェア又はソフトウェア単位で構成されてもよく、一つの構成要素が分散されて複数のハードウェア又はソフトウェア単位で構成されてもよい。よって、別に言及しなくても、このように統合された又は分散された実施例も本開示の範囲に含まれる。
本開示において、さまざまな実施例で説明する構成要素が必ず必要不可欠な構成要素を意味するものではなく、一部は選択的な構成要素であり得る。したがって、一実施例で説明する構成要素の部分集合で構成される実施例も本開示の範囲に含まれる。また、様々な実施例で説明する構成要素にさらに他の構成要素を含む実施例も、本開示の範囲に含まれる。
本開示は、画像の符号化及び復号化に関するものであって、本開示で使用される用語は、本開示で新たに定義されない限り、本開示の属する技術分野における通常の意味を持つことができる。
本開示において、「ピクチャ(picture)」は、一般的に、特定の時間帯のいずれか一つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、ピクチャの一部を構成する符号化単位であって、一つのピクチャは、一つ以上のスライス/タイルで構成できる。また、スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。
本開示において、「ピクセル(pixel)」又は「ペル(pel)」は、一つのピクチャ(又は画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用できる。サンプルは、一般的に、ピクセル又はピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
本開示において、「ユニット(unit)」は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定の領域及び当該領域に関連する情報のうちの少なくとも一つを含むことができる。ユニットは、場合に応じて、「サンプルアレイ」、「ブロック(block)」又は「領域(area)」などの用語と混用して使用できる。一般な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(又はサンプルアレイ)又は変換係数(transform coefficient)のセット(又はアレイ)を含むことができる。
本開示において、「現在ブロック」は、「現在コーディングブロック」、「現在コーディングユニット」、「符号化対象ブロック」、「復号化対象ブロック」又は「処理対象ブロック」のうちのいずれか一つを意味することができる。予測が行われる場合、「現在ブロック」は、「現在予測ブロック」又は「予測対象ブロック」を意味することができる。変換(逆変換)/量子化(逆量子化)が行われる場合、「現在ブロック」は「現在変換ブロック」又は「変換対象ブロック」を意味することができる。フィルタリングが行われる場合、「現在ブロック」は「フィルタリング対象ブロック」を意味することができる。
また、本開示において、「現在ブロック」は、クロマブロックという明示的な記載がない限り、「現在ブロックのルマブロック」を意味することができる。「現在ブロックのクロマブロック」は、明示的に「クロマブロック」又は「現在クロマブロック」のようにクロマブロックという明示的な記載を含んで表現できる。
本開示において、「/」と「、」は「及び/又は」と解釈されることができる。例えば、「A/B」と「A、B」は「A及び/又はB」と解釈されることができる。また、「A/B/C」と「A、B、C」は、「A、B及び/又はCのうちの少なくとも一つ」を意味することができる。
本開示において、「又は」は、「及び/又は」と解釈されることができる。例えば、「A又はB」は、1)「A」のみを意味するか、2)「B」のみを意味するか、3)「A及びB」を意味することができる。又は、本開示において、「又は」は、「追加的に又は代替的に(additionally or alternatively)」を意味することができる。
ビデオコーディングシステムの概要
図1は本開示によるビデオコーディングシステムを示す図である。
一実施例によるビデオコーディングシステムは、符号化装置10及び復号化装置20を含むことができる。符号化装置10は、符号化されたビデオ(video)及び/又は画像(image)情報又はデータをファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して復号化装置20へ伝達することができる。
一実施例による符号化装置10は、ビデオソース生成部11、符号化部12及び伝送部13を含むことができる。一実施例による復号化装置20は、受信部21、復号化部22及びレンダリング部23を含むことができる。前記符号化部12は、ビデオ/画像符号化部と呼ばれることができ、前記復号化部22は、ビデオ/画像復号化部と呼ばれることができる。伝送部13は、符号化部12に含まれることができる。受信部21は、復号化部22に含まれることができる。レンダリング部23は、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイス又は外部コンポーネントとして構成されることもできる。
ビデオソース生成部11は、ビデオ/画像のキャプチャ、合成又は生成過程などを介してビデオ/画像を取得することができる。ビデオソース生成部11は、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して、仮想のビデオ/画像が生成されることができ、この場合、ビデオ/画像キャプチャ過程は、関連データが生成される過程に置き換えられることができる。
符号化部12は、入力ビデオ/画像を符号化することができる。符号化部12は、圧縮及び符号化効率のために、予測、変換、量子化などの一連の手順を行うことができる。符号化部12は、符号化されたデータ(符号化されたビデオ/画像情報)をビットストリーム(bitstream)形式で出力することができる。
伝送部13は、ビットストリーム形式で出力された、符号化されたビデオ/画像情報又はデータを、ファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して復号化装置20の受信部21に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray、HDD、SSDなどのさまざまな記憶媒体を含むことができる。伝送部13は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介して伝送するためのエレメントを含むことができる。受信部21は、前記記憶媒体又はネットワークから前記ビットストリームを抽出/受信して復号化部22に伝達することができる。
復号化部22は、符号化部12の動作に対応する逆量子化、逆変換、予測などの一連の手順を行ってビデオ/画像を復号化することができる。
レンダリング部23は、復号化されたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介して表示されることができる。
画像符号化装置の概要
図2は本開示による実施例が適用できる画像符号化装置を概略的に示す図である。
図2に示されているように、画像符号化装置100は、画像分割部110、減算部115、変換部120、量子化部130、逆量子化部140、逆変換部150、加算部155、フィルタリング部160、メモリ170、インター予測部180、イントラ予測部185及びエントロピー符号化部190を含むことができる。インター予測部180及びイントラ予測部185は、合わせて「予測部」と呼ばれることができる。変換部120、量子化部130、逆量子化部140及び逆変換部150は、レジデュアル(residual)処理部に含まれることができる。レジデュアル処理部は減算部115をさらに含むこともできる。
画像符号化装置100を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、エンコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPB(decoded picture buffer)を含むことができ、デジタル記憶媒体によって実現できる。
画像分割部110は、画像符号化装置100に入力された入力画像(又は、ピクチャ、フレーム)を一つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)又は最大コーディングユニット(largest coding unit、LCU)をQT/BT/TT(Quad-tree/binary-tree/ternary-tree)構造によって再帰的に(recursively)分割することにより取得されることができる。例えば、一つのコーディングニットは、四分木構造、二分木構造及び/又は三分木構造に基づいて、下位(deeper)デプスの複数のコーディングユニットに分割されることができる。コーディングユニットの分割のために、四分木構造が先に適用され、二分木構造及び/又は三分木構造が後で適用されることができる。それ以上分割されない最終コーディングユニットを基に、本開示によるコーディング手順が行われることができる。最大コーディングユニットが最終コーディングユニットとして使用されることができ、最大コーディングユニットを分割して取得した下位デプスのコーディングユニットが最終コーディングユニットとして使用されることもできる。ここで、コーディング手順とは、後述する予測、変換及び/又は復元などの手順を含むことができる。他の例として、前記コーディング手順の処理ユニットは、予測ユニット(PU:Prediction Unit)又は変換ユニット(TU:Transform Unit)であることができる。前記予測ユニット及び前記変換ユニットは、それぞれ前記最終コーディングユニットから分割又はパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であることができ、前記変換ユニットは、変換係数を誘導する単位、及び/又は変換係数からレジデュアル信号(residual signal)を誘導する単位であることができる。
予測部(インター予測部180又はイントラ予測部185)は、処理対象ブロック(現在ブロック)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロック又はCU単位でイントラ予測が適用されるか、或いはインター予測が適用されるかを決定することができる。予測部は、現在ブロックの予測に関するさまざまな情報を生成してエントロピー符号化部190に伝達することができる。予測に関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
イントラ予測部185は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。参照される前記サンプルは、イントラ予測モード及び/又はイントラ予測技法に従って、前記現在ブロックの周辺(neighbor)に位置することもでき、或いは離れて位置することもできる。イントラ予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びPlanarモードを含むことができる。方向性モードは、予測方向の細かい程度に応じて、例えば33個の方向性予測モード又は65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定に基づいてそれ以上又はそれ以下の個数の方向性予測モードが使用できる。イントラ予測部185は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部180は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と、参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。前記参照ブロックを含む参照ピクチャと、前記時間周辺ブロックを含む参照ピクチャとは、同一でもよく、互いに異なってもよい。前記時間周辺ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名前で呼ばれることができる。前記時間周辺ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)と呼ばれることができる。例えば、インター予測部180は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいて、インター予測が行われることができ、例えばスキップモードとマージモードの場合に、インター予測部180は、周辺ブロックの動き情報を現在ブロックの動き情報として用いることができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が伝送されないことができる。動き情報予測(motion vector prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)及び動きベクトル予測子に対するインジケータ(indicator)を符号化することにより、現在ブロックの動きベクトルをシグナリングすることができる。動きベクトル差分は、現在ブロックの動きベクトルと動きベクトル予測子との差を意味することができる。
予測部は、後述する様々な予測方法及び/又は予測技法に基づいて予測信号を生成することができる。例えば、予測部は、現在ブロックの予測のために、イントラ予測又はインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用することができる。現在ブロックの予測のためにイントラ予測とインター予測を同時に適用する予測方法は、CIIP(combined inter and intra prediction)と呼ばれることができる。また、予測部は、現在ブロックの予測のためにイントラブロックコピー(intra block copy、IBC)を行うこともできる。イントラブロックコピーは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ画像/動画コーディングのために使用できる。IBCは、現在ブロックから所定の距離だけ離れた位置の現在ピクチャ内の既に復元された参照ブロックを用いて現在ブロックを予測する方法である。IBCが適用される場合、現在ピクチャ内の参照ブロックの位置は前記所定の距離に該当するベクトル(ブロックベクトル)として符号化されることができる。IBCは、基本的に、現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出するという点において、インター予測と同様に行われることができる。すなわち、IBCは、本開示で説明されるインター予測技法のうちの少なくとも一つを用いることができる。
予測部によって生成された予測信号は、復元信号を生成するために用いられるか、或いはレジデュアル信号を生成するために用いられることができる。減算部115は、入力画像信号(原本ブロック、原本サンプルアレイ)から、予測部から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して、レジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができる。生成されたレジデュアル信号は、変換部120に伝送されることができる。
変換部120は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)のうちの少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとするとき、このグラフから得られた変換を意味する。CNTは、以前に復元されたすべてのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。変換過程は、正方形の同じサイズを有するピクセルブロックに適用されることもでき、正方形ではない、可変サイズのブロックにも適用されることもできる。
量子化部130は、変換係数を量子化してエントロピー符号化部190に伝送することができる。エントロピー符号化部190は、量子化された信号(量子化された変換係数に関する情報)を符号化してビットストリーム形式で出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部130は、係数スキャン順序(scan order)に基づいて、ブロック形式の量子化された変換係数を1次元ベクトル形式で再整列することができ、前記1次元ベクトル形式の量子化された変換係数に基づいて、前記量子化された変換係数に関する情報を生成することもできる。
エントロピー符号化部190は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などの様々な符号化方法を行うことができる。エントロピー符号化部190は、量子化された変換係数の他に、ビデオ/画像復元に必要な情報(例えば、シンタックス要素(syntax elementsの値など)を一緒に又は別々に符号化することもできる。符号化された情報(例えば、符号化されたビデオ/画像情報)は、ビットストリーム形式でNAL(network abstraction layer)ユニット単位で伝送又は保存されることができる。前記ビデオ/画像情報は、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。本開示で言及されたシグナリング情報、伝送される情報及び/又はシンタックス要素は、上述した符号化手順を介して符号化されて前記ビットストリームに含まれることができる。
前記ビットストリームは、ネットワークを介して伝送されることができ、又はデジタル記憶媒体に保存されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray、HDD、SSDなどのさまざまな記憶媒体を含むことができる。エントロピー符号化部190から出力された信号を伝送する伝送部(図示せず)及び/又は保存する保存部(図示せず)が画像符号化装置100の内/外部要素として備えられることができ、又は伝送部はエントロピー符号化部190の構成要素として備えられることもできる。
量子化部130から出力された、量子化された変換係数は、レジデュアル信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部140及び逆変換部150を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロック又はレジデュアルサンプル)を復元することができる。
加算部155は、復元されたレジデュアル信号をインター予測部180又はイントラ予測部185から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部155は、復元部又は復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
フィルタリング部160は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ170、具体的にはメモリ170のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、双方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部160は、各フィルタリング方法についての説明で後述するようにフィルタリングに関する様々な情報を生成してエントロピー符号化部190に伝達することができる。フィルタリングに関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
メモリ170に伝送された、修正された復元ピクチャは、インター予測部180で参照ピクチャとして使用されることができる。画像符号化装置100は、これを介してインター予測が適用される場合、画像符号化装置100と画像復号化装置での予測ミスマッチを回避することができ、符号化効率も向上させることができる。
メモリ170内のDPBは、インター予測部180での参照ピクチャとして使用するために、修正された復元ピクチャを保存することができる。メモリ170は、現在ピクチャ内の動き情報が導出された(又は符号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内ブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部180に伝達されることができる。メモリ170は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部185に伝達することができる。
画像復号化装置の概要
図3は本開示による実施例が適用できる画像復号化装置を概略的に示す図である。
図3に示されているように、画像復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265を含んで構成できる。インター予測部260及びイントラ予測部265を合わせて「予測部」と呼ばれることができる。逆量子化部220、逆変換部230はレジデュアル処理部に含まれることができる。
画像復号化装置200を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、デコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPBを含むことができ、デジタル記憶媒体によって実現できる。
ビデオ/画像情報を含むビットストリームを受信した画像復号化装置200は、図1の画像符号化装置100で行われたプロセスに対応するプロセスを実行して画像を復元することができる。例えば、画像復号化装置200は、画像符号化装置で適用された処理ユニットを用いて復号化を行うことができる。したがって、復号化の処理ユニットは、例えばコーディングユニットであることができる。コーディングユニットは、コーディングツリーユニット又は最大コーディングユニットを分割して取得できる。そして、画像復号化装置200を介して復号化及び出力された復元画像信号は、再生装置(図示せず)を介して再生できる。
画像復号化装置200は、図2の画像符号化装置から出力された信号をビットストリーム形式で受信することができる。受信された信号は、エントロピー復号化部210を介して復号化できる。例えば、エントロピー復号化部210は、前記ビットストリームをパーシングして画像復元(又はピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出することができる。前記ビデオ/画像情報は、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。画像復号化装置は、画像を復号化するために、前記パラメータセットに関する情報及び/又は前記一般制限情報をさらに用いることができる。本開示で言及されたシグナリング情報、受信される情報及び/又はシンタックス要素は、前記復号化手順を介して復号化されることにより、前記ビットストリームから取得されることができる。例えば、エントロピー復号化部210は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内の情報を復号化し、画像復元に必要なシンタックス要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳細には、CABACエントロピー復号化方法は、ビットストリームから各シンタックス要素に該当するビン(bin)を受信し、復号化対象シンタックス要素情報と周辺ブロック及び復号化対象ブロックの復号化情報、或いは以前ステップで復号化されたシンボル/ビンの情報を用いてコンテキスト(context)モデルを決定し、決定されたコンテキストモデルに基づいてビン(bin)の発生確率を予測してビンの算術復号化(arithmetic decoding)を行うことにより、各シンタックス要素の値に該当するシンボルを生成することができる。この時、CABACエントロピー復号化方法は、コンテキストモデルの決定後、次のシンボル/ビンのコンテキストモデルのために、復号化されたシンボル/ビンの情報を用いてコンテキストモデルを更新することができる。エントロピー復号化部210で復号化された情報のうち、予測に関する情報は、予測部(インター予測部260及びイントラ予測部265)に提供され、エントロピー復号化部210でエントロピー復号化が行われたレジデュアル値、すなわち量子化された変換係数及び関連パラメータ情報は、逆量子化部220に入力されることができる。また、エントロピー復号化部210で復号化された情報のうち、フィルタリングに関する情報は、フィルタリング部240に提供されることができる。一方、画像符号化装置から出力された信号を受信する受信部(図示せず)が画像復号化装置200の内/外部要素としてさらに備えられることができ、又は受信部はエントロピー復号化部210の構成要素として備えられることもできる。
一方、本開示による画像復号化装置は、ビデオ/画像/ピクチャ復号化装置と呼ばれることができる。前記画像復号化装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及び/又はサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)を含むこともできる。前記情報デコーダは、エントロピー復号化部210を含むことができ、前記サンプルデコーダは、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265のうちの少なくとも一つを含むことができる。
逆量子化部220では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部220は、量子化された変換係数を2次元のブロック形式で再整列することができる。この場合、前記再整列は、画像符号化装置で行われた係数スキャン順序に基づいて行われることができる。逆量子化部220は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて、量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
逆変換部230では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得することができる。
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピー復号化部210から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか或いはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モード(予測技法)を決定することができる。
予測部が後述の様々な予測方法(技法)に基づいて予測信号を生成することができるのは、画像符号化装置100の予測部についての説明で述べたのと同様である。
イントラ予測部265は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。イントラ予測部185についての説明は、イントラ予測部265に対しても同様に適用されることができる。
インター予測部260は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。例えば、インター予測部260は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出することができる。様々な予測モード(技法)に基づいてインター予測が行われることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモード(技法)を指示する情報を含むことができる。
加算部235は、取得されたレジデュアル信号を予測部(インター予測部260及び/又はイントラ予測部265を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部155についての説明は、加算部235に対しても同様に適用されることができる。加算部235は、復元部又は復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
フィルタリング部240は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部240は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ250、具体的にはメモリ250のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、双方向フィルタ(bilateral filter)などを含むことができる。
メモリ250のDPBに保存された(修正された)復元ピクチャは、インター予測部260で参照ピクチャとして使用されることができる。メモリ250は、現在ピクチャ内の動き情報が導出された(又は復号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ250は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部265に伝達することができる。
本明細書において、画像符号化装置100のフィルタリング部160、インター予測部180及びイントラ予測部185で説明された実施例は、それぞれ画像復号化装置200のフィルタリング部240、インター予測部260及びイントラ予測部265にも、同様に又は対応するように適用されることができる。
画像分割の概要
本開示によるビデオ/画像コーディング方法は、次の画像分割構造に基づいて行われることができる。具体的には、後述する予測、レジデュアル処理((逆)変換、(逆)量子化など)、シンタックス要素コーティング、フィルタリングなどの手順は、前記画像分割構造に基づいて導出されたCTU、CU(及び/又はTU、PU)に基づいて行われることができる。画像はブロック単位で分割されることができ、ブロック分割手順は上述した符号化装置の画像分割部110で行われることができる。分割関連情報は、エントロピー符号化部190で符号化されてビットストリーム形式で復号化装置に伝達できる。復号化装置のエントロピー復号化部210は、前記ビットストリームから取得した前記分割関連情報に基づいて、現在ピクチャのブロック分割構造を導出し、これに基づいて画像復号化のための一連の手順(例えば、予測、レジデュアル処理、ブロック/ピクチャ復元、インループフィルタリングなど)を行うことができる。
ピクチャは、コーティングツリーユニット(coding tree units、CTUs)のシーケンスに分割されることができる。図4はピクチャがCTUに分割される例を示す。CTUはコーティングツリーブロック(CTB)に対応することができる。或いは、CTUはルマサンプルのコーティングツリーブロックと、対応するクロマサンプルの二つのコーティングツリーブロックを含むことができる。例えば、三つのサンプルアレイを含むピクチャに対して、CTUは、ルマサンプルのN×Nブロックとクロマサンプルの二つの対応ブロックを含むことができる。
CTU分割の概要
前述したように、コーディングユニットは、コーディングツリーユニット(CTU)又は最大コーディングユニット(LCU)をQT/BT/TT(Quad-tree/binary-tree/ternary-tree)構造によって再帰的に分割することにより取得できる。例えば、CTUは、まず、四分木構造に分割されることができる。その後、四分木構造のリーフノードは、マルチタイプツリー構造によってさらに分割されることができる。
四分木による分割は、現在CU(又はCTU)を4等分する分割を意味する。四分木による分割によって、現在CUは、同じ幅と同じ高さを有する4つのCUに分割されることができる。現在CUがそれ以上四分木構造に分割されない場合、現在CUは、四分木構造のリーフノードに該当する。四分木構造のリーフノードに該当するCUは、それ以上分割されず、前述した最終コーディングユニットとして使用できる。又は、四分木構造のリーフノードに該当するCUは、マルチタイプツリー構造によってさらに分割されることができる。
図5はマルチタイプツリー構造によるブロックの分割タイプを示す図である。マルチタイプツリー構造による分割は、二分木構造による2つの分割と三分木構造による2つの分割を含むことができる。
二分木構造による2つの分割は、垂直バイナリ分割(vertical binary splitting、SPLIT_BT_VER)と水平バイナリ分割(horizontal binary splitting、SPLIT_BT_HOR)を含むことができる。垂直バイナリ分割(SPLIT_BT_VER)は、現在CUを垂直方向に二等分する分割を意味する。図4に示されているように、垂直バイナリ分割によって、現在CUの高さと同じ高さ及び現在CUの幅の半分の幅を有する2つのCUが生成されることができる。水平バイナリ分割(SPLIT_BT_HOR)は、現在CUを水平方向に二等分する分割を意味する。図5に示されているように、水平バイナリ分割によって、現在CUの高さの半分の高さをもって現在CUの幅と同じ幅を有する2つのCUが生成されることができる。
三分木構造による2つの分割は、垂直ターナリ分割(vertical ternary splitting、SPLIT_TT_VER)と水平ターナリ分割(horizontal ternary splitting、SPLIT_TT_HOR)を含むことができる。垂直ターナリ分割(SPLIT_TT_VER)は、現在CUを垂直方向に1:2:1の割合で分割する。図5に示されているように、垂直ターナリ分割によって、現在CUの高さと同じ高さ及び現在CUの幅の1/4の幅を有する2つのCUと、現在CUの高さと同じ高さ及び現在CUの幅の半分の幅を有するCUが生成されることができる。水平ターナリ分割SPLIT_TT_HORは、現在CUを水平方向に1:2:1の割合で分割する。図4に示されているように、水平ターナリ分割によって、現在CUの高さの1/4の高さ及び現在CUの幅と同じ幅を有する2つのCUと、現在CUの高さの半分の高さ及び現在CUの幅と同じ幅を有する1つのCUが生成されることができる。
図6は本開示によるマルチタイプツリーを伴う四分木(quadtree with nested multi-type tree)構造でのブロック分割情報のシグナリングメカニズムを例示する図である。
ここで、CTUは四分木のルート(root)ノードとして扱われ、CTUは四分木構造に初めて分割される。現在CU(CTU又は四分木のノード(QT_node))に対して四分木分割を行うか否かを指示する情報(例えば、qt_split_flag)がシグナリングされることができる。例えば、qt_split_flagが第1値(例えば、「1」)であれば、現在CUは四分木に分割されることができる。また、qt_split_flagが第2値(例えば、「0」)であれば、現在CUは、四分木に分割されず、四分木のリーフノード(QT_leaf_node)になる。各四分木のリーフノードは、以後、マルチタイプツリー構造にさらに分割されることができる。つまり、四分木のリーフノードは、マルチタイプツリーのノード(MTT_node)になることができる。マルチタイプツリー構造で、現在ノードがさらに分割されるかを指示するために、第1フラグ(a first flag、例えば、mtt_split_cu_flag)がシグナリングされることができる。もし当該ノードがさらに分割される場合(例えば、第1フラグが1である場合)には、分割方向(splitting direction)を指示するために、第2フラグ(a second flag、例えば、mtt_split_cu_verticla_flag)がシグナリングされることができる。例えば、第2フラグが1である場合には、分割方向は垂直方向であり、第2フラグが0である場合には、分割方向は水平方向であることができる。その後、分割タイプがバイナリ分割タイプであるかターナリ分割タイプであるかを指示するために、第3フラグ(a third flag、例えば、mtt_split_cu_binary_flag)がシグナリングされることができる。例えば、第3フラグが1である場合には、分割タイプはバイナリ分割タイプであり、第3フラグが0である場合には、分割タイプはターナリ分割タイプであることができる。バイナリ分割又はターナリ分割によって取得されたマルチタイプツリーのノードは、マルチタイプツリー構造にさらにパーティショニングされることができる。しかし、マルチタイプツリーのノードは四分木構造にパーティショニングされることはできない。前記第1フラグが0である場合、マルチタイプツリーの該当ノードは、それ以上分割されず、マルチタイプツリーのリーフノード(MTT_leaf_node)になる。マルチタイプツリーのリーフノードに該当するCUは、前述した最終コーディングユニットとして使用できる。
前述したmtt_split_cu_vertical_flag及びmtt_split_cu_binary_flagに基づいて、CUのマルチタイプツリー分割モード(multi-type tree splitting mode、MttSplitMode)が表1のとおりに導出されることができる。以下の説明において、マルチツリー分割モードは、マルチツリー分割タイプ又は分割タイプと略称することができる。
図7は四分木の適用後にマルチタイプツリーが適用されることによりCTUが多重CUに分割される例を示す。図7において、太いブロックエッジ(bold block edge)710は四分木分割を示し、残りのエッジ720はマルチタイプツリー分割を示す。CUはコーディングブロックCBに対応することができる。一実施例において、CUは、ルマサンプルのコーディングブロックと、ルマサンプルに対応するクロマサンプルの二つのコーディングブロックと、を含むことができる。クロマ成分(サンプル)CB又はTBサイズは、ピクチャ/画像のカラーフォーマット(クロマフォーマット、例えば、4:4:4、4:2:2、4:2:0など)による成分比に従ってルマ成分(サンプル)CB又はTBサイズに基づいて導出されることができる。カラーフォーマットが4:4:4である場合、クロマ成分CB/TBサイズは、ルマ成分CB/TBサイズと同一に設定されることができる。カラーフォーマットが4:2:2である場合、クロマ成分CB/TBの幅はルマ成分CB/TBの幅の半分に設定されることができ、クロマ成分CB/TBの高さはルマ成分CB/TBの高さに設定されることができる。カラーフォーマットが4:2:0である場合、クロマ成分CB/TBの幅はルマ成分CB/TBの幅の半分に設定されることができ、クロマ成分CB/TBの高さはルマ成分CB/TBの高さの半分に設定されることができる。
一実施例において、ルマサンプル単位を基準にCTUのサイズが128であるとき、CUのサイズは、CTUと同じサイズである128×128から4×4までのサイズを有することができる。一実施例において、4:2:0カラーフォーマット(又はクロマフォーマット)である場合、クロマCBサイズは64×64から2×2までのサイズを持つことができる。
一方、一実施例において、CUサイズとTUサイズとが同じであることができる。又は、CU領域内に複数のTUが存在することもできる。TUサイズとは、一般的に、ルマ成分(サンプル)TB(Transform Block)サイズを示すことができる。
前記TUサイズは、予め設定された値である最大許容TBサイズ(maxTbSize)に基づいて導出されることができる。例えば、前記CUサイズが前記maxTbSizeよりも大きい場合、前記CUから、前記maxTbSizeを持つ複数のTU(TB)が導出され、前記TU(TB)単位で変換/逆変換が行われることができる。例えば、最大許容ルマTBサイズは64×64であり、最大許容クロマTBサイズは32×32であることができる。もし前記ツリー構造によって分割されたCBの幅又は高さが最大変換幅又は高さよりも大きい場合、当該CBは、自動的に(又は暗黙的に)水平及び垂直方向のTBサイズの制限を満足するまで分割されることができる。
また、例えばイントラ予測が適用される場合、イントラ予測モード/タイプは、前記CU(又はCB)単位で導出され、周辺参照サンプル導出及び予測サンプル生成手順は、TU(又はTB)単位で行われることができる。この場合、一つのCU(又はCB)領域内に一つ又は複数のTU(又はTB)が存在することができ、この場合、前記複数のTU(又はTB)は同じイントラ予測モード/タイプを共有することができる。
一方、マルチタイプツリーを伴った四分木コーディングツリースキームのために、次のパラメータがSPSシンタックス要素として符号化装置から復号化装置にシグナリングされることができる。例えば、四分木のルートノードのサイズを示すパラメータであるCTUsize、四分木のリーフノードの最小許容サイズを示すパラメータであるMinQTSize、二分木のルートノードの最大許容サイズを示すパラメータであるMaxBTSize、三分木のルートノードの最大許容サイズを示すパラメータであるMaxTTSize、四分木のリーフノードから分割されるマルチタイプツリーの最大許容階層深さ(maximum allowed hierarchy depth)を示すパラメータであるMaxMttDepth、二分木の最小許容リーフノードサイズを示すパラメータであるMinBtSize、及び三分木の最小許容リーフノードサイズを示すパラメータであるMinTtSizeのうちの少なくとも一つがシグナリングされることができる。
4:2:0クロマフォーマットを用いる一実施例において、CTUサイズは128×128ルマブロック及びルマブロックに対応する二つの64×64クロマブロックに設定されることができる。この場合、MinQTSizeは16×16に設定され、MaxBtSizeは128×128に設定され、MaxTtSzieは64×64に設定され、MinBtSize及びMinTtSizeは4×4に設定され、MaxMttDepthは4に設定されことができる。四分木分割は、CTUに適用されて四分木のリーフノードを生成することができる。四分木のリーフノードはリーフQTノードと呼ばれることができる。四分木のリーフノードは16×16サイズ(例えば、the MinQTSize)から128×128サイズ(例えば、the CTU size)を持つことができる。もしリーフQTノードが128×128である場合、さらに二分木/三分木に分割されないことができる。これは、この場合に分割されてもMaxBtsize及びMaxTtszie(例えば、64×64)を超過するためである。これ以外の場合、リーフQTノードは、マルチタイプツリーにさらに分割されることができる。よって、リーフQTノードは、マルチタイプツリーに対するルートノード(root node)であり、リーフQTノードは、マルチタイプツリーデプス(mttDepth)0値を持つことができる。もし、マルチタイプツリーデプスがMaxMttdepth(例えば、4)に到達した場合、それ以上の追加分割は考慮されないことができる。もし、マルチタイプツリーノードの幅がMinBtSizeと同じであり、2xMinTtSizeと同じかそれより小さい場合、それ以上の追加的な水平分割は考慮されないことができる。もし、マルチタイプツリーノードの高さがMinBtSizeと同じであり、2xMinTtSizeと同じかそれより小さい場合、それ以上の追加的な垂直分割は考慮されないことができる。このように分割が考慮されない場合、符号化装置は、分割情報のシグナリングを省略することができる。このような場合、復号化装置は、所定の値に分割情報を誘導することができる。
一方、一つのCTUは、ルマサンプルのコーディングブロック(以下、「ルマブロック」という)と、これに対応するクロマサンプルの二つのコーディングブロック(以下、「クロマブロック」という)と、を含むことができる。前述したコーディングツリースキームは、現在CUのルマブロック及びクロマブロックに対して同様に適用されることもでき、個別的に(separate)適用されることもできる。具体的には、一つのCTU内のルマブロック及びクロマブロックが同じブロックツリー構造に分割されることができ、この場合のツリー構造は、シングルツリー(SINGLE_TREE)と表すことができる。又は、一つのCTU内のルマブロック及びクロマブロックは、個別ブロックツリー構造に分割されることができ、この場合のツリー構造は、デュアルツリー(DUAL_TREE)と表すことができる。つまり、CTUがデュアルツリーに分割される場合、ルマブロックに対するブロックツリー構造とクロマブロックに対するブロックツリー構造が別個に存在することができる。このとき、ルマブロックに対するブロックツリー構造は、デュアルツリールマ(DUAL_TREE_LUMA)と呼ばれることができ、クロマブロックに対するブロックツリー構造は、デュアルツリークロマ(DUAL_TREE_CHROMA)と呼ばれることができる。P及びBスライス/タイルグループに対して、一つのCTU内のルマブロック及びクロマブロックは、同じコーディングツリー構造を持つように制限されることができる。しかし、Iスライス/タイルグループに対して、ルマブロック及びクロマブロックは、互いに個別ブロックツリー構造を持つことができる。もし個別ブロックツリー構造が適用される場合、ルマCTB(Coding Tree Block)は、特定のコーディングツリー構造に基づいてCUに分割され、クロマCTBは、他のコーディングツリー構造に基づいてクロマCUに分割されることができる。すなわち、個別ブロックツリー構造が適用されるIスライス/タイルグループ内のCUは、ルマ成分のコーディングブロック又は2つのクロマ成分のコーディングブロックで構成され、P又はBスライス/タイルグループのCUは、三つのカラー成分(ルマ成分及び二つのクロマ成分)のブロックで構成され得ることを意味することができる。
上記において、マルチタイプツリーを伴った四分木コーディングツリー構造について説明したが、CUが分割される構造はこれに限定されない。例えば、BT構造及びTT構造は、多数の分割ツリー(Multiple Partitioning Tree、MPT)構造に含まれる概念と解釈されることができ、CUはQT構造及びMPT構造によって分割されると解釈することができる。QT構造及びMPT構造によってCUが分割される一例において、QT構造のリーフノードが幾つかのブロックに分割されるかに関する情報を含むシンタックス要素(例えば、MPT_split_type)及びQT構造のリーフノードが垂直及び水平のうちのどの方向に分割されるかに関する情報を含むシンタックス要素(例えば、MPT_split_mode)が、シグナリングされることにより、分割構造が決定されることができる。
別の例において、CUは、QT構造、BT構造又はTT構造とは異なる方法で分割されることができる。つまり、QT構造によって下位デプスのCUが上位デプスのCUの1/4サイズに分割されるか、或いはBT構造によって下位デプスのCUが上位デプスのCUの1/2サイズに分割されるか、或いはTT構造によって下位デプスのCUが上位デプスのCUの1/4又は1/2サイズに分割されるのとは異なり、下位デプスのCUは、場合によって、上位デプスのCUの1/5、1/3、3/8、3/5、2/3又は5/8のサイズに分割されることができ、CUが分割される方法は、これに限定されない。
このように、前記マルチタイプツリーを伴った四分木コーディングブロック構造は、非常に柔軟なブロック分割構造を提供することができる。一方、マルチタイプツリーに支援される分割タイプのために、場合によって、異なる分割パターンが潜在的に同一のコーディングブロック構造の結果を導出することができる。符号化装置と復号化装置は、このような冗長(redundant)分割パターンの発生を制限することにより、分割情報のデータ量を減らすことができる。
例えば、図8は二分木分割及び三分木分割で発生しうる冗長分割パターンを例示的に示す。図8に示されているように、2ステップレベルの一方向に対する連続バイナリ分割810と820は、ターナリ分割後のセンターパーティションに対するバイナリ分割と同じコーディングブロック構造を持つ。このような場合、三分木分割のセンターブロック830、840に対する二分木分割は禁止できる。このような禁止は、すべてのピクチャのCUに対して適用できる。このような特定の分割が禁止される場合、対応するシンタックス要素のシグナリングは、このように禁止される場合を反映して修正でき、これにより、分割のためにシグナリングされるビット数を減らすことができる。例えば、図8に示されている例のように、CUのセンターブロックに対する二分木分割が禁止される場合、分割がバイナリ分割であるかターナリ分割であるかを示すmtt_split_cu_binary_flagシンタックス要素はシグナリングされず、その値は0に復号化装置によって誘導されることができる。
インター予測の概要
以下、本開示によるインター予測について説明する。
本開示による画像符号化装置/画像復号化装置の予測部は、ブロック単位でインター予測を行って予測サンプルを導出することができる。インター予測は、現在ピクチャ以外のピクチャのデータ要素(例えば、サンプル値、又は動き情報など)に依存的な方法で導出される予測を示すことができる。現在ブロックにインター予測が適用される場合、参照ピクチャインデックスが指す参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)を基に、現在ブロックに対する予測されたブロック(予測ブロック又は予測サンプルアレイ)を誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて現在ブロックの動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測が適用される場合、前記周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と、参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。前記参照ブロックを含む参照ピクチャと、前記時間周辺ブロックを含む参照ピクチャとは、同一でもよく、異なってもよい。前記時間周辺ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)、colブロック(colBlock)などの名前で呼ばれることができ、前記時間周辺ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)、colピクチャ(col Picture)などの名前で呼ばれることができる。例えば、現在ブロックの周辺ブロックを基に動き情報候補リストが構成でき、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が選択(使用)されるかを指すフラグ又はインデックス情報がシグナリングされることができる。
インター予測は、様々な予測モードに基づいて行われることができる。例えば、スキップモードとマージモードの場合、現在ブロックの動き情報は、選択された周辺ブロックの動き情報と同一であってもよい。スキップモードの場合、マージモードとは異なり、レジデュアル信号が伝送されないことができる。動き情報予測(motion vector prediction、MVP)モードの場合、選択された周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)はシグナリングされることができる。この場合、前記動きベクトル予測子及び動きベクトル差分の和を用いて前記現在ブロックの動きベクトルを導出することができる。本開示において、MVPモードは、AMVP(Advanced Motion Vector Prediction)と同じ意味で使用されることができる。
前記動き情報は、インター予測タイプ(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は、前記現在ピクチャよりも出力順序において以前のピクチャを参照ピクチャとしてさらに含むことができる。この場合、前記参照ピクチャリストL1内で前記以後のピクチャが先にインデックス化され、前記以前のピクチャはその次にインデックス化されることができる。ここで、出力順序は、POC(picture order count)順序(order)に対応することができる。
図9はインター予測ベースのビデオ/画像符号化方法を示すフローチャートである。
図10は本開示によるインター予測部180の構成を例示的に示す図である。
図9の符号化方法は、図2の画像符号化装置によって行われることができる。具体的には、ステップS610は、インター予測部180によって行われることができ、ステップS620は、レジデュアル処理部によって行われることができる。具体的には、ステップS620は、減算部115によって行われることができる。ステップS630は、エントロピー符号化部190によって行われることができる。ステップS630の予測情報はインター予測部180によって導出され、ステップS630のレジデュアル情報はレジデュアル処理部によって導出されることができる。前記レジデュアル情報は前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。前述したように、前記レジデュアルサンプルは、画像符号化装置の変換部120を介して変換係数として導出され、前記変換係数は、量子化部130を介して量子化された変換係数として導出されることができる。前記量子化された変換係数に関する情報がレジデュアルコーディング手順を介してエントロピー符号化部190で符号化されることができる。
画像符号化装置は、現在ブロックに対するインター予測を行うことができる(S610)。画像符号化装置は、現在ブロックのインター予測モード及び動き情報を導出し、前記現在ブロックの予測サンプルを生成することができる。ここで、インター予測モード決定、動き情報導出及び予測サンプル生成手順は、同時に行われてもよく、いずれか一つの手順が他の手順よりも先に行われてもよい。例えば、図10に示されているように、画像符号化装置のインター予測部180は、予測モード決定部181、動き情報導出部182、及び予測サンプル導出部183を含むことができる。予測モード決定部181で前記現在ブロックに対する予測モードを決定し、動き情報導出部182で前記現在ブロックの動き情報を導出し、予測サンプル導出部183で前記現在ブロックの予測サンプルを導出することができる。例えば、画像符号化装置のインター予測部180は、動き推定(motion estimation)を介して参照ピクチャの一定の領域(探索領域)内で前記現在ブロックと類似のブロックを探索し、前記現在ブロックとの差が最小又は一定の基準以下である参照ブロックを導出することができる。これに基づいて、前記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、前記参照ブロックと前記現在ブロックとの位置差に基づいて動きベクトルを導出することができる。画像符号化装置は、様々な予測モードのうち、前記現在ブロックに対して適用されるモードを決定することができる。画像符号化装置は、前記様々な予測モードに対するレート歪みコスト(Rate-Distortion(RD) cost)を比較し、前記現在ブロックに対する最適の予測モードを決定することができる。しかし、画像符号化装置が現在ブロックに対する予測モードを決定する方法は、上記の例に限定されず、様々な方法が利用できる。
例えば、現在ブロックにスキップモード又はマージモードが適用される場合、画像符号化装置は、前記現在ブロックの周辺ブロックからマージ候補を誘導し、誘導されたマージ候補を用いてマージ候補リストを構成することができる。また、画像符号化装置は、前記マージ候補リストに含まれているマージ候補が指す参照ブロックのうち、現在ブロックとの差が最小又は一定の基準以下である参照ブロックを導出することができる。この場合、前記導出された参照ブロックに関連するマージ候補が選択され、前記選択されたマージ候補を示すマージインデックス情報が生成されて画像復号化装置にシグナリングされることができる。前記選択されたマージ候補の動き情報を用いて前記現在ブロックの動き情報を導出することができる。
他の例として、前記現在ブロックにMVPモードが適用される場合、画像符号化装置は、前記現在ブロックの周辺ブロックからmvp(motion vector predictor)候補を誘導し、誘導されたmvp候補を用いてmvp候補リストを構成することができる。また、画像符号化装置は、前記mvp候補リストに含まれているmvp候補のうち、選択されたmvp候補の動きベクトルを前記現在ブロックのmvpとして用いることができる。この場合、例えば、前述した動き推定によって導出された参照ブロックを指す動きベクトルが前記現在ブロックの動きベクトルとして用いられることができ、前記mvp候補のうち、前記現在ブロックの動きベクトルとの差が最も小さい動きベクトルを持つmvp候補が、前記選択されたmvp候補になることができる。前記現在ブロックの動きベクトルから前記mvpを差し引いた差分であるMVD(motion vector difference)が導出されることができる。この場合、前記選択されたmvp候補を示すインデックス情報、及び前記MVDに関する情報が画像復号化装置にシグナリングされることができる。また、MVPモードが適用される場合、前記参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成されて別途に前記画像復号化装置にシグナリングされることができる。
画像符号化装置は、前記予測サンプルに基づいてレジデュアルサンプルを導出することができる(S620)。画像符号化装置は、前記現在ブロックの原本サンプルと前記予測サンプルとの比較によって前記レジデュアルサンプルを導出することができる。例えば、前記レジデュアルサンプルは、原本サンプルから対応する予測サンプルを減算することにより導出されることができる。
画像符号化装置は、予測情報及びレジデュアル情報を含む画像情報を符号化することができる(S630)。画像符号化装置は、符号化された画像情報をビットストリーム形式で出力することができる。前記予測情報は、前記予測手順に関連した情報であって、予測モード情報(例えば、skip flag、merge flag又はmode indexなど)及び動き情報に関する情報を含むことができる。前記予測モード情報のうち、skip flagは、現在ブロックに対してスキップモードが適用されるか否かを示す情報であり、merge flagは、現在ブロックに対してマージモードが適用されるか否かを示す情報である。又は、予測モード情報は、mode indexのように、複数の予測モードのうちのいずれか一つを指示する情報であってもよい。前記skip flagとmerge flagがそれぞれ0である場合、現在ブロックに対してMVPモードが適用されると決定されることができる。前記動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、mvp flag又はmvp index)を含むことができる。前記候補選択情報のうち、merge indexは、現在ブロックに対してマージモードが適用される場合にシグナリングされることができ、マージ候補リストに含まれているマージ候補のうちのいずれか一つを選択するための情報であることができる。前記候補選択情報のうち、mvp flag又はmvp indexは、現在ブロックに対してMVPモードが適用される場合にシグナリングされることができ、mvp候補リストに含まれているmvp候補のうちのいずれか一つを選択するための情報であることができる。また、前記動き情報に関する情報は、上述したMVDに関する情報及び/又は参照ピクチャインデックス情報を含むことができる。また、前記動き情報に関する情報は、L0予測、L1予測、又は双(Bi)予測が適用されるか否かを示す情報を含むことができる。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。
出力されたビットストリームは、(デジタル)記憶媒体に保存されて画像復号化装置に伝達されることができ、又はネットワークを介して画像復号化装置に伝達されることもできる。
一方、前述したように、画像符号化装置は、前記参照サンプル及び前記レジデュアルサンプルに基づいて復元ピクチャ(復元サンプル及び復元ブロックを含むピクチャ)を生成することができる。これは、画像復号化装置で行われるのと同じ予測結果を画像符号化装置で導出するためであり、これによりコーディング効率を高めることができるためである。したがって、画像符号化装置は、復元ピクチャ(又は復元サンプル、復元ブロック)をメモリに保存し、インター予測のためのピクチャとして活用することができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、上述したとおりである。
図11はインター予測ベースのビデオ/画像復号化方法を示すフローチャートである。
図12は本開示によるインター予測部260の構成を例示的に示す図である。
画像復号化装置は、前記画像符号化装置で行われた動作と対応する動作を行うことができる。画像復号化装置は、受信された予測情報に基づいて現在ブロックに対する予測を行い、予測サンプルを導出することができる。
図11の復号化方法は、図3の画像復号化装置によって行われることができる。ステップS810乃至S830は、インター予測部260によって行われることができ、ステップS810の予測情報及びステップS840のレジデュアル情報は、エントロピー復号化部210によってビットストリームから取得されることができる。画像復号化装置のレジデュアル処理部は、前記レジデュアル情報に基づいて、現在ブロックに対するレジデュアルサンプルを導出することができる(S840)。具体的には、前記レジデュアル処理部の逆量子化部220は、前記レジデュアル情報に基づいて導出された、量子化された変換係数に基づいて、逆量子化を行って変換係数を導出し、前記レジデュアル処理部の逆変換部230は、前記変換係数に対する逆変換を行って前記現在ブロックに対するレジデュアルサンプルを導出することができる。ステップS850は、加算部235又は復元部によって行われることができる。
具体的には、画像復号化装置は、受信された予測情報に基づいて、前記現在ブロックに対する予測モードを決定することができる(S810)。画像復号化装置は、前記予測情報内の予測モード情報に基づいて、前記現在ブロックにどのインター予測モードが適用されるかを決定することができる。
例えば、前記skip flagに基づいて、前記現在ブロックに前記スキップモードが適用されるか否かを決定することができる。また、前記merge flagに基づいて、前記現在ブロックに前記マージモードが適用されるか或いはMVPモードが決定されるかを決定することができる。又は、前記mode indexに基づいて、多様なインター予測モード候補のうちのいずれか一つを選択することができる。前記インター予測モード候補は、スキップモード、マージモード及び/又はMVPモードを含むことができ、又は後述する様々なインター予測モードを含むことができる。
画像復号化装置は、前記決定されたインター予測モードに基づいて前記現在ブロックの動き情報を導出することができる(S820)。例えば、画像復号化装置は、前記現在ブロックにスキップモード又はマージモードが適用される場合、後述するマージ候補リストを構成し、前記マージ候補リストに含まれているマージ候補のうちのいずれか一つを選択することができる。前記選択は、前述した候補選択情報(merge index)に基づいて行われることができる。前記選択されたマージ候補の動き情報を用いて前記現在ブロックの動き情報を導出することができる。例えば、前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報として用いられることができる。
他の例として、画像復号化装置は、前記現在ブロックにMVPモードが適用される場合、mvp候補リストを構成し、前記mvp候補リストに含まれているmvp候補の中から選ばれたmvp候補の動きベクトルを前記現在ブロックのmvpとして用いることができる。前記選択は、前述した候補選択情報(mvp flag又はmvp index)に基づいて行われることができる。この場合、前記MVDに関する情報に基づいて、前記現在ブロックのMVDを導出することができ、前記現在ブロックのmvpと前記MVDに基づいて前記現在ブロックの動きベクトルを導出することができる。また、前記参照ピクチャインデックス情報に基づいて前記現在ブロックの参照ピクチャインデックスを導出することができる。前記現在ブロックに関する関連参照ピクチャリスト内で前記参照ピクチャインデックスが指すピクチャが、前記現在ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
画像復号化装置は、前記現在ブロックの動き情報に基づいて、前記現在ブロックに対する予測サンプルを生成することができる(S830)。この場合、前記現在ブロックの参照ピクチャインデックスに基づいて前記参照ピクチャを導出し、前記現在ブロックの動きベクトルが前記参照ピクチャ上で指す参照ブロックのサンプルを用いて前記現在ブロックの予測サンプルを導出することができる。場合に応じて、前記現在ブロックの予測サンプルのうち、全部又は一部に対する予測サンプルフィルタリング手順がさらに行われることができる。
例えば、図12に示されているように、画像復号化装置のインター予測部260は、予測モード決定部261、動き情報導出部262及び予測サンプル導出部263を含むことができる。画像復号化装置のインター予測部260は、予測モード決定部261から受信された予測モード情報に基づいて、前記現在ブロックに対する予測モードを決定し、動き情報導出部262から受信された動き情報に関する情報に基づいて前記現在ブロックの動き情報(動きベクトル及び/又は参照ピクチャインデックスなど)を導出し、予測サンプル導出部263で前記現在ブロックの予測サンプルを導出することができる。
画像復号化装置は、受信されたレジデュアル情報に基づいて、前記現在ブロックに対するレジデュアルサンプルを生成することができる(S840)。画像復号化装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる(S850)。以後、前記復元ピクチャにインループフィルタ手順などがさらに適用できるのは、前述したとおりである。
前述したように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードによる動き情報導出ステップ、導出された動き情報に基づく予測実行(予測サンプルの生成)ステップを含むことができる。前記インター予測手順は、前述したように画像符号化装置及び画像復号化装置で行われることができる。
以下、予測モードによる動き情報導出ステップについてより詳細に説明する。
前述したように、インター予測は、現在ブロックの動き情報を用いて行われることができる。画像符号化装置は、動き推定(motion estimation)手順を介して、現在ブロックに対する最適の動き情報を導出することができる。例えば、画像符号化装置は、現在ブロックに対する原本ピクチャ内の原本ブロックを用いて相関性の高い類似な参照ブロックを参照ピクチャ内の定められた探索範囲内で分数ピクセル単位にて探索することができ、これにより動き情報を導出することができる。ブロックの類似性は、現在ブロックと参照ブロック間のSAD(sum of absolute differences)に基づいて計算できる。この場合、探索領域内のSADが最も小さい参照ブロックを基に、動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて、様々な方法によって画像復号化装置にシグナリングされることができる。
現在ブロックに対してマージモード(merge mode)が適用される場合、現在ブロックの動き情報が直接伝送されず、周辺ブロックの動き情報を用いて前記現在ブロックの動き情報を誘導する。よって、マージモードを用いたことを知らせるフラグ情報及びどの周辺ブロックをマージ候補として用いたかを知らせる候補選択情報(例えば、マージインデックス)を伝送することにより、現在予測ブロックの動き情報を指示することができる。本開示において、現在ブロックは予測実行の単位であるので、現在ブロックは現在予測ブロックと同じ意味で使用され、周辺ブロックは周辺予測ブロックと同じ意味で使用されることができる。
画像符号化装置は、マージモードを行うために現在ブロックの動き情報を誘導するのに用いられるマージ候補ブロック(merge candidate block)を探索することができる。例えば、前記マージ候補ブロックは、最大5個まで使用できるが、これに限定されない。前記マージ候補ブロックの最大個数は、スライスヘッダー又はタイルグループヘッダーから伝送されることができるが、これに限定されない。前記マージ候補ブロックを見つけた後、画像符号化装置はマージ候補リストを生成することができ、これらのうち、RDコストが最も小さいマージ候補ブロックを最終マージ候補ブロックとして選択することができる。
本開示は、前記マージ候補リストを構成するマージ候補ブロックに対する様々な実施例を提供する。前記マージ候補リストは、例えば5つのマージ候補ブロックを用いることができる。例えば、4つの空間マージ候補(spatial merge candidate)と1つの時間マージ候補(temporal merge candidate)を用いることができる。
図13は空間マージ候補として用いることができる周辺ブロックを例示する図である。
図14は本開示の一例によるマージ候補リスト構成方法を概略的に示す図である。
画像符号化装置/画像復号化装置は、現在ブロックの空間周辺ブロックを探索して導出された空間マージ候補をマージ候補リストに挿入することができる(S1110)。例えば、前記空間周辺ブロックは、図13に示されているように、前記現在ブロックの左下側コーナー周辺ブロックA0、左側周辺ブロックA1、右上側コーナー周辺ブロックB0、上側周辺ブロックB1、及び左上側コーナー周辺ブロックB2を含むことができる。ただし、これは例示に過ぎず、前述した空間周辺ブロック以外にも右側周辺ブロック、下側周辺ブロック、右下側周辺ブロックなどの追加的な周辺ブロックがさらに前記空間周辺ブロックとして使用できる。画像符号化装置/画像復号化装置は、前記空間周辺ブロックを優先順位に基づいて探索することにより、利用可能なブロックを検出し、検出されたブロックの動き情報を前記空間マージ候補として導出することができる。例えば、画像符号化装置/画像復号化装置は、図13に示されている5つのブロックをA1、B1、B0、A0、B2の順に探索し、利用可能な候補を順次インデックス化することにより、マージ候補リストを構成することができる。
画像符号化装置/画像復号化装置は、前記現在ブロックの時間周辺ブロックを探索して導出された時間マージ候補を前記マージ候補リストに挿入することができる(S1120)。前記時間周辺ブロックは、前記現在ブロックが位置する現在ピクチャとは異なるピクチャである参照ピクチャ上に位置することができる。前記時間周辺ブロックが位置する参照ピクチャは、コロケート(collocated)ピクチャ又はcolピクチャと呼ばれることができる。前記時間周辺ブロックは、前記colピクチャ上における前記現在ブロックに対するコロケートブロック(colocated 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))に位置する予測ブロックの動き情報が前記時間マージ候補のために使用できる。
再び図14を参照すると、画像符号化装置/画像復号化装置は、現在マージ候補の個数が最大マージ候補の個数よりも小さいか否かを確認することができる(S1130)。前記最大マージ候補の個数は、予め定義されるか、或いは画像符号化装置から画像復号化装置にシグナリングされることができる。例えば、画像符号化装置は、前記最大マージ候補の個数に関する情報を生成し、符号化してビットストリーム形式で前記画像復号化装置に伝達することができる。前記最大マージ候補の個数が全て満たされると、以後の候補追加過程(S1140)は行われないことができる。
ステップS1130の確認結果、前記現在マージ候補の個数が前記最大マージ候補の個数よりも小さい場合、画像符号化装置/画像復号化装置は、所定の方式に基づいて追加マージ候補を誘導した後、前記マージ候補リストに挿入することができる(S1140)。
ステップS1130の確認結果、前記現在マージ候補の個数が前記最大マージ候補の個数よりも小さくない場合、画像符号化装置/画像復号化装置は、前記マージ候補リストの構成を終了することができる。この場合、画像符号化装置は、RDコストに基づいて、前記マージ候補リストを構成するマージ候補のうちの最適のマージ候補を選択することができ、前記選択されたマージ候補を指す候補選択情報(例えば、merge index)を画像復号化装置にシグナリングすることができる。画像復号化装置は、前記マージ候補リスト及び前記候補選択情報に基づいて前記最適のマージ候補を選択することができる。
前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報として使用されることができ、前記現在ブロックの動き情報に基づいて前記現在ブロックの予測サンプルを導出することができるのは、前述したとおりである。画像符号化装置は、前記予測サンプルに基づいて前記現在ブロックのレジデュアルサンプルを導出することができ、前記レジデュアルサンプルに関するレジデュアル情報を画像復号化装置にシグナリングすることができる。画像復号化装置は、前記レジデュアル情報に基づいて導出されたレジデュアルサンプル及び前記予測サンプルに基づいて復元サンプルを生成し、これに基づいて復元ピクチャを生成することができるのは、前述したとおりである。
現在ブロックに対してスキップモード(skip mode)が適用される場合、前でマージモードが適用される場合と同様の方法で前記現在ブロックの動き情報を導出することができる。ただし、スキップモードが適用される場合、当該ブロックに対するレジデュアル信号が省略される。よって、予測サンプルが直ちに復元サンプルとして使用できる。
現在ブロックに対してMVPモードが適用される場合、復元された空間周辺ブロック(例えば、図13に示されている周辺ブロック)の動きベクトル及び/又は時間周辺ブロック(又はColブロック)に対応する動きベクトルを用いて、動きベクトル予測子(motion vector predictor、mvp)候補リストが生成できる。つまり、復元された空間周辺ブロックの動きベクトル及び/又は時間周辺ブロックに対応する動きベクトルが現在ブロックの動きベクトル予測子候補として使用できる。双予測が適用される場合、L0動き情報導出のためのmvp候補リストとL1動き情報導出のためのmvp候補リストが個別に生成されて利用できる。現在ブロックに対する予測情報(又は予測に関する情報)は、前記mvp候補リストに含まれている動きベクトル予測子候補の中から選択された最適の動きベクトル予測子候補を指示する候補選択情報(例えば、MVPフラグ又はMVPインデックス)を含むことができる。このとき、予測部は、前記候補選択情報を用いて、mvp候補リストに含まれている動きベクトル予測子候補の中から、現在ブロックの動きベクトル予測子を選択することができる。画像符号化装置の予測部は、現在ブロックの動きベクトルと動きベクトル予測子との動きベクトル差分(MVD)を求めることができ、これを符号化してビットストリーム形式で出力することができる。つまり、MVDは現在ブロックの動きベクトルから前記動きベクトル予測子を差し引いた値で求められることができる。画像復号化装置の予測部は、前記予測に関する情報に含まれている動きベクトル差分を取得し、前記動きベクトル差分と前記動きベクトル予測子との加算を介して、現在ブロックの前記動きベクトルを導出することができる。画像復号化装置の予測部は、参照ピクチャを指示する参照ピクチャインデックスなどを前記予測に関する情報から取得又は誘導することができる。
図15は本開示の一例による動きベクトル予測子候補リスト構成方法を概略的に示す図である。
まず、現在ブロックの空間候補ブロックを探索して、利用可能な候補ブロックをmvp候補リストに挿入することができる(S1210)。その後、mvp候補リストに含まれているmvp候補が2つ未満であるか否かが判断され(S1220)、2つである場合、mvp候補リストの構成を完了することができる。
ステップS1220で、利用可能な空間候補ブロックが2つ未満である場合、現在ブロックの時間候補ブロックを探索して、利用可能な候補ブロックをmvp候補リストに挿入することができる(S1230)。時間候補ブロックが利用可能でなければ、ゼロ動きベクトルをmvp候補リストに挿入(S1240)することにより、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である場合に限ってシグナリングされることができる。
図16は本開示の一例によって画像符号化装置から画像復号化装置へMVDを伝送するためのシンタックス構造を示す図である。
図16において、abs_mvd_greater0_flag[0]は、MVDのx成分の絶対値が0よりも大きいか否かを示し、abs_mvd_greater0_flag[1]は、MVDのy成分の絶対値が0よりも大きいか否かを示す。同様に、abs_mvd_greater1_flag[0]は、MVDのx成分の絶対値が1よりも大きいか否かを示し、abs_mvd_greater1_flag[1]は、MVDのy成分の絶対値が1よりも大きいか否かを示す。図16に示されているように、abs_mvd_greater1_flagは、abs_mvd_greater0_flagが1であるときにのみ伝送されることができる。図16において、abs_mvd_minus2は、MVDの絶対値から2を差し引いた値を示し、mvd_sign_flagは、MVDの符号がプラスであるかマイナスであるかを示す。図16に示されたシンタックス構造を用いて、MVDは次の数式のように導出できる。
[数1]
MVD[compIdx]=abs_mvd_greater0_flag[compIdx]*abs_mvd_minus2[compIdx]+2*1-2*mvd_sign_flag[compIdx]
一方、L0予測のためのMVD(MVDL0)とL1予測のためのMVD(MVDL1)が区分されてシグナリングされることもでき、前記MVDに関する情報は、MVDL0に関する情報及び/又はMVDL1に関する情報を含むことができる。例えば、現在ブロックにMVPモードが適用され且つBI予測が適用される場合、前記MVDL0に関する情報及びMVDL1に関する情報が両方ともシグナリングされることができる。
IBC(Intra Block Copy)予測の概要
以下、本開示によるIBC予測について説明する。
IBC予測は、画像符号化装置/画像復号化装置の予測部で行われることができる。IBC予測は、簡単に「IBC」と呼ばれることができる。前記IBCは、例えばSCC(screen content coding)などのようにゲームなどのコンテンツ画像/動画コーディングのために使用できる。前記IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出するという点で、インター予測と同様に行われることができる。つまり、IBCは、本開示で説明されたインター予測技法のうちの少なくとも一つを用いることができる。例えば、IBCでは、前述した動き情報(動きベクトル)導出方法のうちの少なくとも一つを用いることができる。前記インター予測技法のうちの少なくとも一つは、前記IBC予測を考慮して一部修正されて用いられることもできる。前記IBCは、現在ピクチャを参照することができる。よって、CPR(current picture referencing)とも呼ばれることができる。
IBCのために、画像符号化装置は、ブロックマッチングBMを行って現在ブロック(例えば、CU)に対する最適のブロックベクトル(又は動きベクトル)を導出することができる。前記導出されたブロックベクトル(又は動きベクトル)は、前述したインター予測での動き情報(動きベクトル)シグナリングと同様の方法を用いて、ビットストリームを介して画像復号化装置にシグナリングされることができる。画像復号化装置は、前記シグナリングされたブロックベクトル(動きベクトル)を介して、現在ピクチャ内で前記現在ブロックに対する参照ブロックを導出することができ、これにより前記現在ブロックに対する予測信号(予測されたブロック又は予測サンプル)を導出することができる。ここで、前記ブロックベクトル(又は動きベクトル)は、現在ブロックから現在ピクチャ内の既に復元された領域に位置する参照ブロックまでの変位(displacement)を示すことができる。よって、前記ブロックベクトル(又は動きベクトル)は、変位ベクトルと呼ばれることもできる。以下、IBCにおける前記動きベクトルは、前記ブロックベクトル又は前記変位ベクトルに対応することができる。現在ブロックの動きベクトルは、ルマ成分に対する動きベクトル(ルマ動きベクトル)又はクロマ成分に対する動きベクトル(クロマ動きベクトル)を含むことができる。例えば、IBCコーディングされたCUに対するルマ動きベクトルも、整数サンプル単位(すなわち、integer precision)であることができる。クロマ動きベクトルも、整数サンプル単位でクリッピング(clipped)できる。前述したように、IBCは、インター予測技法のうちの少なくとも一つを用いることができ、例えば、ルマ動きベクトルは、前述したマージモード又はMVPモードを用いて符号化/復号化されることができる。
ルマIBCブロックに対してマージモードが適用される場合、ルマIBCブロックに対するマージ候補リストは、図14を参照して説明したインターモードでのマージ候補リストと同様に構成されることができる。ただし、ルマIBCブロックの場合、マージ候補として、時間周辺ブロックは利用されなくてよい。
ルマIBCブロックに対してMVPモードが適用される場合、ルマIBCブロックに対するmvp候補リストは、図15を参照して説明したインターモードでのmvp候補リストと同様に構成されることができる。ただし、ルマIBCブロックの場合、mvp候補として時間候補ブロックは利用されなくてもよい。
IBCは、現在ピクチャ内の既に復元された領域から参照ブロックを導出する。このとき、メモリの消費と画像復号化装置の複雑度を減少させるために、現在ピクチャ内の既に復元された領域のうち、既に定義された領域(predefined area)のみが参照できる。前記既に定義された領域は、現在ブロックが含まれている現在CTUを含むことができる。このように、参照可能な復元領域を既に定義された領域に制限することにより、IBCモードは、ローカルオンチップメモリ(local on-chip memory)を用いてハードウェア的に実現できる。
IBCを実行する画像符号化装置は、前記既に定義された領域を探索して、最も小さいRDコストを持つ参照ブロックを決定し、参照ブロックと現在ブロックの位置に基づいて動きベクトル(ブロックベクトル)を導出することができる。
現在ブロックに対してIBCを適用するか否かは、CUレベルで、IBC実行情報としてシグナリングされることができる。現在ブロックの動きベクトルのシグナリング方法(IBC MVPモード又はIBCスキップ/マージモード)に関する情報がシグナリングされることができる。IBC実行情報は、現在ブロックの予測モードを決定するのに使用できる。よって、IBC実行情報は、現在ブロックの予測モードに関する情報に含まれることができる。
IBCスキップ/マージモードの場合、マージ候補インデックスがシグナリングされてマージ候補リストに含まれているブロックベクトルのうち、現在ルマブロックの予測に使用されるブロックベクトルを指示するために使用できる。このとき、マージ候補リストは、IBCで符号化された周辺ブロックを含むことができる。マージ候補リストは、空間マージ候補を含むことができ、時間マージ候補は含まないように構成できる。また、マージ候補リストは、さらにHMVP(Histrory-based motion vector predictor)候補及び/又はペアワイズ(pairwise)候補を含むことができる。
IBC MVPモードの場合、ブロックベクトル差分値が前述のインターモードの動きベクトル差分値と同様の方法で符号化できる。ブロックベクトル予測方法は、インターモードのMVPモードと同様に、2つの候補を予測子として含むmvp候補リストを構成して用いることができる。前記2つの候補のうちのいずれか一つは、左側周辺ブロックから誘導され、残りの一つは、上側周辺ブロックから誘導されることができる。このとき、左側又は上側周辺ブロックがIBCで符号化された場合にのみ、当該周辺ブロックから候補を誘導することができる。もし左側又は上側周辺ブロックが利用可能でない場合、例えば、IBCで符号化されていない場合、デフォルトブロックベクトルが予測子としてmvp候補リストに含まれることができる。また、2つのブロックベクトル予測子のうちのいずれか一つを指示するための情報(例えば、フラグ)が候補選択情報としてシグナリングされ、利用されるのは、インターモードのMVPモードと同様である。前記mvp候補リストは、デフォルトブロックベクトルとしてHMVP候補及び/又はゼロ動きベクトルを含むことができる。
前記HMVP候補は、ヒストリベースのMVP候補と呼ばれることもあり、現在ブロックの符号化/復号化の以前に使用されたMVP候補、マージ候補又はブロックベクトル候補は、HMVP候補としてHMVPリストに保存されることができる。以後、現在ブロックのマージ候補リスト又はmvp候補リストが最大個数の候補を含まない場合、HMVPリストに保存された候補がHMVP候補として現在ブロックのマージ候補リスト又はmvp候補リストに追加されることができる。
前記ペアワイズ(pairwise)候補は、現在ブロックのマージ候補リストに既に含まれている候補の中から、予め決められた順序に従って2つの候補を選択し、選択された2つの候補を平均することにより誘導される候補を意味する。
図17はIBCベースのビデオ/画像符号化方法を示すフローチャートである。
図18は本開示によるIBCベースのビデオ/画像符号化方法を実行する予測部の構成を例示的に示す図である。
図17の符号化方法は、図2の画像符号化装置によって実行できる。具体的には、ステップS1410は予測部によって行われることができ、ステップS1420はレジデュアル処理部によって行われることができる。具体的には、ステップS1420は減算部115によって行われることができる。ステップS1430はエントロピー符号化部190によって行われることができる。ステップS1430の予測情報は、予測部によって導出され、ステップS1430のレジデュアル情報は、レジデュアル処理部によって導出されることができる。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。前述したように、前記レジデュアルサンプルは、画像符号化装置の変換部120を介して変換係数として導出され、前記変換係数は、量子化部130を介して量子化された変換係数として導出されることができる。前記量子化された変換係数に関する情報がレジデュアルコーディング手順を介してエントロピー符号化部190で符号化されることができる。
画像符号化装置は、現在ブロックに対するIBC予測(IBCに基づく予測)を行うことができる(S1410)。画像符号化装置は、現在ブロックの予測モード及び動きベクトル(ブロックベクトル)を導出し、前記現在ブロックの予測サンプルを生成することができる。前記予測モードは、前述したインター予測モードのうちの少なくとも一つを含むことができる。ここで、予測モード決定、動きベクトル導出及び予測サンプル生成手順は、同時に行われてもよく、いずれか一つの手順が先に行われてもよい。例えば、図18に示されているように、IBCに基づくビデオ/画像符号化方法を行う画像符号化装置の予測部は、予測モード決定部、動きベクトル導出部、予測サンプル導出部を含むことができる。予測モード決定部で前記現在ブロックに対する予測モードを決定し、動きベクトル導出部で前記現在ブロックの動きベクトルを導出し、予測サンプル導出部で前記現在ブロックの予測サンプルを導出することができる。例えば、画像符号化装置の予測部は、現在ピクチャの復元された領域(又は復元された領域のうちの一定の領域(探索領域))内で前記現在ブロックと類似のブロックを探索し、前記現在ブロックとの差が最小又は一定の基準以下である参照ブロックを導出することができる。画像符号化装置は、前記参照ブロックと前記現在ブロックとの変位差に基づいて動きベクトルを導出することができる。画像符号化装置は、様々な予測モードのうち、前記現在ブロックに対して適用されるモードを決定することができる。画像符号化装置は、前記様々な予測モードに対するレート歪みコスト(RDコスト)を比較し、前記現在ブロックに対する最適の予測モードを決定することができる。しかし、画像符号化装置が現在ブロックに対する予測モードを決定する方法は、上記の例に限定されず、様々な方法が使用できる。
例えば、現在ブロックにスキップモード又はマージモードが適用される場合、画像符号化装置は、前記現在ブロックの周辺ブロックからマージ候補を誘導し、誘導されたマージ候補を用いてマージ候補リストを構成することができる。また、画像符号化装置は、前記マージ候補リストに含まれているマージ候補が指す参照ブロックのうち、前記現在ブロックとの差が最小又は一定の基準以下である参照ブロックを導出することができる。この場合、前記導出された参照ブロックに関連するマージ候補が選択され、前記選択されたマージ候補を指すマージインデックス情報が生成されて画像復号化装置にシグナリングされることができる。前記選択されたマージ候補の動きベクトルを用いて前記現在ブロックの動きベクトルが導出することができる。
他の例として、前記現在ブロックにMVPモードが適用される場合、画像符号化装置は、前記現在ブロックの周辺ブロックからmvp(motion vector predictor)候補を誘導し、誘導されたmvp候補を用いてmvp候補リストを構成することができる。また、画像符号化装置は、前記mvp候補リストに含まれているmvp候補の中から選ばれたmvp候補の動きベクトルを前記現在ブロックのmvpとして用いることができる。この場合、例えば、前述した動き推定によって導出された参照ブロックを指す動きベクトルが前記現在ブロックの動きベクトルとして使用でき、前記mvp候補のうち、前記現在ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が、前記選択されたmvp候補になることができる。前記現在ブロックの動きベクトルから前記mvpを差し引いた差分であるMVD(motion vector difference)が導出されることができる。この場合、前記選択されたmvp候補を指すインデックス情報、及び前記MVDに関する情報が画像復号化装置にシグナリングされることができる。
画像符号化装置は、前記予測サンプルに基づいてレジデュアルサンプルを導出することができる(S1420)。画像符号化装置は、前記現在ブロックの原本サンプルと前記予測サンプルとの比較を介して前記レジデュアルサンプルを導出することができる。例えば、前記レジデュアルサンプルは、原本サンプルから対応する予測サンプルを減算することにより導出されることができる。
画像符号化装置は、予測情報及びレジデュアル情報を含む画像情報を符号化することができる(S1430)。画像符号化装置は、符号化された画像情報をビットストリーム形式で出力することができる。前記予測情報は、前記予測手順に関連した情報として予測モード情報(例えば、skip flag、merge flag又はmode indexなど)及び動きベクトルに関する情報を含むことができる。前記予測モード情報のうち、skip flagは、現在ブロックに対してスキップモードが適用されるかど否かを示す情報であり、merge flagは、現在ブロックに対してマージモードが適用されるか否かを示す情報である。又は、予測モード情報は、mode indexのように、複数の予測モードのうちのいずれか一つを指示する情報であってもよい。前記skip flagとmerge flagがそれぞれ0である場合、現在ブロックに対してMVPモードが適用されると決定できる。前記動きベクトルに関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、mvp flag又はmvp index)を含むことができる。前記候補選択情報のうちのmerge indexは、現在ブロックに対してマージモードが適用される場合にシグナリングされることができ、マージ候補リストに含まれているマージ候補のうちのいずれか一つを選択するための情報であることができる。前記候補選択情報のうちのmvp flag又はmvp indexは、現在ブロックに対してMVPモードが適用される場合にシグナリングされることができ、mvp候補リストに含まれているmvp候補のうちのいずれか一つを選択するための情報であることができる。また、前記動きベクトルに関する情報は、上述したMVDに関する情報を含むことができる。また、前記動きベクトルに関する情報は、L0予測、L1予測、又は双(bi)予測が適用されるか否かを示す情報を含むことができる。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。
出力されたビットストリームは、(デジタル)記憶媒体に保存されて画像復号化装置に伝達されることもでき、又はネットワークを介して画像復号化装置に伝達されることもできる。
一方、前述したように、画像符号化装置は、前記参照サンプル及び前記レジデュアルサンプルを基に、復元ピクチャ(復元サンプル及び復元ブロックを含むピクチャ)を生成することができる。これは、画像復号化装置で行われるのと同じ予測結果を画像符号化装置で導出するためであり、これによりコーディング効率を高めることができるためである。よって、画像符号化装置は、復元ピクチャ(又は復元サンプル、復元ブロック)をメモリに保存し、インター予測のための参照ピクチャとして活用することができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、上述したとおりである。
図19はIBCベースのビデオ/画像復号化方法を示すフローチャートである。
図20は本開示によるIBCベースのビデオ/画像復号化方法を実行する予測部の構成を例示的に示す図である。
画像復号化装置は、前記画像符号化装置で行われた動作と対応する動作を行うことができる。画像復号化装置は、受信された予測情報に基づいて、現在ブロックに対するIBC予測を行い、予測サンプルを導出することができる。
図19の復号化方法は、図3の画像復号化装置によって行われることができる。ステップS1610乃至S1630は予測部によって行われることができ、ステップS1610の予測情報及びステップS1640のレジデュアル情報はエントロピー復号化部210によってビットストリームから取得されることができる。画像復号化装置のレジデュアル処理部は、前記レジデュアル情報に基づいて、現在ブロックに対するレジデュアルサンプルを導出することができる(S1640)。具体的には、前記レジデュアル処理部の逆量子化部220は、前記レジデュアル情報に基づいて導出された量子化された変換係数を基に、逆量子化を行って変換係数を導出し、前記レジデュアル処理部の逆変換部230は、前記変換係数に対する逆変換を行って前記現在ブロックに対するレジデュアルサンプルを導出することができる。ステップS1650は加算部235又は復元部によって行われることができる。
具体的には、画像復号化装置は、受信された予測情報に基づいて前記現在ブロックに対する予測モードを決定することができる(S1610)。画像復号化装置は、前記予測情報内の予測モード情報に基づいて、前記現在ブロックにどの予測モードが適用されるかを決定することができる。
例えば、前記skip flagに基づいて、前記現在ブロックに前記スキップモードが適用されか否かを決定することができる。また、前記merge flagに基づいて、前記現在ブロックに前記マージモードが適用されるか、又はMVPモードが決定されるかを決定することができる。又は、前記mode indexに基づいて、様々な予測モード候補のうちのいずれか一つを選択することができる。前記予測モード候補は、スキップモード、マージモード及び/又はMVPモードを含むことができ、又は前述した様々なインター予測モードを含むことができる。
画像復号化装置は、前記決定された予測モードを基に、前記現在ブロックの動きベクトルを導出することができる(S1620)。例えば、画像復号化装置は、前記現在ブロックにスキップモード又はマージモードが適用される場合、前述したマージ候補リストを構成し、前記マージ候補リストに含まれているマージ候補のうちのいずれか一つを選択することができる。前記選択は、前述した候補選択情報(merge index)に基づいて行われることができる。前記選択されたマージ候補の動きベクトルを用いて前記現在ブロックの動きベクトルが導出することができる。例えば、前記選択されたマージ候補の動きベクトルが前記現在ブロックの動きベクトルとして使用できる。
他の例として、画像復号化装置は、前記現在ブロックにMVPモードが適用される場合、mvp候補リストを構成し、前記mvp候補リストに含まれているmvp候補の中から選択されたmvp候補の動きベクトルを前記現在ブロックのmvpとして用いることができる。前記選択は、前述した候補選択情報(mvp flag or mvp index)に基づいて行われることができる。この場合、前記MVDに関する情報に基づいて前記現在ブロックのMVDを導出することができ、前記現在ブロックのmvpと前記MVDに基づいて前記現在ブロックの動きベクトルを導出することができる。
画像復号化装置は、前記現在ブロックの動きベクトルに基づいて前記現在ブロックに対する予測サンプルを生成することができる(S1630)。前記現在ブロックの動きベクトルが前記現在ピクチャ上で指す参照ブロックのサンプルを用いて、前記現在ブロックの予測サンプルを導出することができる。場合に応じて、前記現在ブロックの予測サンプルのうちの全部又は一部に対する予測サンプルフィルタリング手順がさらに行われることができる。
例えば、図20に示されているように、IBCベースのビデオ/画像復号化方法を実行する画像復号化装置の予測部は、予測モード決定部、動きベクトル導出部及び予測サンプル導出部を含むことができる。画像復号化装置の予測部は、受信された予測モード情報に基づいて前記現在ブロックに対する予測モードを予測モード決定部で決定し、受信された動きベクトルに関する情報に基づいて前記現在ブロックの動きベクトルを動きベクトル導出部で導出し、予測サンプル導出部で前記現在ブロックの予測サンプルを導出することができる。
画像復号化装置は、受信されたレジデュアル情報に基づいて前記現在ブロックに対するレジデュアルサンプルを生成することができる(S1640)。画像復号化装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる(S1650)。その後、前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、前述したとおりである。
前述したように、一つのユニット(例えば、コーディングユニットCU)は、ルマブロック(ルマCB(coding block))とクロマブロック(クロマCB)を含むことができる。このとき、ルマブロックとこれに対応するクロマブロックは、同じ動き情報(例えば、動きベクトル)を持つこともでき、又は異なる動き情報を持つこともできる。一例として、クロマブロックの動き情報は、ルマブロックの動き情報に基づいて導出されることにより、ルマブロックと対応するクロマブロックが同じ動き情報を持つことができる。
クロマフォーマットの概要
以下、クロマフォーマットについて説明する。画像は、ルマ成分(例えば、Y)アレイと2つのクロマ成分(例えば、Cb、Cr)アレイを含む符号化データで符号化されることができる。例えば、符号化された画像の1つのピクセルは、ルマサンプルとクロマサンプルを含むことができる。ルマサンプルとクロマサンプルの構成フォーマットを示すためにクロマフォーマットが使用されることができ、クロマフォーマットはカラーフォーマットとも呼ばれることができる。
一実施例において、画像は、モノクロム(monochrome)、4:2:0、4:2:2、4:4:4などの様々なクロマフォーマットで符号化されることができる。モノクロームサンプリングでは、一つのサンプルアレイが存在することができ、前記サンプルアレイは、ルマアレイであり得る。4:2:0サンプリングでは、1つのルマサンプルアレイと2つのクロマサンプルアレイが存在することができ、2つのクロマアレイのそれぞれは、高さがルマアレイの半分であり、幅もルマアレイの半分であり得る。4:2:2サンプリングでは、1つのルマサンプルアレイと2つのクロマサンプルアレイが存在することができ、2つのクロマアレイのそれぞれは、高さがルマアレイと同じであり、幅はルマアレイの半分であり得る。4:4:4サンプリングでは、1つのルマサンプルアレイと2つのクロマサンプルアレイが存在することができ、2つのクロマアレイのそれぞれは、高さ及び幅がルマアレイと同じであり得る。
例えば、4:2:0サンプリングの場合、クロマサンプルは、対応するルマサンプルの下端に位置することができる。4:2:2サンプリングの場合、クロマサンプルは、対応するルマサンプルの位置に重畳して位置することができる。4:4:4サンプリングの場合、ルマサンプルとクロマサンプルはいずれも、重畳した位置に位置することができる。
符号化装置及び復号化装置で使用されるクロマフォーマットは、予め定められることもできる。又は、符号化装置及び復号化装置で適応的に使用されるために、符号化装置から復号化装置へクロマフォーマットがシグナリングされることもできる。一実施例において、クロマフォーマットは、chroma_format_idc及びseparate_colour_plane_flagのうちの少なくとも一つに基づいてシグナリングされることができる。chroma_format_idc及びseparate_colour_plane_flagのうちの少なくとも一つは、DPS、VPS、SPS又はPPSなどの上位レベルシンタックスを介してシグナリングされることができる。例えば、chroma_format_idc及びseparate_colour_plane_flagは、図21のようなSPSシンタックスに含まれることができる。
一方、図22はchroma_format_idc及びseparate_colour_plane_flagのシグナリングを利用したクロマフォーマット分類の一実施例を示す。chroma_format_idcは、符号化画像に適用されたクロマフォーマットを示す情報であり得る。separate_colour_plane_flagは、特定のクロマフォーマットにおいてカラーアレイが分離されて処理されるか否かを示すことができる。例えば、chroma_format_idcの第1値(例えば、0)はモノクロームサンプリングを示すことができる。chroma_format_idcの第2値(例えば、1)は4:2:0サンプリングを示すことができる。chroma_format_idcの第3値(例えば、2)は4:2:2サンプリングを示すことができる。chroma_format_idcの第4値(例えば、3)は4:4:4サンプリングを示すことができる。
4:4:4サンプリングでは、separate_colour_plane_flagの値に基づいて次の内容が適用できる。もしseparate_colour_plane_flagの値が第1値(例えば、0)である場合、2つのクロマアレイのそれぞれは、ルマアレイと同じ高さ及び同じ幅を有するがことができる。このような場合、クロマサンプルアレイのタイプを示すChromaArrayTypeの値は、chroma_format_idcと同一に設定されることができる。もしseparate_colour_plane_flagの値が第2値(例えば、1)である場合、ルマ、Cb及びCrサンプルアレイは、分離されて(separately)処理されることにより、それぞれモノクロームサンプリングされたピクチャのように処理されることができる。このとき、ChromaArrayTypeは0に設定されることができる。
クロマブロックに対するイントラ予測
現在ブロックにイントラ予測が行われる場合、現在ブロックのルマ成分ブロック(ルマブロック)に対する予測、及びクロマ成分ロック(クロマブロック)に対する予測が行われることができ、この場合、クロマブロックに対するイントラ予測モードは、ルマブロックに対するイントラ予測モードとは別個に設定されることができる。
例えば、クロマブロックに対するイントラ予測モードは、イントラクロマ予測モード情報に基づいて指示されることができ、前記イントラクロマ予測モード情報は、intra_chroma_pred_modeシンタックス要素の形態でシグナリングされることができる。一例として、前記イントラクロマ予測モード情報は、Planarモード、DCモード、垂直(vertical)モード、水平(horizontal)モード、DM(Derived Mode)、CCLM(Cross-component linear model)モードのうちのいずれか一つを指すことができる。ここで、Planarモードは0番イントラ予測モード、前記DCモードは1番イントラ予測モード、前記垂直モードは26番イントラ予測モード、前記水平モードは10番イントラ予測モードをそれぞれ示すことができる。DMはdirect modeとも呼ばれることができる。CCLMはLM(linear model)とも呼ばれることができる。
一方、DMとCCLMは、ルマブロックの情報を用いてクロマブロックを予測する従属的なイントラ予測モードである。前記DMは、前記ルマ成分に対するイントラ予測モードと同一のイントラ予測モードが前記クロマ成分に対するイントラ予測モードとして適用されるモードを示すことができる。また、前記CCLMは、クロマブロックに対する予測ブロックを生成する過程でルマブロックの復元されたサンプルをサブサンプリングした後、サブサンプリングされたサンプルにCCLMパラメータα及びβを適用して導出されたサンプルを前記クロマブロックの予測サンプルとして使用するイントラ予測モードを示すことができる。
ここで、predc(i,j)は、現在CU内の前記現在クロマブロックの(i,j)座標の予測サンプルを示すことができる。recL’(i,j)は、前記CU内の前記現在ルマブロックの(i,j)座標の復元サンプルを示すことができる。例えば、前記recL’(i,j)は、前記現在ルマブロックのダウンサンプリング(down-sanmpled)された復元サンプルを示すができる。線形モデル係数α及びβは、シグナリングされることもできるが、周辺サンプルから誘導されることもできる。
仮想パイプラインデータユニット
ピクチャ内におけるパイプライン処理のために、仮想パイプラインデータユニット(Virtual pipeline data units、VPDUs)が定義されることができる。前記VPDUは、一つのピクチャ内における非重畳ユニット(non-overlapping units)と定義されることができる。ハードウェア復号化装置で、多重パイプラインステージによって連続的な(successive)VPDUが同時に処理されることができる。大部分のパイプラインステージ(most pipeline stages)におけるVPDUサイズは、バッファサイズにほぼ比例することができる(roughly proportional)。よって、VPDUサイズを小さく維持することは、ハードウェアの観点からバッファサイズを考慮する上で重要である。大部分のハードウェア復号化装置において、前記VPDUサイズは、最大TB(transform block)サイズと同一に設定されることができる。例えば、VPDUサイズは、64×64(64×64ルマサンプル)サイズであり得る。また、VVCで上述した三分木(TT)及び/又は二分木(BT)パーティションを考慮して、前記VPDUサイズが変更(増加又は減少)されることができる。
一方、VPDUサイズを64×64のルマサンプルサイズに維持するためには、図23に示すようなCUの分割は制限できる。より詳細には、次の制限(restrictions)のうちの少なくとも一つが適用できる。
制限1:幅又は高さが128である或いは幅及び高さが128であるCUに、三分木分割(TT)が許容されない。
制限2:128×N(ここで、Nは64以下で0よりも大きい整数)のCUに水平二分木分割(BT)が許容されない(例えば、幅が128であり且つ高さが128よりも小さいCUに対しては水平二分木分割が許容されない)。
制限3:N×128(ここで、Nは64以下で0よりも大きい整数)のCUに垂直二分木分割(BT)が許容されない(例えば、高さが128であり且つ幅が128よりも小さいCUに対しては、垂直二分木分割が許容されない)。
パイプライン処理のためのクロマブロックの最大サイズ制限の問題
パーティショニング構造及び変換プロセスなどについて前述したように、CUは、複数のTUを生成するために分割できる。CUのサイズが最大TUサイズよりも大きい場合、CUは複数のTUに分割されることができる。これにより、それぞれのTUに対して変換及び/又は逆変換が行われることができる。一般に、ルマブロックのための最大TUサイズは、符号化装置及び/又は復号化装置が実行することが可能な最大可用変換サイズに設定されることができる。一実施例によるCUとTUの分割例示が図24乃至図26に示されている。
図24はルマCUとクロマCUが一実施例によって分割されて生成されたTUの例示を示す。一実施例において、ルマCUの最大サイズは64×64であることができ、最大可用変換サイズは32×32であることができ、非正方形(non-square)TUは許容されないことができる。これにより、ルマ成分変換ブロックの最大サイズは32×32であることができる。このような一実施例において、最大TUサイズは、次の数式のように設定されることができる。
[数3]
maxTbSize=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/max(SubWidthC,SubHeightC)
前記数式において、maxTbSizeは変換ブロック(TB、Tranform block)の最大サイズであり、cIdxは当該ブロックのカラーコンポーネントであり得る。cIdx0はルマ成分、1はCbクロマ成分、2はCrクロマ成分をそれぞれ示すことができる。MaxTbSizeYはルマ成分変換ブロックの最大サイズであり、SubWidthCはルマブロックの幅に対するクロマブロックの幅の比率であり、SubHeightCはルマブロックの高さに対するクロマブロックの高さの比率であり、max(A,B)はA及びBのうちのより大きい値を結果値に返す関数を示す。
前記数式によって、前記実施例において、ルマブロックの場合、ルマ成分変換ブロックの最大サイズに変換ブロックの最大サイズが設定されることができる。ここで、ルマ成分変換ブロックの最大サイズは、符号化時に設定される値であって、ビットストリームを介して符号化装置から復号化装置にシグナルされることができる。
また、前記実施例において、クロマブロックの変換ブロックの最大サイズは、ルマ成分変換ブロックの最大サイズをSubWidthC及びSubHeightCのうちの大きい値で割った値に設定されることができる。ここで、SubWidthC及びSubHeightCは、図23に示すように、ビットストリームを介して符号化装置から復号化装置にシグナリングされるchroma_format_idcとseparate_colour_plane_flagに基づいて決定されることができる。
前記数式によって、前記実施例の場合、変換ブロックの最大サイズは、変換ブロックが持つことができる最小幅及び最小高さのうちのいずれか一つに決定されることができる。これにより、前記実施例でのルマブロック及びクロマブロックのTU分割は、図24のように行われることができる。例えば、図24に示すように、4:2:2フォーマットを有するクロマブロックの場合、変換ブロックの最大サイズが16に決定されることにより、ルマCUの変換ブロックへの分割形態とは異なる形態でクロマCUが多数の変換ブロックに分割されることができる。
図25はルマCUとクロマCUが他の一実施例によって分割して生成されたTUの例示を示す。一実施例において、ルマCUの最大サイズは128×128であることができ、最大可用変換サイズは64×64であることができ、非正方形(non-square)TUは許容されないことができる。これにより、ルマ成分変換ブロックの最大サイズは64×64であることができる。このような一実施例において、変換ブロックの最大サイズは、下記数式のように設定されることができる。下記数式において、min(A,B)は、A及びBのうちの小さい値を返す関数であり得る。
[数4]
maxTbSize=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/min(SubWidthC,SubHeightC)
一方、前記数式によって、変換ブロックの最大サイズとして当該ブロックの幅及び高さのうちの大きい値が適用されることにより、ルマCUとクロマCUは、図25の例のように複数のTUに分割されることができる。
図24及び図25の例において、4:2:2フォーマットを有するクロマCUは、TUに分割される際に、対応するルマCUのTU分割形態とは異なる形態で分割される。しかし、前述したクロマブロックの予測のためのDMモードやCCLMモードのようにルマブロックを参照してクロマブロックの符号化/復号化を行う場合、クロマブロックに対応するルマブロックの符号化(又は復号化)直後に該当するクロマブロックの符号化(又は復号化)を処理することが、パイプライン処理におけるdelayを減らし且つメモリを節約するために効率的である。
しかし、図24の例の場合、1つのルマ変換ブロック2411の符号化処理の後、2つのクロマ変換ブロック2421及び2423の符号化が行われなければならず、これは、他のカラーフォーマット(4:4:4又は4:2:0)との関係において別途の処理を要する。また、図25の例の場合、2つのルマ変換ブロック2511、2512の符号化処理の後、1つのクロマ変換ブロック2521の符号化が行われなければならない。このように、上述したTU分割方法は、4:2:2フォーマットを活用する場合、ルマブロックとそれに対応するクロマブロックとがマッチしないので、パイプライン処理を行うのに別途のプロセスを追加するか、或いはパイプライン処理を行うことができなくなるという問題点が発生する。
パイプライン処理のためのクロマ変換ブロックの最大サイズ制限
以下、前述したVPDUを行うための条件が達成されるように、クロマCUのための最大変換ブロックのサイズを設定する方法を説明する。
図26はルマCUとクロマCUが別の一実施例によって分割されて生成されたTUの例示を示す。一実施例において、ルマCUの最大サイズは128×128であることができ、最大可用変換サイズは64×64であることができ、非正方形(non-square)TUの分割が許容されることができる。これにより、ルマ成分変換ブロックの最大サイズは64×64であることができる。
図26のように、非正方形TUの分割のために、変換ブロックの最大サイズは、幅と高さに対してそれぞれ定義されることができる。例えば、変換ブロックの最大幅(maxTbWidth)と変換ブロックの最大高さ(maxTbHeight)を下記数式のように定義することにより、変換ブロックの最大サイズが定義されることができる。
[数5]
maxTbWidth=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/SubWidthC
[数6]
maxTbHeight=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/SubHeightC
上述した実施例のように、変換ブロックの最大サイズを幅と高さで定義することにより、図26の例のように、4:2:2フォーマットを有するクロマCUの場合にも、対応するルマCUのTU分割形態と同様に、クロマCUをTUに分割することができる。これにより、ルマCUのTUに対応するようにクロマCUのTUが分割されることにより、ルマブロックの符号化(又は復号化)直後にそれに対応するクロマブロックの符号化(又は復号化)を処理することができ、これによりパイプライン処理におけるdelayを減らすことができる。
IBC予測モード及びインター予測モードにおけるクロマ変換ブロックの最大サイズ制限
以下、上述したクロマパイプライン処理のためのクロマ変換ブロックの最大サイズ制限が適用されたIBC(Intra block copy)予測モード及びインター予測モードの実行について説明する。符号化装置及び復号化装置は、以下の記載に従って、クロマ変換ブロックの最大サイズを制限してIBC予測及びインター予測を行うことができ、互いの動作は対応することができる。また、以下のIBC予測についての説明は、インター予測モードにそのまま適用されることができる。これにより、以下の一実施例による復号化装置のIBC予測動作について説明する。
一実施例による復号化装置は、IBC予測を行い、(cbWidth)×(cbHeight)サイズのルマ予測ブロックpredSamplesLと、(cbWidth/SubWidthC)×(cbHeight/SubHeightC)サイズのクロマ予測ブロックpredSamplesCb及びpredSamplesCrを生成することができる。ここで、cbWidthは現在CUの幅であり、cbHeightは現在CUの高さであり得る。
そして、復号化装置は、(cbWidth)×(cbHeight)サイズのルマ残差ブロックresSamplesLと、(cbWidth/SubWidthC)×(cbHeight/SubHeightC)サイズのクロマ残差ブロックresSamplesCr及びresSamplesCbを生成することができる。最後に、復号化装置は、前記予測ブロックと残差ブロックを用いて復元ブロックを生成することができる。
以下、一実施例による復号化装置がIBC予測モードで符号化されたCUの残差ブロックを生成するためにクロマ変換ブロックの最大サイズを制限する方法について説明する。復号化装置は、本ステップで生成された残差ブロックを用いて復元ブロックを生成することができる。
一実施例による復号化装置は、IBC予測モードで符号化されたCUの(nTbW)×(nTbH)サイズの残差ブロックを生成するために、下記の情報をビットストリームから直接取得するか、或いはビットストリームから取得された他の情報から誘導することができる。ここで、nTbW及びnTbHは、現在CUの幅cbWidthと現在CUの高さcbHeightに設定されていてもよい。
-現在ピクチャの左上側サンプルの位置から相対的に現在変換ブロックの左上側サンプルの位置を示すサンプル位置(xTb0,yTb0)
-現在変換ブロックの幅を示すパラメータnTbW
-現在変換ブロックの高さを示すパラメータnTbH
-現在CUのカラーコンポーネントを示すパラメータcIdx
復号化装置は、入力された前記情報から、変換ブロックの最大幅maxTbWidth及び変換ブロックの最大高さmaxTbHeightを次のように誘導することができる。
[数7]
maxTbWidth=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/SubWidthC
[数8]
maxTbHeight=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/SubHeightC
さらに、復号化装置は、現在変換ブロックの左上側サンプル位置(xTbY,yTbY)を、現在CUがルマ成分であるか或いはクロマ成分であるかに基づいて次のように誘導することができる。
[数9]
(xTbY,yTbY)=(cIdx==0)?(xTb0,yTb0):(xTb0*SubWidthC,yTb0*SubHeightC)
前記数式のように、現在変換ブロックがクロマブロックである場合、現在変換ブロックのクロマフォーマットによって決定されるクロマブロックのサイズを反映するために、クロマフォーマットに基づいて変換ブロックの最大幅及び高さと、現在変換ブロックの左上側サンプル位置が決定されることができる。
以下、復号化装置は、次の手順を行って残差ブロックを生成することができる。これについて図27を参照して説明する。まず、復号化装置は、現在変換ブロックを分割するか否かを判断することができる(S2710)。例えば、復号化装置は、現在変換ブロックの幅及び高さが最大変換ブロックの幅及び高さよりも大きいか否かに基づいて、現在変換ブロックを分割するか否かを判断することができる。例えば、復号化装置は、nTbWがmaxTbWidthよりも大きいかnTbHがmaxTbHeightよりも大きい場合、現在変換ブロックを分割して下位変換ブロックを生成することを決定することができる。
現在変換ブロックを下位変換ブロックに分割する場合、上述したように、復号化装置は下位変換ブロックの幅newTbW及び下位変換ブロックの高さnewTbHを下記数式のように誘導することができる(S2720)。
[数10]
newTbW=(nTbW>maxTbWidth)?(nTbW/2):nTbW
[数11]
newTbH=(nTbH>maxTbHeight)?(nTbH/2):nTbH
次に、復号化装置は、現在変換ブロックを分割する下位変換ブロックを用いて残差ブロックを生成することができる(S2730)。一実施例において、図26に示すように、現在変換ブロックは、4:2:2フォーマットのクロマCUの幅と高さを有する変換ブロックであり、下位変換ブロックは、これを非正方四分割する第1下位変換ブロック2621乃至第4下位ブロック2624であり得る。
まず、復号化装置は、第1下位変換ブロックに対して残差ブロックを生成することができる。図26を参照すると、第1下位変換ブロック2621は、サンプル位置(xTb0,yTb0)、下位変換ブロックの幅newTbW及び下位変換ブロックの高さnewTbHに特定できる。復号化装置は、現在CUのカラーコンポーネントcIdxを用いて第1下位変換ブロック2621の残差ブロックを生成することができる。復号化装置は、これに基づいて復元ピクチャ(a modified reconstructed picture)を生成することができる。以後、復元ピクチャに対してインループフィルタリングが行われることができる。
次に、nTbWがmaxTbWidthよりも大きい場合、復号化装置は、第2下位変換ブロックに対して残差ブロックを生成することができる。第2下位変換ブロック2622は、サンプル位置(xTb0+newTbW,yTb0)、下位変換ブロックの幅newTbW、及び下位変換ブロックの高さnewTbHに特定できる。復号化装置は、現在CUのカラーコンポーネントcIdxを用いて第2下位変換ブロック2622の残差ブロックを生成することができる。復号化装置は、それに基づいて復元ピクチャ(a modified reconstructed picture)を生成することができる。その後、復元ピクチャに対してインループフィルタリングが行われることができる。
次に、nTbHがmaxTbHeightよりも大きい場合、復号化装置は、第3下位変換ブロックに対して残差ブロックを生成することができる。第3下位変換ブロック2623は、サンプル位置(xTb0,yTb0+newTbH)、下位変換ブロックの幅newTbW、及び下位変換ブロックの高さnewTbHに特定できる。前述と同様に、復号化装置は、現在CUのカラーコンポーネントcIdxを用いて残差ブロックを生成することができる。
次に、nTbWがmaxTbWidthより大きく且つnTbHがmaxTbHeightよりも大きい場合、復号化装置は、第4下位変換ブロックに対して残差ブロックを生成することができる。第4下位変換ブロック2624は、サンプル位置(xTb0+newTbW,yTb0+newTbH)、下位変換ブロックの幅newTbW、及び下位変換ブロックの高さnewTbHに特定できる。前述と同様に、復号化装置は、現在CUのカラーコンポーネントcIdxを用いて残差ブロックを生成することができる。
一方、復号化装置は、現在変換ブロックの分割が行われない場合、次のようにIBC予測を行うことができる。例えば、nTbWがmaxTbWidthより小さく且つnTbHがmaxTbHeightよりも小さい場合、現在変換ブロックが分割されないことができる。このような場合、復号化装置は、サンプル位置(xTbY,xTbY)、現在CUのカラーコンポーネントcIdx、変換ブロック幅nTbW、及び変換ブロック高さnTbHを入力としてスケーリング及び変換プロセスを行うことで、IBC予測モードのための残差ブロックを生成することができる。復号化装置は、これに基づいて復元ピクチャ(a modified reconstructed picture)を生成することができる。以後、復元ピクチャに対してインループフィルタリングが行われることができる。
イントラ予測モードにおけるクロマ変換ブロックの最大サイズ制限
以下、上述したクロマパイプライン処理のためのクロマ変換ブロックの最大サイズ制限が適用されたイントラ予測モードの実行について説明する。符号化装置と復号化装置は、以下の記載に従って、クロマ変換ブロックの最大サイズを制限してイントラ予測を行うことができ、互いの動作は対応するという点で、以下、復号化装置の動作を説明する。
一実施例による復号化装置は、イントラ予測を行うことで、復元ピクチャ(a reconstructed picture)を生成することができる。復元ピクチャにはインループフィルタリングが行われることができる。一実施例による復号化装置は、イントラ予測を行うために、以下の情報をビットストリームから直接取得するか、或いはビットストリームから取得された他の情報から誘導することができる。
-現在ピクチャの左上側サンプルの位置から相対的に現在変換ブロックの左上側サンプルの位置を示すサンプル位置(xTb0,yTb0)
-現在変換ブロックの幅を示すパラメータnTbW
-現在変換ブロックの高さを示すパラメータnTbH
-現在CUのイントラ予測モードを示すパラメータpredModeIntra
-現在CUのカラーコンポーネントを示すパラメータcIdx
復号化装置は、入力された前記情報から、変換ブロックの最大幅maxTbWidth及び変換ブロックの最大高さmaxTbHeightを次のように誘導することができる。
[数12]
maxTbWidth=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/SubWidthC
[数13]
maxTbHeight=(cIdx==0)?MaxTbSizeY:MaxTbSizeY/SubHeightC
さらに、復号化装置は、現在変換ブロックの左上側サンプル位置(xTbY,yTbY)を、現在CUがルマ成分であるか或いはクロマ成分であるかに基づいて次のように誘導することができる。
[数14]
(xTbY,yTbY)=(cIdx==0)?(xTb0,yTb0):(xTb0*SubWidthC,yTb0*SubHeightC)
以下、復号化装置は、次の手順を行ってイントラ予測を行うことができる。これを図28を参照して説明する。まず、復号化装置は、現在変換ブロックを分割するか否かを判断することができる(S2810)。例えば、復号化装置は、現在変換ブロックの幅及び高さが最大変換ブロックの幅及び高さより大きいか否かに基づいて、現在変換ブロックを分割するか否かを判断することができる。これに加えて、復号化装置は、現在CUにISP(Intra Sub-partiton)が適用されるか否かをさらに考慮して、分割するか否かを判断することもできる。例えば、復号化装置は、nTbWがmaxTbWidthよりも大きいかnTbHがmaxTbHeightよりも大きい場合、現在変換ブロックを分割してイントラ予測を行うことを決定することができる。また、復号化装置は、このような場合にも現在CUにISPが適用されない場合(例えば、IntraSubpartitionSplitTypeの値がNO_ISP_SPLITである。すなわち、現在CUにISPが適用されない)に限って、現在変換ブロックを分割してイントラ予測を行うことを決定することもできる。
現在変換ブロックを下位変換ブロックに分割する場合、復号化装置は、下位変換ブロックの幅newTbW及び下位変換ブロックの高さnewTbHを次の数式のように誘導することができる(S2820)。
[数15]
newTbW=(nTbW>maxTbWidth)?(nTbW/2):nTbW
[数16]
newTbH=(nTbH>maxTbHeight)?(nTbH/2):nTbH
図26を参照して説明する。一実施例において、現在変換ブロックの幅nTbWはクロマCUの幅であり、現在変換ブロックの高さnTbHはクロマCUの高さであり得る。このような実施例において、下位変換ブロックの幅newTbW及び下位変換ブロックの高さnewTbHは、クロマCUを分割する変換ブロック2621の幅及び高さに決定されることができる。つまり、このような実施例において、現在変換ブロックは4:2:2フォーマットのクロマCUの幅及び高さを有する変換ブロックであり、下位変換ブロックはこれを非正方四分割する第1下位変換ブロック2621乃至第4下位ブロック2624であり得る。
次に、復号化装置は、現在変換ブロックを分割する下位変換ブロックを用いてイントラ予測を行うことができる(S2830)。まず、復号化装置は、第1下位変換ブロックに対してイントラ予測を行うことができる。図26を参照すると、第1下位変換ブロック2621は、サンプル位置(xTb0,yTb0)、下位変換ブロックの幅newTbW、及び下位変換ブロックの高さnewTbHに特定できる。復号化装置は、現在CUのイントラ予測モードpredModeIntra及び現在CUのカラーコンポーネントcIdxを用いて第1下位変換ブロック2621のイントラ予測を行うことができる。これにより、第1下位変換ブロック2621に対する復元ピクチャ(a modified reconstructed picture)が生成されることができる。
例えば、復号化装置は、イントラサンプル予測プロセスを行うことにより、(newTbW)×(newTbH)サイズの予測サンプル行列predSamplesを生成することができる。例えば、復号化装置は、サンプル位置(xTb0,yTb0)、イントラ予測モードpredModeIntra、変換ブロック幅(nTbW)newTbW、変換ブロック高さ(nTbH)newTbH、コーディングブロック幅(nCbW)nTbW、コーディングブロック高さ(nCbH)nTbH、及びパラメータcIdxの値を用いてイントラサンプル予測プロセスを行うことができる。
また、復号化装置は、スケーリング及び変換プロセスを行って(newTbW)×(newTbH)サイズの残差サンプル行列resSamplesを生成することができる。例えば、復号化装置は、サンプル位置(xTb0,yTb0)、パラメータcIdxの値、変換ブロック幅(nTbW)newTbW、変換ブロック高さ(nTbH)newTbHに基づいて、スケーリング及び変換プロセスを行うことができる。
また、復号化装置は、カラーコンポーネントに対するピクチャ復元プロセスを行うことにより、復元ピクチャを生成することができる。例えば、復号化装置は、変換ブロック位置を(xTb0,yTb0)に設定し、変換ブロック幅(nTbW)をnewTbWに設定し、変換ブロック高さ(nTbH)をnewTbHに設定し、パラメータcIdxの値を用い、(newTbW)×(newTbH)サイズの予測サンプル行列predSamples、(newTbW)×(newTbH)サイズの残差サンプル行列resSamplesを用いることにより、カラーコンポーネントに対するピクチャ復元プロセスを行うことができる。
次に、nTbWがmaxTbWidthよりも大きい場合、復号化装置は、第2下位変換ブロックに対してイントラ予測を行うことができる。第2下位変換ブロック2622は、サンプル位置(xTb0+newTbW,yTb0)、下位変換ブロックの幅newTbW、及び下位変換ブロックの高さnewTbHに特定できる。復号化装置は、現在CUのイントラ予測モードpredModeIntra及び現在CUのカラーコンポーネントcIdxを用いて第2下位変換ブロック2622のイントラ予測を行うことができる。第2下位変換ブロック2622のイントラ予測は、それに対するサンプル位置に対して第1下位変換ブロック2621のイントラ予測と同様に行われることができる。これにより、第2下位変換ブロック2622に対する復元ピクチャ(a modified reconstructed picture)が生成されることができる。
次に、nTbHがmaxTbHeightよりも大きい場合、復号化装置は、第3下位変換ブロックに対してイントラ予測を行うことができる。第3下位変換ブロック2623は、サンプル位置(xTb0,yTb0+newTbH)、下位変換ブロックの幅newTbW、及び下位変換ブロックの高さnewTbHに特定できる。前述と同様に、復号化装置は、現在CUのイントラ予測モードpredModeIntra及び現在CUのカラーコンポーネントcIdxを用いてイントラ予測を行うことができる。
次に、nTbWがmaxTbWidthより大きく且つnTbHがmaxTbHeightよりも大きい場合、復号化装置は、第4下位変換ブロックに対してイントラ予測を行うことができる。第4下位変換ブロック2624は、サンプル位置(xTb0+newTbW,yTb0+newTbH)、下位変換ブロックの幅newTbW、及び下位変換ブロックの高さnewTbHに特定できる。前述と同様に、復号化装置は、現在CUのイントラ予測モードpredModeIntra及び現在CUのカラーコンポーネントcIdxを用いてイントラ予測を行うことができる。
一方、復号化装置は、現在変換ブロックの分割が行われない場合、次のようにイントラ予測を行うことができる。例えば、nTbWがmaxTbWidthより小さく且つnTbHがmaxTbHeightより小さい場合、又は現在CUにISPが適用される場合(例えば、IntraSubpartitionSplitTypeの値がNO_ISP_SPLITではない)、現在変換ブロックが分割されないことができる。
まず、復号化装置は、パラメータnW、nH、numPartsX及びnumPartsYを次の数式のように誘導することができる。
[数17]
nW=IntraSubPartitionsSplitType==ISP_VER_SPLIT?nTbW/NumIntraSubPartitions:nTbW
nH=IntraSubPartitionsSplitType==ISP_HOR_SPLIT?nTbH/NumIntraSubPartitions:nTbH
numPartsX=IntraSubPartitionsSplitType==ISP_VER_SPLIT?NumIntraSubPartitions:1
numPartsY=IntraSubPartitionsSplitType==ISP_HOR_SPLIT?NumIntraSubPartitions:1
前記数式において、IntraSubPartitionsSplitTypeは、現在CUのISP分割タイプを示し、ISP_VER_SPLITは垂直ISP分割を示し、ISP_HOR_SPLITは水平ISP分割を示す。NumIntraSubPartitionsはISPサブパーティションの個数を示す。
次に、復号化装置は、イントラサンプル予測プロセスを行うことにより、(nTbW)×(nTbH)サイズの予測サンプル行列predSamplesを生成することができる。例えば、復号化装置は、サンプル位置(xTb0+nW*xPartIdx,yTb0+nH*yPartIdx)、イントラ予測モードpredModeIntra、変換ブロックの幅(nTbW)nW、変換ブロックの高さ(nTbH)nH、コーディングブロックの幅(nCbW)nTbW、コーディングブロックの高さ(nCbH)nTbH、及びパラメータcIdxの値を用いてイントラサンプル予測プロセスを行うことができる。ここで、パーティションインデックスxPartIdxの値は0からnumPartX-1までの値を持つことができ、yPartIdxは0からnumPartsY-1までの値を持つことができる。
次に、復号化装置は、スケーリング及び変換プロセスを行うことにより、(nTbW)×(nTbH)サイズの残差サンプル行列resSamplesを生成することができる。例えば、復号化装置は、サンプル位置(xTbY+nW*xPartIdx,yTbY+nH*yPartIdx)、パラメータcIdxの値、変換ブロックの幅(nTbW)nW、変換ブロックの高さ(nTbH)nHに基づいて、スケーリング及び変換プロセスを行うことができる。
次に、復号化装置は、カラーコンポーネントに対するピクチャ復元プロセスを行うことにより、復元ピクチャを生成することができる。例えば、復号化装置は、変換ブロック位置を(xTb0+nW*xPartIdx,yTb0+nH*yPartIdx)に設定し、変換ブロックの幅(nTbW)をnWに設定し、変換ブロックの高さ(nTbH)をnHに設定し、予め設定されたcIdxの値を用い、(nTbW)×(nTbH)サイズの予測サンプル行列predSamples、(nTbW)×(nTbH)サイズの残差サンプル行列resSamplesを用いることにより、カラーコンポーネントに対するピクチャ復元プロセスを行うことができる。
符号化方法
以下、上述した方法を用いて一実施例に係る符号化装置が符号化を行う方法について、図29を参照して説明する。一実施例による符号化装置はメモリ及び少なくとも一つのプロセッサを含み、前記少なくとも一つのプロセッサは以下の符号化方法を行うことができる。
まず、符号化装置は、画像を分割して現在ブロックを決定することができる(S2910)。次に、符号化装置は、前記現在ブロックに対してIBC予測を行って現在ブロックの予測ブロックを生成することができる(S2920)。次に、符号化装置は、前記予測ブロックに基づいて前記現在ブロックの残差ブロックを生成することができる(S2930)。次に、符号化装置は、前記現在ブロックの予測モード情報を符号化することができる(S2940)。このとき、前記残差ブロックは前記現在ブロックの変換ブロックのサイズに基づいて符号化され、前記変換ブロックのサイズは前記現在ブロックのカラーコンポーネントに基づいて決定されることができる。
より詳細には、前記現在ブロックのカラーコンポーネントがクロマ成分である場合、前記変換ブロックのサイズはカラーフォーマットに基づいて決定されることができる。また、前記変換ブロックの幅は変換ブロックの最大幅に基づいて決定され、前記変換ブロックの最大幅は前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定されることができる。
また、前記変換ブロックの高さは、変換ブロックの最大高さに基づいて決定され、前記変換ブロックの最大高さは、前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定されることができる。
また、前記現在ブロックのカラーフォーマットが、クロマブロックの幅及び高さが対応するルマブロックの幅の半分であることを示すフォーマットである場合、前記変換ブロックの最大幅は、前記現在ブロックに対応するルマブロックの変換ブロックの最大幅の半分に決定され、前記変換ブロックの最大高さは、前記現在ブロックに対応するルマブロックの変換ブロックの最大高さの半分に決定されることができる。
また、前記現在ブロックがクロマブロックであれば、前記変換ブロックの左上側サンプルの位置は、前記現在ブロックに対応するルマブロックの左上側サンプルの位置とカラーフォーマットに基づいて決定されることができる。
また、前記現在ブロックがクロマブロックであれば、前記変換ブロックが複数の下位変換ブロックに分割される場合、下位変換ブロックの左上側位置は、変換ブロックの最大幅と変換ブロックの最大高さに基づいて決定されることができる。このような場合、前記変換ブロックの最大幅は、前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定され、前記変換ブロックの最大高さは、前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定されることができる。
また、前記現在ブロックがクロマブロックであれば、前記変換ブロックの幅が変換ブロックの最大幅よりも大きい場合、前記現在ブロックを垂直分割して複数の下位変換ブロックが生成されることができる。前記変換ブロックの最大幅は、前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定されることができる。このような場合、前記複数の下位変換ブロックは、第1下位変換ブロック及び第2下位変換ブロックを含み、前記第1下位変換ブロックの幅と前記第2下位変換ブロックの幅は、前記変換ブロックの最大幅に決定されることができる。
また、前記現在ブロックはクロマブロックであり、前記変換ブロックの高さが変換ブロックの最大高さよりも大きい場合、前記現在ブロックを水平分割して複数の下位変換ブロックが生成され、前記変換ブロックの最大高さは、前記現在ブロックに対応するルマブロックの変換ブロックの最大高さとカラーフォーマットに基づいて決定されることができる。このような場合、前記複数の下位変換ブロックは、第3下位変換ブロック及び第4下位変換ブロックを含み、前記第3下位変換ブロックの高さと前記第4下位変換ブロックの高さは、前記変換ブロックの最大高さに決定されることができる。
復号化方法
以下、上述した方法を用いて、一実施例による復号化装置が復号化を行う方法について、図30を参照して説明する。一実施例による復号化装置は、メモリ及び少なくとも一つのプロセッサを含み、前記少なくとも一つのプロセッサは、以下の復号化方法を行うことができる。
まず、復号化装置は、現在ブロックの予測モードを決定することができる(S3010)。次に、復号化装置は、前記現在ブロックの予測モードがIBC(intra block copy)予測モードである場合、IBC予測モード情報に基づいて前記現在ブロックに対する予測ブロックを生成することができる(S3020)。次に、復号化装置は、前記現在ブロックのカラーコンポーネントに基づいて、前記現在ブロックの変換ブロックのサイズを決定することができる(S3030)。次に、復号化装置は、前記変換ブロックのサイズに基づいて前記現在ブロックの残差ブロックを生成することができる(S3040)。次いで、復号化装置は、前記予測ブロックと前記現在ブロックの残差ブロックに基づいて前記現在ブロックを復元することができる(S3050)。
より詳細には、前記現在ブロックのカラーコンポーネントがクロマ成分である場合、前記変換ブロックのサイズは、カラーフォーマットに基づいて決定されることができる。また、前記変換ブロックの幅は、変換ブロックの最大幅に基づいて決定され、前記変換ブロックの最大幅は、前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定されることができる。
また、前記変換ブロックの高さは、変換ブロックの最大高さに基づいて決定され、前記変換ブロックの最大高さは、前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定されることができる。
また、前記現在ブロックのカラーフォーマットが、クロマブロックの幅及び高さが対応するルマブロックの幅の半分であることを示すフォーマットである場合、前記変換ブロックの最大幅は、前記現在ブロックに対応するルマブロックの変換ブロックの最大幅の半分に決定され、前記変換ブロックの最大高さは、前記現在ブロックに対応するルマブロックの変換ブロックの最大高さの半分に決定されることができる。
また、前記現在ブロックがクロマブロックであれば、前記変換ブロックの左上側サンプルの位置は、前記現在ブロックに対応するルマブロックの左上側サンプルの位置とカラーフォーマットに基づいて決定されることができる。
また、前記現在ブロックがクロマブロックであれば、前記変換ブロックが複数の下位変換ブロックに分割される場合、下位変換ブロックの左上側位置は、変換ブロックの最大幅と変換ブロックの最大高さに基づいて決定されることができる。このような場合、前記変換ブロックの最大幅は、前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定され、前記変換ブロックの最大高さは、前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定されることができる。
また、前記現在ブロックがクロマブロックであれば、前記変換ブロックの幅が変換ブロックの最大幅よりも大きい場合、前記現在ブロックを垂直分割して複数の下位変換ブロックが生成できる。前記変換ブロックの最大幅は、前記現在ブロックに対応するルマブロックの変換ブロックの最大サイズとカラーフォーマットに基づいて決定されることができる。このような場合、前記複数の下位変換ブロックは、第1下位変換ブロック及び第2下位変換ブロックを含み、前記第1下位変換ブロックの幅と前記第2下位変換ブロックの幅は、前記変換ブロックの最大幅に決定されることができる。
また、前記現在ブロックはクロマブロックであり、前記変換ブロックの高さが変換ブロックの最大高さよりも大きい場合、前記現在ブロックを水平分割して複数の下位変換ブロックが生成され、前記変換ブロックの最大高さは、前記現在ブロックに対応するルマブロックの変換ブロックの最大高さとカラーフォーマットに基づいて決定されることができる。このような場合、前記複数の下位変換ブロックは、第3下位変換ブロックの高さと第4下位変換ブロックを含み、前記第3下位変換ブロックの高さと前記第4下位変換ブロックの高さは、前記変換ブロックの最大高さに決定されることができる。
応用実施例
本開示の例示的な方法は、説明の明確性のために動作のシリーズで表現されているが、これは、ステップが行われる順序を制限するためのものではなく、必要な場合には、それぞれのステップが同時に又は異なる順序で行われることもできる。本開示による方法を実現するために、例示するステップにさらに他のステップを含むか、一部のステップを除いて残りのステップを含むか、又は一部のステップを除いて追加の他のステップを含むこともできる。
本開示において、所定の動作(ステップ)を行う画像符号化装置又は画像復号化装置は、当該動作(ステップ)の実行条件や状況を確認する動作(ステップ)を行うことができる。例えば、所定の条件が満足される場合、所定の動作を行うと記載された場合、画像符号化装置又は画像復号化装置は、前記所定の条件が満足されるか否かを確認する動作を行った後、前記所定の動作を行うことができる。
本開示の様々な実施例は、すべての可能な組み合わせを羅列したものではなく、本開示の代表的な態様を説明するためのものであり、様々な実施例で説明する事項は、独立して適用されてもよく、2つ以上の組み合わせで適用されてもよい。
また、本開示の様々な実施例は、ハードウェア、ファームウェア(firmware)、ソフトウェア、又はそれらの組み合わせなどによって実現できる。ハードウェアによる実現の場合、1つ又はそれ以上のASICs(Application Specific Integrated Circuits)、DSPs(Digital Signal Processors)、DSPDs(Digital Signal Processing Devices)、PLDs(Programmable Logic Devices)、FPGAs(Field Programmable Gate Arrays)、汎用プロセッサ(general processor)、コントローラ、マイクロコントローラ、マイクロプロセッサなどによって実現できる。
また、本開示の実施例が適用された画像復号化装置及び画像符号化装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号又はデータ信号を処理するために使用できる。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
図31は本開示の実施例が適用できるコンテンツストリーミングシステムを例示する図である。
図31に示されているように、本開示の実施例が適用されたコンテンツストリーミングシステムは、大きく、符号化サーバ、ストリーミングサーバ、Webサーバ、メディアストレージ、ユーザ装置及びマルチメディア入力装置を含むことができる。
前記符号化サーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに伝送する役割を果たす。他の例として、スマートフォン、カメラ、ビデオカメラなどのマルチメディア入力装置がビットストリームを直接生成する場合、前記符号化サーバは省略できる。
前記ビットストリームは、本開示の実施例が適用された画像符号化方法及び/又は画像符号化装置によって生成でき、前記ストリーミングサーバは、前記ビットストリームを伝送又は受信する過程で一時的に前記ビットストリームを保存することができる。
前記ストリーミングサーバは、Webサーバを介してユーザの要求に基づいてマルチメディアデータをユーザ装置に伝送し、前記Webサーバは、ユーザにどんなサービスがあるかを知らせる媒介体の役割を果たすことができる。ユーザが前記Webサーバに所望のサービスを要求すると、前記Webサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを伝送することができる。この時、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割を果たすことができる。
前記ストリーミングサーバは、メディアストレージ及び/又は符号化サーバからコンテンツを受信することができる。例えば、前記符号化サーバからコンテンツを受信する場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間保存することができる。
前記ユーザ装置の例としては、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイネージなどがあり得る。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバから受信するデータは、分散処理されることができる。
本開示の範囲は、様々な実施例の方法による動作が装置又はコンピュータ上で実行されるようにするソフトウェア又はマシン-実行可能なコマンド(例えば、オペレーティングシステム、アプリケーション、ファームウェア(firmware)、プログラムなど)、及びこのようなソフトウェア又はコマンドなどが保存されて装置又はコンピュータ上で実行できる非一時的なコンピュータ可読媒体(non-transitory computer-readable medium)を含む。