(57)【要約】【課題】画像内の動きベクトルを、少ない演算量で、且つ、正確に検出する。【解決手段】縮小画像生成部３１は、動画像データの画像を縮小して縮小画像を生成する。スーパブロックマッチング部３２は、縮小画像を構成する各スーパブロックの動きベクトルを算出する。動きベクトル変換部３３は、各スーパブロックの動きベクトルを、元となった４個のマクロブロックに共通する動きベクトル候補に変換する。候補ベクトル選択部３４は、注目するマクロブロックに対して近傍のマクロブロックの検出済の動きベクトルおよび動きベクトル候補を抽出する。基準ベクトル決定部３６は、抽出されたものの中から基準ベクトルを決定する。マクロブロックマッチング部３７は、基準ベクトルを中心とする所定の探索範囲内でブロックマッチングを実行する。本発明には、ＭＰＥＧ４方式のエンコーダに適用することができる。【選択図】      図５
2004241880.tif 000002
【特許請求の範囲】
【請求項１】
動画像データの画像の動きベクトルを検出する画像処理装置において、
第１の画素ブロックから構成される前記画像を縮小して、前記第１の画素ブロックよりも小さい第２の画素ブロックから構成される縮小画像を生成する縮小画像生成手段と、
前記縮小画像の動きベクトルを前記第２の画素ブロック単位で検出する第１の検出手段と、
前記第１の検出手段によって検出された前記第２の画素ブロックに対応する前記動きベクトルを伸長して、前記第２の画素ブロックの元となった複数の前記第１の画素ブロックの動きベクトル候補に設定する設定手段と、
動きベクトルを検出するべき前記画像の注目する第１の画素ブロックに対し、近傍の第１の画素ブロックに対して既に検出されている動きベクトルまたは前記動きベクトル候補を抽出する抽出手段と、
前記抽出手段によって抽出された前記動きベクトルおよび前記動きベクトル候補の中から基準ベクトルを選択する選択手段と、
前記選択手段によって選択された前記基準ベクトルを中心とする所定の探索範囲で、前記画像の注目する第１の画素ブロックに対する前記動きベクトルを検出する第２の検出手段と
を含むことを特徴とする画像処理装置。
【請求項２】
前記第２の検出手段によって検出された注目する第１の画素ブロックに対する前記動きベクトルを、前記第１の画素ブロックの近傍の第１の画素ブロックに対する動きベクトルを利用して可変長符号化する符号化手段を
さらに含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記抽出手段は、動きベクトルを検出するべき前記画像の注目する第１の画素ブロックに対し、前記符号化手段による可変長符号化の処理において利用する関係にある近傍の第１の画素ブロックに対して既に検出されている動きベクトルと、前記符号化手段による可変長符号化の処理において利用される関係にある近傍の第１の画素ブロックに対して既に検出されている動きベクトル候補を抽出する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第２の検出手段は、前記選択手段によって前記近傍の第１の画素ブロックに対応して既に検出されている動きベクトルが前記基準ベクトルに選択された場合、前記選択手段によって前記近傍の第１の画素ブロックに対応して既に検出されている動きベクトル候補が前記基準ベクトルに選択された場合よりも狭い探索範囲で、前記画像の注目する第１の画素ブロックに対する前記動きベクトルを検出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記第１の検出手段、前記選択手段、または前記第２の検出手段のうちの少なくとも１つは、ブロックマッチング法を用いる
ことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
動画像データの画像の動きベクトルを検出する画像処理方法において、
第１の画素ブロックから構成される前記画像を縮小して、前記第１の画素ブロックよりも小さい第２の画素ブロックから構成される縮小画像を生成する縮小画像生成ステップと、
前記縮小画像の動きベクトルを前記第２の画素ブロック単位で検出する第１の検出ステップと、
前記第１の検出ステップの処理で検出された前記第２の画素ブロックに対応する前記動きベクトルを伸長して、前記第２の画素ブロックの元となった複数の前記第１の画素ブロックの動きベクトル候補に設定する設定ステップと、
動きベクトルを検出するべき前記画像の注目する第１の画素ブロックに対し、近傍の第１の画素ブロックに対して既に検出されている動きベクトルまたは前記動きベクトル候補を抽出する抽出ステップと、
前記抽出ステップの処理で抽出された前記動きベクトルおよび前記動きベクトル候補の中から基準ベクトルを選択する選択ステップと、
前記選択ステップの処理で選択された前記基準ベクトルを中心とする所定の探索範囲で、前記画像の注目する第１の画素ブロックに対する前記動きベクトルを検出する第２の検出ステップと
を含むことを特徴とする画像処理方法。
【請求項７】
動画像データの画像の動きベクトルを検出するためのプログラムであって、
第１の画素ブロックから構成される前記画像を縮小して、前記第１の画素ブロックよりも小さい第２の画素ブロックから構成される縮小画像を生成する縮小画像生成ステップと、
前記縮小画像の動きベクトルを前記第２の画素ブロック単位で検出する第１の検出ステップと、
前記第１の検出ステップの処理で検出された前記第２の画素ブロックに対応する前記動きベクトルを伸長して、前記第２の画素ブロックの元となった複数の前記第１の画素ブロックの動きベクトル候補に設定する設定ステップと、
動きベクトルを検出するべき前記画像の注目する第１の画素ブロックに対し、近傍の第１の画素ブロックに対して既に検出されている動きベクトルまたは前記動きベクトル候補を抽出する抽出ステップと、
前記抽出ステップの処理で抽出された前記動きベクトルおよび前記動きベクトル候補の中から基準ベクトルを選択する選択ステップと、
前記選択ステップの処理で選択された前記基準ベクトルを中心とする所定の探索範囲で、前記画像の注目する第１の画素ブロックに対する前記動きベクトルを検出する第２の検出ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項８】
動画像データの画像の動きベクトルを検出するためのプログラムであって、
第１の画素ブロックから構成される前記画像を縮小して、前記第１の画素ブロックよりも小さい第２の画素ブロックから構成される縮小画像を生成する縮小画像生成ステップと、
前記縮小画像の動きベクトルを前記第２の画素ブロック単位で検出する第１の検出ステップと、
前記第１の検出ステップの処理で検出された前記第２の画素ブロックに対応する前記動きベクトルを伸長して、前記第２の画素ブロックの元となった複数の前記第１の画素ブロックの動きベクトル候補に設定する設定ステップと、
動きベクトルを検出するべき前記画像の注目する第１の画素ブロックに対し、近傍の第１の画素ブロックに対して既に検出されている動きベクトルまたは前記動きベクトル候補を抽出する抽出ステップと、
前記抽出ステップの処理で抽出された前記動きベクトルおよび前記動きベクトル候補の中から基準ベクトルを選択する選択ステップと、
前記選択ステップの処理で選択された前記基準ベクトルを中心とする所定の探索範囲で、前記画像の注目する第１の画素ブロックに対する前記動きベクトルを検出する第２の検出ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および方法、記録媒体、並びにプログラムに関し、例えば、ＭＰＥＧ４方式に従って動画像データを圧縮符号化する場合に用いて好適な画像処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
ディジタル動画像データを圧縮符号化する技術として、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式が広く用いられている。特に昨今、携帯電話機等のいわゆるモバイル機器に供給することを目的とした動画像データを得る方式として、従来よりも高い圧縮率（例えば、１０ｋｂｐｓ乃至２Ｍｂｐｓ）で符号化を行うことができるＭＰＥＧ４方式が注目されている。
【０００３】
ＭＰＥＧ４方式では、ＭＰＥＧ２方式等と同様に、圧縮符号化の過程において、画像を所定のサイズのマクロブロックに分割し、各マクロブロックの動きベクトルを検出している。
【０００４】
マクロブロックの動きベクトルを検出するための全動き探索法では、図１に示すように、圧縮符号化するフレーム画像（以下、カレントフレームと記述する）に所定のサイズ（例えば、１６×１６画素）のマクロブロック（ＭＢ）が設定され、参照フレームに設けられる探索範囲との間でブロックマッチングが行われる。具体的には、探索範囲内でマクロブロックと同じサイズの参照ブロックが移動され、次式（１）のように、マクロブロックの画素ｃ（ｉ，ｊ）と探索範囲内の各参照ブロックの対応する画素ｒ（ｉ，ｊ）の差分の絶対値和ＡＤ（以下、単にＡＤと記述する）が演算される。そして、ＡＤが最小となるときの参照ブロックの位置に応じて動きベクトル（ＭＶ）として検出される。
ＡＤ＝Σ｜ｃ（ｉ，ｊ）−ｒ（ｉ，ｊ）｜                        …（１）
【０００５】
しかしながら、各マクロブロックに対して、上述したような全動き探索法により動きベクトルを検出することは、ＡＤの演算量が膨大であるので、リアルタイムエンコードには適用できないことがあり得る。
【０００６】
そこで、従来においては、各マクロブロックの動きベクトルを検出する方法として、以下に説明する階層的動き探索法が提案されている。階層的動き探索法では、第１階層の処理として、図２に示されるように、カレントフレームに設けられた複数（例えば、４）のマクロブロックを所定の倍率（１／４）だけ縮小してスーパブロック（ＳＢ）が生成され、スーパブロックに対してブロックマッチングが実行されて、スーパブロックに対する動きベクトルが検出される。
【０００７】
そして、第２階層の処理として、スーパブロックに対する動きベクトルが前記所定の倍率だけ伸長され、伸長された動きベクトルを基準とする比較的狭い探索範囲で、スーパブロックの元になったマクロブロックの動きベクトルが全動き探索法等により探索される（例えば、特許文献１参照）。階層的動き探索法では、第２階層の処理における全動き探索法の探索範囲を比較的狭く設定することができるので、ＡＤの演算量を削減することができる。
【０００８】
【特許文献１】
特表２００２−５１８８９７号公報
【０００９】
【発明が解決しようとする課題】
しかしながら、階層的動き探索法の第２階層の処理では、第１階層の処理で求められたスーパブロックの動きベクトルを伸長したベクトルを基準とする比較的狭い範囲しか探索しないので、場合によってはマクロブロックの真の動きベクトルを検出できないことがある課題があった。
【００１０】
例えば、図３Ａに示すように、スーパブロックの元となる複数（いまの場合、４）のマクロブロックの真の動きベクトルが図示するとおりであるとする。第１の階層処理により、スーパブロックの動きベクトルが、図３Ｂに示されるとおりに検出される。そして、第２の階層処理において、図３Ｃに示すようなスーパブロックの動きベクトルを伸長したベクトルが基準となる比較的狭い範囲で探索が行われる。この場合、図の右下以外のマクロブロックについては真の動きベクトルが検出されると思われるが、右下のマクロブロックについては真の動きベクトルが正確に検出されないことになる。
【００１１】
なお、第２の階層処理における探索範囲を広げれば、図３における右下のマクロブロックについても真の動きベクトルを正確に検出することができる。しかしながら、そのようにした場合、ＡＤの演算量が増加するので、階層的動き探索法の当初の目的（ＡＤの演算量を減少させること）に反することになる。
【００１２】
本発明はこのような状況に鑑みてなされたものであり、ＭＰＥＧ４等に基づいて動画像データを圧縮符号化する過程の動きベクトル検出処理を、少ない演算量で、且つ、正確に行えるようにすることを目的とする。
【００１３】
【課題を解決するための手段】
本発明の画像処理装置は、第１の画素ブロックから構成される画像を縮小して、第１の画素ブロックよりも小さい第２の画素ブロックから構成される縮小画像を生成する縮小画像生成手段と、縮小画像の動きベクトルを第２の画素ブロック単位で検出する第１の検出手段と、第１の検出手段によって検出された第２の画素ブロックに対応する動きベクトルを伸長して、第２の画素ブロックの元となった複数の第１の画素ブロックの動きベクトル候補に設定する設定手段と、動きベクトルを検出するべき画像の注目する第１の画素ブロックに対し、近傍の第１の画素ブロックに対して既に検出されている動きベクトルまたは動きベクトル候補を抽出する抽出手段と、抽出手段によって抽出された動きベクトルおよび動きベクトル候補の中から基準ベクトルを選択する選択手段と、選択手段によって選択された基準ベクトルを中心とする所定の探索範囲で、画像の注目する第１の画素ブロックに対する動きベクトルを検出する第２の検出手段とを含むことを特徴とする。
【００１４】
本発明の画像処理装置は、第２の検出手段によって検出された注目する第１の画素ブロックに対する動きベクトルを、第１の画素ブロックの近傍の第１の画素ブロックに対する動きベクトルを利用して可変長符号化する符号化手段をさらに含むことができる。
【００１５】
前記抽出手段は、動きベクトルを検出するべき画像の注目する第１の画素ブロックに対し、符号化手段による可変長符号化の処理において利用する関係にある近傍の第１の画素ブロックに対して既に検出されている動きベクトルと、符号化手段による可変長符号化の処理において利用される関係にある近傍の第１の画素ブロックに対して既に検出されている動きベクトル候補を抽出するようにすることができる。
【００１６】
前記第２の検出手段は、選択手段によって近傍の第１の画素ブロックに対応して既に検出されている動きベクトルが基準ベクトルに選択された場合、選択手段によって近傍の第１の画素ブロックに対応して既に検出されている動きベクトル候補が基準ベクトルに選択された場合よりも狭い探索範囲で、画像の注目する第１の画素ブロックに対する動きベクトルを検出するようにすることができる。
【００１７】
前記第１の検出手段、選択手段、または第２の検出手段のうちの少なくとも１つは、ブロックマッチング法を用いるようにすることができる。
【００１８】
本発明の画像処理方法は、第１の画素ブロックから構成される画像を縮小して、第１の画素ブロックよりも小さい第２の画素ブロックから構成される縮小画像を生成する縮小画像生成ステップと、縮小画像の動きベクトルを第２の画素ブロック単位で検出する第１の検出ステップと、第１の検出ステップの処理で検出された第２の画素ブロックに対応する動きベクトルを伸長して、第２の画素ブロックの元となった複数の第１の画素ブロックの動きベクトル候補に設定する設定ステップと、動きベクトルを検出するべき画像の注目する第１の画素ブロックに対し、近傍の第１の画素ブロックに対して既に検出されている動きベクトルまたは動きベクトル候補を抽出する抽出ステップと、抽出ステップの処理で抽出された動きベクトルおよび動きベクトル候補の中から基準ベクトルを選択する選択ステップと、選択ステップの処理で選択された基準ベクトルを中心とする所定の探索範囲で、画像の注目する第１の画素ブロックに対する動きベクトルを検出する第２の検出ステップとを含むことを特徴とする。
【００１９】
本発明の記録媒体のプログラムは、第１の画素ブロックから構成される画像を縮小して、第１の画素ブロックよりも小さい第２の画素ブロックから構成される縮小画像を生成する縮小画像生成ステップと、縮小画像の動きベクトルを第２の画素ブロック単位で検出する第１の検出ステップと、第１の検出ステップの処理で検出された第２の画素ブロックに対応する動きベクトルを伸長して、第２の画素ブロックの元となった複数の第１の画素ブロックの動きベクトル候補に設定する設定ステップと、動きベクトルを検出するべき画像の注目する第１の画素ブロックに対し、近傍の第１の画素ブロックに対して既に検出されている動きベクトルまたは動きベクトル候補を抽出する抽出ステップと、抽出ステップの処理で抽出された動きベクトルおよび動きベクトル候補の中から基準ベクトルを選択する選択ステップと、選択ステップの処理で選択された基準ベクトルを中心とする所定の探索範囲で、画像の注目する第１の画素ブロックに対する動きベクトルを検出する第２の検出ステップとを含むことを特徴とする。
【００２０】
本発明のプログラムは、第１の画素ブロックから構成される画像を縮小して、第１の画素ブロックよりも小さい第２の画素ブロックから構成される縮小画像を生成する縮小画像生成ステップと、縮小画像の動きベクトルを第２の画素ブロック単位で検出する第１の検出ステップと、第１の検出ステップの処理で検出された第２の画素ブロックに対応する動きベクトルを伸長して、第２の画素ブロックの元となった複数の第１の画素ブロックの動きベクトル候補に設定する設定ステップと、動きベクトルを検出するべき画像の注目する第１の画素ブロックに対し、近傍の第１の画素ブロックに対して既に検出されている動きベクトルまたは動きベクトル候補を抽出する抽出ステップと、抽出ステップの処理で抽出された動きベクトルおよび動きベクトル候補の中から基準ベクトルを選択する選択ステップと、選択ステップの処理で選択された基準ベクトルを中心とする所定の探索範囲で、画像の注目する第１の画素ブロックに対する動きベクトルを検出する第２の検出ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００２１】
本発明の画像処理装置および方法、並びにプログラムにおいては、第１の画素ブロックから構成される画像が縮小されて、第１の画素ブロックよりも小さい第２の画素ブロックから構成される縮小画像が生成され、縮小画像の動きベクトルが第２の画素ブロック単位で検出され、検出された第２の画素ブロックに対応する動きベクトルが伸長されて、第２の画素ブロックの元となった複数の第１の画素ブロックの動きベクトル候補に設定される。さらに、動きベクトルを検出するべき画像の注目する第１の画素ブロックに対し、近傍の第１の画素ブロックに対して既に検出されている動きベクトルまたは動きベクトル候補が抽出され、抽出された動きベクトルおよび動きベクトル候補の中から基準ベクトルが選択され、選択された基準ベクトルを中心とする所定の探索範囲で、画像の注目する第１の画素ブロックに対する動きベクトルが検出される。
【００２２】
【発明の実施の形態】
図４は、本発明を適用したエンコーダの構成例を示している。このエンコーダ１０は、入力される動画像データをＭＰＥＧ４方式に従って圧縮符号化し、符号化データを生成するものである。
【００２３】
フレームメモリ１１は、入力された符号化すべき動画像データを一時的に記憶する。差分演算部１２は、フレームメモリ１１に記憶されているカレントフレームを読み出し、スイッチ２１を介して動き補償部２０から供給される予測フレームとの差分を演算してＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）部１３に出力する。ＤＣＴ部１３は、差分演算部１２の出力に対してＤＣＴ（離散コサイン変換）処理を施し、その結果得られるＤＣＴ係数を量子化部１４に出力する。
【００２４】
量子化部１４は、ＤＣＴ部１３から入力されたＤＣＴ係数を量子化してＶＬＣ（ＶａｒｉａｂｌｅＬｅｎｇｔｈ  Ｃｏｄｅ）部１５および逆量子化部１６に出力する。ＶＬＣ部１５は、量子化部１４から入力される量子化されたＤＣＴ係数（以下、量子化係数とも記述する）、並びに動きベクトル検出部２３から入力される動きベクトルＭＶを、注目しているマクロブロックの真上、右上、左横のマクロブロックの動きベクトルを平均した予測ベクトルとの差分を用いてハフマン符号等の可変長符号に変換し、その結果得られる符号化データを後段に出力する。
【００２５】
逆量子化部１６は、量子化部１４から入力される量子化係数を逆量子化することにより、ＤＣＴ係数を復元して逆ＤＣＴ部１７に出力する。逆ＤＣＴ部１７は、逆量子化部１６から入力されるＤＣＴ係数に逆ＤＣＴ変換処理を施し、その結果得られる差分データを加算部１８に出力する。加算部１８は、逆ＤＣＴ部１７から入力される差分データと、スイッチ２２を介して動き補償部２０から供給される予測フレームとを加算することにより、復元フレームを生成してフレームメモリ１９に出力する。
【００２６】
フレームメモリ１９は、加算部１８からの復元フレームを一時的に記録する。動き補償部２０は、動きベクトル検出部２３から入力されるカレントフレームの各マクロブロックに対する動きベクトルＭＶおよび予測モードに基づき、フレームメモリ１９に記憶されている復元フレームを読み出し、予測フレームとしてスイッチ２１を介して差分演算部１２に、また、スイッチ２２を介して加算部１８に出力する。スイッチ２１，２２は、動きベクトル検出部２３から入力される予測モードに従ってオン／オフを切り替える。
【００２７】
動きベクトル検出部２３は、フレームメモリ１１に保持された動画像データを１フレーム分ずつ読み出し、各フレームに所定のサイズのマクロブロックを設定し、フレーム上の左上のマクロブロックを先頭に右下のマクロブロックまで順に動きベクトルＭＶを検出する。また、動きベクトル検出部２３は、検出した各マクロブロックに対する動きベクトルＭＶに基づき、予測モードとしてイントラ予測モードまたはインター予測モードのいずれかを選択する。さらに、動きベクトル検出部２３は、検出した各マクロブロックに対する動きベクトルＭＶと選択した予測モードを、動き補償部２０およびＶＬＣ部１５および動き補償部２０に供給する。さらに、動きベクトル検出部２３は、選択した予測モードを、スイッチ２１，２２に供給する。
【００２８】
図５は、動きベクトル検出部２３の動きベクトルＭＶを検出する部分の構成例を示している。
【００２９】
縮小画像生成部３１は、フレームメモリ１１から１フレーム分毎に読み出した動画像データの画像を縮小して縮小画像を生成する。具体的には、例えば、図２に示されたように、動画像データの１フレームの３２×３２画素（４個のマクロブロック）を元にして縮小画像の８×８画素（１個のスーパブロック）を生成するように、縦横のサイズをそれぞれ１／４に縮小する。
【００３０】
スーパブロックマッチング部３２は、縮小画像生成部３１により生成されたカレントフレームに対応する縮小画像と、参照フレームに対応する縮小画像とのスーパブロック単位のブロックマッチングを実行して、カレントフレームに対応する縮小画像を構成する各スーパブロックの動きベクトルを算出する。動きベクトル変換部３３は、各スーパブロックの動きベクトルを所定の倍率（図２に対応させる場合、４倍）に伸長し、各スーパブロックの元となった４個のマクロブロックに共通する動きベクトル候補ＭＶＳを生成する。
【００３１】
候補ベクトル選択部３４は、カレントフレームの注目するマクロブロックＸの動きベクトルＭＶＸを探索する範囲の基準となる基準ベクトルＭＶＢの候補（以下、候補ベクトルと記述する）を選択する。具体的には、図６Ａに示すように、マクロブロックＸに対し、既に検出済の真上のマクロブロックＡの動きベクトルＭＶＡ、右上のマクロブロックＢの動きベクトルＭＶＢ、および左横のマクロブロックＣの動きベクトルＭＶＣ、並びに注目するマクロブロックＸの動きベクトル候補ＭＶＳＸ、右横のマクロブロックＤの動きベクトル候補ＭＶＳＤ、左下のマクロブロックＥの動きベクトル候補ＭＶＳＥ、および真下のマクロブロックＦの動きベクトル候補ＭＶＳＦを候補ベクトルに選択する。
【００３２】
ここで、マクロブロックＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆに着目する理由は、動きベクトルＭＶＡ，ＭＶＢ，ＭＶＣが、注目するマクロブロックＸの動きベクトルＭＶＸがＶＬＣ部１５により可変長符号化されるときに用いられるものであり、また、注目するマクロブロックＸの動きベクトルＭＶＸが、動きベクトルＭＶＤ，ＭＶＥ，ＭＶＦがＶＬＣ部１５により可変長符号化されるときに用いられるものであるので、ＶＬＣ部１５により発生される符号量の削減が期待できるからである。
【００３３】
なお、候補ベクトル選択部３４は、候補ベクトルに、図６Ｂに示すカレントフレームの１フレーム前の同じ位置のマクロブロックＧの動きベクトルＭＶＧを追加して選択するようにしてもよい。
【００３４】
重複ベクトル削減部３５は、候補ベクトル選択部３４により選択された候補ベクトルのうちの重複するものを削除する。これにより、重複ベクトル削減部３５の後段における演算量を削減することができる。
【００３５】
基準ベクトル決定部３６は、カレントフレームの注目しているマクロブロックＸについて、参照フレームの対応する位置から各候補ベクトルの分だけ移動させた位置に設ける参照ブロックの対応する画素との差分の絶対値和ＡＤを演算し、ＡＤが最小となるときの候補ベクトルを基準ベクトルＭＶＢに決定する。
【００３６】
マクロブロックマッチング部３７は、カレントフレームの注目しているマクロブロックＸについて、基準ベクトルＭＶＢを中心とする所定の探索範囲内でブロックマッチングを実行する。動きベクトル算出部３８は、マクロブロックマッチング部３７の処理結果に従い、カレントフレームの注目しているマクロブロックＸの動きベクトルＭＶＸを算出する。ここで決定された注目しているマクロブロックＸの動きベクトルＭＶＸは、動き補償部２０等に出力される他、動きベクトルＭＶＤ，ＭＶＥ，ＭＶＦのそれぞれの候補ベクトルとして、候補ベクトル選択部３４に供給される。
【００３７】
なお、基準ベクトルが動きベクトルＭＶＡ，ＭＶＢ，ＭＶＣのうちのいずれかである場合、これらは既に確定された値であって信頼性が高いので、マクロブロックマッチング部３７によりブロックマッチングを実行するときの探索範囲を、例えば、基準ベクトルを中心に±２画素程度に設定することができる。一方、基準ベクトルが動きベクトル候補ＭＶＳＸ，ＭＶＳＤ，ＭＶＳＥ，ＭＶＳＦのうちのいずれかである場合、上述した場合よりも探索範囲を広く、例えば、基準ベクトルを中止に±４画素程度に設定することになる。
【００３８】
いずれの場合においても、ブロックマッチングを実行するときの探索範囲を従来よりも比較的狭く設定することができるので、ブロックマッチングに要する演算量を削減することができる。
【００３９】
次に、動きベクトル検出部２３による動きベクトル検出処理について、図７のフローチャートを参照して説明する。
【００４０】
ステップＳ１において、動きベクトル検出部２３のスーパブロックマッチング部３２は、縮小画像生成部３１により生成されたカレントフレームに対応する縮小画像と、参照フレームに対応する縮小画像とのスーパブロック単位のブロックマッチングを実行して、カレントフレームに対応する縮小画像を構成する各スーパブロックの動きベクトルを算出する。動きベクトル変換部３３は、各スーパブロックの動きベクトルを所定の倍率に伸長し、各スーパブロックの元となった４個のマクロブロックに共通する動きベクトル候補ＭＶＳを生成する。
【００４１】
この段階において、カレントフレームを構成する全てのマクロブロックに対し、動きベクトル候補ＭＶＳが生成されたことになる。
【００４２】
ステップＳ２において、動きベクトル検出部２３は、カレントフレームを構成する各マクロブロックに対し、ステップＳ１の処理で生成した動きベクトル候補ＭＶＳ等に基づいて基準ベクトルを決定し、基準ベクトルに基づいて動きベクトルＭＶを検出する。
【００４３】
ステップＳ２の詳細について、カレントフレームの注目しているマクロブロックＸの動きベクトルＭＶＸを検出する場合を例に、図８のフローチャートを参照して説明する。
【００４４】
ステップＳ１１において、候補ベクトル選択部３４は、カレントフレームの注目するマクロブロックＸの動きベクトルＭＶＸを探索する範囲の基準である基準ベクトルＭＶＢの候補となる候補ベクトルを選択する。具体的には、図６Ａに示すように、注目するマクロブロックＸに対し、真上のマクロブロックＡの動きベクトルＭＶＡ、右上のマクロブロックＢの動きベクトルＭＶＢ、左横のマクロブロックＣの動きベクトルＭＶＣ、および１フレーム前の同じ位置のマクロブロックＧの動きベクトルＭＶＧ、並びに注目するマクロブロックＸの動きベクトル候補ＭＶＳＸ、右横のマクロブロックＤの動きベクトル候補ＭＶＳＤ、左下のマクロブロックＥの動きベクトル候補ＭＶＳＥ、および真下のマクロブロックＦの動きベクトル候補ＭＶＳＦを候補ベクトルに選択する。
【００４５】
ステップＳ１２において、重複ベクトル削減部３５は、候補ベクトル選択部３４により選択された候補ベクトルのうちの重複するものを削除する。ステップＳ１３において、基準ベクトル決定部３６は、カレントフレームの注目しているマクロブロックＸについて、参照フレームの対応する位置から各候補ベクトルの分だけ移動させた位置に設ける参照ブロックの対応する画素との差分の絶対値和ＡＤを演算し、ＡＤが最小となるときの候補ベクトルを基準ベクトルＭＶＢに決定する。
【００４６】
ステップＳ１４において、マクロブロックマッチング部３７は、基準ベクトルＭＶＢに決定された候補ベクトルが動きベクトルＭＶＡ，ＭＶＢ，ＭＶＣ、および動きベクトルＭＶＧのうちのいずれかであるか否かを判定する。基準ベクトルＭＶＢに決定された候補ベクトルが動きベクトルＭＶＡ，ＭＶＢ，ＭＶＣ、および動きベクトルＭＶＧのうちのいずれかであると判定された場合、処理はステップＳ１５に進む。
【００４７】
ステップＳ１５において、マクロブロックマッチング部３７は、カレントフレームの注目しているマクロブロックＸについて、基準ベクトルＭＶＢを中心とする±２画素程度の比較的狭い探索範囲内でブロックマッチングを実行する。ステップＳ１６において、動きベクトル算出部３８は、マクロブロックマッチング部３７によるブロックマッチングの結果に従い、カレントフレームの注目しているマクロブロックＸの動きベクトルＭＶＸを算出する。
【００４８】
ステップＳ１４において、基準ベクトルＭＶＢに決定された候補ベクトルが動きベクトルＭＶＡ，ＭＶＢ，ＭＶＣ、および動きベクトルＭＶＧのうちのいずれかではない、すなわち、基準ベクトルＭＶＢに決定された候補ベクトルが動きベクトル候補ＭＶＳＸ，ＭＶＳＤ，ＭＶＳＥ、およびＭＶＳＦのうちのいずれかであると判定された場合、処理はステップＳ１７に進む。
【００４９】
一方、ステップＳ１７において、マクロブロックマッチング部３７は、カレントフレームの注目しているマクロブロックＸについて、基準ベクトルＭＶＢを中心とする±４画素程度の比較的広い探索範囲内でブロックマッチングを実行する。以上、動きベクトル検出部２３による動きベクトル検出処理の説明を終了する。
【００５０】
以上説明した動きベクトル検出部２３による動きベクトル検出処理によれば、図３を参照して上述したような動きベクトルの検出の失敗を抑止することができる。また、動きベクトルを可変長符号化するときの符号量が減少するように候補ベクトルを選択しているので、従来のようにブロックマッチングだけで動きベクトルを探索していた場合よりも、いわゆるベクトル暴れ現象の発生を比較的抑止することができる。さらに、動きベクトルの探索範囲が狭くなったことによって演算量が減少したので、画像内容にもよるが、例えば、ＣＩＦサイズのシーケンスにおいては、処理時間を１５％乃至２０％程度削減できることなる。
【００５１】
なお、上述した動きベクトル検出処理では、基準ベクトル決定部３６において、候補ベクトルの中から１つだけ基準ベクトルＭＶＢを決めていたが、ステップＳ１３において演算されたＡＤの小さい方から複数の基準ベクトルＭＶＢ１，…を決定するようにし、複数の基準ベクトルＭＶＢ１，…をそれぞれ基準として注目しているマクロブロックの動きベクトルＭＶＸを探索するようにすれば、ＡＤの極小値に対応して誤った動きベクトルＭＶＸが検出されることを抑止することができる。
【００５２】
また、本発明は、ＭＰＥＧ４方式のエンコーダに限らず、ＭＰＥＧ１方式、ＭＰＥＧ２方式、ＪＶＴ（Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ）方式等のエンコーダに適用することが可能である。また、本発明は、画像内の動きを検出する処理を実行する画像処理装置に適用することができる。
【００５３】
ところで、上述した動きベクトル検出装置２３は、図５に示されたように構成されるハードウェアにより実現することもできるが、ソフトウェアにより実行させることもできる。すなわち、動きベクトル検出装置２３による動きベクトル検出処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【００５４】
図９は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５１を内蔵している。ＣＰＵ５１にはバス５４を介して、入出力インタフェース５５が接続されている。バス５４には、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５２およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５３が接続されている。
【００５５】
入出力インタフェース５５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部５６、処理操作画面や処理結果の画像を表示デバイスに出力する出力部５７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部５８、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタなどよりなりネットワークを介した通信処理を実行する通信部５９が接続されている。また、磁気ディスク６１（フレキシブルディスクを含む）、光ディスク６２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）を含む）、光磁気ディスク６３（ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）を含む）、もしくは半導体メモリ６４などの記録媒体に対してデータを読み書きするドライブ６０が接続されている。
【００５６】
ＣＰＵ５１は、ＲＯＭ５２に記憶されているプログラム、または磁気ディスク６１乃至半導体メモリ６４から読み出されて記憶部５８にインストールされ、記憶部５８からＲＡＭ５３にロードされたプログラムに従って動きベクトル検出処理を実行する。
【００５７】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００５８】
【発明の効果】
以上のように、本発明によれば、画像内の動きベクトルを、少ない演算量で、且つ、正確に検出することが可能となる。
【図面の簡単な説明】
【図１】ブロックマッチングについて説明するための図である。
【図２】マクロブロックとスーパブロックの関係を示す図である。
【図３】スーパブロックの動きベクトルに基づいてマクロブロックの動きベクトルを探索した場合の問題点を説明する図である。
【図４】本発明の一実施の形態であるエンコーダの構成例を示すブロック図である。
【図５】図４の動きベクトル検出部の構成例を示すブロック図である。
【図６】候補ベクトルに対するマクロブロックの位置を示す図である。
【図７】動きベクトル検出部による動きベクトル検出処理を説明するフローチャートである。
【図８】図７のステップＳ２の処理を説明するフローチャートである。
【図９】汎用パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
２０  動きベクトル検出部，  ３１  縮小画像生成部，  ３２  スーパブロックマッチング部，  ３３  動きベクトル変換部，  ３４  候補ベクトル選択部，３５  重複ベクトル削除部，  ３６  基準ベクトル決定部，  ３７  マクロブロックマッチング部，  ３８  動きベクトル算出部
【図１】
2004241880.tif 000003
【図２】
2004241880.tif 000004
【図３】
2004241880.tif 000005
【図４】
2004241880.tif 000006
【図５】
2004241880.tif 000007
【図６】
2004241880.tif 000008
【図７】
2004241880.tif 000009
【図８】
2004241880.tif 000010
【図９】
2004241880.tif 000011