本発明は、様々な変更を加えることができ、様々な実施形態を有することができるので、特定の実施形態を図面に例示し、詳細な説明に詳細に説明する。ただし、これは本発明を特定の実施形態について限定するものではなく、本発明の思想及び技術範囲に含まれるすべての変更、均等物ないし代替物を含むものと理解されるべきである。図面において類似する参照符号は、様々な側面にわたって同一又は類似の機能を指し示す。図面における要素の形状及び大きさなどは、より明確な説明のために誇張することがある。後述する例示的実施形態についての詳細な説明は、特定の実施形態を例示として示す添付図面を参照する。これらの実施形態は、当業者が実施形態を実施し得る程度に十分に詳細に説明される。様々な実施形態は、互いに異なるが、相互に排他的である必要はないことが理解されるべきである。例えば、ここに記載されている特定の形状、構造及び特性は、一実施形態に関連して本発明の精神及び範囲を逸脱することなく、様々な実施形態に実現できる。また、それぞれの開示された実施形態内の個別構成要素の位置又は配置は実施形態の精神及び範囲を逸脱することなく変更可能であることが理解されるべきである。したがって、後述する詳細な説明は、限定的な意味として取るものではなく、例示的な実施形態の範囲は、適切に説明されるならば、それらの請求項が主張するのと均等なすべての範囲及び添付の請求項によってのみ限定される。
本発明において、用語「第1」、「第2」などは多様な構成要素の説明に使用できるが、これらの構成要素は上記の用語により限定されてはならない。これらの用語は、一つの構成要素を他の構成要素から区別する目的にのみ使われる。例えば、本発明の権利範囲を外れない限り、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素も第1構成要素と命名することができる。用語「及び/又は」は、複数の関連した記載項目の組み合わせ又は複数の関連した記載項目のいずれかを含む。
本発明のある構成要素が他の構成要素に「連結されて」いる或いは「接続されて」いるとした場合には、その他の構成要素に直接連結されている或いは接続されていることもあるが、それらの間に別の構成要素が介在することもあると理解されるべきである。これに対し、ある構成要素が他の構成要素に「直接連結されて」いる或いは「直接接続されて」いるとした場合には、それらの間に別の構成要素が介在しないと理解されるべきである。
本発明の実施形態に示す構成部は、互いに異なる特徴的な機能を示すために独立に図示されるもので、各構成部が分離されたハードウェア又は一つのソフトウェア構成単位からなることを意味しない。すなわち、各構成部は、説明の便宜上、それぞれの構成部に羅列して含むもので、各構成部のうちの少なくとも2つの構成部が合わせられて一つの構成部をなすか、或いは一つの各構成部が複数の構成部に分けられて機能を行うことができ、このような各構成部の統合された実施形態及び分離された実施形態も本発明の本質から外れない限り、本発明の権利範囲に含まれる。
本発明で使用した用語は、単に特定の実施形態を説明するために使われたものであり、本発明を限定するものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本発明において、「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はこれらの組み合わせが存在することを指定するものであり、一つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品又はこれらの組み合わせの存在又は付加可能性を予め排除しないと理解すべきである。つまり、本発明において、特定の構成を「含む」と記述する内容は、該当構成以外の構成を排除するものではなく、追加の構成が本発明の実施又は本発明の技術的思想の範囲に含まれ得ることを意味する。
本発明の一部の構成要素は、本発明において本質的な機能を行う不可欠の構成要素ではなく、単に性能を向上させるための選択的構成要素であり得る。本発明は、単に性能向上のために使用される構成要素を除く、本発明の本質の実現に必要不可欠な構成部のみを含んで実現でき、単に性能向上のために使用される選択的構成要素を除く必須構成要素のみを含む構造も本発明の権利範囲に含まれる。
以下、図面を参照して、本発明の実施形態について具体的に説明する。本明細書の実施形態を説明するにあたり、関連した公知の構成又は機能についての具体的な説明が本明細書の要旨を曖昧にするおそれがあると判断された場合、その詳細な説明は省略し、図面上の同一の構成要素については同一の参照符号を使用し、同一の構成要素についての重複説明は省略する。
また、以下において、画像は動画像(video)を構成する一つのピクチャを意味することもあり、動画像自体を示すこともある。例えば、「画像の符号化及び/又は復号」は、「ビデオの符号化及び/又は復号」を意味することができ、「ビデオを構成する画像のうちの一つの画像の符号化及び/又は復号」を意味することもできる。ここで、ピクチャは画像と同じ意味を持つことができる。
<用語説明>
符号化器(Encoder):符号化を行う装置を意味することができる。
復号器(Decoder):復号を行う装置を意味することができる。
パーシング(Parsing):エントロピー復号して構文要素(Syntax Element)の値を決定することを意味し、或いはエントロピー復号自体を意味することができる。
ブロック(Block):サンプル(Sample)のMxN配列であり、ここで、MとNは正の整数値を意味し、ブロックは一般に2次元形状のサンプル配列を意味することができる。
サンプル(Sample):ブロックを構成する基本単位であり、ビット深度(bit depth、Bd)に応じて0から2Bd-1までの値を表現することができる。本発明において、画素及びピクセルはサンプルと同じ意味で使用できる。
ユニット(Unit):画像符号化及び復号の単位を意味することができる。画像の符号化及び復号において、ユニットは、一つの画像の分割によって生成された領域であり得る。また、ユニットは、一つの画像を細分化されたユニットに分割して符号化或いは復号するとき、その分割された単位を意味することができる。画像の符号化及び復号において、ユニットごとに、予め定義された処理が実行できる。一つのユニットは、ユニットに比べてより小さい大きさを持つ下位ユニットにさらに分割できる。機能に応じて、ユニットは、ブロック(Block)、マクロブロック(Macroblock)、符号化ツリーユニット(Coding Tree Unit)、符号化ツリーブロック(Coding Tree Block)、符号化ユニット(Coding Unit)、符号化ブロック(Coding Block)、予測ユニット(Prediction Unit)、予測ブロック(Prediction Block)、変換ユニット(Transform Unit)、変換ブロック(Transform Block)などを意味することができる。また、ユニットは、ブロックと区分して指し示すために、輝度(Luma)成分ブロック、それに対応する色差(Chroma)成分ブロック、及び各ブロックに対する構文要素を含むことを意味することができる。ユニットは、様々なサイズと形状を持つことができ、特に、ユニットの形状は、長方形だけでなく、正方形、台形、三角形、五角形など、2次元的に表現できる幾何学的図形を含むことができる。また、ユニット情報には、符号化ユニット、予測ユニット、変換ユニットなどを指し示すユニットのタイプ、ユニットの大きさ、ユニットの深さ、ユニットの符号化及び復号順序などのうちの少なくとも一つを含むことができる。
再構築された近傍ユニット(Reconstructed Neighbor Unit):符号化/復号対象ユニットの周りに空間的(Spatial)/時間的(Temporal)に既に符号化或いは復号されて再構築されたユニットを意味することができる。このとき、再構築された近傍ユニットは、再構築された近傍ブロックを意味することができる。
近傍ブロック(Neighbor block):符号化/復号対象ブロックに隣接するブロックを意味することができる。符号化/復号対象ブロックに隣接するブロックは、符号化/復号対象ブロックに境界が接するブロックを意味することができる。近傍ブロックは符号化/復号対象ブロックの隣接頂点に位置するブロックを意味することができる。近傍ブロックは、再構築された近傍ブロックを意味することもできる。
ユニット深さ(Depth):ユニットが分割された程度を意味し、ツリー構造(Tree Structure)において、ルートノード(Root Node)は深さが最も浅く、リーフノード(Leaf Node)は深さが最も深いといえる。
シンボル(Symbol):符号化/復号対象ユニットの構文要素及び符号化パラメータ(coding parameter)、変換係数(Transform Coefficient)の値などを意味することができる。
パラメータセット(Parameter Set):ビットストリーム内の構造のうちのヘッダー情報に該当することができ、ビデオパラメータセット(video parameter set)、シーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、適応パラメータセット(adaptation parameter set)のうちの少なくとも一つがパラメータセットに含まれ得る。また、パラメータセットにはスライス(slice)ヘッダー及びタイル(tile)ヘッダー情報を含む意味を持つことができる。
ビットストリーム(Bitstream):符号化された画像情報を含むビットの列を意味することができる。
予測ユニット(Prediction Unit):インター予測又はイントラ予測及びそれに対する補償を行うときの基本ユニットであり、一つの予測ユニットは、大きさが小さい複数のパーティション(Partition)に分割されることも可能である。この場合、複数のパーティションそれぞれを前記予測及び補償実行時の基本ユニットとし、予測ユニットが分割されたパーティションも予測ユニットとすることができる。予測ユニットはさまざまなサイズと形状を有することができ、特に予測ユニットの形状は、長方形だけでなく、正方形、台形、三角形、五角形など、2次元的に表現できる幾何学的図形を含むことができる。
予測ユニットパーティション(Prediction Unit Partition):予測ユニットが分割された形状を意味することができる。
参照画像リスト(Reference Picture List):インター予測或いは動き補償に使用される一つ以上の参照画像が含まれているリストを意味することができる。参照画像リストの種類は、LC(List Combined)、L0(List 0)、L1(List 1)、L2(List 2)、L3(List 3)などがあり得る。インター予測には、一つ以上の参照画像リストが使用できる。
インター予測インジケータ(Inter Prediction Indicator):インター予測時に符号化/復号対象ブロックのインター予測方向(一方向予測、双方向予測など)を意味することができ、符号化/復号対象ブロックが予測ブロックを生成するときに使用する参照画像の数を意味することができ、符号化/復号対象ブロックがインター予測或いは動き補償を行うときに使用する予測ブロックの数を意味することができる。
参照画像インデックス(Reference Picture Index):参照画像リストから特定の参照画像に対するインデックスを意味することができる。
参照画像(Reference Picture):インター予測或いは動き補償のために特定のユニットが参照する画像を意味することができ、参照画像を参照ピクチャとも呼ぶことができる。
動きベクトル(Motion Vector):インター予測或いは動き補償に使用される2次元ベクトルであり、符号化/復号対象画像と参照画像との間のオフセットを意味することができる。例えば、(mvX、mvY)は動きベクトルを示すことができ、mvXは横(horizontal)成分、mvYは縦(vertical)成分を示すことができる。
動きベクトル候補(Motion Vector Candidate):動きベクトルを予測するときに予測候補となるユニット、或いはそのユニットの動きベクトルを意味することができる。
動きベクトル候補リスト(Motion Vector Candidate List):動きベクトル候補を用いて構成されたリストを意味することができる。
動きベクトル候補インデックス(Motion Vector Candidate Index):動きベクトル候補リスト内の動きベクトル候補を示すインジケータ、動きベクトル予測器(Motion Vector Predictor)のインデックス(index)とも呼ぶことができる。
動き情報(Motion Information):動きベクトル、参照画像インデックス、インター予測インジケータ(Inter Prediction Indicator)だけでなく、参照画像リスト情報、参照画像、動きベクトル候補、動きベクトル候補インデックスなどのうちの少なくとも一つを含む情報を意味することができる。
マージ候補リスト(Merge Candidate List):マージ候補を用いて構成されたリストを意味することができる。
マージ候補(Merge Candidate):空間マージ候補、時間マージ候補、結合マージ候補、結合双予測マージ候補、ゼロマージ候補などを含むことができ、マージ候補は、予測タイプ情報(prediction type information)、各リストに対する参照画像インデックス(reference picture index)、動きベクトル(motion vector)などの動き情報を含むことができる。
マージインデックス(Merge Index):マージ候補リスト内のマージ候補を指し示す情報を意味することができる。また、マージインデックスは、空間的/時間的に現在ブロックと隣接するように再構築されたブロックのうち、マージ候補を導出したブロックを示すことができる。また、マージインデックスは、マージ候補が持つ動き情報のうちの少なくとも一つを示すことができる。
変換ユニット(Transform Unit):変換、逆変換、量子化、逆量子化、変換係数符号化/復号のように残余信号(residual signal)符号化/復号を行うときの基本ユニットを意味することができ、一つの変換ユニットは、分割されてサイズの小さい複数の変換ユニットに分割できる。変換ユニットは、さまざまなサイズと形状を持つことができ、特に、変換ユニットの形状は、長方形だけでなく、正方形、台形、三角形、五角形など、2次元的に表現できる幾何学的図形を含むことができる。
スケーリング(Scaling):変換係数レベルに因数を掛ける処理を意味することができ、結果として変換係数を生成することができる。スケーリングを逆量子化(dequantization)とも呼ぶことができる。
量子化パラメータ(Quantization Parameter):量子化及び逆量子化において変換係数レベル(transform coefficient level)をスケーリング(scaling)するときに使用する値を意味することができる。このとき、量子化パラメータは、量子化ステップサイズ(step size)にマッピングされた値であり得る。
デルタ量子化パラメータ(Delta Quantization Parameter):予測された量子化パラメータと符号化/復号対象ユニットの量子化パラメータとの差分値を意味することができる。
スキャン(Scan):ブロック或いは行列内係数の順序をソートする方法を意味することができ、例えば、2次元配列を1次元配列にソートすることをスキャンといい、1次元配列を2次元配列にソートすることもスキャン或いは逆スキャン(Inverse Scan)と呼ぶことができる。
変換係数(Transform Coefficient):変換を行ってから生成された係数値、本発明では変換係数に量子化を適用した量子化変換係数レベル(transform coefficient level)も変換係数の意味に含まれ得る。
ナンゼロ変換係数(Non-zero Transform Coefficient):変換係数値の大きさが0ではない変換係数、或いは値の大きさが0ではない変換係数レベルを意味することができる。
量子化行列(Quantization Matrix):画像の主観的画質或いは客観的画質を向上させるために量子化或いは逆量子化処理で利用する行列を意味することができる。量子化行列をスケーリングリスト(scaling list)とも呼ぶことができる。
量子化行列係数(Quantization Matrix Coefficient):量子化行列内の各要素(element)を意味することができる。量子化行列係数を行列係数(matrix coefficient)とも呼ぶことができる。
基本行列(Default Matrix):符号化器と復号器で予め定義されている所定の量子化行列を意味することができる。
非基本行列(Non-default Matrix):符号化器と復号器で予め定義されず、ユーザーによって送信/受信される量子化行列を意味することができる。
符号化ツリーユニット(Coding Tree Unit):一つの輝度成分(Y)符号化ツリーブロックと関連する2つの色差成分(Cb、Cr)符号化ツリーブロックから構成できる。各符号化ツリーユニットは、符号化ユニット、予測ユニット、変換ユニットなどの下位ユニットを構成するために、4分木(quad tree)、2分木(binary tree)などの一つ以上の分割方式を用いて分割できる。入力画像の分割のように画像の復号/符号化処理で処理単位となるピクセルブロックを示すための用語として使用できる。
符号化ツリーブロック(Coding Tree Block):Y符号化ツリーブロック、Cb符号化ツリーブロック及びCr符号化ツリーブロックのいずれかを示すための用語として使用できる。
図1は本発明が適用される符号化装置の一実施形態に係る構成を示すブロック図である。
符号化装置100は、ビデオ符号化装置又は画像符号化装置であり得る。ビデオは、一つ以上の画像を含むことができる。符号化装置100は、ビデオの一つ以上の画像を時間に応じて順次符号化することができる。
図1を参照すると、符号化装置100は、動き予測部111、動き補償部112、イントラ予測部120、スイッチ115、減算器125、変換部130、量子化部140、エントロピー符号化部150、逆量子化部160、逆変換部170、加算器175、フィルタ部180、及び参照ピクチャバッファ190を含むことができる。
符号化装置100は、入力画像に対してイントラモード及び/又はインターモードで符号化を行うことができる。また、符号化装置100は、入力画像に対する符号化を介してビットストリームを生成することができ、生成されたビットストリームを出力することができる。予測モードとしてイントラモードが使用される場合、スイッチ115はイントラに切り替えられてよい。予測モードとしてインターモードが使用される場合、スイッチ115はインターに切り替えられてよい。ここで、イントラモードはイントラ予測モードを意味することができ、インターモードはインター予測モードを意味することができる。符号化装置100は、入力画像の入力ブロックに対する予測ブロックを生成することができる。また、符号化装置100は、予測ブロックが生成された後、入力ブロック及び予測ブロックの差分(residual)を符号化することができる。入力画像は、現在符号化の対象である現在画像と称されることもある。入力ブロックは、現在符号化の対象となる現在ブロック或いは符号化対象ブロックと称されることもある。
予測モードがイントラモードである場合、イントラ予測部120は、現在ブロックの近傍に既に符号化されたブロックのピクセル値を参照画素としても用いることができる。イントラ予測部120は、参照画素を用いて空間予測を行うことができ、空間予測を介して入力ブロックに対する予測サンプルを生成することができる。ここで、イントラ予測はイントラ予測を意味することができる。
予測モードがインターモードである場合には、動き予測部111は、動き予測処理で参照画像から入力ブロックと最もよくマッチする領域を検索することができ、検索された領域を用いて動きベクトルを導出することができる。参照画像は参照ピクチャバッファ190に保存できる。
動き補償部112は、動きベクトルを用いる動き補償を行うことにより、予測ブロックを生成することができる。ここで、動きベクトルは、インター予測に使用される2次元ベクトルであり得る。また、動きベクトルは、現在画像と参照画像との間のオフセット(offset)を示すことができる。ここで、インター予測はインター予測を意味することができる。
前記動き予測部111と動き補償部112は、動きベクトルの値が整数値を持たない場合に参照画像内の一部の領域に対して補間フィルタ(Interpolation Filter)を適用して予測ブロックを生成することができる。インター予測或いは動き補償を行うために、符号化ユニットを基準に、該当符号化ユニットに含まれている予測ユニットの動き予測及び動き補償方法がスキップモード(Skip Mode)、マージモード(Merge mode)、AMVPモード(AMVP Mode)及び現在ピクチャ参照モードのうちのいずれの方法であるかを判断することができ、各モードに応じて、インター予測或いは動き補償を行うことができる。ここで、現在ピクチャ参照モードは、符号化対象ブロックの属した現在ピクチャ内の既に再構築された領域を用いた予測モードを意味することができる。前記既に再構築された領域を特定するために、現在ピクチャ参照モードのための動きベクトルが定義できる。符号化対象ブロックが現在ピクチャ参照モードで符号化されるか否かは、符号化対象ブロックの参照画像インデックスを用いて符号化できる。
減算器125は、入力ブロック及び予測ブロックの差分を用いて残余ブロック(residual block)を生成することができる。残余ブロックは残余信号とも称される。
変換部130は、残余ブロックに対して変換(transform)を行って変換係数(transform coefficient)を生成することができ、変換係数を出力することができる。ここで、変換係数は、残余ブロックに対する変換を行うことにより、生成された係数値であり得る。変換省略(transform skip)モードが適用される場合、変換部130は残余ブロックに対する変換を省略することもできる。
変換係数に量子化を適用することにより、量子化された変換係数レベル(transform coefficient level)が生成できる。以下、実施形態では、量子化された変換係数レベルも変換係数と称されることがある。
量子化部140は、変換係数を量子化パラメータに基づいて量子化することにより、量子化された変換係数レベル(transform coefficient level)を生成することができ、量子化された変換係数レベルを出力することができる。このとき、量子化部140では、量子化行列を用いて変換係数を量子化することができる。
エントロピー符号化部150は、量子化部140で算出された値、又は符号化処理で算出された符号化パラメータ(Coding Parameter)値などに対して確率分布によるエントロピー符号化を行うことにより、ビットストリーム(bitstream)を生成することができ、ビットストリームを出力することができる。エントロピー符号化部150は、画像のピクセルの情報の他に、画像の復号のための情報に対するエントロピー符号化を行うことができる。例えば、画像の復号のための情報は構文要素(syntax element)などを含むことができる。
エントロピー符号化が適用される場合、高い発生確率を有するシンボル(symbol)に少ない数のビットが割り当てられ、低い発生確率を有するシンボルに多い数のビットが割り当てられてシンボルが表現されることにより、符号化対象シンボルに対するビット列のサイズが減少できる。よって、エントロピー符号化を介して画像符号化の圧縮効率が高くなることができる。エントロピー符号化部150は、エントロピー符号化のために指数ゴロム(exponential golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などの符号化方法を使用することができる。例えば、エントロピー符号化部150は、可変長符号化(Variable Length Coding/Code;VLC)テーブルを用いてエントロピー符号化を行うことができる。また、エントロピー符号化部150は、対象シンボルの2値化(binarization)方法及び対象シンボル/ビン(bin)の確率モデル(probability model)を導出した後、導出された2値化方法又は確率モデルを用いて算術符号化を行うこともできる。
エントロピー符号化部150は、変換係数レベルを符号化するために、変換係数スキャニング(Transform Coefficient Scanning)方法を介して2次元のブロック形状係数を1次元のベクトルに変更することができる。例えば、アップライト(up right)スキャニングを用いてブロックの係数をスキャニングすることにより、1次元ベクトルに変更することができる。変換ユニットのサイズ及びイントラ予測モードに応じて、アップライトスキャンの代わりに、2次元のブロック形状係数を列方向にスキャニングする垂直スキャン、2次元のブロック形状係数を行方向にスキャニングする水平スキャンが使用されてもよい。つまり、変換ユニットのサイズ及びイントラ予測モードに応じてアップライトスキャン、垂直方向スキャン及び水平方向スキャンのうちのいずれのスキャン方法が使用されるかを決定することができる。
符号化パラメータ(Coding Parameter)は、構文要素のように符号化器で符号化されて復号器へ送信される情報だけでなく、符号化或いは復号処理で導出される情報を含むことができ、画像を符号化又は復号するときに必要な情報を意味することができる。例えば、ブロックサイズ、ブロック深さ、ブロック分割情報、ユニットサイズ、ユニット深さ、ユニット分割情報、4分木分割フラグ、2分木分割フラグ、2分木分割方向、イントラ予測モード、イントラ予測方向、参照サンプルフィルタリング方法、予測ブロック境界フィルタリング方法、フィルタタップ、フィルタ係数、インター予測モード、動き情報、動きベクトル、参照画像インデックス、インター予測方向、インター予測インジケータ、参照画像リスト、動きベクトル予測、動きベクトル候補リスト、動きマージモード(motion merge mode)の使用有無、動きマージ候補、動きマージ候補リスト、スキップ(skip)モードの使用有無、補間フィルタの種類、動きベクトルのサイズ、動きベクトル表現の精度、変換種類、変換サイズ、追加(2次)変換の使用有無情報、残余信号の有無情報、符号化ブロックパターン(Coded Block Pattern)、符号化ブロックフラグ(Coded Block Flag)、量子化パラメータ、量子化行列、ループ内フィルタ情報、ループ内フィルタを適用するか否かについての情報、ループ内フィルタ係数、2値化/逆2値化方法、コンテキストモデル、コンテキストビン、バイパスビン、変換係数、変換係数レベル、変換係数レベルのスキャニング方法、画像ディスプレイ/出力順序、スライス識別情報、スライスタイプ、スライス分割情報、タイル識別情報、タイルタイプ、タイル分割情報、ピクチャタイプ、ビット深度、輝度信号或いは色差信号に対する情報のうち少なくとも一つの値又は組み合わせ形態が符号化パラメータに含まれ得る。
残余信号は、原信号と予測信号との差(difference)を意味することができる。又は、残余信号は、原信号と予測信号との差を変換(transform)することにより生成された信号であり得る。又は、残余信号は、原信号と予測信号との差を変換及び量子化することにより生成された信号であり得る。残余ブロックはブロック単位の残余信号であり得る。
符号化装置100がインター予測を用いた符号化を行う場合、符号化された現在画像は、後で処理される他の画像に対して参照画像として使用できる。よって、符号化装置100は、符号化された現在画像をさらに復号することができ、復号された画像を参照画像として保存することができる。復号のために、符号化された現在画像に対する逆量子化及び逆変換が処理できる。
量子化された係数は、逆量子化部160で逆量子化(dequantization)でき、逆変換部170で逆変換(inverse transform)できる。逆量子化及び逆変換された係数は、加算器175を介して予測ブロックと合わせられ得る。逆量子化及び逆変換された係数と予測ブロックとを合わせることにより、再構築ブロック(reconstructed block)が生成できる。
再構築ブロックはフィルタ部180を経ることができる。フィルタ部180は、デブロッキングフィルタ(deblocking filter)、サンプル適応的オフセット(Sample Adaptive Offset;SAO)、適応的ループフィルタ(Adaptive Loop Filter;ALF)のうちの少なくとも一つを再構築ブロック又は再構築画像に適用することができる。フィルタ部180はインループフィルタ(in-loop filter)とも称される。
デブロッキングフィルタは、ブロック間の境界に生じたブロック歪みを除去することができる。デブロッキングフィルタを行うか否かを判断するために、ブロックに含まれている幾つかの列又は行に含まれているピクセルに基づいて、現在ブロックにデブロッキングフィルタを適用するか否かを判断することができる。ブロックにデブロッキングフィルタを適用する場合、必要なデブロッキングフィルタリング強度に応じて強いフィルタ(Strong Filter)又は弱いフィルタ(Weak Filter)を適用することができる。また、デブロッキングフィルタを適用するにあたり、垂直フィルタリング及び水平フィルタリングの際に水平方向のフィルタリング及び垂直方向のフィルタリングが並行処理されるようにすることができる。
サンプル適応的オフセットは、符号化エラーを補償するために、ピクセル値に適正オフセット(offset)値を加えることができる。サンプル適応的オフセットは、デブロッキングを行った画像に対してピクセル単位で原本画像とのオフセットを補正することができる。特定のピクチャに対するオフセット補正を行うために、画像に含まれているピクセルを一定数の領域に区分した後、オフセットを行うべき領域を決定し、該当領域にオフセットを適用する方法、又は各ピクセルのエッジ情報を考慮してオフセットを適用する方法を使用することができる。
適応的ループフィルタは、再構築画像と原画像とを比較した値に基づいてフィルタリングを行うことができる。画像に含まれているピクセルを所定のグループに分けた後、当該グループに適用されるべき一つのフィルタを決定してグループごとに差別的にフィルタリングを行うことができる。適応的ループフィルタを適用するか否かに関連した情報は、輝度信号は符号化ユニット(Coding Unit、CU)ごとに送信でき、それぞれのブロックに応じて、適用される適応的ループフィルタの形状及びフィルタ係数は異なり得る。また、適用対象ブロックの特性を問わず、同じ形態(固定された形態)の適応的ループフィルタが適用されることも可能である。
フィルタ部180を経た再構築ブロックは参照ピクチャバッファ190に保存できる。
図2は本発明が適用される復号装置の一実施形態に係る構成を示すブロック図である。
復号装置200はビデオ復号装置又は画像復号装置であり得る。
図2を参照すると、復号装置200は、エントロピー復号部210、逆量子化部220、逆変換部230、イントラ予測部240、動き補償部250、加算器255、フィルタ部260、及び参照ピクチャバッファ270を含むことができる。
復号装置200は、符号化装置100から出力されたビットストリームを受信することができる。復号装置200は、ビットストリームに対してイントラモード又はインターモードで復号を行うことができる。また、復号装置200は、復号を介して再構築画像を生成することができ、再構築画像を出力することができる。
復号に使用される予測モードがイントラモードである場合、スイッチがイントラに切り替えられてよい。復号に使用される予測モードがインターモードである場合、スイッチがインターに切り替えられてよい。
復号装置200は、入力されたビットストリームから、再構築された残余ブロック(reconstructed residual block)を取得することができ、予測ブロックを生成することができる。再構築された残余ブロック及び予測ブロックが取得されると、復号装置200は、再構築された残余ブロックと予測ブロックを加えることにより、復号対象ブロックである再構築ブロックを生成することができる。復号対象ブロックは現在ブロックと称されることもある。
エントロピー復号部210は、ビットストリームに対する確率分布に基づくエントロピー復号を行うことにより、シンボルを生成することができる。生成されたシンボルは、量子化された変換係数レベル(transform coefficient level)形態のシンボルを含むことができる。ここで、エントロピー復号方法は、上述したエントロピー符号化方法と類似することができる。例えば、エントロピー復号方法は上述したエントロピー符号化方法の逆処理であり得る。
エントロピー復号部210は、変換係数レベルを復号するために、変換係数のスキャニング(Transform Coefficient Scanning)方法によって1次元のベクトル形態係数を2次元のブロック形態に変更することができる。例えば、アップライト(up right)スキャニングを用いてブロックの係数をスキャニングすることにより、2次元ブロック形態に変更させることができる。変換ユニットのサイズ及びイントラ予測モードに応じて、アップライトスキャンの代わりに垂直スキャン、水平スキャンが使用されてもよい。つまり、変換ユニットのサイズ及びイントラ予測モードに応じてアップライトスキャン、垂直方向スキャン及び水平方向スキャンのうちのいずれのスキャン方法が使用されるかを決定することができる。
量子化された変換係数レベルは、逆量子化部220で逆量子化でき、逆変換部230で逆変換できる。量子化された変換係数レベルが逆量子化及び逆変換された結果として、再構築された残余ブロックが生成できる。このとき、逆量子化部220は、量子化された変換係数レベルに量子化行列を適用することができる。
イントラモードが使用される場合、イントラ予測部240は、復号対象ブロック近傍の、既に復号されたブロックのピクセル値を用いる空間予測を行うことにより、予測ブロックを生成することができる。
インターモードが使用される場合、動き補償部250は、動きベクトル及び参照ピクチャバッファ270に保存されている参照画像を用いる動き補償を行うことにより、予測ブロックを生成することができる。前記動き補償部250は、動きベクトルの値が整数値を持たない場合に参照画像内の一部の領域に対して補間フィルタ(Interpolation Filter)を適用して予測ブロックを生成することができる。動き補償を行うために、符号化ユニットを基準に、該当符号化ユニットに含まれている予測ユニットの動き補償方法がスキップモード(Skip Mode)、マージモード(Merge mode)、AMVPモード(AMVP Mode)、及び現在ピクチャ参照モードのうちのいずれの方法であるかを判断することができ、各モードに応じて動き補償を行うことができる。ここで、現在ピクチャ参照モードは、復号対象ブロックの属する現在ピクチャ内の既に再構築された領域を用いた予測モードを意味することができる。前記既に再構築された領域を特定するために、現在ピクチャ参照モードのための動きベクトルが利用できる。復号対象ブロックが現在ピクチャ参照モードで符号化されたブロックであるか否かを示すフラグ或いはインデックスが、シグナリング(signaling)されることもでき、復号対象ブロックの参照画像インデックスを用いて類推されることもできる。現在ピクチャ参照モードのための現在ピクチャは、復号対象ブロックのための参照画像リスト内で固定された位置(例えば、参照画像インデックスが0である位置又は最後の位置)に存在することができる。又は、参照画像リスト内に可変的に位置してもよく、このために、現在ピクチャの位置を示す別途の参照画像インデックスがシグナリングされてもよい。ここで、フラグ或いはインデックスをシグナリングするというのは、符号化器(encoder)では当該フラグ或いはインデックスをエントロピー符号化(Entropy Encoding)してビットストリーム(Bitstream)に含むことを意味することができ、復号器(decoder)ではビットストリームから当該フラグ或いはインデックスをエントロピー復号(Entropy Decoding)することを意味することができる。
再構築された残余ブロック及び予測ブロックは加算器255を介して加わり得る。再構築された残余ブロック及び予測ブロックが加わることにより生成されたブロックはフィルタ部260を経ることができる。フィルタ部260は、デブロッキングフィルタ、サンプル適応的オフセット及び適応的ループフィルタのうちの少なくとも一つを再構築ブロック又は再構築画像に適用することができる。フィルタ部260は再構築画像を出力することができる。再構築画像は参照ピクチャバッファ270に保存されてインター予測に使用できる。
図3は画像を符号化及び復号するときの画像の分割構造を示す概略図である。図3は一つのユニットが複数の下位ユニットに分割される実施形態を概略的に示す。
画像を効率よく分割するために、符号化及び復号において、符号化ユニット(Coding Unit;CU)が使用できる。ここで、符号化ユニットは、コーディングユニットを意味することができる。ユニットは、1)構文要素(syntax element)及び2)画像サンプルを含むブロックを合わせて指し示す用語であり得る。例えば、「ユニットの分割」は、「ユニットに該当するブロックの分割」を意味することができる。ブロック分割情報には、ユニットの深さ(depth)に関する情報が含まれ得る。深さ情報は、ユニットが分割される回数及び/又は程度を示すことができる。
図3を参照すると、画像300は、最大符号化ユニット(Largest Coding Unit;LCU)単位で順次分割され、LCU単位で分割構造が決定される。ここで、LCUは、符号化ツリーユニット(Coding Tree Unit;CTU)と同一の意味で使用できる。一つのユニットは、ツリー構造(tree structure)に基づいて深さ情報(depth)をもって階層的に分割できる。それぞれの分割された下位ユニットは深さ情報を持つことができる。前記深さ情報は、ユニットが分割された回数及び/又は程度を示すので、前記下位ユニットの大きさに関する情報を含むこともできる。
分割構造は、LCU310内での符号化ユニット(Coding Unit;CU)の分布を意味することができる。CUは画像を効率よく符号化/復号するためのユニットであり得る。このような分布は、一つのCUを複数(2、4、8、16などを含む2以上の正の整数)のCUに分割するか否かによって決定することができる。分割により生成されたCUの横幅と縦幅は、それぞれ分割前のCUの横幅の半分及び縦幅の半分であるか、分割された個数に応じて分割前のCUの横幅よりも小さいサイズ及び縦幅よりも小さいサイズを持つことができる。分割されたCUは、同様の方式で横幅及び縦幅が減少した複数のCUに再帰的に分割できる。
このとき、CUの分割は所定の深さまで再帰的に行われ得る。深さ情報は、CUのサイズを示す情報であり、CUごとに保存できる。例えば、LCUの深さは0であり、最小符号化ユニット(Smallest Coding Unit;SCU)の深さは予め定義された最大深さであり得る。ここで、LCUは、上述したように、最大の符号化ユニットのサイズを持つ符号化ユニットであり、SCUは、最小の符号化ユニットのサイズを持つ符号化ユニットであり得る。
LCU310から分割が始まり、分割によりCUの横幅及び縦幅が減少するたびに、CUの深さは1ずつ増加する。それぞれの深さ別に、分割されないCUは2Nx2Nのサイズを持つことができる。分割されるCUの場合は、2N×2NサイズのCUがNxNサイズの複数のCUに分割できる。Nのサイズは、深さが1ずつ増加するたびに半分に減少する。
例えば、一つの符号化ユニットが4つの符号化ユニットに分割される場合、分割された4つの符号化ユニットの横幅及び縦幅は、分割される前の符号化ユニットの横幅及び縦幅と比較してそれぞれの半分のサイズを持つことができる。一例として、32x32サイズの符号化ユニットが4つの符号化ユニットに分割される場合、分割された4つの符号化ユニットはそれぞれ16x16のサイズを持つことができる。一つの符号化ユニットが4つの符号化ユニットに分割される場合、符号化ユニットは4分木(quad-tree)状に分割されたといえる。
例えば、一つの符号化ユニットが2つの符号化ユニットに分割される場合、分割された2つの符号化ユニットの横幅或いは縦幅は、分割される前の符号化ユニットの横幅或いは縦幅と比較して半分のサイズを持つことができる。一例として、32x32サイズの符号化ユニットが2つの符号化ユニットに縦分割される場合、分割された2つの符号化ユニットは、それぞれ16x32のサイズを持つことができる。一例として、32x32サイズの符号化ユニットが2つの符号化ユニットに横分割される場合、分割された2つの符号化ユニットは、それぞれ32x16のサイズを持つことができる。一つの符号化ユニットが2つの符号化ユニットに分割される場合、符号化ユニットは2分木(binary-tree)状に分割されたといえる。
図3を参照すると、深さが0であるLCUは64x64画素であり得る。0は最小深さであり得る。深さが3であるSCUは8x8画素であり得る。3は最大深さであり得る。このとき、LCUである64x64画素のCUは深さ0で表現できる。32x32画素のCUは深さ1で表現できる。16x16画素のCUは深さ2で表現できる。SCUである8x8画素のCUは深さ3で表現できる。
また、CUが分割されるか否かについての情報は、CUの分割情報を用いて表現できる。分割情報は1ビットの情報であり得る。SCUを除くすべてのCUは分割情報を含むことができる。例えば、分割情報の値が0であれば、CUが分割されなくてもよく、分割情報の値が1であれば、CUが分割されてもよい。
図4は符号化ユニットCUが含むことが可能な予測ユニットPUの形態を示す図である。
LCUから分割されたCUのうち、それ以上分割されないCUは、一つ以上の予測ユニット(Prediction Unit;PU)に分けられ得る。このような処理も分割と称されることがある。
PUは予測に対する基本単位であり得る。PUはスキップ(skip)モード、インターモード及びイントラモードのいずれかで符号化及び復号できる。PUはモードに応じて様々な形で分割できる。
また、符号化ユニットは予測ユニットに分割されず、符号化ユニットと予測ユニットは同じサイズを持つことができる。
図4に示すように、スキップモードでは、CU内に分割が存在しないことがある。スキップモードでは、分割なしでCUと同じサイズの2Nx2Nモード410がサポートできる。
インターモードでは、CU内で8つに分割された形態がサポートできる。例えば、インターモードでは、2Nx2Nモード410、2NxNモード415、Nx2Nモード420、NxNモード425、2NxnUモード430、2NxnDモード435、nLx2Nモード440及びnRx2Nモード445がサポートできる。イントラモードでは、2Nx2Nモード410及びNxNモード425がサポートできる。
一つの符号化ユニットは一つ以上の予測ユニットに分割でき、一つの予測ユニットも一つ以上の予測ユニットに分割できる。
例えば、一つの予測ユニットが4つの予測ユニットに分割される場合、分割された4つの予測ユニットの横幅及び縦幅は、分割される前の予測ユニットの横幅及び縦幅と比較してそれぞれの半分のサイズを持つことができる。一例として、32x32サイズの予測ユニットが4つの予測ユニットに分割される場合、分割された4つの予測ユニットはそれぞれ16x16のサイズを持つことができる。一つの予測ユニットが4つの予測ユニットに分割される場合、予測ユニットは4分木(quad-tree)状に分割されたといえる。
例えば、一つの予測ユニットが2つの予測ユニットに分割される場合、分割された2つの予測ユニットの横幅或いは縦幅は、分割される前の予測ユニットの横幅或いは縦幅と比較して半分のサイズを持つことができる。一例として、32x32サイズの予測ユニットが2つの予測ユニットに縦分割される場合、分割された2つの予測ユニットはそれぞれ16x32のサイズを持つことができる。一例として、32x32サイズの予測ユニットが2つの予測ユニットに横分割される場合、分割された2つの予測ユニットはそれぞれ32x16のサイズを持つことができる。一つの予測ユニットが2つの予測ユニットに分割される場合、予測ユニットは2分木(binary-tree)状に分割されたといえる。
図5は符号化ユニットCUが含むことが可能な変換ユニットTUの形態を示す図である。
変換ユニット(Transform Unit;TU)は、CU内で変換、量子化、逆変換及び逆量子化の処理のために使用される基本単位であり得る。TUは、正方形や長方形などの形状を持つことができる。TUはCUのサイズ及び/又は形状に依存的に(dependent)決定されることもある。
LCUから分割されたCUのうち、それ以上CUに分割されないCUは、一つ以上のTUに分割できる。このとき、TUの分割構造は4分木(quad-tree)構造であり得る。例えば、図5に示すように、一つのCU510が4分木構造によって1回或いはそれ以上分割できる。一つのCUが1回以上に分割される場合、再帰的に分割されるといえる。分割を介して、一つのCU510は様々なサイズのTUから構成できる。又は、CUを分割する垂直線(vertical line)及び/又は水平線(horizontal line)の個数に基づいて一つ以上のTUに分割されることも可能である。CUは対称型のTUに分割されてもよく、非対称型のTUに分割されてもよい。非対称型のTUへの分割のために、TUのサイズ/形状に関する情報が、シグナリングされてもよく、CUのサイズ/形状に関する情報から導出されてもよい。
また、符号化ユニットは変換ユニットに分割されず、符号化ユニットと変換ユニットは同じサイズを持つことができる。
一つの符号化ユニットは一つ以上の変換ユニットに分割でき、一つの変換ユニットも一つ以上の変換ユニットに分割できる。
例えば、一つの変換ユニットが4つの変換ユニットに分割される場合、分割された4つの変換ユニットの横幅及び縦幅は、分割される前の変換ユニットの横幅及び縦幅と比較してそれぞれの半分のサイズを持つことができる。一例として、32x32サイズの変換ユニットが4つの変換ユニットに分割される場合、分割された4つの変換ユニットはそれぞれ16x16のサイズを持つことができる。一つの変換ユニットが4つの変換ユニットに分割される場合、変換ユニットは4分木(quad-tree)状に分割されたといえる。
例えば、一つの変換ユニットが2つの変換ユニットに分割される場合、分割された2つの変換ユニットの横幅或いは縦幅は、分割される前の変換ユニットの横幅或いは縦幅と比較して半分のサイズを持つことができる。一例として、32x32サイズの変換ユニットが2つの変換ユニットに縦分割される場合、分割された2つの変換ユニットはそれぞれ16x32のサイズを持つことができる。一例として、32x32サイズの変換ユニットが2つの変換ユニットに横分割される場合、分割された2つの変換ユニットはそれぞれ32x16のサイズを持つことができる。一つの変換ユニットが2つの変換ユニットに分割される場合、変換ユニットは2分木(binary-tree)状に分割されたといえる。
変換実行の際に、残余ブロックを、予め定義された複数の変換方法のうちの少なくとも一つを用いて変換させることができる。一例として、予め定義された複数の変換方法として、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)又はKLTなどが用いられ得る。残余ブロックを変換するためにいずれの変換方法が適用されるかは、予測ユニットのインター予測モード情報、イントラ予測モード情報、変換ブロックのサイズ/形状のうちの少なくとも一つを用いて決定されてもよく、一定の場合、変換方法を指し示す情報がシグナリングされてもよい。
図6はイントラ予測処理の実施形態を説明するための図である。
イントラ予測モードは非方向性モード又は方向性モードであり得る。非方向性モードは、DCモード又はPlanarモードであり、方向性モードは、特定の方向又は角度を持つ予測モードであって、個数は一つ以上のM個であり得る。前記方向性モードはモード番号、モード値、モード数及びモード角度のうちの少なくとも一つで表現できる。
イントラ予測モードの個数は、前記非方向性及び方向性モードを含む一つ以上のN個であり得る。
イントラ予測モードの個数は、ブロックのサイズによって異なり得る。例えば、ブロックのサイズが4x4又は8x8である場合には67個、16x16である場合には35個、32x32である場合には19個、64x64である場合には7個であり得る。
イントラ予測モードの個数は、ブロックのサイズを問わずにN個に固定できる。例えば、ブロックのサイズを問わず、35個又は67個のうちの少なくとも一つに固定できる。
イントラ予測モードの個数は、色成分(color component)のタイプによって異なり得る。例えば、色成分が輝度(luma)信号であるか色差(chroma)信号であるかによって、予測モードの個数が異なり得る。
イントラ符号化及び/又は復号は、近傍の再構築されたブロックに含まれるサンプル値又は符号化パラメータを用いて行われ得る。
現在ブロックをイントラ予測で符号化/復号するために、近傍の再構築されたブロックに含まれるサンプルが符号化/復号対象ブロックの参照サンプルとして利用可能であるか否かをチェックするステップが行われ得る。符号化/復号対象ブロックの参照サンプルとして利用できないサンプルが存在する場合、近傍の再構築されたブロックに含まれているサンプルのうちの少なくとも一つを用いて、参照サンプルとして利用することができないサンプルにサンプル値をコピー及び/又は補間(interpolation)して符号化/復号対象ブロックの参照サンプルとして用いることができる。
イントラ予測の際にイントラ予測モード及び符号化/復号対象ブロックのサイズの少なくとも一つに基づいて、参照サンプル又は予測サンプルの少なくとも一つにフィルタを適用することができる。このとき、符号化/復号対象ブロックは現在ブロックを意味することができ、符号化ブロック、予測ブロック及び変換ブロックのうちの少なくとも一つを意味することができる。参照サンプル又は予測サンプルに適用されるフィルタの種類は、現在ブロックのイントラ予測モード又はサイズ/形状のうちの少なくとも一つによって異なり得る。前記フィルタの種類はフィルタタップ数、フィルタ係数値又はフィルタ強度の少なくとも一つによって異なり得る。
イントラ予測モードのうち、非方向性プラナー(Planar)モードは、対象符号化/復号ブロックの予測ブロックを生成するとき、予測ブロック内のサンプル値をサンプル位置に応じて現在サンプルの上側参照サンプル、現在サンプルの左側参照サンプル、現在ブロックの右上側参照サンプル、現在ブロックの左下側参照サンプルの加重和として生成することができる。
イントラ予測モードのうち、非方向性DCモードは、対象符号化/復号ブロックの予測ブロックを生成するとき、現在ブロックの上側参照サンプルと現在ブロックの左側参照サンプルとの平均値として生成することができる。また、符号化/復号ブロック内の参照サンプルに隣接する一つ又はそれ以上の上行、及び一つ又はそれ以上の左列に対しては参照サンプル値を用いてフィルタリングを行うこともできる。
イントラ予測モードのうち、複数の方向性モード(angular mode)の場合、右上側及び/又は左下側参照サンプルを用いて予測ブロックを生成することができ、方向性モードは、互いに異なる方向性を持つことができる。予測サンプル値を生成するために、実数単位の補間(interpolation)を行うこともできる。
イントラ予測方法を行うために、現在予測ブロックのイントラ予測モードは、現在予測ブロックの近傍に存在する予測ブロックのイントラ予測モードから予測することができる。近傍のイントラ予測モードから予測されたモード情報を用いて現在予測ブロックのイントラ予測モードを予測する場合、現在予測ブロックと近傍予測ブロックとのイントラ予測モードが同一であれば、所定のフラグ情報を用いて現在予測ブロックと近傍予測ブロックとのイントラ予測モードが同一であるという情報を送信することができ、もし現在予測ブロックと近傍予測ブロックとのイントラ予測モードが互いに異なる場合、エントロピー符号化を行って符号化/復号対象ブロックのイントラ予測モード情報を符号化することができる。
図7はインター予測処理の実施形態を説明するための図である。
図7における四角形は画像(又はピクチャ)を示すことができる。また、図7の矢印は予測方向を示すことができる。すなわち、画像は予測方向に応じて符号化及び/又は復号できる。各画像は、符号化タイプによってIピクチャ(Intra Picture)、Pピクチャ(Uni-predictive Picture)、Bピクチャ(Bi-predictive Picture)などに分類できる。各ピクチャは、各ピクチャの符号化タイプに応じて符号化され、復号され得る。
符号化の対象である画像がIピクチャである場合、画像はインター予測なしで画像自体に対してイントラ符号化できる。符号化の対象である画像がPピクチャである場合、画像は、順方向にのみ参照画像を用いるインター予測或いは動き補償を介して符号化できる。符号化の対象である画像がBピクチャである場合、順方向及び逆方向の両側に参照ピクチャを用いるインター予測或いは動き補償を介して符号化でき、順方向及び逆方向のうちのいずれかの方向に参照ピクチャを用いるインター予測或いは動き補償を介して符号化できる。ここで、インター予測モードが使用される場合、符号化器ではインター予測或いは動き補償を行うことができ、復号器ではそれに対応する動き補償を行うことができる。参照画像を用いて符号化及び/又は復号されるPピクチャ及びBピクチャの画像は、インター予測が使用される画像と看做すことができる。
次に、実施形態に係るインター予測について具体的に説明する。
インター予測或いは動き補償は、参照ピクチャ及び動き情報を用いて行われ得る。また、インター予測は、上述したスキップモードを用いることも可能である。
参照ピクチャ(reference picture)は、現在ピクチャの以前ピクチャ又は現在ピクチャの以後ピクチャのうちの少なくとも一つであり得る。このとき、インター予測は、参照ピクチャに基づいて、現在ピクチャのブロックに対する予測を行うことができる。ここで、参照ピクチャはブロックの予測に用いられる画像を意味することができる。このとき、参照ピクチャ内の領域は、参照ピクチャを指し示す参照画像インデックス(reference picture index;refIdx)及び後述する動きベクトル(motion vector)などを用いることにより特定できる。
インター予測は、参照ピクチャ、及び参照ピクチャ内で現在ブロックに対応する参照ブロックを選択することができ、選択された参照ブロックを用いて現在ブロックに対する予測ブロックを生成することができる。現在ブロックは、現在ピクチャのブロックのうち、現在符号化又は復号の対象となるブロックであり得る。
動き情報は、符号化装置100及び復号装置200のそれぞれによってインター予測の処理から導出できる。また、導出された動き情報は、インター予測を行うために使用できる。このとき、符号化装置100及び復号装置200は、再構築された近傍ブロック(reconstructed neighboring block)の動き情報及び/又はコロケーテッドブロック(collocated block;col block)の動き情報を用いることにより、符号化及び/又は復号効率を向上させることができる。コロケーテッドブロックは、既に再構築されたコロケーテッドピクチャ(collocated picture; col picture)内で符号化/復号対象ブロックの空間的位置に対応するブロックであり得る。再構築された近傍ブロックは、現在ピクチャ内のブロックであるとともに、既に符号化及び/又は復号を介して再構築されたブロックであり得る。また、再構築ブロックは、符号化/復号対象ブロックに隣接する隣接ブロック及び/又は符号化/復号対象ブロックの外側コーナーに位置するブロックであり得る。ここで、符号化/復号対象ブロックの外側コーナーに位置するブロックとは、符号化/復号対象ブロックに横方向に隣接する隣接ブロックに縦方向に隣接するブロック、又は符号化/復号対象ブロックに縦方向に隣接する隣接ブロックに横方向に隣接するブロックであり得る。
符号化装置100及び復号装置200のそれぞれは、コロケーテッドピクチャ内で空間的に符号化/復号対象ブロックに対応する位置に存在するブロックを決定することができ、決定されたブロックを基準に所定の相対的な位置を決定することができる。所定の相対的な位置は、空間的に符号化/復号対象ブロックに対応する位置に存在するブロックの内部及び/又は外部の位置であり得る。また、符号化装置100及び復号装置200のそれぞれは、決定された所定の相対的な位置に基づいてコロケーテッドブロックを導出することができる。ここで、コロケーテッドピクチャは、参照ピクチャリストに含まれている少なくとも一つの参照ピクチャのうちのいずれかであり得る。
動き情報の導出方式は、符号化/復号対象ブロックの予測モードに応じて変わり得る。例えば、インター予測のために適用される予測モードとして、高度動きベクトル予測(Advanced Motion Vector Prediction;AMVP)及びマージモード(merge mode)などがあり得る。ここで、マージモードを動き併合モード(motion merge mode)と呼ぶことができる。
例えば、予測モードとしてAMVPが適用される場合、符号化装置100及び復号装置200のそれぞれは、再構築された近傍ブロックの動きベクトル及び/又はコロケーテッドブロックの動きベクトルを用いて動きベクトル候補リスト(motion vector candidate list)を生成することができる。再構築された近傍ブロックの動きベクトル及び/又はコロケーテッドブロックの動きベクトルは、動きベクトル候補として使用できる。ここで、コロケーテッドブロックの動きベクトルを時間動きベクトル候補(temporal motion vector candidate)と呼ぶことができ、再構築された近傍ブロックの動きベクトルを空間動きベクトル候補(spatial motion vector candidate)と呼ぶことができる。
符号化装置100によって生成されたビットストリームは、動きベクトル候補インデックス(motion vector candidate index)を含むことができる。すなわち、符号化装置100は、動きベクトル候補インデックスをエントロピー符号化してビットストリームを生成することができる。動きベクトル候補インデックスは、動きベクトル候補リストに含まれている動きベクトル候補の中から選択された最適の動きベクトル候補を指し示すことができる。動きベクトル候補インデックスは、ビットストリームを介して符号化装置100から復号装置200へ送信できる。
復号装置200は、動きベクトル候補インデックスをビットストリームからエントロピー復号し、エントロピー復号された動きベクトル候補インデックスを用いて、動きベクトル候補リストに含まれている動きベクトル候補の中から復号対象ブロックの動きベクトル候補を選択することができる。
符号化装置100は、符号化対象ブロックの動きベクトルと動きベクトル候補との動きベクトル差分(MVD:Motion Vector Difference)を計算することができ、MVDをエントロピー符号化することができる。ビットストリームは、エントロピー符号化されたMVDを含むことができる。MVDはビットストリームを介して符号化装置100から復号装置200へ送信できる。このとき、復号装置200は、受信されたMVDをビットストリームからエントロピー復号することができる。復号装置200は、復号されたMVDと動きベクトル候補との和によって復号対象ブロックの動きベクトルを導出することができる。
ビットストリームは、参照ピクチャを指し示す参照画像インデックスなどを含むことができる。参照画像インデックスは、エントロピー符号化されてビットストリームを介して符号化装置100から復号装置200へ送信できる。復号装置200は、近傍ブロックの動き情報を用いて復号対象ブロックの動きベクトルを予測することができ、予測された動きベクトル及び動きベクトル差分を用いて復号対象ブロックの動きベクトルを導出することができる。復号装置200は、導出された動きベクトルと参照画像インデックス情報に基づいて復号対象ブロックに対する予測ブロックを生成することができる。
動き情報の導出方式の他の例として、マージモード(merge mode)がある。マージモードとは、複数のブロックに対する動きの併合を意味することができる。マージモードは、一つのブロックの動き情報を他のブロックにも一緒に適用させることを意味することができる。マージモードが適用される場合、符号化装置100及び復号装置200のそれぞれは、再構築された近傍ブロックの動き情報及び/又はコロケーテッド(collocated)ブロックの動き情報を用いてマージ候補リスト(merge candidate list)を生成することができる。動き情報は、1)動きベクトル、2)参照画像インデックス、及び3)インター予測インジケータのうちの少なくとも一つを含むことができる。予測インジケータは、一方向(L0予測、L1予測)又は双方向であり得る。
この時、マージモードはCU単位又はPU単位で適用できる。CU単位又はPU単位でマージモードが行われる場合、符号化装置100は、予め定義された情報をエントロピー符号化してビットストリームを生成した後、復号装置200へ送信することができる。ビットストリームは予め定義された情報を含むことができる。予め定義された情報は、1)ブロックパーティション(partition)ごとにマージモードを行うか否かを示す情報であるマージフラグ(merge flag)、2)符号化対象ブロックに隣接する近傍ブロックのうちのいずれのブロックとマージするかについての情報であるマージインデックス(merge index)を含むことができる。例えば、符号化対象ブロックの近傍ブロックは、符号化対象ブロックの左側隣接ブロック、符号化対象ブロックの上側隣接ブロック及び符号化対象ブロックの時間的(temporal)隣接ブロックを含むことができる。
マージ候補リストは、動き情報が保存されたリストを示すことができる。また、マージ候補リストは、マージモードが行われる前に生成できる。マージ候補リストに保存される動き情報は、符号化/復号対象ブロックに隣接する近傍ブロックの動き情報、及び参照画像における符号化/復号対象ブロックに対応する(collocated)ブロックの動き情報、既にマージ候補リストに存在する動き情報の組み合わせによって生成された新たな動き情報、及びゼロマージ候補のうちの少なくとも一つであり得る。ここで、符号化/復号対象ブロックに隣接する近傍ブロックの動き情報は、空間マージ候補(spatial merge candidate)及び参照画像における符号化/復号対象ブロックに対応する(collocated)ブロックの動き情報は、時間マージ候補(temporal merge candidate)と呼ぶことができる。
スキップモードは、近傍ブロックの動き情報をそのまま符号化/復号対象ブロックに適用するモードであり得る。スキップモードは、インター予測に用いられるモードのいずれかであり得る。スキップモードが使用される場合、符号化装置100は、どのブロックの動き情報を符号化対象ブロックの動き情報として用いるかについての情報をエントロピー符号化してビットストリームを介して復号装置200へ送信することができる。符号化装置100は、他の情報は復号装置200に送信しないことがある。例えば、他の情報は構文要素(syntax element)情報であり得る。構文要素情報は、動きベクトル差分情報、符号化ブロックフラグ及び変換係数レベルのうちの少なくとも一つを含むことができる。
イントラ又はインター予測以降に生成された残余信号は、量子化処理の一環として、変換処理を介して周波数ドメインに変換することができる。この時、実行する1次変換は、DCT type 2(DCT-II)の他にさまざまなDCT、DSTカーネルを使用することができ、これらの変換カーネルは、残余信号に対して水平及び/又は垂直方向に1次元変換(1D transform)をそれぞれ実行する可分変換(separable transform)によって変換が行われてもよく、又は2次元非可分変換(2D Non-separable transform)によって変換が行われてもよい。
一例として、変換に使用されるDCT、DST typeは、下記表のとおり、DCT-IIの他にDCT-V、DCT-VIII、DST-I、DST-VIIを1D変換の際に適応的に使用することができ、例えば、表1及び表2の例のとおり、変換セット(Transform set)を構成して、変換に使用されたDCT又はDSTタイプを導出することができる。
例えば、図8に示すように、イントラ予測モードに応じて、水平又は垂直方向に対して互いに異なる変換セット(Transform set)を定義した後、符号化/復号器において、現在符号化/復号対象ブロックのイントラ予測モード及びこれに対応する変換セットに含まれている変換を用いて変換及び/又は逆変換を行うことができる。この場合、変換セットは、エントロピー符号化/復号されるのではなく、符号化/復号器で同一のルールに基づいて定義できる。この場合、当該変換セットに属する変換のうちのいずれの変換が使用されたかを指し示すエントロピー符号化/復号が行われ得る。例えば、ブロックのサイズが64x64以下である場合、イントラ予測モードに応じて、表2の例のように合計3つの変換セットを構成し、水平方向の変換と垂直方向の変換としてそれぞれ3つの変換を用いて合計9つの多重変換方法を組み合わせて行った後、最適の変換方法で残余信号を符号化/復号することにより符号化効率を向上させることができる。このとき、一つの変換セットに属する3つの変換のうちどんな変換が使用されたかについての情報をエントロピー符号化/復号するために、切り捨てられた単項(Truncated Unary)2値化(Binarization)を使用することもできる。このとき、垂直変換及び水平変換の少なくとも一つに対して、変換セットに属する変換のうちのいずれの変換が使用されたかを指し示す情報がエントロピー符号化/復号できる。
符号化器では、前述した1次変換が完了して以来、図9の例のように変換係数(Transformed coefficients)に対するエネルギー集中度を高めるために2次変換(Secondary transform)を行うことができる。2次変換も水平及び/又は垂直方向に対して1次元変換をそれぞれ実行する可分変換を行うこともでき、又は2次元非可分変換を行うこともでき、使用された変換情報が送信されるか或いは現在及び近傍符号化情報に応じて符号化器/復号器で暗黙的に導出され得る。例えば、1次変換のように2次変換に対する変換セットを定義することができ、変換セットは、エントロピー符号化/復号されるのではなく、符号化器/復号器で同じルールに基づいて定義できる。この場合、当該変換セットに属する変換のうちのいずれの変換が使用されたかを指し示す情報が送信でき、イントラ又はインター予測による残余信号のうちの少なくとも一つに適用できる。
変換セット別に変換候補(transform candidates)の個数又は種類のうちの少なくとも一つは異なり、変換候補の個数又は種類のうちの少なくとも一つはブロック(CU、PU、TUなど)の位置、大きさ、分割形態、予測モード(イントラ/インターモード)、又はイントラ予測モードの方向性/非方向性のうちの少なくとも一つを考慮して可変的に決定されることも可能である。
復号器では、2次逆変換を実行するか否かに応じて2次逆変換を行うことができ、2次逆変換の実行結果から1次逆変換を実行するか否かに応じて1次逆変換を行うことができる。
前述した1次変換及び2次変換は輝度/色差成分のうちの少なくとも一つの信号成分に適用されるか、或いは任意の符号化ブロックのサイズ/形状に応じて適用でき、任意の符号化ブロックでの使用有無、及び使用された1次変換/2次変換を指し示すインデックスをエントロピー符号化/復号するか、又は現在/近傍符号化情報のうちの少なくとも一つに基づいて符号化器/復号器で暗黙的に導出することができる。
イントラ又はインター予測以降に生成された残余信号は、1次及び/又は2次変換完了の後、量子化処理を経る。量子化された変換係数は、エントロピー符号化処理を行う。この時、量子化された変換係数は、図10に示すように、イントラ予測モード又は最小ブロックサイズ/形状のうちの少なくとも一つを基準に対角線、垂直方向、および、水平方向に沿ってスキャニング(scanning)できる。
また、エントロピー復号された、量子化された変換係数は、逆スキャニング(Inverse Scanning)され、ブロック形態で整列でき、当該ブロックに逆量子化又は逆変換のうちの少なくとも一つが実行されてよい。この時、逆スキャニングの方法として、対角(Diagonal)スキャン、水平(Horizontal)スキャン及び垂直(Vertical)スキャンのうちの少なくとも一つが実行できる。
一例として、現在符号化ブロックのサイズが8x8であるとき、8x8ブロックに対する残余信号は、1次変換、2次変換及び量子化の後、4つの4x4サブブロックごとに、図10に示された3つのスキャニング順序(Scanning order)方法のうちの少なくとも一つに応じて、量子化された変換係数をスキャニングしながらエントロピー符号することができる。また、量子化された変換係数を逆スキャニングしながらエントロピー復号することができる。逆スキャニングされた、量子化された変換係数は、逆量子化後の変換係数となり、2次逆変換又は1次逆変換のうちの少なくとも一つが実行されて再構築された残余信号が生成できる。
ビデオ符号化処理で、図11を示すように、一つのブロックが分割されてよく、分割情報に該当するインジケータがシグナリングされてよい。この時、前記分割情報は、分割フラグ(split_flag)、クワッド/2分木フラグ(QB_flag)、4分木分割フラグ(quadtree_flag)、2分木分割フラグ(binarytree_flag)、2分木分割タイプフラグ(Btype_flag)のうちの少なくとも一つであり得る。ここで、split_flagは、ブロックが分割されたか否かを示すフラグ、QB_flagは、ブロックが4分木状に分割されたか、2分木状に分割されたかを示すフラグ、quadtree_flagは、ブロックが4分木状に分割されたか否かを示すフラグ、binarytree_flagは、ブロックが2分木状に分割されたか否かを示すフラグ、Btype_flagは、ブロックが2分木状に分割された場合に垂直又は水平分割であることを示すフラグであり得る。
前記分割フラグが1である場合には分割されたことを示し、前記分割フラグが0である場合には分割されていないことを示すことができ、前記クワッド/2分木フラグの場合、0であれば4分木分割を示し、1であれば2分木分割を示すことができ、逆に、0であれば2分木分割を示し、1であれば4分木分割を示すことができる。前記2分木分割タイプフラグの場合、0であれば水平方向分割を示し、1であれば垂直方向分割を示すことができ、逆に、0であれば垂直方向分割を示し、1であれば水平方向分割を示すことができる。
例えば、図11についての分割情報は、下記表3のとおり、quadtree_flag、binarytree_flag、Btype_flagの少なくとも一つをシグナリングして導出することができる。
例えば、図11についての分割情報は、下記表4のとおり、split_flag、QB_flag、Btype_flagの少なくとも一つをシグナリングして導出することができる。
前記分割方法は、ブロックのサイズ/形状に応じて4分木状にのみ分割可能であり、或いは2分木状にのみ分割可能である。このような場合、前記split_flagは、4分木分割か2分木分割かを示すフラグを意味することができる。前記ブロックのサイズ/形状はブロックの深さ情報に応じて導出でき、深さ情報はシグナリングできる。
前記ブロックのサイズが所定の範囲内に属する場合には、4分木状にのみ分割が可能であり得る。ここで、所定の範囲は、4分木状にのみ分割が可能な最大ブロックのサイズ又は最小ブロックのサイズのうちの少なくとも一つと定義できる。前記4分木分割が許容される最大/最小ブロックのサイズを示す情報は、ビットストリームを介してシグナリングでき、当該情報は、シーケンス、ピクチャパラメータ又はスライス(セグメント)のうちの少なくとも一つの単位でシグナリングできる。又は、前記最大/最小ブロックのサイズは、符号化器/復号器に所定の固定されたサイズであってもよい。例えば、前記ブロックのサイズが256x256~64x64に該当する場合には、4分木状にのみ分割が可能である。このような場合、前記split_flagは4分木分割か否かを示すフラグであり得る。
前記ブロックのサイズが所定の範囲内に属する場合には、2分木状にのみ分割が可能である。ここで、所定の範囲は、2分木状にのみ分割が可能な最大ブロックのサイズ又は最小ブロックのサイズのうちの少なくとも一つと定義できる。前記2分木分割が許容される最大/最小ブロックのサイズを示す情報は、ビットストリームを介してシグナリングでき、該当情報は、シーケンス、ピクチャパラメータ、又はスライス(セグメント)のうちの少なくとも一つの単位でシグナリングできる。又は、前記最大/最小ブロックのサイズは、符号化器/復号器に所定の固定されたサイズであってもよい。例えば、前記ブロックのサイズが16x16~8x8に該当する場合には、2分木状にのみ分割が可能である。このような場合、前記split_flagは2分木分割か否かを示すフラグであり得る。
前記一つのブロックが2分木状に分割された後、前記分割されたブロックがさらに分割される場合には、2分木状にのみ分割できる。
前記分割されたブロックの横幅又は縦幅が、それ以上分割できないサイズである場合には、前記一つ以上のインジケータをシグナリングしないことがある。
前記4分木基盤の2分木分割の他に、2分木分割後、4分木基盤の分割が可能である。
図12は本発明の一実施形態によって、現在ブロックに対してイントラ予測を行う方法を説明するための図である。
図12に示すように、イントラ予測は、イントラ予測モード導出ステップ(S1210)、参照サンプル構成ステップ(S1220)、及び/又はイントラ予測実行ステップ(S1230)を含むことができる。
イントラ予測モード導出ステップ(S1210)において、近傍ブロックのイントラ予測モードを用いるか、現在ブロックのイントラ予測モードをビットストリームから復号(例えば、エントロピー復号)するか、及び/又は近傍ブロックの符号化パラメータを用いて現在ブロックのイントラ予測モードを導出することができる。又は、イントラ予測モード導出ステップ(S1210)において、近傍ブロックのイントラ予測モード、近傍ブロックの一つ以上のイントラ予測モードの組み合わせ、及び/又はMPMを用いて導出されたイントラ予測モードを用いて現在ブロックのイントラ予測モードを導出することができる。
参照サンプル構成ステップ(S1220)は、参照サンプル選択ステップ及び/又は参照サンプルフィルタリングステップを行って参照サンプルを構成することができる。
イントラ予測実行ステップ(S1230)において、非方向性予測、方向性予測、位置情報に基づく予測、及び/又は輝度/色差信号に基づく予測を用いて、現在ブロックのイントラ予測を行うことができる。イントラ予測実行ステップ(S1230)は、予測サンプルに対するフィルタリングをさらに行うことができる。方向性予測を行う場合、一つ以上のサンプル単位に応じて異なる方向性予測を行うことができる。例えば、一つ以上のサンプル単位は、単一サンプルを、サンプルグループ、ライン、及び/又はサブブロックであり得る。
以下、イントラ予測モード導出ステップ(S1210)についてより詳細に説明する。
前述したように、現在ブロックに対するイントラ予測モードを導出するために、一つ以上の近傍ブロックのイントラ予測モードを用いる方法、現在ブロックのイントラ予測モードをビットストリームから復号する方法、及び近傍ブロックの符号化パラメータを用いる方法のうちの少なくとも一つを利用することができる。この際、近傍ブロックは、現在ブロックの符号化/復号の前に再構築された一つ以上のブロックであり得る。
前記近傍ブロックがピクチャ、スライス、タイル、CTU(Coding Tree Unit)などのうち少なくとも一つの所定ユニットの境界の外に位置するか、或いはPCMモード又はインター予測が適用された場合、当該近傍ブロックは利用不可能であると判断できる。利用不可能な近傍ブロックに該当するイントラ予測モードは、DCモード、Planarモード又は所定のイントラ予測モードで代替できる。
現在ブロックのサイズはWxHであり得る。W及びHは、それぞれ正の整数であり、同一であっても異なってもよい。W及び/又はHは、例えば、2、4、8、16、32、64、128、256及び512のうちの少なくとも一つであり得る。
図13は近傍ブロックから現在ブロックのイントラ予測モードを導出する方法を説明するための図である。
図13において、近傍ブロックに表示されたa~kは、当該近傍ブロックのイントラ予測モード又はモード番号を意味することができる。現在ブロックのイントラ予測モードを導出するために用いられる近傍ブロックの位置は、予め定義された固定位置であり得る。又は、前記近傍ブロックの位置に関する情報が符号化/復号を介して導出できる。本明細書において、符号化/復号は、エントロピー符号化及び復号を含む意味で使用できる。
近傍ブロックのイントラ予測モードを用いる場合、近傍ブロックの所定のモードを現在ブロックのイントラ予測モードとして導出することができる。例えば、現在ブロックの(0,0)サンプルの左側に隣接する(-1,0)サンプルが属する近傍ブロックのイントラ予測モードiを、現在ブロックのイントラ予測モードとして導出することができる。又は、現在ブロックの(0,0)サンプルの上側に隣接する(0,-1)サンプルが属する近傍ブロックのイントラ予測モードfを、現在ブロックのイントラ予測モードとして導出することができる。又は、現在ブロックの(0,0)サンプルの左上側に隣接する(-1,-1)サンプルが属する近傍ブロックのイントラ予測モードbを、現在ブロックのイントラ予測モードとして導出することができる。又は、現在ブロックの(W-1,0)サンプルの上側に隣接する(W-1,-1)サンプルが属する近傍ブロックのイントラ予測モードgを、現在ブロックのイントラ予測モードとして導出することができる。又は、現在ブロックの(W-1,0)サンプルの右上側に隣接する[W,-1]サンプルが属する近傍ブロックのイントラ予測モードkを、現在ブロックのイントラ予測モードとして導出することができる。又は、現在ブロックの(0,H-1)サンプルの左側に隣接する(1,H-1)サンプルが属する近傍ブロックのイントラ予測モードjを、現在ブロックのイントラ予測モードとして導出することができる。又は、現在ブロックの(0,H-1)サンプルの左下側に隣接する(-1,H)サンプルが属する近傍ブロックのイントラ予測モードlを、現在ブロックのイントラ予測モードとして導出することができる。又は、近傍ブロックのうち、所定の位置にある近傍ブロックのイントラ予測モードを、現在ブロックのイントラ予測モードとして導出することができる。例えば、前記所定の位置は、ビットストリームから符号化/復号されるか、或いは符号化パラメータに基づいて導出され得る。例えば、前記所定の位置は、イントラ予測モードがeであるブロックであってもよい。
又は、現在ブロックの近傍ブロックのうち、一つ以上の近傍ブロックが選択できる。前記選択は、ビットストリームを介して明示的にシグナリングされる情報に基づいて行われ得る。又は、前記選択は、符号化器と復号器で、予め設定された基準に基づいて行われ得る。選択された一つ以上の近傍ブロックのイントラ予測モードから現在ブロックのイントラ予測モードが導出できる。例えば、現在ブロックのイントラ予測モードは、選択された近傍ブロックのイントラ予測モードの統計値を用いて導出できる。例えば、統計値は最小値、最大値、平均値、加重平均値、最頻値及び/又は中央値(median value)を含むことができる。
例えば、現在ブロックの(0,0)サンプルの左側と上側に隣接するサンプルが属する近傍ブロックのイントラ予測モードiとfのうち、モード数字の小さいモード又はモード数字の大きいモードを、現在ブロックのイントラ予測モードとして導出することができる。例えば、選択された近傍ブロックのイントラ予測モードがb、f、g、i、jである場合、それらの中でも最も小さい数字を持つモードを、現在ブロックのイントラ予測モードとして導出することができる。例えば、選択された近傍ブロックのイントラ予測モードがi、b、fである場合には、これらの中の中間に該当する数字を持つモードを、現在ブロックのイントラ予測モードとして導出することができる。例えば、現在ブロックの隣接する近傍ブロックのイントラ予測モードのうち、最も多く発生するモードを、現在ブロックのイントラ予測モードとして導出することができる。
又は、一つ以上の近傍ブロックのイントラ予測モードを組み合わせることにより、現在ブロックのイントラ予測モードを導出することができる。イントラ予測モードは、モード番号、モード値及びモード角度のうちの少なくとも一つで表現できる。例えば、近傍ブロックの一つ以上のイントラ予測モードの平均を、現在ブロックのイントラ予測モードとして導出することができる。2つのイントラ予測モードの平均は、二つのモード番号の中間番号、二つのモード値の中央値及び二つのモード角度の中間角度のうちの少なくとも一つを意味することができる。
例えば、現在ブロックの(0,0)サンプルの左側と上側に隣接するサンプルが属する近傍ブロックのイントラ予測モードiとfのモード値の平均に該当するモードを、現在ブロックのイントラ予測モードとして導出することができる。例えば、現在ブロックのイントラ予測モードPred_modeは、下記数式1の(1)乃至(3)のうちの少なくとも一つの方法で導出できる。
又は、近傍ブロックのイントラ予測モードiが非方向性モードである場合、現在ブロックのイントラ予測モードをiで導出することができる。又は、近傍ブロックのイントラ予測モードfが方向性モードである場合、現在ブロックのイントラ予測モードをfで導出することができる。
又は、現在ブロックのイントラ予測モードは、近傍ブロックのイントラ予測モードb、f、g、i、jのモード値のうちの少なくとも一つの平均に該当するモードによって導出することができる。例えば、現在ブロックのイントラ予測モードPred_modeは、下記数式2の(1)乃至(4)のうちの少なくとも一つの方法で導出できる。
又は、隣接する近傍ブロックの利用可能なイントラ予測モードの平均に該当するモードを、現在ブロックのイントラ予測モードとして導出することができる。例えば、現在ブロックの左側近傍ブロックがピクチャ、タイル、スライス及び/又はCTUの境界の外に位置するか、PCMモード又はインターモードのうちの少なくとも一つに該当して利用不可能な場合、上側近傍ブロックのイントラ予測モード(例えば、fとg)の統計値に該当するモードを、現在ブロックのイントラ予測モードとして導出することができる。
例えば、近傍ブロックのイントラ予測モードの統計値として、加重平均又は加重和が利用できる。このとき、重みは近傍ブロックのイントラ予測モードの方向性に基づいて付与できる。例えば、相対的に大きい重みが付与されるモードが、予め定義されるかシグナリングされ得る。例えば、相対的に大きい重みが付与されるモードは、垂直方向モード、水平方向モード、及び非方向性モードのうちの少なくとも一つであり得る。これらのモードに対しては、同一の重みが付与されるか或いは異なる重みが付与され得る。例えば、現在ブロックのイントラ予測モードPred_modeは、下記数式3を用いてモードiとfの加重和によって導出できる。下記数式3において、モードfは相対的に大きい重みが付与されるモード(例えば、垂直方向モード)であり得る。
又は、加重和に用いられる重みは、近傍ブロックのサイズに基づいて決定できる。例えば、現在ブロックの上側に隣接するブロックのサイズが、左側に隣接するブロックのサイズよりも大きい場合には、上側に隣接するブロックのイントラ予測モードにさらに大きい重みを付与することができる。又は、サイズの小さい近傍ブロックのイントラ予測モードにさらに大きい重みを付与することもできる。
又は、近傍ブロックの一つ以上のイントラ予測モードが非方向性モードである場合、前記非方向性モードを現在ブロックのイントラ予測モードとして導出することができる。又は、前記非方向性モードを除く近傍ブロックのイントラ予測モードを用いて、現在ブロックのイントラ予測モードを導出することができる。近傍ブロックのイントラ予測モードがいずれも非方向性モードである場合、現在ブロックのイントラ予測モードを、DCモード又はPlanarモードのうちの少なくとも一つで導出することができる。
又は、現在ブロックのイントラ予測モードは、近傍ブロックのイントラ予測モードに基づいたMPM(Most Probable Mode)を用いて導出できる。MPMを用いる場合、現在ブロックのイントラ予測モードに関する一つ以上の情報が符号化/復号できる。
MPMを用いる場合、MPMリストが構成できる。MPMリストは、近傍ブロックのイントラ予測モードに基づいて導出されたイントラ予測モードを含むことができる。MPMリストはN個の候補モードを含むことができる。Nは正の整数であり、現在ブロックのサイズ及び/又は形状に応じて値が変わり得る。又は、Nに関する情報がビットストリームを介してシグナリングできる。
例えば、前記一つ以上の近傍ブロックのイントラ予測モードを用いて導出した現在ブロックのイントラ予測モードは、前記MPMリストに含まれる候補モードであり得る。
図13に示された例において、現在ブロックに隣接する(-1,H-1)、(W-1,-1)、(W,-1)、(-1,H)、(-1,-1)サンプル位置の近傍ブロックのイントラ予測モードを用いることができ、例えば、j、g、Planar、DC、l、k、bの順にMPMリストが構成できる。又は、i、f、Planar、DC、l、k、bの順にMPMリストが構成できる。このとき、重複するモードは、MPMリストに一度だけ含まれ得る。重複するモードが存在してMPMリストがすべて満たされない場合、リストに含まれているモードに基づいて追加の候補モードをリストに含ませることができる。例えば、リストに含まれているモードの+N又は-N(Nは正の整数、例えば1)に該当するモードをリストに追加することができる。又は、水平モード、垂直モード、45度モード、135度モード及び225度モードのうち、リストに含まれていない少なくとも一つのモードを、リストに追加することができる。
前記導出されたMPMリストに、現在ブロックのイントラ予測モードと同一のモードが存在するか否かを示すインジケータ(例えば、prev_intra_luma_pred_flag)がビットストリームに符号化され1るか、或いはビットストリームから復号され得る。
前記インジケータが、現在ブロックのイントラ予測モードと同一のモードがMPMリストに存在することを示す場合には、MPMリストに含まれているモードのうちのどのモードであるかを示すインデックス情報(例えば、mpm_idx)がビットストリームに符号化されるか或いはビットストリームから復号され得る。復号されたインデックス情報に基づいて、現在ブロックのイントラ予測モードが導出され得る。
前記インジケータが、現在ブロックのイントラ予測モードと同一のモードがMPMリストに存在しないことを示す場合には、現在ブロックのイントラ予測モードに関する情報がビットストリームに符号化されるか或いはビットストリームから復号され得る。復号された現在ブロックのイントラ予測モードに関する情報に基づいて、現在ブロックのイントラ予測モードを導出することができる。このとき、MPMリストに含まれていないイントラ予測モードは、昇順又は降順の少なくとも一つで整列できる。又は、前記MPMリストに含まれていないイントラ予測モードの少なくとも一つを選択して一つ以上のグループを構成することができる。例えば、前記MPMリストに含まれているイントラ予測モードの+N又は-N(Nは正の整数、例えば1、2、3)に該当するモードを用いて、一つのグループを構成することができる。このとき、前記グループは、所定の個数(例えば、8、16)に該当するイントラモードで構成でき、前記グループに含まれているモードは、MPMリストに含まれないモードであり得る。
又は、前記導出したMPMリストの所定の候補を前記現在ブロックのイントラ予測モードとして導出することができる。例えば、現在ブロックのイントラ予測モードを、MPMリストの一番目であるリスト0に該当するモードで導出することができる。又は、リスト内の所定のモードに該当するインデックスを符号化/復号して、当該モードを現在ブロックのイントラ予測モードとして導出することができる。
前記MPMリストを構成するにあたり、所定のサイズのブロックに対して一つのMPMリストを構成することができる。前記所定のサイズのブロックが再び複数のサブブロックに分割される場合、複数のサブブロックのそれぞれは、前記構成されたMPMリストを用いることができる。
例えば、現在ブロックが前記所定のサイズのブロックに該当する場合には、現在ブロックに対するMPMリストを構成することができる。現在ブロックが一つ以上のサブブロックに分割される場合には、サブブロックのそれぞれは、前記構成されたMPMリストを用いてサブブロックのそれぞれに対するイントラ予測モードを導出することができる。例えば、現在ブロックが8x8であり、サブブロックが4つの4x4である場合、現在ブロックに対するMPMリストを構成した後、各サブブロックは、前記構成されたMPMリストを用いることができる。
前記MPMリストを構成するにあたり、所定のサイズのブロックを分割して生成されたサブブロックに対するMPMリストは、前記所定サイズのブロックを基準としてそれぞれ構成できる。
例えば、現在ブロックが前記所定のサイズのブロックに該当する場合には、前記現在ブロックの近傍ブロックのイントラ予測モードを用いて現在ブロック内の各サブブロックに対するMPMリストを構成することができる。例えば、現在ブロックが8x8であり、サブブロックが4つの4x4である場合、4つの各サブブロックに対するMPMリストは、現在ブロックの近傍ブロックのイントラ予測モードを用いてそれぞれ構成することができる。よって、4つのサブブロックに対するMPMリストは同時に構成できる。
又は、現在ブロックのイントラ予測モードは、前記MPMを用いて導出した現在ブロックのイントラ予測モードと近傍ブロックのイントラ予測モードのうちの少なくとも一つを用いて導出できる。
例えば、前記MPMを用いて導出した現在ブロックのイントラ予測モードがPred_mpmであるとき、近傍ブロックの一つ以上のイントラ予測モードを用いて前記Pred_mpmを所定のモードに変更することにより、現在ブロックのイントラ予測モードを導出することができる。
例えば、近傍ブロックのイントラ予測モードとサイズを比較して、Pred_mpmをNだけ増加又は減少させることができる。このとき、Nは+1、+2、+3、0、-1、-2、-3などの所定の整数であり得る。例えば、Pred_mpmが近傍ブロックのイントラ予測モード及び/又は一つ以上の近傍ブロックのイントラ予測モードの統計値よりも小さい場合には、Pred_mpmを増加させることができる。又は、Pred_mpmが近傍ブロックのイントラ予測モードよりも大きい場合、Pred_mpmを減少させることができる。又は、Pred_mpm及び/又はPred_mpmと比較される値に基づいて導出できる。
図13に示された例において、前記Pred_mpmがfのモード値よりも小さい場合には、Pred_mpm+1を現在ブロックのイントラ予測モードとして導出することができる。又は、前記Pred_mpmがgのモード値よりも小さい場合には、Pred_mpm+1を現在ブロックのイントラ予測モードとして導出することができる。又は、前記Pred_mpmがfのモード値よりも小さい場合には、Pred_mpm+2を現在ブロックのイントラ予測モードとして導出することができる。又は、前記Pred_mpmがfのモード値よりも大きい場合には、Pred_mpm-1を現在ブロックのイントラ予測モードとして導出することができる。又は、前記Pred_mpmがiのモード値よりも小さい場合には、Pred_mpm+1を現在ブロックのイントラ予測モードとして導出することができる。又は、前記Pred_mpmがfとiの平均値よりも小さい場合には、Pred_mpm+1を現在ブロックのイントラ予測モードとして導出することができる。又は、前記Pred_mpmがfとiの平均値よりも小さい場合には、前記Pred_mpmと前記平均値との差の1/2を増加させることができる。例えば、Pred_mpm+{((f+i+1)>>1-Pred_mpm+1)>>1}を、現在ブロックのイントラ予測モードとして導出することができる。
又は、前記Pred_mpmと近傍ブロックのモードのうち、いずれか一つが非方向性モードであり、他の一つが方向性モードである場合、前記非方向性モードを現在ブロックのイントラ予測モードとして導出するか、或いは前記方向性モードを現在ブロックのイントラ予測モードとして導出することができる。
前述したように、現在ブロックのイントラ予測モードは、符号化/復号を介して導出できる。この際、近傍ブロックのイントラ予測モードは利用されないことがある。例えば、現在ブロックのイントラ予測モードは、ビットストリームをエントロピー符号化/復号して導出できる。
例えば、現在ブロックが下位又はサブブロックに分割される場合には、前記現在ブロックに対するイントラ予測モードを導出する方法のうちの少なくとも一つを用いて、前記分割されたそれぞれのサブブロックに対するイントラ予測モードを導出することができる。
前記現在ブロックのサイズ及びサブブロックのサイズはMxNであり得る。MとNは同じか異なる正の整数であり得る。例えば、現在ブロック又はサブブロックはCTU、CU、SU(signalling unit)、QTMax、QTMin、BTMax、BTMin、4x4、8x8、16x16、32x32、64x64、128x128、256x256、4x8、8x16、16x8、32x64、32x8、4x32などの少なくとも一つであり得る。このとき、QTMax及びQTMinは、それぞれ4分木分割が可能な最大及び最小のサイズを示すことができ、BTMax及びBTMinは、2分木分割が可能な最大及び最小のサイズを示すことができる。以下のサブブロックのサイズはサブブロックの分割構造を意味することができる。
前記サブブロックのサイズは、前記現在ブロックのサイズに応じて変わり得る。例えば、現在ブロックの横幅及び縦幅のN等分に該当するサイズがサブブロックのサイズであり得る。このとき、Nは、正の整数であって、2、4、8、16、32、64のうちの少なくとも一つであり得る。例えば、現在ブロックのサイズが32x32であり、横、縦それぞれに対する等分Nが4である場合には、サブブロックのサイズは8x8であり得る。
又は、前記サブブロックのサイズは、前記現在ブロックのサイズに関係なく、所定の固定されたサイズであり得る。例えば、サブブロックのサイズは、現在ブロックのサイズに関係なく、最小サイズであり、例えば、4x4であり得る。
又は、前記サブブロックのサイズは、前記現在ブロックの近傍ブロックの分割構造に基づいて決定できる。例えば、隣接する近傍ブロックが分割された場合には、現在ブロックを分割してサブブロックのサイズが決定できる。
前記サブブロックのサイズは、前記現在ブロックの近傍ブロックのイントラ予測モードに基づいて決定できる。例えば、近傍ブロックのイントラ予測モードが互いに異なる境界を基準に、サブブロックを分割してサブブロックのサイズが決定できる。
前記サブブロックのサイズは、近傍ブロックの符号化パラメータに基づいて決定できる。例えば、近傍ブロックがイントラ符号化ブロックであるかインター符号化ブロックであるかに基づいて、サブブロックを分割して決定することができる。
前記現在ブロックのサイズ、サブブロックのサイズ、現在ブロックに対するN等分値のうちの少なくとも一つは、所定のサイズに固定できる。
例えば、前記現在ブロックの固定された所定のサイズが16x16である場合には、現在ブロックのサイズが16x16であれば、現在ブロックは、サブブロックに分割され、それぞれのサブブロックに対するイントラ予測モードを導出することができる。
例えば、前記現在ブロックの固定された所定のサイズがCTUであり、前記N等分値が4である場合には、現在ブロックのサイズがCTUであれば、CTUの横及び縦を4等分したサブブロック単位でイントラ予測モードを導出することができる。
前記一つ以上のサブブロックは、さらに小さいサイズのブロックに分割できる。例えば、前記現在ブロックのサイズが32x32であり、サブブロックのサイズが16x16である場合には、一つ以上のサブブロックは8x8、4x4、16x8、4x16などのさらに小さいブロックに分割できる。
前記現在ブロックのサイズ、サブブロックのサイズ、現在ブロックに対するN等分値のうちの少なくとも一つは、符号化/復号できる。
前記現在ブロックに対するサブブロックの分割構造は符号化/復号できる。このとき、前記分割されたサブブロックは様々なサイズ及び/又は形状を有することができる。また、各サブブロックに対してイントラ予測モードを導出することができる。
現在ブロックのイントラ予測モードが近傍ブロックのイントラ予測モードを用いて導出されることを示すインジケータ(例えば、フラグ)が、符号化/復号できる。例えば、前記インジケータは、NDIP_flag(Neighbouring mode Dependant Intra Prediction)であり得る。前記インジケータは、現在ブロック又はサブブロックのうちの少なくとも一つの単位ごとに符号化/復号できる。前記インジケータは、現在ブロック又はサブブロックのサイズが所定のサイズ又は所定のサイズ範囲に該当する場合にのみ、符号化/復号できる。前記所定のサイズは、例えば、64x64又はBTMaxであり得る。前述したように、現在ブロックは複数のサブブロックに分割できる。サブブロックの分割構造は予め定義されるか或いは符号化/復号によって決定され得る。
現在ブロックに対するNDIP_flagが1である場合には、現在ブロック又は現在ブロック内の各サブブロックに対するイントラ予測モードは、近傍ブロックのイントラ予測モードを用いて導出できる。この場合、現在ブロック及び/又はサブブロックに対するprev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode、split_flag、QB_flag、quadtree_flag、binarytree_flag、Btype_flagの少なくとも一つの情報は、符号化/復号されないことがある。
例えば、現在ブロックに対するNDIP_flagが1である場合には、現在ブロックに対するイントラ予測モードを復号した後、前記復号したイントラ予測モードと近傍ブロックのイントラ予測モードを用いて各サブブロックに対するイントラ予測モードを導出することができる。この際、サブブロックに対するprev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode、split_flag、QB_flag、quadtree_flag、binarytree_flag、Btype_flagのうちの少なくとも一つの情報は、符号化/復号されないことがある。
現在ブロックに対するNDIP_flagが0である場合には、現在ブロック又はサブブロックのイントラ予測モード及びサブブロックの分割情報のうちの少なくとも一つに関連した情報が符号化/復号できる。
現在ブロック内のサブブロックのうち、第1サブブロックに対するイントラ予測モードは、残りのサブブロックとは異なる方法で導出できる。第1サブブロックは、現在ブロック内の複数のサブブロックのうちのいずれか一つであり得る。例えば、第1サブブロックは、Zスキャンの順序上、1番目のサブブロックであり得る。
第1サブブロックのイントラ予測モードは、初期(initial)モードを意味することができる。例えば、サブブロックに対するイントラ予測モードを各サブブロックの左側ブロックと上側ブロックのイントラ予測モードの平均で導出する場合には、前記初期モードは他の方法で導出できる。前記初期モードを導出するための他の方法は、本発明に係るイントラ予測モードを導出する方法のうちの少なくとも一つであり得る。
例えば、MPMリストのN番目(例えば、一番目)に存在するモードを、前記初期モードとして導出することができる。又は、現在ブロックの近傍に存在する一つ以上のブロックのイントラ予測モードのうち最も多く発生するモードを、前記初期モードとして導出することができる。又は、前記現在ブロックに対して符号化/復号したイントラ予測モードを前記初期モードとして導出することができる。又は、前記第1サブブロックに対して符号化/復号したイントラ予測モードを前記初期モードとして導出することができる。
現在ブロック内のサブブロックに対するイントラ予測モードを導出するにあたり、任意の順序で一つ以上のサブブロックのイントラ予測モードを導出することができる。このとき、前記任意の順序はスキャニング順序であり、ラスタスキャン、アップライトスキャン、垂直スキャン、水平スキャン、対角スキャン、ジグザグスキャンのうちの少なくとも一つに該当することができる。前記スキャニングの順序に従ってイントラ予測モードを導出するサブブロックの個数は一つ以上であり得る。前記任意の順序は、近傍ブロックのイントラ予測モードに応じて適応的に決定できる。
図14は現在ブロックが一つ以上のサブブロックに分割され、各サブブロックのイントラ予測モードを導出する実施形態を説明するための図である。
まず、現在ブロックのサイズが所定のサイズに該当するかを判断することができる(S1410)。前記所定のサイズは、現在ブロックの横幅又は縦幅によって決定できる。例えば、現在ブロックの横幅又は縦幅がサブブロックに分割可能な長さであるか否かに応じて、ステップS1410の判断が行われ得る。
例えば、現在ブロックの横幅と縦幅が互いに同じ正方形である場合には、横幅及び縦幅のそれぞれをN等分した長さが任意の長さと同じかそれより大きい場合に、前記現在ブロックのサイズが前記所定のサイズに該当することができる。例えば、前記Nが4であり、任意の長さが4である場合には、前記現在ブロックが256x256、128x128、64x64、32x32、16x16のうちの少なくとも一つであれば、前記現在ブロックのサイズは前記所定のサイズに該当することができる。
例えば、現在ブロックの横幅と縦幅が互いに異なる長方形の場合には、横幅及び縦幅のうち、大きい長さをM等分した長さと、小さい長さをN等分した長さのうちの小さい長さが任意の長さと同じかそれより大きい場合に、前記現在ブロックのサイズが前記所定のサイズに該当することができる。例えば、前記Mが4であり、Nが2であり、任意の長さが4である場合には、前記現在ブロックが128x64、64x128、128x32、32x128、128x16、16x128、128x8、8x128、64x32、32x64、64x16、16x64、64x8、8x64、32x16、16x32、32x8、8x32、16x8、8x16のうちの少なくとも一つであれば、前記現在ブロックのサイズは前記所定のサイズに該当することができる。
例えば、前記現在ブロックがもはや分割されない場合には、前記現在ブロックのサイズは前記所定のサイズに該当することができる。例えば、現在ブロックに対する分割情報、4分木及び/又は2分木分割情報が0であって、現在ブロックが分割されないことを示し、現在ブロックの横幅又は縦幅が最小長さよりも大きい場合には、前記現在ブロックのサイズは所定のサイズに該当することができる。この時、前記最小長さは4であり得る。
前記現在ブロックのサイズが所定のサイズに該当しない場合(S1410でNo)、現在ブロックに対する分割情報及びイントラ予測モードを復号することができる(S1460)。現在ブロックが分割されない場合には、現在ブロックに対するイントラ予測モードを復号することができる。現在ブロックが分割される場合には、各分割されたサブブロックに対するイントラ予測モードを復号することができる。
前記現在ブロックのサイズが所定のサイズに該当する場合(S1410でYes)、NDIP_flagを復号することができる(S1420)。次のステップで、復号されたNDIP_flag値がチェックできる(S1430)。
NDIP_flagが0である場合(S1430でNo)、前述したように、現在ブロックに対する分割情報、現在ブロックのイントラ予測モード、サブブロックのイントラ予測モードのうちの少なくとも一つを復号することができる(S1460)。
NDIP_flagが1である場合(S1430でYes)、現在ブロックをサブブロックに分割することができる(S1440)。この際、サブブロックは、予め定義された所定のサイズ及び/又は形状に分割できる。又は、復号された分割情報に基づいて分割できる。
次のステップで、現在ブロックを分割して生成されたサブブロックのイントラ予測モードが導出できる(S1450)。ブロックのイントラ予測モードは、近傍ブロックのイントラ予測モードに基づいて導出できる。又は、現在ブロックのイントラ予測モードを復号して用いることができる。
前記現在ブロック又はサブブロックに対して、前記導出されたイントラ予測モードを用いてイントラ予測を行うことができる(S1470)。
図15は現在ブロックがサブブロックに分割される一つの実施形態を示す図である。
現在ブロック内の複数のサブブロックのイントラ予測モードを導出する順序は、現在ブロック基準のラスタ(raster)スキャン順序であり得る。又は、所定のブロックサイズ基準のラスタスキャン順序であり得る。例えば、C1、C2、C3、...、C16の順にサブブロックのイントラ予測モードが導出できる。又は、C1、C2、C5、C6、C3、C4、...、C12、C15、C16の順に導出できる。又は、各サブブロックのイントラ予測モードを並列的に導出することができる。それぞれのサブブロックに対するイントラ予測モードは、前記現在ブロックのイントラ予測モードを導出する方法のうちの少なくとも一つの方法で導出できる。
例えば、前記現在ブロックがサブブロックに分割されてサブブロックそれぞれに対するイントラ予測モードを導出する場合には、近傍ブロックのイントラ予測モードが利用できる。
例えば、各サブブロックの(0,0)位置サンプルの左側と上側に位置したブロックのイントラ予測モードの統計値を、各サブブロックのイントラ予測モードとして導出することができる。例えば、前記統計値が平均値である場合には、図15に示されたそれぞれのサブブロックのイントラ予測モードは、下記数式4を用いて導出できる。
又は、各サブブロックの(0,0)位置サンプルの左側と上側に位置したブロックのサイズを比較して、大きいブロックのイントラ予測モードをサブブロックのイントラ予測モードとして導出することができる。この際、2つのブロックのサイズが同じ場合には、左側ブロックと上側ブロックのイントラ予測モードの平均値を各サブブロックのイントラ予測モードとして導出することができる。
又は、各サブブロックの(0,0)位置サンプルの左側と上側に位置したブロックのイントラ予測モードの大きさを比較して、2つのうち小さい値を持つモードをサブブロックのイントラ予測モードとして導出することができる。2つのモードの値が同じ場合には、2つのうちいずかのモードをサブブロックのイントラ予測モードとして導出することができる。
又は、現在ブロックの近傍にあるイントラ予測モードを用いて各サブブロックのイントラ予測モードを導出することができる。このとき、各サブブロックの(0,0)サンプル位置で左側及び/又は上側に位置した現在ブロックの一つ以上の近傍ブロックのイントラ予測モードを用いることができる。例えば、図15に示されたそれぞれのサブブロックのイントラ予測モードは、下記数式5を用いて導出できる。
又は、現在ブロックの近傍ブロックのイントラ予測モードがいずれも非方向性モードである場合、サブブロックのイントラ予測モードは、非方向性モード(例えば、DCモード及びPlanarモード)のうちの少なくとも一つで導出することができる。
図16は現在ブロックがサブブロックに分割される他の実施形態を示す図である。
図16に示すように、現在ブロック内のサブブロックは、様々なサイズ及び/又は形状を有することができる。前記現在ブロック及び/又はサブブロックの分割構造及び/又はサイズは、符号化/復号して決定できる。このとき、各サブブロックに対するイントラ予測モードは、前述した現在ブロック又はサブブロックのイントラ予測モードを導出する方法のうちの少なくとも一つの方法で導出できる。
例えば、各サブブロックの(0,0)位置サンプルの左側と上側に位置したブロックのイントラ予測モードの統計値を、各サブブロックのイントラ予測モードとして導出することができる。例えば、前記統計値が平均値である場合には、図16に示されたサブブロックのイントラ予測モードは、下記数式6を用いて導出できる。
又は、各サブブロックに隣接する一つ以上の近傍ブロックのイントラ予測モードの統計値を、各サブブロックのイントラ予測モードとして導出することができる。例えば、前記統計値が平均値である場合、図16に示されたそれぞれのサブブロックのイントラ予測モードは、下記数式7を用いて導出できる。
又は、現在ブロックの近傍ブロックのイントラ予測モードがいずれも非方向性モードである場合、サブブロックのイントラ予測モードは、非方向性モード(例えば、DCモード及びPlanarモード)のうちの少なくとも一つで導出できる。
前記現在ブロックがサブブロックに分割されてサブブロックそれぞれに対するイントラ予測モードを導出する場合には、MPMを用いて前記現在ブロックに対するイントラ予測モードを導出した後、前記導出されたモードと近傍ブロックのイントラ予測モードを用いて各サブブロックのイントラ予測モードを導出することができる。この時、前記MPMを用いて導出した現在ブロックのイントラ予測モードと近傍ブロックのイントラ予測モードのうちの少なくとも一つを用いて、現在ブロックのイントラ予測モードを導出する方法のうちの少なくとも一つの方法でサブブロックのイントラ予測モードを導出することができる。例えば、前記MPMを用いて導出した現在ブロックのイントラ予測モードがPred_mpmである場合、サブブロックのイントラ予測モードは、次のとおり導出できる。
例えば、各サブブロックの(0,0)位置サンプルの左側と上側に位置したブロックのイントラ予測モードの平均値と前記Pred_mpmのサイズとを比較して、前記平均値がPred_mpmよりも大きい場合にはPred_mpm+1、Pred_mpmよりも小さい場合にはPred_mpm-1をサブブロックのイントラ予測モードとして導出することができる。又は、各サブブロックの(0,0)位置サンプルの左側と上側に位置したブロックのイントラ予測モードと前記Pred_mpmの平均値をイントラ予測モードとして導出することができる。又は、各サブブロックの(0,0)位置サンプルの左側又は上側に位置したブロックのイントラ予測モードと前記Pred_mpmのサイズとを比較して、Pred_mpmを調整してイントラ予測モードを導出することができる。このとき、前記平均値の代わりに、前述した統計値のうちの少なくとも一つが使用できる。
図17は現在ブロックがサブブロックに分割される別の実施形態を示す図である。
図17において、各ブロック内の数字は、当該ブロックのイントラ予測モードの番号を意味する。また、Cx(xは1..16)は、現在ブロック内のx番目のサブブロックを意味する。また、矢印は当該ブロックのイントラ予測方向又は角度を意味する。
例えば、各サブブロックの(0,0)位置サンプルの左側と上側に位置したブロックのイントラ予測モードの統計値を、各サブブロックのイントラ予測モードとして導出することができる。前記統計値は、例えば、平均値であり得る。又は、前記近傍ブロックのイントラ予測モードのうちの少なくとも一つのモードが非方向性モードである場合、前記近傍ブロックのイントラ予測モードのうちの方向性モードでサブブロックのイントラ予測モードを導出することができる。非方向性モードは、例えば、Planarモード(モード番号0)及びDCモード(モード番号1)を含むことができる。例えば、図17に示されたそれぞれのサブブロックのイントラ予測モードは、下記数式8を用いて導出できる。
図18は現在ブロックがサブブロックに分割される別の実施形態を示す図である。
図18において、各ブロック内の数字は、該当ブロックのイントラ予測モードの番号を意味する。また、Cx(xは1..14)は、現在ブロック内のx番目のサブブロックを意味する。また、矢印は当該ブロックのイントラ予測方向又は角度を意味する。
図18を参照して説明する実施形態では、まず、現在ブロックに対するイントラ予測モード及びサブブロックの分割情報のうちの少なくとも一つが復号によって導出できる。現在ブロック内の各サブブロックに対するイントラ予測モードは、前記導出された現在ブロックのイントラ予測モードと各サブブロックの(0,0)位置サンプルの左側と上側に位置したブロックのイントラ予測モードの平均値を用いて導出できる。例えば、前記導出された現在ブロックのイントラ予測モードが前記平均値よりも大きい場合には、前記平均値の1/2だけを、前記導出されたイントラ予測モードから差し引くことができ、前記平均値と同じかそれより小さい場合には、加えることができる。このとき、前記平均値の代わりに、前述した統計値のうちの少なくとも一つが利用できる。
又は、前記近傍ブロックのイントラ予測モードのうちの少なくとも一つのモードが非方向性モードである場合、前記近傍ブロックのイントラ予測モードのうちの方向性モードでサブブロックのイントラ予測モードを導出することができる。非方向性モードは、例えば、Planarモード(モード番号0)及びDCモード(モード番号1)を含むことができる。例えば、前記導出された現在ブロックのイントラ予測モードが52であると仮定した場合、図18に示されたそれぞれのサブブロックのイントラ予測モードは、下記数式9を用いて導出できる。
イントラ予測モードを導出するために、イントラ予測に関する情報がビットストリームから復号(例えば、エントロピー復号)できる。イントラ予測に関する情報は、VPS(video parameter set)、SPS(sequence parameter set)、PPS(picture parameter set)、APS(adaptation parameter set)、スライス(slice)ヘッダー、タイル(tile)ヘッダー、CTU、CU及びPUの少なくとも一つを介してシグナリングできる。イントラ予測に関する情報は、下記情報のうちの少なくとも一つを含むことができる。
-参照サンプルのフィルタリング適用有無を示すフラグ:例)intra_reference_sample_filtering_flag
-参照サンプルのフィルタリング類型を指定するインデックス:例)reference_sample_filtering_idx
-MPM(Most Probable Mode)マッチングか否かを示すフラグ:例)prev_intra_luma_pred_flag
-MPMリスト内で位置を指定するインデックス:例)mpm_idx
-イントラ予測モードがNon-MPMモードのうちの所定のモードからなるグループに含まれるか否かを示すフラグ:例)non_mpm_group_flag
-前記グループ内で位置を指定するインデックス:例)group_mode_idx
-輝度成分イントラ予測モード情報:例)rem_intra_luma_pred_mode
-色差成分イントラ予測モード情報:例)intra_chroma_pred_mode
-サンプル単位方向性イントラ予測モードの曲率パラメータ:例)cuv
-サンプル単位方向性イントラ予測モードの行及び/又は列重みパラメータセット:例)cw1、cw2、...、cwNs-1
-サンプル単位方向性イントラ予測のためのLook-up-table(LUT)
-近傍ブロックのイントラ予測モードを用いて現在ブロック及びサブブロックのイントラ予測モードを導出することを示すフラグ:例)NDIP_flag
-予測サンプルに対するフィルタリング適用有無を示すフラグ:例)predicted_sample_filtering_flag
前記イントラ予測に関する情報の復号は、少なくとも一つの符号化パラメータに基づいて行われ得る。例えば、NDIP_flagの符号化/復号は、ブロックの分割情報に関連した情報に基づいて行われ得る。一例として、NDIP_flagの符号化/復号は、split_flag、quadtree_flag、binarytree_flagの少なくとも一つが0である場合、すなわち、それ以上ブロックが分割されない場合に行われ得る。
所定のブロックサイズ以下では、前記イントラ予測に関する情報のうちの少なくとも一つがシグナリングされなくてもよい。例えば、現在ブロックのサイズが所定のサイズに該当する場合、現在ブロックに対するイントラ予測に関する情報の少なくとも一つかシグナリングされず、以前に符号化/復号された上位サイズのブロックに該当するイントラ予測に関する一つ以上の情報を用いることができる。
前記イントラ予測に関する情報のうちの少なくとも一つをエントロピー符号化/復号するとき、下記の2値化(binarization)方法のうちの少なくとも一つを用いることができる。
-切り捨てられたライス(Truncated Rice)2値化方法
-K次数指数-ゴロム(K-th order Exp_Golomb)2値化方法
-限られたK次数指数-ゴロム(K-th order Exp_Golomb)2値化方法
-固定長(Fixed-length)2値化方法
-単項(Unary)2値化方法
-切り捨てられた単項(Truncated Unary)2値化方法
前記MPM(Most Probable Mode)flagが1である場合には、輝度成分のイントラ予測モードはMPMインデックス(mpm_idx)と符号化/復号された隣接ユニットのイントラ予測モードのうちの少なくとも一つを用いて導出できる。
前記MPM(Most Probable Mode)flagが0である場合には、イントラ予測モードが前記non-MPMモードのうちの所定のモードからなるグループに含まれるか否かを示すフラグをパーシングして1であれば、グループモードインデックス(group_mode_idx)を用いてイントラ予測モードを導出することができる。
前記MPM(Most Probable Mode)flag又は前記non-MPMモードのうちの所定のモードからなるグループに含まれるか否かを示すフラグのうちの少なくとも一つが0である場合、輝度成分のイントラ予測モードは、輝度成分イントラ予測モードインデックス(rem_intra_luma_pred_mode)を用いて符号化/復号できる。
色差成分のイントラ予測モードは、色差成分イントラ予測モードインデックス(intra_chroma_pred_mode)及び/又は対応する輝度ブロックのイントラ予測モードのうちの少なくとも一つを用いて導出できる。又は、色差ブロック近傍のイントラ予測モード、対応する輝度ブロック及び輝度ブロック近傍のイントラ予測モード、所定のイントラ予測モードのうちの少なくとも一つを用いてMPMリストを構成し、これを用いて前記色差成分のイントラ予測モードを導出することができる。
前記サンプル単位方向性イントラ予測モードの曲率パラメータ(cuv)は、サンプル単位方向性イントラ予測モードに適用される曲率を意味することができる。現在ブロックに対して一つ以上のcuvを用いてサンプル単位方向性イントラ予測を行うことができる。曲率パラメータは、近傍ブロックの曲率パラメータから導出できる。
前記サンプル単位方向性イントラ予測モードの行及び/又は列重みパラメータセット(cw)は、ベクトルになることができる。行及び/又は列重みパラメータは、現在ブロックの行及び/又は列単位で適用できる。例えば、NxMブロックに対して行単位で適用される場合には、行重みパラメータセットはN個の重みパラメータを持つことができる。また、列単位で適用される場合には、列重みパラメータセットはM個の重みパラメータを持つことができる。重みパラメータ及び/又は重みパラメータセットは、近傍ブロックの重みパラメータ及び/又は重みパラメータセットから導出できる。
cuvとcwのうちの少なくとも一つを用いて多様な形態のサンプル単位方向性イントラ予測を行うことができる。このとき、cvuとcwはそれぞれ一つ以上であり得る。
現在ブロックは、N個のcuvとM個のcwを用いて少なくともNxMx4個以上の予測ブロックを生成してイントラ予測を行うことができる。例えば、現在ブロックは、一つのcuvと一つのcwを用いて少なくとも4つの予測ブロックを生成してイントラ予測を行うことができる。例えば、現在ブロックは、2つのcuvと一つのcwを用いて少なくとも8つの予測ブロックを生成してイントラ予測を行うことができる。
2つ以上のcuv及び/又はcw情報は、default値とdelta値を用いて符号化/復号できる。このとき、defaultは一つのcuv値及び/又は一つのcw値を意味することができ、deltaは定数値であり得る。
例えば、現在ブロックで2つのcuvを用いる場合、default_cuvとdelta_cuvがビットストリームから復号できる。このとき、2つの曲率パラメータはdefault_cuv、default_cuv+delta_cuvになることができる。
例えば、現在ブロックでN個のcuvを用いる場合、default_cuvとdelta_cuvがビットストリームから復号できる。このとき、N個の曲率パラメータは、default_cuv、default_cuv+delta_cuv、default_cuv+2*delta_cuv、...、default_cuv+(N-1)*delta_cuvになることができる(ただし、Nは2以上の正の整数)。
例えば、現在ブロックで2N+1個のcuvを用いる場合、2N+1個の曲率パラメータは、default_cuv、default_cuv+delta_cuv、default_cuv-delta_cuv、default_cuv+2*delta_cuv、default_cuv-2*delta_cuv、...、default_cuv+N*delta_cuv、default_cuv-N*delta_cuvになることができる(ただし、Nは1以上の正の整数)。
例えば、現在ブロックで2つのcwを用いる場合、default_cwとdelta_cwがビットストリームから復号できる。このとき、2つの重みパラメータは、default_cw、default_cw+delta_cwになることができる(ただし、default_cw+delta_cwはベクトルの元素単位の加算)。
例えば、現在ブロックでM個のcwを用いる場合、default_cwとdelta_cwがビットストリームから復号できる。このとき、M個の重みパラメータは、default_cw、default_cw+delta_cw、default_cw+2*delta_cw、...、default_cw+(M-1)*delta_cwになることができる(ただし、default_cw+delta_cwはベクトルの元素単位の加算、Mは2以上の正の整数)。
例えば、現在ブロックで2M+1個のcwを用いる場合、2M+1個の曲率パラメータは、default_cw、default_cw+delta_cw、default_cw-delta_cw、default_cw+2*delta_cw、default_cw-2*delta_cw、...、default_cw+M*delta_cw、default_cw-M*delta_cwになることができる(ただし、Mは1以上の正の整数)。
以下、参照サンプル構成ステップ(S1220)についてより詳細に説明する。
前記現在ブロック、又は現在ブロックよりも小さいサイズ及び/又は形状を持つサブブロックに対するイントラ予測を行うにあたり、予測のために使用される参照サンプルを構成することができる。以下では現在ブロックを基準に説明し、前記現在ブロックはサブブロックを意味することができる。前記参照サンプルは、現在ブロックの近傍の再構築された一つ以上のサンプル又はサンプル組み合わせを用いて構成することができる。さらに前記参照サンプルを構成するにあたり、フィルタリングが適用できる。この時、複数の再構築サンプルライン上の各再構築サンプルをそのまま使用して参照サンプルを構成することができる。又は、同じ再構築サンプルライン上のサンプル間フィルタリングの後に参照サンプルを構成することができる。又は、互いに異なる再構築サンプルライン上のサンプル間フィルタリングの後に参照サンプルを構成することができる。前記構成された参照サンプルはref[m,n]、近傍の再構築されたサンプル又はこれをフィルタリングしたサンプルはrec[m,n]で表すことができる。このとき、前記m又はnは所定の整数値であり得る。現在ブロックのサイズがW(横)xH(縦)である場合、現在ブロック内の左上側のサンプル位置が(0,0)であるとき、当該サンプル位置を基準に最も近接した左上側の参照サンプルの相対的な位置を(-1,-1)に設定することができる。
図19は現在ブロックのイントラ予測に用いられる近傍の再構築サンプルラインを例示的に示す図である。
図19に示すように、現在ブロックに隣接する一つ以上の再構築サンプルラインを用いて、参照サンプルが構成できる。
例えば、図19に示された複数の再構築サンプルラインの中から一つのラインを選択し、選択された再構築サンプルラインを用いて参照サンプルを構成することができる。前記選択された再構築サンプルラインは、複数の再構築サンプルラインの中から特定のラインに固定的に選択できる。又は、前記選択された再構築サンプルラインは、複数の再構築サンプルラインの中から特定のラインに適応的に選択できる。
例えば、図19に示された複数の再構築サンプルラインのうち、一つ以上の再構築サンプルラインの組み合わせを用いて、参照サンプルを構成することができる。一例として、参照サンプルは、一つ以上の再構築サンプルの加重和(又は加重平均)で構成できる。前記加重和に用いられる重みは、現在ブロックからの距離に基づいて付与できる。この際、現在ブロックに近いほど、さらに大きい重みが付与でき、例えば、下記数式10が使用できる。
又は、現在ブロックからの距離又はイントラ予測モードのうちの少なくとも一つに基づいて、複数の再構築サンプルの平均値、最大値、最小値、中央値及び最頻値の少なくとも一つの値を用いて参照サンプルを構成することができる。
又は、連続する複数の再構築サンプルの値の変化(変化量)に基づいて参照サンプルを構成することができる。例えば、連続する二つの再構築サンプルの値が臨界値以上異なるか否か、連続する複数の再構築サンプルの値が連続的又は不連続的に変わるか否かなど、少なくとも一つに基づいて、参照サンプルを構成することができる。例えば、rec[-1,-1]とrec[-2,-1]が臨界値以上異なる場合、ref[-1,-1]は、rec[-1,-1]と決定されるか、rec[-1,-1]に所定の重みを付与した加重平均を適用した値と決定できる。例えば、連続する複数の再構築サンプルの値が現在ブロックに近づくほどnずつ変わる場合、参照サンプルref[-1,-1]=rec[-1,-1]-nで決定できる。
例えば、図19に示された複数の再構築サンプルラインの中から2つ以上の再構築サンプルラインを選択して参照サンプルを構成することができる。一例として、再構築サンプルライン1と再構築サンプルライン2が固定的に選択できる。又は、2つ以上の再構築サンプルラインが適応的に選択できる。又は、一つのラインは固定的に選択され、他の一つ以上のラインは適応的に選択できる。
複数の再構築サンプルラインの中から一つ以上の再構築サンプルラインが固定的に選択される場合には、前記固定的に選択されたラインについての情報はシグナリングできない。
複数の再構築サンプルラインの中から一つ以上の再構築サンプルラインが適応的に選択される場合には、前記適応的に選択されたラインについての情報はシグナリングできる。前記情報は、例えば、前記適応的に選択されたラインを特定するためのインジケータ又はインデックスであり得る。又は、前記情報がシグナリングされず、現在ブロック及び/又は近傍ブロックのサイズ、形状、イントラ予測モードなどの符号化パラメータのうちの少なくとも一つを用いて前記一つ以上の再構築サンプルラインが適応的に選択できる。
前記参照サンプルラインは一つ以上のサンプルから構成できる。例えば、現在ブロックの横幅又は縦幅と同じ長さで構成できる。又は、前記横幅又は縦幅の2倍に相当する長さで構成できる。又は、前記横幅又は縦幅に1、2、3、...、N個のサンプルを加えた長さで構成できる。例えば、前記参照サンプルラインは、2*(W+H)+N個のサンプルで構成できる。
前記現在ブロックの上側に隣接するサンプルラインの個数と、前記現在ブロックの左側に隣接する参照サンプルラインの個数とは互いに異なり得る。例えば、現在ブロックのサイズ、形状及び/又はイントラ予測モードに応じて、上側に隣接するサンプルラインは一つ、左側に隣接する参照サンプルラインは2つから構成できる。
前記現在ブロックの上側に隣接するサンプルラインの長さと、左側に隣接する参照サンプルラインの長さとは互いに異なり得る。例えば、現在ブロックのサイズ、形状及び/又はイントラ予測モードに応じて前記長さを異ならせて構成することができる。
前記参照サンプルラインの長さは、前記再構築サンプルラインごとに異なり得る。例えば、再構築サンプルラインnは、再構築サンプルラインn-1よりもm個のサンプルだけ長く又は短く構成できる。図19に示された例では、再構築サンプルラインnは再構築サンプルラインn-1よりも一つのサンプルだけ長く構成される。
又は、前記参照サンプルラインのそれぞれは、イントラ予測モードに応じてシフトされることにより再構成できる。例えば、イントラ予測モードによって参照される位置に参照サンプルが存在しない場合、参照サンプルが位置するように当該参照サンプルラインをシフトすることができる。どんな参照サンプルラインをシフトするか又はどれほどシフトするかは、イントラ予測モード、予測角度及び/又は参照サンプルラインの位置に基づいて決定できる。
前述したように、最も近い参照サンプルラインのみを用いて参照サンプルを構成するか、或いは複数の参照サンプルラインを用いて参照サンプルを構成するかについての情報は、符号化/復号できる。例えば、前記情報は、シーケンス、ピクチャ、スライス、タイル、CTU、CU、PU及びTUレベルのうちの少なくとも一つのレベルで符号化/復号できる。また、複数の参照サンプルラインの利用可能性についての情報がより上位のベルでシグナリングされることも可能である。
前記参照サンプルの構成に使用される再構築サンプルラインの個数、位置及び構成方法のうちの少なくとも一つは、現在ブロックの上側及び/又は左側の境界がピクチャ、スライス、タイル、符号化ツリーブロック(CTB)のうちの少なくとも一つの境界に該当する場合に応じて異ならせることができる。例えば、前記2つ以上の参照サンプルラインを構成する際に、現在ブロックの上側境界がピクチャ、タイル、スライス、符号化ツリーブロック(CTB)のうちの少なくとも一つに該当する場合、上側に隣接する参照サンプルラインをn個で構成することができる。この時、nは例えば1であり得る。
前記参照サンプルを選択するにあたり、参照サンプルを含んでいるブロックの可用性(availability)判断及び/又はパディング(padding)が行われ得る。例えば、参照サンプルを含んでいるブロックが利用可能である場合には、該当する前記参照サンプルを用いることができる。一方、前記参照サンプルを含んでいるブロックが利用不可能である場合には、近傍のできる限り一つ以上の参照サンプルを用いて、前記利用不可能な参照サンプルをパディングして代替することができる。
前記参照サンプルがピクチャ、タイル、スライス、符号化ツリーブロック(CTB)、所定の境界のうち少なくとも一つの境界の外に存在する場合、前記参照サンプルは利用不可能であると判断できる。
現在ブロックを、限られたイントラ予測(CIP:constrained intra prediction)で符号化する場合に、前記参照サンプルを含んでいるブロックがインターモードで符号化/復号されていれば、前記参照サンプルは利用不可能であると判断できる。
図20は利用可能な再構築サンプルを用いて、利用不可能な再構築サンプルを代替する方法を説明するための図である。
前記近傍の再構築サンプルが利用不可能であると判断された場合、近傍の利用可能な再構築サンプルを用いて、前記利用不可能なサンプルを代替することができる。例えば、図20に示すように、利用可能なサンプルと利用不可能なサンプルが存在する場合、一つ以上の利用可能なサンプルを用いて、前記利用不可能なサンプルを代替することができる。
利用不可能なサンプルのサンプル値は、所定の順序に従って、利用可能なサンプルのサンプル値で代替できる。利用不可能なサンプルの代替に用いられる利用可能なサンプルは、利用不可能なサンプルに隣接する利用可能なサンプルであり得る。隣接する利用可能なサンプルがない場合、最も先に出現する或いは最も近い利用可能なサンプルが用いられる。利用不可能なサンプルの代替順序は、例えば、左下側から右上側への順であってもよい。又は、右上側から左下側への順であってもよい。又は、左上隅から右上側及び/又は左下側への順であってもよい。又は、右上側及び/又は左下側から左上隅への順であってもよい。
図20に示すように、左下側サンプルの位置である0から開始して右上側サンプルの順に、利用不可能なサンプルの代替が行われ得る。この場合、最初の利用不可能な4つのサンプルは、最も先に出現する或いは最も近い利用可能なサンプルaの値で代替できる。次の利用不可能な13つのサンプルは最後の利用可能なサンプルbの値で代替できる。
又は、利用不可能なサンプルは、利用可能なサンプルの組み合わせを用いて代替できる。 例えば、利用不可能なサンプルの両端に隣接する利用可能なサンプルの平均値を用いて、前記利用不可能なサンプルを代替することができる。例えば、図20において、最初の利用不可能な4つのサンプルは、利用可能なサンプルaの値で満たし、次の利用不可能な13つのサンプルは、利用可能なサンプルbとcの平均値で満たすことができる。又は、13つの利用不可能なサンプルは、利用可能なサンプルbとcのサンプル値の間の任意の値で代替できる。この場合、利用不可能なサンプルは、互いに異なる値で代替できる。例えば、利用不可能なサンプルは、利用可能なサンプルaに近接するほどaの値に近接した値で代替できる。同様に、利用不可能なサンプルは、利用可能なサンプルbに近接するほどbの値に近接した値で代替できる。すなわち、利用不可能なサンプルから利用可能なサンプルa及び/又はbまでの距離に基づいて、利用不可能なサンプルの値が決定できる。
利用不可能なサンプルの代替のために、これらの方法を含む複数の方法のうちの少なくとも一つが選択的に適用できる。利用不可能なサンプルの代替方法は、ビットストリームに含まれている情報によってシグナリングされるか、或いは符号化器と復号器で予め定めた方法が利用できる。又は、利用不可能なサンプルの代替方法は、予め定めた方式によって導出できる。例えば、利用可能なサンプルaとbの値の差及び/又は利用不可能なサンプルの個数に基づいて、利用不可能なサンプルの代替方法を選択することができる。例えば、二つの利用可能なサンプルの値の差と臨界値との比較、及び/又は利用不可能なサンプルの個数と臨界値との比較に基づいて、利用不可能なサンプルの代替方法が選択できる。例えば、二つの利用可能なサンプルの値の差が臨界値よりも大きいか、及び/又は利用不可能なサンプルの個数が臨界値よりも大きい場合には、利用不可能なサンプルは、互いに異なる値を持つように代替できる。
利用不可能なサンプルの代替方法の選択は所定の単位で行われ得る。例えば、ビデオ、シーケンス、ピクチャ、スライス、タイル、符号化ツリーユニット、符号化ユニット、予測ユニット及び変換ユニットのうちの少なくとも一つの単位に対して、利用不可能なサンプルの代替方法が選択できる。このとき、利用不可能なサンプルの代替方法の選択は、前記所定の単位でシグナリングされる情報に基づくか、或いは前記所定の単位で導出できる。又は、符号化器と復号器で予め定めた方法が適用されてもよい。
所定の位置の参照サンプルについては、前記参照サンプルを含むブロックの可用性を判断せずにパディングを行うことができる。例えば、図19に示された例において、W+Hの長さよりも大きい位置に存在する参照サンプルについては、前記可用性判断をせずに近傍の参照サンプルを用いてパディングすることができる。例えば、ref[W+H,-2]のサンプルに対する可用性判断を行わずに、ref[W+H-1,-2]の値でパディングすることができる。又は、ref[W+H,-3]及びref[W+H+1,-3]のサンプルに対して可用性判断を行わずにref[W+H-1,-3]の値でパディングすることができる。
現在ブロックの上側に存在する参照サンプルであって前記現在ブロックの横幅の外に存在する参照サンプルのうち、前記現在ブロックの縦幅分に該当するサンプルに対して可用性判断及び/又はパディングを行うことができる。一方、前記現在ブロックの左側に存在する参照サンプルであって前記縦幅の外に存在する参照サンプルのうち、前記現在ブロックの横幅分に該当するサンプルに対して可用性判断及び/又はパディングを行うことができる。例えば、rec[x,-1](x=-1~W+H-1)及び/又はrec[-1,y](y=0~H+W-1)に該当する参照サンプルに対して可用性判断及び/又はパディングを行うことができる。
前記構成した一つ以上の参照サンプルに対して、現在ブロックのイントラ予測モード、ブロックのサイズ及び/又は形状のうちの少なくとも一つに基づいて、フィルタリング適用有無及び/又はフィルタ類型を異ならせて決定することができる。例えば、前記複数の参照サンプルラインに対して、フィルタリング適用有無を異ならせて決定することができる。例えば、隣接する一番目の参照サンプルラインに対してはフィルタリングを適用し、二番目の参照サンプルラインに対してはフィルタリングを適用しなくてもよい。
また、例えば、同じ参照サンプルに対してフィルタリングを適用した値と適用していない値のいずれも使用することができる。例えば、イントラ予測モード、現在ブロックのサイズ及び/又は形状のうちの少なくとも一つに基づいて3-tapフィルタ、5-tapフィルタ、7-tapフィルタ、及びN-tapフィルタのうちの少なくとも一つを異なるように選択して適用することができる。このとき、Nは整数であり得る。
例えば、イントラ予測モード、現在ブロックのサイズ及び/又は形状のうちの少なくとも一つに基づいて、フィルタの形状を異なるように選択して適用することができる。前記フィルタの形状は1次元又は2次元の形態であり得る。図21は2次元形態の様々なフィルタ形状を例示的に示す図である。
前記現在ブロックの形態は、前記現在ブロックの横幅及び縦幅を比較して判断又は決定できる。例えば、前記横幅が縦幅よりも大きい場合と、横幅が縦幅よりも小さい場合に対して、フィルタリング適用有無及び/又はフィルタ類型のうちの少なくとも一つを異ならせて適用することができる。又は、前記横幅と縦幅とが同じか異なるかによって、フィルタリング適用有無及び/又はフィルタ類型を異ならせて適用することができる。
以下、イントラ予測実行ステップ(S1230)についてより詳細に説明する。
前記導出されたイントラ予測モード及び参照サンプルに基づいて、前記現在ブロック又はサブブロックに対するイントラ予測を行うことができる。以下の詳細な説明において、現在ブロックはサブブロックを意味することができる。
イントラ予測として、例えば、非方向性イントラ予測が実行できる。非方向性モードは、例えば、DCモード及びPlanarモードのうちの少なくとも一つであり得る。
非方向性モードがDCモードである場合、前記構成した参照サンプルのうちの少なくとも一つの参照サンプルの平均値を用いてイントラ予測を行うことができる。この際、現在ブロックの境界に位置した一つ以上の予測サンプルに対してフィルタリングを適用することができる。前記平均値は、一つ以上であり、予測対象サンプル位置に応じて互いに異なる平均値で予測を行うことができる。現在ブロックのサイズ又は形状の少なくとも一つに応じて、前記利用する参照サンプルが異なり得る。例えば、ブロックのサイズが所定のサイズよりも大きい場合には、隣接する一つの参照サンプルラインを用い、所定のサイズよりも小さい場合には、隣接する二つの参照サンプルラインを用いることができる。
非方向性モードがPlanarモードである場合、前記現在ブロックのイントラ予測対象サンプルの位置に応じて、前記構成した複数の参照サンプルからの距離を考慮した加重和を用いて、イントラ予測を行うことができる。
イントラ予測として、例えば、方向性イントラ予測が実行できる。方向性モードは、例えば、水平モード、垂直モード、及び所定の角度を有するモードのうちの少なくとも一つであり得る。
方向性モードが水平及び/又は垂直モードである場合、イントラ予測対象サンプルの位置で水平及び/又は垂直線上に存在する一つ以上の参照サンプルを用いてイントラ予測を行うことができる。
方向性モードが所定の角度を有するモードである場合には、イントラ予測対象サンプルの位置で所定の角度線上及び近傍に存在する一つ以上の参照サンプルを用いてイントラ予測を行うことができる。このとき、N個の参照サンプルが利用可能である。Nは2、3、4、5、6などの正の整数であり得る。例えば、2-tap、3tap、4-tap、5-tap、6-tapフィルタなど、N-tapフィルタを適用して、イントラ予測を行うことができる。このとき、一つ以上の参照サンプルラインを用いることができ、各ラインに適用するフィルタ類型は互いに異なることができる。前記各ラインにフィルタを適用した値の加重平均を算出してイントラ予測を行うことができる。前記方向性予測に使用する参照サンプルラインの個数は、方向性モード、現在ブロックのサイズ及び形状のうちの少なくとも一つによって異なり得る。
又は、位置情報に基づいてイントラ予測を行うことができる。このとき、位置情報は、符号化/復号でき、前記位置にある再構築されたサンプルブロックを現在ブロックのイントラ予測ブロックとして導出することができる。又は、復号器で現在ブロックに類似したブロックを検索して探し出したブロックを、現在ブロックのイントラ予測ブロックとして導出することができる。
又は、輝度及び/又は色差信号に基づいてイントラ予測を行うことができる。例えば、現在ブロックの再構築された輝度信号を用いて、色差信号に対するイントラ予測を行うことができる。例えば、現在ブロックの再構築された一つの色差信号Cbを用いて、他の色差信号Crに対するイントラ予測を行うことができる。
前述した様々なイントラ予測方法を一つ以上組み合わせてイントラ予測を行うことができる。例えば、所定の非方向性イントラ予測モードを用いて予測したブロックと、所定の方向性イントラ予測モードを用いて予測したブロックとの加重和によって、前記現在ブロックに対するイントラ予測ブロックを構成することができる。このとき、重み(weight)は、前記現在ブロックのイントラ予測モード、ブロックのサイズ、形状及び/又はサンプル位置のうちの少なくとも一つに応じて異ならせて適用できる。
又は、前記一つ以上のイントラ予測モードを組み合わせるにあたり、現在ブロックに対するイントラ予測モードを用いて予測した値と、MPMリストにある所定のモードを用いて予測した値との加重和を介して、予測ブロックを構成することができる。
又は、一つ以上の参照サンプルセット(set)を用いてイントラ予測を行うことができる。例えば、前記構成した参照サンプルにフィルタリングを適用していない参照サンプルでイントラ予測したブロックと、フィルタリングを適用した参照サンプルでイントラ予測したブロックとの加重和を介して、前記現在ブロックに対するイントラ予測を行うことができる。
前記イントラ予測を行う処理で、近傍の再構築されたサンプルを用いたフィルタリング処理を行うことができる。このとき、前記フィルタリング処理は、現在ブロックのイントラ予測モード、ブロックのサイズ、形状及び/又はサンプル位置のうちの少なくとも一つに応じて行われてもよく、行われなくてもよい。前記フィルタリング処理は、前記イントラ予測を行う処理に含まれて一つのステップで行われ得る。
前記現在ブロックがサブブロックに分割され、各サブブロックに対するイントラ予測モードを近傍ブロックのイントラ予測モードを用いて導出してイントラ予測を行うにあたり、現在ブロック内の各サブブロックに対してフィルタリングを適用することができる。例えば、現在ブロック全体にローパス(low-pass)フィルタを適用することができる。又は、各サブブロックの境界に位置するサンプルに対してフィルタを適用することができる。又は、各サブブロックの予測ブロック又は再構築されたブロックにフィルタを適用することができ、前記フィルタを適用したサブブロックの一つ以上のサンプルは、以後のサブブロックに対するイントラ予測の実行に用いることができる。
前記現在ブロックがサブブロックに分割され、各サブブロックに対するイントラ予測を行うにあたり、各サブブロックは、符号化/復号ブロック、予測ブロック、変換ブロックのうちの少なくとも一つを意味することができる。例えば、前記現在ブロックのサイズが64x64であり、サブブロックのサイズが16x16である場合には、各サブブロックである予測ブロックに対するイントラ予測モードの導出及び/又はイントラ予測を行うことができる。このとき、前記一つ以上のサブブロックが8x8又は4x4に追加分割される場合、各8x8又は4x4ブロックは変換ブロックを意味することができ、前記16x16ブロックのイントラ予測モードを用いて追加分割されたブロックに対するイントラ予測を行うことができる。
前記方向性イントラ予測を行うにあたり、現在ブロックは、N個の方向性モードのうちの少なくとも一つのモードを用いて符号化/復号できる。このとき、Nは、33、65などを含む正の整数であり得る。
図22は方向性イントラ予測モード及びサンプル単位方向性イントラ予測モードを説明するための図である。
図22に示された例において、Nは33であり、それぞれのイントラ予測モード(predModeIntra)に対して各方向性モードと垂直方向の間の角度(intraPredAngle)の一例を示す。
前記方向性イントラ予測において、現在ブロックは、正の整数M個のサンプル単位方向性モードのうちの少なくとも一つで符号化/復号できる。前記サンプル単位方向性モードは、現在ブロック内の一つ以上の予測対象サンプル単位で前記一つ以上の方向性イントラ予測モードを用いて予測するモードを意味することができる。
前記サンプル単位方向性モードの個数を決定するためのパラメータが利用できる。パラメータとしては、例えば、曲率パラメータ(cuvN)及び/又は重みパラメータセット(cWN[i]、i=0、...、NS-1)のうちの少なくとも一つが利用できる。
例えば、図22におけるモード35は、前記二つのパラメータの組み合わせで右上側から左下側への様々なサンプル単位方向性予測ブロックを生成することができる。例えば、図22におけるモード36は、前記二つのパラメータの組み合わせで左上側から右下側への様々なサンプル単位方向性予測ブロックを生成することができる。前記曲率パラメータ及び重みパラメータセットは、一実施形態に過ぎず、サンプル単位方向性予測ブロックを生成するために様々なパラメータが利用できる。例えば、互いに異なるブロックサイズに対して、各サンプル位置でサンプル単位方向性予測のための参照サンプルの位置を見つけるための角度が明示されたルックアップテーブル(Look-up-table)を符号化器/復号器で同様に使用することもできる。この場合、ルックアップテーブルを参照するためのインデックス情報が符号化/復号できる。
前記方向性イントラ予測を行うにあたり、方向性予測モードに応じて、前記構成した参照サンプルを再構成することができる。例えば、前記方向性予測モードが、左側及び上側に存在する参照サンプルを全て使用するモードである場合には、左側又は上側の参照サンプルに対して1次元配列を構成することができる。
図23はPrefから参照サンプルの1次元配列(1-D reference sample array、p1,ref)を生成する一実施形態を説明するための図である。
例えば、図23に示すように、左側に存在する参照サンプルの少なくとも一つを用いて、上側の参照サンプルに対する1次元配列を構成することができる。このとき、左側参照サンプルのうち、上側の参照サンプルを構成するために使用されるサンプルは、前記方向性モードに応じて異なり得る。前記左側参照サンプルを移動して上側の参照サンプルを構成することができ、又は一つ以上の左側参照サンプルの加重和を用いて上側の参照サンプルを構成することができる。
前記方向性イントラ予測を行うにあたり、実数単位の補間予測(interpolated prediction)を行うことができる。例えば、各方向性予測モードに該当する角度パラメータ(intraPredAngle)に基づいて、現在ブロック内のサンプル位置に応じて予測サンプル補間のためのオフセット(offset、iIdx)及び/又は重み(weight、iFact)の値を次のとおり決定することもできる。
例えば、1/32pel単位の補間を仮定する場合、垂直の方向を有する方向性モードに対して、オフセットと重みは下記数式11のように決定できる。
前記数式11のiFact値に応じて、予測サンプル値は異なるように決定できる。例えば、iFactが0でない場合は、参照サンプルP
1,refで、予測の位置は、整数単位(full sample location)ではなく、実数単位である。したがって、実数位置に隣接する複数の参照サンプル(例えば、左右に隣接する二つの参照サンプル)を用いて下記数式12のように対象サンプル(x,y)位置における予測サンプル値を生成することができる。この時、前記隣接する複数の参照サンプルは、左右に隣接する4つ又は6つであり得る。
例えば、iFactが0である場合、下記数式13を用いて予測サンプル値を生成することができる。又は、参照サンプルP
1,ref及び左右に存在する参照サンプルを用いて3-tap[1/4:2/4:1/4]フィルタを適用することができる。
方向性予測モードにおける水平及び/又は垂直モードの少なくとも一つの場合は、参照サンプルに対してフィルタリングを行わなくてもよい。また、参照サンプルに対する補間予測を必要としないことがある。また、上側又は左側の参照サンプルのみで予測が可能であるため、前記参照サンプルに対する1次元配列を構成する処理を必要としないことがある。
図24は予測ブロック内のサンプル位置に応じて異なる角度の参照サンプルを用いる実施形態を説明するための図である。
図24に示されているように、前記方向性イントラ予測を行うにあたり、方向性モードを適用する単位を異ならせることができる。すなわち、前記対象ブロック内のサンプル、サンプルグループ及びラインの少なくとも一つの単位で一つ以上の方向性モードを用いて予測を行うことができる。
例えば、現在ブロック単位で方向性モードを用いて予測を行うことができる。又は、現在ブロック内の予測対象サンプルライン単位で方向性モードを用いて予測を行うことができる。すなわち、現在ブロック内の横又は縦のうちの少なくとも一つのラインごとに互いに異なる方向性モードを用いて予測を行うことができる。又は、現在ブロック内の所定の予測対象サンプルグループ単位で方向性モードを用いて予測を行うことができる。つまり、現在ブロック内のN個のサンプルを含むグループごとに互いに異なる方向性モードを用いて予測を行うことができる。例えば、現在ブロック内の予測対象サンプル単位で方向性モードを用いて予測を行うことができる。すなわち、現在ブロック内の予測対象サンプルごとに互いに異なる方向性モードを用いて予測を行うことができる。
図24の(a)は対象ブロック内のサンプル単位で互いに異なる方向性モードを用いる場合を例示する。図24の(a)に示された例では、サンプル単位でそれぞれの方向性モードの角度に位置した参照サンプルを用いて予測値を生成することができる。
図24の(b)は対象ブロック内の水平ライン(horizontalline)単位で互いに異なる方向性モードを用いる場合を例示する。図24の(b)に示された例では、水平ライン単位でそれぞれの方向性モードの角度に位置した参照サンプルを用いて予測値を生成することができる。
図24の(c)は対象ブロック内の垂直ライン(vertical line)単位で互いに異なる方向性モードを用いる場合を例示する。図24の(c)に示された例では、垂直ライン単位でそれぞれの方向性モードの角度に位置した参照サンプルを用いて予測値を生成することができる。
図24の(d)は、対象ブロック内の対角ライン(diagonal line)方向のサンプルグループ単位で互いに異なる方向性モードを用いる場合を例示する。図24の(d)に示された例では、対角ライン方向のサンプルグループ単位でそれぞれの方向性モードの角度に位置した参照サンプルを用いて予測値を生成することができる。
図24の(e)は、対象ブロック内の直角ライン(L-shape line)単位で互いに異なる方向性モードを用いる場合を例示する。図24の(e)に示された例では、直角ライン単位でそれぞれの方向性モードの角度に位置した参照サンプルを用いて予測値を生成することができる。
図24に示された例の他に、一つ以上のサンプルをグループ化する方法は多様に存在することができる。例えば、横及び/又は縦をそれぞれ任意の回数に分割して生成されたブロック単位で互いに異なる方向性モードを適用することができる。
前記サンプル単位方向性予測を行う場合、各サンプル、サンプルグループ及びラインのうちの少なくとも一つの単位ごとに使用可能なN個(Nは正の整数)の方向性予測モード又は角度をLUTなどのテーブルにして保存して使用することができる。
前記サンプル単位方向性予測を行う場合、対象ブロックに対する差分ブロック(residual block)の変換係数(transform coefficient)をスキャニングするにあたり、サンプル単位方向性予測の種類、ブロックのサイズ及び/又は形状の少なくとも一つに応じてスキャニング方法を異ならせて適用することができる。例えば、前記サンプル単位方向性予測の種類に応じて、アップライトスキャン、垂直スキャン、水平スキャン及びジグザグスキャンのうちの少なくとも一つを用いてスキャニング(scanning)を行うことができる。
以下、色差成分に対するイントラ予測について説明する。例えば、色差成分に対するイントラ予測のために色成分(color component)間イントラ予測を行うことができる。又は、現在ブロックの再構築された輝度成分を用いて色差成分に対するイントラ予測を行うことができる。又は、現在ブロックの再構築された一つの色差成分Cbを用いて他の色差成分Crに対するイントラ予測を行うことができる。
前記色成分間イントラ予測を行うにあたり、前記色成分は、輝度(luma)信号、色差(chroma)信号、Red、Green、Blue、Y、Cb及びCrのうちの少なくとも一つを意味することができる。第1色成分を予測するにあたり、第2色成分、第3色成分及び第4色成分の少なくとも一つを用いることができる。このとき、予測に用いられる色成分の信号は、原本信号、再構築された信号、残差/レジデュアル信号及び予測信号のうちの少なくとも一つであり得る。
例えば、第2色成分対象ブロックを予測するにあたり、前記対象ブロックに対応する第1色成分対応ブロックのサンプル及び/又は対応ブロックの近傍ブロックのサンプルのうちの少なくとも一つのサンプルを用いてイントラ予測を行うことができる。
例えば、色差成分ブロックCb又はCrを予測するにあたり、前記色差成分ブロックに対応する、再構築された輝度成分ブロックYを用いてイントラ予測を行うことができる。
例えば、第2色差成分ブロックを予測するにあたり、前記ブロックに対応する第1色差成分ブロックを用いることができる。例えば、Cr成分ブロックを予測するにあたり、Cb成分ブロックを用いることができる。
例えば、第4色成分ブロックを予測するにあたり、前記ブロックに対応する第1色成分ブロック、第2色成分ブロック及び第3色成分ブロックのうちの少なくとも一つの組み合わせを用いることができる。
現在対象ブロックのサイズ及び形状の少なくとも一つに基づいて、前記色成分間イントラ予測を行うか否かを決定することができる。
例えば、対象ブロックのサイズが所定のサイズであるか、所定のサイズ以上であるか、所定のサイズ範囲に該当する場合に、前記色成分間イントラ予測を行うことができる。前記所定のサイズは、例えばCTUサイズであり得る。
例えば、対象ブロックの形状が所定の形状に該当する場合に、前記色成分間イントラ予測を行うことができる。例えば、対象ブロックの形状が正方形である場合に、前記色成分間イントラ予測を行うことができる。又は、対象ブロックの形状が長方形である場合に、前記色成分間イントラ予測を行わなくてもよい。
前記色成分間イントラ予測を行うか否かは、予測対象ブロックに対応する対応ブロック及び対応ブロックの近傍ブロックのうちの少なくとも一つの符号化パラメータに基づいて決定できる。
例えば、前記対応ブロックの符号化モードがインターモードである場合には、前記色成分間イントラ予測を行わなくてもよい。又は、CIP(Constrained intra prediction)環境下で第2色成分対象ブロックを予測するにあたり、対応する第1色成分ブロックがインターモードで符号化された場合には、前記色成分間イントラ予測を行わなくてもよい。
例えば、前記対応ブロックの符号化モードがインターモードである場合に、前記色成分間イントラ予測を行うことができる。この際、前記色成分間イントラ予測を行うか否かを示すフラグをシグナリングすることができる。前記フラグに応じて予測対象ブロックに対してインター予測又は色成分間のイントラ予測を行うことができる。
例えば、前記対応ブロックのイントラ予測モードが所定のモードに該当する場合に、前記色成分間イントラ予測を行うことができる。
例えば、前記対応ブロック及び近傍ブロックのうちの少なくとも一つのCBF情報に基づいて前記色成分間イントラ予測を行うか否かを決定することができる。
前記第1色成分を用いて第2色成分を予測するにあたり、第1又は第2色成分ブロックのサイズを同一にするために、前記第1色成分ブロックのサイズを再構成することができる。例えば、画像の色空間がYCbCrであり、色成分間の比率が4:4:4、4:2:2、4:2:0のいずれか一つである場合、色成分間ブロックのサイズが異なり得る。これを同一にするために、ブロックを再構成することができる。この時、前記再構成するブロックは、第1色成分対応ブロックのサンプル及び近傍ブロックの参照サンプルのうちの少なくとも一つを含むことができる。
例えば、前記第1色成分ブロックのサイズと第2色成分ブロックのサイズとが同一である場合には、再構成処理を行わなくてもよい。
例えば、前記第1色成分ブロックのサイズが第2色成分ブロックのサイズよりも大きい場合には、前記第1色成分ブロックをダウンサンプリング(down-sampling)して第2色成分ブロックのサイズと同一に再構成することができる。
例えば、前記第1色成分ブロックのサイズが第2色成分ブロックのサイズよりも小さい場合には、前記第1色成分ブロックをアップサンプリング(up-sampling)して第2色成分ブロックのサイズと同一に再構成することができる。
前記再構成処理を行うにあたり、一つ以上のサンプルに対してフィルタを適用することができる。例えば、前記第1色成分対応ブロック、対応ブロックの近傍ブロック、第2色成分対象ブロック及び対象ブロックの近傍ブロックのうちの少なくとも一つに含まれる一つ以上のサンプルに対してフィルタを適用することができる。
前記参照サンプル構成ステップにおいて、複数ラインの参照サンプル中の所定のラインに該当するインジケータをシグナリングすることができ、前記再構成処理では、前記シグナリングされたインジケータに該当する所定のラインを用いて再構成を行うことができる。
前記再構成処理を行うにあたり、第2色成分予測対象ブロックの境界又は対応する第1色成分対応ブロックの境界のうちの少なくとも一つが、ピクチャ、スライス、タイル、CTU及びCUの少なくとも一つの境界に該当する場合、再構成される参照サンプルを異なるように選択して用いることができる。このとき、上側の参照サンプルラインの個数と左側の参照サンプルラインの個数とが互いに異なり得る。
例えば、前記第1色成分対応ブロックの上側境界が上記の境界のいずれかに該当する場合、上側の参照サンプルは用いず、左側の参照サンプルだけを用いて再構成することができる。又は、上側の参照サンプルは一つのラインだけを用いることができる。
例えば、前記第1色成分対応ブロックの左側境界が上記の境界のうちのいずれかに該当する場合、左側の参照サンプルは用いず、上側の参照サンプルだけを用いて再構成することができる。
図25は上側及び/又は左側の参照サンプルラインを用いて対応ブロックを再構成する実施形態を説明するための図である。
例えば、前記第1色成分対応ブロックの上側又は左側の参照サンプルラインを前記境界か否かに関係なく、N個又はM個のラインを用いて再構成することができる。例えば、図25の(a)に示すように、上側及び左側の参照サンプルラインをそれぞれ4個ずつ用いて再構成を行うことができる。
例えば、前記第1色成分対応ブロックの上側又は左側の境界が上記の境界のいずれかに該当する場合、用いられる上側参照サンプルラインの個数と左側参照サンプルラインの個数とは互いに異なり得る。例えば、図25の(b)に示すように、前記第1色成分対応ブロックの上側参照サンプルは2つのラインを用い、左側参照サンプルは4つのラインを用いて再構成を行うことができる。又は、図25の(c)に示すように、第1色成分対応ブロックの上側参照サンプルは一つのラインを用い、左側参照サンプルは2つのラインを用いて再構成を行うことができる。
前記再構成処理を行うにあたり、第1色成分の参照サンプルの横幅及び縦幅が第1色成分対応ブロックの横幅及び縦幅から外れないことが可能である。例えば、図25の(d)に示すように、第1色成分対応ブロックの横幅及び縦幅から外れない一つ以上の参照サンプルを用いて再構成を行うことができる。
前記再構成処理を行うにあたり、第1色成分対応ブロック及び近傍ブロック、第2色成分対象ブロック及び近傍ブロックのうちの少なくとも一つのブロックのサイズ、形状、符号化パラメータのうちの少なくとも一つに基づいて、第1色成分の参照サンプルの再構成を異ならせることができる。
例えば、第1色成分対応ブロック又は近傍ブロックのうちの符号化モードがインター符号化モードであるブロックのサンプルは用いず、イントラ符号化モードであるブロックのサンプルを用いて参照サンプルを再構成することができる。
例えば、第1色成分対応ブロックのイントラ予測モードに応じて、第1色成分の参照サンプルの再構成を異ならせて行うことができる。
例えば、第1色成分対応ブロック又は近傍ブロックのうちの少なくとも一つの量子化パラメータに基づいて、第1色成分の参照サンプルの再構成を異ならせて行うことができる。
例えば、第2色成分対象ブロックの形状が長方形である場合、第1色成分対応ブロックの正方形近傍の参照サンプルを用いて再構成を行うことができる。
前記再構成した第1色成分対応ブロックの参照サンプルと第2色成分予測対象ブロックの参照サンプルのうちの少なくとも一つを用いて、一つ以上の予測パラメータを導出することができる。以下、第1色成分及び第1色成分ブロックは、それぞれ再構成された第1色成分、及び再構成された第1色成分ブロックを意味することができる。
図26は第2色成分予測対象ブロックが4x4である場合、再構成された第1色成分対応ブロックの実施形態を説明するための図である。このとき、参照サンプルのラインはN個であり、Nは0又は1以上の整数であり得る。
図26の(a)に示すように、再構成された第1色成分ブロック又は第2色成分ブロックの上側と左側の参照サンプルを用いて予測パラメータを導出することができる。例えば、第1色成分対応ブロックのイントラ予測モードに基づいて再構成された前記第1色成分の参照サンプルを適応的に用いて予測パラメータを導出することができる。このとき、第2色成分の参照サンプルも、前記第1色成分対応ブロックのイントラ予測モードに基づいて適応的に用いることができる。
例えば、前記イントラ予測モードがDCモード又はPlanarモードのように非方向性モードである場合、図26の(a)に示すように、第1色成分対応ブロックの上側と左側参照サンプルを用いることができる。
例えば、前記イントラ予測モードが、上側の参照サンプルと左側の参照サンプルを全て使用する方向性モードである場合、図26の(a)に示すように、第1色成分対応ブロックの上側参照サンプルと左側参照サンプルを用いることができる。
例えば、前記イントラ予測モードが、上側の参照サンプルを使用する方向性モードである場合、図26の(b)又は(c)に示すように、第1色成分対応ブロックの上側参照サンプルを用いることができる。
例えば、前記イントラ予測モードが、左側の参照サンプルを使用する方向性モードである場合、図26の(d)又は(e)に示すように、第1色成分対応ブロックの左側参照サンプルを用いることができる。
例えば、第1色成分ブロック又は第2色成分ブロックのサイズ又は形状の少なくとも一つに応じて、前記第1色成分又は第2色成分の参照サンプルを適応的に用いて予測パラメータを導出することができる。
例えば、第2色成分対象ブロックのサイズが所定のサイズに該当する場合、前記第1又は第2色成分ブロックの参照サンプルを適応的に用いることができる。例えば、前記第2色成分対象ブロックのサイズが64x64である場合には、前記第1又は第2色成分ブロックの上側又は左側の参照サンプルの中でも、32個、16個及び8個の少なくとも一つの個数に該当する参照サンプルを用いることができる。
例えば、第2色成分対象ブロックの形状が長方形である場合、横及び縦のうち長い方に隣接する参照サンプルを用いることができる。例えば、前記対象ブロックの形状が32x8である場合、前記第1又は第2色成分ブロックの上側参照サンプルを用いることができる。
例えば、第2色成分対象ブロックの形状が長方形である場合には、正方形ブロックの参照サンプルを用いることができる。例えば、前記対象ブロックの形状が32x8である場合、32x32ブロックの近傍に位置した参照サンプルを用いることができる。
前記再構成された第1色成分ブロックの参照サンプル及び第2色成分ブロックの参照サンプルを用いて予測パラメータを導出し、色成分間の予測を行うことができる。例えば、前記色成分の参照サンプル間の関連性、変化量、平均値、分布などの少なくとも一つに基づいて予測パラメータを導出することができ、一例として、LS(Least Square)、LMS(Least Mean Square)などの方法のうちの少なくとも一つを用いて導出することができる。
例えば、LMS方法を用いて予測パラメータを導出することができ、このとき、予測パラメータはa、b、又はアルファ、ベータの少なくとも一つであり得る。例えば、下記数式14を用いて、第1色成分参照サンプルと第2色成分参照サンプル間のエラーを最小化する予測パラメータを導出することができる。数式14において、p2nは第2色成分の参照サンプルを示し、p1’nは再構成した第1色成分の参照サンプルを示すことができる。また、Nは用いる参照サンプルの縦又は横の個数を示し、a及びbは予測パラメータを示すことができる。
このとき、下記数式15を用いて、参照サンプル間の関連性を計算することができる。数式15において、BitDepthはビット深度を示すことができる。
図27は第1色成分のサンプル及び第2色成分のサンプルを例示的に示す図である。図27において、p2は第2色成分のサンプルを示し、p1’は再構成した第1色成分のサンプルを示すことができる。
例えば、参照サンプルが存在しない領域がある場合、存在する参照サンプルのみを用いて予測パラメータを導出することができる。
又は、前記参照サンプルから予測パラメータを導出せず、基本予測パラメータ(default parameter)を用いることができる。このとき、基本予測パラメータは予め定義でき、例えば、aは1であり、bは0であり得る。又は、前記導出された予測パラメータは符号化/復号できる。
例えば、Y、Cb、Cr間の色成分間予測を行うにあたり、CbとCrを予測するための予測パラメータをYからそれぞれ導出することもできる。又は、Crを予測するための予測パラメータをCbから導出することができる。又は、Crを予測するための予測パラメータを導出せず、Cbを予測するためにYから導出した予測パラメータを用いることができる。
前記予測パラメータは一つ以上導出できる。例えば、前記予測パラメータを導出するために用いる参照サンプルの値が特定の条件を満足する参照サンプルから一つの予測パラメータを導出することができる。また、前記特定の条件を満足しない参照サンプルからもう一つの予測パラメータを導出することができる。
前記予測パラメータは、予測対象ブロックの近傍に存在する一つ以上のブロックの予測パラメータから導出することができる。例えば、前記近傍ブロックが色成分間の予測で符号化された場合、前記色成分間の予測に用いられた予測パラメータを前記予測対象ブロックの予測パラメータとして用いることができる。このとき、近傍の予測パラメータを用いたか否か及び近傍ブロックの位置情報、予測パラメータインデックスのうちの少なくとも一つはシグナリングできる。
前記導出された予測パラメータのうちの少なくとも一つを用いて色成分間イントラ予測を行うことができる。例えば、下記数式16を用いて、再構成された第1色成分の再構築された信号に、前記導出された予測パラメータを適用して、第2色成分対象ブロックに対する予測を行うことができる。
又は、下記数式17を用いて、再構成された第1色成分の残差信号に、前記導出した予測パラメータを適用して、第2色成分対象ブロックに対する予測を行うことができる。
前記数式17において、aは前記導出された予測パラメータを示すことができ、p1’_residualは第1色成分の残差信号を示すことができる。また、p2_predは、第2色成分対象ブロックを非方向性イントラ予測モード又は方向性イントラ予測モードの少なくとも一つを用いて予測した信号を示すことができる。
前記導出された予測パラメータが一つ以上である場合には、前記第1色成分の再構築されたサンプルに前記一つ以上の予測パラメータを適用することができる。例えば、前記第1色成分の再構築されたサンプルが特定の条件を満足する場合には、前記特定の条件を満足する参照サンプルから導出された予測パラメータを適用して、色成分間イントラ予測を行うことができる。又は、前記第1色成分の再構築されたサンプルが前記特定の条件を満足しない場合、前記特定の条件を満足しない参照サンプルから導出された予測パラメータを適用して、色成分間イントラ予測を行うことができる。
輝度及び色差信号それぞれに対して、前記イントラ符号化/復号処理を行うことができる。例えば、前記イントラ符号化/復号処理で、イントラ予測モードの導出、ブロックの分割、参照サンプルの構成、イントラ予測実行のうちの少なくとも一つの方法を、輝度信号及び色差信号に対して異ならせて適用することができる。
輝度及び色差信号に対する前記イントラ符号化/復号処理を同様に行うことができる。例えば、輝度信号に対して適用した前記イントラ符号化/復号処理で、イントラ予測モードの導出、ブロックの分割、参照サンプルの構成、イントラ予測実行のうちの少なくとも一つを色差信号に同様に適用することができる。
これらの方法は、符号化器及び復号器で同様の方法で行うことができる。例えば、前記イントラ符号化/復号処理でイントラ予測モードの導出、ブロックの分割、参照サンプルの設定、及びイントラ予測実行の少なくとも一つの方法を符号化器及び復号器で同様に適用することができる。また、これらの方法を適用する順序は、符号化器と復号器で互いに異なり得る。例えば、前記現在ブロックに対するイントラ符号化/復号を行うにあたり、符号化器では、参照サンプルを構成した後、一つ以上のイントラ予測を行って決定されたイントラ予測モードを符号化することができる。
上述した本発明の実施形態は、符号化ブロック、予測ブロック、ブロック及びユニットのうちの少なくとも一つの大きさに応じて適用できる。ここでのサイズは、これらの実施形態が適用されるために、最小サイズ及び/又は最大サイズと定義されることもあり、前記実施形態が適用される固定サイズと定義されることもある。また、これらの実施形態は、第1の大きさでは第1実施形態が適用でき、第2の大きさでは第2実施形態が適用できる。すなわち、これらの実施形態は、大きさに応じて複合的に適用できる。また、上述した本発明の実施形態は、最小サイズ以上及び最大サイズ以下の場合にのみ適用できる。すなわち、これらの実施形態を、ブロックのサイズが一定の範囲内に含まれる場合にのみ適用可能である。
例えば、符号化/復号対象ブロックのサイズが8x8以上である場合にのみ、前記実施形態が適用できる。例えば、符号化/復号対象ブロックのサイズが16x16以上である場合にのみ、前記実施形態が適用できる。例えば、符号化/復号対象ブロックのサイズが32x32以上である場合にのみ、前記実施形態が適用できる。例えば、符号化/復号対象ブロックのサイズが64x64以上である場合にのみ、前記実施形態が適用できる。例えば、符号化/復号対象ブロックのサイズが128x128以上である場合にのみ、前記実施形態が適用できる。例えば、符号化/復号対象ブロックのサイズが4x4である場合にのみ、前記実施形態が適用できる。例えば、符号化/復号対象ブロックのサイズが8x8以下である場合にのみ、前記実施形態が適用できる。例えば、符号化/復号対象ブロックのサイズが16x16以下である場合にのみ、前記実施形態が適用できる。例えば、符号化/復号対象ブロックのサイズが8x8以上、16x16以下である場合にのみ、前記実施形態が適用できる。例えば、符号化/復号対象ブロックのサイズが16x16以上、64x64以下である場合にのみ、前記実施形態が適用できる。
上述した本発明の実施形態は、時間的階層(temporal layer)に応じて適用できる。これらの実施形態が適用可能な時間的階層を識別するために、別途の識別子(identifier)がシグナリングされ、該当識別子によって特定された時間的階層に対してこれらの実施形態が適用できる。ここでの識別子は、前記実施形態に適用可能な最小階層及び/又は最大階層と定義されることもあり、前記実施形態が適用される特定の階層を指し示すものと定義されることもある。
例えば、現在画像の時間的階層が最下位階層である場合にのみ、前記実施形態が適用できる。例えば、現在画像の時間的階層識別子が0である場合にのみ、前記実施形態が適用できる。例えば、現在画像の時間的階層識別子が1以上である場合にのみ、前記実施形態が適用できる。例えば、現在画像の時間的階層が最上位階層である場合にのみ、前記実施形態が適用できる。
上述した本発明の実施形態のように、参照画像リストの生成(reference picture list construction)及び参照画像リストの修正(reference picture list modification)処理に使用される参照画像セット(reference picture set)は、L0、L1、L2及びL3のうちの少なくとも一つの参照画像リストを使用することができる。
本発明の実施形態によってデブロッキングフィルタ(deblocking filter)が境界強度(boundary strength)を算出するとき、符号化/復号対象ブロックの動きベクトルを一つ以上、最大N個まで使用することができる。ここで、Nは、1以上の正の整数であって、2、3、4などを示す。
動きベクトル予測時の動きベクトルが16-画素(16-pel)単位、8-画素(8-pel)単位、4-画素(4-pel)単位、整数-画素(integer-pel)単位、1/2-画素(1/2-pel)単位、1/4-画素(1/4-pel)単位、1/8-画素(1/8-pel)単位、1/16-画素(1/16-pel)単位、1/32-画素(1/32-pel)単位及び1/64-画素(1/64-pel)単位のうちの少なくとも一つを持つときも、上述した本発明の実施形態が適用できる。また、動きベクトル予測時の動きベクトルは、前記画素単位で選択的に使用できる。
上述した本発明の実施形態が適用されるスライスタイプ(slice type)が定義され、当該スライスタイプに応じて本発明の実施形態が適用できる。
例えば、スライスタイプがT(Tri-predictive)-sliceである場合、少なくとも3つの動きベクトルを用いて予測ブロックを生成し、少なくとも3つの予測ブロックの加重和を計算して符号化/復号対象ブロックの最終予測ブロックとして使用することができる。例えば、スライスタイプがQ(Quad-predictive)-sliceである場合、少なくとも4つの動きベクトルを用いて予測ブロックを生成し、少なくとも4つの予測ブロックの加重和を計算して符号化/復号対象ブロックの最終予測ブロックとして使用することができる。
上述した本発明の実施形態は、動きベクトル予測を用いたインター予測及び動き補償方法に適用できるのみならず、スキップモード、マージモードなどを用いたインター予測及び動き補償方法に適用できる。
上述した本発明の実施形態が適用されるブロックの形状は、正方形(square)或いは非正方形(non-square)の形状を有することができる。
上述した実施形態において、これらの方法は、一連のステップ又はユニットでフローチャートに基づいて説明されているが、本発明は、これらのステップの順序に限定されるものではなく、あるステップは、上述したのと異なるステップと異なる順序で又は同時に発生することができる。また、当該技術分野における通常の知識を有する者であれば、フローチャートに示されたステップが排他的ではなく、他のステップが含まれるか、フローチャートの一つ又はそれ以上のステップが本発明の範囲に影響することなく削除できることを理解することができるだろう。
上述した実施形態は、様々な態様の例示を含む。様々な態様を示すためのすべての可能な組み合わせを記述することはできないが、当該技術分野における通常の知識を有する者は、他の組み合わせが可能であることを認識することができるだろう。よって、本発明は、以下の特許請求の範囲内に属するすべての様々な交替、修正及び変更を含むといえる。
以上説明した本発明に係る実施形態は、様々なコンピュータ構成要素を介して実行できるプログラム命令の形で実現され、コンピュータ可読記録媒体に記録できる。前記コンピュータ可読記録媒体は、プログラム命令、データファイル、データ構造などを単独で又は組み合わせて含むことができる。前記コンピュータ可読記録媒体に記録されるプログラム命令は、本発明のために特別に設計及び構成されたもの、又はコンピュータソフトウェア分野の当業者に公知されて使用可能なものである。コンピュータ可読記録媒体の例には、ハードディスク、フロッピーディスク(登録商標)及び磁気テープなどの磁気媒体、CD-ROM、DVDなどの光記録媒体、フロプティカルディスク(floptical disk)などの磁気-光媒体(magneto-optical media)、及びROM、RAM、フラッシュメモリなどのプログラム命令を保存し実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作られる機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行できる高級言語コードも含まれる。前記ハードウェア装置は、本発明に係る処理を行うために一つ以上のソフトウェアモジュールとして作動するように構成でき、その逆も同様である。
以上で、本発明が、具体的な構成要素などの特定の事項、限定された実施形態及び図面によって説明されたが、これは本発明のより全般的な理解を助けるために提供されたものに過ぎず、本発明は前記実施形態に限定されるものではない。本発明の属する技術分野における通常の知識を有する者であれば、このような記載から多様な修正及び変形を図ることができる。
よって、本発明の思想は、上述した実施形態に限定されて定められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等に又は等価的に変形したすべてのものは本発明の思想の範疇に属するというべきである。