以下、添付図面を参照して、本開示の実施例について、本開示の属する技術分野における通常の知識を有する者が容易に実施し得るように詳細に説明する。しかし、本開示は、様々な異なる形態で実現でき、ここで説明する実施例に限定されない。
本開示の実施例を説明するにあたり、公知の構成又は機能についての具体的な説明が本開示の要旨を不明確にするおそれがあると判断される場合には、それについての詳細な説明は省略する。そして、図面において、本開示についての説明と関係ない部分は省略し、同様の部分には同様の図面符号を付した。
本開示において、ある構成要素が他の構成要素と「連結」、「結合」又は「接続」されているとするとき、これは、直接的な連結関係だけでなく、それらの間に別の構成要素が存在する間接的な連結関係も含むことができる。また、ある構成要素が他の構成要素を「含む」又は「有する」とするとき、これは、特に反対される記載がない限り、別の構成要素を排除するのではなく、別の構成要素をさらに含むことができることを意味する。
本開示において、「第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、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に設定され、MaxTtSizeは64×64に設定され、MinBtSize及びMinTtSizeは4×4に設定され、MaxMttDepthは4に設定されることができる。四分木分割は、CTUに適用されて四分木のリーフノードを生成することができる。四分木のリーフノードはリーフQTノードと呼ばれることができる。四分木のリーフノードは16×16サイズ(例えば、the MinQTSize)から128×128サイズ(例えば、the CTU size)を有することができる。もしリーフQTノードが128×128である場合、さらに二分木/三分木に分割されないことができる。これは、この場合に分割されてもMaxBtsize及びMaxTtsize(例えば、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)分割パターンの発生を制限することにより、分割情報のデータ量を減らすことができる。
以下では、イントラ予測部で行われるイントラ予測について説明する。
イントラ予測
イントラ予測は、現在ブロックの属するピクチャ(以下、現在ピクチャ)内の参照サンプルに基づいて現在ブロックに対する予測サンプルを生成する予測を示すことができる。現在ブロックにイントラ予測が適用される場合、現在ブロックのイントラ予測に使用する周辺参照サンプルが導出されることができる。前記現在ブロックの周辺参照サンプルは、サイズ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)を介して、予測に使用する周辺参照サンプルを構成することができる。
以下では、イントラ予測に基づく符号化方法及び符号化装置内のイントラ予測部について、図8及び図9を用いて説明する。
図8はイントラ予測ベースのビデオ/画像符号化方法を示す図である。そして、図9は、符号化装置内のイントラ予測部を示す図である。
S800は、符号化装置のイントラ予測部222によって行われることができ、S810は、符号化装置のレジデュアル処理部230によって行われることができる。具体的には、S810は、符号化装置の減算部231によって行われることができる。S820で、予測情報は、イントラ予測部222によって導出され、エントロピー符号化部240によって符号化されることができる。S820で、レジデュアル情報は、レジデュアル処理部230によって導出され、エントロピー符号化部240によって符号化されることができる。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。上述したように、前記レジデュアルサンプルは、符号化装置の変換部232を介して変換係数に導出され、前記変換係数は、量子化部233を介して量子化された変換係数として導出されることができる。前記量子化された変換係数に関する情報が、レジデュアルコーディング手順を介してエントロピー符号化部240で符号化されることができる。
符号化装置は、現在ブロックに対するイントラ予測を行う(S800)。符号化装置は、現在ブロックに対するイントラ予測モード/タイプを導出し、現在ブロックの周辺参照サンプルを導出することができ、前記イントラ予測モード/タイプ及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成する。ここで、イントラ予測モード/タイプの決定、周辺参照サンプルの導出、及び予測サンプルの生成手順は、同時に行われてもよく、いずれか一つの手順が他の手順よりも先に行われてもよい。例えば、符号化装置のイントラ予測部222は、イントラ予測モード/タイプ決定部222-1、参照サンプル導出部222-2、予測サンプル導出部222-3を含むことができ、イントラ予測モード/タイプ決定部222-1で前記現在ブロックに対するイントラ予測モード/タイプを決定し、参照サンプル導出部222-2で前記現在ブロックの周辺参照サンプルを導出し、予測サンプル導出部222-3で前記現在ブロックの予測サンプルを導出することができる。一方、図示されてはいないが、後述する予測サンプルに対するフィルタリング手順が行われる場合、イントラ予測部222は、予測サンプルフィルター部(図示せず)をさらに含むこともできる。符号化装置は、複数のイントラ予測モード/タイプのうち、前記現在ブロックに対して適用されるモード/タイプを決定することができる。符号化装置は、前記イントラ予測モード/タイプに対するRDコストを比較し、前記現在ブロックに対する最適なイントラ予測モード/タイプを決定することができる。
前記符号化装置は、予測サンプルに基づいて前記現在ブロックに対するレジデュアルアンプルを生成する(S810)。符号化装置は、現在ブロックの原本サンプルで前記予測サンプルを位相に基づいて比較し、前記レジデュアルサンプルを導出することができる。
符号化装置は、前記イントラ予測に関する情報(予測情報)及び前記レジデュアルサンプルに関するレジデュアル情報を含む画像情報を符号化することができる(S820)。前記予測情報は、前記イントラ予測モード情報、前記イントラ予測タイプ情報を含むことができる。符号化装置は、符号化された画像情報がビットストリーム形式で出力されることができる。出力されたビットストリームは、記憶媒体又はネットワークを介して復号化装置へ伝達されることができる。
前記レジデュアル情報は、後述するレジデュアルコーディングシンタックスを含むことができる。符号化装置は、前記レジデュアルサンプルを変換/量子化して、量子化された変換係数を導出することができる。前記レジデュアル情報は、前記量子化された変換係数に対する情報を含むことができる。
一方、上述したように、符号化装置は、復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成することができる。このために、符号化装置は、前記量子化された変換係数を再び逆量子化/逆変換処理して(修正された)レジデュアルサンプルを導出することができる。このようにレジデュアルサンプルを変換/量子化した後、再び逆量子化/逆変換を行う理由は、上述したように復号化装置で導出されるレジデュアルサンプルと同一のレジデュアルサンプルを導出するためである。符号化装置は、前記予測サンプルと(修正された)レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを含む復元ブロックを生成することができる。前記復元ブロックに基づいて前記現在ピクチャに対する復元ピクチャが生成されることができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、上述したとおりである。
以下では、イントラ予測に基づくビデオ/画像復号化方法及び復号化装置内のイントラ予測部について、図10及び図11を用いて説明する。
図10は、イントラ予測ベースのビデオ/画像復号化方法を示す図である。そして、図11は復号化装置内のイントラ予測部を示す図である。
復号化装置は、前記符号化装置で行われた動作と対応する動作を行うことができる。
S1000~S1020は、復号化装置のイントラ予測部331によって行われることができ、S1000の予測情報及びS1030のレジデュアル情報は、復号化装置のエントロピー復号化部310によってビットストリームから取得できる。復号化装置のレジデュアル処理部320は、前記レジデュアル情報に基づいて現在ブロックに対するレジデュアルサンプルを導出することができる。具体的には、前記レジデュアル処理部320の逆量子化部321は、前記レジデュアル情報に基づいて導出された、量子化された変換係数に基づいて、逆量子化を行って変換係数を導出し、前記レジデュアル処理部の逆変換部322は、前記変換係数に対する逆変換を行って前記現在ブロックに対するレジデュアルサンプルを導出することができる。S1040は、復号化装置の加算部340又は復元部によって行われることができる。
具体的には、復号化装置は、受信された予測情報(イントラ予測モード/タイプ情報)に基づいて、現在ブロックに対するイントラ予測モード/タイプを導出することができる(S1000)。復号化装置は、前記現在ブロックの周辺参照サンプルを導出することができる(S1010)。復号化装置は、前記イントラ予測モード/タイプ及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成する(S1020)。
復号化装置は、受信されたレジデュアル情報に基づいて前記現在ブロックに対するレジデュアルサンプルを生成する。復号化装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを生成し、前記復元サンプルを含む復元ブロックを導出することができる(S1030)。前記復元ブロックに基づいて前記現在ピクチャに対する復元ピクチャが生成されることができる。前記復元ピクチャにインループフィルタリング手順などがさらに適用できるのは、上述したとおりである。
ここで、復号化装置のイントラ予測部331は、イントラ予測モード/タイプ決定部331-1、参照サンプル導出部331-3及び予測サンプル導出部331-3を含むことができ、イントラ予測モード/タイプ決定部331-1は、エントロピー復号化部310で取得されたイントラ予測モード/タイプ情報に基づいて前記現在ブロックに対するイントラ予測モード/タイプを決定し、参照サンプル導出部331-2は、前記現在ブロックの周辺参照サンプルを導出し、予測サンプル導出部331-3は、前記現在ブロックの予測サンプルを導出することができる。一方、たとえ図示されてはいないが、上述した予測サンプルフィルタリング手順が行われる場合、イントラ予測部331は、予測サンプルフィルター部(図示せず)をさらに含むこともできる。
前記イントラ予測モード情報は、例えば、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)をさらに含むことができる。復号化装置は、前記イントラ予測モード情報に基づいて前記現在ブロックのイントラ予測モードを決定することができる。
また、前記イントラ予測タイプ情報は、様々な形態で実現できる。一例として、前記イントラ予測タイプ情報は、前記イントラ予測タイプのうちのいずれか一つを指示するイントラ予測タイプインデックス情報を含むことができる。他の例として、前記イントラ予測タイプ情報は、前記MRLが前記現在ブロックに適用されるか、及び適用される場合には幾番目の参照サンプルラインが用いられるかを示す参照サンプルライン情報(例えば、intra_luma_ref_idx)、前記ISPが前記現在ブロックに適用されるかを示すISPフラグ情報(例えば、intra_subpartitions_mode_flag)、前記ISPが適用される場合にサブパーティションが分割タイプを指示するISPタイプ情報(例えば、intra_subpartitions_split_flag)、PDCPの適用如何を示すフラグ情報、又はLIPの適用如何を示すフラグ情報のうちの少なくとも一つを含むことができる。また、前記イントラ予測タイプ情報は、前記現在ブロックにMIPが適用されるか否かを示すMIPフラグを含むことができる。
前記イントラ予測モード情報及び/又は前記イントラ予測タイプ情報は、本明細書で説明したコーディング方法を介して符号化/復号化できる。例えば、前記イントラ予測モード情報及び/又は前記イントラ予測タイプ情報は、truncated(rice)binary codeに基づいてエントロピーコーディング(例えば、CABAC、CAVLC)コーディングを介して符号化/復号化できる。
一方、前記イントラ予測モードは、2つの非方向性イントラ予測モードと65個の方向性イントラ予測モードを含むことができる。前記非方向性イントラ予測モードはPlanarモード及びDCモードを含むことができ、前記方向性イントラ予測モードは2番~66番のイントラ予測モードを含むことができる。方向性イントラ予測モードの例示は、図12の通りである。
前記イントラ予測モードは、前述したイントラ予測モードの他にも、クロマサンプルのためのCCLM(cross-component linear model)モードをさらに含むことができる。CCLMモードは、LMパラメータの導出のために、左側サンプルを考慮するか、上側サンプルを考慮するか、両方を考慮するかによってLT_CCLM、L_CCLM、T_CCLMに分けられることができ、クロマ成分に対してのみ適用されることができる。
上述したイントラ予測モードは、例えば、下記表2の通りにインデックス化できる。
符号化装置/復号化装置の予測部は、現在ブロックの周辺参照サンプルのうち、前記現在ブロックのイントラ予測モードによる参照サンプルを導出することができ、前記参照サンプルに基づいて前記現在ブロックの予測サンプルを生成することができる。
例えば、(i)現在ブロックの周辺(neighboring)参照サンプルの平均(average)又は補間(interpolation)に基づいて予測サンプルを誘導することができ、(ii)現在ブロックの周辺参照サンプルのうちの予測サンプルに対して、特定の(予測)方向に存在する参照サンプルに基づいて前記予測サンプルを誘導することもできる。(i)の場合は非方向性モード又は非角度モード、(ii)の場合は方向性(directional)モード又は角度(angular)モードと呼ばれることができる。また、前記周辺参照サンプルのうち、前記現在ブロックの予測対象サンプルを基準に、前記現在ブロックのイントラ予測モードの予測方向の反対方向に位置する前記第2周辺サンプルと前記第1周辺サンプルとの補間を介して前記予測サンプルが生成されることもできる。上述した場合は、線形補間イントラ予測(Linear interpolation intra prediction、LIP)と呼ばれることができる。また、フィルタリングされた周辺サンプルに基づいて前記現在ブロックの一時予測サンプルを導出し、前記既存の周辺参照サンプル、すなわち、フィルタリングされていない周辺参照サンプルのうち、前記イントラ予測モードに応じて導出された少なくとも一つの参照サンプルと前記一時予測サンプルとを加重和(weighted sum)して、前記現在ブロックの予測サンプルを導出することもできる。上述した場合は、PDPC(Position dependent intra prediction)と呼ばれることができる。また、現在ブロックの周辺多重参照サンプルラインのうち、最も予測精度が高い参照サンプルラインを選択して、当該ラインから予測方向に位置する参照サンプルを用いて予測サンプルを導出し、このとき、使用された参照サンプルラインを復号化装置に指示(シグナリング)する方法でイントラ予測符号化を行うことができる。上述した場合は、MRL(multi-reference line intra prediction)又はMRLベースのイントラ予測と呼ばれることができる。また、現在ブロックを垂直又は水平のサブパーティションに分割し、同一のイントラ予測モードに基づいてイントラ予測を行うが、前記サブパーティション単位で周辺参照サンプルを導出して用いることができる。すなわち、この場合、現在ブロックに対するイントラ予測モードが前記サブパーティションに同一に適用され、前記サブパーティション単位で周辺参照サンプルを導出して用いることにより、場合に応じてイントラ予測性能を向上させることができる。このような予測方法は、ISP(intra sub-partitions)又はISPベースのイントラ予測と呼ばれることができる。具体的な内容については後述する。また、予測サンプルを基準とする予測方向が周辺参照サンプルの間を指す場合、すなわち、予測方向が分数サンプル位置を指す場合、当該予測方向周辺(当該分数サンプル位置周辺)に位置した複数の参照サンプルの補間を介して予測サンプルの値を導出することもできる。
上述したイントラ予測方法は、イントラ予測モードと区分してイントラ予測タイプと呼ばれることができる。前記イントラ予測タイプは、イントラ予測技法又は付加イントラ予測モードなどの多様な用語で呼ばれることができる。例えば、前記イントラ予測タイプ(又は付加イントラ予測モードなど)は、上述したLIP、PDPC、MRL、ISPのうちの少なくとも一つを含むことができる。前記イントラ予測タイプに関する情報は、符号化装置で符号化されてビットストリームに含まれて復号化装置へシグナリングされることができる。前記イントラ予測タイプに関する情報は、各イントラ予測タイプの適用如何を指すフラグ情報又は様々なイントラ予測タイプのうちの一つを指示するインデックス情報などの多様な形態で実現できる。
以下では、上述したイントラ予測タイプのうち、本開示に関連するPDPCについて説明する。
位置依存イントラ予測(Position dependent intra prediction、PDPC)
PDPCは、前記PDPCに対するフィルタに基づいてフィルタリングを行い、フィルタリングされた参照サンプルを導出し、前記現在ブロックのイントラ予測モード及び前記フィルタリングされた参照サンプルに基づいて前記現在ブロックの一時予測サンプルを導出し、前記既存の参照サンプル、すなわち、フィルタリングされていない参照サンプルのうち、前記イントラ予測モードに応じて導出された少なくとも一つの参照サンプルと前記一時予測サンプルとを加重和(weighted sum)して、前記現在ブロックの予測サンプルを導出するイントラ予測方法を表すことができる。ここで、前記既に定義されたフィルタは、5つの7タップ(tap)フィルタのうちの1つであり得る。又は、前記既に定義されたフィルタは、3タップフィルタ、5タップフィルタ及び7タップフィルタのうちの1つであり得る。前記3タップフィルタ、前記5タップフィルタ及び前記7タップフィルタは、それぞれ3つのフィルタ係数(filter coefficient)を有するフィルタ、5つのフィルタ係数を有するフィルタ、7つのフィルタ係数を有するフィルタを表すことができる。
例えば、イントラPlanarモードの予測結果は、PDPCによってさらに修正できる。
或いは、一例として、前記PDPCは、別途のシグナリングなしにイントラPlanarモード、イントラDCモード、水平イントラ予測モード、垂直イントラ予測モード、左下側(bottom left)方向のイントラ予測モード(すなわち、2番イントラ予測モード)及び前記左下側方向のイントラ予測モードに隣接する8つの方向性イントラ予測モード、右上側(top-right)方向のイントラ予測モード、及び前記右上側方向のイントラ予測モードに隣接する8つの方向性イントラ予測モードに適用できる。
具体的には、前記PDPCが適用される場合、イントラ予測モード及び参照サンプルの線形結合(linear combination)に基づいて予測される(x,y)座標の予測サンプルは、下記数式1のように導出されることができる。
[数式1]
pred(x,y)=(wL×R(-1,y)+wT×R(x,-1)-wTL×R(-1,-1)+(64-wL-wT+wTL)×pred(x,y)+32)>>6
前記数式1の左項のpred(x,y)は(x,y)座標の予測サンプル値を示し、右項のpred(x,y)は(x,y)座標の一時(1次)予測サンプルを示す。R(x,-1)及びR(-1,y)は、(x,y)座標の現在サンプルの上側及び左側に位置する上側参照サンプル及び左側参照サンプルを示し、R(-1,-1)は、前記現在ブロックの左上隅に位置する左上側参照サンプルを示す。また、wLは左側参照サンプルに適用される重み、wTは上側参照サンプルに適用される重み、wTLは左上側参照サンプルに適用される重みをそれぞれ示す。
一方、PDPCがイントラPlanarモード、イントラDCモード、水平イントラ予測モード、及び垂直イントラ予測モードに適用される場合、従来のDCモードバウンダリフィルタ又は垂直/水平モードエッジフィルタなどの追加のバウンダリフィルタが不要であってもよい。
前記一時(1次)予測サンプルは、現在ブロックのイントラ予測モードと参照サンプルに基づいてイントラ予測を行った結果として生成されることができる。前記現在ブロックに対してPDPCが適用される場合、例えば、前記数式1に基づいて前記現在ブロックの最終予測サンプルが生成されることができる。前記現在ブロックに対してPDPCが適用されない場合、前記一時(1次)予測サンプルは、前記現在ブロックの最終予測サンプルとして使用できる。
図13a~図13dは、PDPCで定義される参照サンプルを示す図である。
図13a~図13dにおいて、pred(x,y)は、イントラ予測によって得られる予測サンプル(上述した一時予測サンプル)を示し、R(x,-1)及びR(-1,y)は、(x,y)座標の現在サンプルの上側及び左側に位置する上側参照サンプル及び左側参照サンプルを示す。
図13aは、予測モードが右上側対角モード(Diagonal top-right mode)である場合の参照サンプル(Rx,-1,R―1,y,R-1,-1)を示す。図13bは、予測モードが左下側対角モード(Diagonal bottom-left mode)である場合の参照サンプル(Rx-1,R―1,y,R-1,-1)を示す。図13cは、予測モードが右上側対角モードの隣接モード(Adjacent diagonal top-right mode)である場合の参照サンプル(Rx―1,R―1,y,R-1,-1)を示す。図13dは、予測モードが左下側対角モードの隣接モード(Adjacent diagonal bottom-left mode)である場合の参照サンプル(Rx-1,R―1,y,R-1,-1)を示す。前記PDPCの重みは予測モードに基づいて導出できる。前記PDPCの重み(wT,wL,wTL)は、下記表3の通りに導出できる。
位置依存イントラ予測組合せ(position dependent intra prediction combination、PDPC)は、予測モードに応じて参照サンプルを用いて予測サンプルを生成した後、周辺の参照サンプルを用いて予測サンプルを改善する。PDPCは、全てのイントラ予測モードに適用される代わりに、65個の方向性イントラ予測モードを基準にしてPlanar、DC、2(右下側方向モード)、VDIA(左上側方向モード)、Hor(水平方向モード)、Ver(垂直方向モード)、2モードの周辺モード(3番モード~10番モード)、VDIAモードの周辺モード(58番~65番モード)に制限的に適用されることができる。また、現在符号化しようとするブロック内の全ての予測サンプルに適用される代わりに、ブロックのサイズを考慮して可変的に適用されることができる。
MRL(Multi-reference line)イントラ予測
従来のイントラ予測は、現在ブロックの上側の1番目の参照サンプルラインの周辺サンプル及び左側の1番目の参照サンプルラインの周辺サンプルのみをイントラ予測のための参照サンプルとして用いた。しかし、MRL(Multi-reference line)方法では、現在ブロックの上側及び/又は左側に対して1つ~3つのサンプル距離だけ離れた参照サンプルラインに位置する周辺サンプルを参照サンプルとして用いてイントラ予測を行うことができる。
図14はMRL方法で利用可能な参照サンプルラインを説明するための図である。
図14に示すように、現在ブロックに隣接する順に、Reference line0~Reference line3のうちの少なくとも一つの参照サンプルラインが現在ブロックのイントラ予測のために参照されることができる。本開示において、Reference line0は、1番目の参照サンプルラインと呼ばれることができる。また、Reference line1~Reference line3は、それぞれ2番目の参照サンプルライン~4番目の参照サンプルラインと呼ばれることができる。
MRLが適用される場合、現在ブロックに対して、どの参照サンプルラインがイントラ予測のために使用されるかを示すための多重参照ラインインデックス(例えば、mrl_idx)がシグナリングされることができる。
図15は前記多重参照ラインインデックスをシグナリングする符号化ユニットのシンタックス構造を示す図である。
図15に示されている例において、前記多重参照ラインインデックスは、intra_luma_ref_idxの形態でシグナリングされることができる。前記多重参照インデックスの値が0より大きい場合、対象ブロックにMRLが適用されるといえる。
図15のintra_luma_ref_idxは、(x0,y0)座標の現在符号化ユニットのイントラ予測に用いられる参照サンプルラインインデックスIntraLumaRefLineIdx[x0][y0]を特定するために使用できる。intra_luma_ref_idx[x0][y0]がビットストリームに存在しない場合、当該値は0と推論できる。
intra_luma_ref_idxは、(イントラ)参照サンプルラインインデックス又はmrl_idxと呼ばれることができる。また、intra_luma_ref_idxはintra_luma_ref_line_idxと呼ばれることもできる。
下記表4は、intra_luma_ref_idx[x0][y0]に基づいて特定されるIntraLumaRefLineIdx[x0][y0]を示す。
図15に示されている例において、現在符号化ユニットに対してMPMが適用されるか否かを示すフラグは、intra_luma_mpm_flag[x0][y0]であり、当該フラグがビットストリームに存在しないとき、その値は1と推論できる。すなわち、現在符号化ユニットに対してMPMが適用されるものと判断できる。
MRLは、CTU内の1番目のライン(行)のブロックに対しては利用可能でないことがある。例えば、現在符号化ユニットの上側境界がCTUの上側境界である場合、現在符号化ユニットに対してMRLが利用可能でない。これは、現在CTUの外部に存在する拡張参照サンプル(extended reference lines)が使用されるのを防止するためである。また、後述するように、1番目の参照サンプルライン以外の参照サンプルラインが使用される場合には、現在符号化ユニットに対するPDPCが適用されないことがある。
MRLが適用される符号化ユニットのイントラ予測モードがDCモードである場合、DC値の誘導のために2番目以後の参照サンプルラインが利用可能である。この場合、1番目の参照サンプルラインの参照サンプルの代わりに2番目以後の参照サンプルラインの参照サンプルに基づいてDC値が誘導できる。
本開示において、現在ブロックのイントラ予測が用いられた参照サンプルラインを指し示す情報は、refIdxと表現できる。例えば、refIdxが0であることは、1番目の参照サンプルラインを指し示すことができる。
本開示の実施例は、上述したPDPCに関するものである。前記PDPCの手順がイントラ予測サンプルに対して適用される場合、フィルタリングされた(修正された)予測サンプルが生成できる。
本開示の一実施例は、色差(chroma)成分(ブロック)に対するイントラ予測においてPDPCを適用するとき、特定の条件の色差ブロックでPDPCを行う方法を提案する。
既存のPDPCは、輝度成分ブロックと色差成分ブロックによって互いに異なる条件を適用して、PDPC適用如何を決定する。
図16は本開示の一実施例によるPDPC適用条件を示す図である。
図16に示されている実施例によれば、下記の条件をすべて満たす場合、現在ブロックのイントラ予測された予測ブロックに対してPDPCが適用できる。
(条件1)現在ブロックの幅及び高さの両方が4以上であるか、或いは現在ブロックが色差ブロックであるか、或いは現在ブロックの色成分が色差成分である。
(条件2)現在ブロックに隣接する1番目の参照サンプルライン(refIdx==0)を用いてイントラ予測が行われるか、或いは現在ブロックが色差ブロックである。
(条件3)現在ブロックに対してBDPCMが適用されない。
(条件4)現在ブロックのイントラ予測モード(predModeIntra)が下記条件のいずれか一つを満たす。
-predModeIntra is equal to INTRA_PLANAR
-predModeIntra is equal to INTRA_DC
-predModeIntra is less than or equal to INTRA_ANGULAR18
-predModeIntra is greater than or equal to INTRA_ANGULAR50 and less than INTRA_LT_CCLM
前記条件1は現在ブロックのサイズに関するものである。現在ブロックが色差ブロックである場合、現在ブロックのサイズに関係なく、前記条件1が満たされる。また、現在ブロックが輝度ブロックである場合、現在ブロックが4×4以上のサイズを有すれば、前記条件1が満たされる。本開示において、前記現在ブロックの色成分はcIdxと表すことができる。例えば、cIdxが0であれば、現在ブロックは輝度成分ブロックであり、cIdxが0でなければ、現在ブロックは色差成分ブロックであることを表すことができる。
前記条件2は、イントラ予測に用いられた参照サンプルラインに関するものである。現在ブロックが色差ブロックである場合、参照サンプルラインに関係なく、前記条件2が満たされる。また、前記現在ブロックが輝度ブロックである場合、現在ブロックに隣接する1番目の参照サンプルラインを用いてイントラ予測が行われると、前記条件2が満たされる。
前記条件3は、現在ブロックに対してBDPCMが適用されるかに関するものである。前記条件3は、現在ブロックのBdpcmFlagに基づいて決定できる。例えば、現在ブロックのBdpcmFlagが0である場合、現在ブロックに対してBDPCMが適用されないことを示すことができる。現在ブロックのBdpcmFlagは、ビットストリームからシグナリングされる値に基づいて決定されることができる。現在ブロックが輝度(ルマ成分)ブロックである場合、シグナリングされたintra_bdpcm_luma_flagに基づいてBdpcmFlagの値が導出できる。現在ブロックが色差(クロマ成分)ブロックである場合、シグナリングされたintra_bdpcm_chroma_flagに基づいてBdpcmFlagの値が導出できる。
前記条件4は、現在ブロックのイントラ予測モードに関するものである。具体的には、現在ブロックのイントラ予測モードが1)PLANARモード、2)DCモード、3)18番と同じかそれより小さい方向性モード、又は4)50番と同じかそれより大きい方向性モードであり、LT_CCLMよりも小さいモードのうちのいずれか一つに該当する場合、現在ブロックに対してPDPCが適用できる。
表5は図16に示されている実施例によるPDPC適用条件のうちの条件1を現在ブロックの色成分によってまとめた表である。
表5に示すように、現在ブロックが輝度ブロックである場合、前記条件1は、現在ブロックの横長(width)と縦長(height)の両方とも所定の閾値4と同じかそれより大きいときに満足する。この時、前記所定の閾値4は、MIN_TB_SIZEYに置き換えられることができる。MIN_TB_SIZEYは、ルマ成分に対する最小変換ブロック(TB)サイズを表すことができ、その値は、予め定められるか、或いは符号化装置から復号化装置へシグナリングされることができる。図16に示されている実施例において、例えば、MIN_TB_SIZEYは4であり得る。
しかし、現在ブロックが色差ブロックである場合は、図16の前記条件1が常に満たされる。すなわち、現在ブロックのサイズに関する条件が適用されない。このように、現在ブロックのサイズに関する条件が、現在ブロックの輝度ブロックに対してのみ適用され、色差ブロックに対しては適用されない。結論として、PDPC適用条件のうち、現在ブロックのサイズに関する条件が現在ブロックの色成分によって異なるように適用できる。
より具体的には、現在ブロックが色差ブロックであり、そのサイズが2×2、2×4、4×2、又は2×Nであるとき、現在色差ブロックに対するイントラ予測は行われない。よって、現在ブロックが前記サイズの色差ブロックである場合、PDPCも行われない。
一方、現在ブロックがN×2の色差ブロックである場合、イントラ予測が行われ得るので、PDPCも行われ得る。よって、現在ブロックがN×2のブロックであるとき、輝度ブロックのイントラ予測ではPDPCが行われず、これに対し、色差ブロックのイントラ予測ではPDPCが行われ得る。
図17は本開示の他の実施例によるPDPC適用条件を示す図である。
図17に示されている実施例によれば、PDPC適用条件のうち、ブロックのサイズに関する条件が輝度ブロックと色差ブロックに対して同様に適用できる。具体的には、図17に示されている実施例によれば、現在色差ブロックのサイズがN×2である場合、PDPCを行わない方法が提供できる。
また、本開示によれば、輝度ブロックと色差ブロックに対するPDPC適用条件を単一化することにより、現在ブロックの色成分とは無関係に簡素化且つ単一化されたイントラ予測を行うことができる。
図17に示されている実施例によれば、下記の条件をすべて満足する場合、現在ブロックのイントラ予測された予測ブロックに対してPDPCが適用できる。
(条件1-1)現在ブロックの幅と高さの両方が4以上である。
(条件2)現在ブロックに隣接する1番目の参照サンプルライン(refIdx==0)を用いてイントラ予測が行われるか、或いは現在ブロックが色差ブロックである。
(条件3)現在ブロックに対してBDPCMが適用されない。
(条件4)現在ブロックのイントラ予測モード(predModeIntra)が下記条件のいずれか一つを満たす。
-predModeIntra is equal to INTRA_PLANAR
-predModeIntra is equal to INTRA_DC
-predModeIntra is less than or equal to INTRA_ANGULAR18
-predModeIntra is greater than or equal to INTRA_ANGULAR50 and less than INTRA_LT_CCLM
前記条件1-1は、現在ブロックのサイズに関するものである。図17に示されている実施例によれば、現在ブロックの色成分に関係なく、現在ブロックが4×4以上のサイズを有すれば、前記条件1が満たされる。つまり、現在ブロックの幅と高さの両方が所定の閾値(例えば、4)以上である場合、前記条件1-1が満たされる。現在ブロックの幅又は高さが所定の閾値より小さい場合、前記現在ブロックの色成分に関係なく、前記条件1-1が満たされないと判断できる。したがって、図17に示されている実施例によれば、前記条件1-1の満足如何を判断するために、前記現在ブロックの色成分が輝度成分であるか色差成分であるかを判断することなく、スキップすることができる。
前記条件2~前記条件4は、図16を参照して説明したのと同様であるので、重複説明は省略する。
図17に示されている実施例によれば、PDPC適用条件のうち、現在ブロックのサイズに関する前記条件1-1を輝度ブロックと色差ブロックに対して共通に適用することにより、N×2の色差ブロックに対してPDPCが適用される問題点を解決することができる。
図17に示されている実施例は、現在ブロックのサイズに関する前記条件1-1を輝度成分ブロックと色差成分ブロックに共通に適用することを技術的特徴とする。したがって、前記条件1-1の他に、前記条件2~前記条件4の全部又は一部は、図17に示されている実施例とは異なるように変更できる。このように変更されたPDPC適用条件も、図17に示されている実施例の変形例であって、本開示による発明の範囲に含まれることができる。
図18は本開示の別の実施例によるPDPC適用条件を示す図である。
図18に示されている実施例によれば、PDPC適用条件のうち、ブロックのサイズに関する条件及び参照サンプルラインに関する条件が輝度ブロックと色差ブロックに対して同様に適用できる。具体的には、図18に示されている実施例によれば、現在色差ブロックのサイズがN×2である場合、PDPCを行わない方法が提供できる。また、イントラ予測のために用いられた参照サンプルラインが1番目の参照サンプルラインではない場合、PDPCを行わない方法が提供できる。
また、本開示によれば、輝度ブロックと色差ブロックに対するPDPC適用条件を単一化することにより、現在ブロックの色成分とは無関係に、簡素化且つ単一化されたイントラ予測を行うことができる。
図18に示されている実施例によれば、下記の条件をすべて満たす場合、現在ブロックのイントラ予測された予測ブロックに対してPDPCが適用できる。
(条件1-1)現在ブロックの幅と高さの両方が4以上である。
(条件2-1)現在ブロックに隣接する1番目の参照サンプルライン(refIdx==0)を用いてイントラ予測が行われる。
(条件3)現在ブロックに対してBDPCMが適用されない。
(条件4)現在ブロックのイントラ予測モード(predModeIntra)が下記条件のいずれか一つを満足する。
-predModeIntra is equal to INTRA_PLANAR
-predModeIntra is equal to INTRA_DC
-predModeIntra is less than or equal to INTRA_ANGULAR18
-predModeIntra is greater than or equal to INTRA_ANGULAR50 and less than INTRA_LT_CCLM
前記条件1-1は、図17を参照して説明したのと同様であるので、重複説明は省略する。
前記条件2-1は、イントラ予測に用いられた参照サンプルラインに関するものである。図18に示されている実施例によれば、現在ブロックの色成分とは関係なく、現在ブロックに隣接する1番目の参照サンプルラインを用いてイントラ予測が行われると、前記条件2-1が満たされる。つまり、現在ブロックのイントラ予測に1番目の参照サンプルラインが用いられた場合、前記条件2が満たされる。現在ブロックのイントラ予測に1番目の参照サンプルラインが用いられていない場合、前記現在ブロックの色成分とは関係なく、前記条件2-1が満たされないと判断できる。したがって、図18に示されている実施例によれば、前記条件2-1の満足如何を判断するために、前記現在ブロックの色成分が輝度成分であるか色差成分であるかを判断することなく、スキップすることができる。
前記条件3及び前記条件4は、図16を参照して説明したのと同様であるので、重複説明は省略する。
図18に示されている実施例によれば、PDPC適用条件のうち、現在ブロックのサイズに関する前記条件1-1を輝度ブロックと色差ブロックに対して共通に適用することにより、N×2の色差ブロックに対してPDPCが適用される問題点を解決することができる。また、PDPC適用条件のうち、現在ブロックのイントラ予測に用いられた参照サンプルラインに関する前記条件2-1を輝度ブロックと色差ブロックに対して共通に適用することにより、PDPC適用条件を単一化することができる。
図18に示されている実施例は、現在ブロックのサイズに関する前記条件1-1及びイントラ予測に用いられた参照サンプルラインに関する前記条件2-1を輝度成分ブロックと色差成分ブロックに対して共通に適用することを技術的特徴とする。したがって、前記条件1-1及び前記条件2-1の他に、前記条件3及び前記条件4の全部又は一部は、図18に示されている実施例とは異なるように変更できる。このように変更されたPDPC適用条件も、図18に示されている実施例の変形例であって、本開示による発明の範疇に含まれることができる。
図19は本開示の実施例によって予測ブロックを生成する方法を説明するためのフローチャートである。
図19はイントラ予測を行って予測ブロックを生成するステップを具体化したものであって、画像符号化装置及び/又は画像復号化装置で予測ブロックを生成するために行われることができる。例えば、画像符号化装置で行われる図8のステップS800で、図19の各ステップが行われることができる。また、画像復号化装置で行われる図10のステップS1020で図19の各ステップが行われることができる。
現在ブロックに対してイントラ予測が行われる場合、現在ブロックの周辺参照サンプル及びイントラ予測モードに基づいて現在ブロックの予測ブロックが生成されることができる(S1910)。ステップS1910で生成された予測ブロックは、PDPCの適用如何に応じて修正されることができるので、一時予測ブロック又は一次予測ブロックなどと呼ばれることができる。また、PDPCの適用結果として生成された予測ブロックは、単に予測ブロック又は最終予測ブロックなどと呼ばれることができる。
その後、一時予測ブロック又は一次予測ブロックに対してPDPCを適用するか否かが判断できる(S1920)。ステップS1920は、PDPC適用条件が満たされるか否かを確認することにより行われることができる。本開示によるPDPC適用条件は、図17及び図18を参照して説明したのと同様である。しかし、本開示によるPDPC適用条件は、図17及び図18の例に限定されず、PDPC適用条件の様々な変形例が本開示の保護範囲に含まれることができるのは、前述した通りである。
ステップS1920の判断結果、PDPC適用条件が満たされない場合、PDPCは行われず、ステップS1910で生成された一時予測ブロック(一次予測ブロック)を現在ブロックの最終予測ブロックとして用いることができる。
ステップS1920の判断結果、PDPC適用条件が満たされる場合、PDPCが行われることができる(S1930)。このとき、ステップS1910で生成された一時予測ブロック(一次予測ブロック)に対してPDPCが行われることにより、現在ブロックの最終予測ブロックを生成することができる。
ステップS1930のPDPCは、例えば、上述したPDPC方法によって行われることができる。
図19の方法に従って生成された現在ブロックの最終予測ブロックは、現在ブロックのレジデュアルブロックを生成するか(S810)、或いは現在ブロックのレジデュアルブロックと共に現在ブロックを復元するために使用できる(S1040)。
本開示の実施例によれば、PDPC適用条件を現在ブロックの色成分とは独立して設定することにより、現在ブロックの色成分に対する判断をスキップすることができ、PDPC適用如何の判断過程を単純化することができる。また、本開示の実施例によれば、簡素化且つ単一化されたPDPC適用如何の判断を行うことができる。
本開示の例示的な方法は、説明の明確性のために動作のシリーズで表現されているが、これは、ステップが行われる順序を制限するためのものではなく、必要な場合には、それぞれのステップが同時に又は異なる順序で行われることもできる。本開示による方法を実現するために、例示するステップにさらに他のステップを含むか、一部のステップを除いて残りのステップを含むか、又は一部のステップを除いて追加の他のステップを含むこともできる。
本開示において、所定の動作(ステップ)を行う画像符号化装置又は画像復号化装置は、当該動作(ステップ)の実行条件や状況を確認する動作(ステップ)を行うことができる。例えば、所定の条件が満たされる場合、所定の動作を行うと記載された場合、画像符号化装置又は画像復号化装置は、前記所定の条件が満たされるか否かを確認する動作を行った後、前記所定の動作を行うことができる。
本開示の様々な実施例は、すべての可能な組み合わせを羅列したものではなく、本開示の代表的な態様を説明するためのものであり、様々な実施例で説明する事項は、独立して適用されてもよく、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)などを含むことができる。
図20は本開示の実施例が適用できるコンテンツストリーミングシステムを例示する図である。
図20に示されているように、本開示の実施例が適用されたコンテンツストリーミングシステムは、大きく、符号化サーバ、ストリーミングサーバ、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)を含む。