本発明は、多様な実施例を有することができ、特定の実施例を図面を参照して説明する。しかし、本発明は、説明される特定の実施例に限定されるものではなく、本発明の技術的思想の範囲内で多様な変更が可能である。
本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであり、本発明の技術的思想を限定するために使われたものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。
一方、本発明で説明される図面上の各構成は、映像符号化器/復号化器で互いに異なる特徴的な機能に対する説明の便宜のために独立的に図示されたものであり、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味しない。例えば、各構成のうち、二つ以上の構成が統合されて一つの構成になることもでき、一つの構成が複数の構成に分けられることもできる。各構成が統合/分離された実施例も本発明の本質から外れない限り、本発明の権利範囲に含まれる。
以下、添付図面を参照して、本発明の好ましい実施例をさらに詳細に説明する。以下、図面において、同じ構成要素に対しては同じ参照符号を使用し、同じ構成要素に対する重複した説明は省略する。
図1は、本発明の一実施例に係る映像符号化器を概略的に示すブロック図である。図1を参照すると、映像符号化器100は、ピクチャ分割部105、予測部110、変換部115、量子化部120、再整列部125、エントロピー符号化部130、逆量子化部135、逆変換部140、フィルタ部145、及びメモリ150を含む。
ピクチャ分割部105は、入力されたピクチャ(picture)を少なくとも一つ以上の処理単位に分割することができる。このとき、処理単位は、予測ユニット(Prediction Unit:予測ユニット)であってもよく、変換ユニット(Transform Unit:TU)であってもよく、符号化ユニット(Coding Unit:CU)であってもよい。
予測部110は、インター予測(inter prediction)を実行するインター予測部とイントラ予測(intra prediction)を実行するイントラ予測部とを含むことができる。予測部110は、ピクチャ分割部105で分割されたピクチャの処理単位に対して予測を実行し、予測ブロックを生成する。このとき、ピクチャの処理単位は、符号化ユニットであってもよく、変換ユニットであってもよく、予測ユニットであってもよい。また、予測部110は、該当処理単位に対してインター予測を実行するかイントラ予測を実行するかを決定し、決定された予測方法によって予測を実行する。このとき、予測方法が決定される単位と予測が実行される単位は異なってもよい。例えば、予測方法が決定される単位は予測ユニットであり、予測が実行される単位は変換ユニットである。
インター予測では現在ピクチャの以前ピクチャと以後ピクチャのうち少なくとも一つ以上のピクチャに対する情報に基づいて予測を実行して予測ブロックを生成する。また、イントラ予測では現在ピクチャ内のピクセル(pixel)情報に基づいて予測を実行して予測ブロックを生成する。
インター予測では現在ブロックに対して参照ピクチャを選択し、現在ブロックと同じ大きさの参照ブロックを整数ピクセル単位に選択することができる。次に、現在ブロックとの残差(residual)値と動きベクトルの大きさが最小になる予測ブロックを生成する。インター予測の方法として、スキップ(skip)モード、マージ(merge)モード、MVP(Motion Vector Prediction)などを利用することができる。予測ブロックは、1/2、1/4のように整数以下の単位に生成されることもできる。このとき、動きベクトルも整数ピクセル以下の単位に表現されることができる。例えば、輝度成分に対しては1/4ピクセル単位に表現され、色差成分に対しては1/8ピクセル単位に表現されることができる。インター予測を介して選択された参照ピクチャのインデックス、動きベクトル、残差信号などの情報は、エントロピー符号化されて復号化器に伝達される。
イントラ予測において、予測モードを決定する単位は予測ユニットであり、予測を実行する単位は予測ユニット又は変換ユニットである。また、イントラ予測においては、33個の方向性予測モードと少なくとも2個以上の非方向性予測モードをサポートすることができる。このとき、非方向性予測モードは、DC予測モード及びプラナーモード(planar mode)を含むことができる。
一方、本明細書でサンプルを利用するとは、該当サンプルの情報、例えば、ピクセル値などを利用するということを意味する。ただし、説明の便宜のために、「サンプル情報を利用する」又は「ピクセル値を利用する」という表現を「サンプルを利用する」と簡単に表現することもできることに留意する。
予測ユニットは多様なサイズ/形態を有することができる。例えば、インター予測の場合には2N×2N、2N×N、N×2N、又はN×Nなどの大きさを有することができ、イントラ予測の場合には2N×2N又はN×Nなどの大きさを有することができる。このとき、N×N大きさの予測ユニットは、特定の場合にのみ適用するように設定することができる。例えば、最小大きさコーディングユニットに対してのみN×N大きさの予測ユニットを利用できるように設定したり、イントラ予測に対してのみ利用できるように設定することができる。また、前述した大きさの予測ユニット外に、N×mN、mN×N、2N×mN又はmN×2N(m<1)などの大きさを有する予測ユニットを定義して使用することもできる。
生成される予測ブロックと原本ブロックとの間の残差ブロックは、変換部115に入力される。また、予測のために使用した予測モード、予測単位、動きベクトルに対する情報などは、エントロピー符号化部130で符号化され、復号化器に伝達される。
変換部115は、残差ブロックに対する変換を実行して変換係数を生成する。変換部115における処理単位は、変換ユニットであり、クアッドツリー(quad tree)構造を有することができる。このとき、変換ユニットの大きさは、所定の最大及び最小大きさの範囲内で定められることができる。変換部115は、残差ブロックをDCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)などを利用して変換する。
量子化部120は、変換部115で生成された変換係数を量子化して量子化係数を生成する。量子化部120で生成された量子化係数は、再整列部125と逆量子化部135に伝達される。
再整列部125は、量子化部120から伝達された量子化係数を再整列する。量子化係数を再整列することによってエントロピー符号化部130における符号化の効率を上げることができる。再整列部125は、係数スキャニング(coefficient scanning)方法を介して2次元のブロック形態の量子化係数を1次元のベクトル形態に再整列する。再整列部125は、量子化部120から伝達された量子化係数の確率的な統計に基づいて係数スキャニングの順序を変更することによってエントロピー符号化部130におけるエントロピー符号化効率を上げることもできる。
エントロピー符号化部130は、再整列部125で再整列された量子化係数に対するエントロピー符号化を実行する。このとき、指数ゴロム(Exponential Golomb)、CABAC(Context-Adaptive Binary Arithmetic Coding)のような符号化方法が使われることができる。また、エントロピー符号化部130は、予測部110から伝達されたブロックタイプ情報、予測モード情報、分割単位情報、予測ユニット情報、送信単位情報、動きベクトル情報、参照ピクチャ情報、ブロックの補間情報、フィルタリング情報のような多様な情報を符号化する。
また、エントロピー符号化部130は、必要な場合、送信されるパラメータセット(parameter set)又はシンタックス(syntax)に一定の変更を加えることもできる。
逆量子化部135は、量子化部120で量子化された値を逆量子化し、逆変換部140は、逆量子化部135で逆量子化された値を逆変換する。逆量子化部135及び逆変換部140で復元された残差ブロックは、予測部110で生成される予測ブロックと統合され、復元ブロック(Reconstructed Block)が生成されることができる。
フィルタ部145は、デブロッキングフィルタ(deblocking filter)、ALF(Adaptive Loop Filter)、SAO(Sample Adaptive Offset)等を復元されたピクチャに適用することができる。
デブロッキングフィルタは、復元されたピクチャでブロック間の境界に発生したブロック歪曲を除去することができる。ALFは、デブロッキングフィルタでフィルタリングされた復元映像と原本映像を比較した値に基づいてフィルタリングを実行することができる。ALFは、高効率を適用する場合にのみ運用されることもできる。SAOは、デブロッキングフィルタが適用された残差ブロックに対し、ピクセル単位に原本映像とのオフセット差を復元し、バンドオフセット(band offset)、エッジオフセット(edge offset)などの形態に適用される。
一方、インター予測に使われる復元ブロックに対してはフィルタリングが実行されないこともある。
メモリ150は、復元ブロック又はピクチャを格納することができる。メモリ150に格納された復元ブロック又はピクチャは、インター予測を実行する予測部110に伝達されることができる。
図2は、本発明の一実施例に係る映像復号化器を概略的に示すブロック図である。図2を参照すると、映像復号化器200は、エントロピー復号化部210、再整列部215、逆量子化部220、逆変換部225、予測部230、フィルタ部235、メモリ240を含む。
映像復号化器は、映像符号化器で生成された映像ビットストリームが入力された場合、 映像符号化器で映像情報が処理された手順によってビットストリームを復号化することができる。
例えば、映像符号化器がCABACを利用してエントロピー符号化を実行した場合、エントロピー復号化部210は、これに対応してCABACを利用してエントロピー復号化を実行する。
エントロピー復号化部210でエントロピー復号化された残差信号は、再整列部215に伝達され、エントロピー復号化部210でエントロピー復号化された情報のうち、予測ブロックを生成するための情報は、予測部230に伝達される。
再整列部215は、エントロピー復号化部210でエントロピー復号化されたビットストリームを映像符号化器で再整列した方法に基づいて再整列する。再整列部215は、符号化器で実行された係数スキャニングに関連した情報の伝達を受け、符号化器で実行されたスキャニング順序に基づいて逆にスキャニングする方法を介して、1次元のベクトル形態に表現された係数を再び2次元のブロック形態の係数に復元して再整列する。
逆量子化部220は、符号化器から提供される量子化パラメータと再整列されたブロックの係数値に基づいて逆量子化を実行する。
逆変換部225は、符号化器の変換部で実行された変換に対する逆変換を実行する。逆変換は、符号化器で決定された送信単位又は分割単位に基づいて実行されることができる。符号化器の変換部は、予測方法、現在ブロックの大きさ、予測方向などのような複数の情報によってDCT又はDSTを選択的に実行することができ、復号化器の逆変換部225は、符号化器の変換部で実行された変換情報に基づいて逆変換を実行することができる。
予測部230は、エントロピー復号化部210から提供される予測ブロックを生成するための情報と、メモリ240から提供される既に復号化されたブロック及び/又はピクチャ情報と、に基づいて予測ブロックを生成する。復元ブロックは、予測部230で生成される予測ブロックと逆変換部225から提供される残差ブロックに基づいて生成される。例えば、現在ブロックがインター予測モードに符号化された場合、現在ピクチャの以前ピクチャと以後ピクチャのうち少なくとも一つ以上のピクチャに含まれている情報に基づいて現在予測ユニットに対する画面間予測を実行する。このとき、動きベクトル、参照ピクチャインデックスのようなインター予測に必要な動き情報は、符号化器から提供されるスキップフラグ、マージフラグなどから誘導されることができる。
復元されたブロック及び/又はピクチャは、フィルタ部235に提供されることができる。フィルタ部235は、デブロッキングフィルタリング、SAO及び/又は適応的ループフィルタリングなどを復元されたブロック及び/又はピクチャに適用する。
復元されたピクチャとブロックは、参照ピクチャ又は参照ブロックとして使われることができるようにメモリ240に格納されることができ、出力部(図示せず)に伝達されることができる。
一方、符号化器は、符号化対象ブロックの映像情報に基づいて最も効率的な符号化方法により符号化対象ブロックを符号化し、復号化器は、符号化器で使われた符号化方法に基づいて復号化方法を決定する。符号化器で使われた符号化方法は、符号化器から送信されるビットストリームを介して又は復号化対象ブロックの情報に基づいて導出されることができる。もし、現在ブロックがイントラ予測モードに符号化された場合、現在ピクチャ内のピクセル情報に基づいて予測ブロックを生成する画面内予測を実行する。
図3は、映像復号化器におけるイントラ予測方法を概略的に説明する流れ図である。
復号化器は、現在ブロックの予測モードを導出する(derivation)(S310)。
イントラ予測では予測に使われる参照サンプルの位置による予測方向を有することができる。予測方向を有するイントラ予測モードをイントラ方向性予測モード(Intra_Angular prediction mode)という。反面、予測方向を有しないイントラ予測モードとして、Intra_Planar予測モード、Intra_DC予測モード、及びIntra_Fromluma予測モードがある。
図4は、イントラ予測モードにおける予測方向を示し、表1は、図4に示すイントラ予測モードのモード値を示す。
イントラ予測では導出される予測モードに基づいて現在ブロックに対する予測を実行する。予測モードによって予測に使われる参照サンプルと具体的な予測方法が変わるため、現在ブロックがイントラ予測モードに符号化された場合、復号化器は、予測を実行するために現在ブロックの予測モードを導出する。
復号化器は、現在ブロックの周辺サンプル(neighboring samples)が予測に使われることができるかどうかを確認し、予測に使用する参照サンプルを構成することができる(S320)。イントラ予測において、現在ブロックの周辺サンプルは、nS×nS大きさの現在ブロックの左側境界及び左下段に隣接する2*nS長さのサンプルと現在ブロックの上段境界及び右上段に隣接する2*nS長さのサンプルを意味する。しかし、現在ブロックの周辺サンプルのうち一部は、まだ復号化されていない、又は利用可能でないこともある。前記のような場合、復号化器は、利用可能なサンプルとして利用可能でないサンプルを代替(substitution)して予測に使用する参照サンプルを構成することができる。
復号化器は、予測モードに基づいて参照サンプルのフィルタリングを実行することができる(S330)。復号化器は、予測を実行する前に、参照サンプルのフィルタリングを実行することができる。参照サンプルのフィルタリング実行可否は、現在ブロックの予測モードに基づいて決定される。予測モードによって適応的に参照サンプルのフィルタリングを実行することをMDIS(Mode Dependent Intra Smoothing)又は単にスムージングフィルタリング(smoothing filtering)という。
表2は、予測モードに基づいて参照サンプルのフィルタの適用可否を決定する一例である。
表2において、intraFilterTypeが1の場合、スムージングフィルタリングが実行される。例えば、Intra_Planarモードであり、nS=8の場合、スムージングフィルタリングが実行されることができる。このとき、多様なフィルタリング係数のスムージングフィルタが適用されることができる。例えば、係数が[1 2 1]であるスムージングフィルタが適用されることができる。
復号化器は、予測モードと参照サンプルに基づいて現在ブロックに対する予測ブロックを生成する(S340)。復号化器は、予測モード導出ステップ(S310)で導出された予測モードと参照サンプル構成ステップ(S320)と参照サンプルフィルタリングステップ(S330)を介して取得した参照サンプルに基づいて現在ブロックに対する予測ブロックを生成する。
予測ブロック生成ステップ(S340)において、現在ブロックがIntra_DC予測モードに符号化された場合、ブロック境界の不連続性(discontinuity)を最小化するために、予測ブロックの左側境界サンプルと上段境界サンプルを2タップフィルタリング(2 tap filtering)することができる。ここで、境界サンプルとは、予測ブロック内に位置し、予測ブロックの境界に隣接するサンプルを意味する。
図5は、現在ブロックがIntra_DC予測モードに符号化された場合を示す。
図5を参照すると、現在ブロック500がIntra_DC予測モードに符号化された場合、現在ブロック500の左側境界サンプル522と上段境界サンプル521は、各々、左側参照サンプル530と上段参照サンプル510と類似する確率が高いため、図5のようにスムージングフィルタを適用することができる。図面で陰影処理された部分505は、フィルタリング対象領域を示す。
イントラ方向性予測モードのうち一部のモードに対してもIntra_DCモードと同様に左側境界サンプルと上段境界サンプルに2タップフィルタを適用することができる。ただ、左側境界サンプル及び上段境界サンプルの両方ともに適用するものではなく、予測方向によって適応的に左側境界サンプル又は上段境界サンプルに適用する。即ち、実際方向性予測(directional prediction)に使われない参照サンプルと隣接した境界サンプルにのみ適用する。
具体的に、予測ブロック生成ステップ(S340)において、現在ブロックがイントラ方向性予測モードに符号化された場合、予測方向に位置する参照サンプルに基づいて予測サンプルの値を導出することができる。このとき、イントラ方向性予測モードのうち一部のモードでは予測ブロックの左側境界サンプル及び上段境界サンプルのうち、予測方向に位置しない境界サンプルが予測に使われない参照サンプルと隣接することができる。即ち、予測に使われる参照サンプルとの距離より予測に使われない参照サンプルとの距離が相当近い。予測サンプルの値は、距離が近い参照サンプルと類似する確率が高いため、本発明では予測性能と符号化効率を上げるために、左側境界サンプル及び上段境界サンプルのうち、予測方向に位置しない境界サンプルに対して隣接する参照サンプルとのフィルタリングを適用する。
説明の便宜のために、イントラ方向性予測モードで予測サンプルの値を導出する過程を、予測サンプルの値を予測方向に位置する参照サンプルの値として導出するステップ、及び予測ブロックの左側境界サンプル及び上段境界サンプルのうち、予測方向に位置しない境界サンプルをフィルタリングして修正(modify)するステップに分けて説明する。また、現在ブロック及び予測ブロックの左上段サンプルを基準にして右下段方向に座標値が増加する[x,y]座標を設定する。また、現在ブロック及び予測ブロックの大きさをnSに定義する。例えば、予測ブロックの左上段境界サンプルは[0,0]の位置を有し、左側境界サンプルは[0,0...nS-1]、上段境界サンプルは[0...nS-1,0]の位置を有する。
まず、予測サンプルの値を予測方向に位置する参照サンプルに基づいて導出する。
例えば、現在ブロックが垂直予測モードに符号化された場合、予測サンプルの値は、現在ブロックの上段境界に隣接する(adjacent)参照サンプルのうち、同じx座標を有するサンプルの値として導出される。即ち、予測サンプルの値predSamples[x,y]は、数式1のように導出される。
ここで、p[a,b]は、[a,b]の位置を有するサンプルの値を示す。
例えば、現在ブロックが水平予測モードに符号化された場合、予測サンプルの値は、現在ブロックの左側境界に隣接する(adjacent)参照サンプルのうち、同じy座標を有するサンプルの値として導出される。即ち、予測サンプルの値predSamples[x,y]は、数式2のように導出される。
例えば、予測方向が右上向であるイントラ方向性予測モードに現在ブロックが符号化された場合、予測サンプルの値は、現在ブロックの上段境界に隣接する参照サンプルと右上段に位置する参照サンプルのうち、予測方向に位置する参照サンプルの値として導出される。
例えば、予測方向が左下向であるイントラ方向性予測モードに現在ブロックが符号化された場合、予測サンプルの値は、現在ブロックの左側境界に隣接する参照サンプルと左下段に位置する参照サンプルのうち、予測方向に位置する参照サンプルの値として導出される。
予測方向に位置する参照サンプルに基づいて予測サンプルの値を導出した後に、予測ブロックの左側境界サンプル及び上段境界サンプルのうち、予測方向に位置しない境界サンプルを隣接する参照サンプルに基づいてフィルタリングすることで、該当境界サンプルの値を修正することができる。以下、予測方向に位置しない参照サンプルを利用して予測ブロックの左側境界サンプル及び上段境界サンプルのうち、予測方向に位置しない境界サンプルをフィルタリングする方法を図5~図13を介して詳細に説明する。
図6は、本発明の一実施例に係るイントラ予測モードにおいて、予測方向が垂直である場合を示す。
図6を参照すると、垂直予測モード(Intra_Vertical prediction mode)の場合、左側境界サンプル620にスムージングフィルタを適用することができる。
前述したように、現在ブロック600が垂直予測モードに符号化された場合、予測サンプルの値は、上段参照サンプルの値として導出される。このとき、現在ブロック600の左側境界に隣接する参照サンプルは、方向性予測に使われないが、現在ブロック600の左側境界サンプルと隣接している。即ち、左側境界サンプル620の場合、予測に使われる参照サンプルである上段参照サンプル610との距離より予測に使われない参照サンプルである左側参照サンプル630との距離が近い。ここで、上段参照サンプル610は、現在ブロックの上段境界に隣接し、同じx座標を有するサンプル([x,-1])を意味し、左側参照サンプル630は、現在ブロックの左側境界に隣接し、同じy座標を有するサンプル([-1,y])を意味する。したがって、左側境界サンプル620の値は、隣接する左側参照サンプル630の値と類似する確率が高いため、左側境界サンプル620に対して図6のようにスムージングフィルタを適用することができる。図面で陰影処理された部分605はフィルタリング対象領域を示す。
例えば、係数が[1 1]/2のスムージングフィルタを適用すると、修正された左側境界サンプル620の値predSamples[x,y]は、数式3のように導出されることができる。
フィルタの係数は[1 1]/2に限定されるものではなく、[1 3]/4、[1 7]/8などの係数を有するフィルタを適用することもできる。また、現在ブロックの大きさによって適応的にフィルタの係数を決定することもできる。
一方、左側参照サンプルとのフィルタリングを実行するとき、周辺ブロックの情報をさらに考慮することもできる。例えば、左上段参照サンプル640を基準にして、左側境界サンプル620のy座標値によるサンプル値の変化を考慮し、数式4のように修正された左側境界サンプル620の値を導出することができる。
前述した方法により左側境界サンプル620の値を導出する場合、予測サンプルの値が規定されたビット深さ(bit depth)を超過することができる。したがって、予測サンプルの値を規定されたビット深さに制限し、又は前記差に加重値をおくことができる。例えば、ルマ(luma)成分の予測サンプルの場合、修正された左側境界サンプル620の値は、数式5のように導出されることができる。
図7は、本発明の一実施例に係るイントラ予測モードにおいて、予測方向が水平である場合を示す。
図7を参照すると、水平予測モード(Intra_Horizontal prediction mode)の場合、上段境界サンプル720にスムージングフィルタを適用することができる。
前述したように、現在ブロック700が水平予測モードに符号化された場合、予測サンプルの値は、左側参照サンプルの値として導出される。このとき、現在ブロック700の上段境界に隣接する参照サンプルは、方向性予測に使われないが、現在ブロック700の上段境界サンプルと隣接している。即ち、上段境界サンプル720の場合、予測に使われる参照サンプルである左側参照サンプル730との距離より予測に使われない参照サンプルである上段参照サンプル710との距離が近い。ここで、上段参照サンプル710は、現在ブロックの上段境界に隣接し、同じx座標を有するサンプル([x,-1])を意味し、左側参照サンプル730は、現在ブロックの左側境界に隣接し、同じy座標を有するサンプル([-1,y])を意味する。したがって、上段境界サンプル720の値は、隣接する上段参照サンプル710の値と類似する確率が高いため、上段境界サンプル720に対して図7のようにスムージングフィルタを適用することができる。図面で陰影処理された部分705はフィルタリング対象領域を示す。
例えば、係数が[1 1]/2のスムージングフィルタを適用すると、修正された上段境界サンプル620の値predSamples[x,y]は、数式6のように導出されることができる。
フィルタの係数は[1 1]/2に限定されるものではなく、[1 3]/4、[1 7]/8などの係数を有するフィルタを適用することもできる。また、現在ブロックの大きさによって適応的にフィルタの係数を決定することもできる。
一方、上段参照サンプルとのフィルタリングを実行するとき、周辺ブロックの情報をさらに考慮することもできる。例えば、左上段参照サンプル740を基準にして、上段境界サンプル720のx座標値によるサンプル値の変化を考慮し、数式7のように修正された上段境界サンプル720の値を導出することができる。
前述した方法により上段境界サンプル720の値を導出する場合、予測サンプルの値が規定されたビット深さ(bit depth)を超過することができる。したがって、予測サンプルの値を規定されたビット深さに制限し、又は前記差に加重値をおくことができる。例えば、ルマ(luma)成分の予測サンプルの場合、修正された上段境界サンプル720の値は、数式8のように導出されることができる。
一方、現在ブロックの予測モードに基づいて左側境界サンプル又は上段境界サンプルにスムージングフィルタを適用する方法を、垂直予測モード及び/又は水平予測モードだけでなく、他のイントラ方向性モードにも適用することができる。
例えば、イントラ方向性予測モードを予測方向に基づいて分類し、該当モードが属するグループによって適応的にフィルタリングを実行することもできる。
図8は、イントラ予測モードを予測方向によって分類した一例である。
イントラ予測モードの予測方向が右上向810である場合、垂直予測モードと同様に、左側境界サンプルにスムージングフィルタを適用することができる。また、イントラ予測モードの予測方向が左下向820である場合、水平予測モードと同様に、上段境界サンプルにスムージングフィルタを適用することができる。
図9は、本発明の一実施例に係るイントラ予測モードにおいて、予測方向が右上向である場合を示す。
前述したように、予測方向が右上向であるイントラ方向性予測モードに現在ブロック900が符号化された場合、予測サンプルの値は、現在ブロックの右側境界に隣接する参照サンプルと右上段に位置する参照サンプルのうち、予測方向に位置する参照サンプル910の値として導出される。このとき、現在ブロック900の左側境界に隣接する参照サンプルは使われないが、左側境界サンプルと隣接している。即ち、左側境界サンプル920の場合、予測方向に位置する参照サンプル910との距離より左側参照サンプル930との距離が近い。ここで、左側参照サンプル630は、現在ブロックの左側境界に隣接し、同じy座標を有するサンプル([-1,y])を意味する。したがって、左側境界サンプル920の値は、隣接する左側参照サンプル930の値と類似する確率が高いため、左側境界サンプル920に対して図9のようにスムージングフィルタを適用することができる。図面で陰影処理された部分905はフィルタリング対象領域を示す。
図10は、本発明の一実施例に係るイントラ予測モードにおいて、予測方向が左下向である場合を示す。
前述したように、予測方向が左下向であるイントラ方向性予測モードに現在ブロック1000が符号化された場合、予測サンプルの値は、現在ブロックの左側境界に隣接する参照サンプルと左下段に位置する参照サンプルのうち、予測方向に位置する参照サンプル1030の値として導出される。このとき、現在ブロック1000の上段境界に隣接する参照サンプルは使われないが、上段境界サンプルと隣接している。即ち、上段境界サンプル1020の場合、予測方向に位置する参照サンプル1030との距離より上段参照サンプル1010との距離が近い。ここで、上段参照サンプル1010は、現在ブロックの上段境界に隣接し、同じx座標を有するサンプル([x,-1])を意味する。したがって、上段境界サンプル1020の値は、隣接する上段参照サンプル1030の値と類似する確率が高いため、上段境界サンプル1020に対して図10のようにスムージングフィルタを適用することができる。図面で陰影処理された部分1005はフィルタリング対象領域を示す。
一方、前述したように、予測サンプルの値を導出する過程を、説明の便宜のために、予測サンプルの値を予測方向に位置する参照サンプルの値として導出するステップ、及び予測ブロックの左側境界サンプル及び上段境界サンプルのうち、予測方向に位置しない境界サンプルをフィルタリングして修正(modify)するステップに分けて説明したが、予測サンプルの値を導出する過程を複数のステップに分けずに、一つのステップで実行することができる。例えば、予測ブロックの左側境界サンプル及び上段境界サンプルのうち、予測方向に位置しない境界サンプルの値を導出する過程において、該当境界サンプルをフィルタリングするステップを別個のステップとして実行せずに、予測サンプルの値を予測方向に位置する参照サンプルの値として導出するステップと一つのステップで実行することができる。
例えば、図6の実施例において、左側境界サンプル620の値は、数式3~数式5のように、上段参照サンプル610と左側境界サンプルに隣接する参照サンプル630に基づいて導出されることができる。
例えば、図7の実施例において、上段境界サンプル720の値は、数式6~数式8のように左側参照サンプル730と上段境界サンプルに隣接する参照サンプル710に基づいて導出されることができる。
例えば、図9の実施例において、左側境界サンプル920の値は、予測方向に位置する参照サンプル910及び左側境界サンプルに隣接する参照サンプル930に基づいて導出されることができる。
例えば、図10の実施例において、上段境界サンプル1020の値は、予測方向に位置する参照サンプル1030及び上段境界サンプルに隣接する参照サンプル1010に基づいて導出されることができる。
一方、予測ブロックの左側境界サンプル及び上段境界サンプルのうち、予測方向に位置しない境界サンプルでない予測サンプルにはスムージングフィルタリングが実行されないため、予測サンプルの値は、予測方向に位置する参照サンプルの値として導出される。
例えば、現在ブロックが垂直予測モードに符号化された場合、左側境界サンプルでない予測サンプルの値は、数式9のように導出される。
例えば、現在ブロックが水平予測モードに符号化された場合、上段境界サンプルでない予測サンプルの値は、数式10のように導出される。
一方、現在ブロックの予測モードに基づいて左側境界サンプル又は上段境界サンプルにスムージングフィルタを適用する方法を該当境界サンプルの全ての予測サンプルに適用せずに、一部に限定して適用することもできる。
方向性予測に使われる参照サンプルとの距離が近い場合、予測サンプルの誤差は大きくない確率が高い。前記のような場合、スムージングフィルタを適用しないことが、即ち、他のサンプル情報を考慮しないことが正確である。したがって、境界サンプルのブロック内の位置によって、隣接する参照サンプルとのフィルタリングを実行するかどうかを決定することができる。
例えば、垂直予測モードにおいて、左側境界サンプルのうち一部にのみスムージングフィルタを適用したり、水平予測モードにおいて、上段境界サンプルのうち一部にのみスムージングフィルタを適用したりすることができる。
図11は、本発明の他の一実施例に係るイントラ予測モードにおいて、予測方向が垂直である場合を示す。図11を参照すると、左側境界サンプルのうち一部にのみスムージングフィルタを適用することができる。即ち、予測に使われる参照サンプルとの距離が遠いほど、予測の正確度が落ちるため、正確度が落ちる領域のサンプルにのみ限定してスムージングフィルタを適用することができる。
例えば、現在ブロック1100の高さ(height)の半分を基準として左側境界サンプルのうち、上段参照サンプル1110から遠く離れた左側境界サンプル1120にのみスムージングフィルタを適用することができる。図面で陰影処理された部分1105はフィルタリング対象領域を示す。
現在ブロックの予測モードが水平予測モードである場合にも、上段境界サンプルのブロック内の位置によって、隣接する参照サンプルとのフィルタリングを実行するかどうかを決定することができる。
図12は、本発明の他の一実施例に係るイントラ予測モードにおいて、予測方向が水平である場合を示す。図12を参照すると、上段境界サンプルのうち一部にのみスムージングフィルタを適用することができる。
例えば、現在ブロック1200の幅(width)の半分を基準として上段境界サンプルのうち、上段参照サンプル1230から遠く離れた上段境界サンプル1220にのみスムージングフィルタを適用することができる。図面で陰影処理された部分1205はフィルタリング対象領域を示す。
一方、スムージングフィルタが適用される領域は、現在ブロックの高さ又は幅の半分に限定されない。即ち、1/4又は3/4の大きさに設定されることもでき、イントラ予測モードによって予測に使われるサンプルとの距離に基づいて適応的に決定されることができる。この場合、スムージングフィルタを適用する領域をルックアップテーブル(look-up-table)に定義し、符号化器又は復号化器の計算上の負担(burden)を減少させることができる。
一方、本発明の技術的思想は、ルマ成分とクロマ(chroma)成分の両方ともに適用することができるが、ルマ成分にのみ適用し、クロマ成分には適用しなくてもよい。ルマ成分にのみ適用する場合、クロマ成分の予測サンプルの値は、一般的なイントラ予測モードと同じ方法により導出される。
図13は、本発明が適用されるシステムにおいて、符号化器の動作を概略的に説明する図面である。
符号化器は、現在ブロックに対する予測を実行する(S1310)。符号化器は、現在ブロックの予測モードに基づいて現在ブロックに対する予測ブロックを生成する。このとき、予測サンプルの値を導出するために、現在ブロックの周辺サンプル(neighboring samples)が参照サンプルとして使われることができる。
現在ブロックの予測モードがイントラ方向性予測モードである場合、符号化器は、予測ブロックの左側境界サンプル及び上段境界サンプルのうち、イントラ方向性予測モードの予測方向に位置しない境界サンプルの値を予測方向に位置する参照サンプル及び該当境界サンプルに隣接する参照サンプルに基づいて導出することができる。ここで、境界サンプルは、予測ブロック内に位置し、予測ブロックの境界に隣接するサンプルを意味する。
例えば、イントラ方向性予測モードが垂直予測モードである場合、符号化器は、左側境界サンプルの値を左側境界サンプルの上段参照サンプル及び左側境界サンプルに隣接する参照サンプルに基づいて導出することができる。ここで、上段参照サンプルは、現在ブロックの上段境界に隣接し、同じx座標を有するサンプルを意味する。
例えば、イントラ方向性予測モードが垂直予測モードである場合、符号化器は、左側境界サンプルの値を、左側境界サンプルの上段参照サンプル、左側境界サンプルに隣接する参照サンプル、及び現在ブロックの左上段に隣接する参照サンプルに基づいて導出することができる。
例えば、イントラ方向性予測モードが水平予測モードである場合、符号化器は、上段境界サンプルの値を上段境界サンプルの左側参照サンプル及び上段境界サンプルに隣接する参照サンプルに基づいて導出することができる。ここで、左側参照サンプルは、現在ブロックの左側境界に隣接し、同じy座標を有するサンプルを意味する。
例えば、イントラ方向性予測モードが水平予測モードである場合、符号化器は、上段境界サンプルの値を、上段境界サンプルの左側参照サンプル、上段境界サンプルに隣接する参照サンプル、及び現在ブロックの左上段に隣接する参照サンプルに基づいて導出することができる。
例えば、予測モードの予測方向が右上向である場合、符号化器は、左側境界サンプルの値を予測方向に位置する参照サンプル及び左側境界サンプルに隣接する参照サンプルに基づいて導出することができる。
例えば、予測モードの予測方向が左下向である場合、符号化器は、上段境界サンプルの値を予測方向に位置する参照サンプル及び上段境界サンプルに隣接する参照サンプルに基づいて導出することができる。
一方、符号化器は、予測ブロックの左側境界サンプル及び上段境界サンプルのうち、イントラ方向性予測モードの予測方向に位置しない境界サンプルでない予測サンプルの値を予測方向に位置する参照サンプルの値として導出することができる。
例えば、イントラ方向性予測モードが垂直予測モードである場合、符号化器は、予測サンプルの値を予測サンプルの上段参照サンプルの値として導出することができる。
例えば、イントラ方向性予測モードが水平予測モードである場合、符号化器は、予測サンプルの値を予測サンプルの左側参照サンプルの値として導出することができる。
符号化器は、予測ステップ(S1310)を介して生成された予測ブロックに対する情報をエントロピー符号化する(S1320)。エントロピー符号化には、前述したように、指数ゴロム、CABACのような符号化方法が使われることができ、各予測モード又は予測タイプの発生頻度を考慮してコードワードを割り当てることもできる。
符号化器は、エントロピー符号化ステップ(S1320)を介して符号化された情報をシグナリングする(S1330)。例えば、符号化器は、予測モード情報、予測ブロックと原本ブロックとの間の残差信号をシグナリングすることができる。また、イントラ予測を実行する過程でスムージングフィルタが適用された場合、スムージングフィルタの係数に対する情報をシグナリングすることもできる。
図14は、本発明が適用されるシステムにおいて、復号化器の動作を概略的に説明する図面である。
復号化器は、符号化器から情報を受信する(S1410)。符号化器から受信される情報は、ビットストリームに含まれて伝達されることができる。
復号化器は、情報受信ステップ(S1410)を介して受信された情報をエントロピー復号化する(S1420)。復号化器は、エントロピー復号化ステップ(S1520)を介して現在ブロックの予測のための情報、例えば、現在ブロックの予測方法(インター予測/イントラ予測等)、動きベクトル(インター予測)、予測モード(イントラ予測)、残差信号を取得することができる。
復号化器は、エントロピー復号化ステップ(S1420)を介して取得された情報に基づいて現在ブロックに対する予測を実行する(S1430)。復号化器は、現在ブロックの予測モードに基づいて現在ブロックに対する予測ブロックを生成する。このとき、予測サンプルの値を導出するために、現在ブロックの周辺サンプル(neighboring samples)が参照サンプルとして使われることができる。
復号化器で実行される予測方法は、符号化器で実行される予測方法と同一又は類似する。
即ち、現在ブロックの予測モードがイントラ方向性予測モードである場合、復号化器は、予測ブロックの左側境界サンプル及び上段境界サンプルのうち、イントラ方向性予測モードの予測方向に位置しない境界サンプルの値を予測方向に位置する参照サンプル及び該当境界サンプルに隣接する参照サンプルに基づいて導出することができる。
例えば、イントラ方向性予測モードが垂直予測モードである場合、復号化器は、左側境界サンプルの値を左側境界サンプルの上段参照サンプル及び左側境界サンプルに隣接する参照サンプルに基づいて導出することができる。
例えば、イントラ方向性予測モードが垂直予測モードである場合、復号化器は、左側境界サンプルの値を、左側境界サンプルの上段参照サンプル、左側境界サンプルに隣接する参照サンプル、及び現在ブロックの左上段に隣接する参照サンプルに基づいて導出することができる。
例えば、イントラ方向性予測モードが水平予測モードである場合、復号化器は、上段境界サンプルの値を上段境界サンプルの左側参照サンプル及び上段境界サンプルに隣接する参照サンプルに基づいて導出することができる。
例えば、イントラ方向性予測モードが水平予測モードである場合、復号化器は、上段境界サンプルの値を上段境界サンプルの左側参照サンプル、上段境界サンプルに隣接する参照サンプル、及び現在ブロックの左上段に隣接する参照サンプルに基づいて導出することができる。
例えば、予測モードの予測方向が右上向である場合、復号化器は、左側境界サンプルの値を予測方向に位置する参照サンプル及び左側境界サンプルに隣接する参照サンプルに基づいて導出することができる。
例えば、予測モードの予測方向が左下向である場合、復号化器は、上段境界サンプルの値を予測方向に位置する参照サンプル及び上段境界サンプルに隣接する参照サンプルに基づいて導出することができる。
また、復号化器は、予測ブロックの左側境界サンプル及び上段境界サンプルのうち、イントラ方向性予測モードの予測方向に位置しない境界サンプルでない予測サンプルの値を予測方向に位置する参照サンプルの値として導出することができる。
例えば、イントラ方向性予測モードが垂直予測モードである場合、復号化器は、予測サンプルの値を予測サンプルの上段参照サンプルの値として導出することができる。
例えば、イントラ方向性予測モードが水平予測モードである場合、復号化器は、予測サンプルの値を予測サンプルの左側参照サンプルの値として導出することができる。
復号化器は、予測ステップ(S1430)を介して生成された予測ブロックに基づいて映像を復元する(S1440)。
以上、前述した例示的なシステムにおいて、方法は一連のステップ又はブロックで表現された流れ図に基づいて説明されているが、本発明は、ステップの順序に限定されるものではなく、一部のステップは、異なるステップと、異なる順序又は同時に発生することができる。また、前述した実施例は、多様な態様の例示を含む。したがって、本発明は、特許請求の範囲内に属する全ての交替、修正、及び変更を含む。
以上、本発明に対する説明において、一構成要素が他の構成要素に「連結されている」又は「接続されている」と言及された場合、一構成要素が他の構成要素に直接的に連結されている、又は接続されているが、二つの構成要素間に他の構成要素が存在することもできると理解しなければならない。反面、一構成要素が他の構成要素に「直接連結されている」又は「直接接続されている」と言及された場合、二つの構成要素間に他の構成要素が存在しないと理解しなければならない。