以下、添付図面を参照して、本開示の実施例について、本開示の属する技術分野における通常の知識を有する者が容易に実施し得るように詳細に説明する。しかし、本開示は、様々な異なる形態で実現でき、ここで説明する実施例に限定されない。
本開示の実施例を説明するにあたり、公知の構成又は機能についての具体的な説明が本開示の要旨を不明確にするおそれがあると判断される場合には、それについての詳細な説明は省略する。そして、図面において、本開示についての説明と関係ない部分は省略し、同様の部分には同様の図面符号を付した。
本開示において、ある構成要素が他の構成要素と「連結」、「結合」又は「接続」されているとするとき、これは、直接的な連結関係だけでなく、それらの間に別の構成要素が存在する間接的な連結関係も含むことができる。また、ある構成要素が他の構成要素を「含む」又は「有する」とするとき、これは、特に反対される記載がない限り、別の構成要素を排除するものではなく、別の構成要素をさらに含むことができることを意味する。
本開示において、「第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は、図2の画像符号化装置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分割の概要
前述したように、コーディングユニットは、コーディングツリーユニット(CTU)又は最大コーディングユニット(LCU)をQT/BT/TT(Quad-tree/binary-tree/ternary-tree)構造によって再帰的に分割することにより取得できる。例えば、CTUは、まず、四分木構造に分割されることができる。その後、四分木構造のリーフノードは、マルチタイプツリー構造によってさらに分割されることができる。
四分木による分割は、現在CU(又はCTU)を4等分する分割を意味する。四分木による分割によって、現在CUは、同じ幅と同じ高さを有する4つのCUに分割されることができる。現在CUがそれ以上四分木構造に分割されない場合、現在CUは、四分木構造のリーフノードに該当する。四分木構造のリーフノードに該当するCUは、それ以上分割されず、前述した最終コーディングユニットとして使用できる。又は、四分木構造のリーフノードに該当するCUは、マルチタイプツリー構造によってさらに分割されることができる。
図4はマルチタイプツリー構造によるブロックの分割タイプを示す図である。マルチタイプツリー構造による分割は、二分木構造による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を水平方向に二等分する分割を意味する。図4に示されているように、水平バイナリ分割によって、現在CUの高さの半分の高さ及び現在CUの幅と同じ幅を有する2つのCUが生成されることができる。
三分木構造による2つの分割は、垂直ターナリ分割(vertical ternary splitting、SPLIT_TT_VER)と水平ターナリ分割(horizontal ternary splitting、SPLIT_TT_HOR)を含むことができる。垂直ターナリ分割(SPLIT_TT_VER)は、現在CUを垂直方向に1:2:1の割合で分割する。図4に示されているように、垂直ターナリ分割によって、現在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が生成されることができる。
図5は本開示によるマルチタイプツリーを伴う四分木(quadtree with nested multi-type tree)構造のパーティション分割情報のシグナリングメカニズムを例示する図である。
ここで、CTUは四分木のルート(root)ノードとして扱われ、四分木構造に初めてパーティショニングされる。現在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のとおりに導出されることができる。
一つの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つのクロマ成分のコーディングブロックで構成されることができる。また、同一ブロックツリー構造が適用されるIスライス/タイルグループ内のCUと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が分割される方法は、これに限定されない。
イントラ予測の概要
以下、本開示によるイントラ予測について説明する。
イントラ予測は、現在ブロックの属するピクチャ(以下、現在ピクチャ)内の参照サンプルに基づいて現在ブロックに対する予測サンプルを生成する予測を示すことができる。現在ブロックにイントラ予測が適用される場合、現在ブロックのイントラ予測に使用する周辺参照サンプルが導出されることができる。前記現在ブロックの周辺参照サンプルは、サイズnW×nHの現在ブロックの左側(left)境界に隣接するサンプル及び左下側(bottom-left)に隣接する合計2×nH個のサンプル、現在ブロックの上側(top)境界に隣接するサンプル及び右上側(top-right)に隣接する合計2×nW個のサンプル、及び現在ブロックの左上側(top-left)に隣接する1つのサンプルを含むことができる。又は、前記現在ブロックの周辺参照サンプルは、複数列の上側周辺サンプル及び複数行の左側周辺サンプルを含むこともできる。また、前記現在ブロックの周辺参照サンプルは、サイズnW×nHの現在ブロックの右側(right)境界に隣接する合計nH個のサンプル、現在ブロックの下側(bottom)境界に隣接する合計nW個のサンプル、及び現在ブロックの右下側(bottom-right)に隣接する1つのサンプルを含むこともできる。
ただし、現在ブロックの周辺参照サンプル中の一部は、未だ復号化されていないか或いは利用可能でないことができる。この場合、デコーダは、利用可能なサンプルとして利用可能でないサンプルを代替(substitution)して、予測に使用する周辺参照サンプルを構成することができる。又は、利用可能なサンプルの補間(interpolation)を介して、予測に使用する周辺参照サンプルを構成することができる。
周辺参照サンプルが導出された場合、(i)現在ブロックの周辺(neighboring)参照サンプルの平均(average)又は補間(interpolation)に基づいて予測サンプルを誘導することができ、(ii)現在ブロックの周辺参照サンプルのうちの予測サンプルに対して、特定の(予測)方向に存在する参照サンプルに基づいて前記予測サンプルを誘導することもできる。(i)の場合は非方向性モード又は非角度モード、(ii)の場合は方向性(directional)モード又は角度(angular)モードと呼ばれることができる。
また、前記周辺参照サンプルのうち、前記現在ブロックの予測対象サンプルを基準に、前記現在ブロックのイントラ予測モードの予測方向に位置する第1周辺サンプルとその反対方向に位置する第2周辺サンプルとの補間を介して前記予測サンプルが生成されることもできる。上述した場合は、線形補間イントラ予測(Linear interpolation intra prediction、LIP)と呼ばれることができる。
また、線形モデル(linear model)を用いてルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LM(Linear Model)モードと呼ばれることができる。
また、フィルタリングされた周辺参照サンプルに基づいて前記現在ブロックの一時予測サンプルを導出し、前記従来の周辺参照サンプル、すなわち、フィルタリングされていない周辺参照サンプルのうち、前記イントラ予測モードに応じて導出された少なくとも一つの参照サンプルと前記一時予測サンプルを加重和(weighted sum)して、前記現在ブロックの予測サンプルを導出することもできる。この場合は、PDPC(Position dependent intra prediction)と呼ばれることができる。
また、現在ブロックの周辺多重参照サンプルラインのうち、最も予測精度が高い参照サンプルラインを選択して、当該ラインから予測方向に位置する参照サンプルを用いて予測サンプルを導出することができる。このとき、使用された参照サンプルラインに関する情報(例えば、intra_luma_ref_idx)は、ビットストリームに符号化されてシグナリングされることができる。この場合は、MRL(multi-reference line intra prediction)又はMRLベースのイントラ予測と呼ばれることができる。MRLが適用されない場合、現在ブロックに直接隣接する参照サンプルラインから参照サンプルが導出されることができ、この場合、参照サンプルラインに関する情報はシグナリングされないことができる。
また、現在ブロックを垂直又は水平のサブパーティションに分割し、各サブパーティションに対して同一のイントラ予測モードに基づいてイントラ予測を行うことができる。このとき、イントラ予測の周辺参照サンプルは、各サブパーティション単位で導出されることができる。すなわち、符号化/復号化の順序上、以前のサブパーティションの復元されたサンプルが現在サブパーティションの周辺参照サンプルとして用いられることができる。この場合、現在ブロックに対するイントラ予測モードが前記サブパーティションに同一に適用されるが、前記サブパーティション単位で周辺参照サンプルを導出して用いることにより、場合によってはイントラ予測性能を向上させることができる。このような予測方法は、ISP(intra sub-partitions)又はISPベースのイントラ予測と呼ばれることができる。
前述したイントラ予測技法は、方向性又は非方向性のイントラ予測モードと区分してイントラ予測タイプ又は付加イントラ予測モードなどのさまざまな用語で呼ばれることができる。例えば、前記イントラ予測技法(イントラ予測タイプ又は付加イントラ予測モードなど)は、上述したLIP、LM、PDPC、MRL、ISPのうちの少なくとも一つを含むことができる。前記LIP、LM、PDPC、MRL、ISPなどの特定のイントラ予測タイプを除いた一般イントラ予測方法は、ノーマルイントラ予測タイプと呼ばれることができる。ノーマルイントラ予測タイプは、上述したような特定のイントラ予測タイプが適用されない場合に一般的に適用でき、前述したイントラ予測モードに基づいて予測が行われることができる。一方、必要に応じて導出された予測サンプルに対する後処理フィルタリングが行われることもできる。
具体的には、イントラ予測手順は、イントラ予測モード/タイプ決定ステップ、周辺参照サンプル導出ステップ、イントラ予測モード/タイプベースの予測サンプル導出ステップを含むことができる。また、必要に応じて、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが行われることもできる。
一方、上述したイントラ予測タイプの他にも、ALWIP(affine linear weighted intra prediction)が使用されることができる。前記ALWIPは、LWIP(linear weighted intra prediction)又はMWIP(matrix weighted intra prediction)又はMIP(matrix based intra prediction)と呼ばれることもできる。前記ALWIPが現在ブロックに対して適用される場合、i)アベレージング(averaging)手順が行われた周辺参照サンプルを用いて、ii)マトリクスベクトル積(matrix-vector-multiplication)手順を行い、iii)必要に応じて水平/垂直補間(interpolation)手順をさらに行って前記現在ブロックに対する予測サンプルを導出することができる。前記ALWIPのために使用されるイントラ予測モードは、上述したLIP、PDPC、MRL、ISPイントラ予測又はノーマルイントラ予測で使用されるイントラ予測モード(図13及び/又は図14を参照して説明したイントラ予測モード)とは異なるように構成されることができる。前記ALWIPのためのイントラ予測モードは、ALWIPモード、LWIPモード、MWIPモード又はMIPモードと呼ばれることができる。例えば、前記ALWIPのためのイントラ予測モードに応じて、前記マトリクスベクトル積で使用されるマトリクス及びオフセットが異なるように設定されることができる。ここで、前記マトリクスは、(アフィン)重みマトリクスと呼ばれることができ、前記オフセットは、(アフィン)オフセットベクトル又は(アフィン)バイアス(bias)ベクトルと呼ばれることができる。具体的なALWIP方法については後述する。
図6はイントラ予測ベースのビデオ/画像符号化方法を示すフローチャートである。
図6の符号化方法は、図2の画像符号化装置によって行われることができる。具体的には、ステップS610は、イントラ予測部185によって行われることができ、ステップS620は、レジデュアル処理部によって行われることができる。具体的には、ステップS620は、減算部115によって行われることができる。ステップS630は、エントロピー符号化部190によって行われることができる。ステップS630の予測情報はイントラ予測部185によって導出され、ステップS630のレジデュアル情報はレジデュアル処理部によって導出されることができる。前記レジデュアル情報は前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。前述したように、前記レジデュアルサンプルは、画像符号化装置の変換部120を介して変換係数として導出され、前記変換係数は、量子化部130を介して量子化された変換係数として導出されることができる。前記量子化された変換係数に関する情報がレジデュアルコーディング手順を介してエントロピー符号化部190で符号化されることができる。
画像符号化装置は、現在ブロックに対するイントラ予測を行うことができる(S610)。画像符号化装置は、現在ブロックに対するイントラ予測モード/タイプを決定し、現在ブロックの周辺参照サンプルを導出した後、前記イントラ予測モード/タイプ、及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成することができる。ここで、イントラ予測モード/タイプの決定、周辺参照サンプルの導出及び予測サンプルの生成手順は、同時に行われてもよく、いずれか一つの手順が他の手順よりも先に行われてもよい。
図7は本開示によるイントラ予測部185の構成を例示的に示す図である。
図7に示すように、画像符号化装置のイントラ予測部185は、イントラ予測モード/タイプ決定部186、参照サンプル導出部187及び/又は予測サンプル導出部188を含むことができる。イントラ予測モード/タイプ決定部186は、前記現在ブロックに対するイントラ予測モード/タイプを決定することができる。参照サンプル導出部187は、前記現在ブロックの周辺参照サンプルを導出することができる。予測サンプル導出部188は、前記現在ブロックの予測サンプルを導出することができる。一方、たとえ図示されてはいないが、後述する予測サンプルフィルタリング手順が行われる場合、イントラ予測部185は、予測サンプルフィルタ部(図示せず)をさらに含むこともできる。
画像符号化装置は、複数のイントラ予測モード/タイプのうち、前記現在ブロックに対して適用されるモード/タイプを決定することができる。画像符号化装置は、前記イントラ予測モード/タイプに対するレート歪みコスト(RD cost)を比較し、前記現在ブロックに対する最適のイントラ予測モード/タイプを決定することができる。
一方、画像符号化装置は、予測サンプルフィルタリング手順を行うこともできる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。前記予測サンプルフィルタリング手順によって、前記予測サンプルのうちの一部又は全部がフィルタリングされることができる。場合によっては、前記予測サンプルフィルタリング手順は省略できる。
再び図6を参照して、画像符号化装置は、予測サンプル又はフィルタリングされた予測サンプルに基づいて、前記現在ブロックに対するレジデュアルサンプルを生成することができる(S620)。画像符号化装置は、現在ブロックの原本サンプルから前記予測サンプルを減算して前記レジデュアルサンプルを導出することができる。つまり、画像符号化装置は、原本サンプル値から対応する予測サンプル値を減算することにより、レジデュアルサンプル値を導出することができる。
画像符号化装置は、前記イントラ予測に関する情報(予測情報)、及び前記レジデュアルサンプルに関するレジデュアル情報を含む画像情報を符号化することができる(S630)。前記予測情報は、前記イントラ予測モード情報及び/又は前記イントラ予測技法情報を含むことができる。画像符号化装置は、符号化された画像情報をビットストリーム形式で出力することができる。出力されたビットストリームは、記憶媒体又はネットワークを介して画像復号化装置へ伝達されることができる。
前記レジデュアル情報は、後述するレジデュアルコーディングシンタックスを含むことができる。画像符号化装置は、前記レジデュアルサンプルを変換/量子化し、量子化された変換係数を導出することができる。前記レジデュアル情報は、前記量子化された変換係数に対する情報を含むことができる。
一方、前述したように、画像符号化装置は、復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成することができる。このために、画像符号化装置は、前記量子化された変換係数をさらに逆量子化/逆変換処理して(修正された)レジデュアルサンプルを導出することができる。このようにレジデュアルサンプルを変換/量子化した後、再び逆量子化/逆変換を行う理由は、画像復号化装置から導出されるレジデュアルサンプルと同一のレジデュアルサンプルを導出するためである。画像符号化装置は、前記予測サンプルと、前記(修正された)レジデュアルサンプルに基づいて、前記現在ブロックに対する復元サンプルを含む復元ブロックを生成することができる。前記復元ブロックに基づいて、前記現在ピクチャに対する復元ピクチャが生成されることができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、前述したとおりである。
図8はイントラ予測ベースのビデオ/画像復号化方法を示すフローチャートである。
画像復号化装置は、前記画像符号化装置で行われた動作と対応する動作を行うことができる。
図8の復号化方法は、図3の画像復号化装置によって行われることができる。ステップS810乃至S830は、イントラ予測部265によって行われることができ、ステップS810の予測情報及びステップS840のレジデュアル情報は、エントロピー復号化部210によってビットストリームから取得されることができる。画像復号化装置のレジデュアル処理部は、前記レジデュアル情報に基づいて、現在ブロックに対するレジデュアルサンプルを導出することができる(S840)。具体的には、前記レジデュアル処理部の逆量子化部220は、前記レジデュアル情報に基づいて導出された、量子化された変換係数に基づいて、逆量子化を行って変換係数を導出し、前記レジデュアル処理部の逆変換部230は、前記変換係数に対する逆変換を行って前記現在ブロックに対するレジデュアルサンプルを導出することができる。ステップS850は、加算部235又は復元部によって行われることができる。
具体的には、画像復号化装置は、受信された予測情報(イントラ予測モード/タイプ情報)に基づいて、現在ブロックに対するイントラ予測モード/タイプを導出することができる(S810)。また、画像復号化装置は、前記現在ブロックの周辺参照サンプルを導出することができる(S820)。画像復号化装置は、前記イントラ予測モード/タイプ及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成することができる(S830)。この場合、画像復号化装置は、予測サンプルフィルタリング手順を行うことができる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。前記予測サンプルフィルタリング手順によって、前記予測サンプルのうちの一部又は全部がフィルタリングされることができる。場合によっては、予測サンプルフィルタリング手順は省略できる。
画像復号化装置は、受信されたレジデュアル情報に基づいて、前記現在ブロックに対するレジデュアルサンプルを生成することができる(S840)。画像復号化装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを生成し、前記復元サンプルを含む復元ブロックを導出することができる(S850)。前記復元ブロックに基づいて前記現在ピクチャに対する復元ピクチャが生成されることができる。前記復元ピクチャに基づいてインループフィルタリング手順などがさらに適用できるのは、前述したとおりである。
図9は本開示によるイントラ予測部265の構成を例示的に示す図である。
図9に示すように、画像復号化装置のイントラ予測部265は、イントラ予測モード/タイプ決定部266、参照サンプル導出部267及び予測サンプル導出部268を含むことができる。イントラ予測モード/タイプ決定部266は、画像符号化装置のイントラ予測モード/タイプ決定部186で生成されてシグナリングされたイントラ予測モード/タイプ情報に基づいて、前記現在ブロックに対するイントラ予測モード/タイプを決定し、参照サンプル導出部266は、現在ピクチャ内の復元された参照領域から前記現在ブロックの周辺参照サンプルを導出することができる。予測サンプル導出部268は、前記現在ブロックの予測サンプルを導出することができる。一方、たとえ図示されてはいないが、前述した予測サンプルフィルタリング手順が行われる場合、イントラ予測部265は、予測サンプルフィルタ部(図示せず)をさらに含むこともできる。
前記イントラ予測モード情報は、例えばMPM(most probable mode)が前記現在ブロックに適用されるか、それともリメイニングモード(remaining mode)が適用されるかを示すフラグ情報(例えば、intra_luma_mpm_flag)を含むことができ、前記MPMが前記現在ブロックに適用される場合、前記イントラ予測モード情報は、前記イントラ予測モード候補(MPM候補)のうちのいずれか一つを指すインデックス情報(例えば、intra_luma_mpm_idx)をさらに含むことができる。前記イントラ予測モード候補(MPM候補)は、MPM候補リスト又はMPMリストで構成されることができる。また、前記MPMが前記現在ブロックに適用されない場合、前記イントラ予測モード情報は、前記イントラ予測モード候補(MPM候補)を除いた残りのイントラ予測モードのうちのいずれか一つを指すリメイニングモード情報(例えば、intra_luma_mpm_remainder)をさらに含むことができる。画像復号化装置は、前記イントラ予測モード情報に基づいて、前記現在ブロックのイントラ予測モードを決定することができる。また、上述したALWIPのために別途のMPMリストが構成できる。MPM候補モードは、現在ブロックの周辺ブロック(例えば、左側周辺ブロック及び上側周辺ブロック)のイントラ予測モード及び追加的な候補モードを含むことができる。
また、前記イントラ予測技法は、様々な形態で実現できる。一例として、前記イントラ予測技法情報は、前記イントラ予測技法のうちのいずれか一つを指示するイントラ予測技法のインデックス情報を含むことができる。他の例として、前記イントラ予測技法情報は、前記MRLが前記現在ブロックに適用されるか、及び、適用される場合には何番目の参照サンプルラインが用いられるかを示す参照サンプルライン情報(例えば、intra_luma_ref_idx)、前記ISPが前記現在ブロックに適用されるかを示すISPフラグ情報(例えば、intra_subpartitions_mode_flag)、前記ISPが適用される場合にサブパーティションの分割タイプを指示するISPタイプ情報(例えば、intra_subpartitions_split_flag)、PDPCの適用如何を示すフラグ情報、又はLIPの適用如何を示すフラグ情報のうちの少なくとも一つを含むことができる。本開示において、ISPフラグ情報はISP適用インジケータと呼ばれることができる。また、前記イントラ予測タイプ情報は、前記現在ブロックにALWIPが適用されるか否かを示すALWIPフラグを含むことができる。
前記イントラ予測モード情報及び/又は前記イントラ予測技法情報は、本開示で説明されたコーディング方法を介して符号化/復号化されることができる。例えば、前記イントラ予測モード情報及び/又は前記イントラ予測技法情報は、truncated(rice)binary codeに基づいてエントロピーコーディング(例えば、CABAC、CAVLC)を介して符号化/復号化できる。
以下、本開示によるイントラ予測モード/タイプ決定方法についてより詳細に説明する。
現在ブロックにイントラ予測が適用される場合、周辺ブロックのイントラ予測モードを用いて、現在ブロックに適用されるイントラ予測モードが決定されることができる。例えば、画像復号化装置は、現在ブロックの周辺ブロック(例えば、左側及び/又は上側周辺ブロック)のイントラ予測モード及び追加的な候補モードに基づいて導出されたmpm(most probable mode)リストを構成し、受信されたmpmインデックスに基づいてmpmリスト内のmpm候補のうちのいずれかを選択することができる。又は画像復号化装置は、前記mpmリストに含まれていない残りのイントラ予測モードのうちのいずれか一つをリメイニングイントラ予測モード情報に基づいて選択することができる。例えば、現在ブロックに適用されるイントラ予測モードがmpm候補の中にあるか(すなわち、mpmリストに含まれているか)、それともリメイニングモードの中にあるかは、mpm flag(例えば、intra_luma_mpm_flag)に基づいて指示できる。mpm flagの値1は、前記現在ブロックに対するイントラ予測モードがmpm候補(mpmリスト)内にあることを示すことができ、mpm flagの値0は、前記現在ブロックに対するイントラ予測モードがmpm候補(mpmリスト)内にないことを示すことができる。前記mpmインデックスは、mpm_idx又はintra_luma_mpm_idxシンタックス要素の形態でシグナリングされることができ、前記リメイニングイントラ予測モード情報は、rem_intra_luma_pred_mode又はintra_luma_mpm_remainderシンタックス要素の形態でシグナリングされることができる。例えば、前記リメイニングイントラ予測モード情報は、全体イントラ予測モードのうち、前記mpm候補(mpmリスト)に含まれない残りのイントラ予測モードを予測モード番号の順にインデキシングしてその中のいずれか一つを指すことができる。前記イントラ予測モードは、ルマ成分(サンプル)に対するイントラ予測モードであることができる。以下、イントラ予測モード情報は、前記mpm flag(例えば、intra_luma_mpm_flag)、前記mpmインデックス(例えば、mpm_idx又はintra_luma_mpm_idx)、前記リメイニングイントラ予測モード情報(rem_intra_luma_pred_mode又はintra_luma_mpm_remainder)のうちの少なくとも一つを含むことができる。本開示において、MPMリストは、MPM候補リストやcandModeListなどの様々な用語で呼ばれることができる。
図10は画像符号化装置におけるイントラ予測モードシグナリング手順を示すフローチャートである。
図10を参照すると、画像符号化装置は、現在ブロックに対するMPMリストを構成することができる(S1010)。前記MPMリストは、前記現在ブロックに適用される可能性が高い候補イントラ予測モード(MPM候補)を含むことができる。前記MPMリストは、周辺ブロックのイントラ予測モードを含むこともでき、予め定められた方法に基づいて特定のイントラ予測モードをさらに含むこともできる。
画像符号化装置は、現在ブロックのイントラ予測モードを決定することができる(S1020)。画像符号化装置は、様々なイントラ予測モードに基づいて予測を行うことができ、これに基づいたRDO(rate-distortion optimization)を行って最適のイントラ予測モードを決定することができる。画像符号化装置は、この場合、前記MPMリストに含まれているMPM候補のみを用いて前記最適のイントラ予測モードを決定することもでき、或いは前記MPMリストに含まれているMPM候補だけでなく、残りのイントラ予測モードをさらに用いて前記最適のイントラ予測モードを決定することもできる。具体的には、例えば、もし前記現在ブロックのイントラ予測タイプがノーマルイントラ予測タイプではない特定のタイプ(例えば、LIP、MRL又はISP)である場合には、画像符号化装置は、前記MPM候補のみを用いて前記最適のイントラ予測モードを決定することができる。つまり、この場合には、前記現在ブロックに対するイントラ予測モードは、前記MPM候補のみの中から決定されることができ、この場合には、前記mpm flagを符号化/シグナリングしないことができる。画像復号化装置は、前記特定のタイプの場合には、mpm flagのシグナリングを別途受けなくても、mpm flagが1であると推定することができる。
一方、一般的に前記現在ブロックのイントラ予測モードが前記MPMリスト内にあるMPM候補のうちのいずれか一つである場合、画像符号化装置は、前記MPM候補のうちのいずれか一つを指すmpmインデックス(mpm idx)を生成することができる。もし、前記現在ブロックのイントラ予測モードが前記MPMリスト内にない場合には、前記MPMリストに含まれていない残りのイントラ予測モードのうち、前記現在ブロックのイントラ予測モードと同じモードを指すリメイニングイントラ予測モード情報を生成することができる。
画像符号化装置は、イントラ予測モード情報を符号化してビットストリーム形式で出力することができる(S1030)。前記イントラ予測モード情報は、前述したmpm flag、mpmインデックス及び/又はリメイニングイントラ予測モード情報を含むことができる。一般に、mpmインデックスとリメイニングイントラ予測モード情報は、alternativeな関係で一つのブロックに対するイントラ予測モードを指示するにあたり、同時にはシグナリングされない。つまり、mpm flag値が1であるとき、mpmインデックスがシグナリングされ、mpm flag値が0であるとき、リメイニングイントラ予測モード情報がシグナリングされることができる。ただし、前述したように、現在ブロックに特定のイントラ予測タイプが適用される場合には、mpm flagがシグナリングされず、その値が1に推論(infer)され、mpmインデックスのみシグナリングされることもできる。すなわち、この場合には、前記イントラ予測モード情報は、前記mpmインデックスのみを含むこともできる。
図10に示されている例において、S1020はS1010よりも後で行われると図示されたが、これは一つの例示であり、S1020は、S1010よりも先に行われてもよく、同時に行われてもよい。
図11は画像復号化装置におけるイントラ予測モード決定手順を示すフローチャートである。
画像復号化装置は、画像符号化装置で決定及びシグナリングされたイントラ予測モード情報に基づいて、現在ブロックのイントラ予測モードを決定することができる。
図11を参照すると、画像復号化装置は、ビットストリームからイントラ予測モード情報を取得することができる(S1110)。前記イントラ予測モード情報は、前述したようにmpm flag、mpmインデックス、及びリメイニングイントラ予測モードのうちの少なくとも一つを含むことができる。
画像復号化装置は、MPMリストを構成することができる(S1120)。前記MPMリストは、前記画像符号化装置で構成されたMPMリストと同様に構成される。すなわち、前記MPMリストは、周辺ブロックのイントラ予測モードを含むこともでき、予め定められた方法に従って特定のイントラ予測モードをさらに含むこともできる。
図11に示された例において、S1120はS1110よりも後で行われると図示されたが、これは一つの例示であり、S1120は、S1110よりも先に行われてもよく、同時に行われてもよい。
画像復号化装置は、前記MPMリスト及び前記イントラ予測モード情報に基づいて現在ブロックのイントラ予測モードを決定する(S1130)。ステップS1130は、図12を参照してより具体的に説明する。
図12はイントラ予測モード導出手順をより具体的に説明するためのフローチャートである。
図12のステップS1210及びS1220は、それぞれ図11のステップS1110及びS1120に対応することができる。よって、ステップS1210及びS1220についての具体的な説明は省略する。
画像復号化装置は、ビットストリームからイントラ予測モード情報を取得し、MPMリストを構成した後(S1210、S1220)、所定の条件を判断することができる(S1230)。具体的には、図12に示すように、mpm flagの値が1である場合(S1230でYes)、画像復号化装置は、前記MPMリスト内のMPM候補のうち、前記mpmインデックスが指し示す候補を、前記現在ブロックのイントラ予測モードとして導出することができる(S1240)。他の例として、前記mpm flagの値が0である場合(S1230でNo)、画像復号化装置は、前記MPMリストに含まれていない残りのイントラ予測モードのうち、前記リメイニングイントラ予測モード情報が指すイントラ予測モードを前記現在ブロックのイントラ予測モードとして導出することができる(S1250)。一方、別の例として、前記現在ブロックのイントラ予測タイプが特定のタイプ(例えば、LIP、MRL又はISPなど)である場合(S1230でYes)、画像復号化装置は、前記mpm flagの確認がなくても、前記MPMリスト内で前記mpmインデックスが指し示す候補を前記現在ブロックのイントラ予測モードとして導出することもできる(S1240)。
図13は本開示の一実施例に係るイントラ予測方向を示す図である。
イントラ予測モードは、一例として、2つの非方向性イントラ予測モードと、33個の方向性イントラ予測モードと、を含むことができる。前記非方向性イントラ予測モードは、プランナー(planar)イントラ予測モード及びDCイントラ予測モードを含むことができ、前記方向性イントラ予測モードは、2番乃至34番のイントラ予測モードを含むことができる。前記プランナーイントラ予測モードは、プランナーモードと呼ばれることができ、前記DCイントラ予測モードは、DCモードと呼ばれることができる。
又は、自然画像(natural video)で提示された任意のエッジ方向(edge direction)をキャプチャするために、図13に示すように、イントラ予測モードは、2つの非方向性イントラ予測モードと、65個の拡張された方向性イントラ予測モードと、を含むことができる。前記非方向性イントラ予測モードは、プランナーモード及びDCモードを含むことができ、前記方向性イントラ予測モードは、2番乃至66番のイントラ予測モードを含むことができる。前記拡張されたイントラ予測モードは、すべてのサイズのブロックに適用されることができ、ルマ成分(ルマブロック)及びクロマ成分(クロマブロック)の両方ともに適用されることができる。
又は、前記イントラ予測モードは、2つの非方向性イントラ予測モードと129個の方向性イントラ予測モードを含むことができる。前記非方向性イントラ予測モードは、プランナーモード及びDCモードを含むことができ、前記方向性イントラ予測モードは、2番乃至130番のイントラ予測モードを含むことができる。
一方、前記イントラ予測モードは、前述したイントラ予測モードの他にも、クロマサンプルのためのCCLM(cross-component linear model)モードをさらに含むことができる。CCLMモードは、LMパラメータの導出のために、左側サンプルを考慮するか、上側サンプルを考慮するか、両方を考慮するかによってL_CCLM、T_CCLM、LT_CCLMに分けられることができ、クロマ成分に対してのみ適用されることができる。
イントラ予測モードは、例えば、下記表2に示すようにインデキシングできる。
図14は本開示の他の実施例に係るイントラ予測方向を示す図である。図14において、破線方向は、正方形ではないブロックのみに適用される広角(wide angle)モードを示す。図14に示すように、自然画像(natural video)で提示された任意のエッジ方向(edge direction)をキャプチャするために、一実施例によるイントラ予測モードは、2つの非方向性イントラ予測モードと共に93個の方向性イントラ予測モードを含むことができる。非方向性イントラ予測モードは、プランナーモード及びDCモードを含むことができる。方向性イントラ予測モードは、図14の矢印で示すように、2番乃至80番と-1番乃至-14番で構成されるイントラ予測モードを含むことができる。前記プランナーモードはINTRA_PLANAR、DCモードはINTRA_DCとそれぞれ表記されることができる。そして、方向性イントラ予測モードは、INTRA_ANGULAR-14乃至INTRA_ANGULAR-1及びINTRA_ANGULAR2乃至INTRA_ANGULAR80のように表記されることができる。
一方、上述したようにALWIPが現在ブロックに適用される場合(例えば、LWIPフラグ又はintra_lwip_flagの値が1である場合)、前記ALWIPのためのMPMリストが別途構成されることができ、前記ALWIPのための前記イントラ予測モード情報に含まれることができるMPMフラグはintra_lwip_mpm_flag、MPMインデックスはintra_lwip_mpm_idx、リメイニングイントラ予測モード情報はintra_lwip_mpm_remainderとそれぞれ呼ばれることができる。
また、ALWIPのために様々な予測モードが使用されることができ、ALWIPのためのイントラ予測モードに応じてALWIPのためのマトリクス及びオフセットを導出することができる。上述したように、前記マトリクスは(アフィン)重みマトリクスと呼ばれることができ、前記オフセットは(アフィン)オフセットベクトル又は(アフィン)バイアス(bias)ベクトルと呼ばれることができる。前記ALWIPのためのイントラ予測モードの数は、現在ブロックのサイズに基づいて異なるように設定されることができる。例えば、i)現在ブロック(例えば、CB又はTB)の高さ及び幅がそれぞれ4である場合には、35個のイントラ予測モード(すなわち、イントラ予測モード0乃至34)が利用可能であることができ、ii)現在ブロックの高さ及び幅の両方ともが8以下である場合には、19個のイントラ予測モード(すなわち、イントラ予測モード0乃至18)が利用可能であることができ、iii)その他の場合には、11個のイントラ予測モード(すなわち、イントラ予測モード0乃至10)が利用可能であることができる。例えば、現在ブロックの高さ及び幅がそれぞれ4である場合をブロックサイズタイプ0とし、現在ブロックの高さ及び幅の両方ともが8以下である場合をブロックサイズタイプ1とし、その他の場合をブロックサイズタイプ2とするとき、ALWIPのためのイントラ予測モードの数は、表3のようにまとめられることができる。ただし、これは例示であり、ブロックサイズタイプ及び利用可能なイントラ予測モードの数は変更されることができる。
一方、MPMリストは、N個のMPMを含むように構成されることもできる。この時、Nは5又は6であることができる。
MPMリストを構成するために、後述する3種類のモードが考慮されることができる。
-デフォルトイントラモード(Default intra modes)
-周辺イントラモード(Neighbour intra modes)
-導出されたイントラモード(Derived intra modes)
前記周辺イントラモードのために、二つの周辺ブロック、すなわち、左側周辺ブロック(A)及び上側周辺ブロック(B)が考慮されることができる。
また、MPMリストを構成するために、次の初期化されたデフォルトMPMが考慮されることができる。
Default 6 MPM modes={A、Planar(0) or DC(1)、Vertical(50)、HOR(18)、VER-4(46)、VER+4(54)}
前記2つの周辺イントラモードに対するプルーニング(pruning)プロセスが行われることにより、MPMリストが構成されることができる。前記2つの周辺イントラモードが互いに同一であり、前記周辺イントラモードがDC(1)モードよりも大きい場合には、MPMリストは{A、Planar、DC}モードを含み、3つの導出されたイントラモードを含むことができる。3つの導出されたイントラモードは、周辺イントラモードに所定のオフセット値を加算するか及び/又はモジュロ演算を行うことにより取得されることができる。前記2つの周辺イントラモードが互いに異なる場合、前記2つの周辺イントラモードは、一番目のMPMモード及び二番目のMPMモードに割り当てられ、残りの4つのMPMモードは、デフォルトモード及び/又は周辺イントラモードから導出されることができる。MPMリスト生成過程で、プルーニングプロセスはMPMリストに同一のモードが重複しないようにするために行われることができる。MPMモード以外のモードのエントロピー符号化のためにTBC(Truncated Binary Code)が使用されることができる。
上述したMPMリスト構成方法は、現在ブロックにALWIPが適用されていない場合に使用できる。例えば、上述したMPMリスト構成方法は、LIP、PDPC、MRL、ISPイントラ予測又はノーマルイントラ予測で使用されるイントラ予測モードの導出のために使用できる。一方、前記左側周辺ブロック又は前記上側周辺ブロックは、上述したALWIPに基づいてコーディングできる。すなわち、前記左側周辺ブロック又は前記上側周辺ブロックのコーディングの際に、ALWIPが適用できる。この場合、ALWIPが適用された周辺ブロック(左側周辺ブロック/上側周辺ブロック)のALWIPイントラ予測モード番号を、そのままALWIPが適用されていない現在ブロックのための前記MPMリストに使用することは、適切ではない。したがって、この場合、一例として、ALWIPが適用された周辺ブロック(左側周辺ブロック/上側周辺ブロック)のイントラ予測モードは、DC又はプランナーモードであると見做すことができる。つまり、現在ブロックのMPMリストを構成するとき、ALWIPで符号化された周辺ブロックのイントラ予測モードは、DC又はプランナーモードで代替できる。又は、別の例として、ALWIPが適用された周辺ブロック(左側周辺ブロック/上側周辺ブロック)のイントラ予測モードをマッピングテーブルに基づいて一般イントラ予測モードにマッピングさせて現在ブロックのMPMリストの構成に利用することができる。この場合、現在ブロックの前記ブロックサイズタイプに基づいて前記マッピングを行うことができる。例えば、前記マッピングテーブルは、表4のとおりに示すことができる。
前記表4において、ALWIP IntraPredModeは周辺ブロック(左側周辺ブロック/上側周辺ブロック)のALWIPイントラ予測モードを示し、ブロックサイズタイプ(sizeId)は周囲ブロック又は現在ブロックのブロックサイズタイプを示す。ブロックサイズタイプ値0、1、2の下の数字は、各ブロックサイズタイプの場合に、ALWIPイントラ予測モードがマッピングされる一般イントラ予測モードを示す。例えば、現在ブロックのブロックサイズタイプが0であり、周辺ブロックのALWIPイントラ予測モード番号が10である場合、マッピングされる一般イントラ予測モード番号は18であることができる。ただし、前記マッピング関係は、例示であり、変更可能である。
一方、現在ブロックにALWIPが適用される場合、前記ALWIPが適用される現在ブロックのためのMPMリストが別途に構成できる。前記MPMリストは、現在ブロックにALWIPが適用されない場合のMPMリストと区分するために、ALWIP MPMリスト(又はLWIP MPMリスト、candLwipModeList)などのさまざまな名前で呼ばれることができる。以下、区分のためにALWIP MPMリストと表現するが、これは単にMPMリストと呼ばれることもできる。
前記ALWIP MPMリストは、n個の候補を含むことができ、例えば、nは3であることができる。前記ALWIP MPMリストは、前記現在ブロックの左側周辺ブロック及び上側周辺ブロックに基づいて構成されることができる。ここで、前記左側周辺ブロックは、前記現在ブロックの左側境界に隣接する周辺ブロックのうちの最も上側に位置したブロックを示すことができる。また、前記上側周辺ブロックは、前記現在ブロックの上側境界に隣接する周辺ブロックのうちの最も左側に位置したブロックを示すことができる。
例えば、前記左側周辺ブロックにALWIPが適用された場合、第1候補イントラ予測モード(又はcandLwipModeA)は、前記左側周辺ブロックのALWIPイントラ予測モードと同様に設定されることができる。また、例えば、前記上側周辺ブロックにALWIPが適用された場合、第2候補イントラ予測モード(又はcandLwipModeB)は、前記上側周辺ブロックのALWIPイントラ予測モードと同一に設定されることができる。一方、前記左側周辺ブロックや前記上側周辺ブロックは、ALWIPではないイントラ予測に基づいてコーディングできる。すなわち、前記左側周辺ブロック又は前記上側周辺ブロックのコーディングの際に、ALWIPではない他のイントラ予測タイプが適用できる。この場合、ALWIPが適用されていない周辺ブロック(左側周辺ブロック/上側周辺ブロック)の一般イントラ予測モード番号を、そのままALWIPが適用された現在ブロックのための候補イントラモードとして使用することは、適切ではない。したがって、この場合、一例として、ALWIPが適用されていない周辺ブロック(左側周辺ブロック/上側周辺ブロック)のALWIPイントラ予測モードは、特定の値(例えば、0、1又は2など)のALWIPイントラ予測モードであると見做すことができる。又は、別の例として、ALWIPが適用されていない周辺ブロック(左側周辺ブロック/上側周辺ブロック)の一般イントラ予測モードをマッピングテーブルに基づいてALWIPイントラ予測モードにマッピングさせてALWIP MPMリストの構成に利用することができる。この場合、現在ブロックの前記ブロックサイズタイプに基づいて前記マッピングを行うことができる。例えば、前記マッピングテーブルは、表5のとおりに示すことができる。
表5において、IntraPredModeYは、周辺ブロック(左側周辺ブロック/上側周辺ブロック)のイントラ予測モードを示す。ここで、前記周辺ブロックのイントラ予測モードは、ルマ成分(サンプル)に対するイントラ予測モード、すなわちルマイントラ予測モードであることができる。ブロックサイズタイプ(sizeId)は、周辺ブロック又は現在ブロックのブロックサイズタイプを示す。ブロックサイズタイプ値0、1、2の下の数字は、各ブロックサイズタイプである場合に一般イントラ予測モードがマッピングされるALWIPイントラ予測モードを示す。例えば、現在ブロックのブロックサイズタイプが0であり、周辺ブロックの一般イントラ予測モードが10である場合、マッピングされるALWIPイントラ予測モード番号は9であることができる。ただし、前記マッピング関係は、例示であり、変更可能である。
また、前記周辺ブロック(例えば、左側周辺ブロック/上側周辺ブロック)が利用可能ではないか(例えば、現在ピクチャの外部に位置するか、或いは現在タイル/タイルグループ/スライスの外側に位置するなど)、或いは、周辺ブロックにALWIPが適用されたとしても、周辺ブロックのALWIPイントラ予測モードがブロックサイズタイプに応じて現在ブロックに利用可能でないこともある。この場合には、第1候補及び/又は第2候補のために予め定義された特定のALWIPイントラ予測モードが前記第1候補イントラ予測モード又は第2候補イントラ予測モードとして使用できる。また、第3候補のために予め定義された特定のALWIPイントラ予測モードが第3候補イントラ予測モードとして使用されることもできる。
例えば、前記予め定義された特定のALWIPイントラ予測モードは、表6のとおりに示すことができる。
前記第1候補イントラ予測モード及び前記第2候補イントラ予測モードに基づいて、前記ALWIP MPMリストを構成することができる。例えば、前記第1候補イントラ予測モード及び前記第2候補イントラ予測モードが互いに異なる場合、前記第1候補イントラ予測モードをALWIP MPMリストの0番目の候補(例えば、lwipMpmcand[0])に入れ、前記第2候補イントラ予測モードをALWIP MPMリストの1番目の候補(例えば、lwipMpmcand[1])に入れることができる。ALWIP MPMリストの2番目の候補(例えば、lwipMpmcand[2])は、上述した予め定義された特定のALWIPイントラ予測モードが使用できる。
又は、前記第1候補イントラ予測モードと前記第2候補イントラ予測モードとが互いに同一である場合、前記第1候補イントラ予測モード及び前記第2候補イントラ予測モードのうちのいずれか一つをALWIP MPMリストの0番目の候補(例えば、lwipMpmcand[0])に入れることができ、前記ALWIP MPMリストの1番目の候補(例えば、lwipMpmcand[1])及びALWIP MPMリストの2番目の候補(例えば、lwipMpmcand[2])は、上述した予め定義された特定のALWIPイントラ予測モードを用いることができる。
上述したように、前記ALWIP MPMリストに基づいて前記現在ブロックのALWIPイントラ予測モードが導出できる。この場合、上述したように、前記ALWIPのための前記イントラ予測モード情報に含まれうるMPMフラグはintra_lwip_mpm_flag、MPMインデックスはintra_lwip_mpm_idx、リメイニングイントラ予測モード情報はintra_lwip_mpm_remainderとそれぞれ呼ばれることができる。前記ALWIP MPMリストからALWIPイントラ予測モードを導出する手順は、図10及び図11を参照して上述したように行われることができる。又は、現在ブロックのALWIPイントラ予測モードが直接シグナリングされることもできる。
ALWIP(Affine linear weighted intra prediction)
以下、本開示によるALWIPについて具体的に説明する。
ALWIPは、MWIP(Matrix weighted intra prediction)又はMIP(Matrix based intra prediction)と呼ばれることもできる。ALWIPを適用してサイズW×Hの現在ブロックを予測するために、現在ブロックの左側に隣接するH個の復元された周辺境界サンプル(reconstructed neighbouring boundary samples)を含むいずれか一つのラインと、現在ブロックの上端に隣接するW個の復元された周辺境界サンプルを含む一つのラインが入力として用いられることができる。利用可能でない復元された周辺境界サンプルは、通常のイントラ予測で行われる方法によって、利用可能なサンプルで代替できる。ALWIPを適用して予測信号を生成する過程は、次の三つのステップを含むことができる。
第1ステップ.Averaging process:周辺境界サンプルを用いてアベレージング(averaging)を行うことにより、4つのサンプル値(W=H=4の場合)又は8つのサンプル値(その他の場合)を導出することができる。
第2ステップ.Matix vector multiplication process:前記アベレージングされたサンプル値を入力としてマトリクスベクトル積を行い、オフセットを加算することにより、原本ブロック(original block)内のサンプルのサブサンプルセット(subsampled set)に対する縮小された予測信号(reduced prediction signal)を生成することができる。
第3ステップ.(linear)Interpolation process:前記サブサンプルセットに対する予測信号を線形補間することにより、残りの位置(remaining position)での予測信号を生成することができる。前記線形補間は、各方向への単一ステップ(single step)線形補間であることができる。
前記予測信号(予測されたブロック又は予測されたサンプルの)を生成するために必要なマトリクスとオフセットは、3つのマトリクス集合S0、S1、S2から取得されることができる。集合S0は、18個のマトリクスと18個のオフセットベクトルで構成されることができる。このとき、それぞれのマトリクスは16行(row)と4列(column)で構成され、各オフセットベクトルの大きさは16であることができる。集合S0のマトリクスとオフセットベクトルは、サイズ4×4のブロックに対して使用できる。
集合S1は、10個のマトリクスと10個のオフセットベクトルで構成されることができる。このとき、それぞれのマトリクスは16行(row)と8列(column)で構成され、各オフセットベクトルの大きさは16であることができる。集合S1のマトリクスとオフセットベクトルはサイズ4×8、8×4及び8×8のブロックに対して使用できる。
集合S2は、6つのマトリクスと6つのオフセットベクトルで構成されることができる。このとき、それぞれのマトリクスは64行(row)と8列(column)で構成され、各オフセットベクトルの大きさは64であることができる。集合S2のマトリクスとオフセットベクトルは、他のすべての形態のブロックに対して使用できる。
マトリクスベクトル積の演算に必要な乗算の総数は、常に4×W×Hと同じかそれより小さい。すなわち、サンプルあたり最大4回の乗算がALWIPモードのために必要である。
以下、図15乃至図18を参照して様々なブロックの形態に対するALWIP過程を説明する。図15乃至図18に示されたブロック以外のブロックは、図15乃至図18を参照して説明した方法のうちのいずれか一つで処理されることができる。
図15は4×4ブロックに対するALWIP過程を説明するための図である。
まず、アベレージングステップで、それぞれの境界に沿って二つの平均値が取得できる。すなわち、現在ブロックの上端の周辺境界サンプルを二つずつ選択して平均することにより、二つの平均値(bdrytop)を取得することができる。また、現在ブロックの左側の周辺境界サンプルを二つずつ選択して平均することにより、二つの平均値(bdryleft)を取得することができる。以後、アベレージングステップで生成された4つのサンプル値(bdryred)を入力としてマトリクスベクトル積が行われることができる。このとき、マトリクス(Ak)は、ALWIPモード(mode k)を用いて集合S0から取得されることができる。マトリクスベクトル積を行った結果にオフセット(bk)を加算した結果、16個の最終予測サンプルが生成されることができる。この場合、線形補間は必要ではない。よって、サンプルあたり総(4×16)/(4×4)=4回の乗算が行われることができる。
図16は8×8ブロックに対するALWIP過程を説明するための図である。
まず、アベレージングステップで、それぞれの境界に沿って4つの平均値が取得されることができる。すなわち、現在ブロックの上端の周辺境界サンプルを二つずつ選択して平均することにより、4つの平均値(bdrytop)を取得することができる。また、現在ブロックの左側の周辺境界サンプルを二つずつ選択して平均することにより、4つの平均値(bdryleft)を取得することができる。以後、アベレージングステップで生成された8つのサンプル値(bdryred)を入力としてマトリクスベクトル積が行われることができる。このとき、マトリクス(Ak)は、ALWIPモード(mode k)を用いて集合S1から取得されることができる。マトリクスベクトル積を行った結果にオフセット(bk)を加算した結果、予測ブロック内の16個の奇数位置のサンプル(predred)が生成されることができる。したがって、サンプルあたり総(8×16)/(8×8)=2回の乗算が行われることができる。最後に、predredのサンプルと縮小された上端の周辺境界サンプル(bdryred
top)を用いて垂直方向の補間が行われることができる。以後、左側の周辺境界サンプル(bdryleft)を用いて水平方向の補間が行われることができる。このとき、補間のためには、乗算演算が必要とされないので、8×8ブロックに対するALWIP予測のためにサンプルあたり総2回の乗算が行われることができる。
図17は8×4ブロックに対するALWIP過程を説明するための図である。
まず、アベレージングステップで、水平境界に沿って4つの平均値が取得されることができる。すなわち、現在ブロックの上端の周辺境界サンプルを二つずつ選択して平均することにより、4つの平均値(bdrytop)を取得することができる。また、現在ブロックの左側の4つの周辺境界サンプル(bdryleft)を取得することができる。以後、アベレージングステップで生成された8つのサンプル値(bdryred)を入力としてマトリクスベクトル積が行われることができる。このとき、マトリクス(Ak)は、ALWIPモード(mode k)を用いて集合S1から取得されることができる。マトリクスベクトル積を行った結果にオフセット(bk)を加算した結果、予測ブロック内の16個の位置のサンプル(predred)が生成されることができる。16個の位置は、水平方向に奇数の座標、垂直方向にすべての座標の位置であることができる。したがって、サンプルあたり総(8×16)/(8×4)=4回の乗算が行われることができる。最後に、predredのサンプルと左側の周辺境界サンプル(bdryleft)を用いて水平方向の補間が行われることができる。このとき、補間のためには乗算演算が必要とされないので、8×4ブロックに対するALWIP予測のためにサンプルあたり4回の乗算が行われることができる。
4×8ブロックに対するALWIP過程は、8×4ブロックに対する過程の転置(transposed)過程であることができる。
図18は16×16ブロックに対するALWIP過程を説明するための図である。
まず、アベレージングステップで、境界に沿って4つの平均値が取得されることができる。例えば、現在ブロックの周辺境界サンプルを二つずつ選択して平均することにより8つの平均値を取得し、8つのサンプル値の中から二つずつ選択して平均することにより4つの平均値を取得することができる。又は、現在ブロックの周辺境界サンプルを4つずつ選択して平均することにより、4つの平均値を取得することができる。以後、アベレージングステップで生成された8つのサンプル値(bdryred)を入力としてマトリクスベクトル積が行われることができる。このとき、マトリクス(Ak)は、ALWIPモード(mode k)を用いて集合S2から取得されることができる。マトリクスベクトル積を行った結果にオフセット(bk)を加算した結果、予測ブロック内の16個の奇数位置のサンプル(predred)が生成されることができる。したがって、サンプルあたり総(8×64)/(16×16)=2回の乗算が行われることができる。最後に、predredのサンプルと縮小された上端の周辺境界サンプル(bdryredII
top)を用いて垂直方向の補間が行われることができる。以後、左側の周辺境界サンプル(bdryleft)を用いて水平方向の補間が行われることができる。このとき、補間のためには乗算演算が必要とされないので、16×16ブロックに対するALWIP予測のために、サンプルあたり総2回の乗算が行われることができる。
W×8ブロック(W>8)の場合、predredのサンプルは、水平方向に奇数の座標、垂直方向にすべての座標の位置に存在するので、水平方向の補間のみが行われることができる。この場合、predredを計算するために、サンプルあたりの総(8×64)/(W×8)=64/W回の乗算が行われることができる。例えば、Wが16であるとき、線形補間のための追加的な乗算は行われないことができる。また、Wが16よりも大きいとき、線形補間のためにサンプルあたり必要な追加的な乗算の回数は2よりも小さいことができる。よって、サンプルあたり乗算の総回数は4と同じかそれよりも小さいことができる。
W×4ブロック(W>8)の場合、マトリクスAkは、前記縮小されたブロックの水平方向に沿って奇数項目(odd entry)に対応するすべての行を省略することにより生成されることができる。したがって、predredは、32個のサンプルを含み、水平方向の補間のみが行われることができる。この場合、predredを計算するために、サンプルあたり総(8×32)/(W×4)=64/W回の乗算が行われることができる。例えば、Wが16であるとき、線形補間のための追加的な乗算は行われないことができる。また、Wが16よりも大きいとき、線形補間のためにサンプルあたり必要な追加的な乗算の回数は2よりも小さいことができる。よって、サンプルあたり乗算の総回数は4と同じかそれより小さいことができる。
8×Hブロック又は4×Hブロックに対するALWIP過程は、W×8ブロック又はW×4ブロックに対する過程の転置(transposed)過程であることができる。
以下、前記アベレージングステップについて詳細に説明する。
図19は本開示によるALWIP過程のアベレージング手順を説明するための図である。
アベレージングは、現在ブロックの左側境界及び/又は上端境界のそれぞれに対して適用できる。このとき、境界は、図19に示された灰色サンプルのように、現在ブロックの境界に隣接する周辺参照サンプルを示す。例えば、左側境界bdryleftは、現在ブロックの左側境界に隣接する左側周辺参照サンプルを示す。また、上端境界bdrytopは、現在ブロックの上端境界に隣接する上端周辺参照サンプルを示す。
現在ブロックが4×4ブロックであれば、各境界サイズはアベレージング過程に基づいて2つのサンプルに縮小されることができる。現在ブロックが4×4ブロック以外のブロックであれば、各境界サイズはアベレージング過程に基づいて4つのサンプルに縮小されることができる。
まず、入力境界bdry
topとbdry
leftは、より小さい境界
及び
に縮小されることができる。
及び
は、4×4ブロックの場合には2つのサンプルで構成されることができ、その他の場合には4つのサンプルで構成されることができる。
具体的には、4×4ブロックの場合には、数式1を用いて
が生成されることができる。
数式1において、iは0以上、2未満の値を持つことができる。また、前記数式1と同様に、
が生成されることができる。
そうではなく、ブロックの幅Wが4×2
kであるとき、数式2を用いて
が生成されることができる。
数式2において、iは0以上、4未満の値を持つことができる。また、前記数式2と同様に、
が生成されることができる。
このように生成された二つの縮小された境界
及び
は連結されて(concatenate)、縮小された境界ベクトルbdry
redが生成されることができる。縮小された境界ベクトルは、4×4ブロックに対して4のサイズを持ち、その他のブロックに対して8のサイズを持つことができる。数式3は、mode(ALWIPモード)とブロックのサイズ(W、H)に基づいて
及び
を連結してbdry
redを生成する方法を示す。
数式3に示すように、現在ブロックのサイズ(W、H)及びALWIPモードに応じて、
及び
を連結する順序が変わることができる。例えば、現在ブロックが4×4ブロックであり、モードが18よりも小さいとき、bdry
redは、
以後に
を連結することにより生成されることができる。又は、例えば、現在ブロックが4×4ブロックであり、モードが18であるかそれより大きいとき、bdry
redは、
以後に
を連結することにより生成されることができる。又は、
及び
を連結する順序は、ビットストリームを介してシグナリングされる情報(例えば、フラグ情報)に基づいて決定されることもできる。
最後に、大きいサイズのブロックに対してサブサンプルされた予測信号の補間を行うために、第2バージョンのアベレージングされた境界が必要である。すなわち、min(W、H)>8であり且つW>=Hであるとき、W=8×2
lで表すことができ、この時、第2バージョンのアベレージングされた境界
は、数式4を用いて生成されることができる。
前記数式4において、iは0以上、8未満の値を持つことができる。また、min(W、H)>8であり且つW<Hであるとき、前記数式4と同様に、
が生成されることができる。
以下、マトリクスベクトル積を行って、縮小された予測信号を生成するステップを詳細に説明する。
アベレージングステップで生成されたbdryredを用いて、縮小された予測信号predredを生成することができる。縮小された予測信号predredは、Wred×Hredの大きさを持つダウンサンプルされたブロック(downsampled block)の信号であることができる。このとき、WredとHredは、数式5のとおりに定義されることができる。
縮小された予測信号predredは、数式6のようにマトリクスベクトル積とオフセットの加算によって生成されることができる。
数式6において、AはWred×Hred行と4列(現在ブロックが4×4ブロックであるとき)又は8列(その他の場合)で構成されたマトリクスであることができる。オフセットベクトルbは、サイズWred×Hredのベクトルであることができる。
マトリクスAとオフセットベクトルbは、次のようにマトリクス集合S0、S1、S2から取得されることができる。
まず、インデックス(idx)が数式7に基づいてidx(W、H)に設定されることができる。すなわち、idxは現在ブロックの幅(W)と高さ(H)に基づいて設定されることができる。
また、数式8に基づいて、ALWIP modeと現在ブロックの幅(W)及び高さ(H)に基づいて変数mが設定されることができる。
インデックスidxが1以下である場合、又はインデックスidxが2であり且つmin(W、H)が4よりも大きい場合には、マトリクスAは
と決定され、オフセットベクトルbは
と決定されることができる。インデックスidxが2であり且つmin(W、H)が4である場合、マトリクスAは、Wが4である場合には、
でダウンロードサンプルされたブロック(downsampled block)内の奇数x座標に対応するすべての行(row)を省略することにより生成され、或いは、Hが4である場合には、
でダウンサンプルされたブロック(downsampled block)内の奇数y座標に対応するすべての行(row)を省略することにより生成されることができる。
最終的に、下記数式9の場合、縮小された予測信号は、行と列が入れ替わることができる。
W=H=4の場合、マトリクスAは4列と16行を持つので、縮小された予測信号predredの計算に要求される乗算の数は4である。その他のすべての場合、マトリクスAは、8列とWred×Hred行を持つので、8×Wred×Hred<=4×W×H回の乗算が要求される。すなわち、この場合、サンプルあたり最大4回の乗算が行われることができる。
以下、線形補間ステップについて詳細に説明する。
補間過程は、線形(linear)補間又は双線形(bilinear)補間過程と呼ばれることができる。補間過程は、垂直補間と水平補間の2ステップを含むことができる。
W>=Hの場合、垂直補間が先に行われ、水平補間が行われることができる。W<Hの場合、水平補間が先に行われ、垂直補間が行われることができる。4×4ブロックの場合には、補間過程はスキップされることができる。
図20は本開示によるALWIP過程の補間ステップを説明するための図である。
Max(W、H)>=8であるW×Hブロックの場合、予測信号は、縮小された予測信号predred(Wred×Hred)を線形補間することにより生成されることができる。ブロックの形態に従属的に、線形補間は垂直方向、水平方向又は双方向に行われることができる。線形補間が双方向に行われる場合、W<Hのときには水平方向が先に行われ、そうでないときには垂直方向が先に行われることができる。図20に示すように、例えば、8×8ブロックの場合、垂直方向の補間が先に行われ、以後、水平方向の補間が行われて最終予測信号(pred)が生成されることができる。
以下で、Max(W、H)>=8であり且つW>=HであるW×Hブロックの場合、1次元線形補間の例として垂直方向の線形補間を説明する。しかし、以下の説明は、水平方向の線形補間にも適応的に適用できる。すなわち、説明の重複を避けるために、垂直方向の線形補間についてのみ説明するが、以下の説明は、水平方向の線形補間についても適用されることができる。まず、縮小された予測信号は、境界信号に基づいて上端境界まで拡張されることができる。垂直アップサンプリングファクター(factor)Uver=H/Hredと定義すれば、Uverは2のuver乗で表現できる。拡張された縮小された予測信号(extended reduced prediction signal)は、数式10によって生成されることができる。
前記拡張された縮小された予測信号から、数式11を用いて、垂直に線形補間を行うことにより、垂直補間された予測信号が生成されることができる。
水平方向の線形補間は、前記垂直方向の線形補間と同様に行われることができる。この時、行と列、x座標とy座標はそれぞれ入れ替わることができる。また、拡張された縮小された予測信号は、縮小された予測信号を左側境界まで拡張されたものであることができる。
上述したように、垂直方向の線形補間及び/又は水平方向の線形補間を行うことにより、現在ブロックの予測信号が最終的に生成されることができる。
以下、本開示によるレジデュアル信号の変換/逆変換について詳細に説明する。
上述したように、画像符号化装置は、イントラ/インター/IBC予測などを介して予測されたブロック(予測サンプル)に基づいてレジデュアルブロック(レジデュアルサンプル)を導出することができ、導出されたレジデュアルサンプルに変換及び量子化を適用して、量子化された変換係数を導出することができる。量子化された変換係数に対する情報(レジデュアル情報)は、レジデュアルコーディングシンタックスに含まれて符号化の後にビットストリーム形式で出力されることができる。画像復号化装置は、前記ビットストリームから前記量子化された変換係数に対する情報(レジデュアル情報)を取得し、復号化して、量子化された変換係数を導出することができる。画像復号化装置は、量子化された変換係数を基に逆量子化/逆変換を経てレジデュアルサンプルを導出することができる。上述したように、前記量子化/逆量子化及び/又は変換/逆変換のうちの少なくとも一つは省略できる。前記変換/逆変換が省略される場合、前記変換係数は、係数又はレジデュアル係数と呼ばれることもでき、又は表現の統一性のために変換係数と依然として呼ばれることもできる。前記変換/逆変換を省略するか否かは、transform_skip_flagに基づいてシグナリングされることができる。
前記変換/逆変換は、変換カーネルに基づいて行われることができる。例えば、本開示によれば、MTS(multiple transform selection)スキーム(scheme)が適用されることができる。この場合、多数の変換カーネルセット中の一部が選択されて現在ブロックに適用されることができる。変換カーネルは、変換マトリクスや変換タイプなどの様々な用語で呼ばれることができる。例えば、変換カーネルセットは、垂直方向変換カーネル(垂直変換カーネル)及び水平方向変換カーネル(水平変換カーネル)の組み合わせを示すことができる。例えば、MTSインデックス情報(例えば、tu_mts_idxシンタックス要素)が前記変換カーネルセットのうちのいずれか一つを指示するために、画像符号化装置で生成/符号化されて画像復号化装置にシグナリングされることができる。例えば、MTSインデックス情報の値による変換カーネルセットは、表7のとおりであり得る。
表7において、tu_mts_idxはMTSインデックス情報を示し、trTypeHor及びtrTypeVerはそれぞれ水平変換カーネル及び垂直変換カーネルを示す。
前記変換カーネルセットは、例えば、cu_sbt_horizontal_flag及びcu__sbt_pos_flagに基づいて決定されることもできる。cu_sbt_horizontal_flagは、1の値を持つとき、現在ブロックが2つの変換ブロックに水平方向分割されることを示し、0の値を持つとき、現在ブロックが2つの変換ブロックに垂直方向分割されることを示すことができる。cu_sbt_pos_flagは、1の値を持つとき、現在ブロックの第1変換ブロックに対するtu_cbf_luma、tu_cbf_cb及びtu_cbf_crがビットストリームに存在しないことを示し、0の値を持つとき、現在ブロックの第2変換ブロックに対するtu_cbf_luma、tu_cbf_cb及びtu_cbf_crがビットストリームに存在しないことを示すことができる。tu_cbf_luma、tu_cbf_cb及びtu_cbf_crは、当該色成分(luma、cb、cr)の変換ブロックが少なくとも一つの0ではない変換係数を含むかを示すシンタックス要素であることができる。例えば、tu_cbf_lumaは、1の値を持つとき、当該luma変換ブロックが少なくとも一つの0ではない変換係数を含むことを示すことができる。上述したように、trTypeHor及びtrTypeVerは、cu_sbt_horizontal_flag及びcu__sbt_pos_flagに基づいて、下記表8によって決定されることができる。
表8において、例えば、cu_sbt_horizontal_flagが0であり且つcu_sbt_pos_flagが1であるとき、trTpeHor及びtrTypeVerはそれぞれ1と決定されることができる。前記変換カーネルセットは、例えば、現在ブロックに対するイントラ予測モードに基づいて決定されることもできる。
本開示において、前記MTSベースの変換は、1次変換(primary transform)に適用され、さらに2次変換(Secondary transform)が適用されることができる。前記2次変換は、前記1次変換が適用された係数ブロックの左上端w×h領域の係数に対してのみ適用されることもでき、RST(Reduced secondary transform)と呼ばれることができる。例えば、前記w及び/又はhは4又は8であることができる。変換では、レジデュアルブロックに前記1次変換及び前記2次変換が順次適用されることができ、逆変換では、変換係数に2次逆変換及び1次逆変換が順次適用されることができる。前記2次変換(RST変換)は、低周波係数(low freueqncy coefficients)変換(LFC変換又はLFCT)と呼ばれることができる。前記2次逆変換は、逆LFC変換又は逆LFCTと呼ばれることができる。
図21はレジデュアルブロックに適用される変換方法を説明するための図である。
図21に示すように、画像符号化装置の変換部120は、レジデュアルサンプルの入力を受けて1次変換(Primary Transform)を行って変換係数(A)を生成し、2次変換(Secondary Transform)を行って変換係数(B)を生成することができる。画像符号化装置の逆変換部150及び画像復号化装置の逆変換部230は、変換係数(B)の入力を受けて2次逆変換(Inverse Secondary Transform)を行って変換係数(A)を生成し、1次逆変換(Inverse Primary Transform)を行ってレジデュアルサンプルを生成することができる。上述したように、1次変換及び1次逆変換はMTSに基づいて行われることができる。また、2次変換及び2次逆変換は低周波数領域(ブロックの左上端w×h領域)に対してのみ行われることができる。
前記変換/逆変換は、CU(符号化ユニット)又はTU(変換ユニット)単位で行われることができる。すなわち、前記変換/逆変換は、CU内のレジデュアルサンプル又はTU内のレジデュアルサンプルに対して適用されることができる。CUサイズとTUサイズが同一であることができ、或いはCU領域内の複数のTUが存在することもできる。一方、CUサイズとは、一般的にルマ成分(サンプル)CB(符号化ブロック)サイズを示すことができる。TUサイズとは、一般的にルマ成分(サンプル)TB(変換ブロック)サイズを示すことができる。クロマ成分(サンプル)CB又はTBサイズは、カラーフォーマット(クロマフォーマット、例えば、4:4:4、4:2:2、4:2:0など)による成分比に応じてルマ成分(サンプル)CB又はTBサイズに基づいて導出されることができる。前記TUサイズは、maxTbSizeに基づいて導出されることができる。この時、maxTbSizeは、変換が可能な最大サイズを意味することができる。例えば、前記CUサイズが前記maxTbSizeよりも大きい場合、前記CUから前記maxTbSizeの複数のTU(TB)が導出され、前記TU(TB)単位で変換/逆変換が行われることができる。前記maxTbSizeは、ISPなどの様々なイントラ予測タイプが適用されるか否かに対する判断などに考慮されることができる。前記maxTbSizeに対する情報は、予め決定されることもでき、或いは画像符号化装置で生成及び符号化されて画像復号化装置にシグナリングされることができる。
以下、2次変換/逆変換についてより詳細に説明する。
本開示の2次変換は、モードに従属的な非分離2次変換(mode-dependent non-separable secondary transform、MDNSST)であることができる。複雑度を減らすために、MDNSSTは、1次変換が行われた後、低周波数領域の係数に対してのみ適用されることができる。現在変換係数ブロックの幅(W)と高さ(H)の両方ともが8以上である場合、8×8非分離2次変換(8x8 non-separable secondary transform)が現在変換係数ブロックの左上端8×8領域に対して適用されることができる。そうではなく、W又はHが8よりも小さい場合、4×4非分離2次変換(4x4 non-separable secondary transform)が現在変換係数ブロックの左上端min(8、W)×min(8、H)領域に対して適用されることができる。4×4ブロックと8×8ブロックに対して合計35×3個の非分離2次変換が利用可能である。ここで、35は画面内予測モードによって特定される変換セットの数であり、3はそれぞれの画面内予測モードに対するNSST候補(候補カーネル)の数を意味する。画面内予測モードと対応する変換セットのマッピング関係は、例えば、表9のとおりであり得る。
表9において、例えば、画面内予測モードが0であれば、2次変換(逆変換)のための変換セットは0番セットであることができる。画面内予測モードに基づいて変換セットが決定されると、変換セットに含まれている複数の変換カーネルのうちのいずれか一つを特定する必要がある。このために、インデックス(NSST Idx)が符号化されてシグナリングされることができる。現在変換ブロックに対して2次変換/逆変換が行われない場合、0の値を持つNSST Idxがシグナリングされることができる。また、変換スキップされたブロックに対しては、MDNSSTが適用されないことができる。現在CUに対して0ではない値を持つNSST Idxがシグナリングされる場合、現在CU内の変換がスキップされた成分のブロックに対してはMDNSSTが適用されないことができる。現在CU内のすべての成分のブロックに対して変換がスキップされた場合、又は変換が行われたブロックの0ではない係数の数が2よりも小さい場合、現在CUに対してNSST Idxはシグナリングされないことができる。NSST Idxがシグナリングされない場合、その値は0に推論されることができる。
NSSTは、1次変換が適用されたブロック(HEVCの場合にはTU)全体に対して適用されるものではなく、左上端(top-left)8×8領域又は4×4領域に対してのみ適用されることができる。一例として、ブロックのサイズが8×8以上である場合は8×8 NSSTが適用され、8×8未満の場合は4×4 NSSTが適用されることができる。また、8×8 NSSTが適用される場合は、4×4ブロックに分けた後、それぞれに対して4×4 NSSTが適用されることができる。8×8 NSSTと4×4 NSSTの両方とも、先立って説明した変換セットの構成に従い、non-separable transformである分、8×8 NSSTは64個のデータの入力を受けて64個のデータを出力し、4×4 NSSTは16個の入力と16個の出力を持つ。
本開示において、NSST/RT/RSTは、LFNST(low frequency non-seperable transform)と呼ばれることができる。LFNSTは、変換係数ブロックの左上端領域に位置する低周波変換係数に対して変換カーネル(変換マトリクス又は変換マトリクスカーネル)に基づいて非分離変換形式で適用されることができる。前記NSSTインデックス又は(R)STインデックスは、LFNSTインデックスと呼ばれることができる。
本開示の一実施例によれば、MIP技術が適用されたブロックに対して、LFNSTのためのindex(NSST idx又はst_idxシンタックス)を従来と同様に伝送することができる。すなわち、MIPが適用された現在ブロックに対して、LFNST transform setを構成する変換カーネルのうちのいずれか一つを特定するためのindexが伝送されることができる。
本開示によれば、MIPが適用された画面内予測ブロックに対しても、最適のLFNST kernelを選択することができるので、両技術を同時に適用する際に符号化効率を最大化することができる。表10は本開示の一実施例によるCUのシンタックスを示す。
表10において、intra_mip_flag[x0][y0]は、1の値を持つとき、現在CUのルマサンプルに対してMIPが適用されることを示し、0の値を持つとき、MIPが適用されないことを示すことができる。intra_mip_flag[x0][y0]がビットストリームに存在しない場合、その値は0に推論されることができる。
表10のシンタックス要素intra_mip_mpm_flag[x0][y0]、intra_mip_mpm_idx[x0][y0]及びintra_mip_mpm_remainder[x][y0]は、ルマサンプルに対するMIPモードを特定するために使用できる。また、現在ピクチャの左上端位置が(0、0)であるとき、座標(x0、y0)は、現在符号化ブロックのルマサンプルの左上端位置であることができる。intra_mip_mpm_flag[x0][y0]が1の値を持つとき、MIPモードが現在CUの周辺のイントラ予測されたCUから誘導されることを示すことができる。intra_mip_mpm_flag[x0][y0]がビットストリームに存在しない場合、その値は1に推論されることができる。
表10において、st_idx[x0][y0]は、現在ブロックに対するLFNSTに適用された変換カーネル(LFNST kernels)を特定することができる。すなわち、st_idxは、LFNST transform setに含まれている変換カーネルのうちのいずれか一つを指し示すことができる。上述したように、LFNST transform setは、現在ブロックのイントラ予測モードとブロックサイズに基づいて決定されることができる。本開示において、st_idxはlfnst_idxと呼ばれることもできる。
MIP技術は、ブロックサイズに応じて異なる個数のMIPモードを使用する。例えば、cbWidthとcbHeightが現在ブロックの幅と高さを示すとき、ブロックサイズを区分する変数(sizeId)は、次のとおりに誘導されることができる。
cbWidthとcbHeightの両方ともが4であるとき、sizeIdは0に設定されることができる。そうではなく、cbWidthとcbHeightの両方ともが8以下であるとき、sizeIdは1に設定されることができる。その他のすべての場合、sizeIdは2に設定されることができる。例えば、現在ブロックが16×16であるとき、sizeIdは2に設定されることができる。
前記sizeIdに応じて利用可能なMIPモードの数は、表11のとおりである。
すなわち、MIP技術では、最小11個のMIPモード、最大35個のMIPモードを使用することができる。これに対し、図13に示すように、従来の画面内予測は、67個のモードを使用することができる。
また、LFNST技術は、67個の画面内予測モード(lfnstPredModeIntra)を基準に、表12を参照してtransform set(lfnstSetIdx)を決定することができる。
表12のlfnstPredModeIntraは、現在ブロックのイントラ予測モードに基づいて誘導されたモードであって、図14を参照して説明した広角モード及びCCLMモードを含む。よって、表12のlfnstPredModeIntraは0乃至83の値を持つことができる。
本開示によれば、現在ブロックにMIP技術が使用される場合、MIPモードを、従来のイントラ予測モード(図13及び図14を参照して説明したモード)に変換してLFNSTのtransform setのインデックスを決定することができる。具体的には、現在ブロックのMIPモードとブロックサイズ(sizeId)に基づいて、表13を参照してtransform setのインデックスを決定するためのイントラ予測モードを決定することができる。
表13において、MIPモードは現在ブロックのMIPモードを示し、sizeIdは現在ブロックのサイズタイプを示す。また、sizeId 0、1、2の下の数字は、各ブロックサイズタイプに対して、MIPモードにマッピングされる一般イントラ予測モード(例えば、67個の一般イントラ予測モードのうちのいずれか一つ)を示す。ただし、前記マッピング関係は、例示であり、変更可能である。
例えば、sizeIdが0であり、現在ブロックのMIPモードが10である場合、マッピングされる一般イントラ予測モード番号は18であることができる。この場合、例えば、lfnstSetIdxは、表12によれば2の値を有し、これに基づいてLFNST transform setが決定されることができる。すなわち、2の値を持つLFNST transform setが選択され、当該変換セットに含まれている変換カーネルのうち、st_idx(又はlfnst_idx)が指し示す変換カーネルが、現在ブロックの2次変換/逆変換のために使用されることができる。
図22は本開示に基づいて2次変換/逆変換を行う方法を示すフローチャートである。
画像符号化装置は、1次変換が行われて生成された変換係数に対して、図22に示された順序に従って2次変換を行うことができる。画像復号化装置は、ビットストリームから復元された変換係数に対して、図22に示された順序で2次逆変換を行うことができる。
まず、現在変換ブロックに対してLFNSTが適用されるか否かが判断されることができる(S2210)。LFNSTが適用されるか否かの判断は、例えば、ビットストリームから復元されたst_idx又はlfnst_idx(NSST idx)に基づいて行われることができる。LFNSTが適用されない場合、現在変換ブロックに対する2次変換/逆変換が行われないことができる。LFNSTが適用される場合、現在ブロックにMIPが適用されるか否かを判断することができる(S2220)。現在ブロックに対してMIPが適用されるか否かは、前述したフラグ情報(例えば、intra_mip_flag)を用いて判断できる。現在ブロックに対してMIPが適用された場合、LFNST変換セットを決定するためのイントラ予測モードが導出されることができる(S2230)。例えば、MIPモードに基づいてLFNST変換セットを決定するためのイントラ予測モードが導出されることができる。MIPモードは、前述したように、ビットストリームを介してシグナリングされる情報に基づいて復元されることができる。MIPモードに基づいたイントラ予測モードの導出は、画像符号化装置と画像復号化装置で予め設定された方法によって行われることができる。例えば、表13を参照して説明したように、MIPモードとイントラ予測モード間のマッピングテーブルを用いてステップS2230が行われることができる。しかし、上記の方法に限定されず、例えば、MIPが適用された場合、LFNST変換セットを決定するために、イントラ予測モード(例えば、プランナーモード)は、既に定義されたイントラ予測モードに誘導されることもできる。ステップS2230が行われた後、導出されたイントラ予測モードに基づいてLFNST変換セットが決定されることができる(S2240)。ステップS2220で、MIPモードが適用されていない場合、現在ブロックのイントラ予測モードがLFNST変換セットを決定するために用いられることができる(S2240)。ステップS2240は、表12を参照して説明したlfnstSetIdxの決定過程に対応することができる。以後、LFNST変換セットに含まれている複数の変換カーネルのうち、現在変換ブロックの2次変換/逆変換に使用される変換カーネルを選択することができる(S2250)。変換カーネルの選択は、例えば、ビットストリームから復元されたst_idx又はlfnst_idxに基づいて行われることができる。最後に、選択された変換カーネルを用いて現在変換ブロックに対する2次変換/逆変換を行うことができる(S2260)。画像符号化装置は、レート歪みコストの比較によって最適のモードを決定することができる。したがって、画像符号化装置は、ステップS2210又はステップS2220の判断のために前述のフラグ情報を用いることもできるが、これに限定されない。画像復号化装置は、画像符号化装置からビットストリームを介してシグナリングされた情報に基づいてステップS2210又はステップS2220の判断を行うことができる。
図22を参照して説明した本開示の一実施例によれば、MIP適用されたブロックに対してLFNSTが適用されるとき、LFNST変換セットを決定するためのイントラ予測モードを導出することができるので、より効率的なLFNSTを行うことができるという効果がある。
図23は本開示の他の実施例によるMIP及びLFNSTの適用如何に基づいて画像復号化装置で行われる方法を説明するための図である。
図23に示されている実施例によれば、MIP技術が適用されたブロックに対して、LFNSTのためのindex(st_idx又はlfnst_idx)を伝送しないことができる。すなわち、現在ブロックにMIPが適用された場合、LFNST indexは0の値に推論され、これは現在ブロックにLFNST技術が適用されないことを意味することができる。
まず、現在ブロックにMIPが適用されるか否かを判断することができる(S2310)。現在ブロックにMIPが適用されるか否かは、前述したフラグ情報(例えば、intra_mip_flag)を用いて判断されることができる。現在ブロックに対してMIPが適用された場合、MIP予測を行い(S2320)、LFNSTは適用されないものと決定されることができる。したがって、2次逆変換が行われず、変換係数に対して1次逆変換が行われることができる(S2360)。以後、MIPが適用されて生成された予測ブロックと逆変換によって生成されたレジデュアルブロックに基づいて現在ブロックが復元されることができる(S2370)。現在ブロックにMIPが適用されていない場合、現在ブロックに対して通常のイントラ予測が行われることができる(S2330)。また、現在ブロックにLFNSTが適用されるか否かが判断されることができる(S2340)。ステップS2340の判断は、ビットストリームから復元されたst_idx又はlfnst_idx(NSST idx)に基づいて行われることができる。例えば、st_idxが0である場合には、LFNSTは適用されず、st_idxが0よりも大きい場合には、LFNSTは適用されると判断されることができる。LFNSTが適用されない場合、現在変換ブロックに対する2次逆変換は行われず、変換係数に対して1次逆変換が行われることができる(S2360)。以後、通常のイントラ予測によって生成された予測ブロックと逆変換によって生成されたレジデュアルブロックに基づいて現在ブロックが復元されることができる(S2370)。現在ブロックにLFNSTが適用された場合、変換係数に対して2次逆変換が行われた後(S2350)、1次逆変換が行われることができる(S2360)。以後、通常のイントラ予測によって生成された予測ブロックと逆変換によって生成されたレジデュアルブロックに基づいて現在ブロックが復元されることができる(S2370)。このとき、ステップS2350の2次逆変換は、イントラ予測モードに基づいてLFNST変換セットを決定し、st_idxに基づいて、2次逆変換に使用される変換カーネルを選択した後、選択された変換カーネルに基づいて行われることができる。
表14は図23に示された実施例によるCUのシンタックスを示す。
表14に示すように、st_idxはintra_mip_flagが0であるときにのみビットストリームに含まれることができる。よって、intra_mip_flagが1であるとき、すなわち、現在ブロックにMIPが適用された場合、st_idxはビットストリームに含まれない。st_idxがビットストリームに存在しなければ、その値は0に推論され、よって、現在ブロックに対してLFNSTが適用されないものと決定されることができる。
図23に示された実施例によれば、MIPが適用されたブロックに対してLFNST indexを伝送しないことにより、当該indexを符号化するためのビット量低減効果を持つことができる。また、画像符号化装置及び画像復号化装置においてMIPとLFNSTが同時に適用されることを防止して複雑度を減少させ、それによるレイテンシ(latency)低減効果をもたらすことができる。
図24は本開示の他の実施例によるMIP及びLFNSTの適用如何に基づいて画像符号化装置で行われる方法を説明するための図である。
図24に示された符号化方法は、図23に示された復号化方法に対応することができる。
まず、現在ブロックにMIPが適用されるか否かを判断することができる(S2410)。現在ブロックにMIPが適用されるか否かは、前述したフラグ情報(例えば、intra_mip_flag)を用いて判断されることができる。しかし、これらに限定されず、画像符号化装置は、さまざまな方法でステップS2410を行うことができる。現在ブロックに対してMIPが適用された場合、MIP予測を行い(S2420)、LFNSTは適用されないものと決定されることができる。したがって、2次変換が行われず、MIPが行われて生成された予測ブロックに基づいて現在ブロックのレジデュアルブロックが生成され、現在ブロックのレジデュアルブロックに対して1次変換が行われることができる(S2430)。以後、変換によって生成された変換係数をビットストリームに符号化することができる(S2480)。現在ブロックにMIPが適用されていない場合、現在ブロックに対して通常のイントラ予測が行われることができる(S2440)。通常のイントラ予測が行われて生成された予測ブロックに基づいて現在ブロックのレジデュアルブロックが生成され、生成されたレジデュアルブロックに対して1次変換が行われることができる(S2450)。また、現在ブロックにLFNSTが適用されるか否かが判断されることができる(S2460)。ステップS2460の判断は、st_idx又はlfnst_idx(NSST idx)に基づいて行われることができる。例えば、st_idxが0である場合には、LFNSTは適用されず、st_idxが0よりも大きい場合には、LFNSTは適用されると判断されることができる。しかし、これに限定されず、画像符号化装置は、さまざまな方法でステップS2460を行うことができる。LFNSTが適用されない場合、1次変換によって生成された変換係数は、2次変換されず、ビットストリームに符号化されることができる(S2480)。現在ブロックにLFNSTが適用された場合、1次変換によって生成された変換係数に対して2次変換が行われることができる(S2470)。2次変換によって生成された変換係数は、ビットストリームに符号化されることができる(S2480)。このとき、ステップS2470の2次変換は、イントラ予測モードに基づいてLFNST変換セットを決定し、2次逆変換に使用される変換カーネルを選択した後、選択された変換カーネルに基づいて行われることができる。選択された変換カーネルに対する情報として、st_idxが符号化されてシグナリングされることができる。
本開示の別の実施例によれば、MIPが適用されたブロックに対してLFNST indexをシグナリングせずに、所定の方法に基づいてLFNST indexを誘導して使用することができる。この場合の2次変換/逆変換過程は、図22を参照して説明した方法によって行われることができ、ステップS2250での変換カーネルの選択は、前記所定の方法によって誘導されたLFNST indexに基づいて行われることができる。又は、MIPが適用されたブロックのための別途の最適化された変換カーネルを予め定義して使用することもできる。本実施例によれば、MIPが適用されたブロックに対して最適のLFNST kernelを選択しながらも、これを符号化するためのビット量を低減する効果を持つことができる。前記LFNST indexの誘導は、画面内予測のためのreference line index、画面内予測モード、ブロックのサイズ、MIPの適用如何などの少なくとも一つに基づいて行われることができる。また、LFNST変換セットを選択するために、図22を参照して説明した実施例のように、MIPモードは、一般イントラ予測モードに変換又はマッピングされることができる。本実施例の場合、LFNST indexを直接符号化せずに誘導して使用するため、CUのシンタックスは表14と同一であることができる。
本開示の別の実施例によれば、MIP技術が適用されたブロックに対して、LFNST indexの2値化方法を適応的に行うことができる。より具体的には、現在ブロックに対してMIPが適用されたか否かに応じて適用可能なLFNST変換カーネルの数を異なるように使用し、それによりLFNST indexに対する2値化方法を選択的に変更することができる。例えば、MIPが適用されたブロックに対しては一つのLFNST kernelを使用し、このkernelは、MIPが適用されていないブロックに適用されるLFNST kernelのうちのいずれか一つであることができる。或いは、MIPが適用されたブロックに対しては、MIPが適用されたブロックに最適化された別個のkernelを定義して使用し、このkernelは、MIPが適用されていないブロックに適用されるLFNST kernelではないことができる。本実施例によれば、MIPが適用されたブロックに対して、そうでないブロックよりも減少した数のLFNST kernelを使用することにより、LFNST indexを伝送することによるオーバーヘッドを低減し、複雑度減少効果を得ることができる。例えば、表15に示すように、st_idxに対する2値化過程及びcMax値は、intra_mip_flag値によって異なるように決定されることができる。
本開示の別の実施例によれば、MIP技術が適用されたブロックに対してLFNSTのための情報を伝送する別の方法が提供されることができる。上述した例において、LFNSTのための情報として、st_idxのように単一シンタックスを伝送し、st_idxが0の値を持つとき、LFNSTが適用されないことを示し、st_idxが0よりも大きい値を持つとき、st_idxはLFNSTに使用される変換カーネルを指示する。すなわち、単一シンタックスを用いてLFNSTの適用如何及びLFNSTのために使用される変換カーネルの種類を示すことができる。本開示の実施例によれば、LFNSTのための情報は、LFNSTの適用如何を示すシンタックスであるst_flagとLFNSTが適用されるとき、LFNSTのために使用される変換カーネルの種類を示すシンタックスであるst_idx_flagを含むことができる。
表16はLFNSTのための情報を伝送する他の方法によるCUのシンタックスを示す。
表16に示すように、現在ブロックにLFNSTが適用されるか否かを示す情報(st_flag)がシグナリングされ、LFNST変換カーネルを指示する情報(st_idx_flag)は、現在ブロックにLFNSTが適用される場合(st_flagが1である場合)にシグナリングされることができる。
また、表15を参照して説明した実施例と同様に、MIPが適用されたブロックとMIPが適用されていないブロックに対してそれぞれ異なる数のLFNST変換カーネルを使用することができる。例えば、MIPが適用されたブロックに対しては、一つのLFNST変換カーネルのみが使用されることができる。この時、変換カーネルは、MIPが適用されていないブロックに適用されるLFNST変換カーネルのうちのいずれか一つであってもよく、MIPが適用されたブロックに最適化された別個の変換カーネルであってもよい。この場合、表16の伝送方法は表17のように変更されることができる。
表17に示すように、st_idx_flagは、intra_mip_flagが0であるときにのみ伝送されることができる。すなわち、st_idx_flagは、現在ブロックにMIPが適用された場合に伝送されないことができる。
表16及び表17のst_flagは、現在ブロックにLFNSTが適用されるか否かを示す情報であり、ビットストリームに存在しないとき、0に推論されることができる。本開示において、st_flagはlfnst_flagと呼ばれることができる。また、st_idx_flagは、選択されたLFNST変換セットに含まれている2つの候補カーネルのうちのいずれか一つを指示することができる。st_idx_flagがビットストリームに存在しないとき、その値は0に推論されることができる。本開示において、st_idx_flagはlfnst_idx_flag又はlfnst_kernel_flagと呼ばれることができる。
表16及び表17の例において、st_flag及びst_idx_flagの2値化過程は、表18のとおりであり得る。
また、st_flag及びst_idx_flagのコンテキストコード化ビン(context coded bin)によるctxIncは、表19のとおりであり得る。
表19に示したように、st_flagのctxIdxは、binIdxが0であるとき、0又は1の値を持つことができる。例えば、st_flagのctxIncは数式12によって導出されることができる。
数式12のように、st_flagのコーディングに使用されるctxIncの値を、現在ブロックに対するtreetype及び/又はtu_mts_idxの値に基づいて異なるように決定することができる。前記ctxIncに基づいて、前記st_flagのコーティング(CABACベース)に使用されるコンテキストモデルを導出することができる。具体的には、コンテキストモデルは、コンテキストインデックス(ctxIdx)を決定することにより誘導されることができ、ctxIdxは、変数ctxIdxOffsetとctxIncの和によって誘導されることができる。また、st_idx__flagは、バイパス符号化/復号化されることができる。バイパス符号化/復号化は、コンテキストを割り当てる代わりに、均一な確率分布を適用して入力されるビンを符号化/復号化することを意味することができる。
表16及び表17を参照して説明した例によれば、MIPが適用されたブロックに対して、そうでないブロックよりも減少した数のLFNST kernelを用いて、indexを伝送することによるoverheadを低減し、複雑度減少効果を得ることができる。また、上述のように、st_flagのコーディングに使用されるctxIncの値を現在ブロックに対するtreetype及び/又はtu_mts_idx値に基づいて異なるように決定することができる。
本開示の別の実施例によれば、表15乃至表19を参照して説明した2値化方法及び/又はシンタックス伝送方法が使用される場合、LFNST変換カーネルを誘導して使用することができる。MIPが適用された現在ブロックにLFNSTが適用される場合、LFNST変換カーネルを選択するための情報をシグナリングせず、誘導過程を介してLFNST transform setを構成する変換カーネルのうちのいずれか一つを選択するか、MIPが適用されたブロックのための別途の最適化された変換カーネルを選択することができる。この場合、MIPが適用されたブロックに対して最適のLFNST変換カーネルを選択しながらも、これをシグナリングするためのビット量を低減する効果を持つことができる。LFNST変換カーネルの選択は、画面内予測のためのreference line index、画面内予測モード、ブロックのサイズ、及びMIPの適用如何などの少なくとも一つに基づいて行われることができる。また、LFNST変換セットを選択するために、図22を参照して説明した実施例のように、MIPモードは一般イントラ予測モードに変換又はマッピングされることができる。
本開示による様々な実施例は、単独で又は他の実施例と組み合わせられて使用されることができる。
本開示の例示的な方法は、説明の明確性のために動作のシリーズで表現されているが、これは、ステップが行われる順序を制限するためのものではなく、必要な場合には、それぞれのステップが同時に又は異なる順序で行われることもできる。本開示による方法を実現するために、例示するステップにさらに他のステップを含むか、一部のステップを除いて残りのステップを含むか、又は一部のステップを除いて追加の他のステップを含むこともできる。
本開示において、所定の動作(ステップ)を行う画像符号化装置又は画像復号化装置は、当該動作(ステップ)の実行条件や状況を確認する動作(ステップ)を行うことができる。例えば、所定の条件が満足される場合、所定の動作を行うと記載された場合、画像符号化装置又は画像復号化装置は、前記所定の条件が満足されるか否かを確認する動作を行った後、前記所定の動作を行うことができる。
本開示の様々な実施例は、すべての可能な組み合わせを羅列したものではなく、本開示の代表的な態様を説明するためのものであり、様々な実施例で説明する事項は、独立して適用されてもよく、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)などを含むことができる。
図25は本開示の実施例が適用できるコンテンツストリーミングシステムを例示する図である。
図25に示されているように、本開示の実施例が適用されたコンテンツストリーミングシステムは、大きく、符号化サーバ、ストリーミングサーバ、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)を含む。