(58)【調査した分野】(Int.Cl.,DB名)
前記補間は、輝度画素に対する補間であり、前記部分画素サンプルを生成するステップでは、前記基準画素サンプルの位置によって所定の現在整数サンプルが前記整数サンプル集合に含まれることを特徴とする、請求項1に記載の方法。
前記基準画素サンプルが、前記補間に使われる現在ピクチャの復元された画素サンプル領域と参照ピクチャの参照サンプル領域との間の境界から、1番目の整数画素サンプル列又は行に位置する場合には3個の現在整数サンプルが前記整数サンプル集合に含まれ、2番目の整数画素サンプル列又は行に位置する場合には2個の現在整数サンプルが前記整数サンプル集合に含まれ、3番目の整数画素サンプル列又は行に位置する場合には1個の現在整数サンプルが前記整数サンプル集合に含まれることを特徴とする、請求項2に記載の方法。
前記補間は、色差画素に対する補間であり、前記部分画素サンプルを生成するステップでは、前記基準画素サンプルの位置によって所定の現在整数サンプルが前記整数サンプル集合に含まれることを特徴とする、請求項1に記載の方法。
前記基準画素サンプルが、前記補間に使われる現在ピクチャの復元された画素サンプル領域と参照ピクチャの参照サンプル領域との間の境界から1番目の整数画素サンプル列又は行に位置する場合、一つの現在整数サンプルが前記整数サンプル集合に含まれることを特徴とする、請求項6に記載の方法。
前記明示的な指示は、画素位置情報及び参照画素サンプルの配列に対する情報と共に前記符号化器から前記復号器に伝達される1ビットのフラグ情報であることを特徴とする、請求項9に記載の方法。
前記補間は、輝度画素に対する補間であり、基準整数サンプルが前記補間に利用される参照ピクチャの参照サンプル領域の上側又は左側境界から3番目の整数サンプル行/列以内に位置する場合には、現在ピクチャの復元された整数画素サンプルを前記補間に利用することを特徴とする、請求項1に記載の方法。
前記補間は、色差画素に対する補間であり、基準整数サンプルが前記補間に利用される参照ピクチャの参照サンプル領域の上側又は左側境界から1番目の整数サンプル行/列に位置する場合には、現在ピクチャの復元された整数画素サンプルを前記補間に利用することを特徴とする、請求項1に記載の方法。
【発明を実施するための形態】
【0034】
本発明は、多様な変更を加えることができ、様々な実施例を有することができ、特定実施例を図面に例示して詳細に説明する。しかし、これは本発明を特定の実施形態に対して限定するものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであり、本発明の技術的思想を限定するために使われるものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本明細書において、“含む”又は“有する”などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを指定するものであり、一つ又はそれ以上の他の特徴、数字、ステップ、動作、構成要素、部品又はこれらを組合せたものの存在又は付加可能性を予め排除しないと理解しなければならない。
【0035】
一方、本発明で説明される図面上の各構成は、映像符号化/復号器で互いに異なる特徴的な機能に対する説明の便宜のために独立的に図示したものであり、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味しない。例えば、各構成のうち、二つ以上の構成が統合されて一つの構成になることもでき、一つの構成が複数の構成に分けられることもできる。各構成が統合及び/又は分離された実施例も本発明の本質から外れない限り本発明の権利範囲に含まれる。
【0036】
以下、添付図面を参照して、本発明の好ましい実施例をさらに詳細に説明する。以下、図面上、同一の構成要素に対しては同一の参照符号を使用し、同一の構成要素に対して重複した説明は省略する。
【0037】
図1は、本発明の一実施例に係る映像符号化器を概略的に示すブロック図である。
図1を参照すると、映像符号化器100は、ピクチャ分割部105、予測部110、変換部115、量子化部120、再整列部125、エントロピー符号化部130、逆量子化部135、逆変換部140
、フィルタ145
、及びメモリ
150を備える。
【0038】
ピクチャ分割部105は、入力されたピクチャを少なくとも一つの処理単位に分割することができる。このとき、処理単位は、予測ユニット(Prediction Unit)であってもよく、変換ユニット(Transform Unit:TU)であってもよく、符号化ユニット(Coding Unit:CU)であってもよい。映像符号化器100は、後述のように、予測ユニット単位に画面内予測又は画面間予測を実行し、変換ユニット単位に映像を変換し、符号化ユニット単位に映像を符号化する。
【0039】
予測部110は、後述のように、画面間予測を実行する画面間予測部と画面内予測を実行する画面内予測部を含む。予測部110は、ピクチャ分割部105から提供された予測単位に対して予測モードによって画面間予測又は画面内予測を実行して予測ブロックを生成する。生成された予測ブロックと原本ブロックとの間の残差値は、変換部115に入力される。また、予測のために使用した予測モード情報、動きベクトル情報などは、残差値と共にエントロピー符号化部130で符号化されて復号器に伝達される。
【0040】
変換部115は、現在符号化ユニットを少なくとも一つの変換ユニットに分割することができる。このとき、変換部115は、送信費用を算出する所定の費用関数を利用して最適の送信単位を選択することができる。変換部115では、原本ブロックと予測部110を介して生成された予測ブロックとの残差値(residual)情報を含む残差ブロックをDCT(Discrete Cosine Transform)及び/又はDST(Discrete Sine Transform)を利用して変換することができる。変換部115では、符号化ユニットに基づいて変換ユニットを決定することができる。
【0041】
量子化部120は、変換部115で周波数領域に変換された残差値を量子化することで、量子化係数を生成することができる。量子化部120で算出された値は、逆量子化部
135と再整列部125に提供される。
【0042】
再整列部125は、量子化係数を再整列する。量子化係数を再整列することによってエントロピー符号化部130での符号化の効率を上げることができる。再整列部125は、係数スキャニング(Coefficient Scanning)方法を介して2次元ブロック形態の係数(残差値)を1次元のベクトル形態で再整列することができる。再整列部125では、量子化部で送信された係数の確率的な統計に基づいて係数スキャニングの順序を変更することによってエントロピー符号化部130でのエントロピー符号化効率を上げることができる。
【0043】
エントロピー符号化部130は、再整列部125により再整列された量子化係数に対するエントロピー符号化を実行することができる。エントロピー符号化には、例えば、指数ゴロム(Exponential Golomb)、CAVLC(Context−Adaptive Variable Length Coding)、CABAC(Context−Adaptive Binary Arithmetic Coding)のような符号化方法を使用することができる。エントロピー符号化部130は、再整列部125及び予測部110から伝達された符号化ユニットの量子化係数情報及びブロックタイプ情報、予測モード情報、分割単位情報、予測ユニット情報及び送信単位情報、動きベクトル情報、参照フレーム情報、ブロックの補間情報、フィルタリング情報など、多様な情報を符号化することができる。
【0044】
例えば、エントロピー符号化部130で動きベクトル情報を符号化する場合には、マージスキップ(Merge Skip)方法、予測ユニットマージ(PU Merge)方法、AMVP(Advanced Motion Vector Prediction)方法などを使用することができる。
【0045】
マージスキップ(Merge Skip)方法は、現在ブロックの周辺ブロック(マージ候補ブロック)の中から選択したブロック(マージブロック)の動き予測情報(動きベクトル、参照ピクチャインデックス等)を使用して予測ブロックを生成する方法である。マージスキップの場合は、残差信号が0であるが、同一に候補ブロックの動き予測関連情報を使用する予測ユニットマージ方法の場合には残差信号が0ではない。マージスキップ方法の場合にはスキップするという情報とマージブロックのインデックスなどが符号化されて送信され、予測ユニットマージ方法の場合にはマージブロックのインデックスと共に残差信号などが符号化されて送信される。
【0046】
AMVP方法も、AMVP候補ブロックから動き予測関連情報の提供を受けることができる。AMVP方法の場合、候補ブロックは、同一ピクチャ内の周辺ブロックだけでなく、参照ピクチャの同一位置に対応する(co−located)ブロックを含む。したがって、AMVP方法を使用する場合には参照ピクチャインデックスと共に動きベクトル予測子(Motion Vector Predictor)と動きベクトルの残差値を符号化して符号化器に伝達する。動きベクトルの残差値は、選択されたAMVP候補ブロックと現在予測ユニットとの間の動きベクトル差分値である。
【0047】
逆量子化部135は、量子化部120で量子化された値を逆量子化し、逆変換部140は、変換部115で変換された値を逆変換する。逆量子化部135及び逆変換部140で生成された残差値(Residual)は、予測部110で予測された予測ブロックと合わせられて復元ブロック(Reconstructed Block)を生成することができる。
【0048】
フィルタ部145は、デブロッキングフィルタ及び/又はALF(Adaptive Loop Filter)を復元されたピクチャに適用する。
【0049】
デブロッキングフィルタは、復元されたピクチャでブロック間の境界に発生したブロック歪曲を除去することができる。
【0050】
ALF(Adaptive Loop Filter)は、デブロッキングフィルタを介してブロックをフィルタリングした後、復元された映像と元来の映像を比較した値に基づいてフィルタリングを実行することができる。輝度信号の場合、ALFを適用するかどうかに関連した情報を符号化ユニット(Coding Unit、CU)別に送信することができ、それぞれのブロックによって適用されるALFの大きさ及び係数は変わることができる。
【0051】
一方、画面間予測に使われる復元ブロックに対し、フィルタ部145は、フィルタリングを適用しない。
【0052】
メモリ150は、フィルタ部145を介して算出された復元ブロック又はピクチャを記憶することができる。メモリ150に記憶された復元ブロック又はピクチャは、画面間予測を実行する予測部110に提供することができる。
【0053】
以下、符号化器の各構成で実行される映像情報の符号化に対する処理に対してさらに具体的に説明する。
【0054】
まず、ピクチャの符号化ユニット、予測ユニット、及び変換ユニットに対して説明する。ピクチャの分割単位である符号化ユニットは、映像符号化器で符号化を実行する一つの単位であり、CU(Coding Unit)という用語で使われることもできる。符号化ユニットは、64×64、32×32、16×16、8×8などの大きさを有することができる。符号化ユニットは、クアッドツリー構造(Quad Tree Structure)に基づいて深さ(Depth)を有して分割することができる。最大大きさの符号化ユニットに対して最大符号化ユニット(Largest Coding Unit、LCU)、最小大きさの符号化ユニットに対して最小符号化ユニット(Smallest Coding Unit、SCU)という用語を使用することもできる。符号化器は、最大符号化ユニットと最小符号化ユニットに対する情報を復号器に送信することもでき、最大符号化ユニット又は最小符号化ユニットに対する情報のうちいずれか一つの情報と分割可能な回数に対する情報(深さ情報)とを復号器に送信することもできる。
【0055】
符号化ユニットが前述したように、クアッドツリー構造に基づいて分割されたかどうかは分割フラグ(Split Flag)のようなフラグ情報で表現することができる。
【0056】
図2は、本発明の一実施例によって、最大符号化ユニットが少なくとも一つの符号化ユニットに分割されることを概略的に示す概念図である。一つの符号化ユニットは、深さ情報と分割フラグ(Split Flag)を利用して符号化ユニットの分割可否を表現することができる。
【0057】
一つの符号化ユニットは、LCUの大きさ情報及び深さ情報及び分割フラグ情報に基づいて複数個の小さい符号化ユニットに分割することができる。最大符号化ユニットの大きさ情報、分割深さ情報、及び現在符号化ユニットの分割可否情報は、ビットストリーム上のシーケンスパラメータセット(SPS)に含まれて現在符号化ユニットの分割情報を映像復号器に送信することができる。
【0058】
図2を参照すると、S200は、最大符号化ユニット(LCU)の大きさが64×64であり、クアッドツリー構造で深さが0の場合を示す。S200において、左側のブロックは、分割可否を表示するフラグが0の場合であって、クアッドツリー構造で深さ0のブロック(最大符号化ユニット)が分割されないことを示す。S200において、右側のブロックは、分割可否を表示するフラグが1の場合であって、深さ0のブロックが32×32大きさの正四角形の4個の符号化ユニットに分割されたことを示す。
【0059】
S210は、最大符号化ユニットの大きさが64×64の場合、1回の分割が発生した深さ1のブロックを示す。深さ1の符号化ユニット大きさは、32×32となる。S210において、左側のブロックは、分割フラグが0の場合であって、32×32大きさの符号化ユニットは、分割されずに一つの単位に符号化される。S210において、右側のブロックは、分割フラグが1の場合であって、32×32大きさの符号化ユニットは、4個の同一大きさを有する16×16大きさの符号化ユニットに分割される。
【0060】
同様の方式により、クアッドツリー構造で一つのブロックは、深さ情報によって最小大きさの符号化ユニットまで順次に分割することができる。例えば、S220は、最大符号化ユニットの大きさが64×64であり、最大深さが4(分割可能回数が4)の場合の最小大きさの符号化ユニットまで符号化されたことを示す。ここで、最小符号化ユニットは、これ以上小さいCUに分割することができないため、分割フラグが存在しない。
【0061】
説明の便宜上、最大符号化ユニットとそれによる分割可能回数(最大深さ)が定義されると説明したが、前述したように、最小符号化ユニットと分割可能回数(最大深さ)を定義することも可能である。例えば、最小符号化ユニットが8×8であり、分割可能回数が4に設定された場合、最小符号化ユニット(8×8)から逆に最大符号化ユニット(64×64)を導出することができる。また、ここでは最大符号化ユニットと最小符号化ユニットを各々64×64及び8×8であると説明したが、これは説明の便宜のためのものに過ぎず、最大符号化ユニットと最小符号化ユニットは、前述した例より大きくなってもよく、小さくなってもよい。
【0062】
図3は、本発明の一実施例に係る予測部を概略的に示す概念図である。
【0063】
図3を参照すると、予測部300は、画面間予測部310及び画面内予測部320を含むことができる。
【0064】
画面間予測部310は、現在ピクチャの以前ピクチャ及び/又は以後ピクチャのうち、少なくとも一つのピクチャの情報に基づいて予測ユニットを予測することができる。また、画面内予測部320は、現在ピクチャ内の画素情報に基づいて予測ユニットを予測することができる。予測モードによって、すなわち、画面内予測を実行するか、画面間予測を実行するかによって、ピクチャ分割部105は、予測ユニットを分割し、画面内予測モードである場合、該当符号化ユニットは、2N×2N又はN×N(Nは、整数)大きさの予測ユニットであり、画面間予測モードである場合、該当符号化ユニットは、2N×2N、2N×N、N×2N、又はN×N大きさの予測ユニットである。
【0065】
図4は、予測モードによる予測ブロックの形態を概略的に示し、符号化ユニット400に対し、画面内予測モードである場合に可能な予測ユニット410と、画面間予測モードである場合に可能な予測ユニット420とを示している。
【0066】
画面間予測部は、前述した予測ユニットに対して、参照ピクチャを選択し、予測ユニットと同一大きさの参照ブロックを整数画素サンプル単位に選択する。次に、画面間予測部は、1/2画素サンプル単位と1/4画素サンプル単位のように整数以下サンプル単位に、現在予測ユニットと最も類似して残差信号が最小化され、符号化される動きベクトル大きさも最小となることができる予測ブロックを生成する。
【0067】
このとき、動きベクトルは、整数画素以下の単位に表現することができ、例えば、輝度画素に対しては1/4画素単位に表現され、色差画素に対しては1/8画素単位に表現することができる。
【0068】
画面間予測部で選択した参照ピクチャのインデックスと動きベクトルに対する情報は、符号化されて復号器に伝達される。
【0069】
図5は、本発明の一実施例に係る映像復号器を概略的に示すブロック図である。
図5を参照すると、映像復号器500は、エントロピー復号部510、再整列部515、逆量子化部520、逆変換部525、予測部530、フィルタ部535、メモリ540を含むことができる。
【0070】
映像符号化器において、映像ビットストリームが入力された場合、入力されたビットストリームは、映像符号化器と反対の手順に復号することができる。
【0071】
例えば、エントロピー復号部510でも、映像符号化器でエントロピー符号化を実行するために使われたVLCテーブルを、エントロピー復号部でも同一のVLCテーブルで具現してエントロピー復号を実行することができる。エントロピー復号部510でも、エントロピー符号化部と同様に、カウンター(Counter)又は直接変換(Direct Swapping)方法を利用してコードワード割当テーブルを変化させることができ、変化されたコードワード割当テーブルに基づいてエントロピー復号を実行することができる。
【0072】
エントロピー復号部510で復号された情報のうち、予測ブロックを生成するための情報は、予測部530に提供され、エントロピー復号部でエントロピー復号を実行した残差値は、再整列部515に入力することができる。
【0073】
再整列部515は、エントロピー復号部510でエントロピー復号されたビットストリームを、符号化部で再整列した方法に基づいて再整列を実行することができる。1次元ベクトル形態で表現された係数を再び2次元のブロック形態の係数に復元して再整列することができる。再整列部515では、符号化部で実行された係数スキャニングに関連した情報の提供を受け、該当符号化部で実行されたスキャニング順序に基づいて逆にスキャニングする方法を介して再整列を実行することができる。
【0074】
逆量子化部520は、符号化器で提供された量子化パラメータと再整列されたブロックの係数値に基づいて逆量子化を実行することができる。
【0075】
逆変換部525は、映像符号化器で実行した量子化結果に対して変換部で実行したDCT及びDSTに対して逆DCT及び/又は逆DSTを実行することができる。逆変換は、映像符号化器で決定された送信単位に基づいて実行することができる。映像符号化器の変換部では、DCTとDSTは、予測方法、現在ブロックの大きさ、及び予測方向など、複数の情報によって選択的に実行することができ、映像復号器の逆変換部525では、映像符号化器の変換部で実行された変換情報に基づいて逆変換を実行することができる。
【0076】
例えば、4×4ブロックの場合、逆変換部525では、該当ブロックのイントラ予測モードによって逆DCT又は逆DSTを選択的に使用して逆変換を実行し、又はDCTとDSTを組合せて1D−DCT+1D−DCT、1D−DCT+1D−DST、1D−DST+1D−DCT又は1D−DST+1D−DSTを選択的に適用することもできる。該当ブロックのイントラ予測モード情報は、予測部から提供することができる。逆変換部525では、映像符号化器で提供された分割単位情報に基づいて分割単位に逆変換を実行することができる。
【0077】
予測部530は、エントロピー復号部510で提供された予測ブロック生成関連情報とメモリ540で提供された以前に復号されたブロック又はピクチャ情報に基づいて予測ブロックを生成することができる。予測部530で生成された予測ブロックと逆変換部
525で提供された残差ブロックを利用して復元ブロックを生成することができる。
【0078】
復元されたブロック及び/又はピクチャは、フィルタ部535に提供することができる。フィルタ部535は、復元されたブロック及び/又はピクチャにデブロッキングフィルタリング及び/又は適応的ループフィルタリングなどを適用する。例えば、フィルタ部535は、デブロッキングフィルタ部及び/又はALFを含むことができる。
【0079】
メモリ540は、復元されたピクチャ又はブロックを記憶して参照ピクチャ又は参照ブロックとして使用するようにすることができ、また、復元されたピクチャを出力部に提供することができる。
【0080】
図6は、本発明の一実施例に係る映像復号器の予測部を概略的に示す概念図である。
【0081】
図6を参照すると、予測部600は、画面間予測部610及び画面内予測部620を含むことができる。
【0082】
画面間予測部610は、該当予測ユニットに対する予測モードがインター予測モード(画面間予測モード)の場合、映像符号化器で提供された現在予測ユニットの画面間予測に必要な情報、例えば、動きベクトル、参照ピクチャインデックスなどに対する情報を利用して現在予測ユニットが含まれている現在ピクチャの以前ピクチャ又は以後ピクチャのうち、少なくとも一つのピクチャに含まれている情報に基づいて現在予測ユニットに対する画面間予測を実行することができる。
【0083】
このとき、動き情報は、受信される符号化ユニットのスキップフラグ、マージフラグなどを確認し、これに対応して誘導することができる。例えば、エントロピー復号部でスキップフラグを介してスキップモードが適用されたと確認された場合には、予測ユニットのマージインデックス(Merge Index)が指示するマージスキップ候補ブロックに含まれている動きベクトル、参照ピクチャインデックスなどのような動き予測関連情報が現在予測ユニットの動き関連情報として使われることができる。または、予測ユニットが予測ユニットマージブロックであると確認された場合には、予測ユニット周辺に位置した4個の空間的マージング候補ブロック及び参照ピクチャに位置した1個の時間的マージング候補ブロックを含む5個の予測ユニットマージ候補ブロックのうち、一つの予測ユニットマージ候補ブロックの動き関連情報が予測ユニットの動き関連情報として使われることができる。また、予測ユニットがAMVPブロックであると確認された場合には、映像符号化器から現在予測ユニット周辺の空間的AMVP候補ブロック2個及び他のピクチャに含まれている時間的AMVP候補ブロックのうちいずれのAMVP候補ブロックを使用したかに関連した情報及び使われたAMVP候補ブロックと現在ブロックとの動きベクトル差分値情報を利用して予測ユニットの動き情報を得ることができる。
【0084】
画面間予測部610は、前述したように、取得した該当予測ユニットに対する動き関連情報のうち、動きベクトルが整数画素単位でない場合、例えば、輝度画素に対する動きベクトルが1/2又は1/4画素位置を示す場合、又は色差画素に対する動きベクトルが1/2、1/4又は1/8画素位置を示す場合、予測ブロックを生成するために整数単位以下の画素サンプルを生成する補間を実行することができる。補間の具体的な内容は後述する。
【0085】
画面内予測部620は、該当予測ユニットに対する予測モードがイントラ予測モード(画面内予測モード)の場合、現在ピクチャ内の画素情報に基づいて予測ブロックを生成することができる。
【0086】
図6では説明の便宜のために予測部600が各機能別構成を含むと説明したが、本発明はこれに限定されるものではなく、予測部は前述した機能を遂行する単一構成で具現することもできる。
【0087】
一方、画面間予測ではブロックベースの動き補償を利用して以前に処理された一つ又はそれ以上のピクチャ(参照ピクチャ)から予測ブロックを生成することができる。すなわち、現在ピクチャの予測ユニットは、参照ピクチャに基づいて画面間予測を介して予測することができる。例えば、現在予測ユニットに対する動き推定を介して参照ピクチャから予測ブロックを選択し、現在予測ユニットの基準位置と予測ブロックの基準位置との間の動きベクトルを算出する。
【0088】
動きベクトル(現在ブロックと参照ブロックとの間の差分値)は、整数単位以下のサンプル解像度を有することができ、例えば、輝度成分に対して1/4サンプルの解像度を有し、色差成分に対して1/8の解像度を有することができる。したがって、補間を介して整数サンプル(full−sample)から1/2単位画素サンプル、1/4単位画素サンプル、1/8単位画素サンプルのような部分サンプルを生成し、部分サンプルを含む領域で予測ブロックを選択することによって、現在予測ユニットにさらに類似している予測ブロックを選択することができる。
【0089】
整数単位以下の部分画素サンプル(fractional sample)は、フルサンプルに基づいて補間フィルタを介して生成することができる。前述したように、輝度画素の場合、動きベクトルの解像度は1/4画素サンプルであり、補間を介して1/4画素単位に整数以下単位の画素情報を生成することができる。輝度画素に対する補間を実行するために、フィルタ係数を異なるようにする8タブ補間フィルタ(DCT−based Interpolation Filter)を使用することができる。
【0090】
また、色差画素の場合、動きベクトルの解像度は、1/8画素サンプルであり、補間を介して1/8画素単位に整数以下単位の画素情報を生成することができる。色差画素の補間を実行するために、フィルタ係数を異なるようにする4タブ補間フィルタを使用することができる。
【0091】
図7は、画面間予測において参照ピクチャの輝度画素の1/4単位サンプル補間に対する整数サンプルと分数サンプルの位置を概略的に示す。
図7に示す画素の位置700のうち、陰影で表示(大文字で表示)された位置は整数サンプルに対応し、陰影無しに表示(小文字で表示)された位置は分数サンプルに対応する。
【0092】
図7を参照すると、一つの整数画素サンプルを基準にする領域内に1/4画素単位の部分画素サンプルが補間により生成される。以下、説明の便宜のために、整数画素サンプルA
0,0を基準にする領域710内に部分画素サンプルが補間により生成される場合を例示して説明する。
【0093】
以下の表1は、輝度画素の整数画素単位以下の画素情報を生成するために適用するフィルタにおいて、画素位置による係数の一例を示す。
【0095】
表1を参照すると、
図7の1/4画素単位のサンプルa
0,0、b
0,0、c
0,0、d
0,0、h
0,0、及びn
0,0は、近接した整数サンプルに8タブフィルタを適用し、フィルタリングされた値をクリップ(clip)演算することで、数式1のように算出することができる。
【0097】
ここで、クリップ(Clip)演算は、数式2のように定義される。
【0099】
また、“x<<y”は、xの2の補数(two’s complement integer)表現を二進数単位yほど算術的に左側移動することを示し、“x>>y”は、xの2の補数表現を二進数単位yほど算術的に右側移動することを示す。また、shift1は、BitDepth
y−8に設定され、輝度画素配列のサンプルのビット深さ(bit depth)を特定する。Offset1は、shift1の値が0の場合、0に設定され、その他の場合には1<<(shift1−1)に設定される。
【0100】
また、
図7の1/4画素単位のサンプルe
0,0、f
0,0、g
0,0、i
0,0、j
0,0、k
0,0、p
0,0、q
0,0、及びr
0,0も8タブフィルタを適用して数式3のように算出することができる。
【0102】
ここで、shift2は、BitDepth
y−2に定義され、offset2は、1<<(shift2−1)に設定される。また、
図7に示すような中間値d1
i,0、h1
i,0、及びn1
i,0は、数式4のように算出することができる。
【0104】
ここで、iは水平方向に−3,...,4の値を有し、A
i,jは、
図15のような整数サンプルの配列においてi列及びj行に位置する整数サンプルを示す。
【0105】
数式1、数式3及び数式4では、1/4画素位置のサンプルに対して{−1,4,−10,57,19,−7,3,−1}、2/4画素位置のサンプルに対して{−1,4,−11,40,40,−11,4,−1}、3/4画素位置のサンプルに対して{−1,3,−7,19,57,−10,4,−1}の係数が表1の例によって適用された。
【0106】
前述した整数位置サンプルA
0,0の近隣領域にある部分サンプルを算出する方法は、他の整数サンプルA
i,jの近隣領域にある1/4画素単位の部分サンプルを算出する場合にも同一に適用することができる。
【0107】
以下、画素サンプルの位置を算出する方法を説明する。輝度画素に対する参照ピクチャサンプル配列内で各輝度サンプルA
i,jに対応する位置(xA
i,j,yA
i,j)は、数式5の通りである。
【0109】
ここで、PicWidthInSamples
Lは、輝度画素に対する参照ピクチャサンプル配列の幅を特定し、PicHeightInSamples
Lは、輝度画素に対する参照ピクチャサンプル配列の高さを特定する。また、(xInt
L,yInt
L)は、フルサンプル単位(full−sample units)で表した輝度画素の位置である。これに対し、(xFrac
L,yFrac
L)は、部分サンプル単位で表した輝度画素の位置である。(xInt
L,yInt
L)と(xFrac
L,yFrac
L)は、以下のように算出することができる。
【0112】
ここで、xP=xC+xBであり、yP=yC+yBである。(xC,yC)は、現在ピクチャの左側最上端(top left)の輝度画素サンプルに対する現在コーディングユニットの左側最上端の輝度画素サンプルの位置を特定し、(xB,yB)は、現在コーディングユニットの左側最上端の輝度画素サンプルに対する現在予測ユニットの左側最上端の輝度画素サンプルの位置を特定する。(xP,yP)は、参照サンプル配列の左上側(upper left)の輝度画素サンプル位置に対する現在予測ユニットの左上側の輝度画素サンプルの位置をフルサンプル単位で表したものである。
【0113】
また、(x
L,y
L)は、予測輝度サンプル配列内の輝度サンプルの位置を示し、mvLXは、輝度画素に対する動きベクトルであり、“&”は、ビット積(bitwise AND)演算子である。
【0114】
部分サンプル単位(fractional sample units)の輝度画素位置オフセット(xFrac
L,yFrac
L)は、ある部分サンプル位置に生成された画素サンプルが補間による予測輝度サンプル値(predicted luma sample value)に割り当てられるかを特定する。表2は、部分サンプル単位の輝度画素位置オフセットと輝度予測サンプル値の割当に対する一例を示す。
【0116】
ここで、shift3は、14−BitDepth
yに設定される。したがって、前述した補間方法によると、与えられたフルサンプル単位の画素位置、部分サンプル単位の画素位置、及び参照サンプル配列に基づいて表2のように予測輝度サンプル値を得ることができる。
【0117】
輝度画素の場合と違って、色差画素の場合には動きベクトルの解像度が1/8サンプルであり、補間を介して1/8画素単位に整数画素以下の画素情報を生成することができる。色差画素に対する補間を実行するために、フィルタ係数を異なるようにするDCTベースの4タブ補間フィルタ(DCT−based Interpolation Filter)が使われることができる。
【0118】
図8は、色差画素の1/8単位サンプル補間に対する整数サンプルと分数サンプルの位置を概略的に示す。
図8に示す画素の位置800のうち、陰影で表示(大文字で表示)された位置は整数サンプルに対応し、陰影無しに表示(小文字で表示)された位置は分数サンプルに対応する。
【0119】
図8を参照すると、
図7の場合と同様に、一つの整数画素サンプルを基準にする領域内に部分画素サンプル、具体的には1/8画素単位の部分画素サンプルが補間により生成される。以下、説明の便宜のために、整数画素サンプルB
0,0を基準にする領域810内に補間により部分画素サンプルが生成される場合を例示して説明する。
【0120】
表3は、色差画素の整数画素単位以下の画素情報を生成するための画素の位置によるフィルタ係数の一例を示す。
【0122】
表3を参照すると、
図8の1/8画素単位のサンプルab
0,0、ac
0,0、ad
0,0、ae
0,0、af
0,0、ag
0,0、及びah
0,0は、近接した整数位置サンプルに4タブフィルタを適用し、フィルタリングされた値をクリップ(clip)演算することで、数式8のように算出することができる。
【0124】
また、
図8の1/8画素単位のサンプルba
0,0、ca
0,0、da
0,0、ea
0,0、fa
0,0、ga
0,0、及びha
0,0も近接した整数位置サンプルに4タブフィルタを適用し、フィルタリングされた値をクリップ(clip)演算することで、数式9のように算出することができる。
【0126】
図8の1/8画素単位のサンプルXb
0,0、Xc
0,0、Xd
0,0、Xe
0,0、Xf
0,0、Xg
0,0、及びXh
0,0(Xは、各々、b、c、d、e、f、g、h)は、中間値ba
i,0、ca
i,0、da
i,0、ea
i,0、fa
i,0、ga
i,0、ha
i,0(iは、水平方向に−1,...,2)を数式10のように算出し、近接した整数位置サンプルに4タブフィルタを適用して得ることができる。
【0128】
そして、Xb
0,0、Xc
0,0、Xd
0,0、Xe
0,0、Xf
0,0、Xg
0,0、及びXh
0,0(Xは、各々、b、c、d、e、f、g、h)は、4タブフィルタを中間値Xa
i,o(iは、水平方向に−1,...,2)に適用し、数式11のように算出することができる。
【0130】
数式8乃至数式11では、1/8画素位置のサンプルに対して{−3,60,8,−1}、2/8画素位置のサンプルに対して{−4,54,16,−2}、3/8画素位置のサンプルに対して{−5,46,27,−4}、4/8画素位置のサンプルに対して{−4,36,36,−4}、5/8画素位置のサンプルに対して{−4,27,46,−5}、6/8画素位置のサンプルに対して{−2,16,54,−4}、7/8画素位置のサンプルに対して{−1,8,60,−3}の係数が表3の例によって適用された。
【0131】
動きベクトルを算出するために、色差画素の場合にも整数サンプル及び部分サンプルの位置を算出する必要がある。色差画素に対する参照ピクチャサンプル配列内で各色差サンプルB
i,jに対応する位置(xB
i,j,yB
i,j)は数式12の通りである。
【0133】
ここで、PicWidthInSamples
Cは、色差画素に対する参照ピクチャサンプル配列の幅を特定し、PicHeightInSamples
Cは、色差画素に対する参照ピクチャサンプル配列の高さを特定する。(xInt
C,yInt
C)は、フルサンプル単位(full−sample units)で表した色差画素サンプルの位置である。これに対し、(xFrac
C,yFrac
C)は、部分サンプル単位で表した色差画素サンプルの位置である。(xInt
C,yInt
C)と(xFrac
C,yFrac
C)は、以下のように算出することができる。
【0136】
ここで、(x
C,y
C)は、予測色差サンプル配列内の色差サンプルの位置を示し、mvCLXは、色差画素に対する動きベクトルである。
【0137】
部分サンプル単位(fractional sample units)の色差画素位置を示すオフセット(xFrac
C,yFrac
C)は、あるフルサンプル及び部分サンプル位置に生成された色差サンプルが補間による予測色差サンプル値(predicted chroma sample value)に割り当てられるかを特定する。表4は、部分サンプル単位の色差画素位置オフセットと色差予測サンプル値の割当に対する一例を示す。
【0139】
ここで、shift3は、14−BitDepth
yに設定される。ここで、(X,Y)は、(1,b)、(2,c)、(3,d)、(4,e)、(5,f)、(6,g)、及び(7,h)に各々代替することができる。
【0140】
前述した補間方法によると、与えられたフルサンプル単位の画素位置、部分サンプル単位の画素位置、及び参照サンプル配列に基づいて表4のように予測色差サンプル値を得ることができる。このように、補間により生成された予測サンプル値と対応する画素の位置を介して、予測ブロックを選択し、動きベクトルを算出することによって、予測性能を向上させることができる。
【0141】
一方、前述したように、補間を介して画面間予測のための予測ブロックと動きベクトルを生成する場合、参照ピクチャの画素サンプルのみを利用して補間を実行せずに、参照ピクチャの画素サンプルと現在ピクチャの画素サンプルを共に利用して補間(interpolation)を実行することを考慮することができる。現在ピクチャの画素サンプルを利用して補間を実行することによって現在ブロックとさらに類似している予測ブロックを生成することができる。
【0142】
図9は、本発明によって、参照ピクチャと現在ピクチャのサンプルを共に利用して補間を実行することを概略的に説明する図面である。
【0143】
図9において、予測ユニット935と参照ブロック920との間の位置の差は、動きベクトル(MV)で表すことができる。
図9を参照すると、現在ピクチャ930の予測ユニット935に対する予測ブロックを生成するために、予測ユニット935に対応する参照ピクチャ910の参照ブロック920と参照ブロック920周囲の画素領域915、及び現在ピクチャ930で予測ユニット935周囲の復元された画素領域940に基づいて画面間予測のための補間を実行することができる。補間を介して、整数単位の以下の部分サンプル(fractional sample)、例えば、1/2画素、1/4画素などを生成することができる。
【0144】
図10は、本発明によって、復元された現在ピクチャの画素サンプルと参照ピクチャの画素サンプルで構成された補間のためのサンプル配列を概略的に示す。
図10では予測ユニットが8×8ブロックである場合を本発明の一例として説明している。
【0145】
図10を参照すると、参照対象ブロック(O)、参照対象ブロックの右側ブロック(R)、左下側ブロック(BL)、下側ブロック(B)、右下側ブロック(BR)等の画素サンプル(陰影)は、参照ピクチャの整数サンプルであり、左側ブロック(L)、左上側ブロック(UL)、上側ブロック(U)、右上側ブロック(UR)の画素サンプル(非陰影)は、現在ピクチャの復元された整数サンプルである。
【0146】
以下、説明の便宜のために、補間により部分サンプルが生成される領域、例えば、
図7の領域710、
図8の領域810に対応する領域を補間領域という。また、補間領域内の整数画素サンプル、例えば、
図7のA
0,0、
図8のB
0,0に対応する整数画素サンプルを基準整数サンプルという。したがって、与えられた基準整数サンプルに対して対応する補間領域内の部分画素サンプルが補間により生成することができる。
【0147】
前述したように、本発明では現在ピクチャの復元された整数画素サンプルと参照ピクチャの整数画素サンプルを共に利用して補間を実行する。例えば、
図10が輝度画素サンプルの配列と仮定すると、8タブの補間フィルタを使用して部分画素サンプル(fractional sample)を生成することができる。数式1を参照すると、現在ピクチャの整数画素サンプルのうち最大3個の整数画素サンプルが、補間フィルタが適用される整数画素サンプル1010、1020に含まれることができる。
【0148】
したがって、輝度画素の場合、参照ブロック(O)のブロック境界から最も近い3個の整数画素サンプルのうちいずれか一つを基準整数サンプルとして利用して補間を実行する場合に現在ピクチャの復元された整数画素サンプルが利用することができる。すなわち、輝度画素の場合、参照ブロックの部分画素サンプルを生成する補間に利用することができる現在ピクチャの整数画素サンプル個数は最大3個である。
【0149】
色差画素の場合には、部分サンプルの生成に4タブの補間フィルタを使用することができるため、数式8を参考すると、参照ブロックの部分画素サンプルを生成する補間に利用することができる現在ピクチャの整数画素サンプル個数は一つである。すなわち、色差画素の場合には、参照ブロック(O)のブロック境界から最も近い整数画素サンプルを基準整数サンプルとして利用して補間を実行する場合に現在ピクチャの復元された整数画素サンプルが利用することができる。
【0150】
以下、本発明による補間方法を基準整数サンプルの位置及び現在ピクチャの整数画素サンプルを利用して生成される部分画素サンプルの位置と関連して具体的に説明する。下記の各場合において共通の内容に対しては、説明の便宜のために重複記載せずに省略する。
【0151】
1.部分画素サンプルa、b、c又はabの生成及び基準整数サンプルが参照ブロックの第1の整数サンプル列に位置する場合
【0152】
図11は、予測ユニット(PU)1110に対応する参照ブロックで整数単位以下の部分サンプルを生成するための基準整数サンプルが参照ブロックの左側境界から1番目の整数サンプル列(第1の整数サンプル列)1120に位置する場合の例を概略的に説明する図面である。
図11において、P0,...,P7は、整数画素(値)を示し、P0,...,P7は、輝度画素であってもよく、色差画素であってもよい。
図11では予測ユニットが8×8ブロックである場合を例示して説明している。
【0153】
以下、
図11に対する実施例をP0,...,P7が輝度画素である場合と色差画素である場合とに分けて説明した後、本発明による補間を実行する前に適用することができる前処理に対して説明する。
【0155】
輝度画素サンプルの場合、補間領域1130には
図7の領域710内のa
0,0〜r
0,0のように、補間により部分画素サンプルが1/4画素単位に生成される。
【0156】
輝度画素サンプルの場合、8タブ補間フィルタを使用することができる。説明の便宜のために、補間フィルタに使用する8個の整数画素をP0、P1、P2、P3、P4、P5、P6、P7という。基準整数サンプル(P3)の位置が参照ブロック内の1番目の整数画素サンプル列にあるため、復元された現在ピクチャの画素サンプルのうち、3個を補間に利用することができる。
図11を参照すると、整数画素サンプルP0、P1、P2が復元された現在ピクチャの画素として補間に利用される。
【0157】
図12は、
図11の補間領域1130を輝度画素サンプルに対して示し、補間領域1130A内の部分画素サンプルと整数画素サンプルとの位置関係を概略的に示している。本実施例で基準整数画素はP3であり、補間領域内に部分画素サンプルa〜rが補間により生成される。
【0158】
補間に使われるフィルタの係数は、多様に決めることができる。例えば、数式1の導出に利用されたフィルタ係数を一例として利用すると、部分画素サンプルのうち、a、b、cは、数式15のように算出することができる。
【0160】
一方、参照ブロック1110の上側境界から3番目の行までの整数画素サンプルを基準整数サンプルにする場合には、現在ピクチャの復元された整数画素サンプルを利用して部分画素サンプルd、h、nを生成することができる。この場合に対しては後述する。また、基準整数サンプルが参照ブロック1110の上側境界から4番目の行以後に位置する場合には、参照ピクチャの整数画素サンプルを利用して算出することができる。一例として、参照ピクチャの整数画素サンプルに数式1を適用して部分画素サンプルd、h、nを算出することができる。
【0161】
部分画素サンプルe、f、g、i,j、k、p、q、rは、a、b、c、d、h、n値を利用して算出することができる。一例として、数式3及び数式4のようなフィルタが適用される場合には、このフィルタにa、b、c、d、h、nを適用して残りの部分画素サンプルを算出することができる。算出された各部分画素サンプル値に対応する位置は、例えば、数式5と表2などを利用して算出することができる。
【0163】
色差画素サンプルの場合、補間領域1130には
図8の領域810内のab
0,0〜hh
0,0のように、補間により部分画素サンプルが1/8画素単位に生成される。
【0164】
色差画素サンプルの場合、4タブ補間フィルタを使用することができる。この場合、色差画素に対しては輝度画素の場合と違って、4個の整数画素P2、P3、P4、P5を使用して補間を実行する。基準整数サンプル(P3)が第1の整数サンプル列に位置するため、復元された現在ピクチャの画素サンプルのうち一つ(P2)が補間に利用される。
【0165】
図13は、
図11の補間領域1130を色差画素サンプルに対して示し、補間領域1130B内の部分画素サンプルと整数画素サンプルとの位置関係を概略的に示す。図示されているように、基準整数画素はP3であり、補間領域内に部分画素サンプルab〜hhが補間により生成される。
【0166】
補間に使われるフィルタの係数は、多様に決めることができる。例えば、数式8の導出に利用されたフィルタ係数を一例として利用すると、部分画素サンプルのうち、ab、ac、ad、ae、af、ag、ahは、数式16のように算出することができる。
【0168】
一方、参照ブロック1110の上側境界から1番目の行までの整数画素サンプルを基準整数サンプルにする場合には、現在ピクチャの復元された整数画素サンプルを利用して部分画素サンプルba、ca、da、ea、fa、ga、haを生成することができる。この場合に対しては後述する。また、基準整数サンプルが参照ブロック1110の上側境界から2番目の行以後に位置する場合には、参照ピクチャの整数画素サンプルを利用し、例えば、数式9のように部分画素サンプルba、ca、da、ea、fa、ga、haを算出することができる。
【0169】
参照ブロック1110内部の他の部分画素サンプルは、ab、ac、ad、ae、af、ag、ah、ba、ca、da、ea、fa、ga、haを利用して算出することができる。例えば、数式10及び数式11のようなフィルタを利用する場合には、このフィルタに上記の値を適用して他の部分画素サンプルを算出することができる。算出された各部分画素サンプル値に対応する位置は、例えば、数式14と表4などを利用して算出することができる。
【0170】
(3)前処理−現在ピクチャの復元された整数サンプルに対するスムージング
【0171】
ブロック境界などで発生する不連続(discontinuity)を最小化するために、前述した補間を実行する前に、補間に使われる現在ピクチャの整数サンプルを対象に所定の前処理、例えば、スムージング(smoothing)を実行することができる。
【0172】
補間の前処理としてスムージングの対象は、前述した補間に利用される現在ピクチャの復元された整数画素サンプルである。補間に利用される現在ピクチャの復元された整数画素サンプルのすべて(図
11のP0、P1、P2)にスムージングを適用することができる。また、補間に利用される現在ピクチャの復元された整数画素サンプルのうち、ブロック境界からの距離によって所定個数の整数画素サンプルにのみスムージングが適用されることもできる。例えば、ブロック境界に最も近い整数画素サンプル(
図11のP2)にのみスムージングを適用するようにし、又はブロック境界から2番目の整数画素サンプル(
図11のP1、P2)までスムージングを適用するようにすることもできる。
【0173】
スムージングは、現在ピクチャと参照ピクチャの境界で発生できる不連続を考慮したことであり、現在ピクチャの整数画素サンプルと参照ブロックの整数画素サンプルを共に利用して実行することができる。
【0174】
スムージングを適用する整数画素サンプルの位置によって多様なスムージングフィルタを適用することができる。例えば、P2にのみスムージングを適用する場合には、3タブフィルタから8タブフィルタまで多様なフィルタが適用することができる。P1とP2にスムージングを適用する場合、P1には参照ブロックの整数画素サンプルを利用する3タブフィルタを適用しにくいため、P1とP2に同一の4タブ以上のフィルタを適用することもでき、P1とP2に適用するフィルタを各々選択し、P1には3タブフィルタの適用を排除することもできる。また、P0、P2、P2のすべてにスムージングを適用する場合には、P0、P1、P2のすべてに同一の5タブ以上のフィルタを適用し、又はP0、P1、P2に適用するフィルタを各々選択し、P0には5タブ以上、P1には4タブ以上のフィルタが適用されるようにすることもできる。このとき、適用されるフィルタと係数は、必要によって別途に決めることもでき、システム上で利用されるフィルタ及び/又は係数を活用することもできる。例えば、8タブフィルタを使用する場合には、輝度画素サンプルに適用する補間フィルタの係数を活用することができ、4タブフィルタを使用する場合には、色差画素サンプルに適用する補間フィルタの係数を活用することもできる。
【0175】
例えば、P2にのみスムージングを適用し、3タブフィルタを適用する場合を例示して説明すると、スムージングが適用されたP2’は、数式17のように算出することができる。
【0177】
図11を参照すると、数式17において、P1とP2は、現在ピクチャの復元された整数画素サンプルであり、P3は、参照ブロックの整数画素サンプルである。スムージングが適用された整数画素サンプルを利用して前述した補間を実行することによって補間の効果をさらに高めることができる。一方、数式17のフィルタと係数は、説明の便宜のために導入した一例に過ぎず、本発明では必要によって多様なフィルタと係数を適用することができる。
【0178】
2.部分画素サンプルa、b、cの生成及び基準整数サンプルが参照ブロックの第2の整数サンプル列に位置する場合
【0179】
図14は、予測ユニット1410に対応する参照ブロックで基準整数サンプルが参照ブロックの左側境界から2番目の整数サンプル列(第2の整数サンプル列)1420に位置する場合の例を概略的に説明する図面である。
図14において、P0,...,P7は、整数画素(値)を示し、P0,...,P7は、輝度画素であってもよく、色差画素であってもよい。ただし、
図14の場合で色差画素の補間に4タブフィルタを適用すると、
図11の場合と違って、現在ピクチャの復元された色差整数画素サンプルを部分画素サンプルの生成のための補間に利用できなくなる。
図14も予測ユニットが8×8ブロックである場合を例示して説明している。
【0181】
図14を参照すると、整数画素サンプルP0、P1が復元された現在ピクチャの画素として補間に利用される。補間領域1430内には
図12の補間領域1130Aと同一に基準整数サンプルP3を基準に部分画素サンプルa〜rが補間により生成される。
【0182】
図14の場合には、
図11の場合と違って、P0とP1は、現在ピクチャの復元された整数画素サンプルであり、P2〜P7は、参照ブロックの整数画素サンプルである。
【0183】
図14の場合にも、部分画素サンプルは、現在ピクチャの復元された画素サンプル(P0、P1)と参照ピクチャの画素サンプル(P2〜P7)を利用した補間により算出することができる。補間に利用されるフィルタは、多様に係数が決定することができる。
図11で説明した数式16もこの場合に適用することができる補間フィルタの一例である。
【0184】
(2)前処理−現在ピクチャの復元された整数サンプルに対するスムージング
【0185】
図14の場合には、補間に利用される現在ピクチャの復元された整数画素サンプルのすべて(
図14のP0、P1)にスムージングを適用し、又はブロック境界から最も近い位置にある画素サンプル(
図14のP1)にのみスムージングが適用することもできる。
【0186】
このとき、P1にのみスムージングを適用する場合には、3タブフィルタから8タブフィルタまで多様なフィルタが適用することができる。P0とP1にスムージングを適用する場合、P0には参照ブロックの整数画素サンプルを利用する3タブフィルタを適用しにくいため、P0とP1に同一の4タブ以上のフィルタを適用することもでき、P0とP1に適用するフィルタを各々選択し、P0には3タブフィルタの適用を排除することもできる。
【0187】
適用されるフィルタと係数は、前述したように、多様に選択及び適用することができる。例えば、P1にのみスムージングを適用し、3タブフィルタを適用する場合を例示して説明すると、スムージングが適用されたP1’は、数式18のように算出することができる。
【0189】
図14を参照すると、数式18において、P0とP1は、現在ピクチャの復元された整数画素サンプルであり、P2は、参照ブロックの整数画素サンプルである。一方、数式18のフィルタと係数は、説明の便宜のために導入した一例に過ぎず、本発明では必要によって多様なフィルタと係数を適用することができる。
【0190】
3.部分画素サンプルa、b、cの生成及び基準整数サンプルが参照ブロックの第3の整数サンプル列に位置する場合
【0191】
図15は、予測ユニット1510に対応する参照ブロックで基準整数サンプルが参照ブロックの左側境界から3番目の整数サンプル列(第3の整数サンプル列)1520に位置する場合の例を概略的に説明する図面である。
図15において、P0,...,P7は、整数画素(値)を示し、P0,...,P7は、輝度画素であってもよく、色差画素であってもよい。ただし、
図15の場合で色差画素の補間に4タブフィルタを適用すると、
図14の場合のように、現在ピクチャの復元された色差整数画素サンプルを部分画素サンプルの生成のための補間に利用できなくなる。
図15も予測ユニットが8×8ブロックである場合を例示して説明している。
【0193】
図15を参照すると、整数画素サンプルP0が復元された現在ピクチャの画素として補間に利用される。補間領域1530内には
図12の補間領域1130Aと同一に基準整数サンプルP3を基準に部分画素サンプルa〜rが補間により生成される。
【0194】
図11及び
図14の場合と違って、
図15の場合、P0は、現在ピクチャの復元された整数画素サンプルであり、P1〜P7は、参照ブロックの整数画素サンプルである。
【0195】
図15の場合にも、部分画素サンプルは、現在ピクチャの復元された画素サンプル(P0)と参照ピクチャの画素サンプル(P1〜P7)を利用した補間により算出することができる。補間に利用されるフィルタは、多様に係数が決定することができる。
図11で説明した数式16もこの場合に適用することができる補間フィルタの一例である。
【0196】
(2)前処理−現在ピクチャの復元された整数サンプルに対するスムージング
【0197】
図15の場合にも、補間に使われる現在ピクチャの整数サンプル(P0)を対象にスムージング(smoothing)を実行することができる。このとき、P0には、3タブフィルタから8タブフィルタまで多様なフィルタを適用してスムージングを実行することができる。適用されるフィルタと係数は、前述したように、多様に選択及び適用することができ、例えば、P0に3タブフィルタを適用する場合を例示して説明すると、スムージングが適用されたP0’は、数式19のように算出することができる。
【0199】
図15を参照すると、数式19において、P0は、現在ピクチャの復元された整数画素サンプルであり、P1は、参照ブロックの整数画素サンプルである。また、
図15に示していないが、P0
Bは、P0の左側に位置する整数画素サンプルであって、現在ピクチャの復元された画素サンプルである。一方、数式19のフィルタと係数は、説明の便宜のために導入した一例に過ぎず、本発明では必要によって多様なフィルタと係数を適用することができる。
【0200】
4.部分画素サンプルd、h、n又はbaの生成及び基準整数サンプルが参照ブロックの第1の整数サンプル行に位置する場合
【0201】
図16は、予測ユニット(PU)1610に対応する参照ブロックで整数単位以下の部分サンプルを生成するための基準整数サンプルが参照ブロックの上側境界から1番目の整数サンプル行(第1の整数サンプル行)1620に位置する場合の例を概略的に説明する図面である。
図16において、P0,...,P7は、整数画素(値)を示し、P0,...,P7は、輝度画素であってもよく、色差画素であってもよい。
図16は、予測ユニットが8×8ブロックである場合を例示して説明している。
【0203】
輝度画素サンプルの場合、補間領域1630には
図7の領域710内のa
0,0〜r
0,0のように、8タブフィルタを利用した補間により部分画素サンプルが1/4画素単位に生成される。
【0204】
図16の場合には基準整数サンプル(P3)の位置が参照ブロック内の1番目の整数画素サンプル行にあるため、復元された現在ピクチャの画素サンプルのうち、3個を補間に利用することができる。
図16を参照すると、整数画素サンプルP0、P1、P2が復元された現在ピクチャの画素として補間に利用される。
【0205】
補間領域1630内には
図12の補間領域1130Aと同一に基準整数サンプルP3を基準に部分画素サンプルa〜rが補間により生成される。
【0206】
補間に使われるフィルタの係数は、多様に決めることができる。例えば、数式1の導出に利用されたフィルタ係数を一例として利用すると、部分画素サンプルのうち、d、h、nは、数式20のように算出することができる。
【0208】
一方、参照ブロック1610の左側境界から3番目の列までの整数画素を基準整数画素にする場合、現在ピクチャの復元された整数画素サンプルを利用して部分画素サンプルa、b、cを生成する方法は、前述した通りである(前述した1〜3の方法参照)。基準整数画素が参照ブロック1610の左側境界から4番目の列以後に位置する場合には、参照ピクチャの整数画素サンプルを利用した補間フィルタ、例えば、数式1のような補間フィルタを介して部分画素サンプルa、b、cを算出することができる。
【0209】
部分画素サンプルe、f、g、i,j、k、p、q、rは、a、b、c、d、h、nなどを利用して算出することができる。例えば、数式3及び数式4等にa、b、c、d、h、nを適用して他の部分画素サンプルを算出することができる。算出された各部分画素サンプル値に対応する位置は、例えば、数式7と表2などを利用して算出することができる。
【0211】
色差画素サンプルの場合、補間領域1630には
図8の領域810内のab
0,0〜hh
0,0のように、4タブフィルタを利用した補間により部分画素サンプルが1/8画素単位に生成される。したがって、輝度画素の場合と違って、4個の整数画素をP2、P3、P4、P5を使用して補間を実行する。基準整数サンプル(P3)が第1の整数サンプル行に位置するため、4タブフィルタを利用した補間では復元された現在ピクチャの画素サンプルのうち一つ(P2)が補間に利用される。
【0212】
補間領域1630内には
図13の補間領域1130Bと同一に基準整数サンプルP3を基準に部分画素サンプルa〜rが補間により生成される。
【0213】
補間に使われるフィルタの係数は、多様に決めることができる。例えば、数式9の導出に利用されたフィルタ係数を一例として利用すると、部分画素サンプルのうち、ba、ca、da、ea、fa、ga、haは、数式21のように算出することができる。
【0215】
一方、参照ブロック1610の左側境界から1番目の列までの整数画素を基準整数画素にする場合、現在ピクチャの復元された整数画素サンプルを利用して部分画素サンプルba、ca、da、ea、fa、ga、haを生成する方法は、前述した通りである(前述した1の方法参照)。また、基準整数画素が参照ブロック1610の左側境界から2番目の列以後に位置する場合には、参照ピクチャの整数画素サンプルを利用し、例えば、数式9のように部分画素サンプルba、ca、da、ea、fa、ga、haを算出することができる。
【0216】
補間領域1630内部の他の部分画素サンプルは、ab、ac、ad、ae、af、ag、ah、ba、ca、da、ea、fa、ga、haなどを利用して算出することができる。例えば、数式10及び数式11にab、ac、ad、ae、af、ag、ah、ba、ca、da、ea、fa、ga、haを適用して他の部分画素サンプルを算出することができる。算出された各部分画素サンプル値に対応する位置は、例えば、数式12と表5を利用して算出することができる。
【0217】
(3)前処理−現在ピクチャの復元された整数サンプルに対するスムージング
【0218】
図
16の場合に適用可能な前処理としてのスムージングは、
図11に対して説明したスムージングと同一に実行されることができる。ただし、
図11の場合と違って、図
16の補間に利用される現在ピクチャの復元された整数画素ブロックと参照ブロックの整数画素ブロックは、図
16に示すように同一の行
1620に位置する。
【0219】
5.部分画素サンプルd、h、nの生成及び基準整数サンプルが参照ブロックの第2の整数サンプル行に位置する場合
【0220】
図17は、予測ユニット1710に対応する参照ブロックで基準整数サンプルが参照ブロックの上側境界から2番目の整数サンプル行(第2の整数サンプル行)1720に位置する場合の例を概略的に説明する図面である。
図17において、P0,...,P7は、整数画素(値)を示し、P0,...,P7は、輝度画素であってもよく、色差画素であってもよい。ただし、
図17の場合で色差画素の補間に4タブフィルタを適用すると、
図16の場合と違って、現在ピクチャの復元された色差整数画素サンプルを部分画素サンプルの生成のための補間に利用できなくなる。
図17は、予測ユニットが8×8ブロックである場合を例示して説明している。
【0222】
図17を参照すると、整数画素サンプルP0、P1が復元された現在ピクチャの画素として補間に利用される。補間領域
1730内には
図12の補間領域1130Aと同一に基準整数サンプルP3を基準に部分画素サンプルa〜rが補間により生成される。
【0223】
図16の場合と違って、
図17の場合、P0とP1は、現在ピクチャの復元された整数画素サンプルであり、P2〜P7は、参照ブロックの整数画素サンプルである。
【0224】
図15の場合にも、部分画素サンプルは、現在ピクチャの復元された画素サンプル(P0、P1)と参照ピクチャの画素サンプル(P2〜P7)を利用した補間により算出することができる。補間に利用されるフィルタは、多様に係数が決定することができる。
図16で説明した数式20もこの場合に適用することができる補間フィルタの一例である。
【0225】
(2)前処理−現在ピクチャの復元された整数サンプルに対するスムージング
【0226】
図17の場合に適用可能な前処理としてのスムージングは、
図14に対して説明したスムージングと同一に実行することができる。ただし、
図14の場合と違って、
図17の補間に利用される現在ピクチャの復元された整数画素ブロックと参照ブロックの整数画素ブロックは、
図17に示すように同一の行1720に位置する。
【0227】
6.部分画素サンプルd、h、nの生成及び基準整数サンプルが参照ブロックの第3の整数サンプル行に位置する場合
【0228】
図18は、予測ユニット1810に対応する参照ブロックで基準整数サンプルが参照ブロックの左側境界から3番目の整数サンプル行(第3の整数サンプル行)1820に位置する場合の例を概略的に説明する図面である。
図18において、P0,...,P7は、整数画素(値)を示し、P0,...,P7は、輝度画素であってもよく、色差画素であってもよい。ただし、
図18の場合で色差画素の補間に4タブフィルタを適用すると、
図17の場合のように、現在ピクチャの復元された色差整数画素サンプルを部分画素サンプルの生成のための補間に利用できなくなる。
図18では予測ユニットが8×8ブロックである場合を例示して説明している。
【0230】
図18を参照すると、整数画素サンプルP0が復元された現在ピクチャの画素として補間に利用される。補間領域1830内には
図12の補間領域1130Aと同一に基準整数サンプルP3を基準に部分画素サンプルa〜rが補間により生成される。
【0231】
図16及び
図17の場合と違って、
図18の場合、P0は、現在ピクチャの復元された整数画素サンプルであり、P1〜P7は、参照ブロックの整数画素サンプルである。
【0232】
図18の場合にも、部分画素サンプルは、現在ピクチャの復元された画素サンプル(P0)と参照ピクチャの画素サンプル(P1〜P7)を利用した補間により算出することができる。補間に利用されるフィルタは、多様に係数が決定することができる。
図16で説明した数式20もこの場合に適用することができる補間フィルタの一例である。
【0233】
(2)前処理−現在ピクチャの復元された整数サンプルに対するスムージング
【0234】
図18の場合に適用可能な前処理としてのスムージングは、
図15に対して説明したスムージングと同一に実行することができる。ただし、
図15の場合と違って、
図18の補間に利用される現在ピクチャの復元された整数画素ブロックと参照ブロックの整数画素ブロックは、
図18に示すように同一の行1820に位置する。
【0235】
一方、前述したように、現在ピクチャの復元された画素サンプルと参照ピクチャの画素サンプルを共に使用して補間を実行した場合、符号化器(エンコーダー)では関連した情報を復号器(デコーダー)に伝達することができる。例えば、エンコーダーは、現在ピクチャ(現在対象ブロック、例えば、現在コーディングユニット、現在予測ユニット及び/又は現在変換ユニット等)に対するブロックタイプ、動き情報などのような情報内に予測ブロックを生成するための補間が現在ピクチャの復元された画素サンプルを利用して実行されたという情報を含んで送信することができる。現在ピクチャの復元された画素サンプルを利用して実行されたかに対する情報は、1ビットのフラグで指示することができる。
【0236】
このように現在ピクチャの復元された画素サンプルを利用して実行されたかに対する情報を明示的に伝達する方法外に、黙示的な方法により該当情報が復号器に伝達することもできる。例えば、該当ブロックと隣接ブロックの動きベクトルを比較し、二つの動きベクトルの差が所定の閾値(threshold)を超えるかどうかを判断することによって、現在ピクチャの復元された画素サンプルが補間に利用されたかどうかを復号器が認知するようにすることもできる。
【0237】
一方、前述した1〜6の場合では、予測ユニットの一例として8×8ブロックの場合を説明したが、これは本発明の一実施例に過ぎず、本発明はこれに限定されるものではなく、予測ブロックが4×4、16×16、32×32、64×64ブロックなど、多様な場合に対して適用することができる。
【0238】
図19は、本発明による復号器で予測ブロックを生成する方法を概略的に説明するフローチャートである。
【0239】
図19を参照すると、復号器の予測部は、動き情報を生成する(S1910)。動き情報は、該当予測ユニットに対する動き情報、参照ピクチャインデックスなどを含む。
【0240】
次に、予測部は、動きベクトルが整数画素位置を指示するかどうかを判断する(S1920)。前述したように、動きベクトルは、輝度画素の場合に1/4画素単位に表現され、色差画素の場合に1/8画素単位に表現することができる。
【0241】
動きベクトルが整数画素位置を示さない場合、すなわち、整数画素単位以下のサブ画素(sub pixel)位置を示す場合、予測部は、予測ブロックを生成するために部分サンプル単位の画素情報を生成する補間を実行する必要がある。
【0242】
補間を実行するための情報は、以前に生成した動き情報から導出される。これを介して、例えば、前述した補間領域、基準整数サンプルなどが特定することができる。
【0243】
動きベクトルがサブ画素位置を示す場合、予測部は、整数画素サンプルを利用して整数単位以下の部分画素サンプルを生成する補間を実行する(S1930)。
【0244】
このとき、予測部は、補間領域の基準整数サンプルが所定の範囲、すなわち、現在ピクチャの復元された画素サンプルを補間に利用することができる範囲内にあるかどうかを確認することができる。例えば、輝度画素に対する補間の場合、予測部は、基準整数サンプルが現在予測単位に対応する参照ブロックの上側境界から3番目の整数サンプル行以内又は左側境界から3番目の整数サンプル列以内に位置するかどうかを確認することができる。色差画素に対する補間の場合、予測部は、基準整数サンプルが現在予測単位に対応する参照ブロックの上側境界から1番目の整数サンプル行又は左側境界から1番目の整数サンプル列に位置するかどうかを確認することができる。
【0245】
復号器の予測部は、補間領域の基準整数サンプルが所定の範囲にあるということを確認すると、補間に必要な前処理を実行することができる。
【0246】
例えば、輝度画素に対する補間の場合、基準整数サンプルが現在予測単位に対応する参照ブロックの上側又は左側境界から3番目の整数サンプル行/列以内に位置し、色差画素に対する補間の場合、基準整数サンプルが現在予測単位に対応する参照ブロックの上側又は左側境界から1番目の整数サンプル行/列に位置すると、補間に利用する現在ピクチャの画素サンプルに補間の前処理としてスムージングを適用することができる。前処理として適用されるスムージング方法は、前述した通りである。
【0247】
予測部は、前述したように、輝度画素に対しては補間を介して1/4画素単位に部分画素サンプルを生成することができ、色差画素に対しては補間を介して1/8画素単位に部分画素サンプルを生成することができる。
【0248】
本発明において、予測部は、補間領域の基準整数サンプルが所定の範囲にある場合、現在ピクチャの復元された整数画素サンプルと参照ブロックの画素サンプルを共に使用して補間を実行することができる。補間の具体的な方法は、前述した通りである。
【0249】
予測部は、予測ブロックを生成する(S1940)。予測部は、動きベクトルが整数画素位置を示す場合には動きベクトルと参照ブロックに基づいて予測ブロックを生成し、動きベクトルがサブ画素位置を示す場合には動きベクトルと補間により算出された画素サンプルに基づいて予測ブロックを生成する。前述したように、予測ブロックの画素サンプル値は、基準整数サンプルからの部分サンプル単位オフセットで表現される画素位置に対応する画素サンプル値であり、例えば、輝度画素に対する補間の場合にオフセットは(xFrac
L,yFrac
L)として与えることができ、色差画素に対する補間の場合にオフセットは(xFrac
C,yFrac
C)として与えることができる。このとき、基準整数サンプルを基準にするオフセットにより特定される予測画素サンプルの値は、輝度画素の場合には、例えば、表3を介して、色差画素の場合には、例えば、表5を介して得られることができる。
【0250】
一方、前述した
図19と関連した補間方法で、現在ピクチャの復元された整数画素サンプルを利用するかどうかに対しては、前述したように、符号化器から明示的又は黙示的な指示を復号器に伝達することもでき、基準整数サンプルが現在予測単位に対応する参照ブロックの上側又は左側境界から3番目の整数サンプル行/列以内に位置する場合には現在ピクチャの復元された整数画素サンプルを補間に利用するように決めることもできる。
【0251】
したがって、現在ピクチャの復元された画素サンプルを利用するかどうかに対して符号化器から指示が伝達されるようにする場合には、復号器が指示の存否及び/又は指示内容を判断するステップが先行することができる。このとき、現在ピクチャの復元された画素サンプルを利用するという指示がない場合、現在ピクチャの復元された画素サンプルを補間に利用せずに、参照ピクチャの画素サンプルのみで利用して補間を実行することもできる。
【0252】
前述した例示的なシステムにおいて、方法は、一連のステップ又はブロックで順序図に基づいて説明されているが、本発明は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序に又は同時に発生することができる。また、前述した実施例は、多様な態様の例示を含む。したがって、本発明は、特許請求の範囲内に属するすべての交替、修正、及び変更を含む。
【0253】
以上、本発明に対する説明において、一構成要素が他の構成要素に“連結されて”いる、又は“接続されて”いると言及された時には、一構成要素が他の構成要素に直接的に連結又は接続されていることもあるが、二つの構成要素間に他の構成要素が存在することもできると理解しなければならない。一方、一構成要素が他の構成要素に“直接連結されて”いる、又は“直接接続されて”いると言及された時には、二つの構成要素間に他の構成要素が存在しないと理解しなければならない。