以下、添付された図面を参照しつつ、本発明の望ましい実施形態について詳細に説明する。
図1は、本発明による映像予測符号化方法によって、現在ブロックの動き補償過程について説明するための図である。図1で図面符号120は、符号化される現在ブロックを示し、図面符号110は、現在ブロック120以前に符号化された後で復元されたブロックから構成される以前領域を示し、図面符号115は、以前領域110のうち、現在ブロックに隣接した周辺領域を示す。
従来技術によれば、現在ブロック120に対する動き予測を行って動きベクトルを生成した後、現在ブロック120の周辺ブロックが有する動きベクトルの平均値、または中央値などを利用した予測動きベクトルとの差分値を、現在ブロック120の動きベクトル情報として符号化する。しかし、かような従来技術によれば、動き予測符号化される各ブロックごとに実際の動きベクトルと予測動きベクトルとの差分値を符号化し、復号化端に伝送しなければならない。
本発明は、現在ブロック120の動き予測過程を省略し、周辺領域115に対する動き予測によって生成された動きベクトルMVnをそのまま現在ブロック120の動きベクトルMVcとして利用する。そして、本発明は、現在ブロック120の動きベクトルMVcが指し示す参照フレーム150の対応領域160を、現在ブロック120の予測値として利用する。このように、周辺領域115の動きベクトルMVnを、現在ブロック120の動きベクトルMVcとして利用する場合、現在ブロック120についての動き情報、すなわち現在ブロック120の動きベクトルと予測動きベクトルとの差分値を伝送せずとも、復号化端では、周辺領域115に対する動き予測結果を利用し、周辺領域115の動きベクトルMVnを生成した後、生成された周辺領域115の動きベクトルMVnを、現在ブロック115の動きベクトルMVcとして利用して動き補償を行うことができる。
図2は、本発明による映像符号化装置の構成を示したブロック図である。図2を参照するに、映像符号化装置200は、動き予測部202、動き補償部204、イントラ予測部206、変換部208、量子化部210、再整列部212、エントロピ・コーディング部214、逆量子化部216、逆変換部218、フィルタ220、フレームメモリ222及び制御部225を具備する。
動き予測部202は、現在フレームを所定サイズのブロックに分割し、以前に符号化された後で復元された周辺領域に対する動き予測を行って周辺領域の動きベクトルを出力する。一例として、再び図1を参照するに、動き予測部202は、現在ブロック120以前に符号化された後で復元され、フレームメモリ222に保存された周辺領域115に対する動き予測を行い、現在フレーム100の周辺領域115と最も類似した参照フレーム150の対応領域155を指し示す動きベクトルMVnを生成する。ここで、周辺領域は、現在ブロック以前に符号化された後で復元された少なくとも一つ以上のブロックを含む領域であり、ラスタースキャン(Raster scan)方式による場合、現在ブロックの上側と左側とに位置した少なくとも一つ以上のブロックを含む領域である。周辺領域の大きさ及び形は、現在ブロック以前に符号化された後で復元されたブロックを含む限度内で任意に設定されうる。ただし、現在ブロックの予測の正確性を高めるために、周辺領域は、現在ブロックとさらに隣接しつつ、小サイズを有することが望ましい。
動き補償部204は、動き予測部202で生成された周辺領域の動きベクトルを現在ブロックの動きベクトルとして設定し、現在ブロックの動きベクトルが指し示す参照フレームの対応領域のデータを獲得し、これを現在ブロックの予測値として生成する動き補償を行う。前述した例において、動き補償部204は、現在ブロック120の周辺領域115が有する動きベクトルMVnと同じ方向と大きさとを有するベクトルを、現在ブロック120の動きベクトルMVcとして設定する。そして、動き補償部204は、現在ブロック120の動きベクトルMVcが指し示す参照フレーム150の対応領域160を現在ブロック120の予測値として生成する。
イントラ予測部206は、現在ブロックの予測値を現在フレーム内で探すイントラ予測を行う。
インター予測及びイントラ予測、または本発明による周辺領域の動きベクトルを利用した動き補償を介して現在ブロックの予測ブロックが生成されれば、現在ブロックと予測ブロックとの誤差値である剰余(residue)が生成され、生成された剰余は、変換部208によって周波数領域に変換され、量子化部210で量子化される。エントロピ・コーディング部214は、量子化された剰余を符号化してビットストリームを出力する。
量子化されたブロックデータは、逆量子化部216と逆変換部218とによって、さらに復元される。このように復元されたデータは、デブロッキング・フィルタリングを行うフィルタ220を経た後、フレームメモリ222に保存されていて、ブロックの予測時に利用される。
制御部225は、映像符号化装置200の各構成要素を制御する一方、現在ブロックの予測モードを決定する。具体的に、制御部225は、インター予測を介して生成されたブロックと現在ブロックとの間のコスト、イントラ予測を介して生成されたブロックと現在ブロックとの間のコスト、及び本発明によって、周辺領域の動き予測を介して生成された動きベクトルを利用して予測された予測値と現在ブロックとの間のコストを比較し、最小コストを有する予測モードを決定する。ここで、コスト計算は、さまざまな方法によって行われる。使われるコスト関数としては、SAD(Sum of Absolute Difference)、SATD(Sum of Absolute Transformed Difference)、SSD(Sum of Squared Difference)、MAD(Mean of Absolute Difference)及びラグランジュ関数(Lagrange function)などがある。
一方、本発明による映像符号化方法によって符号化されるビットストリームのヘッダには、各ブロック単位で、当該ブロックが周辺領域の動きベクトルを利用して動き補償されているか否かを示すフラッグ(flag)が挿入されうる。復号化端では、このフラッグを介して、復号化される現在ブロックの予測モードを判別し、判別された現在ブロックの予測モードによって、現在ブロックに対する予測値を生成した後、ビットストリームに備わった差分値と加えて現在ブロックを復元できる。
図3は、本発明による映像符号化方法を示したフローチャートである。図3を参照するに、段階310で、符号化される現在ブロック以前に符号化された後で復元された周辺領域に対する動き予測を行い、周辺領域と最も類似した参照フレームの対応領域を指し示す周辺領域の動きベクトルを決定する。
段階320で、決定された周辺領域の動きベクトルを現在ブロックの動きベクトルとして設定し、現在ブロックの動きベクトルが指し示す参照フレームのデータを利用して現在ブロックの予測値を獲得する。
段階330で、現在ブロックの予測値と実際現在ブロックの画素との差分値を変換、量子化及びエントロピ符号化してビットストリームを生成し、各ブロックごとに周辺領域の動きベクトルを利用した予測を介して符号化されたことを示す所定のフラッグを、ビットストリームに挿入する。
図4は、本発明による映像符号化方法によって、現在フレームの映像を予測符号化する過程の一例について説明するための図であり、図5は、本発明による映像符号化方法で、ブロックの処理順序を示した図である。図4で、図面符号420は現在ブロックを示し、図面符号415は現在ブロック420以前に符号化された後で復元された周辺領域を示す。
本発明による予測符号化過程は、変換過程に利用されるブロックの大きさと同じ大きさでブロック単位で行われることが望ましい。これは、現在ブロックの次に処理されるブロックの動きベクトルを決定するために、現在ブロックの復元された値を利用するためである。すなわち、変換時に利用されるブロックサイズと同じ大きさのブロック単位で映像を予測符号化する場合、他のブロックの処理が完了する前に、予測ブロックと現在ブロックとの差値である剰余を変換及び量子化した後、さらに変換及び量子化された現在ブロックを逆変換及び逆量子化して復元することによって、次のブロックの予測過程に利用できるからである。
図4を参照するに、現在ブロックと予測ブロックとの画素値の差である剰余を周波数領域に変換する変換過程が、4×4ブロック単位で行われると仮定するとき、本発明は、16×16マクロブロックを4×4サイズのブロックに分割し、分割された4×4ブロック単位で行われうる。次に、周辺領域415に対する動き予測を行い、周辺領域415と最も類似した参照フレームの対応領域を指し示す動きベクトルが決定されれば、現在ブロック420については、別途の動き予測過程なしに、周辺領域415が有する動きベクトルをそのまま利用し、現在ブロック420に対する動き補償を行って現在ブロック420の予測ブロックを生成し、現在ブロック420と予測ブロックとの差分値を符号化する。
現在ブロック420の動きベクトルを決定するのに利用される周辺領域415の大きさ及び形態は、多様に決定されうる。図5に図示されているように、分割されたブロックを左側から右側、上側から下側の順序で符号化するラスタースキャン(Raster scan)方式による場合、周辺領域415は、現在ブロック420以前に処理された左側及び上側の少なくとも一つ以上のブロックを含む限度内で、多様な形態と大きさとを有することができる。
図6は、図4の現在ブロック420の次に処理されるブロック620の予測符号化過程について説明するための図であり、図7は、図6のブロック620の次に処理されるブロック720の予測符号化過程について説明するための図である。図6を参照するに、図4の現在ブロック420の次のブロック620を処理する場合、ラスタースキャン方式によって、周辺領域415も、右側に1ブロックサイズほどシフトされ、シフトされた周辺領域615を利用し、次のブロック620に対する予測符号化を行う。
一方、図7を参照するに、ブロック720を処理するとき、図6に図示された周辺領域615を1ブロックサイズほどそのまま右側にシフトした周辺領域には、まだ未処理のブロックが含まれることがある。その場合、ブロック720の予測符号化に利用される周辺領域715の大きさ及び形態は、ブロック720の上側及び右側に存在し、あらかじめ符号化された後で復元された周辺ブロックのみを含む形態に変更されねばならない。このように、符号化される現在ブロックの位置によって、あらかじめ符号化された後で復元されて利用可能な周辺ブロックが変わるために、符号化端と復号化端とで、現在ブロックの位置によって、あらかじめ利用可能な周辺領域の大きさ及び形態を設定することが望ましい。すなわち、符号化される現在ブロックが、マクロブロックでどこに位置するブロックであるかによって、利用可能な周辺ブロックが変更されうるので、符号化端及び復号化端では、現在ブロックの位置によって、周辺領域の大きさ及び形態をあらかじめ設定することによって、周辺領域についての別途情報の伝送なしにも、現在ブロックの位置によって周辺領域を決定し、現在ブロックの予測値を生成できる。
図8は、本発明による映像復号化装置を示したブロック図である。図8を参照するに、本発明による映像復号化装置800は、エントロピ・デコーダ810、再整列部820、逆量子化部830、逆変換部840、動き予測部850、動き補償部860、イントラ予測部870及びフィルタ880を具備する。
エントロピ・デコーダ810及び再整列部820は、ビットストリームを受信してエントロピ復号化を行い、量子化された係数を生成する。逆量子化部830及び逆変換部840は、量子化された係数に対する逆量子化及び逆変換を行い、変換符号化係数、動きベクトル情報、予測モード情報などを抽出する。ここで、予測モード情報には、復号化される現在ブロックが本発明による映像符号化方法によって、別途の動き予測過程なしに周辺領域の動きベクトルを利用した動き補償を介して符号化されたブロックであるか否かを示すフラッグが含まれうる。前述の通り、現在ブロックの動き補償に利用される動きベクトルは、現在ブロック以前に復号化された周辺領域に対して動き予測を行った後、周辺領域の動きベクトルを復号化する現在ブロックの動きベクトルとして利用する。
動き予測部850は、復号化される現在ブロックが、本発明による予測符号化方法によって、別途の動き予測過程なしに周辺領域の動きベクトルをそのまま利用した動き補償を介して予測符号化された場合、現在ブロックの周辺領域に対する動き予測を行い、周辺領域の動きベクトルを決定する。
動き補償部860は、前述の図2の動き補償部204と同じ動作を行う。すなわち、動き補償部860は、動き予測部850で生成された周辺領域の動きベクトルを、現在ブロックの動きベクトルとして設定し、現在ブロックの動きベクトルが指し示す参照フレームの対応領域のデータを獲得し、これを現在ブロックの予測値として生成する動き補償を行う。
イントラ予測部870は、イントラ予測符号化された現在ブロックに対し、以前に復号化された現在ブロックの周辺ブロックを利用して予測ブロックを生成する。
動き補償部860及びイントラ予測部870で生成された予測ブロックは、ビットストリームから抽出された現在ブロックと予測ブロックとの誤差値D’nと加えられ、復元された映像データuF’nが生成される。uF’nは、フィルタ880を経て、最終的に現在ブロックに対する復号化が行われる。
図9は、本発明による映像復号化方法を示したフローチャートである。図9を参照するに、段階910で、入力されたビットストリームに備わった予測モード情報を判読し、復号化される現在ブロックの予測モードを判別する。
段階920で、現在ブロックが別途の動き予測過程なしに周辺領域の動きベクトルをそのまま利用して予測符号化されたと判断される場合、以前に復号化された現在ブロックの周辺領域に対する動き予測を行い、周辺領域と最も類似した参照フレームの対応領域を指し示す動きベクトルを決定する。
段階930で、決定された周辺領域の動きベクトルを、復号化される現在ブロックの動きベクトルとして決定し、決定された現在ブロックの動きベクトルが指し示す参照フレームの対応領域を、現在ブロックの予測値として獲得する。
段階940で、現在ブロックの予測値と、ビットストリームに備わった現在ブロックと予測値との差分値を加え、現在ブロックを復号化する。
本発明はまた、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが保存されるあらゆる種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ROM(Read-Only Memory)、RAM(Random-Access Memory)、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、またキャリアウェーブ(例えば、インターネットを介した伝送)の形態で具現されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式でコンピュータで読み取り可能なコードが保存されて実行されうる。
以上、本発明についてその望ましい実施形態を中心に説明した。本発明が属する技術分野で当業者ならば、本発明の本質的な特性から外れない範囲で変形された形態に具現できることを理解することができるであろう。従って、開示された実施形態は、限定的な観点ではなくして、説明的な観点から考慮されねばならない。本発明の範囲は、前述の説明ではなくして特許請求の範囲に示されており、それと同等な範囲内にあるあらゆる差異点は、本発明に含まれるものと解釈されねばならない。