本発明は、様々な変更を加えることができ、様々な実施形態を有することができるので、特定の実施形態を図面に例示し、詳細な説明に詳細に説明する。ところが、これは、本発明を特定の実施形態について限定するものではなく、本発明の思想及び技術範囲に含まれるすべての変更、均等物ないし代替物を含むものと理解されるべきである。図面において類似する参照符号は、様々な側面にわたって同一又は類似の機能を指し示す。図面における要素の形状及び大きさなどは、より明確な説明のために誇張することがある。後述する例示的な実施形態についての詳細な説明は、特定の実施形態を例示として示す添付図面を参照する。これらの実施形態は、当業者が実施形態を実施し得る程度に十分に詳細に説明される。様々な実施形態は、互いに異なるが、相互に排他的である必要はないことが理解されるべきである。例えば、ここに記載されている特定の形状、構造及び特性は、一実施形態に関連して本発明の精神及び範囲を逸脱することなく、様々な実施形態に実現できる。また、それぞれの開示された実施形態内の個別構成要素の位置又は配置は、実施形態の精神及び範囲を逸脱することなく変更可能であることが理解されるべきである。したがって、後述する詳細な説明は、限定的な意味として取るものではなく、例示的な実施形態の範囲は、適切に説明されるならば、それらの請求項が主張するのと均等なすべての範囲及び添付の請求項によってのみ限定される。
本発明において、用語「第1」、「第2」などは多様な構成要素の説明に使用できるが、これらの構成要素は上記の用語によって限定されてはならない。これらの用語は、一つの構成要素を他の構成要素から区別する目的にのみ使われる。例えば、本発明の権利範囲を外れない限り、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素も第1構成要素と命名することができる。用語「及び/又は」は、複数の関連した記載項目の組み合わせ又は複数の関連した記載項目のいずれかを含む。
本発明のある構成要素が他の構成要素に「連結されて」いる或いは「接続されて」いるとした場合には、その他の構成要素に直接連結されている或いは接続されていることもあるが、それらの間に別の構成要素が介在することもあると理解されるべきである。これに対し、ある構成要素が他の構成要素に「直接連結されて」いる或いは「直接接続されて」いるとした場合には、それらの間に別の構成要素が介在しないと理解されるべきである。
本発明の実施形態に示される構成部は、互いに異なる特徴的な機能を示すために独立に図示されるもので、各構成部が分離されたハードウェア又は一つのソフトウェア構成単位からなることを意味しない。すなわち、各構成部は、説明の便宜上、それぞれの構成部に羅列して含むもので、各構成部のうちの少なくとも2つの構成部が合わせられて一つの構成部をなすか、或いは一つの各構成部が複数の構成部に分けられて機能を行うことができ、このような各構成部の統合された実施形態及び分離された実施形態も、本発明の本質から外れない限り、本発明の権利範囲に含まれる。
本発明で使用した用語は、単に特定の実施形態を説明するために使われたものであり、本発明を限定するものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本発明において、「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はこれらの組み合わせが存在することを指定するものであり、一つ又はそれ以上の他の特徴、数字、ステップ、動作、構成要素、部品又はこれらの組み合わせの存在又は付加可能性を予め排除しないと理解されるべきである。つまり、本発明において、特定の構成を「含む」と記述する内容は、該当構成以外の構成を排除するものではなく、追加の構成が本発明の実施又は本発明の技術的思想の範囲に含まれ得ることを意味する。
本発明の一部の構成要素は、本発明において本質的な機能を行う不可欠の構成要素ではなく、単に性能を向上させるための選択的構成要素であり得る。本発明は、単に性能向上のために使用される構成要素を除く、本発明の本質の実現に必要不可欠な構成部のみを含んで実現でき、単に性能向上のために使用される選択的構成要素を除く必須構成要素のみを含む構造も本発明の権利範囲に含まれる。
以下、図面を参照して、本発明の実施形態について具体的に説明する。本明細書の実施形態を説明するにあたり、関連した公知の構成又は機能についての具体的な説明が本明細書の要旨を曖昧にするおそれがあると判断された場合、その詳細な説明は省略し、図面上の同一の構成要素については同一の参照符号を使用し、同一の構成要素についての重複説明は省略する。
以下において、画像は、動画像(video)を構成する1つのピクチャ(picture)を意味することもあり、動画像自体を意味することもある。例えば、「画像の符号化及び/又は復号化」は、「動画像の符号化及び/又は復号化」を意味することもあり、「動画像を構成する画像のうちのいずれかの画像の符号化及び/又は復号化」を意味することもある。
以下において、用語「動画像」及び「ビデオ」は、同じ意味で使用されることもあり、入れ替わって使用されることもある。
以下において、対象画像は、符号化の対象である符号化対象画像、及び/又は復号化の対象である復号化対象画像であり得る。また、対象画像は、符号化装置に入力された入力画像であってもよく、復号化装置に入力された入力画像であってもよい。ここで、対象画像は、現在の画像と同じ意味を持つことができる。
以下において、用語「画像」、「ピクチャ」、「フレーム(frame)」及び「スクリーン(screen)」は、同じ意味で使用されることもあり、入れ替わって使用されることもある。
以下において、対象ブロックは、符号化の対象である符号化対象ブロック、及び/又は復号化の対象である復号化対象ブロックであり得る。また、対象ブロックは、現在符号化及び/又は復号化の対象である現在ブロックであってもよい。例えば、用語「対象ブロック」及び「現在ブロック」は、同じ意味で使用されることもあり、入れ替わって使用されることもある。
以下において、用語「ブロック」及び「ユニット」は、同じ意味で使用されることもあり、入れ替わって使用されることもある。又は、「ブロック」は特定のユニットを示すことができる。
以下において、用語「領域(region)」及び「セグメント(segment)」は、入れ替わって使用されることもある。
以下において、特定の信号は、特定のブロックを示す信号であり得る。例えば、原(original)信号は、対象ブロックを示す信号であり得る。予測(prediction)信号は、予測ブロックを示す信号であり得る。残余(residual)信号は、残余ブロック(residual block)を示す信号であり得る。
実施形態において、特定の情報、データ、フラグ(flag)、インデックス(index)及び要素(element)、属性(attribute)などのそれぞれは、値を持つことができる。情報、データ、フラグ、インデックス及び要素、属性などの値「0」は、論理偽(logical false)又は第1の予め定義された(predefined)値を示すことができる。いわば、値「0」、偽、論理偽及び第1の予め定義された値は、入れ替わって使用されることもある。情報、データ、フラグ、インデックス及び要素、属性などの値「1」は、論理真(logical true)又は第2の予め定義された値を示すことができる。いわば、値「1」、真、論理真及び第2の予め定義された値は、入れ替わって使用されることもある。
行、列、又はインデックス(index)を示すためにi又はjなどの変数が使用されるとき、iの値は0以上の整数であってもよく、1以上の整数であってもよい。いわば、実施形態において、行、列、及びインデックスは0からカウントされることもあり、1からカウントされることもある。
用語説明
符号化器(Encoder):符号化(Encoding)を行う装置を意味する。すなわち、符号化装置を意味することができる。
復号化器(Decoder):復号化(Decodng)を行う装置を意味する。すなわち、復号化装置を意味することができる。
ブロック(Block):サンプル(Sample)のM×N配列である。ここで、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)、残予ユニット(Residual Unit)、残予ブロック(Residual Block)、変換ユニット(Transform Unit)、変換ブロック(Transform Block)などを意味することができる。また、ユニットは、ブロックと区分して指し示すために、輝度(Luma)成分ブロック、それに対応する色差(Chroma)成分ブロック、及び各ブロックに対する構文要素を含むことを意味することができる。ユニットは、様々なサイズと形状を持つことができ、特に、ユニットの形状は、正方形だけでなく、長方形、台形、三角形、五角形など、2次元的に表現できる幾何学的図形を含むことができる。また、ユニット情報は、符号化ユニット、予測ユニット、残予ユニット、変換ユニットなどを指し示すユニットのタイプ、ユニットの大きさ、ユニットの深さ、ユニットの符号化及び復号化順序などのうちの少なくとも一つを含むことができる。
符号化ツリーユニット(Coding Tree Unit):一つの輝度成分(Y)符号化ツリーブロックに関連した2つの色差成分(Cb,Cr)符号化ツリーブロックから構成される。また、前記ブロックと各ブロックに対する構文要素を含むことを意味することもできる。各符号化ツリーユニットは、符号化ユニット、予測ユニット、変換ユニットなどのサブユニットを構成するために、四分木(quad tree)、二分木(binary tree)、三分木(ternary tree)などの一つ以上の分割方式を用いて分割できる。入力画像の分割の如く画像の復号化/符号化過程で処理単位となるサンプルブロックを指し示すための用語として使用できる。ここで、四分木は、4分割ツリー(quarternary tree)を意味することができる。
符号化ブロックのサイズが所定の範囲内に属する場合には、 四分木にのみ分割が可能である。ここで、所定の範囲は、四分木にのみ分割が可能な符号化ブロックの最大サイズ及び最小サイズのうちの少なくとも一つで定義できる。四分木状の分割が許可される符号化ブロックの最大/最小サイズを示す情報は、ビットストリームを介してシグナリングでき、当該情報は、シーケンス、ピクチャパラメータ、またはスライス(セグメント)のうちの少なくとも一つの単位でシグナリングできる。または、符号化ブロックの最大/最小サイズは、符号化器/復号化器で予め設定された固定サイズであってもよい。例えば、符号化ブロックのサイズが256x256乃至64x64に該当する場合には、四分木にのみ分割が可能である。または、符号化ブロックのサイズが最大変換ブロックのサイズよりも大きい場合には、四分木にのみ分割が可能である。このとき、前記分割されるブロックは、符号化ブロックまたは変換ブロックのうちの少なくとも一つであり得る。このような場合に符号化ブロックの分割を示す情報(例えば、split_flag)は、四分木分割か否かを示すフラグであり得る。符号化ブロックのサイズが所定の範囲内に属する場合には、二分木または三分木にのみ分割が可能である。この場合には、四分木についての前記説明は、二分木または三分木に対しても同様に適用できる。
符号化ツリーブロック(Coding Tree Block):Y符号化ツリーブロック、Cb符号化ツリーブロック及びCr符号化ツリーブロックのうちのいずれかを示すための用語として使用できる。
周辺ブロック(Neighbor block):現在ブロックに隣接するブロックを意味することができる。現在ブロックに隣接するブロックは、現在ブロックと境界が接しているブロック、又は現在ブロックから所定の距離内に位置するブロックを意味することができる。周辺ブロックは、現在ブロックの頂点に隣接するブロックを意味することができる。ここで、現在ブロックの頂点に隣接するブロックとは、現在ブロックの横に隣接する隣接ブロックと縦に隣接するブロック、又は現在ブロックの縦に隣接する隣接ブロックと横に隣接するブロックであり得る。周辺ブロックは、復元された周辺ブロックを意味することもある。
復元された周辺ブロック(Reconstructed Neighbor Block):現在ブロックの周辺に空間的(Spatial)/時間的(Temporal)に既に符号化或いは復号化された周辺ブロックを意味することができる。このとき、復元された周辺ブロックは、復元された周辺ユニットを意味することができる。復元された空間的周辺ブロックは、現在ピクチャ内のブロックでありながら符号化及び/又は復号化を介して既に復元されたブロックであり得る。復元された時間的周辺ブロックは、参照画像内で現在ピクチャの現在ブロックと対応する位置の復元されたブロック又はその周辺ブロックであり得る。
ユニット深さ(Depth):ユニットが分割された程度を意味することができる。ツリー構造(Tree Structure)における最上位ノード(Root Node)は、分割されていない最初のユニットに対応することができる。最上位ノードは、ルートノードと呼ばれることもある。また、最上位ノードは、最小の深さ値を持つことができる。このとき、最上位ノードは、レベル(Level)0の深さを持つことができる。レベル1の深さを持つノードは、最初のユニットが一度分割されることにより生成されたユニットを示すことができる。レベル2の深さを持つノードは、最初のユニットが二回分割されることにより生成されたユニットを示すことができる。レベルnの深さを持つノードは、最初のユニットがn回分割されることにより生成されたユニットを示すことができる。リーフノード(Leaf Node)は、最下位ノードであり、それ以上分割できないノードであり得る。リーフノードの深さは最大レベルであり得る。例えば、最大レベルの予め定義された値は3であり得る。ルートノードは深さが最も浅く、リーフノードは深さが最も深いといえる。また、ユニットをツリー構造で表現したとき、ユニットが存在するレベルがユニット深さを意味することができる。
ビットストリーム(Bitstream):符号化された画像情報を含むビットの列を意味することができる。
パラメータセット(Parameter Set):ビットストリーム内の構造のうちのヘッダー(header)情報に該当する。ビデオパラメータセット(video parameter set)、シーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)及び適応パラメータセット(adaptation parameter set)のうちの少なくとも一つがパラメータセットに含まれ得る。また、パラメータセットはスライス(slice)ヘッダー及びタイル(tile)ヘッダー情報を含むこともできる。
パーシング(Parsing):ビットストリームをエントロピー復号化して構文要素(Syntax Element)の値を決定することを意味するか、或いはエントロピー復号化自体を意味することができる。
シンボル(Symbol):符号化/復号化対象ユニットの構文要素、符号化パラメータ(coding parameter)、変換係数(Transform Coefficient)の値などのうちの少なくとも一つを意味することができる。また、シンボルは、エントロピー符号化の対象或いはエントロピー復号化の結果を意味することができる。
予測モード(Prediction Mode):画面内予測で符号化/復号化されるモード、又は画面間予測で符号化/復号化されるモードを指し示す情報であり得る。
予測ユニット(Prediction Unit):画面間予測、画面内予測、画面間補償、画面内補償、動き補償など、予測を行うときの基本単位を意味することができる。一つの予測ユニットは、より小さいサイズを有する複数のパーティション(Partition)又は複数のサブ予測ユニットに分割されてもよい。複数のパーティションも予測又は補償の実行における基本単位であり得る。予測ユニットの分割によって生成されたパーティションも予測ユニットであり得る。
予測ユニットパーティション(Prediction Unit Partition):予測ユニットが分割された形態を意味することができる。
変換ユニット(Transform Unit):変換、逆変換、量子化、逆量子化、変換係数符号化/復号化のように残余信号(residual signal)符号化/復号化を行うときの基本単位を意味することができる。一つの変換ユニットは、分割されてサイズがさらに小さい複数のサブ変換ユニットに分割できる。ここで、変換/逆変換は、1次変換/逆変換及び2次変換/逆変換のうちの少なくとも一つを含むことができる。
スケーリング(Scaling):量子化されたレベルに因数を掛ける過程を意味することができる。量子化されたレベルに対するスケーリングの結果として変換係数を生成することができる。スケーリングを逆量子化(dequantization)とも呼ぶことができる。
量子化パラメータ(Quantization Parameter):量子化において変換係数を用いて量子化されたレベル(quantized level)を生成するときに使用する値を意味することができる。又は、逆量子化において量子化されたレベルをスケーリング(scaling)して変換係数を生成するときに使用する値を意味することもできる。量子化パラメータは、量子化ステップサイズ(step size)にマッピングされた値であり得る。
デルタ量子化パラメータ(Delta Quantization Parameter):予測された量子化パラメータと符号化/復号化対象ユニットの量子化パラメータとの差分(difference)値を意味することができる。
スキャン(Scan):ユニット、ブロック或いは行列内係数の順序をソートする方法を意味することができる。例えば、2次元配列を1次元配列にソートすることをスキャンという。又は、1次元配列を2次元配列にソートすることもスキャン或いは逆スキャン(Inverse Scan)と呼ぶことができる。
変換係数(Transform Coefficient):符号化器で変換を行ってから生成された係数値を意味することができる。復号化器でエントロピー復号化及び逆量子化のうちの少なくとも一つを行ってから生成された係数値を意味することもできる。変換係数又は残予信号に量子化を適用した量子化レベル又は量子化変換係数レベルも変換係数の意味に含まれ得る。
量子化レベル(Quantized Level):符号化器で変換係数又は残余信号に量子化を行って生成された値を意味することができる。又は、復号化器で逆量子化を行う前に逆量子化の対象となる値を意味することもできる。同様に、変換及び量子化の結果である量子化変換係数レベルも量子化レベルの意味に含まれ得る。
ノンゼロ変換係数(Non-zero Transform Coefficient):値の大きさが0ではない変換係数、或いは値の大きさが0ではない変換係数レベル、或いは量子化されたレベルを意味することができる。
量子化行列(Quantization Matrix):画像の主観的画質或いは客観的画質を向上させるために量子化或いは逆量子化過程で用いる行列を意味することができる。量子化行列をスケーリングリスト(scaling list)とも呼ぶことができる。
量子化行列係数(Quantization Matrix Coefficient):量子化行列内の各元素(element)を意味することができる。量子化行列係数を行列係数(matrix coefficient)とも呼ぶことができる。
基本行列(Default Matrix):符号化器と復号化器で予め定義されている所定の量子化行列を意味することができる。
非基本行列(Non-default Matrix):符号化器と復号化器で予め定義されず、ユーザによってシグナリングされる量子化行列を意味することができる。
統計値(statistic value):演算可能な特定の値を有する変数、符号化パラメータ、定数などの少なくとも一つに対する統計値は、当該特定値の平均値、重み付け平均値、重み付け和値、最小値、最大値、最頻値、中央値及び補間値のうちの少なくとも一つであり得る。
図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に保存できる。ここで、参照画像に対する符号化/復号化が処理されたとき、参照ピクチャバッファ190に保存できる。
動き補償部112は、動きベクトルを用いる動き補償を行うことにより、現在ブロックに対する予測ブロックを生成することができる。ここで、インター予測は画面間予測或いは動き補償を意味することができる。
前記動き予測部111と動き補償部112は、動きベクトルの値が整数値を持たない場合に参照画像内の一部の領域に対して補間フィルタ(Interpolation Filter)を適用して予測ブロックを生成することができる。画面間予測或いは動き補償を行うために、符号化ユニットを基準に、該当符号化ユニットに含まれている予測ユニットの動き予測及び動き補償方法がスキップモード(Skip Mode)、マージモード(Merge mode)、向上した動きベクトル予測(Advanced Motion Vector Prediction、AMVP)モード、及び現在ピクチャ参照モードのうちのいずれの方法であるかを判断することができ、各モードに応じて、画面間予測或いは動き補償を行うことができる。
減算器125は、入力ブロック及び予測ブロックの差分を用いて残余ブロックを生成することができる。残余ブロックは残余信号とも称される。残余信号は、原信号と予測信号との差(difference)を意味することができる。又は、残余信号は、原信号と予測信号との差を変換(transform)するか、量子化するか、又は変換及び量子化することにより生成された信号であり得る。残余ブロックはブロック単位の残余信号であり得る。
変換部130は、残余ブロックに対して変換(transform)を行って変換係数(transform coefficient)を生成することができ、生成された変換係数を出力することができる。ここで、変換係数は、残余ブロックに対する変換を行うことにより生成された係数値であり得る。変換省略(transform skip)モードが適用される場合、変換部130は残余ブロックに対する変換を省略することもできる。
変換係数又は残余信号に量子化を適用することにより、量子化レベル(quantized level)が生成できる。以下、実施形態では、量子化レベルも変換係数と称されることがある。
量子化部140は、変換係数又は残余信号を量子化パラメータに基づいて量子化することにより量子化レベルを生成することができ、生成された量子化レベルを出力することができる。このとき、量子化部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値化方法、確率モデル、コンテキストモデル(Context Model)を用いて算術符号化を行うこともできる。
エントロピー符号化部150は、変換係数レベル(量子化レベル)を符号化するために、変換係数スキャニング(Transform Coefficient Scanning)方法を介して2次元のブロック形状(form)係数を1次元のベクトルに変更することができる。
符号化パラメータ(Coding Parameter)は、構文要素のように符号化器で符号化されて復号化器へシグナリングされる情報(フラグ、インデックスなど)だけでなく、符号化過程或いは復号化過程で誘導される情報を含むことができ、画像を符号化又は復号化するときに必要な情報を意味することができる。例えば、ユニット/ブロックサイズ、ユニット/ブロック深さ、ユニット/ブロック分割情報、ユニット/ブロック形態、ユニット/ブロック分割構造、四分木分割か否か、二分木分割か否か、二分木分割の方向(横方向或いは縦方向)、二分木分割の形態(対称分割或いは非対称分割)、三分木分割か否か、三分木分割の方向(横方向或いは縦方向)、三分木分割の形態(対称分割或いは非対称分割)、複合型ツリー分割か否か、複合型ツリー分割の方向(横方向或いは縦方向)、複合型ツリー分割の形態(対称分割或いは非対称分割)、複合型ツリーの分割ツリー(二分木或いは三分木)、予測モード(画面内予測又は画面間予測)、画面内輝度予測モード/方向、画面内色差予測モード/方向、画面内分割情報、画面間分割情報、符号化ブロック分割フラグ、予測ブロック分割フラグ、変換ブロック分割フラグ、参照サンプルフィルタリング方法、参照サンプルフィルタタップ、参照サンプルフィルタ係数、予測ブロックフィルタリング方法、予測ブロックフィルタタップ、予測ブロックフィルタ係数、予測ブロック境界フィルタリング方法、予測ブロック境界フィルタタップ、予測ブロック境界フィルタ係数、画面内予測モード、画面間予測モード、動き情報、動きベクトル、動きベクトル差分、参照画像インデックス、画面間予測方向、画面間予測インジケータ、予測リスト活用フラグ、参照画像リスト、参照画像、動きベクトル予測インデックス、動きベクトル予測候補、動きベクトル候補リスト、マージモードの使用有無、マージインデックス、マージ候補、マージ候補リスト、スキップ(skip)モードの使用有無、補間フィルタの類型、補間フィルタタップ、補間フィルタ係数、動きベクトルのサイズ、動きベクトルの表現精度、変換種類、変換サイズ、1次変換の使用有無情報、2次変換の使用有無情報、1次変換インデックス、2次変換インデックス、残予信号有無情報、符号化ブロックパターン(Coded Block Pattern)、符号化ブロックフラグ(Coded Block Flag)、量子化パラメータ、残余量子化パラメータ、量子化行列、画面内ループフィルタの適用か否か、画面内ループフィルタ係数、画面内ループフィルタタップ、画面内ループフィルタの形状/形態、デブロッキングフィルタの適用か否か、デブロッキングフィルタ係数、デブロッキングフィルタタップ、デブロッキングフィルタの強度、デブロッキングフィルタの形状/形態、適応的サンプルオフセットの適用か否か、適応的サンプルオフセット値、適応的サンプルオフセットのカテゴリー、適応的サンプルオフセットの種類、適応的ループフィルタの適用か否か、適応的ループフィルタ係数、適応的ループフィルタタップ、適応的ループフィルタの形状/形態、二値化/逆二値化方法、コンテキストモデル決定方法、コンテキストモデルアップデート方法、レギュラーモードの実行有無、バイパスモードの実行有無、コンテキストビン、バイパスビン、重要係数、フラグ、最後の重要係数フラグ、係数グループ単位符号化フラグ、最後の重要係数位置、係数値が1よりも大きいかに対するフラグ、係数値が2よりも大きいかに対するフラグ、係数値が3よりも大きいかに対するフラグ、残りの係数値情報、符号(sign)情報、復元された輝度サンプル、復元された色差サンプル、残余輝度サンプル、残余色差サンプル、輝度変換係数、色差変換係数、輝度量子化レベル、色差量子化レベル、変換係数レベルスキャニング方法、復号化器側面動きベクトル探索領域の大きさ、復号化器側面動きベクトル探索領域の形態、復号化器側面動きベクトル探索回数、CTUのサイズ情報、最小ブロックのサイズ情報、最大ブロックのサイズ情報、最大ブロックの深さ情報、最小ブロックの深さ情報、画像ディスプレイ/出力順序、スライス識別情報、スライスタイプ、スライス分割情報、タイル識別情報、タイルタイプ、タイル分割情報、ピクチャタイプ、入力サンプルビット深度、復元サンプルビット深度、残余サンプルビット深度、変換係数ビット深度、量子化レベルビット深度、輝度信号に対する情報、色差信号に対する情報のうちの少なくとも一つの値又は組み合わせ形態が符号化パラメータに含まれ得る。
ここで、フラグ或いはインデックスをシグナリング(signaling)するというのは、エンコーダでは該当フラグ或いはインデックスをエントロピー符号化(Entropy Encoding)してビットストリーム(Bitstream)に含むことを意味することができ、デコーダではビットストリームから当該フラグ或いはインデックスをエントロピー復号化(Entropy Decoding)することを意味することができる。
符号化装置100がインター予測を用いた符号化を行う場合、符号化された現在画像は、後で処理される他の画像に対する参照画像として使用できる。よって、符号化装置100は、符号化された現在画像をさらに復元又は復号化することができ、復元又は復号化された画像を参照画像として参照ピクチャバッファ190に保存することができる。
量子化レベルは、逆量子化部160で逆量子化(dequantization)でき、逆変換部170で逆変換(inverse transform)できる。逆量子化及び/又は逆変換された係数は、加算器175を介して予測ブロックと合わせられ得る。逆量子化及び/又は逆変換された係数と予測ブロックとを合わせることにより、復元ブロック(reconstructed block)が生成できる。ここで、逆量子化及び/又は逆変換された係数は、逆量子化及び逆変換のうちの少なくとも一つが行われた係数を意味し、復元された残余ブロックを意味することができる。
復元ブロックはフィルタ部180を経ることができる。フィルタ部180は、デブロッキングフィルタ(deblocking filter)、サンプル適応的オフセット(Sample Adaptive Offset;SAO)、適応的ループフィルタ(Adaptive Loop Filter;ALF)などの少なくとも一つを復元サンプル、復元ブロック又は復元画像に適用することができる。フィルタ部180はループ内フィルタ(in-loop filter)とも称される。
デブロッキングフィルタは、ブロック間の境界から生じたブロック歪みを除去することができる。デブロッキングフィルタを行うか否かを判断するために、ブロックに含まれている幾つかの列又は行に含まれているサンプルに基づいて、現在ブロックにデブロッキングフィルタを適用するか否かを判断することができる。ブロックにデブロッキングフィルタを適用する場合、必要なデブロッキングフィルタリング強度に応じて、互いに異なるフィルタを適用することができる。
サンプル適応的オフセットを用いて符号化エラーを補償するために、サンプル値に適正オフセット(offset)値を加えることができる。サンプル適応的オフセットは、デブロッキングを行った画像に対してサンプル単位で原本画像とのオフセットを補正することができる。画像に含まれているサンプルを一定数の領域に区分した後、オフセットを行うべき領域を決定し、該当領域にオフセットを適用する方法、又は各サンプルのエッジ情報を考慮してオフセットを適用する方法を使用することができる。
適応的ループフィルタは、復元画像と原画像とを比較した値に基づいてフィルタリングを行うことができる。画像に含まれているサンプルを所定のグループに分けた後、当該グループに適用されるべきフィルタを決定してグループごとに差別的にフィルタリングを行うことができる。適応的ループフィルタを適用するか否かに関連した情報は、符号化ユニット(Coding Unit、CU)別にシグナリングでき、それぞれのブロックに応じて、適用される適応的ループフィルタの形状及びフィルタ係数は異なり得る。
フィルタ部180を経た復元ブロック又は復元画像は、参照ピクチャバッファ190に保存できる。フィルタ部180を経た復元ブロックは、参照画像の一部であり得る。いわば、参照画像は、フィルタ部180を経た復元ブロックからなる復元画像であり得る。保存された参照画像は、以後、画面間予測或いは動き補償に使用できる。
図2は本発明が適用される復号化装置の一実施形態による構成を示すブロック図である。
復号化装置200はデコーダ、ビデオ復号化装置又は画像復号化装置であり得る。
図2を参照すると、復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、イントラ予測部240、動き補償部250、加算器255、フィルタ部260、及び参照ピクチャバッファ270を含むことができる。
復号化装置200は、符号化装置100から出力されたビットストリームを受信することができる。復号化装置200は、コンピュータ可読記録媒体に保存されたビットストリームを受信するか、或いは有線/無線伝送媒体を介してストリミングされるビットストリームを受信することができる。復号化装置200は、ビットストリームに対してイントラモード又はインターモードで復号化を行うことができる。また、復号化装置200は、復号化を介して復元された画像又は復号化された画像を生成することができ、復元された画像又は復号化された画像を出力することができる。
復号化に使用される予測モードがイントラモードである場合、スイッチがイントラに転換できる。復号化に使用される予測モードがインターモードである場合、スイッチがインターに転換できる。
復号化装置200は、入力されたビットストリームを復号化し、復元された残余ブロック(reconstructed residual block)を取得することができ、予測ブロックを生成することができる。復元された残余ブロック及び予測ブロックが取得されると、復号化装置200は、復元された残余ブロックと予測ブロックとを加算することにより、復号化の対象となる復元ブロックを生成することができる。復号化対象ブロックは現在ブロックと称されることもある。
エントロピー復号化部210は、ビットストリームに対する確率分布に基づくエントロピー復号化を行うことにより、シンボルを生成することができる。生成されたシンボルは、量子化レベル形態のシンボルを含むことができる。ここで、エントロピー復号化方法は、上述したエントロピー符号化方法の逆過程であり得る。
エントロピー復号化部210は、変換係数レベル(量子化レベル)を復号化するために、変換係数のスキャニング方法によって1次元のベクトル形態係数を2次元のブロック形態に変更することができる。
量子化レベルは、逆量子化部220で逆量子化でき、逆変換部230で逆変換できる。量子化レベルは、逆量子化及び/又は逆変換が行われた結果であって、復元された残余ブロックとして生成できる。このとき、逆量子化部220は、量子化レベルに量子化行列を適用することができる。
イントラモードが使用される場合、イントラ予測部240は、復号化対象ブロック周辺の、既に復号化されたブロックのサンプル値を用いる空間的予測を現在ブロックに対して行うことにより、予測ブロックを生成することができる。
インターモードが使用される場合、動き補償部250は、動きベクトル及び参照ピクチャバッファ270に保存されている参照画像を用いる動き補償を現在ブロックに対して行うことにより、予測ブロックを生成することができる。前記動き補償部250は、動きベクトルの値が整数値を持たない場合に参照画像内の一部の領域に対して補間フィルタを適用して予測ブロックを生成することができる。動き補償を行うために、符号化ユニットを基準に、該当符号化ユニットに含まれている予測ユニットの動き補償方法がスキップモード、マージモード、AMVPモード及び現在ピクチャ参照モードのうちのいずれの方法であるかを判断することができ、各モードに応じて動き補償を行うことができる。
加算器225は、復元された残余ブロック及び予測ブロックを加算して復元ブロックを生成することができる。フィルタ部260は、デブロッキングフィルタ、サンプル適応的オフセット及び適応的ループフィルタのうちの少なくとも一つを復元ブロック又は復元画像に適用することができる。フィルタ部260は復元画像を出力することができる。復元ブロック又は復元画像は、参照ピクチャバッファ270に保存されてインター予測に使用できる。フィルタ部260を経た復元ブロックは、参照画像の一部であり得る。いわば、参照画像は、フィルタ部260を経た復元ブロックからなる復元画像であり得る。保存された参照画像は、以後、画面間予測或いは動き補償に使用できる。
図3は画像を符号化及び復号化するときの画像の分割構造を示す概略図である。図3は一つのユニットが複数のサブユニットに分割される実施形態を概略的に示す。
画像を効率よく分割するために、符号化及び復号化において、符号化ユニット(Coding Unit;CU)が使用できる。画像符号化/復号化の基本単位として符号化ユニットが使用できる。また、画像符号化/復号化の際に、画面内予測モード及び画面間予測モードが区分される単位で符号化ユニットを使用することができる。符号化ユニットは、予測、変換、量子化、逆変換、逆量子化、又は変換係数の符号化/復号化の過程のために使用される基本単位であり得る。
図3を参照すると、画像300は、最大符号化ユニット(Largest Coding Unit;LCU)単位で順次分割され、LCU単位で分割構造が決定される。ここで、LCUは、符号化ツリーユニット(Coding Tree Unit;CTU)と同一の意味で使用できる。ユニットの分割は、ユニットに該当するブロックの分割を意味することができる。ブロック分割情報には、ユニットの深さ(depth)に関する情報が含まれ得る。深さ情報は、ユニットが分割される回数及び/又は程度を示すことができる。一つのユニットは、ツリー構造(tree structure)に基づいて深さ情報をもって階層的に複数のサブユニットに分割できる。いわば、ユニット及び該ユニットの分割によって生成されたサブユニットは、ノード及び該ノードの子ノードにそれぞれ対応することができる。それぞれの分割されたサブユニットは、深さ情報を持つことができる。深さ情報は、CUの大きさを示す情報であり、CUごとに保存できる。ユニット深さは、ユニットが分割された回数及び/又は程度を示すので、サブユニットの分割情報は、サブユニットの大きさに関する情報を含むこともできる。
分割構造は、CTU310内での符号化ユニット(Coding Unit;CU)の分布を意味することができる。このような分布は、一つのCUを複数(2、4、8、16などを含む2以上の正の整数)のCUに分割するか否かによって決定することができる。分割により生成されたCUの横幅と縦幅は、それぞれ分割前のCUの横幅の半分及び縦幅の半分であるか、分割された個数に応じて分割前のCUの横幅よりも小さいサイズ及び縦幅よりも小さいサイズを持つことができる。CUは複数のCUに再帰的に分割できる。再帰的分割によって、分割されたCUの横幅及び縦幅のうちの少なくとも一つのサイズが分割前のCUの横幅及び縦幅のうちの少なくとも一つに比べて減少できる。CUの分割は、予め定義された深さ又は予め定義されたサイズまで再帰的に行われ得る。例えば、CTUの深さは0であり、最小符号化ユニット(Smallest Coding Unit;SCU)の深さは予め定義された最大深さであり得る。ここで、CTUは、上述したように、最大の符号化ユニットサイズを持つ符号化ユニットであり、SCUは、最小の符号化ユニットのサイズを持つ符号化ユニットであり得る。CTU310から分割が始まり、分割によってCUの横幅及び/又は縦幅が減少するたびに、CUの深さは1ずつ増加する。例えば、それぞれの深さ別に、分割されないCUは2N×2Nサイズを有することができる。また、分割されるCUの場合、2N×2NサイズのCUが、N×Nサイズを有する4つのCUに分割できる。Nのサイズは深さが1ずつ増加するたびに半分に減少することができる。
また、CUが分割されるか否かに対する情報は、CUの分割情報を介して表現できる。分割情報は1ビットの情報であり得る。SCUを除いた全てのCUは、分割情報を含むことができる。例えば、分割情報の値が第1の値であれば、CUが分割されなくてもよく、分割情報の値が第2の値であれば、CUが分割されてもよい。
図3を参照すると、深さ0のCTUは64×64ブロックであり得る。0は最小深さであり得る。深さ3のSCUは8×8ブロックであり得る。3は最大深さであり得る。32×32ブロック及び16×16ブロックのCUはそれぞれ深さ1及び深さ2で表現できる。
例えば、一つの符号化ユニットが4つの符号化ユニットに分割される場合、分割された4つの符号化ユニットの横幅及び縦幅は、分割される前の符号化ユニットの横幅及び縦幅と比較してそれぞれの半分のサイズを持つことができる。一例として、32×32サイズの符号化ユニットが4つの符号化ユニットに分割される場合、分割された4つの符号化ユニットはそれぞれ16×16のサイズを持つことができる。一つの符号化ユニットが4つの符号化ユニットに分割される場合、符号化ユニットは四分木(quad-tree)状に分割(四分木分割、quad-tree partition)されたといえる。
例えば、一つの符号化ユニットが2つの符号化ユニットに分割される場合、分割された2つの符号化ユニットの横幅或いは縦幅は、分割される前の符号化ユニットの横幅或いは縦幅と比較して半分のサイズを持つことができる。一例として、32×32サイズの符号化ユニットが2つの符号化ユニットに縦分割される場合、分割された2つの符号化ユニットは、それぞれ16×32のサイズを有することができる。一例として、8×32サイズの符号化ユニットが2つの符号化ユニットに横分割される場合、分割された2つの符号化ユニットは、それぞれ8×16のサイズを有することができる。一つの符号化ユニットが2つの符号化ユニットに分割される場合、符号化ユニットは二分木(binary-tree)状に分割(二分木分割、binary-tree partition)されたといえる。
例えば、一つの符号化ユニットが3つの符号化ユニットに分割される場合、分割される前に符号化ユニットの横幅或いは縦幅を1:2:1の比率で分割することにより、3つの符号化ユニットに分割することができる。一例として、16x32サイズの符号化ユニットが3つの符号化ユニットに横分割される場合、分割された3つの符号化ユニットは、上側からそれぞれ16x8、16x16及び16x8のサイズを有することができる。一例として、32x32サイズの符号化ユニットが3つの符号化ユニットに縦分割される場合、分割された3つの符号化ユニットは、左側からそれぞれ8x32、16x32及び8x32のサイズを有することができる。一つの符号化ユニットが3つの符号化ユニットに分割される場合、符号化ユニットは、三分木(ternary-tree)状に分割(三分木分割、ternary-tree partition)されたといえる。
図3のCTU320は、四分木分割、二分木分割及び三分木分割がすべて適用されたLCUの一例である。
前述したように、CTUを分割するために、四分木分割、二分木分割及び三分木分割のうちの少なくとも一つが適用できる。それぞれの分割は、所定の優先順位に基づいて適用できる。例えば、CTUに対して四分木分割が優先的に適用できる。それ以上四分木分割できない符号化ユニットは、四分木のリーフノードに該当することができる。四分木のリーフノードに該当する符号化ユニットは、二分木及び/又は三分木のルートノードになることができる。つまり、四分木のリーフノードに該当する符号化ユニットは、二分木分割されるか、三分木分割されるか、或いはそれ以上分割できない。このとき、四分木のリーフノードに該当する符号化ユニットを二分木分割又は三分木分割して生成された符号化ユニットに対しては、再び四分木分割が行われないようにすることにより、ブロックの分割及び/又は分割情報のシグナリングを効果的に行うことができる。
四分木の各ノードに該当する符号化ユニットの分割は、クワッド分割情報を用いてシグナリングできる。第1の値(例えば、「1」)を有するクワッド分割情報は、該当符号化ユニットが四分木分割されることを指示することができる。第2の値(例えば、「0」)を有するクワッド分割情報は、当該符号化ユニットが四分木分割されないことを指示することができる。クワッド分割情報は、所定の長さ(例えば、1ビット)を有するフラグであり得る。
二分木分割と三分木分割との間には、優先順位が存在しないこともある。つまり、四分木のリーフノードに該当する符号化ユニットは、二分木分割又は三分木分割できる。また、二分木分割又は三分木分割により生成された符号化ユニットは、再び二分木分割又は三分木分割されるか、或いはそれ以上分割できない。
二分木分割と三分木分割との間に優先順位が存在しない場合の分割は、複合型ツリー分割(multi-type tree partition)と呼ぶことがある。すなわち、四分木のリーフノードに該当する符号化ユニットは、複合型ツリー(multi-type tree)のルートノードになることができる。複合型ツリーの各ノードに該当する符号化ユニットの分割は、複合型ツリーの分割か否かの情報、分割方向情報及び分割ツリー情報のうちの少なくとも一つを用いてシグナリングできる。前記複合型ツリーの各ノードに該当する符号化ユニットの分割のために、分割か否かの情報、分割方向情報及び分割ツリー情報が順次シグナリングされてもよい。
第1の値(例えば、「1」)を有する複合型ツリーの分割か否かの情報は、当該符号化ユニットが複合型ツリー分割されることを指示することができる。第2の値(例えば、「0」)を有する複合型ツリーの分割か否かの情報は、該当符号化ユニットが複合型ツリー分割されないことを指示することができる。
複合型ツリーの各ノードに該当する符号化ユニットが複合型ツリー分割される場合、当該符号化ユニットは、分割方向情報をさらに含むことができる。分割方向情報は、複合型ツリー分割の分割方向を指示することができる。第1の値(例えば、「1」)を有する分割方向情報は、当該符号化ユニットが縦方向に分割されることを指示することができる。第2の値(例えば、「0」)を有する分割方向情報は、当該符号化ユニットが横方向に分割されることを指示することができる。
複合型ツリーの各ノードに該当する符号化ユニットが複合型ツリー分割される場合、当該符号化ユニットは、分割ツリー情報をさらに含むことができる。分割ツリー情報は、複合型ツリー分割のために使用されたツリーを指示することができる。第1の値(例えば、「1」)を有する分割ツリー情報は、当該符号化ユニットが二分木分割されることを指示することができる。第2の値(例えば、「0」)を有する分割ツリー情報は、当該符号化ユニットが三分木分割されることを指示することができる。
分割か否かの情報、分割ツリー情報及び分割方向情報は、それぞれ所定の長さ(例えば、1ビット)を有するフラグであり得る。
クワッド分割情報、複合型ツリーの分割か否かの情報、分割方向情報及び分割ツリー情報のうちの少なくとも一つは、エントロピー符号化/復号化できる。前記情報のエントロピー符号化/復号化のために、現在符号化ユニットに隣接する周辺符号化ユニットの情報が利用できる。例えば、左側符号化ユニット及び/又は上側符号化ユニットの分割形態(分割か否か、分割ツリー及び/又は分割方向)は、現在符号化ユニットの分割形態に類似する確率が高い。よって、周辺符号化ユニットの情報に基づいて、現在符号化ユニットの情報のエントロピー符号化/復号化のためのコンテキスト情報を誘導することができる。このとき、周辺符号化ユニットの情報には、当該符号化ユニットのクワッド分割情報、複合型ツリーの分割か否かの情報、分割方向情報及び分割ツリー情報のうちの少なくとも一つが含まれ得る。
他の実施形態として、二分木分割と三分木分割のうち、二分木分割が優先的に実行できる。すなち、二分木分割が先に適用され、二分木のリーフノードに該当する符号化ユニットを三分木のルートノードとして設定することもできる。この場合、三分割木のノードに該当する符号化ユニットに対しては、四分木分割及び二分木分割が行われないことがある。
四分木分割、二分木分割及び/又は三分木分割によってそれ以上分割されない符号化ユニットは、符号化、予測及び/又は変換の単位になることができる。すなわち、予測及び/又は変換のために符号化ユニットがそれ以上分割されないことがある。したがって、符号化ユニットを予測ユニット及び/又は変換ユニットに分割するための分割構造、分割情報などがビットストリームに存在しないことがある。
ただし、分割の単位となる符号化ユニットのサイズが最大変換ブロックのサイズよりも大きい場合、該当符号化ユニットは、最大変換ブロックのサイズと同じか或いは小さいサイズになるまで再帰的に分割できる。例えば、符号化ユニットのサイズが64x64であり、最大変換ブロックのサイズが32x32である場合、前記符号化ユニットは、変換のために、4つの32x32ブロックに分割できる。例えば、符号化ユニットのサイズが32x64であり、最大変換ブロックのサイズが32x32である場合、前記符号化ユニットは、変換のために、2つの32x32ブロックに分割できる。この場合には、変換のための符号化ユニットの分割か否かは、別にシグナリングされず、前記符号化ユニットの横又は縦と最大変換ブロックの横又は縦との比較によって決定できる。例えば、符号化ユニットの横が最大変換ブロックの横よりも大きい場合、符号化ユニットは、縦に2等分できる。また、符号化ユニットの縦が最大変換ブロックの縦よりも大きい場合、符号化ユニットは横方向に2等分できる。
符号化ユニットの最大及び/又は最小サイズに関する情報、変換ブロックの最大及び/又は最小サイズに関する情報は、符号化ユニットの上位レベルでシグナリング又は決定できる。前記上位レベルは、例えば、シーケンスレベル、ピクチャレベル、スライスレベルなどであってもよい。例えば、符号化ユニットの最小サイズは4x4と決定されてもよい。例えば、変換ブロックの最大サイズは64x64と決定されてもよい。例えば、変換ブロックの最小サイズは4x4と決定されてもよい。
四分木のリーフノードに該当する符号化ユニットの最小サイズ(四分木の最小サイズ)に関する情報、及び/又は複合型ツリーのルートノードからリーフノードに至る最大深さ(複合型ツリーの最大深さ)に関する情報は、符号化ユニットの上位レベルでシグナリング又は決定できる。前記上位レベルは、例えば、シーケンスレベル、ピクチャレベル、スライスレベルなどであってもよい。前記四分木の最小サイズに関する情報、及び/又は前記複合型ツリーの最大深さに関する情報は、画面内スライスと画面間スライスのそれぞれに対してシグナリング又は決定できる。
CTUのサイズと変換ブロックの最大サイズに関する差分情報は、符号化ユニットの上位レベルでシグナリング又は決定できる。前記上位レベルは、例えば、シーケンスレベル、ピクチャレベル、スライスレベルなどであってもよい。二分木の各ノードに該当する符号化ユニットの最大サイズ(二分木の最大サイズ)に関する情報は、符号化ツリーユニットの大きさと前記差分情報に基づいて決定できる。三分木の各ノードに該当する符号化ユニットの最大サイズ(三分木の最大サイズ)は、スライスのタイプによって異なる値を持つことができる。例えば、画面内スライスである場合には、三分木の最大サイズは32x32であってもよい。また、例えば、画面間スライスである場合には、三分木の最大サイズは128x128であってもよい。例えば、二分木の各ノードに該当する符号化ユニットの最小サイズ(二分木の最小サイズ)及び/又は三分木の各ノードに該当する符号化ユニットの最小サイズ(三分木の最小サイズ)は、符号化ブロックの最小サイズとして設定できる。
別の例として、二分木の最大サイズ及び/又は三分木の最大サイズは、スライスレベルでシグナリング又は決定できる。また、二分木の最小サイズ及び/又は三分木の最小サイズは、スライスレベルでシグナリング又は決定できる。
前述した様々なブロックのサイズ及び深さ情報に基づいて、クワッド分割情報、複合型ツリーの分割か否かの情報、分割ツリー情報及び/又は分割方向情報などがビットストリームに存在しても存在しなくてもよい。
例えば、符号化ユニットのサイズが四分木の最小サイズよりも大きくなければ、前記符号化ユニットはクワッド分割情報を含まず、当該クワッド分割情報は第2の値に推論できる。
例えば、複合型ツリーのノードに該当する符号化ユニットのサイズ(横及び縦)が二分木の最大サイズ(横及び縦)、及び/又は三分木の最大サイズ(横及び縦)よりも大きい場合、前記符号化ユニットは、二分木分割及び/又は三分木分割されないことがある。それにより、前記複合型ツリーの分割か否かの情報は、シグナリングされず、第2の値に推論できる。
又は、複合型ツリーのノードに該当する符号化ユニットのサイズ(横及び縦)が二分木の最小サイズ(横及び縦)と同じであるか、或いは符号化ユニットのサイズ(横及び縦)が三分木の最小サイズ(横及び縦)の二倍と同じである場合、前記符号化ユニットは、二分木分割及び/又は三分木分割されないことがある。それにより、前記複合型ツリーの分割か否かの情報は、シグナリングされず、第2の値に推論できる。なぜなら、前記符号化ユニットを二分木分割及び/又は三分木分割する場合は、二分木の最小サイズ及び/又は三分木の最小サイズよりも小さい符号化ユニットが生成されるためである。
又は、複合型ツリーのノードに該当する符号化ユニットの複合型ツリー内の深さが複合型ツリーの最大深さと同じである場合、前記符号化ユニットは、二分木分割及び/又は三分木分割されないことがある。それにより、前記複合型ツリーの分割か否かの情報は、シグナリングされず、第2の値に推論できる。
又は、複合型ツリーのノードに該当する符号化ユニットに対して垂直方向の二分木分割、水平方向の二分木分割、垂直方向の三分木分割及び水平方向の三分木分割のうちの少なくとも一つが可能である場合にのみ、前記複合型ツリーの分割か否かの情報をシグナリングすることができる。そうでない場合、前記符号化ユニットは、二分木分割及び/又は三分木分割されないことがある。それにより、前記複合型ツリーの分割か否かの情報は、シグナリングされず、第2の値に推論できる。
又は、複合型ツリーのノードに該当する符号化ユニットに対して垂直方向の二分木分割と水平方向の二分木分割がすべて可能であるか、或いは垂直方向の三分木分割と水平方向の三分木分割がすべて可能である場合にのみ、前記分割方向の情報をシグナリングすることができる。そうでない場合、前記分割方向情報は、シグナリングされず、分割が可能な方向を指示する値に推論できる。
又は、複合型ツリーのノードに該当する符号化ユニットに対して垂直方向の二分木分割と垂直方向の三分木分割がすべて可能であるか、或いは水平方向の二分木分割と水平方向の三分木分割がすべて可能である場合にのみ、前記分割ツリー情報をシグナリングすることができる。そうでない場合、前記分割ツリー情報は、シグナリングされず、分割が可能なツリーを指示する値に推論できる。
図4は画面内予測過程の実施形態を説明するための図である。
図4の中心から外郭への矢印は、画面内予測モードの予測方向を示すことができる。
画面内符号化及び/又は復号化は、現在ブロックの周辺ブロックの参照サンプルを用いて行われ得る。周辺ブロックは、復元された周辺ブロックであり得る。例えば、画面内符号化及び/又は復号化は、復元された周辺ブロックが含む参照サンプルの値又は符号化パラメータを用いて行われ得る。
予測ブロックは、画面内予測の実行の結果として生成されたブロックを意味することができる。予測ブロックは、CU、PU及びTUのうちの少なくとも一つに該当することができる。予測ブロックの単位は、CU、PU及びTUのうちの少なくとも一つの大きさであり得る。予測ブロックは、2x2、4x4、16x16、32x32又は64x64などのサイズを有する正方形のブロックであってもよく、2x8、4x8、2x16、4x16及び8x16などのサイズを有する長方形のブロックであってもよい。
画面内予測は、現在ブロックに対する画面内予測モードに応じて行われ得る。現在ブロックが持つことが可能な画面内予測モードの数は、予め定義された固定値であってもよく、予測ブロックの属性によって異なるように決定された値であってもよい。例えば、予測ブロックの属性は、予測ブロックのサイズ及び予測ブロックの形状などを含むことができる。
画面内予測モードの個数は、ブロックのサイズを問わずにN個に固定できる。また、例えば、画面内予測モードの個数は、3、5、9、17、34、35、36、65、67又は131などであり得る。また、画面内予測モードの個数は、ブロックのサイズ及び/又は色成分(color component)のタイプによって異なり得る。例えば、色成分が輝度(luma)信号であるか色差(chroma)信号であるかによって、画面内予測モードの個数が異なり得る。例えば、ブロックのサイズが大きくなるほど画面内予測モードの数は多くなってもよい。又は、輝度成分ブロックの画面内予測モードの個数は、色差成分ブロの画面内予測モードの個数よりも多くてもよい。
画面内予測モードは非方向性モード又は方向性モードであり得る。非方向性モードは、DCモード又はPlanarモードであり、方向性モード(angular mode)は、特定の方向又は角度を持つ予測モードであり得る。前記画面内予測モードは、モード番号、モード値、モード数字、モード角度及びモード方向のうちの少なくとも一つで表現できる。画面内予測モードの個数は、前記非方向性及び方向性モードを含む一つ以上のM個であり得る。
現在ブロックを画面内予測するために、復元された周辺ブロックに含まれるサンプルが現在ブロックの参照サンプルとして利用可能であるか否かを検査するステップが行われ得る。現在ブロックの参照サンプルとして利用不可能なサンプルが存在する場合、復元された周辺ブロックに含まれているサンプルのうちの少なくとも一つのサンプル値をコピー及び/又は補間した値を用いて、参照サンプルとして利用不可能なサンプルのサンプル値を代替した後、現在ブロックの参照サンプルとして利用することができる。
画面内予測の際に、画面内予測モード及び現在ブロックのサイズのうちの少なくとも一つに基づいて、参照サンプル又は予測サンプルのうちの少なくとも一つにフィルタを適用することができる。
Planarモードの場合、現在ブロックの予測ブロックを生成するとき、予測対象サンプルの予測ブロック内の位置に基づいて、現在サンプルの上側及び左側参照サンプル、現在ブロックの右上側及び左下側参照サンプルの重み付け和を用いて予測対象サンプルのサンプル値を生成することができる。また、DCモードの場合、現在ブロックの予測ブロックを生成するとき、現在ブロックの上側及び左側参照サンプルの平均値を用いることができる。また、方向性モードの場合、現在ブロックの上側、左側、右上側及び/又は左下側参照サンプルを用いて予測ブロックを生成することができる。予測サンプル値を生成するために、実数単位の補間を行うこともできる。
現在ブロックの画面内予測モードは、現在ブロックの周辺に存在するブロックの画面内予測モードから予測してエントロピー符号化/復号化することができる。現在ブロックと周辺ブロックとの画面内予測モードが同一であれば、所定のフラグ情報を用いて現在ブロックと周辺ブロックとの画面内予測モードが同一であるという情報をシグナリングすることができる。また、複数の周辺ブロックの画面内予測モードのうち、現在ブロックの画面内予測モードと同じ画面内予測モードに対するインジケータ情報をシグナリングすることができる。現在ブロックと周辺ブロックとの画面内予測モードが異なる場合、周辺ブロックの画面内予測モードに基づいてエントロピー符号化/復号化を行って現在ブロックの画面内予測モード情報をエントロピー符号化/復号化することができる。
図5は本発明による画面内予測を説明するための図である。
現在ブロックに対する画面内予測は、画面内予測モード誘導ステップ(S510)、参照サンプル構成ステップ(S520)、及び/又は画面内予測実行ステップ(S530)を含むことができる。
ステップS510で、現在ブロックの画面内予測モードが誘導できる。現在ブロックの画面内予測モードは、周辺ブロックの画面内予測モードを用いる方法、ビットストリームから現在ブロックの画面内予測モードをエントロピー符号化/復号化する方法、周辺ブロックの符号化パラメータを用いる方法、又は色成分の画面内予測モードを用いる方法を用いて誘導できる。前記周辺ブロックの画面内予測モードを用いる方法によれば、周辺ブロックの画面内予測モード、周辺ブロックの一つ以上の画面内予測モードの組み合わせ、及び一つ以上のMPMを用いて誘導された画面内予測モードのうちの少なくとも一つを用いて、現在ブロックの画面内予測モードが誘導できる。
ステップS520で、参照サンプル選択、参照サンプルパディング及び参照サンプルフィルタリングのうちの少なくとも一つを行うことにより、参照サンプルが構成できる。
ステップS530で、非方向性予測、方向性予測、位置情報に基づく予測、及び色成分間の予測のうちの少なくとも一つを行うことにより、画面内予測が行われ得る。前記方向性予測が行われる場合、現在ブロックの一つ以上のサンプルを含む所定の単位ごとに互いに異なる方向性又は補間フィルタの類型を持つ予測が行われ得る。前記所定の単位は、例えば、単一サンプル、サンプルグループ、ライン及びブロックのうちの少なくとも一つであり得る。ステップS530で、予測サンプルに対するフィルタリングがさらに行われ得る。前記フィルタの類型は、フィルタタップ、フィルタ係数及びフィルタ形状のうちの少なくとも一つを意味することができる。
画面内予測は、画面内予測モード、現在ブロックのサイズ、現在ブロックの形状及び予測サンプルの位置のうちの少なくとも一つに基づいて適応的に行われ得る。例えば、複数の参照サンプルラインを用いるか否か、補間フィルタを行うか否か、補間フィルタの係数、フィルタリングを行うか否か、重み付け平均を行うか否か、及び/又は重み付け平均に使用される重みは、前記画面内予測モード、現在ブロックのサイズ、現在ブロックの形状及び予測サンプルの位置のうちの少なくとも一つに基づいて適応的に決定できる。これについての具体的な内容は後述する。
現在ブロックの画面内予測モードを誘導するために、一つ以上の復元された周辺ブロックが利用できる。復元された周辺ブロックの位置は、予め定義された固定位置、又は符号化/復号化して誘導された位置であり得る。以下、符号化/復号化は、エントロピー符号化及び復号化を意味することができる。例えば、WxHサイズの現在ブロックの左上側コーナーサンプルの座標を(0,0)とするとき、前記周辺ブロックは、(-1,H-1)、(W-1,-1)、(W,-1)、(-1,H)及び(-1,-1)座標に隣接するブロック、及びこれらのブロックの周辺ブロックのうちの少なくとも一つであり得る。この時、前記W及びHは、前記現在ブロックの横(W)及び縦(H)の長さまたはサンプルの数を示すことができる。
利用不可能な周辺ブロックの画面内予測モードは、所定の画面内予測モードで代替できる。前記所定の画面内予測モードは、例えば、DCモード、Planarモード、垂直モード、水平モード及び/又は対角モードであり得る。例えば、周辺ブロックがピクチャ、スライス、タイル、CTU(Coding Tree Unit)などのうちの少なくとも一つの所定のユニットの境界の外に位置するか、画面間予測されるか、或いはPCMモードで符号化された場合、当該周辺ブロックは、利用不可能であると判断できる。又は、前記周辺ブロックが利用不可能である場合、前記利用不可能な周辺ブロックの画面内予測モードを代替せずに、前記利用不可能な周辺ブロックを利用しなくてもよい。
現在ブロックの画面内予測モードは、所定の位置の周辺ブロックの画面内予測モード又は二つ以上の周辺ブロックの画面内予測モードの統計値を用いて誘導できる。本明細書において、統計値は、平均値、最大値、最小値、最頻値、中央値、重み付け平均値及び補間値のうちの少なくとも一つを意味することができる。
又は、周辺ブロックのサイズに基づいて現在ブロックの画面内予測モードを誘導することができる。例えば、相対的にサイズが大きい周辺ブロックの画面内予測モードを現在ブロックの画面内予測モードとして誘導することができる。又は、相対的にサイズが大きいブロックの画面内予測モードに相対的に大きい重みを付与して統計値を計算することもできる。又は、相対的に大きい重みが付与されるモードが、予め定義されるか或いはシグナリングされ得る。例えば、垂直方向モード、水平方向モード、対角方向モード及び非方向性モードのうちの少なくとも一つに対して、相対的に大きい重みが付与できる。これらのモードに対しては、同一の重みが付与されてもよい。
又は、周辺ブロックの画面内予測モードが方向性であるか否かが考慮できる。例えば、周辺ブロックの画面内予測モードが非方向性である場合、前記非方向性モードを現在ブロックの画面内予測モードとして誘導することができる。又は、前記非方向性モードを除く、他の周辺ブロックの画面内予測モードを用いて、現在ブロックの画面内予測モードを誘導することもできる。
現在ブロックの画面内予測モードを誘導するために、周辺ブロックの画面内予測モードを用いて一つ以上のMPM(Most Probable Mode)リストを構成することができる。MPMリストに含まれる候補モードの個数Nは、固定されるか、或いは現在ブロックのサイズ及び/又は形状に応じて決定できる。MPMリストは、重複するモードがないように構成できる。利用可能な候補モードの個数がN未満である場合には、利用可能な候補モードのうち、所定の候補モード、例えば方向性モードに対して所定のオフセットを加減したモードを前記一つ以上のMPMリストに追加することができる。又は、水平モード、垂直モード、45度モード、135度モード、225度モード及び非方向性モードのうちの少なくとも一つをMPMリストに追加することができる。前記所定のオフセットは1、2、3、4、又は正の整数であり得る。
MPMリストは、周辺ブロックの位置に基づく所定の順序で構成できる。例えば、前記所定の順序は、現在ブロックの左側、上側、左下側コーナー、右上側コーナー及び左上側コーナーに隣接するブロックの順序であり得る。非方向性モードは、MPMリストの任意の位置に含まれ得る。例えば、左側及び上側に隣接するブロックの画面内予測モードの次に追加できる。
現在ブロックを基準に生成されたMPMリストは、現在ブロックに含まれている一つ以上のサブブロックに対するMPMリストとして利用可能である。MPMリストを構成する候補モード間の順序、MPMリストに含まれる候補モードの個数などは、現在ブロックのサイズ、形状及び/又は成分に基づいて決定できる。
又は、MPMリストに含まれていないモードの中から一部のモードを選択することにより、モードグループを構成し、構成されたモードグループを別のリストとして活用することができる。例えば、MPM候補ではないモードをソートした後、所定の間隔でサンプリングしたモード、又はMPM候補モードに対してn(nは1以上の整数)を加減したモードを用いてモードグループを構成することができる。
他の実施形態として、MPMリストを用いて誘導された画面内予測モードと周辺ブロックの画面内予測モードを用いて、現在ブロックの画面内予測モードが誘導できる。例えば、MPMリストを用いて誘導された画面内予測モードをPred_mpmとするとき、周辺ブロックの画面内予測モードを用いて前記Pred_mpmを変更することができる。例えば、Pred_mpmが周辺ブロックの画面内予測モード(又は二つ以上の画面内予測モードの統計値)よりも大きい場合には、Pred_mpmをnだけ増加させ、そうでない場合には、nだけ減少させることができる。この時、nは+1、+2、+3、0、-1、-2、-3などの所定の整数であり得る。現在ブロックの画面内予測モードは、変更されたPred_mpmで誘導できる。又は、Pred_mpmと周辺ブロックの画面内予測モードのうちの少なくとも一つが非方向性モードである場合、現在ブロックの画面内予測モードは前記非方向性モードで誘導されてもよい。又は、逆に、現在ブロックの画面内予測モードは方向性モードで誘導されてもよい。
画面内予測モードを誘導する別の実施形態として、他の色成分の画面内予測モードを用いて現在ブロックの画面内予測モードを誘導することができる。例えば、現在ブロックが色差ブロックである場合、前記色差ブロックに対応する輝度ブロックの画面内予測モードが利用可能である。前記対応する輝度ブロックは一つ以上であり得る。前記対応する輝度ブロックは、色差ブロックのサイズ、形状及び/又は符号化パラメータのうちの少なくとも一つに基づいて決定されてもよい。又は、前記対応する輝度ブロックは、輝度ブロックのサイズ、形状及び/又は符号化パラメータのうちの少なくとも一つに基づいて決定されてもよい。
色差ブロックに対応する輝度ブロックは、複数のパーティションを含むことができる。前記複数のパーティションの全部又は一部は、異なる画面内予測モードを持つことができる。色差ブロックの画面内予測モードは、対応する輝度ブロック内の複数のパーティションの全部又は一部に基づいて誘導できる。この際、色差ブロックと輝度ブロック(複数のパーティション全部又は一部)間のブロックサイズ、形状、深さ情報などの比較に基づいて、一部のパーティションが選択的に利用されてもよい。色差ブロック内の所定の位置に対応する輝度ブロック内位置のパーティションが選択的に利用されてもよい。前記所定の位置は、色差ブロックのコーナーサンプル(例えば、左上側サンプル)の位置または中央サンプルの位置を意味することができる。
本発明に係る色成分間の画面内予測モードの誘導方法は、対応する輝度ブロックの画面内予測モードを用いることに限定されない。例えば、対応する輝度ブロックのmpm_idx又はMPM listのうちの少なくとも一つを利用または共有して色差ブロックの画面内予測モードを誘導することもできる。
図6は輝度ブロックと色差ブロックの関係を説明するための例示図である。
図6に示された例において、色成分間の比率は4:2:0であり、色差ブロックに対応する輝度ブロックはA、B、C及びDのうちの少なくとも一つであり得る。
図6に示された例において、色差ブロックの画面内予測モードは、色差ブロック内の左上側位置(0,0)に対応する輝度ブロックAの画面内予測モード又は色差ブロックの中央サンプル(nS/2,nS/2)に対応する輝度ブロックDの画面内予測モードを用いて誘導できる。前記色差ブロック内の所定の位置は(0,0)及び(nS/2,nS/2)に限定されない。例えば、前記所定の位置は、色差ブロック内の右上側、左下側、及び/又は右下側コーナーサンプルの位置であってもよい。
前記所定の位置は、色差ブロックの形状に基づいて選択できる。例えば、色差ブロックが正方形である場合には、前記所定の位置は中央サンプルの位置であってもよい。例えば、色差ブロックが長方形である場合には、前記所定の位置は、左上側サンプルの位置であってもよい。上記の例において、色差ブロックが正方形である場合と、色差ブロックが長方形である場合における前記所定の位置は反対であってもよい。
他の実施形態として、色差ブロックのサイズに対応する輝度ブロック内の一つ以上の画面内予測モードの統計値を用いて色差ブロックの画面内予測モードを誘導することができる。
図6に示された例において、例えば、輝度ブロックAとDの画面内予測モードの平均に該当するモード、又は色差ブロックのサイズに対応する輝度ブロック内のA、B、C、Dの画面内予測モードの平均に該当するモードを色差ブロックの画面内予測モードとして誘導することができる。
利用可能な輝度ブロックの画面内予測モードが複数存在する場合、それらの全部又は一部が選択できる。前記選択は、色差ブロック内の所定の位置に基づいて、或いは色差ブロック及び/又は輝度ブロックのサイズ、形状及び/又は深さに基づいて行われ得る。前記選択された輝度ブロックの画面内予測モードを用いて色差ブロックの画面内予測モードを誘導することができる。
例えば、色差ブロック内の左上側サンプルの位置(0,0)に対応する輝度ブロックAと色差ブロック内の中央サンプルの位置(nS/2,nS/2)に対応する輝度ブロックDとのサイズを比較して、相対的に大きい輝度ブロックDの画面内予測モードを用いて色差ブロックの画面内予測モードを誘導することができる。
又は、色差ブロック内の所定の位置に対応する輝度ブロックが色差ブロックと同じかそれより大きければ、当該輝度ブロックの画面内予測モードを用いて色差ブロックの画面内予測モードを誘導することができる。
又は、色差ブロックのサイズが所定の範囲に該当する場合、色差ブロック内の左上側サンプルの位置(0,0)に対応する輝度ブロックの画面内予測モードを用いて、色差ブロックの画面内予測モードを誘導することができる。
又は、色差ブロックのサイズが所定の範囲に該当する場合には、色差ブロック内の所定の位置(0,0)と(nS/2,nS/2)に対応する輝度ブロックのサイズを比較して、大きいブロックの画面内予測モードを用いて、色差ブロックの画面内予測モードを誘導することができる。
前記所定の範囲は、ビットストリームを介してシグナリングされる情報、ブロック(色差ブロック及び/又は輝度ブロック)のサイズ(及び/又は深さ)に関する情報、及び符号化/復号化器で予め定義された情報のうちの少なくとも一つに基づいて誘導できる。
又は、色差ブロックの形状が長方形である場合、色差ブロック内の中央サンプルの位置(nS/2,nS/2)に対応する輝度ブロックの画面内予測モードを用いて、色差ブロックの画面内予測モードを誘導することができる。
又は、輝度ブロック内の複数のパーティションのうち、色差ブロックと同じ形状を有するパーティションが利用できる。例えば、色差ブロックが正方形又は非正方形である場合、輝度ブロック内の複数のパーティションのうち、正方形又は非正方形のパーティションが利用できる。
図6を参照して説明した例において、輝度ブロックの画面内予測モードを用いて色差ブロックの画面内予測モードを誘導するという意味は、輝度ブロックの画面内予測モードが色差ブロックの画面内予測モードとしてそのまま用いられる場合を含む。また、輝度ブロックの画面内予測モードを用いることに限定されず、輝度ブロックのmpm_idx、MPMリストを含め、輝度ブロックの画面内予測モードの誘導時に使用された情報を用いてもよい。
又は、前記所定の位置に対応する輝度ブロックの画面内予測モードを用いて、色差ブロックに対するMPMリストを構成することもできる。この場合、色差ブロックに対するmpm_idx情報が符号化されてシグナリングできる。色差ブロックに対するMPMリストは、輝度ブロックのMPMリストと同様の方法で構成できる。しかし、色差ブロックのMPM候補は、周辺色差ブロックの画面内予測モード、及び/又は対応する輝度ブロックの画面内予測モードを含むことができる。
MPM flagが0である場合、一つ以上の画面内予測モードを含む2次MPMリストを構成し、2次MPMインデックス(2nd_mpm_idx)を用いて現在ブロックの画面内予測モードを誘導することができる。この際、現在ブロックの画面内予測モードが2次MPMリストに含まれるかを指示する2次インジケータ(例えば、2次MPM flag)が符号化/復号化できる。2次MPMリストは、1次MPMリストと同様に、周辺ブロックの画面内予測モードを用いて構成できる。このとき、1次MPMリストに含まれている画面内予測モードは、2次MPMリストに含まれなくてもよい。MPMリストの個数は1つ又は2つに限定されず、N個のMPMリストが使用できる。
現在ブロックの画面内予測モードが複数のMPMリストのうちのいずれかに含まれない場合、現在ブロックの輝度成分の画面内予測モードは符号化/復号化できる。また、色差成分の画面内予測モードは、対応する輝度成分の画面内予測モードに基づいて誘導されるか、或いは符号化/復号化され得る。
現在ブロックが複数のサブブロック(sub block)に分割される場合、分割されたそれぞれのサブブロックに対する画面内予測モードを誘導するために、前述した方法のうちの少なくとも一つが適用できる。
サブブロックのサイズ及び/又は形状は、所定のサイズ及び/又は形状(例えば、4x4)であるか、或いは現在ブロックのサイズ及び/又は形状に応じて決定できる。又は、サブブロックのサイズは、現在ブロックの周辺ブロックの分割有無に基づいて決定されるか、或いは現在ブロックの周辺ブロックの画面内予測モードに基づいて決定され得る。例えば、周辺ブロックの画面内予測モードが異なる境界を基準に、現在ブロックが分割できる。又は、周辺ブロックが画面内符号化ブロックであるか画面間符号化ブロックであるかに基づいて、現在ブロックが分割できる。
現在ブロックの画面内予測モードが周辺ブロックの画面内予測モードを用いて誘導されることを示すインジケータ(例えば、NDIP_flag)が符号化/復号化できる。前記インジケータは、現在ブロック又はサブブロックのうちの少なくとも一つの単位ごとに符号化/復号化できる。この時、現在ブロック又はサブブロックのサイズが所定のサイズまたは所定のサイズ範囲に該当する場合にのみ、前記インジケータが符号化/復号化できる。
現在ブロックのサイズが所定のサイズに該当するかの判断は、現在ブロックの横又は縦の長さに基づいて行われ得る。例えば、横又は縦の長さが分割可能な長さであれば、現在ブロックのサイズが所定のサイズに該当すると判断できる。
現在ブロックが複数のサブブロックに分割される場合、複数のサブブロックの画面内予測モードは、ジグザグ順に誘導されるか、或いは並列的に誘導され得る。サブブロックの画面内予測モードは、現在ブロックの画面内予測モードを誘導する方法の少なくとも一つの方法で誘導できる。この時、現在ブロックの周辺ブロックが各サブブロックの周辺ブロックとして用いられてもよい。又は、現在ブロック内のサブブロックが各サブブロックの周辺ブロックとして用いられてもよい。
現在ブロック内のサブブロックのうち、第1サブブロックに対する画面内予測モードは、残りのサブブロックとは異なる方法で誘導できる。第1サブブロックは、例えば、スキャン順における最初のサブブロックであってもよい。
現在ブロックに属するサブブロックの画面内予測モードは、現在ブロックの画面内予測モードと各サブブロックの(0,0)位置サンプルの左側及び上側に隣接するブロックの画面内予測モードの平均値を用いて誘導することができる。例えば、現在ブロックの画面内予測モードが前記平均値よりも大きい場合には、前記平均値の1/2だけを前記誘導した画面内予測モードから差し引くことができ、同じかそれより小さい場合には、加えることができる。
画面内予測に関する情報は、VPS(video parameter set)、SPS(sequence parameter set)、PPS(picture parameter set)、APS(adaptation parameter set)、スライス(slice)ヘッダー、及びタイル(tile)ヘッダーのうちの少なくとも一つを介してシグナリングできる。所定のブロックサイズ以下では、画面内予測に関する情報のうちの少なくとも一つがシグナリングされないことがある。この場合には、以前に符号化/復号化されたブロック(例えば、上位ブロック)の画面内予測に関する情報が使用できる。
前記誘導された画面内予測モードに基づいて、画面内予測のための参照サンプルが構成できる。以下の説明で、現在ブロックは、予測ブロック、又は予測ブロックよりも小さいサイズ/形状を有するサブブロックを意味することができる。参照サンプルは、現在ブロックの周辺の復元された一つ以上のサンプル又はサンプル組み合わせを用いて構成できる。また、構成された参照サンプルに対してフィルタリングが適用できる。
参照サンプルの構成に使用される復元サンプルラインの数及び/又は位置は、符号化ツリーブロック内の現在ブロックの位置によって異なり得る。複数の復元サンプルライン上の各復元サンプルは、そのまま参照サンプルとして使用できる。又は、復元サンプルに所定のフィルタを適用し、フィルタリングされた復元サンプルを用いて参照サンプルを生成することもできる。フィルタが適用される復元サンプルは、同じ復元サンプルラインに属するか、或いは異なる復元サンプルラインに属する。
前記構成された参照サンプルはref[m,n]で表し、周辺の復元されたサンプル、又はそれをフィルタリングしたサンプルはrec[m,n]で表すことができる。このとき、m又はnは、サンプルの位置を示す所定の整数値であり得る。現在ブロック内の左上側サンプルの位置が(0,0)であるとき、現在ブロックの左上側参照サンプルの位置は(-1,-1)に設定できる。
図7は複数の復元サンプルラインを説明するための図である。
参照サンプルは、現在ブロックに隣接する一つ以上の復元サンプルラインを選択することにより構成できる。例えば、図7において、複数の復元サンプルラインの中からいずれかのラインを選択して参照サンプルを構成することができる。
例えば、復元サンプルラインのうちの特定のラインが固定的又は適応的に選択できる。
他の実施形態として、図7において、複数の復元サンプルラインの中から一つ以上の復元サンプルラインを選択し、選択された一つ以上の復元サンプルラインを組み合わせることにより、参照サンプルを構成することができる。
例えば、数式1のように、現在ブロックからの距離に応じて異なる重みが適用された重み付け平均を用いて参照サンプルを構成することができる。
又は、現在ブロックからの距離及び画面内予測モードのうちの少なくとも一つに基づいて、複数の復元サンプルの平均値、最大値、最小値、中央値及び最頻値の少なくとも一つの計算値を用いて参照サンプルを構成することができる。
又は、連続する複数の復元サンプルの値の変化(変化量)に基づいて参照サンプルを構成することができる。例えば、連続する二つの復元サンプルの値がしきい値以上異なるか否か、連続する複数の復元サンプルの値が連続的又は不連続的に変わるか否かなどの少なくとも一つに基づいて、参照サンプルを構成することができる。例えば、rec[-1,-1]とrec[-2,-1]がしきい値以上異なる場合、ref[-1,-1]は、rec[-1,-1]と決定されるか、rec[-1,-1]に所定の重みを付与した加重平均を適用した値と決定され得る。例えば、連続する複数の復元サンプルの値が現在ブロックに近づくほどnずつ変わる場合、参照サンプルref[-1,-1]=rec[-1,-1]-nで決定できる。
別の実施形態として、図7において、2つ以上の復元サンプルラインを選択して参照サンプルを構成することができる。一例として、復元サンプルライン1と復元サンプルライン2を固定的に選択するか、或いは復元サンプルライン1乃至復元サンプルライン4に該当する4つのラインを選択して参照サンプルを構成することができる。
または、2つ以上の復元サンプルラインを適応的に選択して参照サンプルを構成することもできる。一例として、1つのラインは、固定的に選択し、別の一つ以上のラインは、適応的に選択して参照サンプルを構成することができる。
前記固定的に選択されるラインは、符号化器/復号化器で予め定義できる。予め定義された場合、前記固定的に選択されたラインに対する情報はシグナリグされなくてもよい。
前記適応的に選択されるラインに対する情報は、インジケータまたはインデックスの形態でシグナリングできる。前記適応的に選択されるラインは、現在ブロックまたは周辺ブロックのサイズ/形状、画面内予測モードなどの符号化パラメータのうちの少なくとも一つを用いて決定できる。この場合、選択に必要な情報はシグナリングされなくてもよい。
前記参照サンプルラインは一つ以上のサンプルから構成できる。例えば、現在ブロックの横又は縦の長さと同じ長さで構成できる。又は、前記横又は縦の長さの2倍に該当する長さで構成できる。又は、前記横又は縦の長さの2培に1、2、3、...、N個のサンプルを加えた長さで構成できる。すなわち、前記参照サンプルラインは、2*(W+H)+N個で構成でき、Nは1以上の整数であり得る。
前記現在ブロックの上側に隣接する参照サンプルを構成する方法と左側に隣接する参照サンプルを構成する方法とは互いに異なり得る。例えば、上側の参照サンプルラインの数と左側の参照サンプルラインの数とを異なるように構成することができる。例えば、現在ブロックの横または横のサイズ、画面内予測モードのうちの少なくとも一つに応じて、上側に隣接する参照サンプルラインは1つ、左側に隣接する参照サンプルラインは2つで構成できる。例えば、上側の参照サンプルラインの長さと左側の参照サンプルラインの長さとを異なるように構成することができる。例えば、現在ブロックの横または縦のサイズ、画面内予測モードのうちの少なくとも一つに応じて前記長さを異なるように構成することができる。
前記参照サンプルラインの長さは、参照サンプルラインごとに異なるように構成することができる。例えば、図7において、復元サンプルライン2乃至復元サンプルライン4の長さは、復元サンプル1よりも一つ以上のサンプルだけ長く構成することができる。
前記参照サンプルラインの長さは、前記復元サンプルラインごとに異なり得る。例えば、復元サンプルラインnは、復元サンプルラインn-1よりもm個のサンプルだけ長く又は短く構成できる。図7に示された例では、復元サンプルラインnは復元サンプルラインn-1よりも一つのサンプルだけ長く構成される。
又は、前記参照サンプルラインのそれぞれは、画面内予測モードに応じてシフトされることにより再構成できる。例えば、画面内予測モードによって参照される位置に参照サンプルが存在しない場合、参照サンプルが位置するように当該参照サンプルラインをシフトすることができる。どんな参照サンプルラインをシフトするか又はどれほどシフトするかは、画面内予測モード、予測角度及び/又は参照サンプルラインの位置に基づいて決定できる。
前述したように、最も近い参照サンプルラインのみを用いて参照サンプルを構成するか、或いは複数の参照サンプルラインを用いて参照サンプルを構成するかについての情報は、符号化/復号化できる。例えば、前記情報は、シーケンス、ピクチャ、スライス、タイル、CTU、CU、PU及びTUレベルのうちの少なくとも一つのレベルで符号化/復号化できる。また、複数の参照サンプルラインの利用可能性についての情報がより上位レベルでシグナリングされてもよい。
前記参照サンプルの構成に使用される復元サンプルラインの数、位置及び構成方法のうちの少なくとも一つは、現在ブロックの上側又は左側の境界がピクチャ、スライス、タイル及び符号化ツリーブロック(CTB)のうちの少なくとも一つの境界に該当する場合に応じて異ならせることができる。例えば、前記2つ以上の参照サンプルラインを構成する際に、現在ブロックの上側境界がピクチャ、タイル、スライス及び符号化ツリーブロック(CTB)のうちの少なくとも一つに該当する場合、上側に隣接する参照サンプルラインを1つで構成することができる。例えば、現在ブロックの上側境界がCTUの上側境界である場合には、1つの参照サンプルラインのみを構成し、それ以外の場合には、2つ以上の参照サンプルラインを構成することができる。この際、CTUの上側境界の参照サンプルラインを1つのみ使用することにより、メモリに保存するためのラインバッファ(line buffer)を減少させる効果を確認することができる。
前記参照サンプルを選択するにあたり、参照サンプルを含んでいるブロックの可用性(availability)判断及び参照サンプルパディング(padding)を行うことができる。例えば、参照サンプルを含んでいるブロックが利用可能である場合には、該当する前記参照サンプルを用いることができる。一方、前記参照サンプルを含んでいるブロックが利用不可能である場合には、周辺の利用可能な一つ以上の参照サンプルを用いて、前記利用不可能な参照サンプルをパディングすることにより代替することができる。
参照サンプルがピクチャ、タイル、スライス、符号化ツリーブロック(CTB)及び所定の境界のうちの少なくとも一つの境界の外に存在する場合、前記参照サンプルは利用不可能であると判断できる。現在ブロックが、限られた画面内予測(CIP:constrained intra prediction)で符号化される場合に、前記参照サンプルを含んでいるブロックが画面間モードで符号化/復号化されていれば、前記参照サンプルは利用不可能であると判断できる。
図8は利用可能なサンプルを用いて、利用不可能なサンプルを代替する過程を説明するための図である。
前記周辺の復元されたサンプルが利用不可能であると判断される場合、周辺の利用可能な復元されたサンプルを用いて、前記利用不可能なサンプルを代替することができる。例えば、図8に示すように、利用可能なサンプルと利用不可能なサンプルが存在する場合、一つ以上の利用可能なサンプルを用いて、前記利用不可能なサンプルを埋めることができる。
利用不可能なサンプルのサンプル値は、所定の順序に従って、利用可能なサンプルのサンプル値で代替できる。利用不可能なサンプルの代替に用いられる利用可能なサンプルは、利用不可能なサンプルに隣接する利用可能なサンプルであり得る。隣接する利用可能なサンプルがない場合、最も先に出現する或いは最も近い利用可能なサンプルが用いられる。利用不可能なサンプルの代替順序は、例えば、左下側から右上側への順であってもよい。又は、右上側から左下側への順であってもよい。又は、左上側コーナーから右上側及び/又は左下側への順であってもよい。又は、右上側及び/又は左下側から左上側コーナーへの順であってもよい。
例えば、右下側サンプルの位置である0から開始して、利用可能なサンプルで、利用不可能なサンプルを代替することができる。すなわち、最初の利用不可能な4個のサンプルは「a」値で埋め、次の利用不可能な13個のサンプルは「b」値で埋めることができる。
例えば、利用可能なサンプルの組み合わせを用いて埋めることができる。例えば、利用不可能なサンプルの両端に位置した利用可能なサンプルの平均値または補間を用いて、前記利用不可能なサンプルを埋めることができる。すなわち、最初の利用不可能な4個のサンプルは「a」値で埋め、次の利用不可能な13個のサンプルは「b」と「c」の平均値または「b」と「c」の補間を用いて埋めることができる。
又は、13個の利用不可能なサンプルは、利用可能なサンプルbとcのサンプル値の間の任意の値で代替できる。この場合、利用不可能なサンプルは、互いに異なる値で代替できる。例えば、利用不可能なサンプルは、利用可能なサンプルaに近接するほどaの値に近接した値で代替できる。同様に、利用不可能なサンプルは、利用可能なサンプルbに近接するほどbの値に近接した値で代替できる。すなわち、利用不可能なサンプルから利用可能なサンプルa及び/又はbまでの距離に基づいて、利用不可能なサンプルの値が決定できる。利用不可能なサンプルの代替のために、これらの方法を含む複数の方法のうちの少なくとも一つが選択的に適用できる。利用不可能なサンプルの代替方法は、ビットストリームに含まれている情報によってシグナリングされるか、或いは符号化器と復号化器で予め定めた方法が利用できる。又は、利用不可能なサンプルの代替方法は、予め定めた方式によって誘導できる。例えば、利用可能なサンプルaとbの値の差及び/又は利用不可能なサンプルの個数に基づいて、利用不可能なサンプルの代替方法を選択することができる。例えば、二つの利用可能なサンプルの値の差としきい値との比較、及び/又は利用不可能なサンプルの個数としきい値との比較に基づいて、利用不可能なサンプルの代替方法が選択できる。例えば、二つの利用可能なサンプルの値の差がしきい値よりも大きいか、及び/又は利用不可能なサンプルの個数がしきい値よりも大きい場合には、利用不可能なサンプルは、互いに異なる値を持つように代替できる。利用不可能なサンプルの代替方法の選択は所定の単位で行われ得る。例えば、ビデオ、シーケンス、ピクチャ、スライス、タイル、符号化ツリーユニット、符号化ユニット、予測ユニット及び変換ユニットのうちの少なくとも一つの単位に対して、利用不可能なサンプルの代替方法が選択できる。このとき、利用不可能なサンプルの代替方法の選択は、前記所定の単位でシグナリングされる情報に基づくか、或いは前記所定の単位で誘導できる。又は、符号化器と復号化器で予め定めた方法が適用されてもよい。
前記参照サンプルが所定の位置に該当する場合、前記参照サンプルを含むブロックの可用性を判断せずにパディングを行うことができる。例えば、図7において、現在ブロックの左上側コーナーサンプルの位置を(0,0)とするとき、x座標またはy座標が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]の値でパディングすることができる。すなわち、x座標またはy座標がW+H以上であるサンプルに対しては、可用性判断を行わず、同一サンプルライン上の最も近いサンプルを用いてパディングを行うことができる。
現在ブロックの左上側コーナーサンプルの位置を(0,0)とするとき、現在ブロックの上側に存在する参照サンプルのうち、x座標がW以上W+H未満である位置に存在する参照サンプルに対して、前記可用性判断及びパディングが行われ得る。また、前記現在ブロックの左側に存在する参照サンプルのうち、y座標がH以上W+H未満である位置に存在する参照サンプルに対して、前記可用性判断及びパディングが行われ得る。
例えば、現在ブロックの左上側コーナーサンプルの位置を(0,0)とするとき、rec[x,-1](x=-1~W+H-1)及び/又はrec[-1,y](y=0~H+W-1)に該当する参照サンプルに対して、前記可用性判断及びパディングが行われ得る。
前記パディングを行うにあたり、複数の参照サンプルラインが使用できる。例えば、現在ブロックに隣接する一番目の参照サンプルラインに対してパディングを行う場合、二番目の隣接する参照サンプルラインが使用できる。例えば、下記数式2を用いてパディングが行われ得る。すなわち、一番目の復元サンプルラインと二番目の復元サンプルラインから選択された複数のサンプル値の重み付け平均を用いて一番目の参照サンプルラインのサンプル値を誘導することができる。この際、選択される復元サンプルは、現在サンプル位置及び/又は現在サンプルに隣接する位置のサンプルであり得る。
前記構成された一つ以上の参照サンプルに対してフィルタリングが行われ得る。前記フィルタリングは、現在ブロックの画面内予測モード、現在ブロックのサイズ及び現在ブロックの形状のうちの少なくとも一つに基づいて適応的に行われ得る。例えば、フィルタリングの適用有無、フィルタの類型、フィルタ強さ及びフィルタ係数のうちの少なくとも一つが適応的に決定できる。
例えば、複数の参照サンプルラインのそれぞれに対してフィルタリングの適用有無を異ならせることができる。例えば、現在ブロックに隣接する一番目の参照サンプルラインに対してはフィルタリングを適用し、二番の参照サンプルラインに対してはフィルタリングを適用しなくてもよい。例えば、同一の参照サンプルに対してフィルタリングを適用した値と適用していない値とを一緒に使用することができる。
例えば、現在ブロックの画面内予測モード、現在ブロックのサイズ及び現在ブロックの形状のうちの少なくとも一つに応じて、3-tapフィルタ、5-tapフィルタ、7-tapフィルタ、及びN-tapフィルタのうちの少なくとも一つを異なるように選択して適用することができる。このとき、Nは正の整数であり得る。
例えば、現在ブロックの画面内予測モード、現在ブロックのサイズ及び現在ブロックの形状のうちの少なくとも一つに応じて、フィルタの形状を異なるように選択して適用することができる。例えば、図9は様々なフィルタ形状を示す図である。
前記現在ブロックの形状は、前記現在ブロックの横及び縦の長さを比較して判断又は決定できる。例えば、前記現在ブロックが横に長い長方形であるか縦に長い長方形であるかによって、フィルタの適用有無、フィルタの類型、フィルタ強さ及びフィルタ係数のうちの少なくとも一つが適応的に決定できる。または、現在ブロックが正方形であるか長方形であるかによって、フィルタの適用有無、フィルタの類型、フィルタ強さ及びフィルタ係数のうちの少なくとも一つが適応的に決定できる。
前記誘導された画面内予測モード及び参照サンプルに基づいて、前記現在ブロックに対する画面内予測を行うことができる。
例えば、現在ブロックに対して非方向性画面内予測が行われ得る。
非方向性画面内予測モードは、例えば、DCモード、Planarモード及びLMモードのうちの少なくとも一つであり得る。
DCモードの場合、前記構成した参照サンプルのうちの一つ以上の参照サンプルの平均値を用いて予測を行うことができる。この際、現在ブロックの境界に位置した一つ以上の予測サンプルに対してフィルタリングが適用できる。DC予測は、現在ブロックのサイズ及び形状の少なくとも一つに基づいて適応的に行われ得る。また、現在ブロックのサイズ及び形状のうちの少なくとも一つに基づいて、DCモードに用いられる参照サンプルの範囲が特定できる。
図10はブロックの形状による画面内予測を説明するための図である。
例えば、現在ブロックの形状が図10(a)のように正方形である場合には、現在ブロックの上側と左側の参照サンプルの平均値を用いてDC予測を行うことができる。
例えば、現在ブロックが非正方形である場合、現在ブロックの左側又は上側に隣接する周辺サンプルが選択的に使用できる。現在ブロックの形状が図10(b)のように長方形である場合には、現在ブロックの横及び縦のうちの長い側に隣接する参照サンプルの平均値を用いて予測を行うことができる。
例えば、現在ブロックのサイズが所定のサイズに該当するか或いは所定の範囲に含まれる場合、現在ブロックの上側又は左側の参照サンプルの中から所定のサンプルが選択され、選択されたサンプルの平均値を用いて予測を行うことができる。前記所定のサイズは、符号化器/復号化器で予め定められた固定サイズNxMであり得る。NとMは0より大きい整数であり、NとMは互いに同一であっても異なってもよい。所定の範囲は、現在ブロックの参照サンプルを選択するためのしきい値を意味することができる。前記しきい値は、最小値及び最大値の少なくとも一つで実現できる。前記最小値及び/又は最小値は、符号化器/復号化器で予め定められた固定値であってもよく、符号化器で符号化されてシグナリングされる可変値であってもよい。
例えば、一つ以上の平均値を用いて予測を行うことができる。現在ブロックが正方形又は非正方形である場合には、上側参照サンプルを用いた第1平均値と左側参照サンプルを用いた第2平均値のうちの少なくとも一つを用いることができる。前記現在ブロックのDC予測値は、前記第1平均値又は第2平均値であってもよい。又は、前記現在ブロックのDC予測値は、前記第1平均値と第2平均値の重み付け和を用いて取得された値であり得る。例えば、前記第1及び第2平均値に対する重みは1:1であってもよい。
前記方法によれば、すべてのDC値の計算のためにシフト演算を用いることができる。例えば、前記方法は、サンプルの長さで表現される現在ブロックの横、縦、又は横と縦の和が2の自乗ではない場合にも適用できる。前記方法は、輝度(luma)DC予測及び色差(chroma)DC予測の両方に適用されてもよい。又は、輝度DC予測及び色差DC予測のうちの一方にのみ適用されてもよい。
例えば、前記現在ブロックが非正方形である場合、横の長さ又は縦の長さのうちのいずれかに基づいて予測を行うことができる。例えば、上側参照サンプルと左側参照サンプルとの和を、前記現在ブロックの横の長さ又は縦の長さのうちの大きい方に分けて予測値を求めることができる。このとき、前記大きい方に該当する値を用いた除算は、シフト(shift)演算で行われ得る。
例えば、複数の参照サンプルラインを用いてDC予測を行うことができる。例えば、図10(c)のように、2つの参照サンプルラインを用いて予測を行うことができる。
例えば、前記2つの参照サンプルラインに含まれる参照サンプルの平均値を前記現在ブロックのDC予測値として決定することができる。
又は、現在ブロックに隣接する第1ラインの参照サンプルと第2ラインの参照サンプルに対して、それぞれ異なる重みを付与することができる。例えば、第1ラインの参照サンプルと第2ラインの参照サンプルの値にそれぞれ3:1の重みを適用した値(例えば、(3*第1ライン参照サンプル+第2ライン参照サンプル+2)>>2の値)を求め、これらの値の平均値を前記現在ブロックのDC予測値として決定することができる。又は、(3*第1ライン参照サンプル-第2ライン参照サンプル)>>1の値を求め、これらの値の平均値を前記現在ブロックのDC予測値として決定することもできる。前記重みは、前述した例に限定されず、任意の重みになることもある。このとき、現在ブロックに隣接するサンプルラインであるほど相対的にさらに大きい重みが付与できる。利用可能な参照サンプルラインの数は、2つに限定されず、3つ以上の参照サンプルラインが用いられてもよい。
一つ以上の参照サンプルを用いて生成した一つ以上の平均値を用いて予測を行うことができる。例えば、現在ブロックの上側に位置する第1ラインの参照サンプル平均値、第2ラインの参照サンプル平均値、現在ブロックの左側に位置する第1ラインの参照サンプル平均値及び第2ラインの参照サンプル平均値のうちの少なくとも一つを用いて予測を行うことができる。
又は、前記第1ラインの参照サンプルと第2ラインの参照サンプルとの差異値を用いることができる。例えば、第1ライン参照サンプル+(第1ライン参照サンプル-第2ライン参照サンプル)>>1の値を求め、これらの値の平均値を前記現在ブロックのDC予測値として決定することができる。
Planarモードの場合には、前記現在ブロックの画面内予測対象サンプルの位置に応じて、前記構成した一つ以上の参照サンプルからの距離を考慮した重み付け和で予測を行うことができる。
現在ブロックの参照サンプル又は予測サンプルに対してフィルタリングを行うことができる。例えば、参照サンプルに対してフィルタリングを適用した後、Planar予測を行い、一つ以上の予測サンプルに対してフィルタリングを適用することができる。前記予測サンプルのうちのフィルタリング対象サンプルは、現在ブロック内の上側又は左側境界の1、2又はN個のラインであり得る。
前記Planar予測を行うために、一つ以上の参照サンプルの重み付け和を用いることができる。例えば、図10(d)のように5つの参照サンプルを用いることができる。例えば、[x,y]位置の対象サンプルを予測するために、参照サンプルr[-1,-1]、r[x,-1]、r[-1,y]、r[W,-1]、r[-1,H]が使用できる。このとき、W及びHは、それぞれ現在ブロックの横及び縦の長さであり得る。一例としては、下記数式3を用いて予測サンプルpred[x,y]を生成することができる。数式3において、a、b、c、d、eは重みを示すことができる。Nはlog
2(a+b+c+d+e)であり得る。
他の実施形態として、複数の参照サンプルラインを用いてPlanar予測を行うことができる。例えば、2つの参照サンプルラインの重み付け和を用いて予測することができる。例えば、2つの参照サンプルラインに含まれている参照サンプルの重み付け和が使用できる。この場合、第1参照サンプルラインから選択された参照サンプルに隣接する参照サンプルが第2参照サンプルラインから選択できる。(-1,-1)座標の参照サンプルに対しては、(-2,-2)座標の参照サンプルが選択できる。前記選択された参照サンプルの重み付け和として、Planar予測が実行でき、重みはDC予測で説明されたとおりである。
方向性予測モードの場合、水平モード、垂直モード、及び所定の角度を持つモードのうちの少なくとも一つのモードであり得る。
水平又は垂直モードの場合、予測対象サンプルの位置で水平又は垂直線上に存在する一つ以上の参照サンプルを用いて予測を行うことができる。複数の参照サンプルラインが使用でき、例えば、2つの参照サンプルラインが用いられる場合、水平又は垂直線上の2つの参照サンプルを用いて予測を行うことができる。同様に、N個の参照サンプルラインが用いられる場合、水平又は垂直線上のN個の参照サンプルが使用できる。
垂直モードの場合、一番目の参照サンプルライン上の第1参照サンプル(例えば、r[x,-1])と二番目の参照サンプルライン上の第2参照サンプル(例えば、r[x,-2])の統計値で予測を行うことができる。
例えば、(3*r[x,-1]+r[x,-2]+2)>>2の値を計算して、垂直モードの予測値を決定することができる。又は、(3*r[x,-1]-r[x,-2]+1)>>1の値を計算して、垂直モードの予測値を決定することができる。又は、(r[x,-1]+r[x,-2]+1)>>1の値を計算して、垂直モードの予測値を決定することができる。
例えば、垂直線上のサンプル値の変化量が考慮できる。例えば、(r[x,-1]+(r[x,-1]-r[x,-2])>>N)の値を計算して、垂直モードの予測値を決定することができる。このとき、Nは1以上の整数である得る。前記Nは固定された値であり得る。又は、予測対象サンプルのy座標が増加するにつれて、N値も増加することができる。例えば、N=y+1である得る。
水平モードの場合にも、前記垂直モードについて説明された一つ以上の方法が使用できる。
所定の角度を持つモードの場合、画面内予測対象サンプルの位置で所定の角度線上及びその周辺に存在する一つ以上の参照サンプルを用いて予測を行うことができる。このとき、前記用いられる参照サンプルは、N個であって、2、3、4、5及び6つのうちの少なくとも一つであり得る。また、N個の参照サンプルにN-tapフィルタ、すなわち、例えば2-tap、3-tap、4-tap、5-tap、6-tapフィルタのうちの少なくとも一つを適用することにより、予測を行うことができる。このとき、参照サンプルの少なくとも一つは現在ブロックの上側に、残りは現在ブロックの左側にそれぞれ位置することもできる。現在ブロックの上側に位置する参照サンプル(又は左側に位置する参照サンプル)は、互いに同じラインに位置したものであってもよく、互いに異なるラインに位置したものであってもよい。
他の実施形態として、画面内予測は、位置情報に基づいて行われ得る。このとき、位置情報は符号化/復号化でき、前記位置にある復元されたサンプルブロックを、現在ブロックの画面内予測ブロックとして誘導することができる。又は、復号化器において現在ブロックに類似するブロックを検索して見つけたブロックを、現在ブロックの画面内予測ブロックとして誘導することができる。
他の実施形態として、色成分間の画面内予測が行われ得る。例えば、現在ブロックの復元された輝度成分を用いて色差成分に対する画面内予測を行うことができる。又は、現在ブロックの復元された一つの色差成分Cbを用いて、他の色差成分Crに対する画面内予測を行うことができる。
前述した様々な実施形態の画面内予測を行うにあたり、参照サンプル構成ステップでフィルタリングを行っていない参照サンプルが使用できる。つまり、フィルタリングされていない参照サンプルを用いて、非方向性予測または方向性予測を行うことができる。前記参照サンプル構成ステップのフィルタリングを行わないことにより、符号化/復号化器の複雑さが減少でき、ハードウェアも簡素化できる。
前記画面内予測を行うにあたり、一つ以上の参照サンプルを用いて補間(interpolation)予測を行うことができる。前記画面内予測を行うにあたり、現在ブロックの画面内予測モード、現在ブロックのサイズ及び現在ブロックの形状のうちの少なくとも一つに基づいて、参照サンプルラインの数、補間フィルタタップ数、補間フィルタ係数値、フィルタリング適用有無、重み付け平均方法及び重みのうちの少なくとも一つを異ならせて適用して予測を行うことができる。
例えば、一つ以上の参照サンプルラインを用いることができ、一つ以上の符号化パラメータに基づいて前記参照サンプルラインの数を異ならせることができる。前記参照サンプルラインの数は複数であり得る。図11は2つの参照サンプルラインを用いる一実施形態を示す図である。
前記参照サンプルラインの数は、前記現在ブロックの画面内予測モード又は画面内予測モードの方向性に応じて異なり得る。例えば、現在ブロックの画面内予測モードがDC又はPlanarモードのように非方向性モードである場合には、1つの参照サンプルラインを用いることができ、方向性モードである場合には、2つの参照サンプルラインを用いることができる。例えば、前記方向性モードが所定の条件又は範囲に該当する場合に応じて、参照サンプルラインの数を異ならせることができる。例えば、前記方向性モードが偶数モード番号を有する場合には、2つの参照サンプルラインを用い、奇数モード番号を有する場合には、1つの参照サンプルラインを用いることができる。例えば、水平及び垂直モードの場合には、1つの参照サンプルラインを用いることができる。例えば、前記画面内予測モードが所定の範囲に該当する場合には複数の参照サンプルラインを用い、そうでない場合には単一の参照サンプルラインを用いることができる。
前記参照サンプルラインの数は、前記現在ブロックのサイズ及び/又は形状に応じて異なり得る。例えば、現在ブロックのサイズが所定のサイズよりも小さい場合には、1つの参照サンプルラインを用い、所定のサイズよりも大きい場合には、2つの参照サンプルラインを用いることができる。例えば、前記現在ブロックのサイズが16x16(又はサンプルの個数が256個)と同じかそれより小さい場合には、1つの参照サンプルラインを用い、16x16よりも大きい場合には、2つの参照サンプルラインを用いることができる。逆に小さいブロックに対して2つの参照サンプルラインを用い、大きいブロックに対して1つの参照サンプルラインを用いることもできる。例えば、現在ブロックの形状が正方形である場合には、2つの参照サンプルラインを用い、現在ブロックの形状が非正方形である場合には、1つの参照サンプルラインを用いることができる。前記参照サンプルラインの数は、前記現在ブロックの左側及び上側に対して異なるように決定できる。
又は、現在ブロックの横又は縦の長さに基づいて、参照サンプルラインの数を異ならせることができる。例えば、現在ブロックの横又は縦の長さが所定の値よりも大きい場合には、複数の参照サンプルラインを用い、所定の値と同じかそれより小さい場合には、単一の参照サンプルラインを用いることができる。例えば、現在ブロックが4xNブロック又はNx4ブロックである場合は、1つの参照サンプルラインのみを構成し、それ以外の場合は、2つ以上の参照サンプルラインを構成することができる。2つ以上の参照サンプルラインに対しては、それぞれ同じ重みが適用できる。例えば、現在ブロックの横及び縦の統計値が所定の範囲に該当する場合には、複数の参照サンプルラインを用い、前記所定の範囲に該当しない場合には、単一の参照サンプルラインを用いることができる。
前記参照サンプルラインの数は、現在ブロックの画面内予測モードと現在ブロックの長さ(横又は縦の長さ)に基づいて異ならせることができる。例えば、画面内予測モードが垂直方向のモードである場合には、現在ブロックの横の長さに基づいて参照サンプルラインの数を異ならせることができる。例えば、画面内予測モードが水平方向のモードである場合には、現在ブロックの縦の長さに基づいて参照サンプルラインの数を異ならせることができる。例えば、画面内予測モードが非方向性モードである場合、現在ブロックの横及び/又は縦の長さが所定の値又は所定の範囲に該当するか否かに応じて、参照サンプルラインの数を異ならせることができる。
前記参照サンプルラインの数は、現在ブロックの色成分に基づいて異ならせることができる。例えば、輝度成分に対しては2以上の複数の参照サンプルラインを用い、色差成分に対しては1つの参照サンプルラインを用いることができる。
前記参照サンプルラインの数は、現在ブロックの境界が所定の境界に該当する場合に異なり得る。例えば、現在ブロックの上側境界がピクチャ、スライス、タイル、符号化ツリーブロック(CTB)及び所定のブロックサイズのうちの少なくとも一つの境界に該当する場合には、上側に対して1つの参照サンプルラインを用いることができる。同様に、現在ブロックの左側境界がピクチャ、スライス、タイル、符号化ツリーブロック(CTB)及び所定のブロックサイズのうちの少なくとも一つの境界に該当する場合には、左側に対して1つの参照サンプルラインを用いることができる。前記所定のブロックサイズは、シグナリングされるか或いは符号化/復号化器で予め定義され得る。
前記複数の参照サンプルラインを用いる場合、符号化パラメータ(例えば、画面内予測モード)に基づいて、用いる参照サンプルラインが異なり得る。例えば、画面内予測モードが偶数モードである場合には第1参照サンプルラインを用い、画面内予測モードが奇数モードである場合には第2参照サンプルラインを用いることができる。
方向性予測を行うにあたり、補間フィルタが適用できる。前記補間フィルタは、2-tap、4-tap、6-tap及びN-tapのうちの少なくとも一つのタップ数を持つことができ、Nは正の整数であり得る。前記補間フィルタタップごとに一つ以上のフィルタ係数値を持つことができる。
例えば、下記数式4のように図11のサンプルS00乃至S05を用いて6-tapフィルタを適用することができ、フィルタ係数はa乃至fであり得る。
前記フィルタ係数の合計は32、64、128、256、512、1024及びNのうちの少なくとも一つであり、各フィルタ係数は整数値であり得る。前記フィルタ係数の合計は、2のg乗に該当する値であり得る。例えば、前記フィルタ係数の合計が1024である場合、gは10であり得る。
現在ブロックのサイズ、形状、予測対象サンプルの位置及び画面内予測モードのうちの少なくとも一つに基づいて、前記補間フィルタタップ又は係数値が異なり得る。
画面内予測モードによって前記補間フィルタタップ又は係数値が異なり得る。例えば、画面内予測モードが所定のモードに該当する場合には、4-tapフィルタを適用し、前記所定のモードに該当しない場合には、2-tapフィルタを適用することができる。また、画面内予測モードによる角度に基づいて、フィルタ係数値を異ならせることができる。例えば、6-tapの場合は、表1のようにFilter1とFilter2の2つのフィルタ類型を用いることができ、フィルタ係数値{a,b,c,d,e,f}を持つことができ、LUT(Look-Up Table)形式で保存することができる。この場合、ルックアップテーブルを参照するためのインデックス情報が符号化/復号化できる。
前記表1から分かるように、方向性モードの角度線に近接した参照サンプルに大きい重みが付与できる。例えば、画面内予測モードが偶数モードである場合には、第1フィルタを適用し、画面内予測モードが奇数モードである場合には、第2フィルタを適用することができる。
又は、画面内予測モードが、45度の倍数に該当する角度を有するモードである場合には、第1フィルタを適用し、その他の角度を有するモードである場合には、第2フィルタを適用することができる。前記第1フィルタと第2フィルタは、フィルタタップ、フィルタ係数及びフィルタ形状のうちの少なくとも一つが互いに異なり得る。
現在ブロック内の予測対象サンプルの位置によって、前記補間フィルタタップ又は係数値が異なり得る。例えば、前記予測対象サンプルの位置が参照サンプルに隣接する場合には、第1補間フィルタを適用し、参照サンプルから距離が遠い予測対象サンプルを予測する場合には、第2補間フィルタを適用することができる。前記予測対象サンプルの位置に基づいて、第3、第4、...、第Nの補間フィルタを適用することができ、前記現在ブロックのサイズ及び/又は形状によって前記補間フィルタの個数が異なり得る。前記複数の補間フィルタは、フィルタタップが同一であり、係数値が異なり得る。又は、フィルタタップ及びフィルタ係数値がすべて異なり得る。
例えば、現在ブロックの横又は縦が第1長さに該当する場合には第1フィルタを適用し、 現在ブロックの横又は縦が第2長さに該当する場合には第2フィルタを適用することができる。
一例として、方向性予測モードで用いられる参照サンプル領域に該当する現在ブロックの横又は縦の長さが8と同じかそれより小さい場合には、第1フィルタを適用し、8よりも大きい場合には、第2フィルタを適用することができる。
例えば、ブロックのサイズが64以下である場合には、第1フィルタを使用することができる。そうでない場合には、第2フィルタを使用することができる。前記2タイプのフィルタは、予測対象サンプルの位置に基づいて選択的に使用できる。例えば、画面内予測モードが34乃至66の範囲に含まれる場合、現在ブロックの上側部分に位置する予測対象サンプルに対しては第1フィルタが適用され、現在ブロックの下側部分に位置する予測対象サンプルに対しては第2フィルタが適用され得る。同様に、画面内予測モードが2乃至33の範囲に含まれる場合には、現在ブロックの左側部分に位置する予測対象サンプルに対しては第1フィルタが適用され、現在ブロックの右側部分に位置する予測対象サンプルに対しては第2フィルタが適用され得る。上記では、第1フィルタはキュービック補間フィルタであり、第2フィルタはガウス補間フィルタであり得る。
例えば、現在ブロックの横又は縦の長さに応じてフィルタ係数値を適応的に選択して適用することができる。
現在ブロックの色成分に基づいて、前記補間フィルタタップ又は係数値が異なり得る。例えば、輝度信号サンプルに対して第1フィルタを適用し、色差信号サンプルに対して第2フィルタを適用することができる。例えば、前記輝度信号サンプルに対して4-tapフィルタを適用し、色差信号サンプルに対して2-tap(bilinear)フィルタを適用することができる。
複数の参照サンプルラインを使用する場合には、参照サンプルラインによって前記補間フィルタタップ又は係数値が異なり得る。例えば、現在ブロックに隣接する一番目の参照サンプルラインに対しては第1フィルタを適用し、二番目の参照サンプルラインに対しては第2フィルタを適用することができる。図11のように方向性予測を行う場合には、一番目のラインに存在するサンプルS00乃至S05を用いて第1補間フィルタを行うことができ、二番目のラインに存在するサンプルS12乃至S13を用いて第2補間フィルタを行うことができる。
例えば、複数の参照サンプルラインにすべて第1フィルタを適用することができる。この場合、一番目の参照サンプルラインに適用するフィルタ係数値と、二番目の参照サンプルラインに適用するフィルタ係数値とが互いに異なり得る。
このとき、方向性予測モードが2つの参照サンプルの間の所定の位置を通る場合には、参照サンプルラインごとに参照サンプルの位置が異なり得る。例えば、一番目の参照サンプルラインに存在するサンプルS02とS03を用いて2-tap補間フィルタを行い、二番目の参照サンプルラインに存在するS13とS14を用いて2-tap補間フィルタを行うことができる。
複数の参照サンプルラインを使用する場合には、補間フィルタは2次元の形状を持つことができる。例えば、図9に示された例のような形状を有する第1フィルタが適用できる。
例えば、方向性予測を行うにあたり、補間フィルタを適用していない参照サンプルが使用できる。例えば、方向性モードに対応する参照サンプルが整数位置に存在する場合には、補間フィルタを適用せずに、前記参照サンプルを用いることができる。補間フィルタを適用しない参照サンプルに対しては、3-tap、5-tap及びN-tapフィルタのうちの少なくとも一つのフィルタを適用することができる。例えば、前記参照サンプルに対して{1,2,1}フィルタを適用することができる。この時、前記フィルタの適用有無は、現在ブロックの画面内予測モード、現在ブロックのサイズ及び現在ブロックの形状のうちの少なくとも一つに基づいて決定できる。
例えば、前記複数の参照サンプルラインを使用する場合、各参照サンプルラインに補間フィルタを適用することにより取得した複数の値に対して補間フィルタ又は重み付け平均を適用することができる。例えば、下記数式5のように、一番目の参照サンプルラインに対して第1補間フィルタを適用して取得した値(S_F1)と二番目の参照サンプルラインに対して第2補間フィルタを適用して取得した値(S_F2)との重み付け平均を予測値(S_P)として誘導することができる。このとき、hとiは重みであり、h+iは2のj乗に該当する値であり得る。例えば、h=3、i=1、j=2であり得る。又は、h、i、jはいずれも1であり得る。前記第1補間フィルタ及び第2補間フィルタのフィルタ類型が互いに異なり得る。例えば、フィルタタップ及びフィルタ係数のうちの少なくとも一つは異なってもよい。
又は、前記垂直予測のように角度線上の変化量を考慮して取得した値(例えば、(S_F1+(S_F1-S_F2)>>j))を予測値として決定することができる。
上記において、複数の参照サンプルラインのうち、現在ブロックに隣接する一番目のライン及び二番目のラインに対して互いに異なる補間を行うことについて説明した。しかし、前記説明は、複数の参照サンプルラインのうち、一番目のラインと二番目のラインに対する説明に限定されない。例えば、前記一番目のライン及び二番目のラインは、それぞれ複数の参照サンプルラインのうち、任意の第1ラインと第2ラインで置換できる。
前記補間フィルタを適用するにあたり、前記構成した参照サンプル領域を外れるサンプルを用いる場合にパディングを行うことができる。例えば、方向性予測モードが図11の参照サンプルS04とS05との間を通る場合は、6-tapフィルタを適用するにあたり、右側の外れる2つのサンプルを利用可能な参照サンプルS05でパディングした後、補間フィルタを適用することができる。方向性モードの場合には、方向性予測モードに基づいて、前記構成した参照サンプルを再構成することができる。例えば、前記方向性予測モードが、左側及び上側に存在する参照サンプルをすべて用いるモードである場合には、左側又は上側の参照サンプルに対して1次元配列を構成することができる。又は、左側参照サンプルを用いて上側の参照サンプルを構成することもでき、一つ以上の左側参照サンプルの重み付け和を用いて上側の参照サンプルを構成することもできる。
現在ブロックの所定のサンプルグループ単位で互いに異なる方向性画面内予測又は補間フィルタが行われてもよい。前記所定のサンプルグループ単位はブロック、サブブロック、ライン又は単一サンプルであってもよい。
本発明に係る実施形態によれば、色成分(color component)間の画面内予測を行うことができる。色成分間の画面内予測は、色成分ブロック再構成ステップ、予測パラメータ誘導ステップ及び/又は色成分間予測実行ステップを含むことができる。前記色成分は、輝度(luma)信号、色差(chroma)信号は、Red、Green、Blue、Y、Cb及びCrのうちの少なくとも一つを意味することができる。第2色成分、第3色成分及び第4色成分の少なくとも一つを用いて前記第1色成分に対する予測を行うことができる。このとき、予測に用いられる色成分の信号、原本信号、復元された信号、残差/レジデュアル信号、及び予測信号のうちの少なくとも一つであり得る。
第2色成分対象ブロックに対して画面内予測を行うとき、前記対象ブロックに対応する第1色成分対応ブロックのサンプル及び/又は対応ブロックの周辺ブロックのサンプルのうちの少なくとも一つのサンプルを用いることができる。例えば、色差成分ブロックCb又はCrに対して画面内予測を行うとき、前記色差成分ブロックに対応する復元された輝度成分ブロックYを用いることができる。
輝度成分を用いて色差成分を予測する場合、下記数式6が使用できる。
式中、PredC(i,j)は現在ブロックに対する予測色差サンプルを示し、recL(i,j)は現在ブロックの復元された輝度サンプルを示すことができる。このとき、recL’(i,j)は、ダウンサンプリングされた復元された輝度サンプルであり得る。パラメータα及びβは、現在ブロック周辺の復元された輝度サンプル及び復元された色差サンプル間の回帰誤差(regression error)を最小限に抑えることにより誘導できる。
輝度成分を用いて色差成分を予測するための2つのモードが存在し得る。前記2つのモードは、単一モデルモード(single model mode)と複合モデルモード(multiple model mode)を含むことができる。単一モデルモードは、現在ブロックに対して輝度成分から色差成分を予測するとき、一つの線形モデルを用いることができる。複合モデルモードは、二つの線形モデルを用いることができる。
複合モデルモードの場合、現在ブロックに隣接するサンプル(隣接輝度サンプル及び隣接色差サンプル)は、2つのグループに分類できる。すなわち、それぞれのグループに対するパラメータα及びβがそれぞれ誘導できる。また、隣接輝度サンプルの分類に使用されたルールに基づいて、現在ブロックの輝度サンプルの分類が行われ得る。
例えば、隣接サンプルを2つのグループに分類するためのしきい値が計算できる。しきい値は、復元された隣接輝度サンプルの平均値で計算できる。しかし、これに限定されず、本明細書で認知しているさまざまな統計値のうちの少なくとも一つが平均値の代わりに利用できる。隣接サンプルがしきい値よりも大きい場合には第1グループに分類し、そうでない場合には第2グループに分類することができる。
上記において、複合モデルモードでは、二つの線形モデルを用いると説明されたが、これに限定されず、二つ以上の線形モデルを用いる場合を含むことができる。このとき、N個の線形モデルを用いる場合、サンプルはN個のグループに分類できる。このために、N-1個のしきい値が計算できる。
前述したように、輝度成分から色差成分を予測するとき、線形モデルが使用できる。このとき、線形モデルは、単純線形モデル(以下「LM1」という)、複合線形モデル(以下「LM2」という)、複合フィルタ線形モデル(以下「LM3」という)を含むことができる。前記モデルのパラメータは、現在ブロックの周辺の復元された輝度サンプル及び復元された色差サンプル間の回帰誤差(regression error)を最小限に抑えることにより誘導できる。
図12は前記モデルのパラメータを誘導するために用いられる現在ブロックの周辺サンプル(以下「隣接データセット」という)を説明するための図である。
LM1のパラメータを誘導するための隣接データセットは、図12に示されたライン領域Bとライン領域Cの輝度サンプルと色差サンプルとの対で構成できる。LM2及びLM3のパラメータを誘導するための隣接データセットは、図12に示されたライン領域B、ライン領域C、ライン領域E及びライン領域Fの輝度サンプルと色差サンプルとの対で構成できる。
しかし、隣接データセットは、前記説明した例に限定されない。例えば、現在ブロック内の輝度サンプルと色差サンプル間の様々な線形関係をカバーするために、各モードに対してN個の隣接データセットを用いることができる。例えば、Nは、2以上の整数、特に3であり得る。
線形モデルのパラメータは、上側テンプレートと左側テンンプレートの両方を用いて計算できる。又は、2つのLMモード(LM_Aモード及びLM_Lモード)が存在し、上側テンプレートと左側テンプレートは、それぞれLM_Aモード及びLM_Lモードで使用できる。つまり、LM_Aモードでは、上側テンプレートのみを用いて線形モデルパラメータを求めることができる。現在ブロックの左上側コーナーサンプルの位置を(0,0)とするとき、上側テンプレートは(0,-n)から(W+H-1,-n)まで拡張できる。このとき、nは1以上の整数であり得る。これと同様に、LM_Lモードでは、左側テンプレートのみを用いて線形モデルパラメータを求めることができる。左側テンプレートは(-n,0)から(-n,H+W-1)まで拡張できる。このとき、nは1以上の整数であり得る。
線形モデルのパラメータを誘導するために、2の自乗個のサンプルが使用できる。現在色差ブロックが正方形ではない場合、線形モデルのパラメータを誘導するために用いられるサンプルは、現在ブロックの横及び縦のうちの短い方の個数を基準に決定できる。一実施形態によれば、現在ブロックのサイズがnxmであり、n>mであるとき、上側に隣接するn個のサンプルのうちのm個のサンプルが、例えば、サブサンプリングを均等に行うことにより選択できる。この場合、線形モデルのパラメータを誘導するために用いられるサンプルの個数は、2m個であり得る。他の実施形態として、現在ブロックのサイズがnxmであり、n>mであるとき、上側に隣接するn個のサンプルのうちのm個のサンプルは使用しなくてもよい。例えば、n個のサンプルのうち、現在ブロックの横及び縦のうちの短い方から最も遠く離れたm個のサンプルは使用しなくてもよい。この場合、線形モデルのパラメータを誘導するために用いられるサンプルの個数は、n個(上側に隣接するサンプルn-m個+左側に隣接するサンプルm個)であり得る。
又は、Cr成分ブロックに対して画面内予測を行うとき、Cb成分ブロックを用いることができる。又は、第4色成分ブロックに対して画面内予測を行うとき、前記ブロックに対応する第1色成分ブロック、第2色成分ブロック及び第3色成分ブロックのうちの少なくとも一つの組み合わせを用いることができる。
色成分間画面内予測を行うか否かは、現在対象ブロックのサイズ及び形状のうちの少なくとも一つに基づいて決定できる。例えば、対象ブロックのサイズがCTUサイズであるか、或いは所定のサイズ以上であるか、或いは所定のサイズ範囲に該当する場合には、前記対象ブロックに対して色成分間画面内予測を行うことができる。又は、対象ブロックの形状が所定の形状である場合には、前記対象ブロックに対して色成分間画面内予測を行うことができる。前記所定の形状は正方形であり得る。この場合、対象ブロックが長方形であれば、色成分間画面内予測は行われなくてもよい。前記所定の形状が長方形である場合には、前述した実施形態は逆に動作することができる。
又は、色成分間画面内予測を行うか否かは、予測対象ブロックに対応する対応ブロック及び対応ブロックの周辺ブロックのうちの少なくとも一つの符号化パラメータに基づいて決定されることもある。例えば、CIP(Constrained intra prediction)環境下で対応ブロックが画面間予測された場合、色成分間画面内予測は行われなくてもよい。又は、対応ブロックの画面内予測モードが所定のモードに該当する場合、色成分間画面内予測が行われてもよい。又は、対応ブロック及び周辺ブロックのCBF情報のうちの少なくとも一つに基づいて、色成分間画面内予測を行うか否かを決定することもできる。前記符号化パラメータは、ブロックの予測モードに限定されず、符号化/復号化に使用できる前述した様々なパラメータが使用できる。
次に、色成分ブロック再構成ステップについて説明する。
第1色成分ブロックを用いて第2色成分ブロックを予測するとき、前記第1色成分ブロックを再構成することができる。例えば、画像の色空間がYCbCrであり、色成分間の比率が4:4:4、4:2:2、4:2:0のうちのいずれかである場合、色成分間ブロックのサイズが異なり得る。よって、サイズが異なる第1色成分ブロックを用いて第2色成分ブロックを予測するとき、2つのブロックのサイズを同一にするために、前記第1色成分ブロックを再構成することができる。このとき、再構成されたブロックは、前記第1色成分対応ブロックのサンプル及び周辺ブロックのサンプルのうちの少なくとも一つを含むことができる。図13は色成分ブロックの再構成を説明するための例示図である。
図13(a)において、p1[x,y]は第1色成分ブロックの(x,y)位置のサンプルを示すことができる。図13(b)において、p1’[x,y]は前記第1色成分ブロックを再構成したブロックの(x,y)位置のサンプルを示すことができる。
第1色成分ブロックのサイズが第2色成分ブロックのサイズよりも大きい場合、前記第1色成分ブロックをダウンサンプリング(down-sampling)して第2色成分ブロックのサイズと同じサイズのブロックに再構成することができる。前記ダウンサンプリングは、一つ以上のサンプルに対してN-tapフィルタを適用して行われ得る(Nは1以上の整数)。このとき、下記数式7乃至数式11の少なくとも一つの数式が使用できる。複数のダウンサンプリング方法の中からいずれかが選択的に使用される場合、符号化器は、一つのダウンサンプリング方法を所定の方法で選択することができる。例えば、符号化器は、最適の効果を有するダウンサンプリング方法を選択することができる。選択されたダウンサンプリング方法は、符号化されて復号化器へシグナリングできる。シグナリングされる情報は、ダウンサンプリング方法を指示するインデックス情報であり得る。
二つ以上のサンプルを用いてダウンサンプリングを行う方法は、前記数式7乃至数式11の実施形態に限定されない。例えば、ダウンサンプリングされた値p1’[x,y]を計算するために使用できる二つ以上のサンプルは、p1[2x,2y]及びこれに隣接するサンプルから選択できる。前記隣接するサンプルは、p1[2x-1,2y-1]、p[2x-1,2y]、p1[2x-1,2y+1]、p1[2x,2y-1]、p1[2x,2y+1]、p1[2x+1,2y-1]、p1[2x+1,2y]、及びp1[2x+1,2y+1]から選択できる。二つ以上のサンプルを用いて平均又は重み付け平均を計算することにより、ダウンサンプリングを行うことができる。
又は、前記ダウンサンプリングは、一つ以上のサンプルの中から特定のサンプルを選択して行われ得る。このとき、下記数式12乃至数式15のうちの少なくとも一つの数式が使用できる。
第1色成分ブロックのサイズが第2色成分ブロックのサイズよりも小さい場合、前記第1色成分ブロックをアップサンプリング(up-sampling)して第2色成分ブロックのサイズと同じサイズのブロックに再構成することができる。このとき、下記数式16に使用できる。
前記再構成過程を行うにあたり、一つ以上のサンプルに対してフィルタを適用することができる。例えば、前記第1色成分対応ブロック、対応ブロックの周辺ブロック、第2色成分対象ブロック、及び対象ブロックの周辺ブロックのうちの少なくとも一つに含まれている一つ以上のサンプルに対してフィルタを適用することができる。
前述した参照サンプル構成ステップで、複数の参照サンプルラインのうち、所定のラインに該当するインジケータがシグナリングできる。このとき、前記再構成過程では、前記シグナリングされたインジケータに該当する所定のラインを用いて再構成を行うことができる。
前記再構成過程を行うにあたり、第2色成分対象ブロックの境界又は対応する第1色成分対応ブロックの境界のうちの少なくとも一つが所定の領域の境界に該当する場合、再構成に用いられる参照サンプルを異なるように選択することができる。このとき、上側参照サンプルラインの数と左側参照サンプルラインの数とが互いに異なり得る。前記所定の領域は、例えば、ピクチャ、スライス、タイル、CTU及びCUの少なくとも一つであり得る。
例えば、前記第1色成分対応ブロックの上側境界が前記所定の領域の境界に該当する場合、上側参照サンプルは用いず、左側参照サンプルだけを用いて再構成を行うことができる。前記第1色成分対応ブロックの左側境界が前記所定の領域の境界に該当する場合、左側参照サンプルは用いず、上側参照サンプルのみを用いて再構成を行うことができる。又は、N個の上側参照サンプルラインとM個の左側参照サンプルラインを用いることができ、このとき、NはMよりも小さくてもよい。例えば、上側境界が前記所定の領域の境界に該当する場合、Nは1であり、左側境界が前記所定の領域の境界に該当する場合には、Mは1であり得る。
又は、前記所定の領域の境界に該当するか否かを問わず、前記第1色成分対応ブロックのN個の上側参照サンプルライン及び/又はMの左側参照サンプルラインを用いて再構成を行うこともできる。
図14は複数の上側及び/又は左側参照サンプルラインを用いて再構成を行う実施形態を説明するための図である。
図14(a)に示すように、4つの上側参照サンプルライン及び4つの左側参照サンプルラインを用いて再構成を行うことができる。
例えば、第1色成分対応ブロックの上側又は左側の境界が前記所定の領域の境界に該当する場合、再構成に用いられる上側及び左側参照サンプルラインの数は異なり得る。例えば、図14(b)乃至(d)に示すように、2つの上側参照サンプルライン及び4つの左側参照サンプルラインを用いるか、一つの上側参照サンプルライン及び3つの左側参照サンプルラインを用いるか、或いは一つの上側参照サンプルライン及び2つの左側参照サンプルラインを用いることができる。
用いられる参照サンプルラインの数は、上記の例に限定されず、N個の上側参照サンプルラインとM個の左側参照サンプルラインが使用できる。NとMは同一であっても異なってもよい。上側と左側の境界がすべて前記所定領域の境界に該当する場合、NとMは同一であってもよく、例えば1であってもよい。又は、同じ条件で、NはMよりも小さく設定できる。これは、左側参照サンプルラインよりも上側参照サンプルラインを保存するのにさらに多くのリソース(メモリ)が必要だからである。
又は、図14(e)に示すように、第1色成分対応ブロックの横及び縦の長さを外れない一つ以上の参照サンプルを用いて再構成を行うこともできる。
前記再構成を行うにあたり、第1色成分対応ブロック及びその周辺ブロック、第2色成分対象ブロック及びその周辺ブロックのうちの少なくとも一つのブロックのサイズ、形状、及び符号化パラメータのうちの少なくとも一つに応じて、第1色成分対応ブロックの参照サンプル再構成を異ならせて行うことができる。
例えば、第1色成分対応ブロック又は周辺ブロックのうちの符号化モードが画面間符号化モードであるブロックのサンプルは用いず、画面内符号化モードであるブロックのサンプルを用いて参照サンプルを再構成することができる。
図15は対応ブロックの画面内予測モード又は符号化パラメータに応じて再構成に用いられる参照サンプルを説明するための例示図である。第1色成分対応ブロックの画面内予測モードに応じて、第1色成分ブロックの参照サンプル再構成を異ならせて行うことができる。例えば、対応ブロックの画面内予測モードがDCモード又はPlanarモードのように非方向性モードであるか、或いは上側参照サンプルと左側参照サンプルの両方を用いる方向性モードである場合、図15(a)に示すように、上側及び左側に存在する参照サンプルのうちの少なくとも一つを用いて再構成を行うことができる。又は、対応ブロックの画面内予測モードが上側参照サンプルと右上側参照サンプルを用いる方向性モードである場合、図15(b)に示すように、上側及び右上側に存在する参照サンプルのうちの少なくとも一つを用いて再構成を行うことができる。又は、対応ブロックの画面内予測モードが左側及び左下側の参照サンプルを用いる方向性モードである場合、図15(c)に示すように、左側及び左下側に存在する参照サンプルのうちの少なくとも一つを用いて再構成を行うことができる。
又は、第1色成分対応ブロック又は周辺ブロックのうちの少なくとも一つの量子化パラメータに応じて、第1色成分対応ブロックの参照サンプル再構成を異ならせて行うことができる。例えば、図15(d)に示すように、周辺ブロックの量子化パラメータ値(QP)が相対的に小さい上側ブロックに属する参照サンプルを用いて再構成を行うことができる。
又は、第2色成分対象ブロックの形状が長方形である場合、正方形である第1色成分対応ブロック周辺の参照サンプルを用いて再構成を行うことができる。
又は、第2色成分対象ブロックが2つのブロック(例えば、2つの16x8ブロック)に分割され、第1色成分対応ブロックは、例えば32x16ブロックである場合には、32x32ブロック周辺の参照サンプルを用いて再構成を行うことができる。このとき、前記第2色成分対応ブロックのうち、下側に位置した二番目の16x8ブロックに対応する第1色成分ブロックの参照サンプルとして、前記再構成した32x32ブロック周辺の参照サンプルを共有することができる。
以下、予測パラメータ誘導ステップについて説明する。
前記再構成した第1色成分対応ブロックの参照サンプルと第2色成分予測対象ブロックの参照サンプルのうちの少なくとも一つを用いて、予測パラメータを誘導することができる。以下、第1色成分及び第1色成分ブロックは、再構成した第1色成分及び再構成した第1色成分ブロックを意味することができる。
図16は第2色成分予測対象ブロックが4x4である場合、再構成された第1色成分対応ブロックを説明するための例示図である。このとき、参照サンプルラインはN個であり得る。
予測パラメータは、図16(a)に示すように、再構成された第1色成分対応ブロック又は第2色成分予測対象ブロックの上側と左側の参照サンプルを用いて誘導できる。
例えば、予測パラメータは、第1色成分対応ブロックの画面内予測モードに基づいて、前記再構成された第1色成分の参照サンプルを適応的に用いることにより誘導できる。このとき、第2色成分の参照サンプルも、前記第1色成分対応ブロックの画面内予測モードに基づいて適応的に使用できる。
第1色成分対応ブロックの画面内予測モードが、DCモード又はPlanarモードのように非方向性モードであるか、或いは上側参照サンプル及び左側参照サンプルの両方を用いる方向性モードである場合、図16(a)に示すように第1色成分対応ブロックの上側と左側参照サンプルを用いることができる。
第1色成分対応ブロックの画面内予測モードが、上側参照サンプルを用いる方向性モードである場合、図16(b)又は(c)に示すように、第1色成分対応ブロックの上側参照サンプルを用いることができる。
第1色成分対応ブロックの画面内予測モードが、左側参照サンプルを用いる方向性モードである場合、図16(d)又は(e)に示すように、第1色成分対応ブロックの左側参照サンプルを用いることができる。
又は、第1色成分対応ブロックの画面内予測モードが方向性モードである場合、各モードごとに予測に用いる参照サンプルを前記第1色成分の参照サンプルとして用いることができる。例えば、前記画面内予測モードが垂直モードであれば、図16(b)に示された参照サンプルを用いることができる。前記画面内予測モードが水平モードであれば、図16(d)に示された参照サンプルを用いることができる。前記画面内予測モードが右上側多角線モードであれば、図16(c)に示された参照サンプルを用いることができる。前記画面内予測モードが左下側対角線モードであれば、図16(e)に示された参照サンプルを用いることができる。前記画面内予測モードが、垂直モードと右上側対角線モードとの間に存在するモードであれば、図16(f)に示された参照サンプルを用いることができる。前記画面内予測モードが45度対角線に該当する方向性モードである場合、図16(g)に示すように右上側又は左下側の参照サンプルのうちの少なくとも一つを用いることができる。画面内予測モードに応じて用いられる参照サンプルは、ルックアップテーブル(Look-up table)として保存して用いることができる。
予測パラメータの誘導は、第1色成分ブロック及び/又は第2色成分ブロックのサイズ及び/又は形状に応じて、前記第1色成分又は第2色成分の参照サンプルを適応的に用いて行われ得る。
例えば、前記第2色成分対象ブロックのサイズが64x64である場合、前記第1色成分又は第2色成分ブロックの上側又は左側の参照サンプルのうち、32個、16個又は8個の参照サンプルが使用できる。上述のように、第2色成分対象ブロックのサイズが所定のサイズに該当する場合、前記第1又は第2色成分ブロックの参照サンプルが適応的に使用できる。前記所定のサイズは、64x64に限定されず、ビットストリームを介してシグナリングされるか、或いは現在ブロック及び周辺ブロックの符号化パラメータに基づいて誘導されるサイズであり得る。
又は、第2色成分対象ブロックの形状が長方形である場合、横及び縦のうちの長い方に隣接する参照サンプルが使用できる。例えば、前記対象ブロックのサイズが32x8である場合、前記第1色成分又は第2色成分ブロックの上側参照サンプルが使用できる。
又は、第2色成分対象ブロックの形状が長方形である場合、正方形ブロックの参照サンプルを用いることができる。例えば、前記対象ブロックのサイズが32x8である場合、サイズ32x32のブロックの周辺に位置した参照サンプルが使用できる。
予測パラメータの誘導は、前記再構成された第1色成分ブロックの参照サンプル及び第2色成分ブロックの参照サンプルを用いて行われ得る。前記色成分の参照サンプル間の関連性、変化量、平均値及び分布などの少なくとも一つに基づいて予測パラメータが誘導できる。この際、LS(Least Square)、LMS(Least Mean Square)などの方法のうちの少なくとも一つが使用できる。
LMS方法を用いて予測パラメータを誘導する場合、予測パラメータはa、b、又はアルファ、ベータのうちの少なくとも一つであり得る。下記数式17を用いて、第1色成分参照サンプルと第2色成分参照サンプル間のエラーを最小化する予測パラメータを誘導することができる。
前記数式17において、p2nは第2色成分の参照サンプルを示し、p1’nは再構成された第1色成分の参照サンプルを示すことができる。Nは用いられる参照サンプルの横又は縦の個数を示し、a及びbは予測パラメータを示すことができる。
このとき、下記数式18を用いて、参照サンプル間の関連性を計算することができる。
前記数式18において、BitDepthはビット深度を示すことができる。p1’は再構成された第1色成分のサンプル、p2は第2色成分のサンプルをそれぞれ示すことができる。図17は第1色成分のサンプル及び第2色成分のサンプルを説明するための図である。
予測パラメータを誘導するとき、参照サンプルが存在しない領域がある場合、存在する参照サンプルのみを用いて予測パラメータを誘導することができる。
前記予測パラメータを一つ以上誘導することができる。例えば、前記予測パラメータを誘導するために用いる参照サンプルの値が特定の条件を満たす参照サンプルから第1予測パラメータを誘導することができる。また、前記特定の条件を満たしていない参照サンプルから第2予測パラメータを誘導することができる。前記特定の条件は、参照サンプルの値が参照サンプルの統計値(例えば、平均値)よりも小さい場合に該当することができる。
本発明の他の実施形態によれば、参照サンプルを用いて予測パラメータを誘導せず、基本予測パラメータ(default parameter)が用いられることもある。前記基本予測パラメータは、符号化器と復号化器で予め定義できる。例えば、予測パラメータa、bはそれぞれ1、0であり得る。
又は、予測パラメータが誘導される場合、誘導された予測パラメータは符号化/復号化できる。
Y、Cb、Cr間の色成分間予測を行う場合、CbとCrを予測するための予測パラメータをYからそれぞれ誘導することもできる。又は、Crを予測するための予測パラメータをCbから誘導することができる。又は、Crを予測するための予測パラメータを誘導せず、Cbを予測するためにYから誘導した予測パラメータを用いることができる。
次に、色成分間予測実行ステップについて説明する。
前述したように、予測パラメータが誘導されると、誘導された予測パラメータのうちの少なくとも一つを用いて色成分間画面内予測を行うことができる。
例えば、下記数式19を用いて、再構成された第1色成分の復元された信号に前記誘導された予測パラメータを適用することにより、第2色成分対象ブロックに対する予測を行うことができる。
前記数式19において、p2[x,y]は、第2色成分対象ブロックの予測ブロックであり得る。p1’[x,y]は、第1色成分ブロック又は再構成された第1色成分ブロックであり得る。
又は、下記数式20を用いて、再構成された第1色成分の残差信号に、前記誘導された予測パラメータを適用することにより、第2色成分対象ブロックに対する予測を行うことができる。
前記数式20において、p1’_residualは、第1色成分の残差信号を示すことができる。また、p2_predは、第2色成分対象ブロックに対して画面内予測を行って予測した信号を示すことができる。
前記誘導した予測パラメータが一つ以上である場合には、前記第1色成分の復元されたサンプルに前記一つ以上の予測パラメータを適用することができる。例えば、前記第1色成分の復元されたサンプルが特定の条件を満足する場合には、前記特定の条件を満足する参照サンプルから誘導された第1予測パラメータを適用して、色成分間画面内予測を行うことができる。また、前記第1色成分の復元されたサンプルが前記特定の条件を満足しない場合、前記特定の条件を満足しない参照サンプルから誘導された第2予測パラメータを適用して、色成分間画面内予測を行うことができる。前記特定の条件は、参照サンプルの値が前記第1色成分の参照サンプルの統計値(例えば、平均値)よりも小さい場合に該当することができる。
前記色成分間予測方法は、画面間予測モードにも適用することができる。例えば、現在ブロックに対する画面間予測を行うにあたり、第1色成分に対しては、画面間予測を行い、第2色成分に対しては、色成分間予測又は画面間予測と色成分間予測とを組み合わせた予測を行うことができる。例えば、前記第1色成分は輝度成分であり、第2色成分は色差成分であり得る。また、前記色成分間予測は、第1色成分の符号化パラメータに応じて適応的に行うことができる。例えば、前記第1色成分のCBF情報に基づいて、前記色成分間予測を行うか否かを決定することができる。前記CBF情報は、残差信号の存否を示す情報であり得る。すなわち、前記第1色成分のCBFが1である場合、第2色成分に対して色成分間予測を行うことができる。前記第1色成分のCBFが0である場合、第2色成分に対して色成分間予測を行わず、前記画面間予測を行うことができる。又は、前記色成分間予測を行うか否かを示すフラグをシグナリングすることができる。
一つ以上の画面内予測モードを組み合わせて画面内予測を行うことができる。例えば、所定の非方向性画面内予測モードを用いて予測したブロックと、所定の方向性画面内予測モードを用いて予測したブロックとの重み付け平均を介して、前記現在ブロックに対する画面内予測ブロックを構成することができる。例えば、色成分間予測モードを用いて予測した値と所定の画面内予測モードを用いて予測した値との重み付け和を介して、画面内予測を行うことができる。このとき、重み(weighting)値は、現在ブロックの画面内予測モード、現在ブロックのサイズ、現在ブロックの形状及び予測対象サンプルの位置のうちの少なくとも一つに基づいて異なるように決定できる。例えば、一つ以上の画面内予測モードを組み合わせるにあたり、現在ブロックに対する画面内予測モードを用いて予測した値と、MPMリストにある所定のモードを用いて予測した値との重み付け平均を介して、予測ブロックを構成することができる。前記一つ以上の画面内予測モードを組み合わせるにあたり、代表画面内予測モードを決定することができる。例えば、画面内予測モードに基づいて(例えば、変換、スキャニングなど)適応的に行われるステップは、前記代表画面内予測モードに基づくことができる。代表画面内予測モードは、大きい重みが割り当てられた画面内予測モードであり得る。又は、組み合わせた一つ以上の画面内予測モードのうち、非方向性モード又は方向性モードであり得る。前記一つ以上の予測モードを組み合わせるにあたり、一つの画面内予測モードで予測した値と一つの画面間予測モードで予測した値とを組み合わせることができる。
一つ以上の参照サンプルセット(set)を用いて画面内予測を行うことができる。例えば、前記構成された参照サンプルにフィルタリングを適用していない参照サンプルを用いて画面内予測を行ったブロックと、フィルタリングを適用した参照サンプルを用いて画面内予測を行ったブロックとの重み付け平均を介して、現在ブロックに対する画面内予測を行うことができる。
前記画面内予測を行う過程で、周辺の復元されたサンプルを用いたフィルタリング過程を行うことができる。この時、前記フィルタリング過程を行うか否かは、現在ブロックの画面内予測モード、現在ブロックのサイズ及び現在ブロックの形状のうちの少なくとも一つに基づいて決定できる。前記フィルタリング過程は、前記画面内予測を行う過程に含まれて一つのステップで行われ得る。前記フィルタリング過程を行うにあたり、現在ブロックの画面内予測モード、ブロックのサイズ及び形状のうちの少なくとも一つに基づいて、フィルタタップ、係数、フィルタ形状、フィルタリング適用ライン数及びフィルタリング適用サンプル数のうちの少なくとも一つを異なるように決定することができる。
前記現在ブロックがサブブロックに分割され、各サブブロックに対する画面内予測モードが周辺ブロックの画面内予測モードに基づいて誘導され、誘導された画面内予測モードに基づいて各サブブロックに対する画面内予測を行うにあたり、現在ブロック内の各サブブロックに対してフィルタリングを適用することができる。例えば、現在ブロックの全体にローパス(low-pass)フィルタを適用することができる。又は、各サブブロックの境界に位置するサンプルに対してフィルタを適用することができる。
前記現在ブロックがサブブロックに分割されて各サブブロックに対する画面内予測を行うにあたり、各サブブロックは、符号化/復号化ブロック、予測ブロック及び変換ブロックのうちの少なくとも一つを意味することができる。例えば、現在ブロックのサイズが64x64であり、サブブロックのサイズが16x16である場合、各サブブロックに対して画面内予測モードを誘導し、画面内予測を行うことができる。このとき、前記一つ以上のサブブロックが8x8又は4x4にさらに分割される場合、各8x8又は4x4ブロックは、変換ブロックを意味することができ、前記16x16ブロックに対する画面内予測モードを用いることができる。
前記画面内予測を行った後、予測ブロックに対してフィルタリングを適用することができる。例えば、ローパス(low-pass)フィルタ及びバイラテラル(bilateral)フィルタのうちの少なくとも一つのフィルタを適用することができる。このとき、フィルタリングの適用有無は、現在ブロックの画面内予測モード、予測サンプルの位置、現在ブロックのサイズ及び現在ブロックの形状のうちの少なくとも一つに基づいて決定できる。又は、各予測されたサンプルごとに特定の条件を満たす場合にフィルタを適用することができる。前記予測ブロックに対してフィルタリングを適用するにあたり、複数の参照サンプルラインを用いることができる。例えば、現在ブロックと参照サンプルとの境界に位置した予測サンプルをフィルタリングするにあたり、隣接する2つ以上の参照サンプルラインを用いてフィルタリングを行うことができる。
前記画面内予測を行って生成したブロック、及びレジデュアルブロックを用いて復元したブロックに対してフィルタリングを適用することができる。例えば、ローパス(low-pass)フィルタ及びバイラテラル(bilateral)フィルタのうちの少なくとも一つのフィルタを適用することができる。このとき、フィルタリングの適用有無は、現在ブロックの画面内予測モード、現在ブロックのサイズ及び現在ブロックの形状のうちの少なくとも一つに基づいて決定できる。又は、予測されたサンプルごとに特定の条件を満たす場合にフィルタを適用することができる。
これらの実施形態は、符号化器及び復号化器で同様の方法で行われ得る。
前記実施形態を適用する順序は、符号化器と復号化器で互いに異なってもよく、符号化器と復号化器で互いに同じであってもよい。
輝度及び色差信号それぞれに対して前記実施形態を行うことができ、輝度及び色差信号に対する前記実施形態を同様に行うことができる。
本発明の実施形態が適用されるブロックの形状は、正方形(square)或いは非正方形(non-square)の形状を有することができる。
本発明の前記実施形態は、符号化ブロック、予測ブロック、変換ブロック、ブロック、現在ブロック、符号化ユニット、予測ユニット、変換ユニット、ユニット及び現在ユニットのうちの少なくとも一つのサイズに応じて適用できる。ここでのサイズは、前記実施形態が適用されるために、最小サイズ及び/又は最大サイズに定義されてもよく、前記実施形態が適用される固定サイズに定義されてもよい。また、前記実施形態は、第1サイズでは第1実施形態が適用されてもよく、第2サイズでは第2実施形態が適用されてもよい。すなわち、前記実施形態は、サイズに応じて複合的に適用できる。また、本発明の前記実施形態は、最小サイズ以上及び最大サイズ以下の場合にのみ適用されてもよい。すなわち、前記実施形態は、ブロックサイズが一定の範囲内に含まれる場合にのみ適用されてもよい。
例えば、現在ブロックのサイズが8×8以上である場合にのみ、前記実施形態が適用できる。例えば、現在ブロックのサイズが4×4である場合にのみ、前記実施形態が適用できる。例えば、現在ブロックのサイズが16×16以下である場合にのみ、前記実施形態が適用できる。例えば、現在ブロックのサイズが16×16以上64×64以下である場合にのみ、前記実施形態が適用できる。
本発明の実施形態は、時間的階層(temporal layer)に応じて適用できる。前記実施形態が適用可能な時間的階層を識別するために、別途の識別子(identifier)がシグナリングされ、当該識別子によって特定された時間的階層に対して前記実施形態が適用できる。ここでの識別子は、前記実施形態が適用可能な最下位階層及び/又は最上位階層と定義されてもよく、前記実施形態が適用される特定の階層を指示するものと定義されてもよい。また、前記実施形態が適用される固定された時間的階層が定義されてもよい。
例えば、現在画像の時間的階層が最下位階層である場合にのみ、前記実施形態が適用できる。例えば、現在画像の時間的階層識別子が1以上である場合にのみ、前記実施形態が適用できる。例えば、現在画像の時間的階層が最上位階層である場合にのみ、前記実施形態が適用できる。
本発明の実施形態が適用されるスライスタイプ(slice type)が定義され、当該スライスタイプに応じて本発明の前記実施形態が適用できる。
上述した実施形態において、これらの方法は、一連のステップ又はユニットであって、フローチャートに基づいて説明されているが、本発明は、これらのステップの順序に限定されるものではなく、あるステップは、上述したのとは異なるステップと異なる順序で又は同時に発生することができる。また、当該技術分野における通常の知識を有する者であれば、フローチャートに示されたステップが排他的ではなく、他のステップが含まれるか、フローチャートの一つ又はそれ以上のステップが本発明の範囲に影響することなく削除できることを理解することができるだろう。
上述した実施形態は、様々な態様の例示を含む。様々な態様を示すためのすべての可能な組み合わせを記述することはできないが、当該技術分野における通常の知識を有する者は、他の組み合わせが可能であることを認識することができるだろう。よって、本発明は、以下の特許請求の範囲内に属するすべての様々な交替、修正及び変更を含むといえる。
以上説明した本発明に係る実施形態は、様々なコンピュータ構成要素を介して実行できるプログラム命令の形で実現され、コンピュータ可読記録媒体に記録できる。前記コンピュータ可読記録媒体は、プログラム命令、データファイル、データ構造などを単独で又は組み合わせて含むことができる。前記コンピュータ可読記録媒体に記録されるプログラム命令は、本発明のために特別に設計及び構成されたもの、又はコンピュータソフトウェア分野の当業者に公知されて使用可能なものである。コンピュータ可読記録媒体の例には、ハードディスク、フロッピーディスク及び磁気テープなどの磁気媒体、CD-ROM、DVDなどの光記録媒体、フロプティカルディスク(floptical disk)などの磁気-光媒体(magneto-optical media)、及びROM、RAM、フラッシュメモリなどのプログラム命令を保存し実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作られる機械語コードだけでなく、インタプリターなどを用いてコンピュータによって実行できる高級言語コードも含まれる。前記ハードウェア装置は、本発明に係る処理を行うために一つ以上のソフトウェアモジュールとして作動するように構成でき、その逆も同様である。
以上で、本発明が、具体的な構成要素などの特定の事項、限定された実施形態及び図面によって説明されたが、これは本発明のより全般的な理解を助けるために提供されたものに過ぎず、本発明は前記実施形態に限定されるものではない。本発明の属する技術分野における通常の知識を有する者であれば、このような記載から多様な修正及び変形を図ることができる。
よって、本発明の思想は、上述した実施形態に限定されて定められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等に又は等価的に変形したすべてのものは本発明の思想の範疇に属するというべきである。