(57)【要約】【課題】動画圧縮符号化技術では、圧縮効率を高めるために、動きベクトル情報に起因する符号量を削減する必要がある。【解決手段】局所動きベクトル検出部６６は、符号化対象画像についてマクロブロック単位でローカル動きベクトルＬＭＶを求める。領域設定部６４は、フレーム画像上に複数のグローバル領域を設定する。大域動きベクトル算出部６８は、各グローバル領域についてグローバル動きベクトルＧＭＶを算出する。更新判定部５０は、グローバル動きベクトルにインデックスを付与して参照テーブルを作成する。動き補償予測部７０は、各マクロブロックについて、参照テーブルに定められたグローバル動きベクトルと、マクロブロック単位のローカル動きベクトルのいずれを用いて動き補償をすべきかを決定する。局所動きベクトル符号化部７２は、グローバル動きベクトルを用いて動き補償を実行したか否かを示すＧＭＶ使用フラグを符号化データに含める。【選択図】図２
2008011455.tif 000002
【特許請求の範囲】
【請求項１】
動画像を構成するピクチャにおいて、ピクチャ間予測符号化されるピクチャ内またはピクチャ内に定義される領域内での大域的な動きを示す大域動きベクトルを表す情報と、前記大域動きベクトルを特定するためのインデックスの情報とを前記動画像の符号化データに含めるとともに、大域動きベクトルを算出したピクチャまたはピクチャ内領域に含まれる領域において予測符号化に用いられる前記大域動きベクトルを指し示す前記インデックスの情報を前記動画像の符号化データに含めることを特徴とする符号化方法。
【請求項２】
第１のピクチャでまたは第１のピクチャ内領域で算出された第１大域動きベクトルと、第２のピクチャでまたは第２のピクチャ内領域で算出された第２大域動きベクトルとが異なるとき、前記第１大域動きベクトルと前記第２大域動きベクトルとの差分情報を前記インデックスと対応させて前記符号化データに含めることを特徴とする請求項１に記載の符号化方法。
【請求項３】
前記第１のピクチャまたは前記第１のピクチャ内領域における大域動きベクトルの出現頻度の順序で、前記第２のピクチャまたは前記第２のピクチャ内領域における大域動きベクトルを並び替え、この順序に対応させて前記インデックスを付与することを特徴とする請求項１または２に記載の符号化方法。
【請求項４】
符号化データのヘッダ、ピクチャのヘッダ、またはピクチャ内領域のヘッダには前記大域動きベクトルを表す情報と該大域動きベクトルを特定するための前記インデックスの情報とを含め、大域動きベクトルを算出したピクチャまたはピクチャ内領域に含まれる領域のヘッダには該領域において予測符号化に用いられる前記大域動きベクトルを指し示す前記インデックスの情報を含めることを特徴とする請求項１ないし３のいずれかに記載の符号化方法。
【請求項５】
前記ピクチャまたは前記ピクチャ内に定義される領域毎に、前記大域動きベクトルを用いて予測符号化するか否かを示すフラグを前記符号化データに含めることを特徴とする請求項１ないし４のいずれかに記載の符号化方法。
【請求項６】
前記ピクチャ内のブロック毎に、前記インデックスで指し示される大域動きベクトルと該ブロックについて算出される局所動きベクトルとのいずれを用いて予測符号化するかを示すフラグを前記符号化データに含めることを特徴とする請求項１ないし４のいずれかに記載の符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を符号化する符号化方法に関する。
【背景技術】
【０００２】
ブロードバンドネットワークが急速に発展しており、高品質な動画像を利用したサービスに期待が集まっている。また、ＤＶＤなど大容量の記録媒体が利用されており、高画質の画像を楽しむユーザ層が広がっている。動画像を通信回線で伝送したり、記録媒体に蓄積するために不可欠な技術として圧縮符号化がある。動画像圧縮符号化技術の国際標準として、ＭＰＥＧ４の規格やＨ．２６４／ＡＶＣ規格がある。また、１つのストリームにおいて高画質のストリームと低画質のストリームを併せもつＳＶＣのような次世代画像圧縮技術がある。
【０００３】
高解像度の動画像をストリーム配信したり、記録媒体に蓄積する場合、通信帯域を圧迫しないように、あるいは、記憶容量が大きくならないように、動画ストリームの圧縮率を高める必要がある。動画像の圧縮効果を高めるために、動き補償フレーム間予測符号化が行われる。動き補償フレーム間予測符号化では、符号化対象フレームをブロックに分割し、既に符号化された参照フレームからの動きをブロック毎に予測して動きベクトルを検出し、差分画像とともに動きベクトル情報を符号化する。
【０００４】
特許文献１には、動きベクトルの大きさや向きについて関連のあるフレーム内のブロックを１つのオブジェクトとして扱うことで、ベクトルデータの情報量を削減する符号化技術が開示されている。
【特許文献１】特開２００４−４８３０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
Ｈ．２６４／ＡＶＣ規格では、動き補償において、よりきめ細かな予測を行うために、動き補償のブロックサイズを可変にしたり、動き補償の画素精度を１／４画素精度まで細かくすることができるようになっており、動きベクトルに関する符号量が多くなる。また、次世代画像圧縮技術であるＳＶＣ（Scalable Video Coding）では、時間的スケーラビリティを高めるために、ＭＣＴＦ（Motion Compensated Temporal Filtering、動き補償時間方向フィルタ）技術が検討されている。これは、時間軸方向のサブバンド分割に動き補償を組み合わせたものであり、階層的な動き補償を行うため、動きベクトルの情報が非常に多くなる。このように最近の動画圧縮符号化技術では、動きベクトルに関する情報量が増えることにより動画ストリーム全体のデータ量が増大する傾向にあり、動きベクトル情報に起因する符号量を削減する技術が一層求められている。
【０００６】
本発明はこうした状況に鑑みてなされたもので、その目的は、動きベクトル情報に起因する符号量を削減し符号化効率の高い動画像の符号化技術および復号技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある態様の符号化方法は、動画像を構成するピクチャにおいて、ピクチャ間予測符号化されるピクチャ内またはピクチャ内に定義される領域内での大域的な動きを示す大域動きベクトルと該大域動きベクトルを特定するためのインデックスとを対応させて格納するテーブルの情報と、ピクチャ内の領域毎に指定されるインデックスの情報とを動画像の符号化データに含める。
【０００８】
「大域動きベクトル」は、領域全体の動きを表すベクトルである。
【０００９】
「ピクチャ」は符号化の単位であり、その概念にはフレーム、フィールド、ＶＯＰ（Video Object Plane）などを含む。
【００１０】
この態様によると、ピクチャ単位で、またはピクチャ内に定義される領域毎に大域動きベクトルとインデックスとを対応させたテーブルを作っておき、ピクチャ内領域のそれぞれにおいて予測符号化に使用する大域動きベクトルをインデックスで指定できるようにした。テーブルを用いることで、大域動きベクトルの情報を重複して符号化データに含める必要がなくなるので、大域動きベクトルに起因するデータ量を削減でき、動画像の符号化データの圧縮効率を高めることができる。
【００１１】
本発明の別の態様もまた、符号化方法である。この方法は、動画像を構成するピクチャにおいて、ピクチャ間予測符号化されるピクチャ内またはピクチャ内に定義される領域内での大域的な動きを示す大域動きベクトルを表す情報と、大域動きベクトルを特定するためのインデックスの情報とを動画像の符号化データに含めるとともに、大域動きベクトルを算出したピクチャまたはピクチャ内領域に含まれる領域において予測符号化に用いられる大域動きベクトルを指し示すインデックスの情報を動画像の符号化データに含める。
【００１２】
この態様によると、同一のピクチャ内、またはピクチャ内領域においては、同一の大域動きベクトルの情報を重複して符号化データに含める必要がないため、大域動きベクトルに起因するデータ量を削減できる。
【００１３】
第１のピクチャでまたは第１のピクチャ内領域で算出された第１大域動きベクトルと、第２のピクチャでまたは第２のピクチャ内領域で算出された第２大域動きベクトルとが異なるとき、第１大域動きベクトルと第２大域動きベクトルとの差分情報をインデックスと対応させて符号化データに含めてもよい。こうすれば、大域動きベクトル情報自体のデータ量を削減し、動画像の符号化データの圧縮効率を高めることができる。
【００１４】
第１のピクチャまたは第１のピクチャ内領域における大域動きベクトルの出現頻度の順序で、第２のピクチャまたは第２のピクチャ内領域における大域動きベクトルを並び替え、この順序に対応させてインデックスを付与してもよい。
【００１５】
符号化データのヘッダ、ピクチャのヘッダ、またはピクチャ内領域のヘッダには大域動きベクトルを表す情報と該大域動きベクトルを特定するためのインデックスの情報とを含め、大域動きベクトルを算出したピクチャまたはピクチャ内領域に含まれる領域のヘッダには該領域において予測符号化に用いられる大域動きベクトルを指し示すインデックスの情報を含めてもよい。大域動きベクトルとインデックスの情報は、ストリーム毎、ピクチャ毎、またはスライスやマクロブロックなどのより小さい符号化単位のヘッダに含められ、より下位の符号化単位でインデックスを用いて大域動きベクトルを指定することができる。したがって、大域動きベクトルを算出する符号化単位と、大域動きベクトルを予測符号化に用いる符号化単位の組み合わせは、動画像の性質に合わせて任意に選択することができる。
【００１６】
例えば、ピクチャのヘッダには大域動きベクトルを表す情報と該大域動きベクトルを特定するためのインデックスの情報を含め、ピクチャ内のスライスまたはブロックのヘッダには予測符号化に用いられる大域動きベクトルを指し示すインデックスの情報を含めてもよい。あるいは、ピクチャ内のスライスのヘッダには大域動きベクトルを表す情報と該大域動きベクトルを特定するためのインデックスの情報を含め、スライス内のブロックのヘッダには予測符号化に用いられる大域動きベクトルを指し示すインデックスの情報を含めてもよい。
【００１７】
ピクチャまたはピクチャ内に定義される領域毎に、大域動きベクトルを用いて予測符号化するか否かを示すフラグを符号化データに含めてもよい。また、ピクチャ内のブロック毎に、インデックスで指し示される大域動きベクトルと該ブロックについて算出される局所動きベクトルとのいずれを用いて予測符号化するかを示すフラグを符号化データに含めてもよい。こうすれば、ピクチャ内のブロック単位で局所動きベクトルと大域動きベクトルのいずれを用いても動き予測を実行できるようになり、符号化データのデータ量を一層削減できる可能性がある。
【００１８】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１９】
本発明によれば、動画像の符号化効率を向上し、また、精度の良い動き補償を行うことができる。
【発明を実施するための最良の形態】
【００２０】
図１は、実施の形態に係る符号化装置１００の構成図である。これらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされた画像符号化機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
【００２１】
本実施の形態の符号化装置１００は、国際標準化機関であるＩＳＯ（International Organization for Standardization）／ＩＥＣ（International Electrotechnical Commission）によって標準化されたＭＰＥＧ（Moving Picture Experts Group）シリーズの規格（ＭＰＥＧ−１、ＭＰＥＧ−２およびＭＰＥＧ−４）、電気通信に関する国際標準機関であるＩＴＵ−Ｔ（International Telecommunication Union-Telecommunication Standardization Sector）によって標準化されたＨ．２６ｘシリーズの規格（Ｈ．２６１、Ｈ．２６２およびＨ．２６３）、もしくは両方の標準化機関によって合同で標準化された最新の動画像圧縮符号化標準規格であるＨ．２６４／ＡＶＣ（両機関における正式勧告名はそれぞれMPEG-4 Part 10: Advanced Video CodingとH.264）に準拠して動画像の符号化を行う。
【００２２】
ＭＰＥＧシリーズの規格では、フレーム内符号化を行う画像フレームをＩ（Intra）フレーム、過去のフレームを参照画像として順方向のフレーム間予測符号化を行う画像フレームをＰ（Predictive）フレーム、過去と未来のフレームを参照画像として双方向のフレーム間予測符号化を行う画像フレームをＢフレームという。
【００２３】
一方、Ｈ．２６４／ＡＶＣでは、参照画像として利用できるフレームは、時間の先後を問わず、過去の２枚のフレームを参照画像としてもよく、未来の２枚のフレームを参照画像としてもよい。また、参照画像として利用できるフレームの枚数も問わず、３枚以上のフレームを参照画像として用いることもできる。したがって、ＭＰＥＧ−１／２／４では、Ｂフレームは双方向予測（Bi-directional prediction）フレームのことを指していたが、Ｈ．２６４／ＡＶＣでは、Ｂフレームは、参照画像の時間の先後は問わないため、双予測（Bi-predictive prediction）フレームのことを指すことに留意する。
【００２４】
なお、実施の形態では、符号化の単位としてフレームを例に挙げて説明するが、符号化の単位はフィールドであってもよい。また、符号化の単位はＭＰＥＧ−４におけるＶＯＰであってもよい。
【００２５】
符号化装置１００は、フレーム単位で動画像の入力を受け取り、動画像を符号化し、符号化ストリームを出力する。入力された動画フレームはフレームメモリ８０に格納される。
【００２６】
動き補償部６０は、フレームメモリ８０に格納されている過去または未来の画像フレームを参照画像として利用し、ＰフレームまたはＢフレームのマクロブロック毎に動き補償を行い、動きベクトルと予測画像を生成する。動き補償部６０は、符号化対象のＰフレームまたはＢフレームの画像と予測画像の差分を取り、差分画像をＤＣＴ部２０に供給する。また、動き補償部６０は、符号化された動きベクトル情報を多重化部９２に供給する。
【００２７】
ＤＣＴ部２０は、動き補償部６０から供給された画像を離散コサイン変換（ＤＣＴ）し、得られたＤＣＴ係数を量子化部３０に与える。
【００２８】
量子化部３０は、ＤＣＴ係数を量子化し、可変長符号化部９０に与える。可変長符号化部９０は、差分画像の量子化されたＤＣＴ係数を可変長符号化し、多重化部９２に与える。多重化部９２は、可変長符号化部９０から与えられた符号化後のＤＣＴ係数と、動き補償部６０から与えられた符号化後の動きベクトル情報とを多重化し、符号化ストリームを生成する。多重化部９２は、符号化ストリームを生成する際、符号化されたフレームを時間順序に並べ替える処理を行う。
【００２９】
ＰフレームもしくはＢフレームの符号化処理の場合は、上述のように動き補償部６０が動作するが、Ｉフレームの符号化処理の場合は、動き補償部６０は動作せず、ここでは図示しないが、Ｉフレームはフレーム内予測が行われた後、ＤＣＴ部２０に供給される。
【００３０】
実施例１．
図２は、動き補償部６０の構成を説明する図である。動き補償部６０は、符号化対象フレームのマクロブロック単位の動きベクトル（以下、「ローカル動きベクトル」という）を検出するとともに、画像上に設けられた所定の領域毎に、その領域内の大域的な動きを示す動きベクトル（以下、「グローバル動きベクトル」という）を求める。グローバル動きベクトルは、その領域全体の動きを表すベクトルである。例えば、各領域のグローバル動きベクトルは、その領域内の個々のマクロブロック単位のローカル動きベクトルを代表するものであってもよい。
【００３１】
動き補償部６０は、ローカル動きベクトルまたはグローバル動きベクトルにもとづいて動き補償を行い、差分画像を出力するとともに、ローカル動きベクトルおよびグローバル動きベクトルを符号化して動きベクトル情報として出力する。
【００３２】
本実施例では、フレーム内で１つまたは複数のグローバル動きベクトルを求めた後、フレーム全体でグローバル動きベクトルとこれを特定するインデックスとを対応させた参照テーブルを作成する。図３は、参照テーブルの一例を示す。図３では、グローバル動きベクトル（３３．５０，−５．７５）にインデックス「０」が、グローバル動きベクトル（５．２５，０）にインデックス「１」が、それぞれ対応している。
【００３３】
各マクロブロックの予測符号化に際してグローバル動きベクトルを用いる場合は、符号化ストリーム内にインデックスを格納する。これによって、異なる領域に含まれるマクロブロックが同一のグローバル動きベクトルを重複して用いるときに、グローバル動きベクトルを複数回符号化することがなくなるため、符号量を削減できる。さらに、本実施例では、参照テーブルに定められた１つまたは複数のグローバル動きベクトルとローカル動きベクトルのいずれを用いて予測符号化を実行するかを示すフラグを、マクロブロック毎に符号化ストリームに格納する。これによって、マクロブロック単位で１つまたは複数のグローバル動きベクトルとローカル動きベクトルのうち、そのマクロブロックの符号量を最小とするものを選択することができる。
【００３４】
図２に戻り、局所動きベクトル検出部６６は、フレームメモリ８０に保持された参照画像を参照し、符号化対象画像の対象マクロブロックに対して誤差の最も小さい予測マクロブロックを参照画像から検出し、対象マクロブロックから予測マクロブロックへの動きを示すローカル動きベクトルＬＭＶを求める。動き検出は、対象マクロブロックとマッチングする参照画像における参照マクロブロックを整数画素単位または小数画素単位で探すことにより行われる。探索は通常、画素領域内で複数回にわたって繰り返し行われ、その複数回の探索の中で対象マクロブロックと最も適合する参照マクロブロックが予測マクロブロックとして選択される。
【００３５】
局所動きベクトル検出部６６は、求めたローカル動きベクトルＬＭＶを大域動きベクトル算出部６８、動き補償予測部７０、および局所動きベクトル符号化部７２に与える。
【００３６】
領域設定部６４は、フレーム画像上にグローバル動きベクトルＧＭＶを求めるための領域（以下、「グローバル領域」という）を設定する。グローバル領域は、画像内に複数設けられる。例えば、領域設定部６４は、フレーム画像の中央付近を１つのグローバル領域とし、その周辺を別のグローバル領域に設定するなど、あらかじめ定められた領域をグローバル領域に設定してもよい。また、グローバル領域はユーザによって設定されてもよい。
【００３７】
また、領域設定部６４は、画像に人物等のオブジェクトが写っている場合、そのオブジェクトが写っている領域を自動抽出し、グローバル領域に設定してもよい。
【００３８】
領域設定部６４は、局所動きベクトル検出部６６により検出された画像内のローカル動きベクトルＬＭＶを参照して、動きがある程度共通するマクロブロックが占める領域を自動抽出し、その領域をグローバル領域に設定してもよい。
【００３９】
領域設定部６４は、設定されたグローバル領域の情報を大域動きベクトル算出部６８および大域動きベクトル符号化部７４に与える。
【００４０】
大域動きベクトル算出部６８は、領域設定部６４により設定された各グローバル領域内の大域的な動きを示すグローバル動きベクトルＧＭＶを算出する。例えば、大域動きベクトル算出部６８は、領域内のローカル動きベクトルＬＭＶの平均を求め、グローバル動きベクトルＧＭＶとする。
【００４１】
また、大域動きベクトル算出部６８は、各グローバル領域内の大域的な動きに関する情報を取得し、その情報をもとに各グローバル領域のグローバル動きベクトルＧＭＶを算出してもよい。例えば、カメラのズームやパン、画面のスクロールなどが行われた場合に、画面全体の動きに関する情報から、各グローバル領域内の大域的な動きを判断し、グローバル動きベクトルＧＭＶを算出することができる。また、大域動きベクトル算出部６８は、画面上の人物等のオブジェクトの動きを自動抽出し、オブジェクトの動きから各グローバル領域内の大域的な動きを判断し、グローバル動きベクトルＧＭＶを算出することもできる。
【００４２】
大域動きベクトル算出部６８は、求めたグローバル動きベクトルＧＭＶを更新判定部５０に与える。
【００４３】
更新判定部５０は、大域動きベクトル算出部６８から受け取ったグローバル動きベクトルにインデックスを付与して、上述の参照テーブルを作成する。更新判定部５０は、インデックス付きのグローバル動きベクトルＧＭＶを、動き補償予測部７０と大域動きベクトル符号化部７４とに与える。
【００４４】
また、更新判定部５０は、大域動きベクトル算出部６８から受け取ったグローバル動きベクトルと、処理対象のフレームより前に処理したフレーム内で算出されたグローバル動きベクトルとを比較し、参照テーブル内のグローバル動きベクトルを更新するか否かを判定する。
【００４５】
前に処理したフレームで算出されたグローバル動きベクトル（以下、「旧グローバル動きベクトル」という）は、大域動きベクトル一時記憶部５２内に保持されている。更新判定部５０は、旧グローバル動きベクトルが今回のグローバル動きベクトルと同一の値であれば、参照テーブル内の旧グローバル動きベクトルとインデックスとの対応を変えず、符号化ストリームには、グローバル動きベクトルの値が変わらないことを表すフラグを格納する。今回のグローバル動きベクトルが旧グローバル動きベクトルと異なる場合には、今回のグローバル動きベクトルに新たにインデックスを付与する。
【００４６】
動き補償予測部７０は、ローカル動きベクトルＬＭＶまたはグローバル動きベクトルＧＭＶを用いて対象マクロブロックを動き予測して予測画像を生成し、符号化対象画像と予測画像の差分画像をＤＣＴ部２０に出力する。
【００４７】
動き補償予測部７０は、動きベクトル選択部５４と、予測画像生成部５６と、差分画像出力部５８とを含む。
【００４８】
動きベクトル選択部５４は、対象マクロブロックについて、参照テーブルに定められた１つまたは複数のグローバル動きベクトルＧＭＶと、マクロブロック単位のローカル動きベクトルＬＭＶのいずれを用いて動き予測をすべきかを決定する。そのために、予測画像生成部５６は、ローカル動きベクトルＬＭＶを用いて動き予測した予測画像と、グローバル動きベクトルＧＭＶのそれぞれを用いて動き予測した予測画像とを生成し、各予測画像について符号化対象画像との差分画像を作成する。動きベクトル選択部５４は、作成された差分画像の符号量と動きベクトルの符号量とを合わせたマクロブロックの符号量同士を比較し、符号量が最小となった予測画像の生成で使用された動きベクトルを選択する。差分画像出力部５８は、符号量が最小となった差分画像をＤＣＴ部２０に出力する。
【００４９】
動きベクトル選択部５４は、ローカル動きベクトルＬＭＶ、またはグローバル動きベクトルＧＭＶのいずれを選択したかについての情報を、局所動きベクトル符号化部７２に与える。
【００５０】
局所動きベクトル符号化部７２は、局所動きベクトル検出部６６からマクロブロック毎にローカル動きベクトルＬＭＶを受け取る。また、局所動きベクトル符号化部７２は、動き補償予測部７０において符号量が最小となる予測画像を生成するためにローカル動きベクトルが用いられたマクロブロックについて、マクロブロック毎にローカル動きベクトルＬＭＶを可変長符号化する。局所動きベクトル符号化部７２は、符号化後のローカル動きベクトルＬＭＶを動きベクトル情報として多重化部９２に与える。
【００５１】
また、局所動きベクトル符号化部７２は、マクロブロック毎に、符号量が最小となる予測画像を生成するためにグローバル動きベクトルを使用したか否かを示すフラグ（以下、「ＧＭＶ使用フラグ」という）と、グローバル動きベクトルを使用した場合には、参照テーブルにおいてその大域動きベクトルに対応するインデックスの情報とを多重化部９２に与える。
【００５２】
大域動きベクトル符号化部７４は、更新判定部５０からインデックス付きのグローバル動きベクトルＧＭＶを受け取り、可変長符号化する。
【００５３】
更新判定部５０において参照テーブル内のグローバル動きベクトルの更新の判定をしている場合、大域動きベクトル符号化部７４は、更新すべきと判定されたグローバル動きベクトルＧＭＶとそれに対応するインデックスとを可変長符号化する。この場合、参照テーブルを更新したか否かを示すフラグ（以下、「テーブル更新フラグ」という）と更新したグローバル動きベクトルの数（「Ｎｕｍ」と表記する）とを多重化部９２に与える。更新判定部５０において、グローバル動きベクトルを更新しないと判定された場合、大域動きベクトル符号化部７４はグローバル動きベクトルの可変長符号化を実行しない。
【００５４】
大域動きベクトル符号化部７４は、グローバル動きベクトルＧＭＶの全体を可変長符号化する変わりに、更新前のグローバル動きベクトルＧＭＶ’との差分（ＧＭＶ−ＧＭＶ’）を可変長符号化してもよい。
【００５５】
大域動きベクトル符号化部７４は、符号化後の各グローバル領域のグローバル動きベクトルＧＭＶとインデックスとを動きベクトル情報として多重化部９２に与える。このとき、大域動きベクトル符号化部７４は、領域設定部６４により設定されたグローバル領域についての領域情報を動きベクトル情報の一部に付加する。
【００５６】
多重化部９２には、グローバル動きベクトルＧＭＶ、インデックス、ローカル動きベクトルＬＭＶ、各種フラグが与えられることになる。
【００５７】
図４は、実施例１に係る動き補償部６０による動きベクトルの差分符号化の手順を説明するフローチャートである。図５および図６の例を適宜参照しながら符号化の手順を説明する。
【００５８】
符号化装置１００のフレームメモリ８０に符号化対象画像が入力される（Ｓ１０）。動き補償部６０の局所動きベクトル検出部６６は、符号化対象画像においてマクロブロック単位でローカル動きベクトルＬＭＶを検出する（Ｓ１２）。
【００５９】
次に、領域設定部６４は、画像上にグローバル領域を設定し（Ｓ１４）、大域動きベクトル算出部６８は、グローバル領域毎にグローバル動きベクトルＧＭＶを算出する（Ｓ１６）。
【００６０】
更新判定部５０は、各グローバル動きベクトルにインデックスを付与し、またグローバル動きベクトルの参照テーブルを更新するか否かを判定する。グローバル動きベクトル符号化部７４は、グローバル動きベクトルＧＭＶとインデックスとを対応させて可変長符号化する（Ｓ１８）。後述するように、このデータはフレームのヘッダに格納される。
【００６１】
動き補償予測部７０は、各対象マクロブロックについて、Ｓ１８でインデックスが付与されたグローバル動きベクトルＧＭＶと、各対象マクロブロックについて算出されたローカル動きベクトルＬＭＶのいずれを用いて動き補償すれば、差分画像の符号量と動きベクトルの符号量とを合わせたマクロブロックの符号量が最小となるかを判定する（Ｓ２０）。動き補償予測部７０は、マクロブロックの符号量を最小とする動きベクトルを局所動きベクトル符号化部７２に伝える。
【００６２】
局所動きベクトル符号化部７２は、Ｓ２０においてローカル動きベクトルを用いるとマクロブロックの符号量が最小となると判定された場合、ローカル動きベクトルを符号化する（Ｓ２２）。さらに、グローバル動きベクトルを用いて予測符号化を実行したか否かを示すＧＭＶ使用フラグを多重化部に与える。
【００６３】
フレーム内の全てのマクロブロックについてＳ２０、Ｓ２２の処理が終わると（Ｓ２４のＹ）、このフローを終了する。
【００６４】
図５（ａ）は、グローバル領域の例を説明する図である。図５（ａ）の例では、領域設定部６４は、フレーム１１０上に第１グローバル領域１１２および第２グローバル領域１１４を設定する。さらに、第２グローバル領域１１４に包含された第３グローバル領域１１６を設定する。大域動きベクトル算出部６８は、第１グローバル領域１１２において第１グローバル動きベクトルＧＭＶ１を求め、第２グローバル領域１１４において第２グローバル動きベクトルＧＭＶ２を求め、第３グローバル領域１１６において第３グローバル動きベクトルＧＭＶ３を求める。図５（ａ）中、白抜きの正方形で表す背景部分には、グローバル動きベクトルが設定されていない。
【００６５】
更新判定部５０は、フレーム毎にグローバル動きベクトルＧＭＶ１〜ＧＭＶ３にインデックスを付与して参照テーブルを作成する。図５（ｂ）は、参照テーブルの一例であり、グローバル動きベクトルＧＭＶ１〜ＧＭＶ３にそれぞれインデックス１〜３が割り当てられている。グローバル動きベクトル情報とインデックスは、符号化ストリームのフレームヘッダに格納される。
【００６６】
図５（ａ）の場合、動き補償予測部７０は、各マクロブロックの予測符号化を実行する際に、各マクロブロックについて算出されたローカル動きベクトルＬＭＶと、グローバル動きベクトルＧＭＶ１〜ＧＭＶ３のいずれを用いるかを決定する。
【００６７】
図中、マクロブロック１２０については、当該マクロブロックについて算出されたローカル動きベクトルＬＭＶよりも第３グローバル動きベクトルＧＭＶ３を用いて動き補償したときにマクロブロックの符号量が最小となったため、第３グローバル動きベクトルＧＭＶ３が選択されたものとする。また、マクロブロック１１８については、当該マクロブロックについて算出されたローカル動きベクトルＬＭＶよりも、第２グローバル動きベクトルＧＭＶ２を用いて動き補償したときにマクロブロックの符号量が最小となったため、第２グローバル動きベクトルＧＭＶ２が選択されたものとする。
【００６８】
背景領域内のマクロブロック１１８、１２０以外のマクロブロックでは、各マクロブロックのローカル動きベクトルＬＭＶを用いて動き補償した方が符号量が少なくなったため、グローバル動きベクトルを用いることなくローカル動きベクトルが選択される。
【００６９】
図６は、多重化部９２により生成される符号化ストリーム２００のデータ構造を説明する図である。符号化ストリーム２００は、ストリームパラメータ２０２と、フレームヘッダ２０４と、各フレームのデータから構成される。
【００７０】
本実施例では、フレームヘッダ２０４に参照テーブルの情報、すなわちグローバル動きベクトルとインデックスの情報が格納され、スライスデータ２０８内でマクロブロック毎にＧＭＶ使用フラグ２７０が格納される。
【００７１】
「Ｎｕｍ」２１０は、フレームヘッダ２０４内に格納されるグローバル動きベクトルの数を表す。Ｎｕｍ２１０で表された数のインデックス２１２とグローバル動きベクトル（ＧＭＶ）２１４の対がその後に続く。
【００７２】
このとき、符号化ストリーム２００を処理する復号装置では、処理が先行するフレームで設定された参照テーブルのインデックスと同一のインデックスが付与されたグローバル動きベクトルのみを更新するようにしてもよい。例えば、処理が先行するフレームにおいて図５（ｂ）の参照テーブルが設定されていたとする。後続するフレームのフレームヘッダ２０４に、インデックス１とインデックス３のみが含まれていた場合、これらのグローバル動きベクトルＧＭＶ１、ＧＭＶ３は更新されるが、インデックス２が付与されたグローバル動きベクトルＧＭＶ２は有効なままとなる。代替的に、フレーム毎に参照テーブルをリセットしてしまい、フレームヘッダ２０４にインデックスとグローバル動きベクトルの対があるものだけ、当該フレームの参照テーブルとして用いるようにしてもよい。
【００７３】
スライスデータ２０８には、マクロブロック毎にデータが格納される。ＧＭＶ使用フラグ２７０は、対応するマクロブロックについてグローバル動きベクトルＧＭＶを用いた予測符号化をしたか否かを示す。ＧＭＶ使用フラグ２７０が「１」の場合には、グローバル動きベクトルを用いることを示すので、このフラグに続いて、参照テーブル内の複数のグローバル動きベクトルのうちいずれを使用したかを示すインデックス２７２が格納される。ＧＭＶ使用フラグ２７０が「０」の場合には、グローバル動きベクトルを使用せずローカル動きベクトルを使用したことを示すので、インデックスは格納されない。スライスデータ２０８には、差分画像やローカル動きベクトルＬＭＶの情報も含まれる。
【００７４】
図７は、グローバル動きベクトルにインデックスを付与する方法の一例を示す。あるフレームにおいて、グローバル動きベクトルＧＭＶ１〜ＧＭＶ３にそれぞれインデックス１〜３が付与されたものとする。更新判定部５０は、各マクロブロックの動き補償をする際にグローバル動きベクトルＧＭＶ１〜ＧＭＶ３が使用されたブロック数の情報（図７（ａ）中の「頻度」）を動き補償予測部７０から取得し、参照テーブルとともに大域動きベクトル一時記憶部５２に保持しておく（図７（ａ）参照）。後続するフレームのグローバル動きベクトルを受け取ると、更新判定部５０は、大域動きベクトル一時記憶部５２に保持されているグローバル動きベクトルＧＭＶ１〜ＧＭＶ３と比較する。これらが同じ値であった場合、更新判定部５０は、グローバル動きベクトルＧＭＶ１〜ＧＭＶ３が使用された頻度を参照し、昇順にインデックス１〜３を割り当てし直す（図７（ｂ）参照）。これによって、使用される頻度のより高いグローバル動きベクトルに対して少ないピット数で表せるインデックスが付与されるようになるため、インデックスの符号量を削減できる。
【００７５】
実施例２．
実施例１では、フレーム単位でグローバル動きベクトルとインデックスとを対応させた参照テーブルを作成したが、実施例２では、スライス毎にグローバル動きベクトルとインデックスとを対応させた参照テーブルを作成する。以下、この実施例２について図８ないし図１０を参照して説明する。
【００７６】
図８は、実施例２に係る動き補償部６０による動きベクトルの差分符号化の手順を説明するフローチャートである。Ｓ３０〜Ｓ３６は、図４のＳ１０〜Ｓ１６と同様である。
【００７７】
更新判定部５０は、スライス毎に、各グローバル動きベクトルにインデックスを付与し、またグローバル動きベクトルの参照テーブルを更新するか否かを判定する。グローバル動きベクトル符号化部７４は、グローバル動きベクトルＧＭＶとインデックスとを対応させて可変長符号化する（Ｓ３８）。後述するように、このデータはスライスヘッダに格納される。
【００７８】
動き補償予測部７０は、スライス内に含まれる各マクロブロックについて、Ｓ３８でインデックスが付与されたグローバル動きベクトルＧＭＶと、各マクロブロックについて算出されたローカル動きベクトルＬＭＶのいずれを用いて動き補償すれば、差分画像の符号量と動きベクトルの符号量とを合わせたマクロブロックの符号量が最小となるかを判定する（Ｓ４０）。動き補償予測部７０は、マクロブロックの符号量を最小とする動きベクトルを局所動きベクトル符号化部７２に伝える。
【００７９】
局所動きベクトル符号化部７２は、Ｓ４０においてローカル動きベクトルを用いるとマクロブロックの符号量が最小となると判定された場合、ローカル動きベクトルを符号化する（Ｓ４２）。さらに、グローバル動きベクトルを用いて予測符号化を実行したか否かを示すＧＭＶ使用フラグを多重化部に与える。
【００８０】
フレーム内の全てのスライスについてＳ３８〜Ｓ４２の処理が終わると（Ｓ４４のＹ）、このフローを終了する。
【００８１】
図９（ａ）は、実施例２におけるグローバル領域の例を説明する図である。第１ないし第３グローバル領域１１２〜１１６が設定され、各領域についてグローバル動きベクトルＧＭＶ１〜ＧＭＶ３が算出されることは、図５（ａ）と同様である。図９（ａ）では、フレーム１１０内で横一列のスライスが設定されているものとする。
【００８２】
実施例２では、スライス毎にグローバル動きベクトルの参照テーブルが作成される。例えば、図中のスライス３は、第１グローバル領域１１２と第２グローバル領域１１４を含んでいるので、更新判定部５０は、第１グローバル動きベクトルＧＭＶ１と第２グローバル動きベクトルＧＭＶ２にインデックス１、２を付与して、参照テーブルを作成する（図９（ｂ）参照）。参照テーブルの情報、つまりグローバル動きベクトルＧＭＶとインデックスとは、符号化ストリームのスライスヘッダに格納される。
【００８３】
動き補償予測部７０は、スライス３に含まれる各マクロブロックの予測符号化を実行する際に、各マクロブロックについて算出されたローカル動きベクトルＬＭＶと、スライス３の参照テーブル（図９（ｂ））に設定されたグローバル動きベクトルＧＭＶ１、ＧＭＶ２のいずれを用いるかを決定する。
【００８４】
図中のスライス６は、第１グローバル領域１１２、第２グローバル領域１１４および第３グローバル領域１１６を含んでいるので、更新判定部５０は、グローバル動きベクトルＧＭＶ１〜ＧＭＶ３にインデックス１〜３をそれぞれ付与して参照テーブルを作成する（図９（ｃ）参照）。動き補償予測部７０は、スライス６に含まれる各マクロブロックの予測符号化を実行する際に、各マクロブロックについて算出されたローカル動きベクトルＬＭＶと、スライス６の参照テーブル（図９（ｃ））に設定されたグローバル動きベクトルＧＭＶ１〜ＧＭＶ３のいずれを用いるかを決定する。
【００８５】
図１０は、多重化部９２により生成される符号化ストリーム２２０のデータ構造を説明する図である。
【００８６】
本実施例では、スライスヘッダ２０６に参照テーブルの情報、すなわちグローバル動きベクトルとインデックスの情報が格納され、スライスデータ２０８内でマクロブロック毎にＧＭＶ使用フラグ２７０が格納される。
【００８７】
テーブル更新フラグ２５８は、当該スライスにおいて、グローバル動きベクトルの参照テーブルを更新するか否かを示すフラグである。テーブル更新フラグ２５８が「０」であれば、参照テーブルは更新されず、当該スライスより前のスライスで設定された参照テーブルが有効であり続ける。テーブル更新フラグ２５８が「１」であれば、参照テーブルが更新される。この場合、「Ｎｕｍ」２６０は、スライスヘッダ２０６に格納されるグローバル動きベクトルの数を表す。Ｎｕｍ２６０で表された下図のインデックス２６２とグローバル動きベクトル（ＧＭＶ）２６４の対がその後に続く。
【００８８】
スライスデータ２０８には、マクロブロック毎にＧＭＶ使用フラグ２７０と対応する差分画像や局所動きベクトルのデータが格納される。スライスデータ２０８のデータ構造は、上述の図６と同様であるため、説明を省略する。
【００８９】
実施例３．
実施例３では、実施例１と同様に、フレーム単位でグローバル動きベクトルとインデックスとを対応させた参照テーブルを作成する。しかしながら、実施例３では、スライス毎に参照テーブル内の動きベクトルのうちいずれか１つを指定し、各マクロブロックにおいてスライスで指定された動きベクトルを使用するか否かを判定する。
【００９０】
これについて、図５および図９を参照して説明する。更新判定部５０は、フレーム１１０について、図５（ｂ）に示すような参照テーブルを作成する。動き補償予測部７０は、スライス毎にインデックスを用いて、図５（ｂ）の参照テーブルからいずれかのグローバル動きベクトルを指定する。例えば、図９（ａ）を参照して、スライス３では、第１グローバル領域１１２と第２グローバル領域１１４のうち第２グローバル領域１１４の方がスライスと重なっているブロック数が多いため、動き補償予測部７０は第２グローバル動きベクトルＧＭＶ２を指定する。そして、スライス３に含まれる各マクロブロックの予測符号化を実行する際に、各マクロブロックについて算出されたローカル動きベクトルＬＭＶと、先にスライス単位で指定した第２グローバル動きベクトルＧＭＶ２のいずれを用いるかを決定する。
【００９１】
図１１は、実施例３に係る動き補償部６０による動きベクトルの差分符号化の手順を説明するフローチャートである。Ｓ５０〜Ｓ５６は、図４のＳ１０〜Ｓ１６と同様である。
【００９２】
更新判定部５０は、各グローバル動きベクトルＧＭＶにインデックスを付与し、またグローバル動きベクトルの参照テーブルを更新するか否かを判定する。グローバル動きベクトル符号化部７４は、グローバル動きベクトルＧＭＶとインデックスとを対応させて可変長符号化する（Ｓ５８）。このデータはフレームのヘッダに格納される。
【００９３】
動き補償予測部７０は、スライス毎に、参照テーブル内のグローバル動きベクトルＧＭＶのうちいずれか１つを指定する（Ｓ６０）。
【００９４】
動き補償予測部７０は、スライス内に含まれる各マクロブロックについて、Ｓ６０で指定されたグローバル動きベクトルＧＭＶと、各マクロブロックについて算出されたローカル動きベクトルＬＭＶのいずれを用いて動き補償すれば、差分画像の符号量と動きベクトルの符号量とを合わせたマクロブロックの符号量が最小となるかを判定する（Ｓ６２）。動き補償予測部７０は、マクロブロックの符号量を最小とする動きベクトルを局所動きベクトル符号化部７２に伝える。
【００９５】
局所動きベクトル符号化部７２は、Ｓ６２においてローカル動きベクトルを用いるとマクロブロックの符号量が最小となると判定された場合、ローカル動きベクトルを符号化する（Ｓ６４）。さらに、グローバル動きベクトルを用いて予測符号化を実行したか否かを示すＧＭＶ使用フラグを多重化部に与える。
【００９６】
フレーム内の全てのスライスについてＳ６０〜Ｓ６４の処理が終わると（Ｓ６６のＹ）、このフローを終了する。
【００９７】
図１２は、多重化部９２により生成される符号化ストリーム２４０のデータ構造を説明する図である。
【００９８】
本実施例では、フレームヘッダ２０４に参照テーブルの情報、すなわちグローバル動きベクトルＧＭＶとインデックスの情報が格納される。スライスヘッダ２０６には、フレームヘッダ内のグローバル動きベクトルＧＭＶのいずれかを指定するインデックスの情報が格納される。さらに、スライスデータ２０８内でマクロブロック毎にＧＭＶ使用フラグ２８４が格納される。
【００９９】
フレームヘッダ２０４のデータ構造は、図６で説明したのと同様である。スライスヘッダ２０６には、当該スライスでグローバル動きベクトルを使用するか否かを示すＧＭＶ使用フラグ２８０が格納される。ＧＭＶ使用フラグ２８０が「１」であれば、使用するグローバル動きベクトルを指定するインデックス２８２がその後に続く。ＧＭＶ使用フラグ２８０が「０」であれば、当該スライスに含まれる各マクロブロックではグローバル動きベクトルを使用せずローカル動きベクトルのみを使用するので、後述するＧＭＶ使用フラグ２８４は存在しない。
【０１００】
ＧＭＶ使用フラグ２８４は、インデックス２８２で指定されたグローバル動きベクトルを、各マクロブロックで使用するか否かを示す。ＧＭＶ使用フラグ２８４が「１」の場合には、グローバル動きベクトルを使用してそのマクロブロックを動き補償し、ＧＭＶ使用フラグ２８４が「０」の場合には、ローカル動きベクトルを使用してそのマクロブロックを動き補償する。
【０１０１】
図１３は、実施の形態に係る復号装置３００の構成図である。これらの機能ブロックもハードウエアのみ、ソフトウエアのみ、またはそれらの組み合わせによっていろいろな形で実現することができる。
【０１０２】
復号装置３００は、符号化ストリームの入力を受け取り、符号化ストリームを復号して出力画像を生成する。入力された符号化ストリームはフレームメモリ３８０に格納される。
【０１０３】
可変長復号部３１０は、フレームメモリ３８０に格納された符号化ストリームを可変長復号し、復号された画像データを逆量子化部３２０に供給し、復号された動きベクトル情報を動き補償部３６０に供給する。
【０１０４】
逆量子化部３２０は、可変長復号部３１０により復号された画像データを逆量子化し、逆ＤＣＴ部３３０に供給する。逆量子化部３２０により逆量子化された画像データはＤＣＴ係数である。逆ＤＣＴ部３３０は、逆量子化部３２０により逆量子化されたＤＣＴ係数を逆離散コサイン変換（ＩＤＣＴ）することにより、元の画像データを復元する。逆ＤＣＴ部３３０により復元された画像データは、動き補償部３６０に供給される。
【０１０５】
動き補償部３６０は、過去または未来の画像フレームを参照画像として利用し、可変長復号部３１０から供給される動きベクトル情報を用いて予測画像を生成し、逆ＤＣＴ部３３０から供給される差分画像と加算することにより、元の画像データを復元し、出力する。
【０１０６】
図１４は、動き補償部３６０の構成を説明する図である。復号装置３００に入力される符号化ストリームは、図１の符号化装置１００により符号化されたものであり、動き補償部３６０には、グローバル動きベクトルＧＭＶ、インデックス、各種フラグ、ローカル動きベクトルＬＭＶが供給される。動き補償部３６０は、これらの情報を参照して、復号対象フレームのローカル動きベクトルＬＭＶを求め、動き補償を行う。
【０１０７】
テーブル作成部３６４は、可変長復号部３１０からグローバル動きベクトルとインデックスの入力を受け取り、グローバル動きベクトルの参照テーブルを作成する。
【０１０８】
例えば、図６または図１２で示すような、フレーム毎にグローバル動きベクトルの参照テーブル情報が符号化されている場合には、テーブル作成部３６４は、Ｎｕｍ２１０の情報からグローバル動きベクトルの数を把握し、その数分のエントリを有するテーブルを作成し、そこにインデックス２１２とそれに対応するグローバル動きベクトル２１４とを格納することで、図５（ｂ）に示すような参照テーブルを作成する。
【０１０９】
図１０に示すような、スライス毎にグローバル動きベクトルの参照テーブル情報が符号化されている場合には、まずテーブル更新フラグ２５８を参照して、処理対象のスライスでグローバル動きベクトルの参照テーブルを更新するか否かを判定する。参照テーブルを更新する場合は、上述と同様に、Ｎｕｍ２６０の情報からグローバル動きベクトルの数を把握し、その数分のエントリを有するテーブルを作成し、そこにインデックス２６２とそれに対応するグローバル動きベクトル２６４とを格納することで、図９（ｂ）、９（ｃ）に示すような参照テーブルを作成する。
テーブル作成部３６４は、作成した参照テーブルを画像復元部３６６に与える。
【０１１０】
画像復元部３６６は、参照画像と各グローバル領域内のマクロブロック単位のローカル動きベクトルＬＭＶまたは参照テーブル内のグローバル動きベクトルＧＭＶを用いて予測画像を生成し、逆ＤＣＴ部３３０から与えられた差分画像と予測画像を加算して元の画像を復元し、出力する。
【０１１１】
図６または図１０のような符号化ストリームが入力された場合は、画像復元部３６６は、各マクロブロックに対応して設定されているＧＭＶ使用フラグ２７０を参照して、処理対象のマクロブロックでグローバル動きベクトルとローカル動きベクトルのいずれを用いて予測画像を生成するかを決定する。グローバル動きベクトルを用いる場合は、ＧＭＶ使用フラグ２７０の後に続くインデックス２７２を用いて、テーブル作成部３６４から受け取った参照テーブルから対応づけられているグローバル動きベクトルを取得し、取得したグローバル動きベクトルを用いて予測画像を生成する。フラグ２７０が「０」である場合は、画像復元部３６６は処理対象のマクロブロック単位のローカル動きベクトルを用いて予測画像を生成する。図６の符号化ストリームを例として用いると、画像復元部３６６は、１つ目のマクロブロックについてはインデックス２７２で特定されるグローバル動きベクトルを用いて予測画像を生成し、２つ目のマクロブロックについてはローカル動きベクトルを用いて予測画像を生成する。
【０１１２】
図１２のような符号化ストリームが入力された場合は、スライス毎にＧＭＶ使用フラグ２８０を参照してグローバル動きベクトルを指定しているか否かを判定する。ＧＭＶ使用フラグ２８０が「１」でありグローバル動きベクトルを指定しているときは、インデックス２８２を用いて、テーブル作成部３６４から受け取った参照テーブルから対応づけられているグローバル動きベクトルを取得する。そして、マクロブロック単位でＧＭＶ使用フラグ２８４を参照して、先ほど取得したグローバル動きベクトルと、マクロブロック単位のローカル動きベクトルのいずれかを用いて予測画像を生成する。図１２の符号化ストリームを例として用いると、１つ目のマクロブロックについてはインデックス２８２で指定されたグローバル動きベクトルを用いて予測画像を生成し、２つ目のマクロブロックについてはローカル動きベクトルを用いて予測画像を生成する。
【０１１３】
以上述べたように、本実施の形態の符号化装置１００によれば、フレーム単位で、またはスライス毎にグローバル動きベクトルとインデックスとを対応させたテーブルを作っておき、各マクロブロックにおいて予測符号化に使用するグローバル動きベクトルをインデックスで指定できるようにした。これによって、同一のフレームやスライス内で、異なるグローバル領域に含まれるマクロブロックで同じグローバル動きベクトルを用いて予測符号化する際に、グローバル動きベクトルを重複して符号化ストリームに含める必要がなくなる。したがって、グローバル動きベクトルに起因する符号化データのデータ量を削減でき、動画ストリームの圧縮効率を高めることができる。
【０１１４】
また、マクロブロック毎にグローバル動きベクトルを使用するか否かを表すＧＭＶ使用フラグを符号化ストリームに格納することで、マクロブロック単位で、ローカル動きベクトルとグローバル動きベクトルのいずれを用いても動き補償を実行できるようになり、マクロブロックの符号化データのデータ量を一層削減できる可能性がある。
【０１１５】
さらに、複数のグローバル動きベクトルをフレーム単位、またはスライス単位で参照テーブルに設定し、インデックスを用いることでいずれのグローバル動きベクトルも使用できることから、マクロブロック同士が同一のグローバル領域に含まれていない場合でも、同じグローバル動きベクトルを使用した動き補償をすることができる。
【０１１６】
インデックス付きで符号化されるグローバル動きベクトルは、処理が先行するフレームまたはスライスにおける参照テーブル内のグローバル動きベクトルとの差分データであっってもよい。こうすれば、動きベクトル情報自体のデータ量を削減し、動画像ストリーム全体の符号量を減らして圧縮効率を高めることができる。
【０１１７】
グローバル動きベクトルに付与されるインデックスは、グローバル動きベクトルが算出された順に数字を割り当てていってもよいが、フレームまたはスライス内で出現する頻度が高いと予測されるグローバル動きベクトルに、より小さい値のインデックスを割り当てるようにすれば、インデックスのデータ量をさらに削減することができる。
【０１１８】
また、本実施の形態の復号装置３００によれば、符号化装置１００によって符号化された圧縮効率の高い動画ストリームから、フレーム毎にまたはスライス単位でグローバル動きベクトルとインデックスを対応させた参照テーブルを構築し、スライスまたはマクロブロック毎にインデックスを用いて参照テーブルから動きベクトルを取得する。こうすることで、ローカル動きベクトルまたはグローバル動きベクトルのいずれをも使用した動き補償を実行することができる。
【０１１９】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１２０】
上記の説明では、動きベクトル選択部５４は、１つまたは複数のグローバル動きベクトルＧＭＶと各マクロブロックについて算出されたローカル動きベクトルＬＭＶとのいずれを用いて動き予測すれば、差分画像の符号量と動きベクトルの符号量とを合わせたマクロブロックの符号量が最小となるかを判定することを述べた。しかしながら、動きベクトル選択部５４は、以下のようにして最適な動きベクトルを選択してもよい。すなわち、動きベクトル選択部５４は、上記マクロブロックの符号量を算出するほか、１つまたは複数のグローバル動きベクトルＧＭＶと各マクロブロックのローカル動きベクトルＬＭＶのそれぞれを用いて符号化された画像を復号化したときの復号化画像と原画像との差分値を算出する。そして、動きベクトル選択部５４は、マクロブロックの符号量と上記差分値とを所定の評価式に代入して算出される評価値をそれぞれの動きベクトルについて求め、その評価値が最小となる動きベクトルを選択する。こうすることによって、符号化データの符号量と復号化画像の画質との両方を考慮して最適な動きベクトルを選択することができる。
【０１２１】
上記の説明では、フレーム毎、領域毎、マクロブロック毎に、インデックスを用いて動きベクトルを特定する参照テーブルを設けたが、参照テーブルは、それより大きい単位、例えば、ストリーム全体やＧＯＰ毎に設けることもできる。この場合、参照テーブルの情報は、ストリームパラメータまたはＧＯＰヘッダに格納される。そして、フレーム、スライス、グローバル領域またはマクロブロック毎に、参照テーブルに設定された動きベクトルを指定するインデックスの情報がヘッダなどに格納される。こうすることで、例えばストリームの全体やＧＯＰにわたって動画像の動きベクトルが変化しない場合は、動きベクトル情報に起因する符号量を大きく削減することができる。
【０１２２】
また、上記の説明では、フレーム内のグローバル領域またはスライス毎に動きベクトルをインデックスで特定するためのテーブルを作成したが、図示しないＲＯＩ領域設定部が動画像上に設定する注目領域（Region of Interest;ＲＯＩ）毎に、動きベクトルをインデックスで特定するためのテーブルを作成してもよい。注目領域は、ユーザが画像上の特定の領域を指定することによって選択されてもよく、画像の中心領域などあらかじめ定まった領域が選択されてもよい。また、人物や文字が映っている領域などの重要領域が注目領域として自動的に抽出されてもよい。また、動画像において特定のオブジェクト等の動きを追跡することによって注目領域がフレーム単位で自動的に選択されてもよい。
【０１２３】
上記の説明では、符号化装置１００および復号装置３００は、ＭＰＥＧシリーズの規格（ＭＰＥＧ−１、ＭＰＥＧ−２およびＭＰＥＧ−４）、Ｈ．２６ｘシリーズの規格（Ｈ．２６１、Ｈ．２６２およびＨ．２６３）、もしくはＨ．２６４／ＡＶＣに準拠して動画像の符号化および復号を行ったが、本発明は、時間的スケーラビリティをもつ階層的な動画像の符号化および復号を行う場合にも適用することができる。特にＭＣＴＦ技術を用いた場合の動きベクトルの符号化において、動きベクトルの符号量を削減するために本発明は有効である。
【図面の簡単な説明】
【０１２４】
【図１】実施の形態に係る符号化装置の構成図である。
【図２】図１の動き補償部の構成を説明する図である。
【図３】グローバル動きベクトルの参照テーブルの一例を示す図である。
【図４】実施例１に係る動きベクトルの差分符号化の手順を説明するフローチャートである。
【図５】（ａ）はグローバル領域の例を説明する図であり、（ｂ）は参照テーブルの一例を示す図である。
【図６】実施例１に係る符号化ストリームのデータ構造を説明する図である。
【図７】グローバル動きベクトルにインデックスを付与する方法の一例を示す図である。
【図８】実施例２に係る動きベクトルの差分符号化の手順を説明するフローチャートである。
【図９】（ａ）はグローバル領域の例を説明する図であり、（ｂ）、（ｃ）は参照テーブルの一例を示す図である。
【図１０】実施例２に係る符号化ストリームのデータ構造を説明する図である。
【図１１】実施例３に係る動きベクトルの差分符号化の手順を説明するフローチャートである。
【図１２】実施例３に係る符号化ストリームのデータ構造を説明する図である。
【図１３】実施の形態に係る復号装置の構成図である。
【図１４】図１３の動き補償部の構成を説明する図である。
【符号の説明】
【０１２５】
２０  ＤＣＴ部、  ３０  量子化部、  ５０  更新判定部、  ５２  大域動きベクトル一時記憶部、  ６０  動き補償部、  ６４  領域設定部、  ６６  局所動きベクトル検出部、  ６８  大域動きベクトル算出部、  ７０  動き補償予測部、  ７２  局所動きベクトル符号化部、  ７４  大域動きベクトル符号化部、  ８０  フレームメモリ、  ９０  可変長符号化部、  ９２  多重化部、  １００  符号化装置、  ３００  復号装置、  ３１０  可変長復号部、  ３２０  逆量子化部、  ３３０  逆ＤＣＴ部、  ３６０  動き補償部、  ３６４  テーブル作成部、  ３６６  画像復元部、  ３８０  フレームメモリ。
【図１】
2008011455.tif 000003
【図２】
2008011455.tif 000004
【図３】
2008011455.tif 000005
【図４】
2008011455.tif 000006
【図５】
2008011455.tif 000007
【図６】
2008011455.tif 000008
【図７】
2008011455.tif 000009
【図８】
2008011455.tif 000010
【図９】
2008011455.tif 000011
【図１０】
2008011455.tif 000012
【図１１】
2008011455.tif 000013
【図１２】
2008011455.tif 000014
【図１３】
2008011455.tif 000015
【図１４】
2008011455.tif 000016