(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0039】
以下、添付の図面を参照して本発明の好適な実施例を詳細に説明する。ここで、本明細書及び特許請求の範囲に使用された用語や単語は、通常的又は辞典的な意味に限定して解釈してはならず、発明者が自身の発明を最善の方法で説明するために用語の概念を適切に定義できるとの原則に立脚し、本発明の技術的思想に符合する意味と概念に解釈しなければならない。したがって、本明細書に記載された実施例と図面に示した構成は、本発明の最も望ましい一実施例に過ぎないもので、本発明の技術的思想を全て代弁するものではないので、本出願時点でこれらに取って代わる多様な均等物と変形例があり得ることを理解しなければならない。
【0040】
特に、本発明において、コーディングは、エンコーディング及びデコーディングを全て含む概念として理解しなければならず、周辺ブロックは、デコーディングが既に完了した現在ブロックの周辺に位置するブロックと理解しなければならない。
【0041】
図1は、本発明の一実施例に係るビデオ信号エンコーディング装置100の概略的なブロック図である。
図1を参照すれば、本発明の一実施例に係るビデオ信号エンコーディング装置100は、変換部110、量子化部115、コーディング制御部120、逆量子化部130、逆変換部135、フィルタリング部140、フレーム格納部145、動き推定部150、インター予測部160、イントラ予測部170及びエントロピーコーディング部180を含む。
【0042】
変換部110は、画素値を変換して変換係数値を獲得するが、このとき、離散コサイン変換(DCT:Discrete Cosine Transform)又はウェーブレット変換方式が使用される。特に、離散コサイン変換は、入力された映像信号を8*8ブロックに分け、少ない数の映像信号に信号を集中させることによって圧縮効率を増加させるが、本発明で提案する離散コサイン変換の実施例については、後で
図23及び
図24を参考にして説明することにする。量子化部115は、変換部110によって出力された変換係数値を量子化する。コーディング制御部120は、特定ブロック又はフレームの画面内符号化を行うか、又は画面間符号化を行うかを制御する。逆量子化部130及び逆変換部135は、変換係数値を逆量子化し、逆量子化された変換係数値を用いて元の画素値を復元する。
【0043】
フィルタリング部140は、ブロック歪曲現象を減少させるために、コーディングされたそれぞれのマクロブロックに適用される。フィルタは、ブロックの縁部を滑らかにし、デコーディングされたピクチャの画質を向上させる。フィルタリング過程の選択は、境界強さと境界周囲のイメージサンプルの変化によって左右される。フィルタリングを経たピクチャは、出力され、参照ピクチャとして用いるためにフレーム格納部145に格納される。
【0044】
動き推定部150は、フレーム格納部145に格納された参照ピクチャを用いて、参照ピクチャのうち現在ブロックと最も類似した参照ブロックを探索する。動き推定部150は、探索された参照ブロックの位置情報などをエントロピーコーディング部180に伝達し、これをビットストリームに含ませることができる。インター予測部160は、参照ピクチャを用いて現在ピクチャの予測を行い、画面間符号化情報をエントロピーコーディング部180に伝達する。ここで、画面間符号化情報は、現在ブロックと予測されたブロック(プレディクタ)との差であるレジデュアルを含む。インター予測部160に対する第4の実施例〜第9の実施例は、後で図面を参照して具体的に説明することにする。
【0045】
また、イントラ予測部170は、現在ピクチャ内のデコーディングされたピクセルから画面内予測を行い、画面内符号化情報をエントロピーコーディング部180に伝達する。より詳細には、現在ピクチャ内で周辺ブロックのピクセルを用いて現在ブロックを予測し、現在ブロックと予測された現在ブロックとの差であるレジデュアルを生成する。イントラ予測部170に対する第1の実施例〜第3の実施例は、
図3A〜
図11Cを参照して具体的に説明することにする。
【0046】
エントロピーコーディング部180は、量子化された変換係数、画面間符号化情報、画面内符号化情報及び動き推定部160から入力された参照ブロック情報などのエントロピーコーディングを行い、ビデオ信号ビットストリームを生成する。ここで、エントロピーコーディング部180では、可変長さコーディング(VLC:Variable Length Coding)方式と算術コーディングが使用される。可変長さコーディング(VLC)方式は、入力される各シンボルを連続的なコードワードに変換するが、コードワードの長さは可変的である。例えば、頻繁に発生する各シンボルを短いコードワードとして表現し、頻繁に発生しない各シンボルを長いコードワードとして表現する。可変長さコーディング方式として、コンテキスト基盤の適応型可変長さコーディング(CAVLC:Context―based Adaptive Variable Length Coding)方式が使用される。算術コーディングは、連続的な各データシンボルを一つの素数に変換するが、算術コーディングは、各シンボルを表現するために必要な最適の素数ビットを得ることができる。算術コーディングとして、コンテキストベース適応型2値算術符号化(CABAC:Context―based Adaptive Binary Arithmetic Code)が用いられる。
【0047】
図2は、本発明の一実施例に係るビデオ信号デコーディング装置を示す概略的なブロック図である。
図2を参照すれば、本発明のビデオ信号デコーディング装置は、大きくエントロピーデコーディング部210、逆量子化部220、逆変換部225、フィルタリング部230、フレーム格納部240、インター予測部250及びイントラ予測部260を含む。
【0048】
エントロピーデコーディング部210は、ビデオ信号ビットストリームのエントロピーデコーディングを行い、各マクロブロックの変換係数、動きベクトルなどを抽出する。逆量子化部220は、エントロピーデコーディングされた変換係数を逆量子化し、逆変換部225は、逆量子化された変換係数を用いて元の画素値を復元する。一方、フィルタリング部230は、ブロック歪曲現象を減少させるためにコーディングされたそれぞれのマクロブロックに適用される。フィルタは、ブロックの縁部を滑らかにし、デコーディングされたピクチャの画質を向上させる。フィルタリングを経たピクチャは、出力され、参照ピクチャとして用いるためにフレーム格納部240に格納される。インター予測部250は、フレーム格納部240に格納された参照ピクチャを用いて現在ピクチャを予測するが、このとき、
図1を参照して説明したように、参照ピクチャを用いるようになる。また、エントロピーデコーディング部210から伝達された画面間予測情報(参照ピクチャインデックス情報、動きベクトル情報など)を用いることができる。
【0049】
一方、イントラ予測部260では、現在ピクチャ内のデコーディングされたピクセルから画面内予測を行うようになる。イントラ予測部265又はインター予測部260から出力された予測値及び逆変換部225から出力された画素値が加算され、復元されたビデオフレームが生成される。
【0050】
以下、本発明では、まず、エンコーディング装置のイントラ予測部170及びインター予測部160、デコーディング装置のイントラ予測部260及びインター予測部250でビデオ信号を効率的にデコーディングするための新しい各実施例を提示する。まず、イントラ予測部170、260の第1の実施例〜第4の実施例について説明した後、インター予測部160、250の第5の実施例〜第9の実施例について説明する。第1の実施例は
図3〜
図6Bを参照して説明し、第2の実施例は
図7及び
図8Bを参照して説明し、第3の実施例は
図9及び
図10を参照して説明し、第4の実施例は
図11〜
図12を参照して説明する。
【0051】
図3は、本発明の第1の実施例の拡張予測モードが採用される周辺ピクセル領域を示す図で、
図4A〜
図4Cは、拡張予測モードを用いるために補間された周辺ピクセルを示す図である。また、
図5は、拡張予測モードを採用したビデオ信号のエンコーディング/デコーディング順序を示すフローチャートである。
図6Aは、ビデオ信号エンコーディング装置のうちイントラ予測部の第1の実施例の構成を示す図で、
図6Bは、ビデオ信号デコーディング装置のうちイントラ予測部の第1の実施例の構成を示す図である。
【0052】
まず、
図3を参照すれば、一つのフレームは、複数個のイントラブロック単位の集合で構成される。前記単位ブロックは、イントラ4*4ブロックであったり、イントラ8*8又はイントラ16*16である。一般的に、イントラN*Nブロックは、9個の予測モードを用いてイントラ予測を行うことができ、前記予測モードは、現在ブロックの左側に位置する4個のピクセル及び上端の8個のピクセルを用いて予測を行う。しかし、
図3に示すように、現在ブロックが境界領域に位置する場合、イントラ予測のために用いられるピクセルが存在しないことがある。このような境界領域は、上端部のうち最も左側のブロック(A)、上端部(B)、左側部(C)及び右側部(D)である。
【0053】
フレームの上端部のうち最も左側のブロック(A)は、予測を用いる現在ブロックの左側ピクセル及び上部ピクセルが全て存在しないので、9個の予測モードのうち平均値を用いるDCモード(モード2)のみを採択することができる。上端部(B)は、現在ブロックの上部ピクセルが存在しないので、予測モード1(Horizontal direction)、モード2(DC)及びモード8(Horizontal Up direction)のみを用いることができ、左側部(C)は、モード0(Vertical direction)、モード2(DC)、モード3(Diagonal Down Left)及びモード7(Vertical Left)のみを用いることができる。また、右側部(D)に該当するブロックは、モード3(Diagonal Down Left)及びモード7(Vertical Left)を除いた6個の予測モードのみを用いることができる。
【0054】
このように、境界領域に位置する各ブロック(A、B、C、D)は、利用可能な予測モードに制限を有するが、現在のエントロピーコーディング部180、210で可変長さ方式(VLC:Variable Length Coding)によってコーディングされる場合、無条件に最大4ビットが伝送されるように制限されている。したがって、空いている予測モードの数だけビット損失が発生するようになる。
【0055】
本発明の第1の実施例では、現在ブロックが境界領域(A、B、C、D)に位置する場合、現在存在する周辺ピクセルを用いて空いている周辺ピクセルを補間することをさらに含む。したがって、境界領域に位置する各ブロックに制限されない9個の予測モードを全て用いることができ、このような予測モードを拡張イントラ予測モードという。
【0056】
以下では、本発明の拡張イントラ予測モードを用いるために、境界領域に位置するブロックの周辺ピクセルを補間する方法を説明する。
【0057】
現在ブロックが上端部のうち最も左側のブロック(A)である場合、空いているモード0、1、3〜7にそれぞれ異なるDC予測値を代入して伝送する。例えば、現在モード2で有する128のDC予測値の他に、モード0には108のDC予測値を代入し、モード1には118を代入し、モード3には138を代入し、モード4には148を代入し、モード5には98を代入し、モード6には88を代入し、モード7には158を代入し、モード8には168を代入して伝送することによって、最も良いコーディング効率及び復元率を有する値を選択できるようになる。
【0058】
現在ブロックが上端部(B)、左側部(C)及び右側部(D)に位置する場合、補間された周辺ピクセルについて
図4A〜
図4Cに示す。
【0059】
まず、
図4Aは、現在ブロックが上端部(B)に位置する場合の補間されたピクセルを示した図である。
図4Aを参照すれば、現在ブロックの左側に位置するI、J、K、Lピクセルは、Aブロックに属するピクセルとして存在するが、上部のx、a〜hピクセルは元々存在しない。したがって、前に存在したI、J、K、Lピクセルを用いて上部のx、a〜hピクセルを補間することによって各ピクセルを生成することができる。
【0060】
x、a〜hピクセルを補間するために多様な方法を用いることができる。例えば、x、a〜hピクセルにIピクセルをそのまま補間して用いることができ、I、Jピクセルの平均値をx、a〜hピクセルに補間することができる。また、I〜Lピクセル値をa〜dピクセルとe〜hピクセル値にそのまま反映し、I〜Lピクセルの平均値をxピクセルに補間する方法を採択することができる。x、a〜hピクセルを補間する方法は、前記I〜Lピクセルを用いる方法に限定されず、復元されたAブロック(現在ブロックの左側ブロック)に残りのピクセルを用いることもできる。
【0061】
まず、
図4Bは、現在ブロックが左側部(B)に位置する場合の補間されたピクセルを示した図である。
図4Bを参照すれば、現在ブロックの上部に位置するa〜hピクセルは、復元されたA、Bブロックに属するピクセルとして存在するが、左側のx、I〜Lピクセルは元々存在しないピクセルである。したがって、前に存在したa〜hピクセルを用いて左側のx、I〜Lピクセルを補間することによって各ピクセルを生成することができる。
【0062】
前記xピクセル及びI〜Lピクセルを生成するために、例えば、aピクセルをxピクセル及びI〜Lピクセルにそのまま補間して用いることができ、a〜dピクセルの平均値をxピクセル及びI〜Lピクセルに補間することができ、a〜dピクセルの平均値をxピクセルに補間し、a〜dピクセル値をI〜Lピクセル値にそのまま反映することができる。しかし、前記補間方法は、これに限定されず、復元されたAブロック及びBブロックの残りのピクセルを用いることができる。
【0063】
まず、
図4Cは、現在ブロックが右側部(C)に位置する場合の補間されたピクセルを示した図である。
図4Cを参照すれば、現在ブロックの上部及び左側に位置するa〜hピクセルとI〜Lピクセルは、復元されたA、Bブロックに属するピクセルとして存在するが、上部右側のe〜hピクセルは元々存在しないピクセルである。したがって、前に存在したa〜hピクセル及びI〜Lピクセルを用いてe〜hピクセルを補間することによって各ピクセルを生成することができる。
【0064】
前記e〜hピクセルを生成するために多様な補間方法を用いることができる。例えば、a〜dピクセルの平均値をe〜hピクセル値として用いることができ、I〜Lピクセルの平均値をe〜hピクセル値として用いることができ、dピクセル値をe〜hピクセル値として用いることもできる。前記補間方法は、これに限定されず、復元されたAブロック及びBブロックの残りのピクセルを用いることができる。
【0065】
図5及び
図6Aを参照すれば、ビデオ信号のエンコーディング装置のうちイントラ予測部170は、補間決定部610、補間ブロック生成部620及び予測モード決定部630を含む。まず、現在ブロックに対する情報が入力されれば、補間決定部610は、現在ブロックが境界領域(画面上端部のうち最も左側ブロック、上端部、左側部、右側部)に該当するかどうかを判断し、補間を行うかどうかを決定する。現在ブロックが境界領域に該当するかどうかは、現在ブロックの位置情報によって判断する(S510段階)。例えば、現在ブロックの位置は、現在ブロックを構成するピクセル値を用いて知ることができる。一方、補間決定部510は、補間を行うことが決定される場合、現在ブロックの周辺ピクセルが補間を用いて生成されたかどうかを示す補間情報を生成し、これをビットストリームに含ませることができる。前記補間情報は、現在ブロックが境界領域のうちいずれの位置に存在するかを示すことができ、補間が行われたかどうかを示すこともでき、例えば、フラグ形態で存在することもできる。
【0066】
補間ピクセル生成部620は、現在ブロックの位置情報を用いて現在ブロックが境界領域に該当すると判断される場合、周辺ブロック及び現在ブロックに対する情報を受け、周辺ブロックのピクセルを用いて補間ピクセルを生成する(S520段階)。補間ブロック生成部620で元々存在しない補間ピクセルを生成する方法は、
図4A〜
図4Cを参照して説明した方法と同一である。
【0067】
補間決定部610で現在ブロックが境界領域に位置しないと判断される場合、現在ブロックのイントラ予測のための周辺ピクセルが全て存在するので、現在ブロックに対する情報は予測モード決定部630に入力される。
【0068】
補間を行うことによって、現在ブロックの全ての周辺ピクセルが生成された後、周辺ブロックに対する情報及び現在ブロックに対する情報は予測モード決定部630に入力される。予測モード決定部630は、補間された各周辺ピクセルを用いて現在ブロックの9個のイントラ予測を行った後、予測モードを決定する(S530段階)。また、決定された予測モードによって予測されたブロック(プレディクタ)と現在ブロックとの差であるレジデュアルを生成し、予測モード情報、レジデュアル及び前記のように生成された補間情報をビットストリームに含ませてデコーディング装置に伝送する(S540段階)。
【0069】
図5及び
図6Bを参照すれば、デコーディング装置(のエントロピーデコーディング部)は、予測モード情報、補間情報及びレジデュアルを受信する(S550段階)。その後、デコーディング装置のイントラ予測部260の補間ブロック復元部640は、受信された補間情報及び周辺ブロックを用いて補間ブロックを復元する(S560段階)。デコーディング装置の補間ブロックを復元する段階は、
図4A〜
図4Cを参照して説明した通りである。
【0070】
現在ブロック復元部650は、S560段階で生成された補間ブロック及びS550で受信された予測モード情報を用いて現在ブロックのイントラ予測を生成し(S570段階)、前記イントラ予測及び受信されたレジデュアルを用いて現在ブロックを復元する(S580段階)。
【0071】
このように、本発明の第1の実施例は、周辺ピクセルを補間して現在ブロックのイントラ予測に用いることによって、現在ブロックが境界領域に位置するとしても、イントラ予測を用いてコーディングすることができる。
【0072】
また、本発明の第2の実施例は、イントラ予測を用いて現在フレームを復元するにおいて、ブロック単位としてジグザグ方向に復元するのとは異なり、現在フレームを構成する複数個のブロックが同時にピクセル単位で復元される新しいイントラ予測モードを提案する。すなわち、現在フレームで左側上端に位置するブロックのイントラ予測を行った後、右側ブロックのイントラ予測を順次進行するのでなく、現在フレームを構成する複数個のブロックで既に設定された順序によって各ピクセルのイントラ予測を順次行う。このような現在フレームのイントラ予測方法をフレーム―ピクセル予測モードといい、これについては
図7〜
図8Pを参照して詳細に説明する。
【0073】
図7は、本発明の第2の実施例に係るフレーム―ピクセル予測モードを行う順序を示すフローチャートである。
図7に示すように、現在フレームがフレーム―ピクセル予測モードを採択する場合、現在ブロックは、まず、復元された以前のフレームに位置する周辺ブロックを用いて現在ブロックの第1のピクセルを予測する(S710段階)。このとき、現在ブロックで最も先にイントラ予測が行われる第1のピクセルは、現在ブロックで最も右側下端に位置するピクセルであるが、これに限定されることはない。その後、第1のピクセルを用いて隣接ピクセルのイントラ予測を行い、ピクセル予測情報及びレジデュアルを生成する(S720段階)。前記ピクセル予測情報(以下、PPIという)は、隣接ピクセルのイントラ予測に用いられた予測ピクセル(プレディクタ)、予測方法及び予測方向のうちいずれか一つ以上を含むことができる。また、レジデュアルは、ピクセル予測情報によって予測されたピクセル(プレディクタ)と現在ピクセルとの差であり、ピクセル単位で生成される。
【0074】
隣接ピクセルのイントラ予測が行われれば、本発明のエンコーディング装置100のイントラ予測部170及びデコーディング装置のイントラ予測部260は、現在ブロックのイントラ予測が全て完了したかどうかを判断し(S730段階)、現在ブロックのイントラ予測が全て完了した場合、S720段階で生成されたピクセル予測情報(PPI)及びレジデュアルを伝送する(S740段階)。
【0075】
その一方、現在ブロックのイントラ予測が全て完了していない場合、既に予測された各ピクセルを用いて隣接ピクセルを予測し、ピクセル予測情報(PPI)及びレジデュアルを生成する段階を反復する。このとき、予測が完了したピクセルを用いて予測される各隣接ピクセルは、予測順序によって第2のピクセル、第3のピクセル、…、第Nのピクセルという。前記第1のピクセル〜第Nのピクセルのイントラ予測を行う方法については、後で
図8A〜
図8Pを参照して詳細に説明する。
【0076】
本発明の第2の実施例に係るデコーディング装置のインター予測部260は、まず、ピクセル予測情報(PPI)及びレジデュアルを受信し(S750段階)、受信されたピクセル予測情報(PPI)及びレジデュアルを用いて現在ブロックの第1のピクセルを復元する(S760段階)。前記第1のピクセルの復元のために用いられるレジデュアルは、他のピクセルとは異なり、以前のフレームに位置するピクセルと第1のピクセルとの差値からなる。
【0077】
その後、復元された第1のピクセル、ピクセル予測情報及びレジデュアルを用いて第2のピクセルを復元し(S770段階)、現在ブロックの復元が完了したかどうかを判断した後(S780段階)、現在ブロックの復元が完了していない場合、復元された第1のピクセル、第2のピクセル、ピクセル予測情報及びレジデュアルを用いて再び第3のピクセルを復元し、これら各段階は、現在ブロックの復元が完了するまで継続的に行われる。本発明の第2の実施例に係るエンコーディング装置及びデコーディング装置のイントラ予測部170、260で現在ブロックを予測及び復元する方法については、
図8A〜
図8Pを参照して説明する。
【0078】
本発明の第2の実施例に係るフレーム―ピクセルイントラ予測モードは、
図8Aに示すように、以前のフレームに位置する各ピクセルを用いて現在ブロックのうち最も右側下端に位置した第1のピクセル(
図8Aのピクセル0)の先にイントラ予測を最も先に行う。このとき、第1のピクセルを予測するための予測モードとしては、従来の9個の予測モードを全て用いることができ、イントラ予測と同時に、エンコーディング装置のイントラ予測部170では、ピクセル予測情報(PPI)とレジデュアルが生成される。前記第1のピクセルのピクセル予測情報は、以前のフレームに位置し、ピクセル予測に用いられた各ピクセル(プレディクタ)であって、予測方法は、9個の予測モードのうち最も効率性が高い予測モードであって、レジデュアルは、第1のピクセルの予測に用いられた各ピクセルと第1のピクセルとの間の差である。
【0079】
第2のピクセルのイントラ予測は、第1のピクセル(0)を用いて行われる。本発明の第2の実施例に係るフレーム―ピクセル予測モードは、第2のピクセル〜第Nのピクセル(第1のピクセルは除く)のイントラ予測モードとして次のような二つの方法を用いるが、これに限定されることはない。
【0080】
第一の方法は、隣接した各ピクセルの平均値を用いて予測する方法で、第二の方法は、方向性によって予測する方法である。すなわち、第一の方法は、イントラ予測を行おうとする現在ピクセルと最も隣接した各ピクセルの平均値を予測ピクセル(プレディクタ)として用いて現在ピクセルのイントラ予測を行う。第二の方法は、まず、現在ピクセルを中心にして可能な8個の方向に対して最も近い二つのピクセル間の差を計算し、最も小さい差値を有する方向を予測方向として決定する。選択された予測方向で現在ピクセルと最も近い二つのピクセルの平均値を現在ピクセルの予測ピクセル(プレディクタ)として用いて現在ピクセルのイントラ予測を行う。また、イントラ予測と同時に、ピクセル予測情報とレジデュアルが生成される。
【0081】
図8Bを参照すれば、第2のピクセル(1)は、第1のピクセル(0)の平均値を用いてイントラ予測を行うことができ、第2のピクセル(1)を中心にして第1の方向(第2の方向の計算値は同一であるので省略)に位置した第1のピクセル(0)間の差を計算し、第1のピクセル(0)の平均値を予測ピクセルとして用いてイントラ予測を行う。また、イントラ予測と同時に、ピクセル予測情報とレジデュアルが生成される。
【0082】
図8Cを参照すれば、第3のピクセル(2)は、周辺の予測が完了した第1のピクセル(0)及び第2のピクセル(1)を第3のピクセルの予測ピクセル(プレディクタ)として用いて第3のピクセルのイントラ予測を行う。
図8Cに示すように、第3のピクセル(2)は、隣接した第1のピクセル(0)及び第2のピクセル(1)の平均値を予測ピクセルとして用いることができる。また、
図8Cの第1の方向及び第2の方向での近いピクセル間の差を求めて予測方向を決定し、予測方向で近い二つのピクセル(第1の方向の選択時には二つの第1のピクセル(0)、第2の方向の選択時には二つの第2のピクセル(1))の平均を予測ピクセルとして用いることができる。また、イントラ予測と同時に、ピクセル予測情報とレジデュアルが生成される。
【0083】
図8Dを参照すれば、第4のピクセル(3)は、予測が完了した第1のピクセル(0)〜第3のピクセル(2)を第4のピクセルの予測ピクセル(プレディクタ)として用いて第4のピクセルのイントラ予測を行う。
図8Dに示すように、第4のピクセル(3)は、隣接した第1のピクセル(0)、第2のピクセル(1)及び第3のピクセル(2)の平均値を予測ピクセルとして用いることができる。また、
図8Dの第1の方向〜第3方向で近いピクセル間の差を求め、例えば、第1の方向では二つの第2のピクセル(1)間の差を求め、これを比較して予測方向を決定し(例えば、第2の方向)、予測方向(第2の方向)で近い二つのピクセル(第3のピクセル(2))の平均を予測ピクセルとして用いることができる。また、イントラ予測と同時に、ピクセル予測情報とレジデュアルが生成される。
【0084】
また、
図8Eを参照すれば、第5のピクセル(4)は、予測が完了した第1のピクセル(0)〜第4のピクセル(3)を第5のピクセルの予測ピクセル(プレディクタ)として用いて第5のピクセルのイントラ予測を行う。
図8Eに示すように、第5のピクセル(4)は、隣接した第1のピクセル(0)、第2のピクセル(1)及び第3のピクセル(2)の平均値を予測ピクセルとして用いることができる。また、
図8Eの第1の方向及び第2の方向で近いピクセル間の差を求め、これを比較して予測方向を決定し、決定された予測方向で近い二つのピクセルの平均を予測ピクセルとして用いることができる。
【0085】
例えば、
図8Eを参照すれば、第3のピクセル(2)及び第4のピクセル(3)を含む第1の方向と第1のピクセル(0)及び第2のピクセル(1)を含む第2の方向での二つのピクセル間の差を求め、これを比較し、より小さい値を有する方向を予測方向として決定する。第1の方向が予測方向として選択される場合、第5のピクセル(4)のイントラ予測を行うための予測ピクセル(プレディクタ)は、第5のピクセル(4)と第1の方向で隣接した第3のピクセル(2)と第4のピクセル(3)の平均である。また、イントラ予測と同時に、ピクセル予測情報とレジデュアルが生成される。
【0086】
このような方法で、
図8F〜
図8Pに示すように、予測が完了した周辺ピクセルを用いて第6のピクセル(5)〜第16のピクセル(15)のイントラ予測を行うことができ、イントラ予測と同時に、各ピクセルと関連したピクセル予測情報とレジデュアルが生成される。
【0087】
また、第1のピクセル〜第Nのピクセルのイントラ予測が行われ、各ピクセルに関するピクセル予測情報とレジデュアルが生成されるごとに、現在ブロックのイントラ予測が完了したかどうかを判断する。現在ブロックのイントラ予測が完了した場合、第1のピクセル〜第Nのピクセルに対するピクセル予測情報とレジデュアルを伝送するようになる。
【0088】
本発明のビデオ信号のデコーディング装置のイントラ予測部270は、第1のピクセル〜第Nのピクセルに対するピクセル予測情報とレジデュアルを受け、現在ブロックの復元を行う。まず、受信された第1のピクセルのピクセル予測情報とレジデュアルを用いて現在ブロックの第1のピクセルを復元し、復元された第1のピクセルと第2のピクセルのピクセル予測情報及びレジデュアルを用いて現在ブロックの第2のピクセルを復元する。このような方式で、現在ブロックの第Nのピクセルまで順次復元し、現在ブロックの復元を完了することができる。
【0089】
このように、本発明の第2の実施例に係るビデオ信号のデコーディング方法は、現在ブロックが周辺ブロックのピクセルのみならず、現在ブロックの隣接ピクセルをイントラ予測に用いることによって、より正確な予測が可能になる。また、各隣接ピクセルは、二つ以上の方向から選択されたプレディクタ値を用いて予測するので、離散コサイン変換時よりも多い0の係数を有するブロックが生成され、コーディング効率を高めることができる。
【0090】
本発明の第3の実施例は、現在ブロックのイントラ予測を行うにおいて、一定の場合、周辺ブロックから予測を行わず、周辺ブロックのピクセル値をそのまま用いるイントラスキップモードを提案する。
図9は、本発明の第3の実施例に係るビデオ映像を示す図で、
図10は、本発明の第3の実施例に係るビデオ信号のエンコーディング及びデコーディング順序を示すフローチャートである。
【0091】
従来のイントラ予測は、16*16ブロック、8*8ブロック及び4*4ブロックを用い、9個のイントラ予測モードを用いて行われる。しかし、画面間相関度が低下し、イントラ予測モードを用いなければならないとき、現在ブロックと周辺ブロックが類似した場合は、従来のイントラ予測を行うよりも、周辺ブロックをそのまま用いる方がより効率的である。
【0092】
図9を参照すれば、
図9の帽子に表れたボックス(Box A)や顔の左側のボックス(Box B)と以前の画面との相関度が低下し、インター予測を用いることができない場合を仮定する。この場合、イントラ予測を行うが、ボックス内部の各ブロックは類似性を有するので、周辺ブロックのピクセル値をそのまま現在ブロックのピクセル値として用い、別途にイントラ予測を行わないイントラスキップモードを用いることが効率的である。このとき、予測モード情報及びレジデュアルが伝送されないことは当然である。
【0093】
図10を参照すれば、まず、現在ブロックは、イントラ予測及びインター予測のうちいずれの予測を行うかを決定する(S1010段階)。現在ブロックのイントラ予測又はインター予測を決定するのは、従来の方法と同一である。前記段階で現在ブロックがイントラ予測を行うと決定される場合、イントラスキップモードは、現在ブロックが従来のイントラ予測を行う場合よりも効率が良い場合のみに採択される。まず、現在ブロックは、イントラ予測モードを用いた場合とイントラスキップモードを用いた場合のRDコストを全て計算する(S1020段階)。このとき、RDコスト(以下、効率)は、下記の数学式1のように計算される。
【0095】
ここで、Dは、SSD(sum of square distortion)で、Rは、要求ビット数である。
【0096】
効率を計算した後、現在ブロックがイントラスキップモードを用いるとき、効率がより良い場合にイントラスキップモードを採択し(S1030段階の「Yes」)、予測ブロックを決定し、イントラスキップ情報及び選択された予測ブロック情報を伝送する(S1040段階)。前記イントラスキップ情報は、現在ブロックがイントラスキップモードを用いたかどうかを示すフラグ情報(intra
Skip
flag)である。
【0097】
本発明のデコーディング装置のイントラ予測部260は、イントラスキップ情報及び予測ブロック情報を受信する(S1050段階)。前記イントラスキップ情報がフラグ情報の形態である場合、イントラスキップモードフラグ情報の意味は、下記の表1に示す通りである。
【0099】
受信されたイントラスキップモードフラグ情報(intra
skip
flag)が1である場合、本発明のデコーディング装置のうちイントラ予測部260は、予測ブロック情報によって予測ブロックのピクセル値を現在ブロックのピクセル値としてそのまま用いる(S1060段階)。
【0100】
その一方、現在ブロックがイントラ予測モードを用いるように決定された場合(S1030段階での「No」)、イントラN*N予測を行い、レジデュアル及び予測モード情報を伝送する(S1070段階)。また、本発明のデコーディング装置のうちイントラ予測部260では、前記レジデュアル及び予測モード情報を受信し、従来のイントラ予測方法を用いて現在ブロックを復元する(S1080段階)。
【0101】
このように、本発明の第3の実施例によって現在ブロックのイントラ予測を行うためにイントラスキップモードを用いる場合、インター予測が非効率的であり、周辺ブロックと類似したビデオ信号の予測及び復元に効率的である。また、イントラ予測を行う必要がなく、レジデュアル及びCBPを伝送する必要がないので、使用されるビット率を減少させることができる。
【0102】
イントラ予測を行うフレームは、イントラ16*16ブロック、イントラ8*8ブロック及びイントラ4*4ブロックにコーディングされる。それぞれのモードで、特定ブロックは、既に復元された上部及び左側に位置したブロックを用いて予測される。特に、イントラ4*4ブロックを用いるモードは高周波領域で用いられるが、現在ブロックのイントラ予測のために、予測ブロック(プレディクタ)は、上部及び左側に位置したブロックのみを用いるように制限される。しかし、これは、現在ブロックを予測及び復元するのに充分でなく、現在ブロックが境界に位置する場合に非効率的である。したがって、現在ブロックの予測のために、以前に復元されたブロックのみならず、次に復元されるブロックを用いることによって、より正確な予測を可能にすることができる。
【0103】
したがって、本発明の第4の実施例は、このようなイントラ予測モードの問題を解決するために、現在ブロックを含む現在フレームの新しいイントラ予測方法である分離イントラ予測モードを提案する。一つのイントラフレームは、二つ又は四つの独立的なサブフレームに区分可能であり、分離されたフレームでの多様な分離イントラ予測モードが存在しうる。モーションを有する連続的なフレームと異なり、サブ―ピクセルが移動するサブフレーム間には高い剰余性(reducdancy)が存在するので、イントラフレームのサブフレームでの分離イントラ予測モードは非常に効率的である。
【0104】
図11は、本発明の第4の実施例に係るビデオ信号のエンコーディング及びデコーディング順序を示すフローチャートで、
図12A〜
図12Cは、本発明の第4の実施例の分離イントラ予測モードを示す各例である。
【0105】
まず、
図11を参照すれば、本発明のエンコーディング装置のイントラ予測部170は、現在フレームに対して従来のイントラ予測を行い、RDコストを計算する(S1110段階)。また、本発明の第4の実施例に係るイントラ予測部は、分離イントラモード構造情報(Separate Intra Mode Structure Information、SIMSI)の入力を受ける。前記分離イントラモード構造情報(SIMSI)は、サブフレームの種類及び分離イントラモードの構造に関するものを含み、前記サブフレームの種類は、複数個の16*16ブロック、8*8ブロック、4*4ブロックであったり、一つの16*16ブロック、8*8ブロック、4*4ブロックであったり、一つ又は複数個のピクセル単位であるが、これに限定されることはない。また、分離イントラモードの構造は、IP構造、IPPP構造、IBBP構造であり、これについては、後で
図12A〜
図12Cを参照して詳細に説明することにする。
【0106】
その後、現在フレームに対して従来のイントラ予測を行った後、前記分離イントラモード構造情報(SIMSI)を用いて分離イントラモードの構造による現在フレームの分離イントラ予測を行う(S1120段階)。現在フレームに対する従来のイントラ予測と分離イントラモード予測の場合、効率(RDコスト)を計算し、分離イントラモード予測の効率がより良い場合、これを選択する(S1130段階)。その後、選択された分離イントラモードの種類及び分離イントラモード構造を含む分離イントラモード情報(separate intra mode information、SIDIという)及び予測に用いられたブロック(プレディクタ)と現在ブロックとの間のレジデュアルを伝送する(S1140段階)。また、分離イントラ予測モードが採択されたかどうかを示す分離イントラ予測フラグ情報(separate
intra
prediction
flag)を伝送することができる。
【0107】
本発明のデコーディング装置のイントラ予測部260は、分離イントラ予測フラグ情報がエンコーダから伝送された場合、これを受信する。分離イントラ予測フラグ情報の意味は、下記の表2に示す通りである。
【0109】
分離イントラ予測フラグが0である場合、現在フレームの復元のために従来のイントラ予測モードを行う。その一方、分離イントラ予測フラグが1である場合、分離イントラ予測モードを行うので、前記分離イントラモード情報(SIMI)とレジデュアルを受信し(S1150段階)、分離イントラモード情報(SIMI)、レジデュアル及び以前のフレームを用いて現在フレームの第1のサブフレームグループを復元する(S1160段階)。また、分離イントラモード情報、レジデュアル及び前記第1のサブフレームグループを用いて第2のサブフレームグループを復元する(S1170段階)。
【0110】
選択された分離イントラモード構造がIPPP構造である場合、分離イントラモード情報、レジデュアル、前記第1のサブフレームグループ及び前記第2のサブフレームグループを用いて第3のサブフレームグループを復元し、再び分離イントラモード情報、レジデュアル、前記第1のサブフレームグループ、前記第2のサブフレームグループ及び前記第3のサブフレームグループを用いて第4のサブフレームグループを復元する。また、IBBP構造である場合、分離イントラモード情報、レジデュアル、前記第1のサブフレームグループ及び前記第2のサブフレームグループを用いて第3のサブフレームグループを復元し、分離イントラモード情報、レジデュアル、前記第1のサブフレームグループ及び前記第2のサブフレームグループを用いて第4のサブフレームグループを復元する。以下では、分離イントラモード構造による分離イントラ予測モードの予測方法について
図12A〜
図12Cを参照して説明する。
【0111】
図12Aを参照すれば、現在フレーム(I frame)は、サブフレーム単位で第1のサブフレームと第2のサブフレームに区分され、インタレース走査方式で位置することができ、現在フレームを両分し、左側は第1のサブフレーム、右側は第2のサブフレームであるが、これに限定されることはない。
図12Aに示すように、第1のサブフレームと第2のサブフレームが交互に位置することもでき、このような第1のサブフレームの集合を第1のサブフレームグループといい、第2のサブフレームの集合を第2のサブフレームグループという。まず、第1のサブフレームグループは、従来のイントラ予測モードを用いてコーディングされ、第2のサブフレームグループは、第1のサブフレームグループを参照して現在フレーム内でイントラ予測を用いてコーディングされる。
【0112】
図12Bは、分離イントラ予測モードのうちIPPP構造及びIPPP予測方法を示す図で、現在フレームは合計4個のサブフレームに分離され、それぞれのサブフレームの集合は、第1のサブフレームグループ〜第4のサブフレームグループである。
図12Bに示すように、第1のサブフレームグループは、従来のイントラ予測モードを用いて予測を行ってコーディングされる。その後、第2のサブフレームグループは、第1のサブフレームグループを用いてイントラ予測を行ってコーディングされ、第3のサブフレームグループは、第1のサブフレームグループ及び第2のサブフレームグループを用いてイントラ予測を行い、第4のサブフレームグループは、第1のサブフレームグループ〜第3のサブフレームグループを用いてイントラ予測を行う。
【0113】
図12Cは、分離イントラ予測モードのうちIBBP構造及びIBBP予測方法を示す図で、現在フレームは、
図12Bと同様に、合計4個のサブフレームに分離される。
図12Cに示すように、IBBP予測方法は、まず、第1のサブフレームグループが従来のイントラ予測モードを用いてイントラ予測を行い、第2のサブフレームグループは第1のサブフレームグループを用いてイントラ予測を行い、第3のサブフレームグループは第1のサブフレームグループ及び第2のサブフレームグループを用いてイントラ予測を行い、第4のサブフレームグループは第1のサブフレームグループ及び第2のサブフレームグループを用いてイントラ予測を行う。
【0114】
このとき、分離イントラ予測モードでのサブフレームの配置順序は、
図12A〜
図12Cに示した順序に限定されず、多様な順序を選択することができる。また、前記構造及び予測方法は、上述したように、分離イントラモード情報に含まれる。
【0115】
このように、本発明の第4の実施例に係る分離イントラ予測モードを用いる場合、予測ブロックが現在ブロックの上部及び左側に位置したブロックに限定されないので、現在フレームの正確な予測を可能にすることができる。
【0116】
本発明のビデオ信号のデコーディング方法は、新しいイントラ予測モードのみならず、動きベクトル推定及び補償と関連して高い効率のための新しいモードを提案する。以下では、インター予測部160、250の第5の実施例〜第9の実施例について説明する。第5の実施例は
図13〜
図17を参照して説明し、第6の実施例は
図18及び
図19を参照して説明し、第7の実施例は
図20及び
図21を参照して説明し、第8の実施例は
図22を参照して説明し、第9の実施例は
図23A及び
図23Bを参照して説明する。
【0117】
ビデオ信号のデコーディング装置のうちインター予測部160、250では、動きベクトルプレディクタ(Motion Vector Predictor、以下、mvpという)を決定するために平均値フィルタを用いる。しかし、動きベクトルプレディクタ(mvp)と推定された動きベクトルとの間に誤差が存在するので、正確な動きベクトルプレディクタ(mvp)を探すことがエンコーダの重要な役割である。したがって、本発明の第5の実施例では、より正確な動きベクトルプレディクタ(mvp)を決定するための方法(以下、動きベクトルプレディクタ決定法という)について
図13〜
図17を参照して説明することにする。
【0118】
図13及び
図14は、本発明のビデオ信号のエンコーディング装置及びデコーディング装置を示す図で、本発明のビデオ信号のエンコーディング装置及びデコーディング装置は、動きベクトルプレディクタ生成部1350、1445をさらに含む。エンコーディング装置の動きベクトルプレディクタ生成部1350は、既に設定された方法によって動きベクトルプレディクタ候補セットを決定し、決定されたセットで可能な動きベクトルプレディクタのうち最も効率が良い動きベクトルプレディクタを決定し、決定された動きベクトルプレディクタと関連した動きベクトルプレディクタ情報(Motion Vector Predictor Information、MVPI)を伝送する。
【0119】
このように、より正確な動きベクトルプレディクタ(mvp)を動きベクトル推定及び補償のために用いるために、本発明の第5の実施例は、より多くの動きベクトルプレディクタ(mvp)の候補群を設定し、このうち最も効率的な動きベクトルプレディクタ(mvp)を用いる。まず、動きベクトルプレディクタ(mvp)は、種類によって大きく空間的プレディクタ、時間的プレディクタ及び空間―時間的プレディクタに分けられる。
【0120】
図15は、現在ブロックの動きベクトル予測のために用いられる現在フレーム及び以前のフレームの動きベクトルを示す図である。
図15を参照すれば、空間的プレディクタは、現在フレーム(Nフレーム)の動きベクトルを用いるもので、現在ブロックの動きベクトルをmvとしたとき、Nフレームのa、b、cブロックの動きベクトルを用いたmva、mvb、mvc、mvd及び3個の動きベクトルプレディクタのうち中間値を採択するmv
med、及び3個以上の動きベクトルプレディクタのうち中間値を採択するmv
spaEXTを含むことができる。
図15を参照すれば、時間的プレディクタは、以前のフレーム(N−1フレーム)の動きベクトルを用いるもので、以前のフレームで現在ブロックと同一の位置に存在するブロックのモーションベクトルを用いるmv
col、mv
col、mvt0…mvt3の中間値を用いるプレディクタ及びMVcol、MVt0…MVt8の中間値を用いるプレディクタを含むことができる。また、空間―時間的プレディクタは、mv
col、mv
col、mva、mvb、mvcの平均値を用いる動きベクトルプレディクタ(mv
spt)である。動きベクトルプレディクタのうち必須的に用いられる空間的プレディクタを第1の動きベクトルプレディクタといい、本発明の第5の実施例で追加的に用いる空間的プレディクタ又は時間的プレディクタを第2の動きベクトルプレディクタという。
図14に示すように、前記第1の動きベクトルプレディクタは、中間動きベクトル(mv
med)であって、前記第2の動きベクトルプレディクタは、現在ブロックの左側に位置するブロックの動きベクトルを用いるa―動きベクトルプレディクタ(mva)又はmv
colであるが、これに限定されることはない。
【0121】
上述したように、固定された中間値を用いて動きベクトルプレディクタを決定せずに、多様な候補群から動きベクトルプレディクタを決定するので、動きベクトルプレディクタの正確度が高くなる。しかし、前記のように動きベクトルプレディクタが10個の候補群に固定される場合、多様な動きを有する画面をコーディングするにおいて非効率的である。
【0122】
したがって、本発明の第5の実施例は、新しい動きベクトルプレディクタ候補群セット(Motion Vector Predictor Candidate Set、MVPCS)を設定し、これを決定するための条件を提示する。前記動きベクトルプレディクタ候補群セットは、下記の表3に示す通りである。
【0124】
ここで、Sは、空間的プレディクタを示し、Tは、時間的プレディクタを示す。
【0125】
また、前記動きベクトルプレディクタ候補群セットのための空間的プレディクタはmv
medのみを用い、時間的プレディクタとしてはmvcolを用いることができるが、これに限定されることはない。前記動きベクトルプレディクタ候補群セットとしてセット4が決定される場合、可能な動きベクトルプレディクタは(Sx―Sy、Sx―Ty、Tx―Sy、Tx―Ty)の4個の場合を含むので、各場合のモーションコスト(Motion cost)に基づいてより明確な動きベクトルプレディクタを決定できるようになる。
【0126】
図16A及び
図16Bは、本発明の第5の実施例の動きベクトルプレディクタ決定法による場合、可能な動きベクトルプレディクタの組み合わせを示す図である。
図16Aは、現在ブロックがスキップモードである場合を示し、
図16Bは、現在ブロックがスキップモード以外である場合を示す。
【0127】
従来のスキップモードは、以前のフレームの動きベクトルプレディクタを現在ブロックの動きベクトルとして用いるもので、一つの動きベクトルプレディクタ候補のみが存在する。その一方、本発明の動きベクトルプレディクタ決定法による方法は、動きベクトルプレディクタの候補が第1の動きベクトルプレディクタのみならず、第2の動きベクトルプレディクタも用いるので、最大4個の組み合わせ可能な候補が存在する。
図16Aを参照すれば、現在ブロックの第1の動きベクトルプレディクタがAで、第2の動きベクトルプレディクタがBであり、これらの組み合わせで、動きベクトル候補は、a(第1の動きベクトルプレディクタ)、b(第2の動きベクトルプレディクタ)、c(第1の動きベクトルプレディクタx成分―第2の動きベクトルプレディクタy成分)又はd(第2の動きベクトルプレディクタx成分―第1の動きベクトルプレディクタy成分)である。この場合、動きベクトルプレディクタのための動きベクトルプレディクタ情報は2ビットを要求することができる。
【0128】
また、
図16Bを参照すれば、現在ブロックがスキップモードでなく、分割された場合は、動きベクトルプレディクタ情報がより多くのビットを要求するので、まず、第1の動きベクトルプレディクタと第2の動きベクトルプレディクタとの間の距離(mv1−mv2)を測定する。測定された第1の動きベクトルプレディクタと第2の動きベクトルプレディクタとの間の距離が1/2ピクセル以下で、二つのプレディクタが近い場合、第1の動きベクトルプレディクタを現在ブロックの動きベクトルプレディクタとして決定し、従来の動きベクトル予測方法を用いる。このとき、現在ブロックが従来の動きベクトル予測方法を用いるか、それとも動きベクトルプレディクタ決定法を用いたかを示す動きベクトルプレディクタ決定フラグ(mv
competition
flag)を用いることができる。第1の動きベクトルプレディクタが現在ブロックの動きベクトルプレディクタとして決定されれば、従来の動きベクトル予測方法を用いたことを示す動きベクトルプレディクタ決定フラグ(mv
predictor
competition
flag)に0をセッティングして伝送することができる。前記動きベクトルプレディクタ決定フラグ情報の意味は、次の表4に示す通りである。
【0130】
図17は、本発明の第5の実施例に係る動きベクトルプレディクタの決定及び動き補償の順序を示すフローチャートである。
図17を参照すれば、まず、動きベクトルプレディクタ候補群セットを決定する前に、下記の数学式2を計算する(S1710段階)。
【0132】
以前のフレームで現在ブロックと同一の位置に存在するブロックの動きベクトルを用いたmv
colの値が過度に大きい場合、これは、以前のフレームと現在ブロックとの相関度が過度に低下することを意味する。したがって、前記数学式2の条件を満足する場合(S1710段階の「Yes」)は、時間的プレディクタを用いずに、空間的プレディクタのみを用いて動きベクトルプレディクタを決定する(S1720段階)。動きベクトルプレディクタとして空間的プレディクタのみを用いるかどうかは、x成分とy成分に対して別途に決定される。
【0133】
その一方、前記数学式2の条件を満足しない場合(S1710段階の「No」)、下記の数学式3又は数学式4の条件を計算し、用いる動きベクトルプレディクタ候補群セットを決定する(S1730段階)。数学式3は、動きベクトルスキップモードのための条件で、数学式4は、スキップモードを除いた場合のための条件である。
【0136】
動きベクトルプレディクタ生成部1350、1445は、前記条件を用いて現在ブロックの最も効率的な動きベクトルプレディクタ候補群を決定する。例えば、mv
med(Sx、Sy)及びmv
col(Tx、Ty)の条件を検討した結果、セット3が現在ブロックの動きベクトルプリディクタ候補群セットとして決定された場合、可能な動きベクトルプレディクタ(mvp)は2個(Sx−Sy又はTx−Sy)である。このとき、各動きベクトルプレディクタを用いるときのモーションコストを測定し、現在ブロックの動きベクトルプレディクタ(Sx−Sy)を決定する(S1740段階)。その後、いずれの組み合わせの動きベクトルプレディクタ(Sx−Sy)を用いたかを示す動きベクトルプレディクタ情報を伝送する(S1750段階)。このとき、動きベクトルプレディクタ情報は、mv
colがmv
spa
max及びmv
temp
maxのうち最大値の2倍より大きい場合(S1710段階の「Yes」)、空間的プレディクタに関する情報を含むことができる。
【0137】
本発明のデコーディング装置のうち動き補償部1445は、動きベクトルプレディクタ情報を受信し、自体的に現在ブロックに対して数学式3又は数学式4の条件を計算し、動きベクトルプレディクタ候補群セットを決定する(S1760段階)。その後、受信した動きベクトルプレディクタ情報及び決定されたセットの条件を用いて、現在ブロックの動き補償を行う(S1770段階)。このような多様な動きベクトルプレディクタ候補を用いて、現在ブロックの動きベクトルとより類似したプレディクタを採択することによって、より正確な動きベクトル予測を可能にすることができる。
【0138】
従来の動きベクトルプレディクタ決定法を用いる場合、既存のAVC方法を用いる場合に比べてビット率の減少が約−0.5%である反面、本発明の第5の実施例に係る動きベクトルプレディクタ決定法を用いる場合は、約−0.8%ほどビット率が減少した。また、PSNR(peak signal to noise ratio)においても、本発明の第5の実施例に係る動きベクトルプレディクタ決定法を用いる場合、従来の方法を用いる場合よりも約0.028dB向上した。
【0139】
このように、本発明の第5の実施例の動きベクトルプレディクタ決定法は、多様な動きベクトルプレディクタ候補を用いて、現在ブロックの動きベクトルとより類似した動きベクトルプレディクタを採択することによって、より正確な動きベクトル予測が可能である。
【0140】
また、本発明の更に他の実施例である第6の実施例では、以前のフレームの動きベクトルの平均値及び現在ブロックのタイプによって動きベクトルプレディクタ候補を決定することができる。動きベクトルプレディクタ候補決定方法は、
図18を参照して説明することにする。
【0141】
一般的に動きの大きい各フレームは連続しているので、以前のフレームの各動きベクトルの平均的な大きさによって現在フレームが以前のフレームと相関度を有するかどうかを判断することができる。以前のフレームの各動きベクトルの平均値が一定の値(threshold)以上であれば、現在フレームは、以前のフレームに比べて動きが大きいので、以前のフレームとの相関度が低下するようになる。したがって、動きベクトルプレディクタ候補として二つ以上の空間的プレディクタを用いることができる。その一方、以前のフレームの各動きベクトルの平均値が一定の値以下であれば、現在フレームは、以前のフレームに比べて動きが少なくなるので、以前のフレームとの相関度が大きくなり、以前のフレームの動きベクトルを用いる時間的プレディクタを用いることが効率的である。この場合、動きベクトルプレディクタ候補は、一つ以上の空間的プレディクタのみならず、一つ以上の時間的プレディクタを含むことができる。
【0142】
したがって、本発明の第6の実施例に係る動きベクトルプレディクタ候補決定方法は、以前のフレームの動きベクトル大きさの平均値(mv
pre
avg)が1以下であるかどうかを判断する(S1810段階)。以前のフレームの動きベクトルの平均値(mv
pre
avg)が1より大きい場合、これは、現在ブロックを含む現在フレームが動きの大きいフレームであることを示す。この場合、本発明の第6の実施例と同様に、現在ブロックと以前のフレームとの相関度が少ないので、2個の空間的プレディクタを用いることが効率的である。しかし、現在ブロックが互いに類似性の少ないサブブロックからなる場合はそうでない。したがって、現在ブロックのブロックタイプがスキップモード又は16*16モードであるかを検討する(S1820段階)。スキップモード又は16*16モードでない場合(S1820段階の「No」)、現在ブロックはサブブロックに分割されており、分割された各サブブロック間の相関度が少ないことを意味する。この場合、第2の動きベクトルプレディクタとして空間的プレディクタを用いる(S1830段階)よりは、時間的プレディクタを用いることが効率的である。現在ブロックがスキップモード又は16*16モードである場合、第1の動きベクトルプレディクタとして空間的プレディクタを用いるとともに、第2の動きベクトルプレディクタとして空間的プレディクタを用いること(S1840段階)が効率的であることは当然である。
【0143】
以前のフレームの動きベクトルの平均値が1未満であれば(S1810段階の「Yes」)、現在フレームは現在ブロックと以前のフレームとの類似性が大きい遅い映像であるので、第1の動きベクトルプレディクタ及び第2の動きベクトルプレディクタとして空間的プレディクタを用いることが効率的である。
【0144】
このように、現在ブロックと以前のフレームとの類似性及び現在ブロックのタイプによって用いる動きベクトルプレディクタ候補を異なるように決定することによって、現在ブロックの動き予測の明確性を増加させることができる。
【0145】
本発明の第5の実施例及び第6の実施例の動きベクトルプレディクタ決定法で生成された動きベクトルプレディクタ情報は、現在ブロックが8*8ブロックである場合を除いては2ビットを要求する。現在ブロックが8*8ブロックであれば、分割によって動きベクトルプレディクタ情報を最大16ビットまで要求できるので、従来の動きベクトル予測方法が効率的である。したがって、ブロックごとに動きベクトルプレディクタ決定法によるかどうかを示す動きベクトルプレディクタ決定フラグ情報(mv
competition
flag)を含むことができる。
【0146】
下記の表5は、本発明の第6の実施例の動きベクトルプレディクタ候補決定法と従来の方法を用いる場合の効果を比較するために実験で使用された条件を示すもので、表6は、表5の条件下で動き予測を行うときに用いられる動きベクトル候補を示すものである。
【0149】
ここで、mv
spaEXTは、3個のベクトルを用いることができる場合は、
図15のmva、mvb、mvcを用い、そうでない場合は、mva、mvb、mvcのうち可能な動きベクトルを用いて決定される。
【0150】
図19は、前記case1〜3の動きベクトルを動きベクトルプレディクタ候補として使用する場合と、本発明の第6の実施例によって決定された動きベクトルプレディクタを用いた場合のBDレート利得を示す図である。前記BDレートは、符号化性能を示す指標であって、同一の画質を維持しながらビット率をどれだけ圧縮したかを意味する。
【0151】
図19を参照すれば、ほとんどの場合では、case1〜3の動きベクトルプレディクタ候補を用いた場合よりも、本発明の第6の実施例による場合にビット率の圧縮程度が増加したことが分かり、実質的に、本発明の第5の実施例に係るビデオ信号のデコーディング方法に比べて、約0.1dB程度のPSNR[dB]が増加したことが分かる。
【0152】
また、本発明の更に他の実施例である第7の実施例では、現在ブロックの動き推定が行われるブロックと周辺ブロックとの距離を考慮し、生成された動きベクトルプレディクタを用いる新しい方法を
図20及び
図21を参照して説明する。
【0153】
従来の現在ブロックの動きベクトルプレディクタは、現在ブロックの周辺3個のブロックを用いて生成する。
図20は、現在ブロック及び周辺3個のブロックを示す図で、前記周辺3個のブロックは、現在ブロックの左側ブロック、上部ブロック及び上部右側ブロックを示す。
図20を参照すれば、現在ブロックの動きベクトルをmvcといい、現在ブロックの左側ブロックの動きベクトルをmvlといい、上部ブロックの動きベクトルをmvuといい、上部右側の動きベクトルをmvurという。現在ブロックの動きベクトルプレディクタを決定するためには、周辺3個のブロックのレファレンスインデックスのうち現在ブロックのレファレンスインデックスと同一であるものがあるかどうかを検討する。現在ブロックのレファレンスインデックスと同一のレファレンスインデックスを有する周辺ブロックが1個である場合、前記周辺ブロックの動きベクトルを動きベクトルプレディクタとして決定する。そうでない場合(同一のレファレンスインデックスを示す周辺ブロックが1個でない場合)、周辺3個のブロックの動きベクトルのうち中間値を選択し、これを現在ブロックの動きベクトルプレディクタとして決定し、レファレンスインデックスは、周辺3個のブロックのレファレンスインデックスのうち最も小さい数として決定する。
【0154】
しかし、現在ブロックのレファレンスインデックスが周辺3個のブロックのレファレンスインデックスでない他のレファレンスインデックスを有する場合、前記のような方法で決定された動きベクトルプレディクタは、現在ブロックの動きベクトルと大きな差を有する。したがって、決定される動きベクトルプレディクタと現在ブロックの動きベクトルとが類似するようにするためには、本発明の第7の実施例に係る「スケールされた動きベクトルプレディクタ」を用いることが効率的である。
【0155】
図21は、本発明の第7の実施例に係るスケールされた動きベクトルプレディクタを用いて動き予測を行う方法を示すフローチャートである。
図21を参照すれば、動きベクトル予測を行うにおいて、現在ブロックのレファレンスインデックスと同一の値を有する周辺ブロックがあるかどうかを検討する(S2110段階)。現在ブロックのレファレンスインデックスと同一の値を有する周辺ブロックがある場合、従来の動きベクトルプレディクタ決定方法による(S2120段階)。しかし、現在ブロックのレファレンスインデックスが周辺ブロックのレファレンスインデックスと一致しない場合(S2110段階の「No」)、スケールされた動きベクトルプレディクタ(Scaled Motion Vector Predictor、SMVP)を計算する(S2130段階)。スケールされた動きベクトルプレディクタは、下記の数学式5を用いて求めることができる。
【0157】
ここで、f
MEは、現在ブロックに対して動き推定が行われるブロックのフレームナンバーを示し、f
Cは、現在ブロックのフレームナンバーを示し、f
L,f
U,f
URは、それぞれ現在ブロックの左側ブロック、上部ブロック、上部右側ブロックのフレームナンバーを示す。
【0158】
現在ブロックの動きベクトルプレディクタは、前記スケールされた各動きベクトルプレディクタから決定され、決定されたスケールされた動きベクトルプレディクタを用いて現在ブロックの動きベクトル予測を行い(S2140段階)、現在ブロックの動きベクトル差値(mvd)、レファレンスインデックス及びスケールされた動きベクトルプレディクタ情報を伝送する(S2150段階)。また、スケールされた動きベクトルプレディクタを現在ブロックの動きベクトル予測に用いたかどうかを示すスケールされた動きベクトルプレディクタフラグ情報(scaled
mv
predictor
flag)を伝送することもできる。前記スケールされた動きベクトルプレディクタフラグ情報が用いられる場合、前記フラグ情報の意味は下記の表7に示す通りである。
【0160】
本発明のデコーディング装置のインター予測部250では、スケールされた動きベクトルプレディクタ情報、mvd及びレファレンスインデックスを受信し(S2160段階)、これらを用いて現在ブロックの動きベクトルを復元する(S2170段階)。前記スケールされた動きベクトルプレディクタフラグ情報(scaled
mv
predictor
flag)を伝送する場合、スケールされた動きベクトルプレディクタ情報が伝送されないことがある。この場合、スケールされた動きベクトルプレディクタフラグ情報(scaled
mv
predictor
flag)の値が1であれば、受信されたレファレンスインデックス、mvd及び周辺ブロックの動きベクトルを用いてスケールされた動きベクトルプレディクタを求めることができ、これを用いて現在ブロックの動きベクトルを復元する。
【0161】
したがって、本発明の第7の実施例に係る現在ブロックの動きベクトルを予測する方法は、現在ブロックのレファレンスインデックスが示すフレームと周辺ブロックのレファレンスインデックスが示すフレームとの間の距離を考慮して動きベクトルプレディクタを決定することによって、決定された動きベクトルプレディクタが現在ブロックの動きベクトルとより類似した値を有するようにし、予測の正確度を増加させることができる。
【0162】
動きベクトルを用いて現在ブロックを予測する方法は、動きの大きい画面でより正確に現在ブロックをコーディングできるが、ビット要求率が大きいので、一定の条件ではスキップモードを用いる。スキップモードは、周辺ブロックを動きベクトルプレディクタとして用いて動きベクトル差値を計算せずに、周辺ブロックの動きベクトル(mvP)を現在ブロックの動きベクトルとして用いる。スキップモードを用いる場合、レジデュアル、レファレンスインデックス、CBP(Coded Block Pattern)などの情報をコーディングしない。しかし、現在、H.264では、スキップモードを採択する場合に16*16ブロックのみを用いるように制限しているので、16*16ブロック当たり二つ以上の動きベクトルを有することができない。
【0163】
本発明の第8の実施例では、スキップモードで動きベクトルを有する単位ブロックが多様な大きさを有することができる部分スキップモードを提案する。
図22は、部分スキップモードで用いるブロックサイズを示す図である。
【0164】
図22を参照すれば、部分スキップモードは、16*16ブロックのみならず、16*8ブロック、8*16ブロック、8*8ブロックを用いることができる。従来のスキップモードは、16*16ブロック当たり一つの動きベクトルを有する反面、部分スキップモードは、16*16ブロック内で最大4個の動きベクトル(8*8ブロック使用時)を有することが可能である。したがって、部分スキップモードを用いる現在ブロックのデコーディング方法は、映像の歪曲を最小化すると同時に、スキップモードをより活性化することによってコーディング効率を増加させることができる。
【0165】
本発明の第8の実施例に係る部分スキップモードは、新しいブロックタイプを用いるので、部分スキップモードを用いたブロックのタイプに関する情報をさらに伝送することができる。ブロックタイプに関する情報は、ブロック大きさによってskip
16*16、skip
16*8、skip
8*16、skip
P8*8であるが、これに限定されることはない。また、従来のスキップモード又は本発明の部分スキップモードを用いたかどうかを示す部分スキップモードフラグ情報(partiall
skip
flag)を伝送することができる。前記フラグ情報の意味は、下記の表8に示す通りである。
【0167】
本発明のデコーディング装置のインター予測部250では、ブロックタイプ情報、部分スキップモードフラグ情報を受信し、部分スキップモードが用いられる場合、以前のフレームで現在ブロックと同一の位置にあるブロックの動きベクトルを現在ブロックの動きベクトルとして用いる。この場合、スキップモードがより活性化され、コーディング効率を高めることができ、従来のスキップモードよりも多くの動きベクトルを用いることによって現在ブロックの復元率を高めることができる。
【0168】
一方、エンコーダから動きベクトルと関連した如何なる情報も伝送されず、デコーダで独自にこれを誘導して用いることがより効率的である場合もある。このように、ビデオ信号のデコーディング装置では、現在ブロックの動き予測に必要な情報を直接誘導するダイレクトモードを用いることができる。このようなダイレクトモードは、空間的ダイレクトモード及び時間的ダイレクトモードを含み、空間的ダイレクトモードは、デコーダ上で現在ブロックの動きベクトル及びレファレンスインデックスを周辺ブロックから誘導し、時間的ダイレクトモードは、従来のBピクチャダイレクトモードと同一の方法で行われる。空間的ダイレクトモードは、時間的ダイレクトモードとは異なり、P8*8ブロックが空間的ダイレクトモードを採択する場合も16*16ブロック単位で一つの動きベクトルのみを誘導して用いるように制限される。
【0169】
したがって、本発明の第9の実施例では、空間的ダイレクトモードで多様な動きベクトルを用いることができる8*8空間的ダイレクトモードを提案する。
図23A及び
図23Bは、従来の空間的ダイレクトモードを採択したP8*8ブロックの動きベクトルと本発明の第9の実施例に係る8*8ブロックの動きベクトルを示した図である。
【0170】
図23Aを参照すれば、従来の方法で現在ブロックがP8*8ブロックで、ダイレクトモードを用いる場合、16*16ブロックを構成するP8*8ブロックは、いずれも同一の動きベクトル及びレファレンスインデックスを有する。
図23Aに示すように、ブロックA、B、C、Dは、16*16ブロックの左側に位置するブロックであるaブロック、上端のbブロック、上端右側のcブロックを用いて中間値フィルタリングを通して同一の動きベクトル(mv)とレファレンスインデックスを誘導して用いる。
【0171】
その一方、
図23Bを参照すれば、本発明の8*8空間的ダイレクトモードは、周辺ブロックを用いて多様な動きベクトルを誘導して用いる。
図23Bを参照すれば、A’ブロックは、周辺ブロックであるa’ブロック、c’ブロック及びd’ブロックの動きベクトルのうち中間値をA’ブロックの動きベクトル(mva’)として用いる。B’ブロックは、周辺ブロックであるa’ブロック、d’ブロック及びe’ブロックの動きベクトルを用いて動きベクトル(mvb’)を誘導し、C’ブロックはb’ブロック、c’ブロック及びd’ブロックを用いて、D’ブロックはb’ブロック、d’ブロック及びe’ブロックを用いて動きベクトル(mvc’、mvd’)を誘導する。このとき、レファレンスインデックスは、コーディング効率を高めるために、従来の方法と同様に、用いられた周辺ブロックのレファレンスインデックスのうち最も小さい値を選択する。
【0172】
このように、本発明の8*8空間的ダイレクトモードは、P8*8ブロックごとに動きベクトルを計算し、16*16ブロック内で二つ以上の動きベクトルを用いることによって、現在ブロックが境界領域に位置したり、小さい物体が動く場合により高い復元率を有することができる。
【0173】
一方、本発明の更に他の一実施例では、離散コサイン変換段階で各ビデオ信号を再配列する段階をさらに含むことによってビット伝送率を減少させ、元の映像との誤差を減少させるビデオ信号の処理方法について、
図24及び
図25を参考にして説明する。
【0174】
図24を参照すれば、従来の離散コサイン変換は、ビデオ信号を2次元周波数成分に変換し、変換時にビデオ信号のブロックに含まれた基底成分のそれぞれの大きさを求めた後、量子化してジグザグスキャンを行う。このような離散コサイン変換を行うビデオ信号は、入力されたビデオ信号又はレジデュアル信号である。離散コサイン変換は、2次元変換方法を用い、まず、列方向に変換を行い、行方向への変換を行う。
【0175】
その一方、各方向への変換前に、係数の値が少ないブロックが直流(DC)成分に集まるように誘導し、圧縮率をより向上させることができる。したがって、本発明の第10の実施例は、各ブロックのレジデュアル値及び係数を考慮し、各方向への変換前にブロックを再配列することをさらに含むことによって、一般的な離散コサイン変換を行う場合よりも離散コサイン変換係数が直流成分の近くに集まるように誘導し、圧縮率を向上させることができる。以下では、再配列を行う各ブロックがレジデュアル信号である場合について説明する。
【0176】
図25を参照すれば、本発明の第10の実施例に係る離散コサイン再配列変換は、列方向及び行方向への変換段階前に第1の再配列段階及び第2の再配列段階を含む。前記第1の再配列段階は、列方向で各ブロックのレジデュアル値を比較し、左側に小さい値を有するブロックを配列し、前記再配列順序を示す第1の再配列情報を生成する。その後、列方向への離散コサイン変換を行う。第2の再配列段階は、列方向に離散コサイン変換が行われたレジデュアル値を基準にして行方向で上側に小さい値を有するブロックを再配列し、前記再配列順序を示す第2の再配列情報を生成することによって行われる。本発明の実施例では、各ブロックのレジデュアル値を比較して再配列する方法について説明したが、これに限定されることはない。
【0177】
このように、離散コサイン変換前に列又は行で少ないレジデュアル値を有するブロックが左側又は上側に位置するように各レジデュアル信号を再配列し、離散コサイン変換を行う場合、各離散コサイン変換係数が左側(直流成分に近く)に集まって分布するようになるので、より高い圧縮効果を得ることができる。
【0178】
また、本発明が適用されるデコーディング/エンコーディング方法は、コンピュータで実行されるためのプログラムで製作され、コンピュータ可読記録媒体に格納されることが可能であり、本発明に係るデータ構造を有するマルチメディアデータもコンピュータ可読記録媒体に格納されることが可能である。前記コンピュータ可読記録媒体は、コンピュータシステムによって読まれるデータが格納される全ての種類の格納装置を含む。コンピュータ可読記録媒体の例としては、ROM、RAM、CD―ROM、磁気テープ、フロッピーディスク、光データ格納装置などがあり、キャリアウェーブ(例えば、インターネットを通した伝送)の形態で具現されるものも含む。また、前記エンコーディング方法によって生成されたビットストリームは、コンピュータ可読記録媒体に格納されたり、有無線通信網を用いて伝送される。
【0179】
以上のように、本発明は、限定された実施例と図面によって説明されたが、これによって限定されることはなく、本発明の属する技術分野で通常の知識を有する者によって本発明の技術思想と下記に記載される特許請求の範囲の均等範囲内で多様な修正及び変形が可能であることは当然である。