(57)【要約】【課題】  動画圧縮符号化技術では、圧縮効率を高めるために、動きベクトル情報に起因する符号量を削減する必要がある。【解決手段】  領域設定部６４は、フレーム画像上に複数のグローバル領域を設定し、ビット数調整部６２は、グローバル領域内で求めるべきローカル動きベクトルＬＭＶのビット数を調整する。局所動きベクトル検出部６６は、各グローバル領域において、ビット数調整部６２により調整されたビット数でマクロブロック単位のローカル動きベクトルＬＭＶを求める。大域動きベクトル算出部６８は、各グローバル領域内の大域的な動きを示すグローバル動きベクトルＧＭＶを算出する。局所動きベクトル差分符号化部７２は、グローバル領域毎に、グローバル領域内のローカル動きベクトルＬＭＶとグローバル動きベクトルＧＭＶの差分ΔＬＭＶを求めて符号化する。【選択図】        図２
2007036889.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;ＲＯＩ）が設定され、ビット数調整部６２は、設定された注目領域毎にローカル動きベクトルのビット数を調整してもよい。
【００９７】
注目領域は、ユーザが画像上の特定の領域を指定することによって選択されてもよく、画像の中心領域などあらかじめ定まった領域が選択されてもよい。また、人物や文字が映っている領域などの重要領域が注目領域として自動的に抽出されてもよい。また、動画像において特定のオブジェクト等の動きを追跡することによって注目領域がフレーム単位で自動的に選択されてもよい。
【００９８】
また、複数の注目領域間で優先度が設定される場合、ビット数調整部６２は、注目領域の優先度に応じて、その注目領域内のローカル動きベクトルのビット数を調整してもよい。注目領域は優先度に応じた画質で再生可能に符号化されるが、優先度の高い注目領域ほど動き探索の範囲を大きくしたり、動き補償の画素精度を高くするなどして、ローカル動きベクトルのビット数を増やすことにより、動き補償により再生される注目領域の画質を一層高めることができる。
【図面の簡単な説明】
【００９９】
【図１】実施の形態に係る符号化装置の構成図である。
【図２】図１の動き補償部の構成を説明する図である。
【図３】図２の動き補償部による動きベクトルの差分符号化の手順を説明するフローチャートである。
【図４】図２の領域設定部により画像上に設定される領域の例を説明する図である。
【図５】図２の大域動きベクトル差分符号化部によりグローバル動きベクトル差分を算出する例を説明する図である。
【図６】図２のビット数調整部により調整されるローカル動きベクトルのビット数を説明する図である。
【図７】実施の形態に係る復号装置の構成図である。
【図８】図７の動き補償部の構成を説明する図である。
【符号の説明】
【０１００】
２０  ＤＣＴ部、  ３０  量子化部、  ６０  動き補償部、  ６２  ビット数調整部、  ６４  領域設定部、  ６６  局所動きベクトル検出部、  ６８  大域動きベクトル算出部、  ７０  動き補償予測部、  ７２  局所動きベクトル差分符号化部、  ７４  大域動きベクトル差分符号化部、  ８０  フレームメモリ、  ９０  可変長符号化部、  ９２  多重化部、  １００  符号化装置、  ３００  復号装置、  ３１０  可変長復号部、  ３２０  逆量子化部、  ３３０  逆ＤＣＴ部、  ３６０  動き補償部、  ３６２  大域動きベクトル算出部、  ３６４  局所動きベクトル算出部、  ３６６  画像復元部、  ３８０  フレームメモリ。
【図１】
2007036889.tif 000003
【図２】
2007036889.tif 000004
【図３】
2007036889.tif 000005
【図４】
2007036889.tif 000006
【図５】
2007036889.tif 000007
【図６】
2007036889.tif 000008
【図７】
2007036889.tif 000009
【図８】
2007036889.tif 000010