本発明は、様々な変更を加えることができ、様々な実施形態を有することができるので、特定の実施形態を図面に例示し、詳細な説明に詳細に説明する。ところが、これは本発明を特定の実施形態について限定するものではなく、本発明の思想及び技術範囲に含まれる全ての変更、均等物ないし代替物を含むものと理解されるべきである。図面において類似する参照符号は、様々な側面にわたって同一又は類似の機能を指し示す。図面における要素の形状及び大きさなどは、より明確な説明のために誇張することがある。後述する例示的実施形態についての詳細な説明は、特定の実施形態を例示として示す添付図面を参照する。これらの実施形態は、当業者が実施形態を実施し得る程度に十分に詳細に説明される。様々な実施形態は、互いに異なるが、相互に排他的である必要はないことが理解されるべきである。例えば、ここに記載されている特定の形状、構造及び特性は、一実施形態に関連して本発明の精神及び範囲を逸脱することなく、様々な実施形態に実現できる。また、それぞれの開示された実施形態内の個別構成要素の位置又は配置は、実施形態の精神及び範囲を逸脱することなく変更可能であることが理解されるべきである。したがって、後述する詳細な説明は、限定的な意味として取るものではなく、例示的な実施形態の範囲は、適切に説明されるならば、それらの請求項が主張するのと均等な全ての範囲及び添付の請求項によってのみ限定される。
本発明において、用語「第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)を意味することができる。
符号化ツリーブロック(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 group)ヘッダー及びタイル(tile)ヘッダー情報を含むこともできる。また、前記タイルグループは、さまざまなタイルを含むグループを意味することができ、スライスと同一の意味であり得る。
パーシング(Parsing):ビットストリームをエントロピー復号化して構文要素(Syntax Element)の値を決定することを意味するか、或いはエントロピー復号化自体を意味することができる。
シンボル(Symbol):符号化/復号化対象ユニットの構文要素、符号化パラメータ(coding parameter)、変換係数(Transform Coefficient)の値などのうちの少なくとも一つを意味することができる。また、シンボルは、エントロピー符号化の対象或いはエントロピー復号化の結果を意味することができる。
予測モード(Prediction Mode):画面内予測で符号化/復号化されるモード、又は画面間予測で符号化/復号化されるモードを指し示す情報であり得る。
予測ユニット(Prediction Unit):画面間予測、画面内予測、画面間補償、画面内補償、動き補償など、予測を行うときの基本単位を意味することができる。一つの予測ユニットは、より小さいサイズを有する複数のパーティション(Partition)又は複数のサブ予測ユニットに分割されてもよい。複数のパーティションも予測又は補償の実行における基本単位であり得る。予測ユニットの分割によって生成されたパーティションも予測ユニットであり得る。
予測ユニットパーティション(Prediction Unit Partition):予測ユニットが分割された形態を意味することができる。
参照画像リスト(Reference Picture List):画面間予測或いは動き補償に使用される一つ以上の参照画像を含むリストを意味することができる。参照画像リストの種類は、LC(List Combined)、L0(List 0)、L1(List 1)、L2(List 2)、L3(List 3)などが挙げられる。画面間予測には、一つ以上の参照画像リストが使用できる。
画面間予測インジケータ(Inter Prediction Indicator): 現在ブロックの画面間予測方向(一方向予測、双方向予測など)を意味することができる。又は、現在ブロックの予測ブロックを生成するときに使用される参照画像の個数を意味することができる。又は、現在ブロックに対して画面間予測或いは動き補償を行うときに使用される予測ブロックの個数を意味することができる。
予測リスト活用フラグ(prediction list utilization flag):特定の参照画像リスト内の少なくとも一つの参照画像を用いて予測ブロックを生成するか否かを示す。予測リスト活用フラグを用いて画面間予測インジケータを導出することができ、逆に画面間予測インジケータを用いて予測リスト活用フラグを導出することができる。例えば、予測リスト活用フラグが第1の値「0」を指示する場合には、当該参照画像リスト内の参照画像を用いて予測ブロックを生成しないことを示すことができ、第2の値「1」を指示する場合には、当該参照画像リストを用いて予測ブロックを生成することができることを示すことができる。
参照画像インデックス(Reference Picture Index):参照画像リストにおいて特定の参照画像を指し示すインデックスを意味することができる。
参照画像(Reference Picture):画面間予測或いは動き補償のために特定のブロックが参照する画像を意味することができる。又は、参照画像は、画面間予測又は動き補償のために現在ブロックが参照する参照ブロックを含む画像であり得る。以下、用語「参照ピクチャ」及び「参照画像」は、同一の意味で使用されることもあり、入れ替わって使用されることもある。
動きベクトル(Motion Vector):画面間予測或いは動き補償に使用される2次元ベクトルであり得る。動きベクトルは、符号化/復号化対象ブロックと参照ブロックとの間のオフセットを意味することができる。例えば、(mvX,mvY)は動きベクトルを示すことができる。mvXは水平(horizontal)成分、mvYは垂直(vertical)成分を示すことができる。
探索領域(Search Range):探索領域は、画面間予測のうち、動きベクトルに対する探索が行われる2次元の領域であり得る。例えば、探索領域のサイズはMxNであり得る。M及びNはそれぞれ正の整数であり得る。
動きベクトル候補(Motion Vector Candidate):動きベクトルを予測するときに予測候補となるブロック、或いはそのブロックの動きベクトルを意味することができる。また、動きベクトル候補は、動きベクトル候補リストに含まれてもよい。
動きベクトル候補リスト(Motion Vector Candidate List):一つ以上の動きベクトル候補を用いて構成されたリストを意味することができる。
動きベクトル候補インデックス(Motion Vector Candidate Index):動きベクトル候補リスト内の動きベクトル候補を示すインジケータを意味することができる。動きベクトル予測器(Motion Vector Predictor)のインデックス(index)であってもよい。
動き情報(Motion Information):動きベクトル、参照画像インデックス、画面間予測インジケータだけでなく、予測リスト活用フラグ、参照画像リスト情報、参照画像、動きベクトル候補、動きベクトル候補インデックス、マージ候補、マージンインデックスなどのうちの少なくとも一つを含む情報を意味することができる。
マージ候補リスト(Merge Candidate List):一つ以上のマージ候補を用いて構成されたリストを意味することができる。
マージ候補(Merge Candidate):空間マージ候補、時間マージ候補、組み合わせマージ候補、組み合わせ双予測マージ候補、ゼロマージ候補などを意味することができる。マージ候補は、画面間予測インジケータ、各リストに対する参照画像インデックス、動きベクトル、予測リスト活用フラグ、画面間予測インジケータなどの動き情報を含むことができる。
マージインデックス(Merge Index):マージ候補リスト内のマージ候補を指し示すインジケータを意味することができる。また、マージインデックスは、空間的/時間的に現在ブロックと隣接するように復元されたブロックのうち、マージ候補を誘導したブロックを示すことができる。また、マージインデックスは、マージ候補が持つ動き情報のうちの少なくとも一つを示すことができる。
変換ユニット(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は、四分木分割、二分木分割及び三分木分割が全て適用されたCTUの一例である。
前述したように、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のうちの少なくとも一つの大きさであり得る。予測ブロックは、2×2、4×4、16×16、32×32又は64×64などのサイズを有する正方形形状のブロックであってもよく、2×8、4×8、2×16、4×16及び8×16などのサイズを有する長方形形状のブロックであってもよい。
画面内予測は、現在ブロックに対する画面内予測モードに応じて行われ得る。現在ブロックが持つことができる画面内予測モードの個数は、所定の固定値であり、予測ブロックの属性に応じて異なるように決定された値であり得る。例えば、予測ブロックの属性は、予測ブロックの大きさ及び予測ブロックの形状などを含むことができる。
画面内予測モードの個数は、ブロックの大きさに関係なく、N個に固定できる。又は、例えば、画面内予測モードの個数は、3、5、9、17、34、35、36、65、又は67などであり得る。又は、画面内予測モードの個数は、ブロックの大きさ及び/又は色成分(color component)のタイプによって異なり得る。例えば、色成分が輝度(luma)信号であるか、色差(chroma)信号であるかによって、画面内予測モードの個数が異なり得る。例えば、ブロックの大きさが大きくなるほど画面内予測モードの個数は多くなり得る。又は、輝度成分ブロックの画面内予測モードの個数は、色差成分ブロックの画面内予測モードの個数よりも多いことがある。
画面内予測モードは、非方向性モード又は方向性モードであり得る。非方向性モードは、DCモード又はプランナー(Planar)モードであり得る。方向性モード(angular mode)は、特定の方向又は角度を持つ予測モードであり得る。前記画面内予測モードは、モード番号、モード値、モード数字、モード角度及びモード方向のうちの少なくとも一つで表現できる。画面内予測モードの個数は、前記非方向性及び方向性モードを含む一つ以上のM個であり得る。
現在ブロックを画面内予測するために復元された周辺ブロックに含まれるサンプルが現在ブロックの参照サンプルとして利用可能であるか否かを検査するステップが行われ得る。現在ブロックの参照サンプルとして利用不可能なサンプルが存在する場合、復元された周辺ブロックに含まれているサンプルのうちの少なくとも一つのサンプル値をコピー及び/又は補間した値を用いて、参照サンプルとして利用不可能なサンプルのサンプル値と置き換えた後、現在ブロックの参照サンプルとして利用可能である。
画面内予測時の画面内予測モード及び現在ブロックの大きさのうちの少なくとも一つに基づいて、参照サンプル又は予測サンプルのうちの少なくとも一つにフィルタを適用することができる。
プランナーモードの場合には、現在ブロックの予測ブロックを生成するとき、予測対象サンプルの予測ブロック内の位置に基づいて、現在サンプルの上側及び左側参照サンプル、現在ブロックの右上側及び左下側参照サンプルの重み付け和を用いて、予測対象サンプルのサンプル値を生成することができる。また、DCモードの場合には、現在ブロックの予測ブロックを生成するとき、現在ブロックの上側及び左側参照サンプルの平均値を用いることができる。また、方向性モードの場合には、現在ブロックの上側、左側、右上側及び/又は左下側参照サンプルを用いて予測ブロックを生成することができる。予測サンプル値を生成するために、実数単位の補間を行うこともできる。
現在ブロックの画面内予測モードは、現在ブロックの周辺に存在するブロックの画面内予測モードから予測してエントロピー符号化/復号化することができる。現在ブロックと周辺ブロックの画面内予測モードが同一であれば、所定のフラグ情報を用いて、現在ブロックと周辺ブロックの画面内予測モードが同一であるという情報をシグナリングすることができる。また、複数の周辺ブロックの画面内予測モードのうち、現在ブロックの画面内予測モードと同じ画面内予測モードに対するインジケータ情報をシグナリングすることができる。現在ブロックと周辺ブロックの画面内予測モードが互いに異なる場合、周辺ブロックの画面内予測モードに基づいてエントロピー符号化/復号化を行うことにより、現在ブロックの画面内予測モード情報をエントロピー符号化/復号化することができる。
図5は画面間予測過程の実施形態を説明するための図である。
図5に示された四角形は画像を示すことができる。また、図4における矢印は、予測方向を示すことができる。各画像は、符号化タイプによってIピクチャ(Intra Picture)、Pピクチャ(Predictive Picture)、Bピクチャ(Bi-predictive Picture)などに分類できる。
Iピクチャは、画面間予測なしに、画面内予測を介して符号化/復号化できる。Pピクチャは、一方向(例えば、順方向又は逆方向)に存在する参照画像のみを利用する画面間予測を介して符号化/復号化できる。Bピクチャは、双方向(例えば、順方向及び逆方向)に存在する参照画像を利用する画面間予測を介して符号化/復号化できる。また、Bピクチャの場合、双方向に存在する参照画像を利用する画面間予測、又は順方向及び逆方向のうちの一方向に存在する参照画像を利用する画面間予測を介して符号化/復号化できる。ここで、双方向は順方向及び逆方向であり得る。ここで、画面間予測が使用される場合、符号化器では画面間予測或いは動き補償を行うことができ、復号化器ではそれに対応する動き補償を行うことができる。
以下、実施形態による画面間予測について具体的に説明される。
画面間予測或いは動き補償は、参照画像及び動き情報を用いて行われ得る。
現在ブロックに対する動き情報は、符号化装置100及び復号化装置200のそれぞれによって画面間予測中に導出できる。動き情報は、復元された周辺ブロックの動き情報、コロケーテッドブロック(collocated block;col block)の動き情報及び/又はコロケーテッドブロックに隣接するブロックを用いて導出できる。コロケーテッドブロックは、既に復元されたコロケーテッドピクチャ(collocated picture;col picture)内で現在ブロックの空間的位置に対応するブロックであり得る。ここで、コロケーテッドピクチャは参照画像リストに含まれている少なくとも一つの参照画像のうちの一つのピクチャであり得る。
動き情報の導出方式は、現在ブロックの予測モードによって異なり得る。例えば、画面間予測のために適用される予測モードとして、AMVPモード、マージモード、スキップモード、現在ピクチャ参照モードなどがあり得る。ここで、マージモードを動きマージモード(motion merge mode)と呼ぶこともある。
例えば、予測モードとしてAMVPが適用される場合、復元された周辺ブロックの動きベクトル、コロケーテッドブロックの動きベクトル、コロケーテッドブロックに隣接するブロックの動きベクトル、及び(0,0)動きベクトルのうちの少なくとも一つを動きベクトル候補として決定して、動きベクトル候補リスト(motion vector candidate list)を生成することができる。生成された動きベクトル候補リストを用いて動きベクトル候補を誘導することができる。誘導された動きベクトル候補に基づいて、現在ブロックの動き情報を決定することができる。ここで、コロケーテッドブロックの動きベクトル又はコロケーテッドブロックに隣接するブロックの動きベクトルを時間動きベクトル候補(temporal motion vector candidate)と呼ぶことがあり、復元された周辺ブロックの動きベクトルを空間動きベクトル候補(spatial motion vector candidate )と呼ぶことがある。
符号化装置100は、現在ブロックの動きベクトルと動きベクトル候補との動きベクトル差分(MVD:Motion Vector Difference)を計算することができ、MVDをエントロピー符号化することができる。また、符号化装置100は、動きベクトル候補インデックスをエントロピー符号化してビットストリームを生成することができる。動きベクトル候補インデックスは、動きベクトル候補リストに含まれている動きベクトル候補の中から選択された最適な動きベクトル候補を指示することができる。復号化装置200は、動きベクトル候補インデックスをビットストリームからエントロピー復号化し、エントロピー復号化された動きベクトル候補インデックスを用いて、動きベクトル候補リストに含まれている動きベクトル候補の中から復号化対象ブロックの動きベクトル候補を選択することができる。また、復号化装置200は、エントロピー復号化されたMVDと動きベクトル候補との和を用いて復号化対象ブロックの動きベクトルを導出することができる。
ビットストリームは、参照画像を指示する参照画像インデックスなどを含むことができる。参照画像インデックスは、エントロピー符号化されてビットストリームを介して符号化装置100から復号化装置200へシグナリングできる。復号化装置200は、誘導された動きベクトルと参照画像インデックス情報に基づいて復号化対象ブロックに対する予測ブロックを生成することができる。
動き情報の導出方式の他の例として、マージモードがある。マージモードとは、複数のブロックに対する動きの併合を意味することができる。マージモードは、現在ブロックの動き情報を周辺ブロックの動き情報から誘導するモードを意味することができる。マージモードが適用される場合、復元された周辺ブロックの動き情報及び/又はコロケーテッドブロックの動き情報を用いて、マージ候補リスト(merge candidate list)を生成することができる。動き情報は、1)動きベクトル、2)参照画像インデックス、及び3)画面間予測インジケータのうちの少なくとも一つを含むことができる。予測インジケータは、一方向(L0予測、L1予測)又は双方向であり得る。
マージ候補リストは、動き情報が保存されたリストを示すことができる。マージ候補リストに保存される動き情報は、現在ブロックに隣接する周辺ブロックの動き情報(空間マージ候補(spatial merge candidate))、参照画像における、現在ブロックに対応する(collocated)ブロックの動き情報(時間マージ候補(temporal merge candidate))、既にマージ候補リストに存在する動き情報の組み合わせによって生成された新しい動き情報及びゼロマージ候補のうちの少なくとも一つであり得る。
符号化装置100は、マージフラグ(merge flag)及びマージインデックス(merge index)のうちの少なくとも一つをエントロピー符号化してビットストリームを生成した後、復号化装置200へシグナリングすることができる。マージフラグは、ブロック別にマージモードを行うか否かを示す情報であり、マージインデックスは、現在ブロックに隣接する周辺ブロックのうちのどのブロックとマージを行うかについての情報であり得る。例えば、現在ブロックの周辺ブロックは、現在ブロックの左側隣接ブロック、上側隣接ブロック及び時間的隣接ブロックのうちの少なくとも一つを含むことができる。
スキップモードは、周辺ブロックの動き情報をそのまま現在ブロックに適用するモードであり得る。スキップモードが使用される場合、符号化装置100は、どのブロックの動き情報を現在ブロックの動き情報として用いるかについての情報をエントロピー符号化してビットストリームを介して復号化装置200へシグナリングすることができる。このとき、符号化装置100は、動きベクトル差分情報、符号化ブロックフラグ及び変換係数レベル(量子化レベル)のうちの少なくとも一つに関する構文要素を復号化装置200へシグナリングしなくてもよい。
現在ピクチャ参照モードは、現在ブロックが属する現在ピクチャ内の既に復元された領域を用いた予測モードを意味することができる。この際、前記既に復元された領域を特定するために、ベクトルが定義できる。現在ブロックが現在ピクチャ参照モードで符号化されるか否かは、現在ブロックの参照画像インデックスを用いて符号化できる。現在ブロックが現在ピクチャ参照モードで符号化されたブロックであるか否かを示すフラグ或いはインデックスがシグナリングされてもよく、現在ブロックの参照画像インデックスを用いて類推されてもよい。現在ブロックが現在ピクチャ参照モードで符号化された場合、現在ピクチャは、現在ブロックのための参照画像リスト内で固定位置又は任意の位置に追加できる。前記固定位置は、例えば、参照画像インデックスが0である位置又は最後の位置であり得る。現在ピクチャが参照画像リスト内で任意の位置に追加される場合、前記任意の位置を示す別途の参照画像インデックスがシグナリングされてもよい。
図6は変換及び量子化の過程を説明するための図である。
図6に示すように、残余信号に変換及び/又は量子化過程を行うことにより、量子化されたレベルが生成できる。前記残余信号は、原本ブロックと予測ブロック(画面内予測ブロック或いは画面間予測ブロック)間の差分で生成できる。ここで、予測ブロックは、画面内予測又は画面間予測によって生成されたブロックであり得る。ここで、変換は、1次変換及び2次変換のうちの少なくとも一つを含むことができる。残余信号に対して1次変換を行うと、変換係数が生成でき、変換係数に2次変換を行うことにより、2次変換係数が生成できる。
1次変換(Primary Transform)は、所定の複数の変換方法のうちの少なくとも一つを用いて行われ得る。一例として、所定の複数の変換方法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)又はKLT(Karhunen-Loeve Transform)ベースの変換などを含むことができる。1次変換が行われた後に生成される変換係数に2次変換(Secondary Transform)を行うことができる。1次変換及び/又は二次変換の際に適用される変換方法は、現在ブロック及び/又は周辺ブロックの符号化パラメータのうちの少なくとも一つに基づいて決定できる。又は、変換方法を指示する変換情報がシグナリングされてもよい。
1次変換及び/又は2次変換が行われた結果又は残余信号に量子化を行うことにより、量子化レベルを生成することができる。量子化レベルは、画面内予測モード又はブロックの大きさ/形状のうちの少なくとも一つに基づいて右上側対角スキャン、垂直スキャン、水平スキャンのうちの少なくとも一つによってスキャニング(scanning)できる。例えば、右上側(up-right)対角スキャニングを用いてブロックの係数をスキャンすることにより、1次元ベクトル形式に変更させることができる。変換ブロックの大きさ及び/又は画面内予測モードに応じて、右上側対角スキャンの代わりに、2次元のブロック形状係数を列方向にスキャンする垂直スキャン、2次元のブロック形状係数を行方向にスキャンする水平スキャンが使用されてもよい。スキャニングされた量子化レベルは、エントロピー符号化されてビットストリームに含まれ得る。
復号化器では、ビットストリームをエントロピー復号化して量子化レベルを生成することができる。量子化レベルは、逆スキャニング(Inverse Scanning)されて2次元のブロック形状に整列できる。この時、逆スキャニングの方法として、右上側対角スキャン、垂直スキャン及び水平スキャンのうち少なくとも一つが行われ得る。
量子化レベルに逆量子化を行うことができ、2次逆変換の実行有無に応じて2次逆変換を行うことができ、2次逆変換が行われた結果に1次逆変換の実行有無に応じて1次逆変換を行うことにより、復元された残余信号が生成できる。
以下、図7乃至図55dを参照して、本発明の一実施形態に係る副標本ベースのブロック分類を用いたループ内フィルタリング方法について後述する。
本発明において、ループ内フィルタリング(in-loop filtering)は、デブロッキングフィルタ(deblocking filtering)、サンプル適応的オフセット(sample adaptive offset)、双方向フィルタリング(bilateral filtering)、及び適応的ループ内フィルタリング(adaptive in-loop filtering)のうちの少なくとも一つを含むことができる。
画面内/画面間予測ブロックと復元された残余ブロックとを合わせて生成された復元画像に、前記デブロッキングフィルタリングと前記サンプル適応的オフセットのうちの少なくとも一つを行うことにより、復元画像内に存在するブロッキング現象(blocking artifact)とリンギング(ringing artifact)を効果的に減少させることができる。しかし、デブロッキングフィルタは、ブロックの境界に対して縦方向のフィルタリング及び横方向のフィルタリングを行うことにより、ブロック間の境界で発生するブロッキング現象を減少させることに目的があるが、デブロッキングフィルタは、ブロック境界のフィルタリング時に原本画像と復元画像との歪みを最小化することはできないという欠点がある。また、サンプル適応的オフセットは、リンギング現象の減少のために画素単位で隣接する画素との画素値の比較を経て、特定の画素にオフセットを加えたり、画素値が特定の範囲に属する画素に対してオフセットを加えたりする方法であり、サンプル適応的オフセットは、レート-歪み最適化を用いて、原本画像と復元画像との歪みを一部最小化するが、原本画像と復元画像との歪みの差が大きい場合には、歪み最小化の観点で限界が存在する。
前記双方向フィルタリングは、フィルタリングが行われる領域内の中心サンプルと領域内の他のサンプルとの距離、及びサンプル間の値の差に基づいてフィルタ係数が決定されてフィルタリングを行うことを意味することができる。
前記適応的ループ内フィルタリングは、復元画像に原本画像と復元画像間の歪みを最小化するフィルタを適用することにより、原本画像と復元画像との歪みを最小化するフィルタリングを意味することができる。
本発明において、特別な記載がない限り、ループ内フィルタリングは、適応的ループ内フィルタリングを意味することができる。
本発明において、フィルタリングは、サンプル、ブロック、CU、PU、TU、CTU、スライス、タイル、タイルグループ、画像(ピクチャ)及びシーケンスのうちの少なくとも一つの単位にフィルタを適用することを意味することができる。前記フィルタリングは、ブロック分類、フィルタリング実行、フィルタ情報符号化/復号化のうちの少なくとも一つを含むことができる。
本発明において、CU(Coding Unit、符号化ユニット)、PU(Prediction Unit、予測ユニット)、TU(Transform Unit、変換ユニット)、CTU(Coding Tree Unit、符号化ツリーユニット)は、それぞれCB(Coding Block、符号化ブロック)、PB(Prediction Block、予測ブロック)、TB(Transform Block、変換ブロック)、CTB(Coding Tree Block、符号化ツリーブロック)と同じ意味であり得る。
本発明において、ブロックは、CU、PU、TU、CB、PB、TBなど、符号化/復号化過程内で使用されるブロック或いはユニット単位のうちの少なくとも一つを意味することができる。
前記ループ内フィルタリングは、双方向フィルタリング、デブロッキングフィルタリング、サンプル適応的オフセット、適応的ループ内フィルタリングの順に復元画像に適用されて復号画像を生成することができる。しかし、ループ内フィルタリングに含まれるフィルタリング間の順序を変更して復元画像に適用することにより、復号画像を生成することができる。
一例として、デブロッキングフィルタリング、サンプル適応的オフセット、適応的ループ内フィルタリングの順に復元画像にループ内フィルタリングを適用することができる。
他の例として、双方向フィルタリング、適応的ループ内フィルタリング、デブロッキングフィルタリング、サンプル適応的オフセットの順に復元画像にループ内フィルタリングを適用することができる。
別の例として、適応的ループ内フィルタリング、デブロッキングフィルタリング、サンプル適応的オフセットの順に復元画像にループ内フィルタリングを適用することができる。
別の例として、適応的ループ内フィルタリング、サンプル適応的オフセット、デブロッキングフィルタリングの順に復元画像にループ内フィルタリングを適用することができる。
本発明において、復号画像は、画面内予測ブロック或いは画面間予測ブロックに復元残余ブロックを加えて生成される復元ブロックで構成された復元画像に対してループ内フィルタリング或いは後処理フィルタリングを行った結果画像を意味することができる。また、本発明において、復号サンプル/ブロック/CTU/画像などと復元サンプル/ブロック/CTU/画像などの意味は、互いに異ならず、同一であることを意味することもできる。
前記適応的ループ内フィルタリングは、復元画像に適用されて復号画像を生成することができる。又は、適応的ループ内フィルタリングは、デブロッキングフィルタリング、サンプル適応的オフセット及び双方向フィルタリングのうちの少なくとも一つが行われた復号画像に適用できる。また、適応的ループ内フィルタリングは、適応的ループ内フィルタリングが行われた復号画像に適用できる。この場合には、適応的ループ内フィルタリングを復元又は復号画像に対してN回繰り返し行うことができる。このとき、Nは正の整数である。
前記ループ内フィルタリング方法のうちの少なくとも一つのフィルタリングが行われた復号画像に対してループ内フィルタリングを行うことができる。例えば、ループ内フィルタリング方法のうちの少なくとも一つが行われた復号画像に対してループ内フィルタリング方法のうちの少なくとも他の一つのフィルタリングが行われる場合には、前記ループ内フィルタリング方法のうちの少なくとも他の一つに使用されるパラメータが変更され、パラメータの変更されたループ内フィルタリング方法が前記復号画像に適用できる。この時、前記パラメータは、符号化パラメータ、フィルタ係数、フィルタタップ数(フィルタ長)、フィルタ形状、フィルタ種類、フィルタリング実行回数、フィルタ強度、及びしきい値のうちの少なくとも一つを含むことができる。
前記フィルタ係数は、フィルタを構成する係数を意味することができ、復元サンプルに掛けられる、マスク(mask)形状における特定のマスク位置に該当する係数値を意味することができる。
前記フィルタタップ数はフィルタ長を意味し、フィルタが特定の1つの方向に対して対称的(symmetric)特性を持つ場合には、実際符号化/復号化の対象となるフィルタ係数は半分に減少できる。また、前記フィルタタップは、横方向におけるフィルタの広さを意味するか、縦方向におけるフィルタの高さを意味することができる。また、前記フィルタタップは、2次元フィルタ形態において横方向におけるフィルタの広さと縦方向におけるフィルタの高さを一緒に意味することができる。また、フィルタは、特定の2つ以上の方向に対して対称的特徴を持つことができる。
前記フィルタ形状は、フィルタがマスク形状を持つ場合、菱形(diamond/rhombus)、長方形(non-square)、正方形(square)、台形(trapezoid)、対角(diagonal)、雪片(snowflake)、シャープ(sharp)、クローバー(clover)、十字架(cross)、三角形、五角形、六角形、八角形、十角形、十二角形など2次元で表現できる幾何学的図形又はこれらの組み合わせの形状を意味することができる。又は、フィルタ形状は、3次元フィルタを2次元的に投射(projection)させた形状であり得る。
前記フィルタ種類は、ウィーナーフィルタ(Wiener filter)、低域通過フィルタ(low-pass filter)、高域通過フィルタ(high-pass filter)、線形フィルタ(linear filter)、非線形フィルタ(non-linear filter)、双方向フィルタ(bilateral filter)などのフィルタを意味することができる。
本発明では、前記様々なフィルタ種類の中でもウィーナーフィルタを中心に説明するが、これに限定されるものではなく、前記様々なフィルタ種類に対して本発明の実施形態又は実施形態の組み合わせが適用できる。
適応的ループ内フィルタリングのフィルタ種類としてウィーナーフィルタ(Wiener filter)を用いることができる。ウィーナーフィルタは、最適の線形フィルタ(optimallinear filter)であって、画像内のノイズ(noise)、ブラーリング(blurring)、歪み(distortion)を効果的に除去して符号化効率を向上させることにその目的がある。このとき、ウィーナーフィルタは、原本画像と復元/復号画像との歪みを最小化するように設計できる。
前記フィルタリング方法の少なくとも一つは、符号化過程或いは復号化過程内で行われ得る。このとき、符号化過程或いは復号化過程は、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU及びTU単位のうちの少なくとも一つの単位で符号化過程或いは復号化過程が行われることを意味することができる。前記フィルタリング方法の少なくとも一つは、スライス、タイル、タイルグループ、ピクチャなどの単位で符号化過程或いは復号化過程内で行われ得る。例えば、ウィーナーフィルタは、適応的ループ内フィルタリングの形で符号化過程或いは復号化過程内で行われ得る。つまり、適応的ループ内フィルタリングにおけるループ内とは、符号化過程或いは復号化過程内でフィルタリングが行われるという意味である。適応的ループ内フィルタリングが行われる場合、適応的ループ内フィルタリングが行われた復号画像は、追って符号化/復号化される画像の参照画像として使用できる。このとき、追って符号化/復号化される画像では、適応的ループ内フィルタリングが行われた復号画像を参照して、画面間予測又は動き補償を行うことができるので、適応的ループ内フィルタリングが行われた復号画像の符号化効率だけでなく、前記追って符号化/復号化される画像の符号化効率も向上できる。
また、前記フィルタリング方法の少なくとも一つは、CTU単位或いはブロック単位の符号化過程或いは復号化過程内で行われ得る。例えば、ウィーナーフィルタは、適応的ループ内フィルタリングの形でCTU単位或いはブロック単位の符号化過程或いは復号化過程内で行われ得る。すなわち、適応的ループ内フィルタリングにおけるループ内とは、CTU単位或いはブロック単位の符号化過程或いは復号化過程内でフィルタリングが行われるという意味である。CTU単位或いはブロック単位で適応的ループ内フィルタリングが行われる場合、適応的ループ内フィルタリングが行われた復号CTU或いは復号ブロックは、追って符号化/復号化されるCTU或いはブロックの参照CTU或いは参照ブロックとして使用されることも可能である。このとき、追って符号化/復号化されるCTU或いはブロックでは、適応的ループ内フィルタリングが行われた復号CTU或いは復号ブロックを参照して画面内予測などを行うことができるので、適応的ループ内フィルタリングが行われた復号CTU或いは復号ブロックの符号化効率だけでなく、前記追って符号化/復号化されるCTU或いはブロックの符号化効率も向上できる。
また、前記フィルタリング方法の少なくとも一つは、後処理フィルタリングの形で復号化過程後に行われ得る。例えば、ウィーナーフィルタは後処理フィルタの形態で復号化過程後に適用できる。ウィーナーフィルタが復号化過程後に適用される場合には、画像出力(ディスプレイ)の前に復元/復号画像にウィーナーフィルタが適用できる。後処理フィルタリングが行われる場合、後処理フィルタリングが行われた復号画像は、追って符号化/復号化される画像の参照画像として使用できない。
適応的ループ内フィルタリングは、ブロックベースのフィルタ適応を使用することができる。ここで、ブロックベースのフィルタ適応とは、多数のフィルタの中から、ブロックごとに使用されるフィルタが適応的に選択されるということを意味することができる。前記ブロックベースのフィルタ適応はブロック分類を意味することができる。
図7は本発明の一実施形態による画像復号化方法を示すフローチャートである。
図7を参照すると、復号化器は符号化ユニットに対するフィルタ情報を復号化することができる(S701)。
前記フィルタ情報は、符号化ユニットに対してのみ限定されるものではなく、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU、TUなどに対するフィルタ情報を意味することができる。
一方、前記フィルタ情報は、フィルタリング実行有無、フィルタ係数値、フィルタ個数、フィルタタップ数(フィルタ長)情報、フィルタ形状情報、フィルタ種類情報、ブロック分類インデックスに対する固定されたフィルタ使用有無情報、及びフィルタの対称形状に関する情報のうちの少なくとも一つを含むことができる。
一方、前記フィルタ形状情報は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形の形状のうちの少なくとも一つの情報を含むことができる。
一方、前記フィルタ係数値は、ブロック分類単位で分類されたブロックに基づいて幾何学的変換されたフィルタ係数値を含むことができる。
一方、フィルタの対称形状に関する情報は、点対称、横対称、縦対称及び対角対称形状のうちの少なくとも一つの情報を含むことができる。
また、復号化器は、前記符号化ユニットをブロック分類単位で分類することができる(S702)。また、復号化器は、前記ブロック分類単位で分類された符号化ユニットにブロック分類インデックスを割り当てることができる。
前記ブロック分類は、符号化ユニット単位で行われることに限定されるものではなく、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU、TUなどの単位で行われ得る。
一方、前記ブロック分類インデックスは、方向性情報と活動性情報を用いて決定できる。
一方、前記方向性情報及び活動性情報のうちの少なくとも一つは、縦方向、横方向、第1対角方向及び第2対角方向のうちの少なくとも一つに対する勾配(gradient)値に基づいて決定できる。
一方、前記勾配値は、前記ブロック分類単位での1Dラプラシアン演算を用いて取得できる。
一方、前記1Dラプラシアン演算は、前記演算の実行位置がサブサンプリングされた1Dラプラシアン演算であり得る。
一方、前記勾配値は、時間的階層識別子(temporal layer identifier)に基づいて決定できる。
また、復号化器は、前記フィルタ情報を用いて、前記ブロック分類単位で分類された符号化ユニットをフィルタリングすることができる(S703)。
前記フィルタリングの対象は、符号化ユニットに限定されるものではなく、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU、TUなどであり得る。
図8は本発明の一実施形態による画像符号化方法を示すフローチャートである。
図8を参照すると、符号化器は、符号化ユニットをブロック分類単位で分類することができる(S801)。また、符号化器は、前記ブロック分類単位で分類された符号化ユニットにブロック分類インデックスを割り当てることができる。
前記ブロック分類は、符号化ユニット単位で行われることに限定されるものではなく、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU、TUなどの単位で行われ得る。
一方、前記ブロック分類インデックスは、方向性情報と活動性情報を用いて決定できる。
一方、前記方向性情報及び活動性情報のうちの少なくとも一つは、縦方向、横方向、第1対角方向及び第2対角方向のうちの少なくとも一つに対する勾配値に基づいて決定できる。
一方、前記勾配値は、前記ブロック分類単位での1Dラプラシアン演算を用いて取得できる。
一方、前記1Dラプラシアン演算は、前記演算の実行位置がサブサンプリングされた1Dラプラシアン演算であり得る。
一方、前記勾配値は、時間的階層識別子に基づいて決定できる。
また、符号化器は、前記符号化ユニットに対するフィルタ情報を用いて、前記ブロック分類単位で分類された符号化ユニットをフィルタリングすることができる(S802)。
前記フィルタリングの対象は、符号化ユニットに限定されるものではなく、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU、TUなどであり得る。
一方、前記フィルタ情報は、フィルタ実行有無、フィルタ係数値、フィルタ個数、フィルタタップ数(フィルタ長)情報、フィルタ形状情報、フィルタ種類情報、ブロック分類インデックスに対する固定されたフィルタ使用有無情報、及びフィルタの対称形状に関する情報のうちの少なくとも一つを含むことができる。
一方、前記フィルタ形状情報は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形の形状のうちの少なくとも一つの情報を含むことができる。
一方、前記フィルタ係数値は、ブロック分類単位で分類されたブロックに基づいて幾何学的変換されたフィルタ係数値を含むことができる。
また、符号化器は、前記フィルタ情報を符号化することができる(S803)。
前記フィルタ情報は、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU、TUなどに対するフィルタ情報を意味することができる。
符号化器では、適応的ループ内フィルタリングは、ブロック分類(block classification)ステップ、フィルタリング(filtering)実行ステップ、及びフィルタ情報(filtering information)符号化ステップで構成できる。
より詳細には、符号化器では、ブロック分類ステップ、フィルタ係数誘導ステップ、フィルタリング実行決定ステップ、フィルタ形状決定ステップ、フィルタリング実行ステップ、フィルタ情報符号化ステップなどで構成できる。前記フィルタ係数誘導ステップ、前記フィルタリング実行決定ステップ、前記フィルタ形状決定ステップは、本発明の範囲から外れるので、本発明で具体的な言及はしないが、次のとおり簡略に説明することができる。したがって、符号化器は、ブロック分類ステップ、フィルタリング実行ステップ、フィルタ情報符号化ステップを含むことができる。
フィルタ係数誘導ステップでは、原本画像とフィルタリングが適用された画像との歪み(distortion)を最小化する観点から、ウィーナーフィルタ係数を誘導することができる。この際、ブロック分類インデックスごとにウィーナーフィルタ係数を誘導することができる。また、フィルタタップ数及びフィルタ形状のうちの少なくとも一つに応じてウィーナーフィルタ係数を誘導することができる。ウィーナーフィルタ係数を誘導するとき、復元サンプルに対する自己相関関数(auto-correlation function)、原本サンプル及び復元サンプルに対する相互相関関数(cross-correlation function)、自己相関行列及び相互相関行列を誘導することができる。誘導された自己相関行列と相互相関行列を用いてウィナー-ホープ方程式(Wiener-Hopf equation)を誘導してフィルタ係数を計算することができる。このとき、ウィンナー-ホープ方程式にガウス消去(Gaussian elimination)法、或いはコレスキー分解法(Cholesky decomposition method)を用いてフィルタ係数を計算することができる。
フィルタリング実行決定ステップでは、スライス/ピクチャ/タイル/タイルグループ単位で適応的ループ内フィルタリングを適用するか、ブロック単位で適応的ループ内フィルタリングを適用するか、適応的ループ内フィルタリングを適用しないかなどをレート-歪み最適化(rate-distortion optimization)の観点から決定することができる。ここで、レート(rate)は、符号化すべきフィルタ情報を含むことができる。また、歪みは、原本画像と復元画像との差或いは原本画像とフィルタリングされた復元画像との差に対する値であり得る。MSE(Mean of Squared Error)、SSE(Sum of Squared Error)、SAD(Sum of Absolute Difference)などが使用できる。このとき、フィルタリング実行決定ステップでは、輝度成分だけでなく、色差成分に対するフィルタリング実行も決定することができる。
フィルタ形状決定ステップでは、適応的ループ内フィルタリングを適用するとき、どんな形態のフィルタ形状を使用するか、どんなタップ数のフィルタを使用するかなどをレート-歪み最適化の観点から決定することができる。
一方、復号化器では、フィルタ情報復号化ステップ、ブロック分類ステップ、フィルタリング実行ステップを含むことができる。
本発明における重複説明を避けるために、フィルタ情報符号化ステップとフィルタ情報復号化ステップとを合わせてフィルタ情報符号化/復号化ステップとして後述する。
以下、ブロック分類ステップについて後述する。
復元画像内のN×Mブロック単位(又は、ブロック分類単位)でブロック分類インデックス(block classification index)を割り当てて、各ブロックをL個だけ分類することができる。ここで、復元/復号画像だけでなく、復元/復号スライス、復元/復号タイルグループ、復元/復号タイル、復元/復号CTU、復元/復号ブロックなどのうちの少なくとも一つに対してブロック分類インデックスを割り当てることができる。
ここで、N、M、Lは正の整数であり得る。例えば、NとMはそれぞれ2、4、8、16及び32のいずれかであり、Lは4、8、16、20、25及び32のいずれかであり得る。もし、NとMがそれぞれ1である場合、ブロック単位のブロック分類ではなく、サンプル単位のサンプル分類が行われ得る。また、NとMが互いに異なる正の整数値を持つ場合には、N×Mブロック単位が非正方形の形状を持つことができる。また、NとMが互いに同じ正の整数値を持つことができる。
例えば、復元画像を2×2ブロック単位で合計25種類のブロック分類インデックスを割り当てることができる。例えば、復元画像を4×4ブロック単位で合計25種類のブロック分類インデックスを割り当てることができる。
前記ブロック分類インデックスは、0乃至L-1の値を持つことができ、又は、1乃至Lの値を持つこともできる。
前記ブロック分類インデックスCは、方向性(directionality)D値と活動性(activity)A値を量子化したAq値のうちの少なくとも一つをベースとし、数式1で表すことができる。
[数式1]
数式1中、定数値5は、一例であって、J値を使用することができる。このとき、JはLよりも小さい値を持つ正の整数であり得る。
本発明の一実施形態によれば、2×2ブロック分類の場合、1Dラプラシアン(Laplacian)演算を用いて縦方向、横方向、第1対角(135度対角)方向、第2対角(45度対角)方向によるそれぞれの勾配(gradient)値の和gv、gh、gd1、gd2は、数式2乃至数式5で表すことができる。前記勾配値の和を用いて前記D値とA値を導出することができる。前記勾配値の和は、一実施形態であり、勾配値の統計値が勾配値の和を代替して使用できる。
[数式2]
[数式3]
[数式4]
[数式5]
数式2乃至数式5中、iとjそれぞれは2×2ブロック内の左上側の横位置と縦位置を意味し、R(i,j)は(i,j)位置における復元サンプル値を意味することができる。
また、数式2乃至数式5中、kとlそれぞれは、方向によるサンプル単位1Dラプラシアン演算の結果Vk、l、Hk、l、D1k、l、D2k、lの和が計算される横範囲と縦範囲を意味することができる。前記それぞれの方向によるサンプル単位1Dラプラシアン演算の結果は、それぞれの方向によるサンプル単位の勾配(gradient)値を意味することができる。すなわち、1Dラプラシアン演算の結果は、勾配値を意味することができる。前記1Dラプラシアン演算は、縦方向、横方向、第1対角方向、第2対角方向それぞれに対して行われ得る。該当方向に対する勾配値を示すことができる。また、前記1Dラプラシアン演算は、縦方向、横方向、第1対角方向、第2対角方向それぞれに対して行われた結果がそれぞれVk、l、Hk、l、D1k、l、D2k、lを意味することができる。
一例として、kとlは、互いに同じ範囲を持つことができる。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが同一であってもよい。
他の例として、kとlは、互いに異なる範囲を持つことができる。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが異なってもよい。
別の例として、kはi-2乃至i+3の範囲、lはj-2乃至j+3の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が6×6サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。
別の例として、kはi-1乃至i+2の範囲、lはj-1乃至j+2の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が4×4サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。
別の例として、kはi乃至i+1の範囲、lはj乃至j+1の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が2×2サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさと同一であってもよい。
別の例として、1Dラプラシアン演算の結果の和が計算される範囲は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
別の例として、ブロック分類単位の形状は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
別の例として、前記1Dラプラシアン演算の和が計算される範囲は、S×Tのサイズを持つことができる。このとき、SとTは、0を含む正の整数であり得る。
一方、前記第1対角を示すD1と前記第2対角を示すD2は、前記第1対角を示すD0と前記第2対角を示すD1を意味することもある。
本発明の一実施形態によれば、4×4ブロック分類の場合、1Dラプラシアン演算を用いて縦方向、横方向、第1対角方向、第2対角方向による各勾配値の和gv、gh、gd1、gd2は、数式6乃至数式9で表すことができる。前記勾配値の和を用いて前記D値とA値を導出することができる。前記勾配値の和は一実施形態である。勾配値の統計値が勾配値の和を代替して使用できる。
[数式6]
[数式7]
[数式8]
[数式9]
数式6乃至数式9中、iとjそれぞれは、4×4ブロック内の左上側の横位置と縦位置を意味し、R(i,j)は、(i,j)位置における復元サンプル値を意味することができる。
また、数式6乃至数式9中、kとlそれぞれは、方向によるサンプル単位1Dラプラシアン演算の結果Vk、l、Hk、l、D1k、l、D2k、lの和が計算される横範囲と縦範囲を意味することができる。前記それぞれの方向によるサンプル単位1Dラプラシアン演算の結果は、それぞれの方向によるサンプル単位の勾配(gradient)値を意味することができる。すなわち、1Dラプラシアン演算の結果は勾配値を意味することができる。前記1Dラプラシアン演算は、縦方向、横方向、第1対角方向、第2対角方向それぞれに対して行われ、該当方向に対する勾配値を示すことができる。また、前記1Dラプラシアン演算は、縦方向、横方向、第1対角方向、第2対角方向それぞれに対して行われた結果がそれぞれVk、l、Hk、l、D1k、l、D2k、lを意味することができる。
一例として、kとlは、互いに同じ範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さが同一であってもよい。
他の例として、kとlは、互いに異なる範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが異なってもよい。
別の例として、kはi-2乃至i+5の範囲、lはj-2乃至j+5の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が8×8サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。
別の例として、kはi乃至i+3の範囲、lはj乃至j+3の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が4×4サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさと同一であってもよい。
別の例として、1Dラプラシアン演算の結果の和が計算される範囲は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
別の例として、前記1Dラプラシアン演算の和が計算される範囲は、S×Tのサイズを持ってもよい。このとき、SとTは、0を含む正の整数であり得る。
別の例として、ブロック分類単位の形状は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
図9は横方向、縦方向、第1対角方向、第2対角方向による勾配値を決定する一例である。
図9の例のように、4×4ブロック分類の場合、縦方向、横方向、第1対角方向、第2対角方向による勾配値を決定する一例である。
角方向による各勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向による各1Dラプラシアン演算の結果を示す。すなわち、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。図9において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
本発明の一実施形態によれば、4×4ブロック分類の場合、1Dラプラシアン演算を用いて縦方向、横方向、第1対角方向、第2対角方向による各勾配値の和gv、gh、gd1、gd2を数式10乃至数式13で表すことができる。前記勾配値は、ブロック分類の計算複雑度を減少させるため、副標本(又は、サブサンプリング(subsampling))に基づいて表すことができる。前記勾配値の和を用いて前記D値とA値を導出することができる。前記勾配値の和は一実施形態である。勾配値の統計値が勾配値の和を代替して使用できる。
[数式10]
[数式11]
[数式12]
[数式13]
数式10乃至数式13中、iとjそれぞれは、4×4ブロック内の左上側の横位置と縦位置を意味し、R(i,j)は、(i,j)位置における復元サンプル値を意味することができる。
また、数式10乃至数式13中、kとlそれぞれは、方向によるサンプル単位1Dラプラシアン演算の結果Vk、l、Hk、l、D1k、l、D2k、lの和が計算される横範囲と縦範囲を意味することができる。前記それぞれの方向によるサンプル単位1Dラプラシアン演算の結果は、それぞれの方向によるサンプル単位勾配(gradient)値を意味することができる。つまり、1Dラプラシアン演算の結果は勾配値を意味することができる。前記1Dラプラシアン演算は、縦方向、横方向、第1対角方向、第2対角方向それぞれに対して行われ、当該方向に対する勾配値を示すことができる。また、前記1Dラプラシアン演算は、縦方向、横方向、第1対角方向、第2対角方向それぞれに対して行われた結果がそれぞれVk、l、Hk、l、D1k、l、D2k、lを意味することができる。
一例として、kとlは、互いに同じ範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが同一であってもよい。
他の例として、kとlは、互いに異なる範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが異なってもよい。
別の例として、kはi-2乃至i+5の範囲、lはj-2乃至j+5の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が8×8サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。
別の例として、kはi乃至i+3の範囲、lはj乃至j+3の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が4×4サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさと同一であってもよい。
別の例として、1Dラプラシアン演算の結果の和が計算される範囲は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
別の例として、前記1Dラプラシアン演算の和が計算される範囲は、S×Tのサイズを持ってもよい。このとき、SとTは、0を含む正の整数であり得る。
別の例として、ブロック分類単位の形状は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
本発明の一実施形態によれば、前記副標本に基づいて勾配値を計算する方法は、計算しようとする勾配値の方向によって、1Dラプラシアン演算の和が計算される範囲内で当該方向に位置したサンプルに1Dラプラシアン演算を行って勾配値を計算することができる。ここで、1Dラプラシアン演算の和が計算される範囲内のサンプルのうちの少なくとも一つで行われた1Dラプラシアン演算の結果に対して統計値を計算して勾配値の統計値を算出することができる。このとき、統計値は、和(sum)、重み付け和或いは平均値のいずれかであり得る。
一例として、横方向の勾配値の計算の際に、1Dラプラシアン演算の和が計算される範囲内で行内の全てのサンプルの位置では1Dラプラシアン演算を行うが、1Dラプラシアン演算の和が計算される範囲内の各行をP行ずつスキップして横方向の勾配値を計算することができる。ここで、Pは正の整数である。
他の例として、縦方向の勾配値の計算の際に、1Dラプラシアン演算の和が計算される範囲内で列内の全てのサンプルの位置では1Dラプラシアン演算を行うが、1Dラプラシアン演算の和が計算される範囲内の各列をP列ずつスキップして縦方向の勾配値を計算することができる。ここで、Pは正の整数である。
別の例として、第1対角方向の勾配値の計算の際に、1Dラプラシアン演算の和が計算される範囲内で横方向及び縦方向のうちの少なくとも一つの方向に対して、P列及びQ行のうちの少なくとも一つに対してスキップして存在するサンプルの位置で1Dラプラシアン演算を行うことにより、第1対角方向の勾配値を計算することができる。ここで、PとQは、0を含む正の整数である。
別の例として、第2対角方向の勾配値を計算する際に、1Dラプラシアン演算の和が計算される範囲内で横方向及び縦方向のうちの少なくとも一つの方向に対して、P列及びQ行のうちの少なくとも一つに対してスキップして存在するサンプルの位置で1Dラプラシアン演算を行うことにより、第2対角方向の勾配値を計算することができる。ここで、PとQは、0を含む正の整数である。
本発明の一実施形態によれば、前記副標本に基づいて勾配値を計算する方法は、1Dラプラシアン演算の和が計算される範囲内に位置した少なくとも一つのサンプルに1Dラプラシアン演算を行うことにより、勾配値を計算することができる。ここで、1Dラプラシアン演算の和が計算される範囲内のサンプルのうちの少なくとも一つで行われた1Dラプラシアン演算の結果に対して統計値を計算して勾配値の統計値を算出することができる。このとき、統計値は、和(sum)、重み付け和或いは平均値のいずれかであり得る。
一例として、勾配値の計算の際に、1Dラプラシアン演算の和が計算される範囲内で行内の全てのサンプルの位置では1Dラプラシアン演算を行うが、1Dラプラシアン演算の和が計算される範囲内の各行をP行ずつスキップしながら勾配値を計算することができる。ここで、Pは正の整数である。
他の例として、勾配値の計算の際に、1Dラプラシアン演算の和が計算される範囲内で、列内の全てのサンプルの位置では1Dラプラシアン演算を行うが、1Dラプラシアン演算の和が計算される範囲内の各列をP列ずつスキップしながら勾配値を計算することができる。ここで、Pは正の整数である。
別の例として、勾配値の計算の際に、1Dラプラシアン演算の和が計算される範囲内で、横方向及び縦方向のうちの少なくとも一つの方向に対して、P列及びQ行のうちの少なくとも一つに対してスキップして存在するサンプルの位置で1Dラプラシアン演算を行うことにより、勾配値を計算することができる。ここで、PとQは、0を含む正の整数である。
別の例として、勾配値の計算の際に、1Dラプラシアン演算の和が計算される範囲内で、横方向及び縦方向に対して、P列及びQ行に対してスキップして存在するサンプルの位置で1Dラプラシアン演算を行うことにより、勾配値を計算することができる。ここで、PとQは、0を含む正の整数である。
一方、前記勾配は、横方向の勾配、縦方向の勾配、第1対角方向の勾配及び第2対角方向の勾配のうちの少なくとも一つを含むことができる。
図10乃至図12は副標本に基づいて横方向、縦方向、第1対角方向、第2対角方向による勾配値を決定する一例である。
図10の例のように、2×2ブロック分類の場合、副標本に基づいて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。すなわち、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図10において、ブロック分類インデックスCは、陰影が表示された2×2ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
本発明の図面においてV、H、D1、D2が表示されていないサンプルの位置では、各方向による1Dラプラシアン演算が行われないことを意味することができる。つまり、V、H、D1、D2が表示されているサンプルの位置でのみ各方向による1Dラプラシアン演算が行われることを意味することができる。もし、1Dラプラシアン演算が行われない場合は、該当サンプルに対する1Dラプラシアン演算の結果は、特定の値Hに決定することができる。ここで、Hは、負の整数、0及び正の整数のうちの少なくとも一つであり得る。
図11の例のように、4×4ブロック分類の場合、副標本に基づいて縦方向、横方向、第1対角方向、第2対角方向による各勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図11において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図12の例のように、4×4ブロック分類の場合、副標本に基づいて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図12において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲とブロック分類単位の大きさが同一であってもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
本発明の一実施形態によれば、副標本に基づいてN×Mブロック単位内の特定の位置に存在するサンプルに対して1Dラプラシアン演算を行って勾配値を計算することができる。このとき、特定の位置は、ブロック内での絶対的な位置、相対的な位置のうちの少なくとも一つであり得る。ここで、1Dラプラシアン演算の和が計算される範囲内のサンプルのうちの少なくとも一つで行われた1Dラプラシアン演算の結果に対して統計値を計算して勾配値の統計値を算出することができる。このとき、統計値は、和(sum)、重み付け和或いは平均値のいずれかであり得る。
一例として、絶対的な位置である場合には、N×Mブロック内の左上側位置を意味してもよい。
他の例として、絶対的な位置である場合には、N×Mブロック内の右下側位置を意味してもよい。
別の例として、相対的な位置である場合には、N×Mブロック内の中央位置を意味してもよい。
本発明の一実施形態によれば、副標本に基づいてN×Mブロック単位内のR個のサンプルに対して1Dラプラシアン演算を行うことにより、勾配値を計算することができる。このとき、Rは、0を含む正の整数である。また、前記Rは、NとMの積と同じかそれより小さくてもよい。ここで、1Dラプラシアン演算の和が計算される範囲内のサンプルのうちの少なくとも一つで行われた1Dラプラシアン演算の結果に対して統計値を計算して勾配値の統計値を算出することができる。このとき、統計値は、和(sum)、重み付け和或いは平均値のいずれかであり得る。
一例として、Rが1である場合には、N×Mブロック内で1つのサンプルに対してのみ1Dラプラシアン演算を行ってもよい。
他の例として、Rが2である場合には、N×Mブロック内で2つのサンプルに対してのみ1Dラプラシアン演算を行ってもよい。
別の例として、Rが4である場合には、N×Mブロック内で4つのサンプルに対してのみ1Dラプラシアン演算を行ってもよい。
本発明の一実施形態によれば、副標本に基づいて1Dラプラシアン演算の和が計算される範囲であるN×M内のR個のサンプルに対して1Dラプラシアン演算を行って勾配値を計算することができる。このとき、Rは、0を含む正の整数である。また、前記Rは、NとMの積と同じかそれより小さくてもよい。ここで、1Dラプラシアン演算の和が計算される範囲内のサンプルのうちの少なくとも一つで行われた1Dラプラシアン演算の結果に対して統計値を計算して勾配値の統計値を算出することができる。このとき、統計値は、和(sum)、重み付け和或いは平均値のいずれかであり得る。
一例として、Rが1である場合には、1Dラプラシアン演算の和が計算される範囲であるN×M内で1つのサンプルに対してのみ1Dラプラシアン演算を行ってもよい。
他の例として、Rが2である場合には、1Dラプラシアン演算の和が計算される範囲であるN×M内で2つのサンプルに対してのみ1Dラプラシアン演算を行ってもよい。
別の例として、Rが4である場合には、1Dラプラシアン演算の和が計算される範囲であるN×M内で4つのサンプルに対してのみ1Dラプラシアン演算を行ってもよい。
図13乃至図18は、副標本に基づいて横方向、縦方向、第1対角方向、第2対角方向による勾配値を決定する他の例である。
図13の例のように、4×4ブロック分類の場合には、副標本に基づいてN×Mブロック単位内の特定の位置に存在するサンプルを用いて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図13において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲とブロック分類単位の大きさが同一であってもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図14の例のように、4×4ブロック分類の場合には、副標本に基づいてN×Mブロック単位内の特定の位置に存在するサンプルを用いて縦方向、横方向、第1対角方向、第2対角方向による各勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図14において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより小さくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図15の例のように、4×4ブロック分類の場合には、副標本に基づいてN×Mブロック単位内の特定の位置に存在するサンプルを用いて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。すなわち、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図15において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより小さくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図16の例のように、4×4ブロック分類の場合には、副標本に基づいてN×Mブロック単位内の特定の位置に存在するサンプルを用いて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図16において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより小さくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図17の例のように、4×4ブロック分類の場合には、副標本に基づいてN×Mブロック単位内の特定の位置に存在するサンプルを用いて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図17において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより小さくてもよい。ここで、1Dラプラシアン演算の和が計算される範囲が1×1であるので、1Dラプラシアン演算の和を行うことなく勾配値が計算できる。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図18の例のように、2×2ブロック分類の場合には、副標本に基づいてN×Mブロック単位内の特定の位置に存在するサンプルを用いて縦方向、横方向、第1対角方向、第2対角方向による各勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図18において、ブロック分類インデックスCは、陰影が表示された2×2ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより小さくてもよい。ここで、1Dラプラシアン演算の和が計算される範囲が1×1であるので、1Dラプラシアン演算の和を行うことなく勾配値が計算できる。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図19乃至図30は特定のサンプル位置で横方向、縦方向、第1対角方向、第2対角方向による勾配値を決定する一例である。前記特定のサンプル位置は、ブロック分類単位内でサブサンプリングされたサンプル位置であり、1Dラプラシアン演算の和が計算される範囲内でサブサンプリングされたサンプル位置であり得る。また、前記特定のサンプル位置は、ブロックごとに同一であってもよい。逆に、前記特定のサンプル位置は、ブロックごとに異なってもよい。また、前記特定のサンプル位置は、計算しようとする1Dラプラシアン演算の方向に関係なく同一であってもよい。逆に、前記特定のサンプル位置は、計算しようとする1Dラプラシアン演算の方向によって異なってもよい。
図19の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図19において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図19の例のように、1Dラプラシアン演算の方向に関係なく、1Dラプラシアン演算が行われる特定のサンプル位置が同一であってもよい。また、図19の例のように1Dラプラシアン演算が行われるサンプル位置のパターンは、チェッカー盤(checkboard)パターン或いはquincunxパターンとすることができる。また、1Dラプラシアン演算が行われるサンプル位置は、1Dラプラシアン演算の和が計算される範囲又はブロック分類単位又はブロック単位内で横方向(x軸方向)及び縦方向(y軸方向)に全て偶数値を持つか、或いは全て奇数値を持つ位置を意味することができる。
図20の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図20において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図20の例のように、1Dラプラシアン演算の方向に関係なく、1Dラプラシアン演算が行われる特定のサンプル位置が同一であり得る。また、図20の例のように1Dラプラシアン演算が行われるサンプル位置のパターンは、チェッカー盤(checkboard)パターン或いはquincunxパターンとすることができる。また、1Dラプラシアン演算が行われるサンプル位置は、1Dラプラシアン演算の和が計算される範囲又はブロック分類単位又はブロック単位で横方向(x軸方向)及び縦方向(y軸方向)にそれぞれ偶数値及び奇数値を持つか、或いはそれぞれ奇数値及び偶数値を持つ位置を意味することができる。
図21の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図21において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細く実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図22の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図22において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図23の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図23において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲とブロック分類単位の大きさが同一であってもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図23の例のように、1Dラプラシアン演算の方向に関係なく、1Dラプラシアン演算が行われる特定のサンプル位置が同一であり得る。また、図23の例のように1Dラプラシアン演算が行われるサンプル位置のパターンは、チェッカー盤(checkboard)パターン或いはquincunxパターンとすることができる。また、1Dラプラシアン演算が行われるサンプル位置は、1Dラプラシアン演算の和が計算される範囲又はブロック分類単位又はブロック単位内で横方向(x軸方向)及び縦方向(y軸方向)に全て偶数値を持つか、或いは全て奇数値を持つ位置を意味することができる。
図24の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちのなくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図24において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲とブロック分類単位の大きさが同一であってもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図24の例のように、1Dラプラシアン演算の方向に関係なく、1Dラプラシアン演算が行われる特定のサンプル位置が同一であり得る。また、図24の例のように1Dラプラシアン演算が行われるサンプル位置のパターンは、チェッカー盤(checkboard)パターン或いはquincunxパターンとすることができる。また、1Dラプラシアン演算が行われるサンプル位置は、1Dラプラシアン演算の和が計算される範囲又はブロック分類単位又はブロック単位で横方向(x軸方向)及び縦方向(y軸方向)にそれぞれ偶数値及び奇数値を持つか、或いはそれぞれ奇数値及び偶数値を持つ位置を意味することができる。
図25の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図25において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲とブロック分類単位の大きさが同一であってもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図26の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。図26において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲とブロック分類単位の大きさが同一であってもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。前記特定のサンプル位置は、ブロック分類単位内の全てのサンプル位置を意味することができる。
図27の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図27において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲とブロック分類単位の大きさが同一であってもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
図28の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向による各1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。図28において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。前記特定のサンプル位置は、1Dラプラシアン演算の和が計算される範囲内の全てのサンプル位置を意味することができる。
図29の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。図29において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。前記特定のサンプル位置は、1Dラプラシアン演算の和が計算される範囲内の全てのサンプル位置を意味することができる。
図30の例のように、4×4ブロック分類の場合には、特定のサンプル位置で勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図30において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示す。
一方、本発明の一実施形態によれば、前記勾配値の計算方法のうちの少なくとも一つは、時間的階層識別子(temporal layer identifier)に応じて行われるか否かが決定できる。
例えば、2×2ブロック分類の場合、数式2乃至5は、数式14のように一つの式で表すことができる。
[数式14]
数式14中、dirは横方向、縦方向、第1対角方向、第2対角方向を含み、よって、gdirは縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2を意味することができる。また、iとjそれぞれは、2×2ブロック内の横位置と縦位置を意味し、Gdirは縦方向、横方向、第1対角方向、第2対角方向による1Dラプラシアン演算の結果Vk、l、Hk、l、D1k、l、D2k、lを意味することができる。
このとき、現在画像(又は復元画像)の時間的階層識別子が最上位階層であれば、現在画像(又は復元画像)で2×2ブロック分類の場合、数式14は数式15で表すことができる。
[数式15]
数式15中、Gdir(i0,j0)は縦方向、横方向、第1対角方向、第2対角方向による2×2ブロック内の左上側位置における勾配値を意味する。
図31は時間的階層識別子が最上位階層である場合の横方向、縦方向、第1対角方向、第2対角方向による勾配値を決定する一例である。
図31を参照すると、縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2の計算は、各2×2ブロックで左上側のサンプル位置(すなわち、陰影が表示されたサンプル位置)でのみ勾配を計算することにより、単純化させることができる。
本発明の一実施形態によれば、1Dラプラシアン演算の和が計算される範囲内のサンプルのうちの少なくとも一つで行われた1Dラプラシアン演算の結果に対して重み(重み付け係数(weighting factor))を適用し、重み付け和(weighted sum)を計算して勾配値の統計値を算出することができる。この時、前記重み付け和の代わりに重み付け平均値、中央値、最小値、最大値、最頻値などの統計値のうちの少なくとも一つが使用できる。
重みを適用することや重み付け和を計算することは、現在ブロック、周辺ブロックに関連する様々な条件或いは符号化パラメータに基づいて決定できる。
一例として、重み付け和は、サンプル単位、サンプルグループ単位、ライン単位及びブロック単位のうちの少なくとも一つの単位で計算できる。このとき、サンプル単位、サンプルグループ単位、ライン単位及びブロック単位のうちの少なくとも一つの単位で重みを異にして重み付け和を計算することができる。
他の例として、重み値は、前記現在ブロックの大きさ、現在ブロックの形状、サンプル位置のうちの少なくとも一つに応じて異ならせて適用することができる。
別の例として、符号化器と復号化器で予め設定された基準に基づいて、前記重み付け和の実行を決定することができる。
別の例として、現在ブロック及び周辺ブロックのうちの少なくとも一つのブロックの大きさ、ブロックの形状、画面内予測モードなどの符号化パラメータのうちの少なくとも一つを用いて適応的に重みを決定することができる。
別の例として、現在ブロック及び周辺ブロックのうちの少なくとも一つのブロックの大きさ、ブロックの形状、画面内予測モードなどの符号化パラメータのうちの少なくとも一つを用いて、適応的に重み付け和の実行有無を決定することができる。
別の例として、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きい場合には、ブロック分類単位内のサンプルに適用される少なくとも一つの重み値は、ブロック分類単位以外のサンプルに適用される少なくとも一つの重み値より大きくてもよい。
別の例として、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさと同一である場合には、ブロック分類単位内のサンプルに適用される重み値は、全て同一であってもよい。
一方、前記重み及び/又は前記重み付け和の実行有無についての情報は、符号化器でエントロピー符号化されて復号化器へシグナリングできる。
本発明の一実施形態によれば、前記縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つの値を計算するとき、現在サンプルの周辺に利用可能(available)でないサンプルが存在する場合には、パディング(padding)を行った後、パディングされたサンプルを用いて勾配値を計算することができる。前記パディングは、前記利用可能でないサンプルに隣接し、利用可能なサンプル値を前記利用可能でないサンプル値にコピーする方式を意味することができる。又は、前記利用可能でないサンプルに隣接し、利用可能なサンプル値に基づいて取得されたサンプル値或いは統計値を用いることができる。前記パディングは、P列の個数及びR行の個数だけ繰り返し行うことができる。ここで、PとRは正の整数であり得る。
ここで、利用可能でないサンプルは、CTU、CTB、スライス、タイル、タイルグループ、ピクチャ境界外に存在するサンプルを意味することができる。また、利用可能でないサンプルは、現在サンプルの属するCTU、CTB、スライス、タイル、タイルグループ及びピクチャの少なくとも一つと互いに異なるCTU、CTB、スライス、タイル、タイルグループ及びピクチャのうちの少なくとも一つに属するサンプルを意味することができる。
本発明の一実施形態によれば、前記縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つの値を計算するとき、所定のサンプルを利用しなくてもよい。
一例として、前記縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つの値を計算するとき、パディングされたサンプルを利用しなくてもよい。
他の例として、前記縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算するとき、現在サンプルの周辺に利用可能でないサンプルが存在する場合には、前記利用可能でないサンプルを勾配値の和の計算に使用しなくてもよい。
別の例として、前記縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つの値を計算するとき、現在サンプルの周辺に存在するサンプルがCTU或いはCTB境界外に位置する場合には、前記周辺に存在するサンプルを勾配値の和の計算に使用しなくてもよい。
本発明の一実施形態によれば、前記1Dラプラシアン演算値のうちの少なくとも一つの値を計算するとき、現在サンプルの周辺に利用可能でないサンプルが存在する場合には、前記利用可能でないサンプルに隣接し、利用可能なサンプル値を前記利用可能でないサンプル値にコピーする方式であるパディングを行った後、パディングされたサンプルを用いて1Dラプラシアン演算を行うことができる。
本発明の一実施形態によれば、前記1Dラプラシアン演算の際に、所定のサンプルを利用しなくてもよい。
一例として、前記1Dラプラシアン演算の際に、パディングされたサンプルを利用しなくてもよい。
他の例として、前記1Dラプラシアン演算値のうちの少なくとも一つの値を計算するとき、現在サンプルの周辺に利用可能でないサンプルが存在する場合には、前記利用可能でないサンプルを1Dラプラシアン演算に使用しなくてもよい。
別の例として、前記1Dラプラシアン演算値のうちの少なくとも一つの値を計算するとき、現在サンプルの周辺に存在するサンプルがCTU或いはCTB境界外に位置する場合には、前記周辺に存在するサンプルを1Dラプラシアン演算には使用しなくてもよい。
本発明の一実施形態によれば、前記縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つの値を計算するとき、或いは前記1Dラプラシアン演算値のうちの少なくとも一つの値を計算するとき、デブロッキングフィルタリング、適応的サンプルオフセット及び適応的ループ内フィルタリングのうちの少なくとも一つが適用されたサンプルを使用することができる。
本発明の一実施形態によれば、前記縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つの値を計算するとき、或いは前記1Dラプラシアン演算値のうちの少なくとも一つの値を計算するとき、現在サンプルの周辺に存在するサンプルがCTU或いはCTB境界外に位置する場合には、当該サンプルにデブロッキングフィルタリング、適応的サンプルオフセット、及び適応的ループ内フィルタリングのうちの少なくとも一つを適用することができる。
又は、前記縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つの値を計算するとき、或いは前記1Dラプラシアン演算値のうちの少なくとも一つの値を計算するとき、現在サンプルの周辺に存在するサンプルがCTU或いはCTB境界外に位置する場合には、当該サンプルにデブロッキングフィルタリング、適応的サンプルオフセット及び適応的ループ内フィルタリングのうちの少なくとも一つを適用しなくてもよい。
本発明の一実施形態によれば、1Dラプラシアン演算の和が計算される範囲内にCTU或いはCTB境界外などに位置して利用可能でないサンプルが含まれる場合、当該利用可能でないサンプルにデブロッキングフィルタリング、適応的サンプルオフセット及び適応的ループ内フィルタリングのうちの少なくとも一つを適用せずに、1Dラプラシアン演算の和を計算するときに使用することができる。
本発明の一実施形態によれば、ブロック分類単位内にCTU或いはCTB境界外などに位置して利用可能でないサンプルが含まれる場合、当該利用可能でないサンプルにデブロッキングフィルタリング、適応的サンプルオフセット及び適応的ループ内フィルタリングのうちの少なくとも一つを適用せずに、1Dラプラシアン演算を計算するときに使用することができる。
一方、前記副標本に基づいて勾配値を計算する方法は、1Dラプラシアン演算の和が計算される範囲内の全体サンプルではなく、1Dラプラシアン演算の和が計算される範囲内の副標本サンプルに対して1Dラプラシアン演算が行われるので、ブロック分類ステップに必要な乗算演算、シフト(shift)演算、加算演算、絶対値演算などの演算数が減少することができる。また、復元サンプルを使用するときに必要なメモリアクセス帯域幅(memory access bandwidth)も減少させることができ、これにより符号化器及び復号化器の複雑度を減少させることができる。特に、前記副標本サンプルに対して1Dラプラシアン演算を行うことは、符号化器及び復号化器のハードウェア実現時にブロック分類ステップにかかる時間(timing)を減らすことができるので、ハードウェア実現複雑度の観点からも利点がある。
また、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさと同じかそれより小さい場合には、ブロック分類ステップに必要な加算演算の数が減少することができる。また、復元サンプルを使用するときに必要なメモリアクセス帯域幅も減少させることができ、これにより符号化器及び復号化器の複雑度を減少させることができる。
一方、前記副標本に基づいて勾配値を計算する方法は、計算しようとする縦方向、横方向、第1対角方向、第2対角方向の勾配値に応じて1Dラプラシアン演算の対象となるサンプルの位置、サンプルの個数、及びサンプル位置の方向のうちの少なくとも一つを異ならせて縦方向、横方向、第1対角方向、第2対角方向の勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。
また、前記副標本に基づいて勾配値を計算する方法は、計算しようとする縦方向、横方向、第1対角方向、第2対角方向の勾配値に関係なく、1Dラプラシアン演算の対象となるサンプルの位置、サンプルの個数、及びサンプル位置の方向のうちの少なくとも一つを同一にして縦方向、横方向、第1対角方向、第2対角方向の勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。
また、前記勾配値を計算する方法のうちの少なくとも一つの組み合わせを用いて、縦方向、横方向、第1対角方向、第2対角方向の勾配値による1Dラプラシアン演算及び縦方向、横方向、第1対角方向、第2対角方向に対するそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる。
本発明の一実施形態によれば、縦方向、横方向、第1対角方向、第2対角方向に対するそれぞれの勾配値の合計gv、gh、gd1、gd2のうちの少なくとも二つの値を互いに比較することができる。
一例として、前記勾配値の和を計算した後、縦方向の勾配値の和gvと横方向の勾配値の和ghとを比較して、横方向及び縦方向に対する勾配値の和の最大値
と最小値
を数式16の例のように誘導することができる。
[数式16]
このとき、縦方向の勾配値の和gvと横方向の勾配値の和ghとを比較するために、数式17の例のように前記勾配値の和同士の大きさを互いに比較することができる。
[数式17]
他の例として、第1対角方向の勾配値の和gd1と第2対角方向の勾配値の和gd2とを比較して、第1対角方向及び第2対角方向に対する勾配値の和の最大値
と最小値
を数式18の例のように誘導することができる。
[数式18]
このとき、第1対角方向の勾配値の和gd1と第2対角方向の勾配値の和gd2とを比較するために、数式19の例のように前記勾配値の和同士の大きさを互いに比較することができる。
[数式19]
本発明の一実施形態によれば、方向性D値を算出するために、前記最大値及び前記最小値を次のとおり2つのしきい値t1及びt2と比較することができる。
方向性D値は、0を含む正の整数であり得る。一例として、方向性D値は、0乃至4の間の値を持つことができる。他の例として、方向性D値は、0乃至2の間の値を持つことができる。
また、方向性D値は、当該領域の特徴に応じて決定できる。例えば、方向性D値が0である場合にはテクスチャ(texture)領域、方向性D値が1である場合には強い水平/垂直方向性、方向性D値が2である場合には弱い水平/垂直方向性、方向性D値が3である場合には強い第1/第2対角方向性、方向性D値が4である場合には弱い第1/第2対角方向性をそれぞれ意味することができる。前記方向性D値の決定は、下記ステップ1乃至ステップ4によって行われ得る。
ステップ1:
と
が満足すれば、D値を0に設定
ステップ2:
が満足すれば、ステップ3に移行し、そうでなければ、ステップ4に移行
ステップ3:
が満足すれば、D値を2に設定し、そうでなければ、D値を1に設定
ステップ4:
が満足すれば、D値を4に設定し、そうでなければ、D値を3に設定
ここで、しきい値t1及びt2は正の整数である。t1及びt2は、同じ値を持ってもよく、異なる値を持ってもよい。一例として、t1及びt2はそれぞれ2、9であってもよい。他の例として、t1及びt2はそれぞれ1であってもよい。別の例として、t1及びt2はそれぞれ1、9であってもよい。
活動性A値は、2×2ブロック分類の場合、数式20の例のように表すことができる。
[数式20]
一例として、kとlは、互いに同じ範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが同一であってもよい。
他の例として、kとlは、互いに異なる範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが異なってもよい。
別の例として、kはi-2乃至i+3の範囲、lはj-2乃至j+3の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が6×6サイズであってもよい。
別の例として、kはi-1乃至i+2の範囲、lはj-1乃至j+2の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が4×4サイズであってもよい。
別の例として、kはi乃至i+1の範囲、lはj乃至j+1の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が2×2サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさと同一であってもよい。
別の例として、1Dラプラシアン演算の結果の和が計算される範囲は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
また、活動性A値は、4×4ブロック分類の場合、数式21の例のように表すことができる。
[数式21]
一例として、kとlは、互いに同じ範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが同一であってもよい。
他の例として、kとlは、互いに異なる範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが異なってもよい。
別の例として、kはi-2乃至i+5の範囲、lはj-2乃至j+5の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が8×8サイズであってもよい。
別の例として、kはi乃至i+3の範囲、lはj乃至j+3の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が4×4サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさと同一であってもよい。
別の例として、1Dラプラシアン演算の結果の和が計算される範囲は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
また、活動性A値は、2×2ブロック分類の場合、数式22の例のように表すことができる。ここで、第1対角方向及び第2対角方向に対する1Dラプラシアン演算値のうちの少なくとも一つを、活動性A値を算出するときにさらに使用することができる。
[数式22]
一例として、kとlは、互いに同じ範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが同一であってもよい。
他の例として、kとlは、互いに異なる範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが異なってもよい。
別の例として、kはi-2乃至i+3の範囲、lはj-2乃至j+3の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が6×6サイズであってもよい。
別の例として、kはi-1乃至i+2の範囲、lはj-1乃至j+2の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が4×4サイズであってもよい。
別の例として、kはi乃至i+1の範囲、lはj乃至j+1の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が2×2サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさと同一であってもよい。
別の例として、1Dラプラシアン演算の結果の和が計算される範囲は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
また、活動性A値は、4×4ブロック分類の場合、数式23の例のように表すことができる。ここで、第1対角方向及び第2対角方向に対する1Dラプラシアン演算値のうちの少なくとも一つを、活動性A値を算出するときにさらに使用することができる。
[数式23]
一例として、kとlは、互いに同じ範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さとが同一であってもよい。
他の例として、kとlは、互いに異なる範囲を持ってもよい。すなわち、1Dラプラシアン演算の和が計算される範囲の横長さと縦長さが異なってもよい。
別の例として、kはi-2乃至i+5の範囲、lはj-2乃至j+5の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が8×8サイズであってもよい。
別の例として、kはi乃至i+3の範囲、lはj乃至j+3の範囲を持つため、1Dラプラシアン演算の和が計算される範囲が4×4サイズであってもよい。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさと同一であってもよい。
別の例として、1Dラプラシアン演算の結果の和が計算される範囲は、菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つの2次元幾何学的形状であってもよい。
一方、前記活動性A値は、量子化されてIとJの間の範囲の量子化した活動性Aq値を持つことができる。ここで、IとJは、それぞれ0を含む正の整数であり、それぞれ0と4であってもよい。
量子化した活動性Aq値は、所定の方式を用いて決定することができる。
一例として、量子化した活動性Aq値は、数式24の例のように表すことができる。この場合、量子化した活動性Aq値は、特定の最小値X及び特定の最大値Yの範囲内に含まれ得る。
[数式24]
数式24で量子化した活動性Aq値は、前記活動性A値に特定の定数W値を掛け、Rだけ右シフト演算を行うことにより算出できる。このとき、X、Y、W、Rは、0を含む正の整数である。一例として、Wは24であってもよく、Rは13であってもよい。他の例として、Wは64であってもよく、Rは(3+Nビット)であってもよい。例えば、Nは正の整数であり、8又は10であってもよい。別の例として、Wは32であり、Rは(3+Nビット)であってもよい。例えば、Nは正の整数であり、8又は10であってもよい。
他の例として、前記量子化した活動性Aq値は、ルックアップテーブル(LUT、Look Up Table)方式を用いて、活動性A値と量子化した活動性Aq値とのマッピング関係を設定することができる。すなわち、活動性A値に演算を行い、前記ルックアップテーブルを用いて、量子化した活動性Aq値を算出することができる。このとき、前記演算は乗算、除算演算、右シフト演算、左シフト演算、加算及び減算のうちの少なくとも一つを含むことができる。
一方、色差成分の場合、前記ブロック分類過程を行わず、K個のフィルタでそれぞれの色差成分に対してフィルタリングを行うことができる。ここで、Kは、0を含む正の整数であり、1であってもよい。また、色差成分の場合、前記ブロック分類過程を行わず、対応する位置の輝度成分で決定したブロック分類インデックスを用いてフィルタリングを行うことができる。また、色差成分の場合、色差成分に対するフィルタ情報がシグナリングされず、固定された形態のフィルタが用いられ得る。
図32は本発明の一実施形態に係る1Dラプラシアン演算を代えるさまざまな演算技法を示す図である。
本発明の一実施形態によれば、前記1Dラプラシアン演算の代わりに、図32に記載された演算のうちの少なくとも一つを使用することができる。図32を参照すると、前記演算は、2Dラプラシアン、2Dソーベル(Sobel)、2Dエッジ抽出及び2D LoG(Laplacian of Gaussian)演算のうちの少なくとも一つを含むことができる。ここで、LoG演算は、ガウシアン(Gaussian)フィルタとラプラシアンフィルタとが組み合わせられた形態で復元サンプルに対して適用されることを意味することができる。この他に、1D/2Dエッジ抽出フィルタのうちの少なくとも一つが1Dラプラシアン演算の代わりに使用できる。また、DoG(Difference of Gaussian)演算が使用できる。ここで、DoG演算は、内部パラメータが異なるガウシアンフィルタ同士が結合された形で復元サンプルに対して適用されることを意味することができる。
また、前記方向性D値或いは前記活動性A値を算出するために、N×MサイズのLoG演算が使用できる。ここで、NとMは正の整数であってもよい。一例として、図32(i)の5×5 2D LoG、図32(j)の9×9 2D LoG演算のうちの少なくとも一つが使用されてもよい。他の例として、2D LoG演算の代わりに1D LoG演算が使用されてもよい。
本発明の一実施形態によれば、輝度ブロックの各2×2ブロックは、方向性と2Dラプラシアン活動性に基づいて分類できる。例えば、ソーベルフィルタを用いて横/縦勾配特性を得ることができる。方向性D値は、数式25乃至数式26を用いて取得できる。
代表ベクトルは、所定のウィンドウサイズ(例えば、6×6ブロック)内の勾配ベクトルに対して[数式25]の条件が満足するように計算できる。Θによって方向と変形が識別できる。
[数式25]
前記ウィンドウ内での代表ベクトルと各勾配ベクトルとの類似度は、数式26のように内積を用いて計算できる。
[数式26]
そして、方向性D値は、数式26で計算されたS値を用いて決定することができる。
ステップ1:
であれば、D値を0に設定
ステップ2:
及び
であれば、D値を2に設定し、そうでなければ、D値を1に設定
ステップ3:
及び
であれば、D値を4に設定し、そうでなければ、D値を3に設定
ここで、全体ブロック分類インデックスは、合計25個であり得る。
本発明の一実施形態によれば、復元サンプル
のブロック分類は、数式27で表すことができる。
[数式27]
数式27中、Iは、復元サンプル
の全てのサンプル位置の集合である。Dは、各サンプル位置(i,j)に対してクラスインデックス
を割り当てる分類子である。また、クラス
は、クラスインデックスkが分類子Dによって割り当てられた全てのサンプルの集まりである。前記クラスは4つの異なる分類子を支援し、それぞれの分類子はK=25又は27のクラスを提供することができる。復号化器で使用される分類子は、スライスレベルでシグナリングされる構文要素classification_idxによって指定できる。
であるクラス
が与えられると、次のステップのように進行する。
classification_idx=0であれば、前記方向性と活性性に基づいたブロック分類子
が利用できる。分類子は、K=25個のクラスを提供することができる。
classification_idx=1であれば、サンプルベースの特徴分類子
が分類子として利用できる。
は、数式28に基づいて各サンプル
の量子化サンプル値を用いることができる。
[数式28]
ここで、Bはサンプルのビット深度であり、クラスKの数はK=27に設定され、演算子
は大きくない一番大きい整数に四捨五入する演算を指定する。
classification_idx=2であれば、順位に基づいたサンプルベースの特徴分類子
が利用できる。
は、後述する数式30で表すことができる。
は、サンプル値
をその周辺の8つのサンプルと比較して大きさの順に羅列する分類子であり、数式29で表すことができる。
[数式29]
分類子
は、0乃至8の間の値を持つことができる。サンプル
が、(i,j)を中心とする3×3ブロック内で一番大きいサンプルであれば、
の値は0である。
が二番目に大きいサンプルであれば、
の値は1である。
[数式30]
数式30中、T1とT2は予め定義されたしきい値である。すなわち、サンプルの動的範囲が3つのバンドに分けられ、各バンドの内部で当該ローカル周辺内のサンプルのrankが追加基準として使用される。順位に基づいたサンプルベースの特徴分類子は、K=27個のクラスを提供することができる。
classification_idx=3であれば、順位と地域変化量ベースの特徴分類子
が利用できる。
は数式31で表すことができる。
[数式31]
数式31中、T3或いはT4は予め定義されたしきい値である。各サンプル位置(i,j)における地域変化量
は、数式32で表すことができる。
[数式32]
各サンプルがまずローカル変数
に基づいて3つのクラスのうちのいずれかの要素として分類されることを除いては、
と同様の分類子である。その後、各クラス内において、ローカルの周辺にあるサンプルの順位が27個のクラスを提供する追加基準として使用できる。
本発明の一実施形態によれば、スライスレベルにおいて、IntensityClassifier、HistogramClassifier、DirectionalActivityClassifierなどの3つのピクセル分類方法を使用する最大16個のフィルタセットが現在スライスに利用できる。CTUレベルにおいて、スライスヘッダーからシグナリングされる制御フラグに基づいて、NewFilterMode、SpatialFilterMode、SliceFilterModeの3つのモードがCTU単位で支援できる。
ここで、前記IntensityClassifierは、SAOのバンドオフセットと類似していてもよい。サンプル強度の範囲は32個のグループに分けられ、グループインデックスは処理されるサンプルの強度に基づいて決定できる。
また、SimilarityClassifierは、5×5菱形フィルタ形状において周辺サンプルをフィルタリング対象サンプルと比較するために使用できる。フィルタリング対象サンプルのグループインデックスは、まず0に初期化できる。周辺サンプルとフィルタリング対象サンプルとの差が所定の一つのしきい値よりも大きい場合には、グループインデックスは1だけ増加できる。また、周辺サンプルとフィルタリング対象サンプルとの差が、予め定義されたしきい値よりも2倍以上大きい場合、グループインデックスにさらに1を加えることができる。このとき、SimilarityClassifierには25個のグループがあり得る。
また、RotBAClassifierは、一つの2×2ブロックに対する1Dラプラシアン演算の和が計算される範囲が6×6から4×4に縮小できる。この分類には、最大25個のグループがあり得る。グループの数は、様々な分類子において最大25又は32であるが、スライスフィルタ集合のフィルタ数は、最大16個に制限できる。すなわち、符号化器は、連続するグループをマージし、マージされたグループの数を16と同じかそれより小さく維持することができる。
本発明の一実施形態によれば、前記ブロック分類インデックスを決定する際に、現在ブロックと周辺ブロックのうちの少なくとも一つの符号化パラメータに基づいてブロック分類インデックスが決定できる。前記符号化パラメータのうちの少なくとも一つによってブロック分類インデックスが互いに異なり得る。この時、前記符号化パラメータは、予測モード(画面間予測であるか画面内予測であるか)、画面内予測モード、画面間予測モード、画面間予測インジケータ、動きベクトル、参照画像インデックス、量子化パラメータ、現在ブロックの大きさ、現在ブロックの形状、ブロック分類単位の大きさ、符号化ブロックフラグ/パターンのうちの少なくとも一つを含むことができる。
一例として、前記ブロック分類は、量子化パラメータに基づいて決定できる。例えば、量子化パラメータがしきい値Tよりも小さい場合には、J個のブロック分類インデックスを使用することができ、量子化パラメータがしきい値Rよりも大きい場合には、H個のブロック分類インデックスを使用することができ、そうでない場合には、G個のブロック分類インデックスを使用することができる。ここで、T、R、J、H、Gは、0を含む正の整数である。また、JはHと同じかそれより大きくてもよい。ここで、量子化パラメータの値が相対的に大きいほど少ない個数のブロック分類インデックスを使用することができる。
他の例として、前記ブロック分類は、現在ブロックの大きさに応じて決定できる。例えば、現在ブロックの大きさがしきい値Tよりも小さい場合には、J個のブロック分類インデックスを使用することができ、現在ブロックの大きさがしきい値Rよりも大きい場合には、H個のブロック分類インデックスを使用することができ、そうでない場合には、G個のブロック分類インデックスを使用することができる。ここで、T、R、J、H、Gは、0を含む正の整数である。また、Jは、Hと同じかそれより大きくてもよい。ここで、ブロックの大きさが相対的に大きいほど少ない個数のブロック分類インデックスを使用することができる。
別の例として、前記ブロック分類は、ブロック分類単位の大きさに応じて決定できる。例えば、ブロック分類単位の大きさがしきい値Tよりも小さい場合には、J個のブロック分類インデックスを使用することができ、ブロック分類単位の大きさがしきい値Rよりも大きい場合には、H個のブロック分類インデックスを使用することができ、そうでない場合には、G個のブロック分類インデックスを使用することができる。ここで、T、R、J、H、Gは、0を含む正の整数である。また、Jは、Hと同じかそれより大きくてもよい。ここで、ブロック分類単位の大きさが相対的に大きいほど少ない個数のブロック分類インデックスを使用することができる。
本発明の一実施形態によれば、以前画像内の対応位置の勾配値の和、現在ブロックの周辺ブロックの勾配値の和、及び現在ブロック分類単位周辺のブロック分類単位の勾配値の和のうちの少なくとも一つの勾配値の和を、現在ブロックの勾配値の和及び現在ブロック分類単位の勾配値の和のうちの少なくとも一つとして決定することができる。ここで、以前画像内の対応位置は、現在画像内の対応復元サンプルと対応する空間的位置を持つ以前画像内の位置或いは周辺位置であり得る。
一例として、現在ブロック単位の縦方向、横方向の勾配値の和gv、ghのうちの少なくとも一つと、現在ブロック分類単位周辺のブロック分類単位の横方向、縦方向の勾配値の和のうちの少なくとも一つとの差がしきい値E以下である場合、現在ブロック分類単位周辺のブロック分類単位の第1対角方向、第2対角方向の勾配値の和gd1、gd2のうちの少なくとも一つを、現在ブロック単位の勾配値の和のうちの少なくとも一つとして決定することができる。ここで、しきい値Eは、0を含む正の整数である。
他の例として、現在ブロック単位の縦方向、横方向の勾配値の和gv、ghの和と現在ブロック分類単位周辺のブロック分類単位の横方向、縦方向の勾配値の和との差がしきい値E以下である場合、現在ブロック分類単位周辺のブロック分類単位の勾配値の和のうちの少なくとも一つを、現在ブロック単位の勾配値の和のうちの少なくとも一つとして決定することができる。ここで、しきい値Eは、0を含む正の整数である。
別の例として、現在ブロック単位内復元サンプルのうちの少なくとも一つの統計値と、現在ブロック分類単位周辺のブロック分類単位内復元サンプルのうちの少なくとも一つの統計値との差がしきい値E以下である場合、現在ブロック単位周辺のブロック分類単位の勾配値の和のうちの少なくとも一つを、現在ブロック単位の勾配値の和のうちの少なくとも一つとして決定することができる。ここで、しきい値Eは、0を含む正の整数である。そして、しきい値Eは、現在ブロックの空間的隣接ブロック及び/又は時間的隣接ブロックから誘導することができる。また、しきい値Eは、符号化器及び復号化器に予め定義された値であり得る。
本発明の一実施形態によれば、以前画像内対応位置のブロック分類インデックス、現在ブロックの周辺ブロックのブロック分類インデックス、及び現在ブロック分類単位周辺のブロック分類単位のブロック分類インデックスのうちの少なくとも一つのブロック分類インデックスを、現在ブロックのブロック分類インデックス、及び現在ブロック分類単位のブロック分類インデックスのうちの少なくとも一つとして決定することができる。
一例として、現在ブロック単位の縦方向、横方向の勾配値の和gv、ghのうちの少なくとも一つと、現在ブロック分類単位周辺のブロック分類単位の横方向、縦方向の勾配値の和のうちの少なくとも一つとの差がしきい値E以下である場合、現在ブロック分類単位周辺のブロック分類単位のブロック分類インデックスを、現在ブロック単位のブロック分類インデックスとして決定することができる。ここで、しきい値Eは、0を含む正の整数である。
他の例として、現在ブロック単位の縦方向、横方向の勾配値の和gv、ghの和と現在ブロック分類単位周辺のブロック分類単位の横方向、縦方向の勾配値の和との差がしきい値E以下である場合、現在ブロック分類単位周辺のブロック分類単位のブロック分類インデックスを、現在ブロック単位のブロック分類インデックスとして決定することができる。ここで、しきい値Eは、0を含む正の整数である。
別の例として、現在ブロック単位内復元サンプルのうちの少なくとも一つの統計値と、現在ブロック分類単位周辺のブロック分類単位内復元サンプルのうちの少なくとも一つの統計値との差がしきい値E以下である場合、現在ブロック単位周辺のブロック分類単位のブロック分類インデックスを、現在ブロック単位のブロック分類インデックスとして決定することができる。ここで、しきい値Eは、0を含む正の整数である。
別の例として、前記ブロック分類インデックスを決定する方法のうちの少なくとも一つの組み合わせを用いて、ブロック分類インデックスを決定することができる。
以下、フィルタリング実行ステップについて後述する。
本発明の一実施形態によれば、前記決定されたブロック分類インデックスに対応するフィルタを用いて復元/復号画像内のサンプル又はブロックに対してフィルタリングを行うことができる。前記フィルタリングの実行時に、L種類のフィルタの中からいずれかのフィルタが選択できる。前記Lは、0を含む正の整数であり得る。
一例として、前記ブロック分類単位でL種類のフィルタの中からいずれか一つのフィルタが選択され、復元/復号画像に対して復元/復号サンプル単位でフィルタリングを行うことができる。
他の例として、前記ブロック分類単位でL種類のフィルタの中からいずれか一つのフィルタが選択され、復元/復号画像に対してブロック分類単位でフィルタリングを行うことができる。
別の例として、前記ブロック分類単位でL種類のフィルタの中からいずれか一つのフィルタが選択され、復元/復号画像に対してCU単位でフィルタリングを行うことができる。
別の例として、前記ブロック分類単位でL種類のフィルタの中からいずれか一つのフィルタが選択され、復元/復号画像に対してブロック単位でフィルタリングを行うことができる。
別の例として、前記ブロック分類単位でL種類のフィルタの中からU個のフィルタが選択され、復元/復号画像に対して復元/復号サンプル単位でフィルタリングを行うことができる。このとき、Uは正の整数である。
別の例として、前記ブロック分類単位でL種類のフィルタの中からU個のフィルタが選択され、復元/復号画像に対してブロック分類単位でフィルタリングを行うことができる。このとき、Uは正の整数である。
別の例として、前記ブロック分類単位でL種類のフィルタの中からU個のフィルタが選択され、復元/復号画像に対してCU単位でフィルタリングを行うことができる。このとき、Uは正の整数である。
別の例として、前記ブロック分類単位でL種類のフィルタの中からU個のフィルタが選択され、復元/復号画像に対してブロック単位でフィルタリングを行うことができる。このとき、Uは正の整数である。
一方、前記L種類のフィルタをフィルタセット(filter set)と表現することができる。
本発明の一実施形態によれば、前記L種類のフィルタは、フィルタ係数、フィルタタップ数(フィルタ長)、フィルタ形状及びフィルタ種類のうちの少なくとも一つが互いに異なり得る。
一例として、前記L種類のフィルタは、ブロック、CU、PU、TU、CTU、スライス、タイル、タイルグループ、画像(ピクチャ)及びシーケンスのうちの少なくとも一つの単位でフィルタ係数、フィルタタップ数(フィルタ長)、フィルタ形状及びフィルタ種類のうちの少なくとも一つが互いに同一であってもよい。
他の例として、前記L種類のフィルタは、ブロック、CU、PU、TU、CTU、スライス、タイル、タイルグループ、画像(ピクチャ)及びシーケンスのうちの少なくとも一つの単位でフィルタ係数、フィルタタップ数(フィルタ長)、フィルタ形状及びフィルタ種類のうちの少なくとも一つが互いに異なってもよい。
また、前記フィルタリングは、サンプル、ブロック、CU、PU、TU、CTU、スライス、タイル、タイルグループ、画像(ピクチャ)及びシーケンスのうちの少なくとも一つの単位で同じフィルタ或いは互いに異なるフィルタを用いて行われ得る。
また、前記フィルタリングは、サンプル、ブロック、CU、PU、TU、CTU、スライス、タイル、タイルグループ、画像(ピクチャ)及びシーケンスのうちの少なくとも一つの単位でフィルタリングを行うかに対するフィルタリング実行有無情報に基づいて行われ得る。前記フィルタリング実行有無情報は、サンプル、ブロック、CU、PU、TU、CTU、スライス、タイル、タイルグループ、画像(ピクチャ)及びシーケンスのうちの少なくとも一つの単位で符号化器から復号化器へシグナリングされる情報であり得る。
本発明の一実施形態によれば、前記フィルタリングのためのフィルタとして、菱形(diamond、rhombus)のフィルタ形状を有し、フィルタタップ数が互いに異なるN種類のフィルタを使用することができる。ここで、Nは正の整数であり得る。例えば、フィルタタップ数が5×5、7×7、9×9である菱形は、図33のように表すことができる。
図33は本発明の一実施形態に係る菱形形状のフィルタを示す図である。
図33を参照すると、フィルタタップ数が5×5、7×7、9×9である菱形形状の3つのフィルタのうちどのフィルタを使用するかについての情報を符号化器から復号化器へシグナリングするために、ピクチャ/タイル/タイルグループ/スライス/シーケンス単位でフィルタインデックス(filter index)をエントロピー符号化/復号化することができる。つまり、ビットストリーム内のシーケンスパラメータセット(sequence parameter set)、ピクチャパラメータセット(picture parameter set)、スライスヘッダー(slice header)、スライスデータ(slice data)、タイルヘッダー(tile header)、タイルグループヘッダー(tile group header)などにフィルタインデックスをエントロピー符号化/復号化することができる。
本発明の一実施形態によれば、符号化器/復号化器でフィルタタップ数が1つに固定されている場合、前記フィルタインデックスをエントロピー符号化/復号化せずに、当該フィルタを用いて符号化器/復号化器でフィルタリングを行うことができる。ここで、前記フィルタタップ数は、輝度成分の場合には7×7菱形形状であり、色差成分の場合には5×5菱形形状であり得る。
本発明の一実施形態によれば、前記3種類の菱形形状のフィルタのうちの少なくとも一つは、輝度成分及び色差成分のうちの少なくとも一つの復元/復号サンプルフィルタリングに使用できる。
一例として、輝度成分復元/復号サンプルには、図33の3種類の菱形形状のフィルタのうちの少なくとも一つのフィルタが復元/復号サンプルフィルタリングに使用できる。
他の例として、色差成分復元/復号サンプルには、図33の5×5菱形形状のフィルタが復元/復号サンプルフィルタリングに使用できる。
別の例として、色差成分復元/復号サンプルには、前記色差成分に対応する輝度成分から選択されたフィルタを用いてフィルタリングが行われ得る。
一方、図33の各フィルタ形状内の数字は、フィルタ係数インデックス(filter coefficient index)を表し、フィルタを中心にフィルタ係数インデックスが対称形状を持つことができる。すなわち、図33のフィルタを点対称フィルタ(point symmetric filter)形状とすることができる。
一方、図33(a)に示すように9×9菱形形状のフィルタの場合は合計21個のフィルタ係数、図33(b)に示すように7×7菱形形状のフィルタの場合は合計13個のフィルタ係数、図33(c)に示すように5×5菱形形状のフィルタの場合は合計7個のフィルタ係数がエントロピー符号化/復号化できる。つまり、最大21個のフィルタ係数をエントロピー符号化/復号化しなければならない。
また、図33(a)に示すように9×9菱形形状のフィルタの場合はサンプルあたり合計21個の乗算、図33(b)に示すように7×7菱形形状のフィルタの場合はサンプルあたり合計13個の乗算、図33(c)に示すように5×5菱形形状のフィルタの場合はサンプルあたり合計7個の乗算が必要である。つまり、サンプルあたり最大21個の乗算を用いてフィルタリングを行わなければならない。
また、図33(a)に示すように9×9菱形形状のフィルタの場合は、9×9サイズを有するので、ハードウェア実現時にフィルタの縦長さの半分である4ラインのラインバッファ(line buffer)が必要である。つまり、最大4つのラインに対するラインバッファが必要である。
本発明の一実施形態によれば、前記フィルタリングのためのフィルタとして、フィルタタップ数は全て5×5と同一であるが、フィルタ形状が菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形などのうちの少なくとも一つを含むフィルタが使用できる。例えば、フィルタタップ数が5×5であり、フィルタ形状が正方形、八角形、雪片、菱形の形状である場合は、図34のように表すことができる。
ここで、フィルタタップ数は5×5に限定されず、3×3、4×4、5×5、6×6、7×7、8×8、9×9、5×3、7×3、9×3、7×5、9×5、9×7、11×7など、H×Vのフィルタタップを持つ少なくとも一つのフィルタが使用できる。ここで、HとVは、正の整数であり、互いに同じ値を持ってもよく、互いに異なる値を持ってもよい。また、HとVのうちの少なくとも一つは、符号化器/復号化器で予め定義された値であり、符号化器から復号化器へシグナリングされる値であり得る。また、HとVのうちのいずれか一つの値を用いて、もう一つの値が定義できる。また、HとVの値を用いて、H又はVの最終値が定義できる。
一方、図34の例のようなフィルタのうちどのフィルタを使用するかについての情報を符号化器から復号化器へシグナリングするために、ピクチャ/タイル/タイルグループ/スライス/シーケンス単位でフィルタインデックスをエントロピー符号化/復号化することができる。つまり、ビットストリーム内のシーケンスパラメータセット、ピクチャパラメータセット、スライスヘッダー、スライスデータ、タイルヘッダー、タイルグループヘッダーなどにフィルタインデックスをエントロピー符号化/復号化することができる。
一方、図34の例のような正方形、八角形、雪片、菱形形状のフィルタのうちの少なくとも一つは、輝度成分及び色差成分のうちの少なくとも一つの復元/復号サンプルフィルタリングに使用できる。
一方、図34の各フィルタ形状内の数字は、フィルタ係数インデックスを表し、フィルタを中心にフィルタ係数インデックスが対称形状を持つことができる。すなわち、図34のフィルタを点対称フィルタ形状とすることができる。
本発明の一実施形態によれば、復元画像をサンプル単位でフィルタリングする場合、各画像/スライス/タイル/タイルグループごとにどのフィルタ形状を使用するかを符号化器でレート-歪み最適化の観点から決定することができる。また、前記決定されたフィルタ形状を用いてフィルタリングを行うことができる。図34のようなフィルタ形状に応じて符号化効率の向上程度、フィルタ情報の量(フィルタ係数の個数)などが異なるので、画像/スライス/タイル/タイルグループ単位で最適なフィルタ形状を決定する必要がある。つまり、画像の解像度、画像特性、ビットレート(bit rate)などによって、図34の例のようなフィルタ形状の中で最適なフィルタ形状が異なるように決定できる。
本発明の一実施形態によれば、図34の例のようなフィルタを用いることが、図33の例のようなフィルタを用いることと比較して符号化器/復号化器の計算複雑度を減少させることができる。
一例として、図34(a)に示すように5×5正方形形状のフィルタの場合は合計13個のフィルタ係数、図34(b)に示すように5×5八角形形状のフィルタの場合は合計11個のフィルタ係数、図34(c)に示すように5×5雪片形状のフィルタの場合は合計9個のフィルタ係数、図34(c)に示すように5×5菱形形状のフィルタの場合は合計7個のフィルタ係数がエントロピー符号化/復号化できる。つまり、フィルタの形状によって、エントロピー符号化/復号化対象のフィルタ係数の個数が異なり得る。ここで、図34の例のようなフィルタの中のフィルタ係数の最大個数(13個)は、図33の例のようなフィルタの中のフィルタ係数の最大数(21個)よりも小さい。したがって、図34の例のようなフィルタを用いる場合、エントロピー符号化/復号化対象フィルタ係数の個数が減少するので、符号化器/復号化器の計算複雑度を減少させることができる。
他の例として、図34(a)に示すように5×5正方形形状のフィルタの場合はサンプルあたり合計13個の乗算、図34(b)に示すように5×5八角形形状のフィルタの場合はサンプルあたり合計11個の乗算、図34(c)に示すように5×5雪片形状のフィルタの場合はサンプルあたり合計9個の乗算、図34(d)に示すように5×5菱形形状のフィルタの場合はサンプルあたり合計7個の乗算が必要である。図34の例のようなフィルタの中のフィルタのサンプルあたりの最大乗算数(13個)が図33の例のようなフィルタの中のフィルタのサンプルあたりの最大乗算数(21個)よりも小さい。したがって、図34の例のようなフィルタを用いる場合、サンプルあたりの乗算数が減少するので、符号化器/復号化器の計算複雑度を減少させることができる。
別の例として、図34の例のようなフィルタにおいて、各フィルタ形状は全て5×5サイズを持つので、ハードウェア実現時にフィルタの縦長さの半分である2ラインのラインバッファが必要である。ここで、図34の例のようなフィルタを実現するのに必要なラインバッファのライン数(2個)が、図33の例のようなフィルタを実現するのに必要なラインバッファのライン数(4個)よりも小さい。したがって、図34の例のようなフィルタを用いる場合、ラインバッファのサイズを低減させることができ、符号化器/復号化器の実現複雑度、メモリ要求量、メモリアクセス帯域幅を減少させることができる。
本発明の一実施形態によれば、前記フィルタリングのためのフィルタとして、フィルタ形状が菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形のうちの少なくとも一つを含むフィルタが使用できる。例えば、図35a及び/又は図35bの例のように正方形、八角形、雪片、菱形、六角形、長方形、十字架、ショップ、クローバー、対角の形状などを持つことができる。
一例として、図35a及び/又は図35bにおいてフィルタの縦長さが5であるフィルタのうちの少なくとも一つを用いてフィルタセットを構成した後、フィルタリングを行うことができる。
他の例として、図35a及び/又は図35bにおいてフィルタの縦長さが3であるフィルタのうちの少なくとも一つを用いてフィルタセットを構成した後、フィルタリングを行うことができる。
別の例として、図35a及び/又は図35bにおいてフィルタの縦長さが5及び3であるフィルタのうちの少なくとも一つを用いてフィルタセットを構成した後、フィルタリングを行うことができる。
一方、図35a及び/又は図35bにおいて、フィルタの形状は、フィルタの縦長さ3或いは5を基準に設計したものであるが、これに限定されず、フィルタの縦長さがMである場合に設計してフィルタリングに使用することができる。ここで、Mは正の整数である。
一方、図35a及び/又は図35bの例のようなフィルタのうち、Hだけのフィルタセットを構成してどのフィルタを使用するかについての情報を符号化器から復号化器へシグナリングするために、ピクチャ/タイル/タイルグループ/スライス/シーケンス単位でフィルタインデックスをエントロピー符号化/復号化することができる。ここで、Hは正の整数である。つまり、ビットストリーム内のシーケンスパラメータセット、ピクチャパラメータセット、スライスヘッダー、スライスデータ、タイルヘッダー、タイルグループヘッダーなどにフィルタインデックスをエントロピー符号化/復号化することができる。
一方、前記菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形形状のフィルタのうちの少なくとも一つは、輝度成分及び色差成分のうちの少なくとも一つの復元/復号サンプルフィルタリングに使用できる。
一方、図35a及び/又は図35bの各フィルタ形状内の数字は、フィルタ係数インデックスを示し、フィルタを中心にフィルタ係数インデックスが対称形状を持つ。すなわち、図35a及び/又は図35bのフィルタを点対称フィルタ形状とすることができる。
本発明の一実施形態によれば、図35a及び/又は図35bの例のようなフィルタを用いることが、図33の例のようなフィルタを用いることと比較して符号化器/復号化器の計算複雑度を減少させることができる。
一例として、図35a及び/又は図35bの例のようなフィルタのうちの少なくとも一つを用いる場合、図33の例のような9×9菱形形状のフィルタ係数の個数よりもエントロピー符号化/復号化対象フィルタ係数の個数を減少させることができ、符号化器/復号化器の計算複雑度を減少させることができる。
他の例として、図35a及び/又は図35bの例のようなフィルタのうちの少なくとも一つを用いる場合、図33の例のような9×9菱形形状のフィルタ係数のフィルタリングに必要なサンプルあたりの乗算数よりも乗算数を減少させることができ、符号化器/復号化器の計算複雑度を減少させることができる。
別の例として、図35a及び/又は図35bの例のようなフィルタのうちの少なくとも一つを用いる場合、図33の例のような9×9菱形形状のフィルタ係数のフィルタリングに必要なラインバッファのライン数よりもラインバッファのライン数を減少させることができ、符号化器/復号化器の実現複雑度、メモリ要求量、メモリアクセス帯域幅を減少させることができる。
本発明の一実施形態によれば、前記点対称フィルタ形状の代わりに、図36の例のように横/縦対称フィルタ(horizontal/vertical symmetric filter)形状のうちの少なくとも一つを含むフィルタをフィルタリングに使用することができる。又は、点対称、横/縦対称フィルタの他に、対角対称フィルタも使用することができる。図36において、各フィルタ形状内の数字はフィルタ係数インデックスを示すことができる。
一例として、図36においてフィルタの縦長さが5であるフィルタのうちの少なくとも一つを用いてフィルタセットを構成した後、フィルタリングを行うことができる。
他の例として、図36においてフィルタの縦長さが3であるフィルタのうちの少なくとも一つを用いてフィルタセットを構成した後、フィルタリングを行うことができる。
別の例として、図36においてフィルタの縦長さが5及び3であるフィルタのうちの少なくとも一つを用いてフィルタセットを構成した後、フィルタリングを行うことができる。
一方、図36において、フィルタの形状は、フィルタの縦長さ3或いは5を基準に設計したものであるが、これに限定されず、フィルタの縦長さがMである場合に設計してフィルタリングに使用することができる。ここで、Mは正の整数である。
一方、図36の例のようなフィルタのうちHだけのフィルタセットを構成してどのフィルタを使用するかについての情報を符号化器から復号化器へシグナリングするために、ピクチャ/タイル/タイルグループ/スライス/シーケンス単位でフィルタインデックスをエントロピー符号化/復号化することができる。ここで、Hは正の整数である。つまり、ビットストリーム内のシーケンスパラメータセット、ピクチャパラメータセット、スライスヘッダー、スライスデータ、タイルヘッダー、タイルグループヘッダーなどにフィルタインデックスをエントロピー符号化/復号化することができる。
一方、前記菱形、長方形、正方形、台形、対角、雪片、シャープ、クローバー、十字架、三角形、五角形、六角形、八角形、十角形及び十二角形形状のフィルタのうちの少なくとも一つは、輝度成分及び色差成分のうちの少なくとも一つの復元/復号サンプルフィルタリングに使用できる。
本発明の一実施形態によれば、図36の例のようなフィルタを用いることが、図33の例のようなフィルタを用いることと比較して符号化器/復号化器の計算複雑度を減少させることができる。
一例として、図36の例のようなフィルタのうちの少なくとも一つを用いる場合、図33の例のような9×9菱形形状のフィルタ係数の個数よりもエントロピー符号化/復号化対象フィルタ係数の個数を減少させることができ、符号化器/復号化器の計算複雑度を減少させることができる。
他の例として、図36の例のようなフィルタのうちの少なくとも一つを用いる場合、図33の例のような9×9菱形形状のフィルタ係数のフィルタリングに必要なサンプルあたりの乗算数よりも乗算数を減少させることができ、符号化器/復号化器の計算複雑度を減少させることができる。
別の例として、図36の例のようなフィルタのうちの少なくとも一つを用いる場合、図33の例のような9×9菱形形状のフィルタ係数のフィルタリングに必要なラインバッファのライン数よりもラインバッファのライン数を減少させることができ、符号化器/復号化器の実現複雑度、メモリ要求量、メモリアクセス帯域幅を減少させることができる。
本発明の一実施形態によれば、前記ブロック分類単位でフィルタリングを行う前に、ブロック分類単位で計算された勾配値の和(すなわち、縦方向、横方向、第1対角方向、第2対角方向による各勾配値の和gv、gh、gd1、gd2)のうちの少なくとも一つに基づいてフィルタ係数f(k,l)に幾何学的変換(geometric transformation)を行うことができる。このとき、フィルタ係数に対する幾何学的変換は、フィルタに90度回転(rotation)、180度回転、270度回転、第2対角方向フリッピング(flipping)、第1対角方向フリッピング、垂直方向フリッピング、水平方向フリッピング、垂直及び水平方向フリッピング、ズームイン/アウト(zoom in/out)のうちの少なくとも一つを行うことにより、幾何学的変換されたフィルタを算出することを意味することができる。
一方、前記フィルタ係数に幾何学的変換を行った後、前記幾何学的変換されたフィルタ係数を用いて復元/復号サンプルをフィルタリングすることは、フィルタが適用される復元/復号サンプルのうちの少なくとも一つに対して幾何学的変換を行った後、フィルタ係数を用いて復元/復号サンプルをフィルタリングすることと同一であり得る。
本発明の一実施形態によれば、幾何学的変換は、数式33乃至数式35の例のように行われ得る。
[数式33]
[数式34]
[数式35]
ここで、数式33は第2対角方向フリッピング、数式34は垂直方向フリッピング、数式35は90度回転に関する式を表す一例である。数式34乃至数式35中、Kは横方向及び縦方向に対するフィルタタップ数(フィルタ長)であり、0≦k、l≦K-1はフィルタ係数の座標を意味することができる。例えば、(0,0)は左上コーナー(corner)を意味し、(K-1,K-1)は右下コーナーを意味することができる。
また、表1は勾配値の和によるフィルタ係数f(k,l)に適用される幾何学的変換種類の一例を示す。
図37は本発明の一実施形態による正方形、八角形、雪片、菱形形状のフィルタに対して幾何学的変換を行ったフィルタを示す図である。
図37を参照すると、正方形、八角形、雪片、菱形形状のフィルタ係数に第2対角方向フリッピング、垂直方向フリッピング及び90度回転のうちの少なくとも一つの幾何学的変換を行うことができる。そして、前記幾何学的変換によって取得されたフィルタ係数をフィルタリングに使用することができる。一方、前記フィルタ係数に幾何学的変換を行った後、前記幾何学的変換されたフィルタ係数を用いて復元/復号サンプルをフィルタリングすることは、フィルタが適用される復元/復号サンプルのうちの少なくとも一つに対して幾何学的変換を行った後、フィルタ係数を用いて復元/復号サンプルをフィルタリングすることと同一であり得る。
本発明の一実施形態によれば、復元/復号サンプル
に対して前記フィルタリングを行うことにより、フィルタリングされた復号サンプル
を生成することができる。前記フィルタリングされた復号サンプルは、数式36の例のように表すことができる。
[数式36]
数式36中、Lは横方向或いは縦方向によるフィルタタップ数(フィルタ長)であり、
はフィルタ係数である。
一方、前記フィルタリングの実行時にフィルタリングされた復号サンプル
にオフセットY値を加えることができる。前記オフセットY値は、エントロピー符号化/復号化できる。また、オフセットY値は、現在復元/復号サンプルの値と周辺復元/復号サンプルの値のうちの少なくとも一つの統計値を用いて算出できる。また、前記オフセットY値は、現在復元/復号サンプルと周辺復元/復号サンプルのうちの少なくとも一つの符号化パラメータに基づいて決定できる。ここで、Yは、0を含む整数である。
一方、前記フィルタリングされた復号サンプルは、Nビット内で表現されるように切り捨てを行うことができる。ここで、Nは正の整数である。例えば、復元/復号サンプルに対してフィルタリングを行うことにより、生成されたフィルタリングされた復号サンプルに10ビットで切り捨てる場合には、最終の復号サンプル値は0乃至1023の間の値を持つことができる。
本発明の一実施形態によれば、色差成分の場合、輝度成分のフィルタリング情報に基づいてフィルタリングが実行できる。
一例として、色差成分の復元画像フィルタリングは、輝度成分の復元画像フィルタリングが行われる場合にのみ実行できる。ここで、色差成分の復元画像フィルタリングは、U(Cr)及びV(Cb)成分のうちの少なくとも一つに対して実行できる。
他の例として、色差成分の場合、対応する輝度成分のフィルタ係数、フィルタタップ数、フィルタ形状及びフィルタリング実行有無情報のうちの少なくとも一つを用いてフィルタリングを行うことができる。
本発明の一実施形態によれば、前記フィルタリングの実行時に、現在サンプルの周辺に利用可能でないサンプルが存在する場合には、パディングを行った後、パディングされたサンプルを用いてフィルタリングを行うことができる。前記パディングは、前記利用可能でないサンプルに隣接し、利用可能なサンプル値を前記利用可能でないサンプル値にコピーする方式を意味することができる。又は、前記利用可能でないサンプルに隣接し、利用可能なサンプル値に基づいて取得されたサンプル値或いは統計値を用いることができる。前記パディングは、P列の個数及びR行の個数だけ繰り返し行うことができる。ここで、PとRは正の整数であり得る。
ここで、利用可能でないサンプルは、CTU、CTB、スライス、タイル、タイルグループ、ピクチャ境界外に存在するサンプルを意味することができる。また、利用可能でないサンプルは、現在サンプルの属するCTU、CTB、スライス、タイル、タイルグループ及びピクチャのうちの少なくとも一つと互いに異なるCTU、CTB、スライス、タイル、タイルグループ及びピクチャのうちの少なくとも一つに属するサンプルを意味することができる。
また、フィルタリングの実行時に、所定のサンプルを利用しなくてもよい。
一例として、前記フィルタリングの実行時に、パディングされたサンプルを利用しなくてもよい。
他の例として、前記フィルタリングの実行時に、現在サンプルの周辺に利用可能でないサンプルが存在する場合には、前記利用可能でないサンプルをフィルタリングに利用しなくてもよい。
別の例として、前記フィルタリングの実行時に、現在サンプルの周辺に存在するサンプルがCTU或いはCTB境界外に位置する場合には、前記周辺に存在するサンプルをフィルタリングに利用しなくてもよい。
また、前記フィルタリングの実行時に、デブロッキングフィルタリング、適応的サンプルオフセット及び適応的ループ内フィルタリングのうちの少なくとも一つが適用されたサンプルを使用することができる。
また、前記フィルタリングの実行時に、現在サンプルの周辺に存在するサンプルがCTU或いはCTB境界外に位置する場合には、デブロッキングフィルタリング、適応的サンプルオフセット及び適応的ループ内フィルタリングのうちの少なくとも一つを適用しなくてもよい。
また、前記フィルタリングに使用されるサンプルに、CTU或いはCTB境界外などに位置して利用可能でないサンプルが含まれる場合、当該利用可能でないサンプルにデブロッキングフィルタリング、適応的サンプルオフセット及び適応的ループ内フィルタリングのうちの少なくとも一つを適用せずに、フィルタリングに使用することができる。
本発明の一実施形態によれば、前記フィルタリングの実行時に、CU、PU、TU、ブロック、ブロック分類単位、CTU及びCTBの少なくとも一つの境界周辺に存在するサンプルのうちの少なくとも一つに対してフィルタリングを行うことができる。この時、前記境界は、垂直方向境界、水平方向境界及び対角方向境界のうちの少なくとも一つを含むことができる。また、前記境界周辺に存在するサンプルは、境界を基準にU行、U列及びUサンプルのうちの少なくとも一つであり得る。ここで、Uは正の整数であり得る。
本発明の一実施形態によれば、前記フィルタリングの実行時に、CU、PU、TU、ブロック、ブロック分類単位、CTU及びCTBの少なくとも一つの境界周辺に存在するサンプルを除いた、ブロックの内部に存在するサンプルのうちの少なくとも一つに対してフィルタリングを行うことができる。この時、前記境界は、垂直方向境界、水平方向境界及び対角方向境界のうちの少なくとも一つを含むことができる。また、前記境界周辺に存在するサンプルは、境界を基準にU行、U列及びUサンプルのうちの少なくとも一つであり得る。ここで、Uは正の整数であり得る。
本発明の一実施形態によれば、前記フィルタリングの実行時に、現在ブロック及び周辺ブロックのうちの少なくとも一つの符号化パラメータに基づいて、行うか否かが決定できる。この時、前記符号化パラメータは、予測モード(画面間予測であるか、画面内予測であるか)は、画面内予測モード、画面間予測モード、画面間予測インジケータ、動きベクトル、参照画像インデックス、量子化パラメータ、現在ブロックの大きさ、現在ブロックの形状、ブロック分類単位の大きさ、符号化ブロックフラグ/パターンのうちの少なくとも一つを含むことができる。
また、前記フィルタリングの実行時に、現在ブロック及び周辺ブロックのうちの少なくとも一つの符号化パラメータに基づいて、フィルタ係数、フィルタタップ数(フィルタ長)、フィルタ形状及びフィルタ種類のうちの少なくとも一つが決定できる。前記符号化パラメータのうちの少なくとも一つに基づいて、フィルタ係数、フィルタタップ数(フィルタ長)、フィルタ形状及びフィルタ種類のうちの少なくとも一つが互いに異なり得る。
一例として、前記フィルタリングの際に使用されるフィルタの個数は、量子化パラメータに基づいて決定できる。例えば、量子化パラメータがしきい値Tよりも小さい場合、J個のフィルタをフィルタリングに使用することができ、量子化パラメータがしきい値Rよりも大きい場合、H個のフィルタをフィルタリングに使用することができ、そうでない場合、G個のフィルタをフィルタリングに使用することができる。ここで、T、R、J、H、Gは、0を含む正の整数である。また、Jは、Hと同じかそれより大きくてもよい。ここで、量子化パラメータの値が相対的に大きいほど少ない個数のフィルタを使用することができる。
他の例として、前記フィルタリングの際に使用されるフィルタの個数は、現在ブロックの大きさに応じて決定できる。例えば、現在ブロックの大きさがしきい値Tよりも小さい場合には、J個のフィルタを使用することができ、現在ブロックの大きさがしきい値Rよりも大きい場合には、H個のフィルタを使用することができ、そうでない場合には、G個のフィルタを使用することができる。ここで、T、R、J、H、Gは、0を含む正の整数である。また、JはHと同じかそれより大きくてもよい。ここで、ブロックの大きさが相対的に大きいほど少ない個数のフィルタを使用することができる。
別の例として、前記フィルタリングの際に使用されるフィルタの個数は、ブロック分類単位の大きさに応じて決定できる。例えば、ブロック分類単位の大きさがしきい値Tよりも小さい場合には、J個のフィルタを使用することができ、ブロック分類単位の大きさがしきい値Rよりも大きい場合には、H個のフィルタを使用することができ、そうでない場合には、G個のフィルタを使用することができる。ここで、T、R、J、H、Gは、0を含む正の整数である。また、Jは、Hと同じかそれより大きくてもよい。ここで、ブロック分類単位の大きさが相対的に大きいほど少ない個数のフィルタを使用することができる。
別の例として、前記フィルタリング方法のうちの少なくとも一つの組み合わせを用いてフィルタリングを行うことができる。
以下、フィルタ情報符号化/復号化のステップについて後述する。
本発明の一実施形態によれば、フィルタ情報は、ビットストリーム内のスライスヘッダーとスライスデータ内の一番目のCTU構文要素(syntax element)との間でエントロピー符号化/復号化できる。
また、フィルタ情報は、ビットストリーム内のシーケンスパラメータセット、ピクチャパラメータセット、スライスヘッダー、スライスデータ、タイルヘッダー、タイルグループヘッダー、CTU、CTBなどでエントロピー符号化/復号化できる。
一方、前記フィルタ情報には、輝度成分フィルタリング実行有無情報、色差成分フィルタリング実行有無、フィルタ係数の値、フィルタの個数、フィルタタップ数(フィルタ長)情報、フィルタ形状情報、フィルタ種類情報、スライス/タイル/タイルグループ/ピクチャ/CTU/CTB/ブロック/CU単位フィルタリング実行有無情報、CU単位フィルタリング実行有無情報、CU最大深さフィルタリング情報、CU単位フィルタリング実行有無情報、以前参照画像フィルタ使用有無情報、以前参照画像フィルタインデックス、ブロック分類インデックスに対する固定されたフィルタ使用有無情報、固定されたフィルタに対するインデックス情報、フィルタマージ情報、輝度成分及び色差成分に異なるフィルタを使用するか否かの情報、フィルタの対称形状に関する情報のうちの少なくとも一つが含まれ得る。
ここで、前記フィルタタップ数は、フィルタの横長さ、フィルタの縦長さ、フィルタの第1対角長さ、フィルタの第2対角長さ、フィルタの横と縦の長さ、及びフィルタ内フィルタ係数の個数のうちの少なくとも一つであり得る。
一方、フィルタ情報には、最大L個の輝度フィルタが含まれ得る。ここで、Lは正の整数であり、25であってもよい。また、フィルタ情報には、最大L個の色差フィルタが含まれ得る。ここで、Lは正の整数であり、1であってもよい。
一方、1つのフィルタには、最大K個の輝度フィルタ係数が含まれ得る。ここで、Kは正の整数であり、13であってもよい。また、フィルタ情報には、最大K個の色差フィルタ係数が含まれ得る。ここでは、Kは正の整数であり、7であってもよい。
例えば、フィルタの対称形状に関する情報は、フィルタ形状が点対称形状、横対称形状、縦対称形状またはこれらの組み合わせ形状に関する情報であってもよい。
一方、フィルタ係数のうちの一部の係数のみシグナリングすることができる。例えば、フィルタが対称形状である場合には、フィルタの対称形状に関する情報と対称になるフィルタ係数セットのうちのいずれかのセットのみシグナリングすることができる。また、例えば、フィルタ中心のフィルタ係数は、暗示的に導出できるため、シグナリングされなくてもよい。
本発明の一実施形態によれば、前記フィルタ情報のうちのフィルタ係数値は符号化器で量子化でき、量子化されたフィルタ係数値がエントロピー符号化できる。同様に、復号化器で、量子化されたフィルタ係数値がエントロピー復号化でき、量子化されたフィルタ係数値が逆量子化されてフィルタ係数値に復元されることも可能である。前記フィルタ係数値は、固定されたMビット(bit)で表現できる値の範囲内に量子化され、逆量子化されることも可能である。また、前記フィルタ係数のうちの少なくとも一つは、互いに異なるビットで量子化され、逆量子化されることも可能である。逆に、前記フィルタ係数のうちの少なくとも一つは、互いに同一のビットで量子化され、逆量子化されることも可能である。また、前記Mビットは、量子化パラメータに基づいて決定できる。また、前記Mビットは、符号化器及び復号化器で予め定義された定数値であり得る。ここで、Mは、正の整数であり、8或いは10であってもよい。また、前記Mビットは、符号化器/復号化器でサンプルを表現するのに必要なビット数と同じかそれより小さくてもよい。例えば、サンプルを表現するのに必要なビット数が10であれば、前記Mは8であり得る。フィルタ内のフィルタ係数のうちの第1フィルタ係数は-2Mから2M-1までの値を持つことができ、第2フィルタ係数は、0から2M-1までの値を持つことができる。ここで、第1フィルタ係数は、フィルタ係数のうちの中心フィルタ係数を除いた残りのフィルタ係数を意味することができ、第2フィルタ係数は、フィルタ係数のうちの中心フィルタ係数を意味することができる。
また、前記フィルタ情報の中でも、フィルタ係数値は、符号化器及び復号化器のうちの少なくとも一つで切り捨てられ、切り捨て(clipping に関する最小値及び最大値のうちの少なくとも一つがエントロピー符号化/復号化できる。前記フィルタ係数値は、最小値及び最大値の範囲内に切り捨てられ得る。また、前記最小値及び最大値のうちの少なくとも一つは、フィルタ係数ごとに互いに異なる値を持つことができる。逆に、前記最小値及び最大値のうちの少なくとも一つは、フィルタ係数ごとに互いに同じ値を持つことができる。また、前記最小値及び最大値のうちの少なくとも一つは、量子化パラメータに基づいて決定できる。また、前記最小値及び最大値のうちの少なくとも一つは、符号化器及び復号化器で予め定義された定数値であり得る。
本発明の一実施形態によれば、前記フィルタ情報のうちの少なくとも一つは、現在ブロック及び周辺ブロックのうちの少なくとも一つの符号化パラメータに基づいてエントロピー符号化/復号化できる。この時、前記符号化パラメータは、予測モード(画面間予測であるか、画面内予測であるか)、画面内予測モード、画面間予測モード、画面間予測インジケータ、動きベクトル、参照画像インデックス、量子化パラメータ、現在ブロックの大きさ、現在ブロックの形状、ブロック分類単位の大きさ、符号化ブロックフラグ/パターンのうちの少なくとも一つを含むことができる。
例えば、前記フィルタ情報の中でも、フィルタの個数は、ピクチャ/スライス/タイルグループ/タイル、CTU/CTB/ブロックの量子化パラメータに基づいて決定できる。具体的には、量子化パラメータがしきい値Tよりも小さい場合には、J個のフィルタをエントロピー符号化/復号化することができ、量子化パラメータがしきい値Rよりも大きい場合には、H個のフィルタをエントロピー符号化/復号化することができ、そうでない場合には、G個のフィルタをエントロピー符号化/復号化することができる。ここで、T、R、J、H、Gは、0を含む正の整数である。また、Jは、Hと同じかそれより大きくてもよい。ここで、量子化パラメータの値が相対的に大きいほど少ない個数のフィルタをエントロピー符号化/復号化することができる。
本発明の一実施形態によれば、輝度成分及び色差成分のうちの少なくとも一つに対するフィルタリング実行有無は、フィルタリング実行有無情報(フラグ)を用いることができる。
一例として、輝度成分及び色差成分のうちの少なくとも一つに対するフィルタリング実行有無は、CTU/CTB/CU/ブロック単位のフィルタリング実行有無情報(フラグ)を用いることができる。例えば、CTB単位のフィルタリング実行有無情報が第1の値である場合には、当該CTBに対してフィルタリングを行ってもよく、第2の値である場合には、当該CTBに対してフィルタリングを行わなくてもよい。このとき、CTBごとにフィルタリング実行有無情報がエントロピー符号化/復号化できる。別の例として、CUの最大深さ或いは最小サイズに関する情報(CU最大深さのフィルタリング情報)をさらにエントロピー符号化/復号化することにより、当該最大深さ或いは最小サイズまでのみCU単位フィルタリング実行有無情報をエントロピー符号化/復号化することができる。
例えば、CU単位のフラグは、ブロック構造(block structure)に応じて正方形ブロック分割と非正方形ブロック分割が可能な場合、正方形ブロック分割の深さまでのみエントロピー符号化/復号化できる。また、CU単位のフラグは、さらに非正方形ブロック分割の深さまでエントロピー符号化/復号化できる。
他の例として、輝度成分及び色差成分のうちの少なくとも一つに対するフィルタリング実行有無情報は、ブロック単位のフラグを用いることができる。例えば、ブロック単位のフラグが第1の値である場合には、当該ブロックに対してフィルタリングを行ってもよく、第2の値である場合には、当該ブロックに対してフィルタリングを行わなくてもよい。前記ブロック単位のサイズはN×Mであり、NとMは正の整数であり得る。
別の例として、輝度成分及び色差成分のうちの少なくとも一つに対するフィルタリング実行有無情報は、CTU単位のフラグを用いることができる。例えば、CTU単位のフラグが第1の値である場合には、当該CTUに対してフィルタリングを行ってもよく、第2の値である場合には、当該CTUフィルタリングを行わなくてもよい。前記CTU単位のサイズはN×Mであり、NとMは正の整数であり得る。
別の例として、輝度成分及び色差成分のうちの少なくとも一つに対するフィルタリング実行有無は、ピクチャ/スライス/タイルグループ/タイル種類に基づいて決定でき、輝度成分及び色差成分のうちの少なくとも一つに対するフィルタリング実行有無情報は、ピクチャ/スライス/タイルグループ/タイル単位のフラグを用いることができる。
本発明の一実施形態によれば、エントロピー符号化/復号化すべきフィルタ係数の量を減少させるために、互いに異なるブロック分類に該当するフィルタ係数をマージ(merge)することができる。このとき、フィルタ係数がマージされるか否かに対するフィルタマージ情報がエントロピー符号化/復号化できる。
また、エントロピー符号化/復号化すべきフィルタ係数の量を減少させるために、参照画像のフィルタ係数を用いて現在画像のフィルタ係数として使用することができる。このとき、参照画像のフィルタ係数を用いる方法を時間的フィルタ係数予測とすることができる。例えば、前記時間的フィルタ係数予測は、画面間予測画像(B/P-画像/スライス/タイルグループ/タイル)に使用できる。一方、参照画像のフィルタ係数はメモリに保存できる。また、現在画像で参照画像のフィルタ係数を使用する場合、現在画像に対してフィルタ係数のエントロピー符号化/復号化を省略することができる。この場合、どの参照画像のフィルタ係数を使用するかに対する以前参照画像フィルタインデックスがエントロピー符号化/復号化できる。
一例として、時間的フィルタ係数予測を使用する場合、フィルタセットの候補リストを構成することができる。新しいシーケンスを復号化する前に、フィルタセットの候補リストは空いているが、一つの画像を復号化するたびに、当該画像のフィルタ係数は、フィルタセットの候補リストに含まれ得る。もし、フィルタセットの候補リスト内のフィルタの個数が最大フィルタ個数Gに達すると、新しいフィルタは、復号化の順序上、最も古いフィルタを代替することができる。つまり、FIFO(first-in-first-out)方式でフィルタセットの候補リストを更新することができる。ここで、Gは、正の整数であり、6であってもよい。フィルタセットの候補リスト内フィルタの重複を防止するために、時間的フィルタ係数予測を使用していない画像のフィルタ係数がフィルタセットの候補リストに含まれ得る。
他の例として、時間的フィルタ係数予測を使用する場合、時間的拡張性(temporal scalability)を支援するために、多数の時間的階層(temporal layer)インデックスに対するフィルタセットの候補リストを構成することができる。つまり、時間的階層ごとにフィルタセットの候補リストを構成することができる。例えば、各時間的階層に対するフィルタセットの候補リストは、以前復号画像のうち、時間的階層インデックスと同じかそれより小さい復号画像のフィルタセットを含むことができる。また、各画像に対する復号化の後、当該画像に対するフィルタ係数は、当該画像の時間的階層インデックスと同じかそれより大きい時間的階層インデックスを持つフィルタセットの候補リストに含まれ得る。
本発明の一実施形態によれば、前記フィルタリングは、固定されたフィルタ(fixed filter)セットを用いることができる。
画面内予測画像(I画像/スライス/タイルグループ/タイル)では、時間的フィルタ係数予測を使用することができないが、各ブロック分類インデックスに応じて、最大16種類の固定されたフィルタセットのうちの少なくとも一つのフィルタをフィルタリングに使用することができる。固定されたフィルタセットを使用するか否かを符号化器から復号化器へシグナリングするために、各ブロック分類インデックスに対する固定されたフィルタ使用有無情報がエントロピー符号化/復号化でき、固定されたフィルタを使用する場合、固定されたフィルタに対するインデックス情報もエントロピー符号化/復号化することができる。もし、特定のブロック分類インデックスに対して固定されたフィルタを使用する場合にも、フィルタ係数はエントロピー符号化/復号化でき、エントロピー符号化/復号化されるフィルタ係数と固定されたフィルタ係数を用いて復元画像をフィルタリングすることができる。
また、前記画面間予測画像(B/P-画像/スライス/タイルグループ/タイル)でも、前記固定されたフィルタセットを用いることができる。
また、前記適応的ループ内フィルタリングは、フィルタ係数のエントロピー符号化/復号化なしに、固定されたフィルタで行われ得る。ここで、固定されたフィルタは、符号化器と復号化器で予め定義したフィルタセットを意味することができる。このとき、フィルタ係数のエントロピー符号化/復号化なしに、符号化器と復号化器で予め定義したフィルタセットのうちのどのフィルタ或いはどのフィルタセットを使用するかに対する固定されたフィルタに対するインデックス情報をエントロピー符号化/復号化することができる。前記ブロック分類単位、ブロック単位、CU単位、CTU単位、スライス、タイル、タイルグループ及びピクチャ単位のうちの少なくとも一つの単位でフィルタ係数値、フィルタタップ数(フィルタ長)及びフィルタ形状のうちの少なくとも一つが他の固定されたフィルタでフィルタリングを行うことができる。
一方、前記固定されたフィルタセット内の少なくとも一つのフィルタに対して、フィルタタップ数及びフィルタ形状が異なるフィルタに変換することができる。例えば、図38の例のように、9×9菱形形状のフィルタ係数を5×5正方形形状のフィルタ係数に変換することができる。具体的には、後述するように9×9菱形形状のフィルタ係数を5×5正方形形状のフィルタ係数に変換することができる。
一例として、9×9菱形形状のフィルタ係数インデックス0、2、6に該当するフィルタ係数の和は、5×5正方形形状のフィルタ係数インデックス2に割り当てられてもよい。
他の例として、9×9菱形形状のフィルタ係数インデックス1、5に該当するフィルタ係数の和は、5×5正方形形状のフィルタ係数インデックス1に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス3、7に該当するフィルタ係数の和は、5×5正方形形状のフィルタ係数インデックス3に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス4に該当するフィルタ係数は、5×5正方形形状のフィルタ係数インデックス0に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス8に該当するフィルタ係数は、5×5正方形形状のフィルタ係数インデックス4に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス9、10に該当するフィルタ係数の和は、5×5正方形形状のフィルタ係数インデックス5に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス11に該当するフィルタ係数は、5×5正方形形状のフィルタ係数インデックス6に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数のインデックス12に該当するフィルタ係数は、5×5正方形形状のフィルタ係数インデックス7に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス13に該当するフィルタ係数は、5×5正方形形状のフィルタ係数インデックス8に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス14、15に該当するフィルタ係数の和は、5×5正方形形状のフィルタ係数インデックス9に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス16、17、18に該当するフィルタ係数の和は、5×5正方形形状のフィルタ係数インデックス10に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス19に該当するフィルタ係数は、5×5正方形形状のフィルタ係数インデックス11に割り当てられてもよい。
別の例として、9×9菱形形状のフィルタ係数インデックス20に該当するフィルタ係数は、5×5正方形形状のフィルタ係数インデックス12に割り当てられてもよい。
一方、表2は、9×9菱形形状のフィルタ係数を5×5正方形形状のフィルタ係数に変換してフィルタ係数を生成する一例を示す。
表2において、9×9菱形形状のフィルタのうちの少なくとも一つのフィルタ係数の和は、対応する5×5正方形形状のフィルタのうちの少なくとも一つのフィルタ係数の和と同一であり得る。
一方、9×9菱形形状のフィルタ係数に対する最大16種類の固定されたフィルタセットを使用する場合は、最大21個のフィルタ係数×25個のフィルタ×16種類をメモリに保存しなければならない。もし、5×5正方形形状のフィルタ係数に対する最大16種類の固定されたフィルタセットを使用する場合は、最大13個のフィルタ係数×25個のフィルタ×16種類をメモリに保存しなければならない。このとき、5×5正方形形状の固定されたフィルタ係数を保存するのに必要なメモリの大きさは、9×9菱形形状の固定されたフィルタ係数を保存するのに必要なメモリの大きさより小さいので、符号化器/復号化器の実現時に必要なメモリ要求量、メモリアクセス帯域幅を減少させることができる。
一方、色差成分復元/復号サンプルには、対応する位置の輝度成分から選択されたフィルタのフィルタタップ数及び/又はフィルタ形状が変換されたフィルタを用いてフィルタリングを行うことができる。
本発明の一実施形態によれば、所定の固定されたフィルタからフィルタ係数予測が禁止できる。
本発明の一実施形態によれば、乗算演算をシフト演算で代替することができる。まず、輝度及び/又は色差ブロックのフィルタリングを行うために使用されるフィルタ係数を2つのグループに分けることができる。例えば、第1グループ{L0、L1、L2、L3、L4、L5、L7、L8、L9、L10、L14、L15、L16、L17}及びその残り係数を含む第2グループに分けることができる。第1グループは、{-64、-32、-16、-8、-4、0、4、8、16、32、64}の係数値を持つように制限できる。このとき、第1グループに含まれているフィルタ係数と復元/復号サンプルに対する乗算演算は、単一のビットシフト演算で実現できる。したがって、第1グループに含まれているフィルタ係数は、シグナリングオーバーヘッドを減らすために、2値化の前にそれぞれビットシフト演算が行われた値にマッピングできる。
本発明の一実施形態によれば、色差成分に対するブロック分類及び/又はフィルタリング実行有無決定は、同じ位置の輝度成分の結果を直接再利用することができる。また、色差成分のフィルタ係数は、輝度成分のフィルタ係数を再利用することができ、例えば、一定の5×5菱形フィルタ形状を使用することができる。
一例として、輝度成分に対する9×9フィルタ形状から色差成分に対する5×5フィルタ形状にフィルタ係数を変換することができる。このとき、最も外側のフィルタ係数は0に設定できる。
他の例として、輝度成分の5×5フィルタ形状の場合、前記フィルタ係数は、色差成分のフィルタ係数と同一であり得る。つまり、輝度成分のフィルタ係数が色差成分のフィルタ係数にそのまま適用できる。
別の例として、色差成分のフィルタリングに使用されるフィルタ形状を5×5に維持するために、5×5菱形フィルタ形状の外側にあるフィルタ係数に対しては、5×5菱形の境界にある係数値で代替することができる。
一方、輝度ブロックと色差ブロックに対して個別にループ内フィルタリングを行うことができる。色差ブロックの個別的適応的ループ内フィルタリング支援有無に対してピクチャ/スライス/タイルグループ/タイルCTU/CTBのレベルで制御フラグをシグナリングすることができる。輝度ブロックと色差ブロックに統合的に適応的ループ内フィルタリングを行うモード、又は輝度ブロックと色差ブロックに対して個別に適応的ループ内フィルタリングモードを支援するフラグをシグナリングすることができる。
本発明の一実施形態によれば、前記フィルタ情報のうちの少なくとも一つをエントロピー符号化/復号化する際に、下記の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値化方法
一例として、輝度フィルタと色差フィルタに対するフィルタ係数値は、輝度フィルタと色差フィルタで互いに異なる2値化方法を用いてエントロピー符号化/復号化できる。
他の例として、輝度フィルタに対するフィルタ係数値は、輝度フィルタ内係数同士に互いに異なる2値化方法を用いてエントロピー符号化/復号化できる。また、輝度フィルタに対するフィルタ係数値は、輝度フィルタ内係数同士に互いに同じ2値化方法を用いてエントロピー符号化/復号化できる。
別の例として、色差フィルタに対するフィルタ係数値は、色差フィルタ内係数同士に互いに異なる2値化方法を用いてエントロピー符号化/復号化できる。また、色差フィルタに対するフィルタ係数値は、色差フィルタ内係数同士に互いに同じ2値化方法を用いてエントロピー符号化/復号化できる。
また、前記フィルタ情報のうちの少なくとも一つをエントロピー符号化/復号化するとき、周辺ブロックのフィルタ情報のうちの少なくとも一つ、或いは以前に符号化/復号化されたフィルタ情報のうちの少なくとも一つ、或いは以前画像で符号化/復号化されたフィルタ情報を用いて、コンテキストモデル(context model)を決定することができる。
また、前記フィルタ情報のうちの少なくとも一つをエントロピー符号化/復号化するとき、互いに異なる成分のフィルタ情報のうちの少なくとも一つを用いてコンテキストモデル(context model)を決定することができる。
また、前記フィルタ係数をエントロピー符号化/復号化するとき、フィルタ内の他のフィルタ係数のうちの少なくとも一つを用いてコンテキストモデル(context model)を決定することができる。
また、前記フィルタ情報のうちの少なくとも一つをエントロピー符号化/復号化するとき、周辺ブロックのフィルタ情報のうちの少なくとも一つ、或いは以前に符号化/復号化されたフィルタ情報のうちの少なくとも一つ、或いは以前画像で符号化/復号化されたフィルタ情報をフィルタ情報に対する予測値として用いて、エントロピー符号化/復号化することができる。
また、前記フィルタ情報のうちの少なくとも一つをエントロピー符号化/復号化するとき、互いに異なる成分のフィルタ情報のうちの少なくとも一つをフィルタ情報に対する予測値として用いてトロピー符号化/復号化することができる。
また、前記フィルタ係数をエントロピー符号化/復号化するとき、フィルタ内の他のフィルタ係数のうちの少なくとも一つを予測値として用いてエントロピー符号化/復号化することができる。
また、前記フィルタ情報エントロピー符号化/復号化方法のうちの少なくとも一つの組み合わせを用いて、フィルタ情報をエントロピー符号化/復号化することができる。
本発明の一実施形態によれば、前記適応的ループ内フィルタリングは、ブロック、CU、PU、TU、CB、PB、TB、CTU、CTB、スライス、タイル、タイルグループ及びピクチャ単位のうちの少なくとも一つの単位で行われ得る。前記単位で行われる場合、ブロック分類ステップ、フィルタリング実行ステップ、フィルタ情報符号化/復号化ステップが、前記ブロック、CU、PU、TU、CB、PB、TB、CTU、CTB、スライス、タイル、タイルグループ及びピクチャ単位のうちの少なくとも一つの単位で行われることを意味することができる。
本発明の一実施形態によれば、前記適応的ループ内フィルタリングは、デブロッキングフィルタ、サンプル適応的オフセット及び双方向フィルタリングのうちの少なくとも一つを行うか否かによって実行有無が決定できる。
一例として、現在画像内の復元/復号サンプルのうち、デブロッキングフィルタ、サンプル適応的オフセット及び双方向フィルタリングの少なくとも一つが適用されたサンプルに対しては、適応的ループ内フィルタリングを行ってもよい。
他の例として、現在画像内の復元/復号サンプルのうち、デブロッキングフィルタ、サンプル適応的オフセット及び双方向フィルタリングの少なくとも一つが適用されたサンプルに対しては、適応的ループ内フィルタリングを行わなくてもよい。
別の例として、現在画像内の復元/復号サンプルのうち、デブロッキングフィルタ、サンプル適応的オフセット及び双方向フィルタリングの少なくとも一つが適用されたサンプルの場合、ブロック分類の実行なしにL個のフィルタを用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行うことができる。ここで、Lは正の整数である。
本発明の一実施形態によれば、前記適応的ループ内フィルタリングは、現在画像のスライスタイプ(slice type)或いはタイルグループタイプに応じて実行有無が決定できる。
一例として、現在画像のスライス或いはタイルグループタイプがI-スライス或いはI-タイルグループである場合にのみ、前記適応的ループ内フィルタリングが行われてもよい。
他の例として、現在画像のスライス或いはタイルグループタイプがI-スライス、B-スライス、P-スライス、I-タイルグループ、B-タイルグループ及びP-タイルグループのうちの少なくとも一つである場合に、前記適応的ループ内フィルタリングが行われてもよい。
別の例として、現在画像のスライス或いはタイルグループタイプがI-スライス、B-スライス、P-スライス、I-タイルグループ、B-タイルグループ及びP-タイルグループのうちの少なくとも一つである場合、現在画像に対して適応的ループ内フィルタリングの際に、ブロック分類の実行なしにL個のフィルタを用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行ってもよい。ここで、Lは正の整数である。
別の例として、現在画像のスライス或いはタイルグループタイプがI-スライス、B-スライス、P-スライス、I-タイルグループ、B-タイルグループ及びP-タイルグループのうちの少なくとも一つである場合、1つのフィルタ形状を用いて適応的ループ内フィルタリングを行ってもよい。
別の例として、現在画像のスライス或いはタイルグループタイプがI-スライス、B-スライス、P-スライス、I-タイルグループ、B-タイルグループ及びP-タイルグループのうちの少なくとも一つである場合、1つのフィルタタップ数を用いて適応的ループ内フィルタリングを行ってもよい。
別の例として、現在画像のスライス或いはタイルグループタイプがI-スライス、B-スライス、P-スライス、I-タイルグループ、B-タイルグループ及びP-タイルグループのうちの少なくとも一つである場合、N×Mブロックサイズ単位でブロック分類及びフィルタリングのうちの少なくとも一つを行ってもよい。このとき、NとMは正の整数であり、4であってもよい。
本発明の一実施形態によれば、前記適応的ループ内フィルタリングは、現在画像が参照画像として使用されるか否かに応じて実行有無が決定できる。
一例として、現在画像が追って符号化/復号化される画像の参照画像として使用される場合、現在画像に対して前記適応的ループ内フィルタリングが行われてもよい。
他の例として、現在画像が追って符号化/復号化される画像の参照画像として使用されない場合、現在画像に対して前記適応的ループ内フィルタリングが行われなくてもよい。
別の例として、現在画像が追って符号化/復号化される画像の参照画像として使用されない場合、現在画像に対する適応的ループ内フィルタリングの際に、ブロック分類の実行なしにL個のフィルタを用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行ってもよい。ここで、Lは正の整数である。
別の例として、現在画像が追って符号化/復号化される画像の参照画像として使用されない場合、1つのフィルタ形状を用いて適応的ループ内フィルタリングを行ってもよい。
別の例として、現在画像が追って符号化/復号化される画像の参照画像として使用されない場合、1つのフィルタタップ数を用いて適応的ループ内フィルタリングを行ってもよい。
別の例として、現在画像が追って符号化/復号化される画像の参照画像として使用されない場合、N×Mブロックサイズ単位でブロック分類及びフィルタリングのうちの少なくとも一つを行ってもよい。このとき、NとMは正の整数であり、4であってもよい。
本発明の一実施形態によれば、前記適応的ループ内フィルタリングは、時間的階層識別子に基づいて実行有無が決定できる。
一例として、現在画像の時間的階層識別子が最下位階層0を指示する場合、現在画像に対して前記適応的ループ内フィルタリングが行われてもよい。
他の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、現在画像に対して前記適応的ループ内フィルタリングが行われてもよい。
別の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、現在画像に対する適応的ループ内フィルタリングの際に、ブロック分類の実行なしにL個のフィルタを用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行ってもよい。ここで、Lは正の整数である。
別の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、1つのフィルタ形状を用いて適応的ループ内フィルタリングを行ってもよい。
別の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、1つのフィルタタップ数を用いて適応的ループ内フィルタリングを行ってもよい。
別の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、N×Mブロックサイズ単位でブロック分類及びフィルタリングのうちの少なくとも一つを行ってもよい。このとき、NとMは正の整数であり、4であってもよい。
本発明の一実施形態によれば、前記ブロック分類方法のうちの少なくとも一つは、時間的階層識別子(temporal layer identifier)に基づいて実行有無が決定できる。
一例として、現在画像の時間的階層識別子が最下位階層0を指示する場合、現在画像に対して前記ブロック分類方法のうちの少なくとも一つが行われてもよい。
他の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、現在画像に対して前記ブロック分類方法のうちの少なくとも一つが行われてもよい。
別の例として、時間階層識別子の値に応じて、前記ブロック分類方法の中でも互いに異なるブロック分類方法が行われてもよい。
別の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、現在画像に対する適応的ループ内フィルタリングの際に、ブロック分類の実行なしにL個のフィルタを用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行ってもよい。ここで、Lは正の整数である。
別の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、1つのフィルタ形状を用いて適応的ループ内フィルタリングを行ってもよい。
別の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、1つのフィルタタップ数を用いて適応的ループ内フィルタリングを行ってもよい。
別の例として、現在画像の時間的階層識別子が最上位階層を指示する場合(例えば、4)、N×Mブロックサイズ単位でブロック分類及びフィルタリングのうちの少なくとも一つを行ってもよい。このとき、NとMは正の整数であり、4であってもよい。
一方、現在画像に対する適応的ループ内フィルタリングの際に、ブロック分類の実行なしにL個のフィルタを用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行うことができる。ここで、Lは正の整数である。この時、前記時間的階層識別子に関係なく、ブロック分類を行わずにL個のフィルタを用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行うことができる。
一方、現在画像に対する適応的ループ内フィルタリングの際に、ブロック分類の実行有無に関係なく、L個のフィルタを用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行うことができる。ここで、Lは正の整数である。この時、前記時間的階層識別子及びブロック分類の実行有無に関係なく、L個のフィルタを用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行うことができる。
一方、1つのフィルタ形状を用いて適応的ループ内フィルタリングを行うことができる。この際、ブロック分類を行わず、1つのフィルタ形状を用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行うことができる。又は、ブロック分類の実行有無に関係なく、1つのフィルタ形状を用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行うことができる。
一方、1つのフィルタタップ数を用いて適応的ループ内フィルタリングを行うことができる。この際、ブロック分類を行わず、1つのフィルタタップ数を用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行うことができる。又は、ブロック分類の実行有無に関係なく、1つのフィルタタップ数を用いて現在画像内の復元/復号サンプルに対して適応的ループ内フィルタリングを行うことができる。
一方、前記適応的ループ内フィルタリングは、特定の単位ごとに行われ得る。例えば、前記特定の単位は、ピクチャ、スライス、タイル、タイルグループ、CTU、CTB、CU、PU、TU、CB、PB、TB、M×Nサイズのブロックのうちの少なくとも一つの単位であり得る。ここで、MとNは正の整数であり、互いに同じ値を持つか或いは互いに異なる値を持つことができる。また、MとNのうちの少なくとも一つは、符号化器/復号化器で予め定義された値であり、符号化器から復号化器へシグナリングされる値であり得る。
一方、図39乃至図55dは副標本に基づいて横方向、縦方向、第1対角方向、第2対角方向による勾配値の和を決定する別の例である。
図39乃至図55dを参照すると、4×4輝度ブロック単位でフィルタリングが行われ得る。この際、4×4輝度ブロック単位で互いに異なるフィルタ係数を用いてフィルタリングが行われ得る。前記4×4輝度ブロックを分類するために、サブサンプリングされたラプラシアン演算が行われ得る。また、フィルタリングのためのフィルタ係数は、それぞれの4×4輝度ブロックごとに変更できる。また、それぞれの4×4輝度ブロックは、最大25個のクラスの一つに分類できる。また、4×4輝度ブロックのフィルタインデックスに対応する分類インデックスは、前記ブロックの方向性及び/又は量子化活動性値に基づいて誘導できる。ここで、それぞれの4×4輝度ブロックに対する方向性及び/又は量子化活動性値を計算するために、垂直方向、水平方向、第1対角方向及び/又は第2対角方向の各勾配値の和は、8×8ブロック範囲内のサブサンプリングされた位置で計算された1Dラプラシアン演算結果を合算することにより計算できる。
具体的には、図39を参照すると、4×4ブロック分類の場合、副標本に基づいて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる(以下、「第1方法」という。)。ここで、V、H、D1、D2は、サンプル単位で縦(垂直)方向、横(水平)方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの横方向、縦方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図39において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示すことができる。
ここで、図40a乃至図40dは前記第1方法によるブロック分類の符号化/復号化過程を示す一例である。また、図41a乃至図41dは、前記第1方法によるブロック分類の符号化/復号化過程を示す他の例である。また、図42a乃至図42dは、前記第1方法によるブロック分類の符号化/復号化過程を示す別の例である。
図43を参照すると、4×4ブロック分類の場合、副標本に基づいて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる(以下、「第2方法」という。)。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの横方向、縦方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図43において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられる。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさよりも大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示すことができる。
具体的には、第2方法は、座標x値と座標y値が全て偶数であるか、或いは座標x値と座標y値が全て奇数である場合には、前記(x,y)位置で1Dラプラシアン演算が行われることを意味することができる。もし、座標x値と座標y値が全て偶数ではないか、或いは座標x値と座標y値が全て奇数ではない場合には、前記(x,y)位置での1Dラプラシアン演算結果は0に割り当てられる。つまり、座標x値と座標y値に基づいて、チェッカー盤(checkerboard)パターンで1Dラプラシアン演算が行われることを意味することができる。
一方、図43を参照すると、前記横方向、縦方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われる位置が同一であり得る。つまり、縦方向、横方向、第1対角方向又は第2対角方向に関係なく、一つの(unified)サブサンプリングされた1Dラプラシアン演算位置を用いて前記各方向に対する1Dラプラシアン演算が行われ得る。
ここで、図44a乃至図44dは、前記第2方法によるブロック分類の符号化/復号化過程を示す一例である。また、図45a乃至図45dは、前記第2方法によるブロック分類の符号化/復号化過程を示す他の例である。また、図46a乃至図46dは前記第2方法によるブロック分類の符号化/復号化過程を示す別の例である。また、図47a乃至図47dは前記第2方法によるブロック分類の符号化/復号化過程を示す別の例である。
図48を参照すると、4×4ブロック分類の場合、副標本に基づいて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる(以下、「第3方法」という。)。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの横方向、縦方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図48において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示すことができる。
具体的には、第3方法は、座標x値及び座標y値のうちのいずれかが偶数であり、もう一つは奇数である場合、前記(x,y)位置で1Dラプラシアン演算が行われることを意味することができる。もし、座標x値及び座標y値が全て偶数であるか、或いは座標x値及び座標y値が全て奇数である場合には、前記(x,y)位置での1Dラプラシアン演算結果は0に割り当てられ得る。つまり、座標x値及び座標y値に基づいて、チェッカー盤(checkerboard)パターンで1Dラプラシアン演算が行われることを意味することができる。
一方、図48を参照すると、前記横方向、縦方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われる位置が同一であり得る。つまり、縦方向、横方向、第1対角方向又は第2対角方向に関係なく、一つの(unified)サブサンプリングされた1Dラプラシアン演算位置を用いて前記各方向に対する1Dラプラシアン演算が行われ得る。
ここで、図49a乃至図49dは前記第3方法によるブロック分類の符号化/復号化過程を示す一例である。また、図50a乃至図50dは前記第3方法によるブロック分類の符号化/復号化過程を示す他の例である。また、図51a乃至図51dは前記第3方法によるブロック分類の符号化/復号化過程を示す別の例である。
図52を参照すると、4×4ブロック分類の場合、副標本に基づいて縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの勾配値の和gv、gh、gd1、gd2のうちの少なくとも一つを計算することができる(以下、「第4方法」という。)。ここで、V、H、D1、D2は、サンプル単位で縦方向、横方向、第1対角方向、第2対角方向によるそれぞれの1Dラプラシアン演算の結果を示す。つまり、V、H、D1、D2の位置でそれぞれの横方向、縦方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われ得る。また、1Dラプラシアン演算が行われる位置がサブサンプリングできる。図52において、ブロック分類インデックスCは、陰影が表示された4×4ブロック単位で割り当てられ得る。このとき、1Dラプラシアン演算の和が計算される範囲がブロック分類単位の大きさより大きくてもよい。ここで、細い実線に含まれている四角形は、各復元サンプル位置を示し、太い実線は、1Dラプラシアン演算の和が計算される範囲を示すことができる。
具体的には、第4方法は、横方向にはサブサンプリングせずに、縦方向にのみサブサンプリングされた(x,y)位置で1Dラプラシアン演算が行われることを意味することができる。つまり、1行ずつスキップしながら1Dラプラシアン演算が行われることを意味することができる。
一方、図52を参照すると、前記横方向、縦方向、第1対角方向、第2対角方向による1Dラプラシアン演算が行われる位置が同一であり得る。つまり、縦方向、横方向、第1対角又は第2対角方向に関係なく、一つの(unified)サブサンプリングされた1Dラプラシアン演算位置を用いて前記各方向に対する1Dラプラシアン演算が行われ得る。
ここで、図53a乃至図53dは前記第4方法によるブロック分類の符号化/復号化過程を示す一例である。また、図54a乃至図54dは前記第4方法によるブロック分類の符号化/復号化過程を示す他の例である。また、図55a乃至図55dは前記第4方法によるブロック分類の符号化/復号化過程を示す別の例である。
一方、図39乃至図55dの例を介して計算された勾配値を用いて、方向性D値及び活動性A値を量子化した活動性Aq値のうちの少なくとも一つを誘導する残りの過程は、前述したループ内フィルタリング過程と類似している。
一方、前記副標本に基づいて勾配値を計算する方法は、1Dラプラシアン演算の和が計算される範囲内の全体サンプルではなく、1Dラプラシアン演算の和が計算される範囲内(例えば、8×8ブロック)の副標本サンプルに対して1Dラプラシアン演算が行われるので、ブロック分類ステップに必要な乗算演算、シフト(shift)演算、加算演算、絶対値演算などの演算数が減少する。これにより、符号化器及び復号化器の計算複雑度を減少させることができる。
前記第1方法乃至第4方法によれば、サブサンプリングされた1Dラプラシアン演算に基づいた4×4ブロック分類の場合、8×8の範囲内のサブサンプリングされた位置で計算された1Dラプラシアン演算結果であるV、H、D1、D2は、垂直方向、水平方向、第1対角方向、第2対角方向によるそれぞれの勾配値を誘導するために、各4×4輝度ブロックに対して合算される。したがって、8×8の範囲で前記勾配値の全てを計算するために、720+240回の加算、288回の比較、144回のシフトが要求される。
一方、従来のループ内フィルタリング方法によれば、4×4ブロック分類の場合、8×8の範囲内の全ての位置で計算された1Dラプラシアン演算結果であるV、H、D1、D2は、垂直方向、水平方向、第1対角方向、第2対角方向によるそれぞれの勾配値を誘導するために、各4×4輝度ブロックに対して合算される。したがって、8×8の範囲で前記勾配値の全てを計算するために、1586+240回の加算、576回の比較、144回のシフトが要求される。
そして、前記計算された勾配値を用いて方向性D値及び活動性A値を量子化した活動性Aq値を誘導する残りの過程は、8回の加算、28回の比較、8回の乗算、20回のシフトが要求される。
したがって、8×8の範囲内で前記第1方法乃至第4方法を用いたブロック分類方法は、最終的に968回の加算、316回の比較、8回の乗算、164回のシフトが要求される。また、サンプルあたりの演算は15.125回の加算、4.9375回の比較、0.125回の乗算、2.5625回のシフトが要求される。
一方、8×8の範囲内で前記従来のループ内フィルタリング方法を用いたブロック分類方法は、最終的に1832回の加算、604回の比較、8回の乗算、164回のシフトが要求される。また、サンプルあたりの演算は、28.625回の加算、9.4375回の比較、0.125回の乗算、2.5625回のシフトが要求される。
したがって、与えられたブロックサイズ(例えば、8×8の範囲)に対する計算複雑度は、前記第1方法乃至第4方法を用いたブロック分類方法が、前記従来のループ内フィルタリング方法を用いたブロック分類方法での総演算と比較して少なくとも演算数の44.17%を削減することができる。また、前記第1方法乃至第4方法を用いたブロック分類方法が、前記従来のループ内フィルタリング方法を用いたブロック分類方法における動作と比較して、少なくとも動作回数の17.02%を削減することができる。
本発明に係るコンピュータ可読記録媒体は、符号化ユニットをブロック分類単位で分類するステップと、前記符号化ユニットに対するフィルタ情報を用いて、前記ブロック分類単位で分類された符号化ユニットをフィルタリングするステップと、前記フィルタ情報を符号化するステップとを含む画像符号化方法で生成されたビットストリームを保存することができる。前記ブロック分類は、符号化ユニット単位で行われることのみに限定するのではなく、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU、TUなどの単位で行われ得る。また、前記フィルタリングの対象は、符号化ユニットに限定されるものではなく、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU、TUなどであり得る。また、前記フィルタ情報は、符号化ユニットに対してのみ限定されるものではなく、スライス、タイル、タイルグループ、ピクチャ、シーケンス、CTU、ブロック、CU、PU、TUなどに対するフィルタ情報を意味することができる。
これらの実施形態は、符号化器及び復号化器で同様の方法で行われ得る。
これらの実施形態の少なくとも一つ或いは少なくとも一つの組み合わせを用いて画像を符号化/復号化することができる。
前記実施形態を適用する順序は、符号化器と復号化器で互いに異なってもよく、符号化器と復号化器で互いに同じであってもよい。
輝度及び色差信号それぞれに対して前記実施形態を行うことができ、輝度及び色差信号に対する前記実施形態を同様に行うことができる。
本発明の実施形態が適用されるブロックの形状は、正方形(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、フラッシュメモリなどのプログラム命令を保存し実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例には、コンパイラによって作られる機械語コードだけでなく、インタプリターなどを用いてコンピュータによって実行できる高級言語コードも含まれる。前記ハードウェア装置は、本発明に係る処理を行うために一つ以上のソフトウェアモジュールとして作動するように構成でき、その逆も同様である。
以上で、本発明が、具体的な構成要素などの特定の事項、限定された実施形態及び図面によって説明されたが、これは本発明のより全般的な理解を助けるために提供されたものに過ぎず、本発明は前記実施形態に限定されるものではない。本発明の属する技術分野における通常の知識を有する者であれば、このような記載から多様な修正及び変形を図ることができる。
よって、本発明の思想は、上述した実施形態に限定されて定められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等に又は等価的に変形した全てのものは本発明の思想の範疇に属するというべきである。