(57)【特許請求の範囲】
【請求項１】
入力フレームの画像情報と、複数の参照フレーム候補のうちのいずれかの画像情報とを用いて動き補償を行う動き補償器であって、
時間的に隣接する第１及び第２のフレーム間において、前記第１のフレームを構成する画素と、前記第２のフレームを構成する画素との差分を算出し、算出される差分が最小となる値に基づいて、前記第１のフレームに対する前記第２のフレームの位置の差を表す第１のずれ量を検出する検出手段と、
前記複数の参照フレーム候補のそれぞれのフレームについての前記第１のずれ量に基づき、前記入力フレームと前記複数の参照フレーム候補のそれぞれのフレームとの第２のずれ量を算出する算出手段と、
前記第２のずれ量が最小となる前記参照フレーム候補を、参照フレームとして選択する選択手段と、
前記入力フレームを構成する各マクロブロックについて、前記参照フレームを構成する各マクロブロックに基づき、動きベクトルを算出する動きベクトル算出手段と
を備えることを特徴とする動き補償器。
【請求項２】
前記選択手段は、
前記複数の参照フレーム候補のうち前記入力フレームに時間的に隣接するフレームと、前記入力フレームとの間で前記入力フレームについて検出された前記第１のずれ量と、前記入力フレームと、前記入力フレームに時間的に隣接しないその他の参照フレーム候補のそれぞれのフレームとの間で求められる前記第２のずれ量とのうち、ずれ量が最小となる前記参照フレーム候補を、前記参照フレームとして選択することを特徴とする請求項１に記載の動き補償器。
【請求項３】
前記複数の参照フレーム候補のうち前記入力フレームに時間的に隣接するフレームと、前記入力フレームとの間で前記入力フレームについて検出された前記第１のずれ量が、予め定められた閾値を超える場合に、
前記選択手段は、前記第２のずれ量が最小となる前記参照フレーム候補を、前記参照フレームとして選択することを特徴とする請求項１に記載の動き補償器。
【請求項４】
前記算出手段は、算出したそれぞれの第２のずれ量の信頼性を示す信頼性値を更に算出し、
前記選択手段は、前記第２のずれ量が最小となる前記参照フレーム候補について算出された前記信頼性値が、予め定められた閾値を超える場合に、前記複数の参照フレーム候補のうち、前記入力フレームに時間的に隣接するフレームを前記参照フレームとして選択する
ことを特徴とする請求項１に記載の動き補償器。
【請求項５】
前記算出手段は、前記入力フレームと前記複数の参照フレーム候補のいずれかのフレームとの間に含まれるフレームについての前記第１のずれ量の加算により、前記第２のずれ量を算出することを特徴とする請求項１乃至４のいずれか１項に記載の動き補償器。
【請求項６】
前記検出手段は、前記入力フレーム及び前記参照フレーム候補を複数の領域に分割し各々の領域に対して前記第１のずれ量を検出し、
前記算出手段は、前記各々の領域に対して前記第２のずれ量を算出することを特徴とする請求項１乃至５のいずれか１項に記載の動き補償器。
【請求項７】
入力フレームの画像情報と、複数の参照フレーム候補のうちのいずれかの画像情報とを用いて動き補償を行う動き補償処理方法であって、
時間的に隣接する第１及び第２のフレーム間において、前記第１のフレームを構成する画素と、前記第２のフレームを構成する画素との差分を算出し、算出される差分が最小となる値に基づいて、前記第１のフレームに対する前記第２のフレームの位置の差を表す第１のずれ量を検出する検出工程と、
前記複数の参照フレーム候補のそれぞれのフレームについての前記第１のずれ量に基づき、前記入力フレームと前記複数の参照フレーム候補のそれぞれのフレームとの第２のずれ量を算出する算出工程と、
前記第２のずれ量が最小となる前記参照フレーム候補を、参照フレームとして選択する選択工程と、
前記入力フレームを構成する各マクロブロックについて、前記参照フレームを構成する各マクロブロックに基づき、動きベクトルを算出する動きベクトル算出工程と
を備えることを特徴とする動き補償処理方法。
【請求項８】
請求項１乃至６のいずれか１項に記載の動き補償器としてコンピュータを機能させるためのコンピュータプログラム。
【請求項９】
請求項８に記載のコンピュータプログラムを記憶するコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き補償器、動き補償処理方法、コンピュータプログラム及び記憶媒体に関する。
【背景技術】
【０００２】
近年、マルチメディアに関連する情報のデジタル化が急進しており、それに伴い映像情報の高画質化に向けた要求が高まっている。具体的な例として、放送メディアの従来の７２０×４８０画素のＳＤ（Ｓｔａｎｄａｒｄ  Ｄｅｆｉｎｉｔｉｏｎ）から、１９２０×１０８０画素のＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ）への移行を挙げることができる。しかしながら、この高画質に対する要求は同時にデータ量の増大を引き起こし、結果として、従来の性能を上回る圧縮符号化技術及び復号化技術が求められることとなった。
【０００３】
これらの要求に対し、ＩＴＵ−Ｔ  ＳＧ１６やＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１の活動で画像間の相関を利用したフレーム間予測を用いた符号化圧縮方式の標準化作業が進められている。この中でも、現状最も高能率符号化を実現しているといわれる符号化方式に、Ｈ．２６４／ＭＰＥＧ−４  ＰＡＲＴ１０（ＡＶＣ）（以下、Ｈ．２６４と呼ぶ）がある。なお、Ｈ．２６４の符号化・復号化の仕様については、例えば特許文献１などに開示されている。
【０００４】
このＨ．２６４で新たに導入された技術の一つとして、フレーム間予測符号化に用いる参照画像を、複数の画像の中から選択する技術がある（以下、複数参照フレーム間予測と呼ぶ）。
【０００５】
従来のＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４等の符号化方式（以下、ＭＰＥＧ符号化方式と呼ぶ）では、動きの予測を行う場合、順方向予測及び逆方向予測の機能を有している。ここで、順方向予測とは、時間的に前に位置する画像フレームから時間的に後に位置する画像フレームを予測する予測方式をいう。また、逆方向予測とは、時間的に後に位置する画像フレームから時間的に前に位置する画像フレームを予測する予測方式をいう。例えば、逆方向予測では、現在の画像フレームに基づいて、それ以前の符号化をスキップした画像フレームを予測することができる。
【０００６】
このＭＰＥＧ符号化方式における順方向予測及び逆方向予測では、処理対象となる画像の直前又は直後の画像を、動き予測を行う際に参照する参照フレームとして用いることが多い。これは、処理対象となる画像と時間的に近傍に位置する画像との間の相関性が、多くの場合において高いためである。
【０００７】
しかし、ＭＰＥＧ符号化方式では、動画像撮影時におけるカメラのパン、チルト等のカメラの動きが速い場合や、カットチェンジ直後の画像のように画像間の変化が大きい場合が発生し得る。このような場合、時間的に近傍な画像であっても画像間の相関性が低くなり、動き補償予測の利点が活用できない可能性が高い。
【０００８】
この問題を解決するものが、Ｈ．２６４で採用された複数参照フレーム間予測である。この予測方式では、時間的に近傍の画像のみならず、離れた画像をも符号化に利用するもので、近傍の画像よりも符号化効率の向上が見込まれるのであれば、離れた画像が参照フレームとして利用されることとなる。
【０００９】
このようにＨ．２６４では、入力された画像と、既に符号化された画像との誤差が最小となる画像を、複数の画像の中から選択して参照フレームとして利用することで、動き補償予測を行うことができる。これにより、動画像を圧縮符号化するときに、動画像を撮影したカメラの動きが速い場合や、カットチェンジが発生した場合においても、効率的な符号化が可能となる。
【００１０】
しかし、既に符号化された全ての画像について入力画像との誤差が最小となるフレームを選択する演算を行うと、参照するフレーム数に比例して演算量が増大し、符号化に要する時間が膨大となってしまう。また、ビデオカムコーダなどのモバイル機器の場合には、演算負荷の増大は駆動するバッテリー消費量の増大に結びつくため、撮影時間に対する影響が無視できなくなってしまう。
【特許文献１】特開2005-167720号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
このように、従来は、複数参照フレーム間予測において、動き補償のための演算量を削減しつつ、効率的に動き補償処理を実行することが困難であった。
【００１２】
そこで本発明は、複数参照フレーム間予測において、動き補償のための演算量を削減しつつ、効率的に動き補償処理を実行可能とすることを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するための本発明は、入力フレームの画像情報と、複数の参照フレーム候補のうちのいずれかの画像情報とを用いて動き補償を行う動き補償器であって、
時間的に隣接する第１及び第２のフレーム間において、前記第１のフレームを構成する画素と、前記第２のフレームを構成する画素との差分を算出し、算出される差分が最小となる値に基づいて、前記第１のフレームに対する前記第２のフレームの位置の差を表す第１のずれ量を検出する検出手段と、
前記複数の参照フレーム候補のそれぞれのフレームについての前記第１のずれ量に基づき、前記入力フレームと前記複数の参照フレーム候補のそれぞれのフレームとの第２のずれ量を算出する算出手段と、
前記第２のずれ量が最小となる前記参照フレーム候補を、参照フレームとして選択する選択手段と、
前記入力フレームを構成する各マクロブロックについて、前記参照フレームを構成する各マクロブロックに基づき、動きベクトルを算出する動きベクトル算出手段と
を備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、複数参照フレーム間予測において、動き補償のための演算量を削減しつつ、効率的に動き補償処理を実行することができる。
【発明を実施するための最良の形態】
【００１５】
以下、添付する図面を参照して、発明の好適な実施形態を説明する。
【００１６】
［第１の実施形態］
まず、図１、図２及び図３を参照しながら、本発明の実施形態に対応する動き補償器の構成及び動作を説明する。
【００１７】
図１は、本実施形態に対応する動き補償器の構成の一例を示す図である。動き補償器１０は、現在フレーム保存部１００、参照フレーム候補保存部１０１、グローバルベクトル演算部１０２、グローバルベクトル保持部１０３、及び、フレーム間動き演算部１０４を備える。また、参照フレーム決定部１０５及び動きベクトル演算部１０６を備える。
【００１８】
係る構成において、現在フレーム保存部１００と参照フレーム候補保存部１０１には、動きベクトル推定に用いる、符号化しようとしている現在のフレームと、参照フレームの候補とがそれぞれ保存される。本実施形態では、図２のように参照フレームの候補として３枚の選択可能な参照フレーム候補があり、フレーム番号として参照フレーム候補が０〜２、現在フレームが３の場合を例に挙げて説明する。なお、４枚のフレームにおいて、番号順に「０」が時間的に先頭で「３」が時間的に最も後ろに位置する。また、参照フレーム候補の数はあくまで一例であって、これに限定されるものではない。図２において、各フレームについて与えられた「ＧＶ（i,j）」において、（i,j）は各フレーム番号に対応するグローバルベクトルの水平方向（i）、垂直方向(j)の値をそれぞれ示している。
【００１９】
グローバルベクトル演算部１０２は、動画再生時の表示順で入力されるフレーム間の空間的な位置の差（即ち、フレーム間のずれ量）(i,j)を示すグローバルベクトルを演算する。最大相関度を有するグローバルベクトルを推定するためには次のようなＭＳＥ(Mean Square Error)(式１)、ＭＡＥ(Mean Absolute Error)（式３）、あるいはＭＡＤ(Mean Absolute Difference)などの評価関数が用いられる。
0004677351.tif 000002
0004677351.tif 000003
ここで、Scur(m,n)は現在入力されたフレームの(m,n)番目の画素値、Scur-1(m,n)は現在入力されたフレームの表示順で一つ前のフレームでの(m,n)番目の画素値を示す。(i,j)は、現在入力されたフレームの一つ前のフレームに対する現在入力されたフレームの空間的な位置をそれぞれ示している。
【００２０】
なお、Ｍ，Ｎを１フレームの水平及び垂直画素数とし、ｋ、ｌをそれぞれ水平方向、垂直方向に何画素ごとに演算を行うかを示す係数とすると、ｍ、ｎはそれぞれｍ＝ｋ×ｑ、ｎ＝ｌ×ｒで求められる。また、ｋ、ｌは、０≦ｍ≦Ｍ、１≦ｋ≦Ｍ、０≦ｎ≦Ｎ、１≦ｌ≦Ｎを満たす自然数である。また、Ｑ、Ｒは、Ｑ＝(Ｍ-|i|)/k、Ｒ＝(Ｎ-|j|)/lで求めることができる。
【００２１】
この評価関数は画素の差に基づいたものであり、最も小さいＭＡＥ値やＭＳＥ値を有する場合をグローバルベクトルとして選定する。即ち、式１や式２では、現在のフレームを全体として(i,j)移動させたときの各画素値と、参照フレームの対応する位置の各画素値との差分を算出し、差分の合計が最小となる(i,j)をグローバルベクトルに決定する。また、この差分の合計の最小値がＧＲＶ(Global vector Reliable Value)となる（式２、式４）。
【００２２】
図３のフローチャートでは、ステップＳ３０１において、このようにしてグローバルベクトルの算出が行われる。グローバルベクトル演算部１０２が、算出したグローバルベクトルと、それに対応づけられるフレームの番号をグローバルベクトル保持部１０３に送信する。ステップＳ３０２において、グローバルベクトル保持部１０３は、グローバルベクトル演算部１０２から送信されてきたグローバルベクトルをフレーム番号に対応づけて保持する。
【００２３】
更に、ステップＳ３０３では、フレーム間動き演算部１０４が、現在フレーム番号と参照フレーム候補番号との間に位置するフレーム（現在フレームを含む）についてのグローバルベクトルと、該参照フレーム候補番号とを取得する。
【００２４】
例えば、現在フレーム番号を３番とし、参照フレーム候補番号が０番の場合を考える。このとき、現在フレーム番号と参照フレーム番号との間に位置するフレームとは、図２のフレーム番号１、フレーム番号２及びフレーム番号３であり、フレーム間動き演算部１０４は、各フレームについてグローバルベクトルを取得する。併せて、参照フレーム候補番号として０番を取得する。
【００２５】
続くステップＳ３０４では、取得したグローバルベクトルと参照フレーム候補番号を利用して式５により、現在フレームと参照フレーム候補間のグローバルベクトルに相当する値GVcur,refを算出する。これにより、現在フレームと参照フレームとのずれ量を算出することができる。算出されたグローバルベクトルは、参照フレーム候補と関連づけられて、参照フレーム決定部１０５に送信される。
【００２６】
次に、ステップＳ３０５において、未処理の参照候補フレームが存在するか否かが判定される。もし、未処理の参照候補フレームが存在する場合には（ステップＳ３０５において「ＹＥＳ」）、ステップＳ３０３にもどって、処理を継続する。
【００２７】
即ち、参照フレーム候補番号を１番として、フレーム番号２から３に対応付けられるグローバルベクトルと参照フレーム候補番号１とが、フレーム間動き演算部１０４により取得される。さらに、参照フレーム候補番号を２番として、フレーム番号３に対応付けられるグローバルベクトルと参照フレーム候補番号２とが、フレーム間動き演算部１０４により取得される。
【００２８】
取得されたグローバルベクトルは、ステップＳ３０４において、参照フレーム候補と現在フレームとのグローバルベクトルを算出するために利用される。
【００２９】
ステップＳ３０４における処理の具体例を以下に説明する。まず、式５は以下に示す通りである。
0004677351.tif 000004
ここで、curnoは、現在フレーム番号、refnoは参照フレーム候補番号、xnは参照フレーム候補番号nに対応するグローバルベクトルの水平方向の値、ynは参照フレーム候補番号nに対応するグローバルベクトルの垂直方向の値をそれぞれ示している。
【００３０】
図２を例に用いて、グローバルベクトルの算出の具体例を説明すると、参照フレーム候補が０番の場合、フレーム番号１〜３に対応づけられるグローバルベクトルの和が取られ、GVcur,refとして求められる。即ち、（７，６）＋（−５，−５）＋（５，５）＝（７，６）となる。これを、現在フレーム（３番）と参照フレーム候補（０番）との間のグローバルベクトルとする。
【００３１】
次に、参照フレーム候補が１番の場合、フレーム番号２、３に対応づけられるグローバルベクトルの和が取られGVcur,refとして求められる。即ち、（−５，−５）＋（５，５）＝（０，０）となる。これを現在フレーム（３番）と参照フレーム候補（１番）との間のグローバルベクトルする。
【００３２】
更に、参照フレーム候補が２番の場合、フレーム番号３に対応づけられるグローバルベクトルの和が取られGVcur,refとして求められる。即ち、（５，５）となる。これを現在フレーム（３番）と参照フレーム候補（２番）との間のグローバルベクトルする。
【００３３】
以上により、全ての参照候補フレームについて、グローバルベクトルGVcur,refが算出されると（ステップＳ３０５において「ＮＯ」）、ステップＳ３０６に移行する。ステップＳ３０６では、フレーム間動き演算部１０４から受信した、参照フレーム候補毎のグローバルベクトルに従って、参照フレーム決定部１０５により参照フレームが決定され、そのフレーム番号が参照フレーム候補保存部１０１に送信される。
【００３４】
具体的に、参照フレーム決定部１０５は、フレーム間動き演算部１０４から送信された参照フレーム候補各々で、式６を用いて現在フレームと参照フレーム候補間のグローバルベクトルの長さの２乗に相当する値GVlen2cur,refを求める。
【００３５】
GVlen2cur,ref = xcur,ref2+ycur,ref2・・・式６
ここでxcur,refはGVcur,refの水平方向の値、ycur,refはGVcur,refの垂直方向の値を示している。
【００３６】
式６を図２を例として具体的に説明すると、参照フレーム候補中でフレーム番号０に対応するGVlen2cur,refが７2+６2＝８５となる。また、フレーム番号１に対応する値が０、フレーム番号２に対応する値が５2＋５2＝５０と求められる。
【００３７】
このようにして各参照フレーム候補について算出したGVlen2cur,refを、参照フレーム候補間で比較し、最もその値の小さいフレームを参照フレームとして決定する。上記の例で言えば、フレーム番号１に対応する値が０で最も小さいので、参照フレームはフレーム番号１のフレームとなる。
【００３８】
こうして決定された参照フレームのフレーム番号は、参照フレーム候補保存部１０１に送信される。なお、GVlen2cur,refが最も小さくなる参照フレーム候補が複数存在する場合も考えられる。その場合、参照フレーム候補の中で現在フレームから時間的に最も近いフレームを参照フレームとして決定することができる。
【００３９】
次に、ステップＳ３０７では、動きベクトル演算部１０６にて動きベクトルの演算処理を行う。ここでの処理を具体的に以下に説明する。
【００４０】
まず、現在フレーム保存部１００から現在フレームを構成する複数のマクロブロックのうちの一つを取り出す。それと同時に、参照フレーム候補保存部１０１に保存されているフレーム番号１の参照フレーム候補から、予測に必要となる画像を動きベクトル演算部１０６に送信する。
【００４１】
動きベクトル演算部１０６では、参照フレーム候補保存部１０１から送信されてくる画像データ内で探索を行い、現在のマクロブロックでの動きベクトルを推定する。ここで、Ｎ×Ｎサイズのマクロブロックの動きベクトルを参照フレームで±p画素の範囲で探索するとすると、探索範囲は(N+2p)×(N+2p)となる。ここで、動きベクトルの候補になり得る総(2p+1)2個の位置で相関係数を計算した後、最大相関度を示す位置を動きベクトルに決める。
【００４２】
最大相関度を有する動きベクトルを推定するためには、前述のＭＳＥ(Mean Square Error)(式７)、ＭＡＥ(Mean Absolute Error)（式９）、あるいはＭＡＤ(Mean Absolute Difference)などの評価関数を用いて求められる。
0004677351.tif 000005
0004677351.tif 000006
ここで、Srefは参照フレーム、Scur,kは現在のフレームでk番目のマクロブロックを示す。(i,j)は現在フレームのk番目のマクロブロックに対する参照フレームの空間的な位置をそれぞれ示している。
【００４３】
但し、Ｘ及びＹをベクトル探索範囲の水平及び垂直画素数とし、ｇ、ｈをそれぞれ水平方向、垂直方向に何画素ごとに演算を行うかを示す係数とすると、ｘ、ｙはそれぞれｘ＝ｇ×u、ｙ＝ｈ×ｖで求められる。また、ｇ、ｈは、０≦ｘ≦Ｘ、１≦ｇ≦Ｘ、０≦ｙ≦Ｙ、１≦ｈ≦Ｙを満たす自然数である。また、Ｕ、Ｖは、Ｕ＝Ｘ-|i|、Ｖ＝Ｙ-|j|で求めることができる。
【００４４】
この評価関数は画素の差に基づいたものであり、最も小さいＭＡＥ値やＭＳＥ値を有する場合を、現在のマクロブロックにおける最終的な動きベクトルとして選定する。
【００４５】
なお、本実施形態では、現在フレームと参照フレーム候補間のグローバルベクトルが最も短い参照フレーム候補を参照フレームとした。参照フレームの決定手法はこれに限定されるものではない。例えば、時間的に一番近い参照候補フレームを参照フレームとして基本的に使用し、現在フレームと参照フレームとの間のグローバルベクトルの長さが所定長さを越えた場合のみ、本実施形態に基づいて参照フレームを決定しても良い。この場合、所定長さとしては、動きベクトルの探索範囲などが考えられる。
【００４６】
また、本実施形態では一つの現在フレーム及び参照候補フレームに対して一つのグローバルベクトルを算出しているが、現在フレーム・参照候補フレームを複数のエリアに分割して各々のエリアに対してグローバルベクトル・ＧＲＶを算出し、それらを用いて各エリアの参照フレームを決定しても良い。
【００４７】
以下、図５及び図６を参照して、画像を複数ブロックに分割した場合の参照フレーム決定処理を説明する。図５は、画像フレームを４分割した例を示す図である。図５において、画像フレームは（Ａ）から（Ｄ）の４つのブロックにそれぞれ分割され、分割されたブロックごとに、隣接フレームとのグローバルベクトルが算出される。
【００４８】
隣接フレーム間でのグローバルベクトルの算出結果は、図６に示す通りである。図６では、フレーム番号０番から３番までの各フレームについて、ブロックごとにグローバルベクトルが示されている。ここで、０番から２番までのフレームが参照フレーム候補６００であり、３番のフレームが現在フレーム６０１となる。
【００４９】
まず、図５の（Ａ）のエリアで図６の値を用いて具体的にグローバルベクトルを求めると現在フレーム（３番）と参照候補フレーム（０番）のグローバルベクトルは（７，６）＋（−５，−５）＋（５，５）＝（７，６）となる。また現在フレーム（３番）と参照候補フレーム（１番）のグローバルベクトルは（−５，−５）＋（５，５）＝（０，０）となる。更に現在フレーム（３番）と参照候補フレーム（２番）のグローバルベクトルは（５，５）となる。よって、図５の（Ａ）のエリアにおける参照フレームはフレーム番号１番のフレームとなる。
【００５０】
同様に図５の（Ｂ）のエリアにおける参照フレームを求めると現在フレーム（３番）と参照候補フレーム（０番）のグローバルベクトルは（−５，−５）＋（７，６）＋（７，６）＝（９，７）となる。現在フレーム（３番）と参照候補フレーム（１番）のグローバルベクトルは（７，６）＋（７，６）＝（１４，１２）となる。更に現在フレーム（３番）と参照候補フレーム（２番）のグローバルベクトルは（７，６）となるため、フレーム番号２番のフレームとなる。
【００５１】
同様にして、図５の（Ｃ）、（Ｄ）のエリアにおる参照フレームは各々フレーム番号１番のフレーム、各々フレーム番号０番のフレームとなる。
【００５２】
以上のようにして、本実施形態によれば、複数の参照フレーム候補の中から現在のフレームと全体として相関の強いフレームを選択し、動きベクトルを算出することができる。これにより、すべての参照フレーム候補に対して動きベクトル探索を行う必要が無くなるので、演算量を抑えて、効率的に動画像圧縮符号化処理を行うことができる。
【００５３】
また現在フレーム・参照候補フレームを複数のエリアに分割して各々のエリアに対してグローバルベクトル・GRVを算出することで、あまり多くの演算量を増やすこと無くより細かな領域ごとに適切な参照フレームを選択することが可能となる。
【００５４】
［第２の実施形態］
次に図３及び図４を参照して、本発明の第２の実施形態について説明する。図４は、本実施形態に対応する動き補償器４０の構成例を示す図である。ここで、動き補償器４０は、第１の実施形態の動き補償器１０とほぼ同一の構造を有するが、参照フレーム決定部１０５に代わり、信頼性判定・参照フレーム決定部４０７を有する点で異なる。
【００５５】
まず、現在フレーム保存部４００、参照フレーム候補保存部４０１までの動作は第１の実施形態と同様のため説明は省く。以下では、グローバルベクトル演算部４０２以降の動作について以下で説明する。
【００５６】
グローバルベクトル演算部４０２は図１のグローバルベクトル演算部１０２と同様にして、ステップＳ３０１においてグローバルベクトルを決定する。但し、式２、式４のＧＲＶをグローバルベクトル信頼値として、後段で用いるため、グローバルベクトル演算部４０２からグローバルベクトル保持部４０３には、グローバルベクトルと、対応するフレームの番号に加えＧＲＶも送信される。
【００５７】
グローバルベクトル保持部４０３は、ステップＳ３０２においてグローバルベクトル演算部４０２から送信されたグローバルベクトル、ＧＲＶを同時に送信されてくるフレーム番号に対応づけて保持する。また、フレーム間動き演算部４０４は、ステップＳ３０３において現在フレーム番号と参照フレーム候補番号との間のグローバルベクトル、ＧＲＶ、及び、参照フレーム候補番号を取得する。
【００５８】
フレーム間動き演算部４０４は、ステップＳ３０４にて、式５を用いて現在フレームと参照フレーム候補との間のグローバルベクトルに相当する値GVcur,refを算出する。また、以下に示す式１１を用いて現在フレームと参照フレーム候補間のグローバルベクトルの信頼性値にあたるGRVcur,refを求める。
0004677351.tif 000007
ここでcurnoは現在フレーム番号、refnoは参照フレーム候補番号、GRVnは参照フレーム候補番号nに対応するグローバルベクトル信頼値をそれぞれ示している。またGVcur,ref、GRVcur,refを参照フレーム候補番号と共に信頼性判定・参照フレーム決定部４０７に送信する。
【００５９】
信頼性判定・参照フレーム決定部４０７は、ステップＳ３０６にて、第１の実施形態では参照フレーム決定部１０５で行っていたGVlen2cur,refを求める演算を同様の方法で行う。
【００６０】
更に、各参照フレーム候補で求めたGVlen2cur,refを参照フレーム候補間で比較し、最もその値の小さい参照フレーム候補のGRVcur,refと予め設定してある閾値Thとを比較する。このＴｈは、例えば式１の１フレームの水平画素数Ｍ、垂直画素数Ｎを用いてＴｈ＝Ｍ×Ｎのように設定することができる。
【００６１】
もし、GRVcur,refがThより小さければ、グローバルベクトルの信頼性が高いものとして、参照フレームとして、その時の参照フレーム候補を選択する。一方、GRVcur,refがＴｈより大きい時は、グローバルベクトルの信頼性が低いため、現在フレームから時間的に最も近い参照フレーム候補を参照フレームとして選択する。
【００６２】
ステップＳ３０７では、動きベクトル演算部４０６が第１の実施形態と同様に、参照フレーム候補保存部４０１から送信されてくる画像データ内で式７乃至式１０を用いて探索を行い、最終的な現在のマクロブロックでの動きベクトルを推定する。
【００６３】
以上のように、本実施形態によれば、グローバルベクトルに基づく２つのフレーム間の画素値の差分値（ＧＲＶ）を信頼値として利用し、参照フレーム候補の中から、参照フレームを選択することができる。これにより、すべての参照フレーム候補に対して動きベクトル探索を行う必要が無くなるので、演算量を抑えて、効率的に動画像圧縮符号化処理を行うことができる。
【００６４】
［その他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００６５】
また、本発明の目的は、前述した機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムに供給し、そのシステムがプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現し、そのプログラムコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【００６６】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【００６７】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施形態に対応する動き補償器の構成一例を示す図である。
【図２】本発明の第１の実施形態に対応する参照フレーム候補、現在フレームの状態を一例として示す図である。
【図３】本発明の第１の実施形態に対応する動きベクトル検出装置の動作の一例を示すフローチャートである。
【図４】本発明の第２の実施形態に対応する動き補償器の構成の一例をを示す図である。
【図５】本発明の第１の実施形態に対応する画像のブロック分割例を示す図である。
【図６】本発明の第１の実施形態に対応する隣接フレーム間でのグローバルベクトルの算出結果の一例を示す図である。
【図１】
0004677351.tif 000008
【図２】
0004677351.tif 000009
【図３】
0004677351.tif 000010
【図４】
0004677351.tif 000011
【図５】
0004677351.tif 000012
【図６】
0004677351.tif 000013