(57)【要約】【課題】従来に比べて少ない演算量で、動きベクトルを生成できる画像処理装置を提供する。【解決手段】動きベクトル生成回路３４は、処理対象のブロック内の複数の画素位置についての画像データＳ２３の画素データと、候補動きベクトルを用いて得られる画素位置に対応する画像データＳ３１の画素データとの差分に応じた差分値を生成し、複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行って候補動きベクトルを選択する。残差演算制御回路３５は、第１の処理を実行中に得られた複数の画素位置のうち一部の画素位置についての差分値を累積した結果が、他の候補動きベクトルを用いた第１の処理によって既に得られている最小の累積値より大きいと判断した場合に第１の処理を終了させる。【選択図】      図１
2004165816.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像データの動きベクトルを、前記第１の画素データと相関を有する第２の画像データを基に生成する画像処理装置において、
処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行い、複数の前記候補動きベクトルのうち、前記第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する動きベクトル生成手段と、
前記動きベクトル生成手段が前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる制御手段と
を有する画像処理装置。
【請求項２】
前記処理対象のブロック内の画素位置の動きベクトルを基に、前記処理対象のブロックに隣接する他の前記ブロック内の画素位置の動きベクトルが規定される場合に、
前記動きベクトル生成手段は、前記処理対象のブロック、並びに前記他のブロック内の画素位置について得られた前記差分値を累積して累積値を生成する前記第１の処理を行う
請求項１に記載の画像処理装置。
【請求項３】
前記動きベクトル生成手段は、前記ブロック、並びに当該ブロックに隣接するブロックについて、前記ブロックを単位として当該ブロック内の前記画素位置をラインに沿って走査し、前記走査した画素位置について得られた前記差分値を累積して前記累積値を生成し、
前記制御手段は、１ライン分の前記走査によって得られた前記累積値を用いて、前記判断を行う
請求項２に記載の画像処理装置。
【請求項４】
前記動きベクトル生成手段は、前記ブロック、並びに当該ブロックに隣接するブロックについて、複数の前記ブロックに跨がって規定されたラインに沿って走査し、前記走査した画素位置について得られた前記差分値を累積して前記累積値を生成し、
前記制御手段は、１ライン分の前記走査によって得られた前記累積値を用いて、前記判断を行う
請求項２に記載の画像処理装置。
【請求項５】
前記動きベクトル生成手段は、前記ブロックに隣接する複数のブロックのうち、前記ブロック内の画素位置の動きベクトルを基に当該ブロック内の画素位置の動きベクトルが規定されるブロックを選択し、前記ブロック、並びに前記選択したブロック内の画素位置について得られた前記差分値を累積して前記累積値を生成する前記第１の処理を行う
請求項２に記載の画像処理装置。
【請求項６】
前記動きベクトル生成手段は、前記差分の二乗和を示す前記差分値を生成する
請求項１に記載の画像処理装置。
【請求項７】
第１の画像データを、前記第１の画素データと相関を有する第２の画像データを基に符号化する符号化装置において、
処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行い、複数の前記候補動きベクトルのうち、前記第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する動きベクトル生成手段と、
前記動きベクトル生成手段が前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる制御手段と、
前記動きベクトル生成手段が生成した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する画像生成手段と、
前記第１の画像データと、前記画像生成手段が生成した前記第３の画像データとの差分を示す第４の画像データを符号化する符号化手段と
を有する符号化装置。
【請求項８】
第１の画像データの動きベクトルを、前記第１の画素データと相関を有する第２の画像データを基に生成する画像処理方法において、
処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行う第１の工程と、
複数の前記候補動きベクトルのうち、前記第１の工程の前記第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する第２の工程と、
前記第１の工程の前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる第３の工程と
を有する画像処理方法。
【請求項９】
前記処理対象のブロック内の画素位置の動きベクトルを基に、前記処理対象のブロックに隣接する他の前記ブロック内の画素位置の動きベクトルが規定される場合に、
前記第１の工程において、前記処理対象のブロック、並びに前記他のブロック内の画素位置について得られた前記差分値を累積して累積値を生成する前記第１の処理を行う
請求項８に記載の画像処理方法。
【請求項１０】
第１の画像データを、前記第１の画素データと相関を有する第２の画像データを基に符号化する符号化方法において、
処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行う第１の工程と、
複数の前記候補動きベクトルのうち、前記第１の工程の第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する第２の工程と、
前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる第３の工程と、
前記第２の工程で選択した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第４の工程と、
前記第１の画像データと、前記第４の工程で生成した前記第３の画像データとの差分を示す第４の画像データを符号化する第５の工程と
を有する符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データの動きベクトルを生成する画像処理装置、当該画像処理装置を用いた符号化装置、並びにそれらの方法に関する。
【０００２】
【従来の技術】
近年、画像データとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するＭＥＰＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
【０００３】
特に、ＭＰＥＧ２（ＩＳＯ／ＩＥＣ１３８１８−２）は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準で、プロフェッショナル用途及びコンシューマー用途の広範なアプリケーションに現在広く用いられている。
ＭＰＥＧ２圧縮方式を用いることにより、例えば７２０×４８０画素を持つ標準解像度の飛び越し走査画像であれば４〜８Ｍｂｐｓ、１９２０×１０８８画素を持つ高解像度の飛び越し走査画像であれば１８〜２２Ｍｂｐｓの符号量（ビットレート）を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
【０００４】
ＭＰＥＧ２は主として放送用に適合する高画質符号化を対象としていたが、ＭＰＥＧ１より低い符号量（ビットレート）、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してＭＰＥＧ４符号化方式の標準化が行われた。画像符号化方式に関しては、１９９８年１２月にＩＳＯ／ＩＥＣ１４４９６−２としてその規格が国際標準に承認された。
【０００５】
さらに、近年、当初テレビ会議用の画像符号化を目的として、Ｈ．  ２６Ｌ（ＩＴＵ−Ｔ  Ｑ６／１６  ＶＣＥＧ）という標準の規格化が進んでいる。Ｈ．２６ＬはＭＰＥＧ２やＭＰＥＧ４といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、ＭＰＥＧ４の活動の一環として、このＨ．２６Ｌをベースに、Ｈ．２６Ｌ規格ではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化がＪｏｉｎｔ  Ｍｏｄｅｌ  ｏｆ  Ｅｎｈａｎｃｅｄ−Ｃｏｍｐｒｅｓｓｉｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇとして行われている。
【０００６】
このようなＭＰＥＧおよびＨ．２６Ｌ規格の符号化装置および復号装置などの画像処理装置では、高い符号化効率を得るために、種々の演算により動きベクトルを生成している。
当該動きベクトルの生成は、例えば、フレーム画像データのマクロブロック内の画素位置について、当該画素位置の画素データと、当該画素位置と候補動きベクトルとによって得られる参照画像のフレーム画像データ内の画素位置の画素データとの差分の二乗和を累積した累積値を最小とする候補動きベクトルを、参照画像内で検索して行われる。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述した従来の画像処理装置では、上述した動きベクトルの生成に伴い、全ての候補動きベクトルについて、上記マクロブロック内の全ての画素位置について前記累積値を生成するため、演算量が膨大になり、動きベクトルの生成に伴う処理負担が大きいという問題がある。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、従来に比べて少ない演算量で、動きベクトルを生成できる画像処理装置、符号化装置およびそれらの方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記の目的を達成するため、第１の発明の画像処理装置は、第１の画像データの動きベクトルを、前記第１の画素データと相関を有する第２の画像データを基に生成する画像処理装置において、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行い、複数の前記候補動きベクトルのうち、前記第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する動きベクトル生成手段と、前記動きベクトル生成手段が前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる制御手段とを有する。
【００１０】
第１の発明の画像処理装置の作用は以下のようになる。
動きベクトル生成手段が、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行う。
そして、動きベクトル生成手段が、複数の前記候補動きベクトルのうち、前記第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する。
上述した前記動きベクトル生成手段による前記第１の処理の過程で、制御手段が、前記動きベクトル生成手段が前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる。
【００１１】
また、第１の発明の画像処理装置は、好ましくは、前記処理対象のブロック内の画素位置の動きベクトルを基に、前記処理対象のブロックに隣接する他の前記ブロック内の画素位置の動きベクトルが規定される場合に、前記動きベクトル生成手段は、前記処理対象のブロック、並びに前記他のブロック内の画素位置について得られた前記差分値を累積して累積値を生成する前記第１の処理を行う。
【００１２】
第２の発明の符号化装置は、第１の画像データを、前記第１の画素データと相関を有する第２の画像データを基に符号化する符号化装置であって、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行い、複数の前記候補動きベクトルのうち、前記第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する動きベクトル生成手段と、前記動きベクトル生成手段が前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる制御手段と、前記動きベクトル生成手段が生成した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する画像生成手段と、前記第１の画像データと、前記画像生成手段が生成した前記第３の画像データとの差分を示す第４の画像データを符号化する符号化手段とを有する。
【００１３】
第２の発明の符号化装置の作用は以下のようになる。
動きベクトル生成手段が、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行う。
そして、動きベクトル生成手段が、複数の前記候補動きベクトルのうち、前記第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する。
そして、画像生成手段が、前記動きベクトル生成手段が生成した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する。
そして、符号化手段が、前記第１の画像データと、前記画像生成手段が生成した前記第３の画像データとの差分を示す第４の画像データを符号化する。
上述した前記動きベクトル生成手段による前記第１の処理の過程で、制御手段が、前記動きベクトル生成手段が前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる。
【００１４】
第３の発明の画像処理方法は、第１の画像データの動きベクトルを、前記第１の画素データと相関を有する第２の画像データを基に生成する画像処理方法であって、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行う第１の工程と、複数の前記候補動きベクトルのうち、前記第１の工程の前記第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する第２の工程と、前記第１の工程の前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる第３の工程とを有する。
【００１５】
第４の発明の符号化方法は、第１の画像データを、前記第１の画素データと相関を有する第２の画像データを基に符号化する符号化方法であって、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第１の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第２の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第１の処理を行う第１の工程と、複数の前記候補動きベクトルのうち、前記第１の工程の第１の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する第２の工程と、前記第１の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第１の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記実行中の第１の処理を終了させ、新たな前記候補動きベクトルを用いて前記第１の処理を行わせる第３の工程と、前記第２の工程で選択した前記動きベクトルと前記第２の画像データとを用いて第３の画像データを生成する第４の工程と、前記第１の画像データと、前記第４の工程で生成した前記第３の画像データとの差分を示す第４の画像データを符号化する第５の工程とを有する。
【００１６】
【発明の実施の形態】
〔本発明の関連技術〕
図１は、本発明の関連技術に係わる符号化装置５００の機能ブロック図である。
図１に示す符号化装置５００において、入力となる画像信号は、まず、Ａ／Ｄ変換回路５０１においてデジタル信号に変換される。次に、出力となる画像圧縮情報のＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅｓ）構造に応じ、画面並べ替え回路５０２においてフレーム画像データの並べ替えが行われる。
そして、イントラ符号化が行われる画像に関しては、フレーム画像データの全体が直交変換回路５０４に入力され、直交変換回路５０４において離散コサイン変換やカルーネン・レーベ変換等の直交変換が施される。
直交変換回路５０４の出力となる変換係数は、量子化回路５０５において量子化処理される。
量子化回路５０５の出力となる、量子化された変換係数は、可逆符号化回路５０６に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施された後、バッファ５０７に蓄積され、圧縮された画像データとして出力される。
量子化回路５０５における量子化レートは、レート制御回路５１２によって制御される。同時に、量子化回路５０５の出力となる、量子化された変換係数は、逆量子化回路５０８に入力され、さらに逆直交変換回路５０９において逆直交変換処理が施されて、復号された参照フレーム画像データとなり、その参照フレーム画像データがフレームメモリ５１０に蓄積される。
【００１７】
一方、インター符号化が行われる画像に関しては、画面並べ替え回路５０２から出力されたフレーム画像データが、動き予測・補償回路５１１に入力される。同時に参照フレーム画像データがフレームメモリ５１０より読み出され、動き予測・補償回路５１１によって動きベクトルが生成され、当該動きベクトルおよび参照フレーム画像データを用いて予測フレーム画像データが生成される。予測フレーム画像データが演算回路５０３に出力され、演算回路５０３において、画面並べ替え回路５０２からのフレーム画像データと、動き予測・補償回路５１１からの予測フレーム画像データとの差分を示す画像データが生成され、当該画像データが直交変換回路５０４に出力される。
また、動き補償・予測回路５１１は、動きベクトルを可逆符号化回路５０６に出力し、可逆符号化回路５０６において、動きベクトルが可変長符号化あるいは算術符号化といった可逆符号化処理され、画像信号のヘッダ部に挿入される。その他の処理はイントラ符号化を施される画像信号と同様である。
【００１８】
上述した動き補償・予測回路５１１における動きベクトルの生成は、例えば、下記式（１）で示される。
【００１９】
【数１】
2004165816.tif 000003
【００２０】
上記式（１）において、ｓはマクロブロックＭＢ内の画素位置を示す。
Ｆ＿ＣＵＲ（ｓ）は動きベクトルの生成対象となるフレーム画像データの画素位置ｓの画素データ（画素値）を示し、Ｆ＿ＲＥＦ（ｓ）は参照フレーム画像データの画素位置ｓの画素データを示している。また、ＭＶ（ｓ）は、フレーム画像データの画素位置ｓの動きベクトルを示している。
【００２１】
動きベクトルの生成方法としては、様々なものが提案されているが、現在、最も広範に用いられているのが、ブロックマッチング（Ｂｌｏｃｋ  Ｍａｔｃｈｉｎｇ  Ａｌｇｏｒｉｔｈｍ、以下、ＢＭＡ方式と呼ぶ）である。
ＢＭＡは、例えば、下記式（２）に示すように、フレーム画像データについて画像処理の単位として規定された１６×１６画素のマクロブロックＭＢ内の所定の画素位置ｓ１の動きベクトルＭＶを、当該マクロブロックＭＢ内のその他の画素位置の動きベクトルとして用いる。すなわち、マクロブロックＭＢ内の全ての画素位置で同じ動きベクトルＭＶを用いる。
【００２２】
【数２】
2004165816.tif 000004
【００２３】
ＢＭＡ方式においては、各マクロブロックＭＢにおける動きベクトル情報は、隣接するマクロブロックＭＢの動きベクトルＭＶには影響を及ぼさないため、収束演算を必要とせず、その演算量は限られている。
しかし、ＢＭＡでは、拡大、回転といった動きをうまく表現することができず、図１に示された符号化装置５００で、その出力となる符号化された画像データ内にブロック歪が生じてしまうという問題がある。
【００２４】
かかる問題を解決するため、“Ｍｏｔｉｏｎ  Ｃｏｍｐｅｎｓａｔｉｏｎ
ｆｏｒ  Ｖｉｄｅｏ  Ｃｏｍｐｒｅｓｓｉｏｎ  Ｕｓｉｎｇ  Ｃｏｎｔｒｏｌ
Ｇｒｉｄ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ”，（Ｇ．Ｌ．Ｓｕｌｌｉｖａｎ  ａｎｄＲ．Ｌ．Ｂａｋｅｒ，  ＩＥＥＥ  Ｃｏｎｆ．  ｏｎ  Ａｃｏｕｓｔｉｃ  Ｓｐｅｅｃｈ  ａｎｄ  Ｓｉｇｎａｌ  Ｐｒｏｃ．  ｐｐ２７１３−２７１６，１９９１）には、いわゆるＣＧＩ（Ｃｏｎｔｒｏｌ  Ｇｒｉｄ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ）方式と呼ばれる動きベクトル生成手法が提案されている。
ＣＧＩ方式は、図２に示すように、マクロブロックＭＢの全ての画素位置ｓの動きベクトルＭＶ（ｓ）を、下記式（３）を基に、当該マクロブロックＭＢに隣接するマクロブロックＭＢの代表画素位置ｓ（ｓ１，ｓ２，ｓ３，ｓ４）の動きベクトルＭＶ（ＭＶ（ｓ１），ＭＶ（ｓ２），ＭＶ（ｓ３），ＭＶ（ｓ４））を用いて収束演算を行って生成する。
【００２５】
【数３】
2004165816.tif 000005
【００２６】
ところで、図３に示すように、ＭＢ４を動きベクトル生成の対象となるマクロブロックとし、ＭＢ２，ＭＢ３，ＭＢ４をＭＢ１に隣接するマクロブロックとした場合を考える。
また、ＭＶ（ｓ１）、ＭＶ（ｓ２），ＭＶ（ｓ３）、ＭＶ（ｓ４）を、それぞれＭＢ１〜ＭＢ４に対するＣＧＩ動きベクトルとする。
ここで、探索対象はＭＶ（ｓ４）であるが、ＭＶ（ｓ４）が変化することで、ＭＢ４のみならず、ＭＢ１〜ＭＢ３の残差エネルギも変化する。
従って、ＣＧＩ方式では、下記式（４）に示すように、ＭＢ１〜ＭＢ４の残差エネルギε１，ε２，ε３，ε４の総残差エネルギεを最小にするＭＶ（ｓ４）を探索する。
【００２７】
【数４】
2004165816.tif 000006
【００２８】
各マクロブロックＭＢの残差エネルギεは、フレーム画像データ内のマクロブロックＭＢ＿Ｏと、参照画像データ内のマクロブロックＭＢ＿Ｒ内の１６×１６の画素位置を図４に示すように規定すると、下記式（５）で示される。
【００２９】
【数５】
2004165816.tif 000007
【００３０】
しかしながら、上述したＣＧＩ方式では、４つのマクロブロックについての上記式（５）に示す演算を、総残差エネルギεを最小にするＭＶ（ｓ４）を探索するまで繰り返し行うため、演算量が膨大になり、動きベクトル生成に伴う処理負担が大きいという問題がある。
【００３１】
また、上述したＣＧＩ方式において各マクロブロックＭＢに対する最適な動きベクトルを求める手法として、ＣＰＭＶ（Ｃｏｎｔｒｏｌ  Ｐｏｉｎｔ  ＭｏｔｉｏｎＶｅｃｔｏｒ）が提案されている。
【００３２】
上述したＣＧＩ方式およびＣＰＭＶ方式を用いれば、拡大や回転を含むシーケンスに関しては、前述したＢＭＡ方式に比べ、高い符号化効率を実現できる。
しかしながら、平行移動を含むシーケンスに関しては、ＢＭＡ方式を上回る符号化効率を実現することが出来ないという問題を有する。
【００３３】
かかる問題を解決するため、“Ｏｎ  Ｓｐａｔｉａｌ  Ａｄａｐｔａｔｉｏｎｏｆ  Ｍｏｔｉｏｎ  Ｆｉｅｌｄ  Ｓｍｏｏｔｈｎｅｓｓ”，（Ｐ．Ｉｓｈｗａｒ  ａｎｄ  Ｐｉｅｒｒｅ  Ｍｏｕｌｉｎ，  ＩＥＥＥ  Ｔｒａｎｓ．  ｏｎ  Ｃｉｒｃｕｉｔ  ａｎｄ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｖｉｄｅｏ  Ｔｅｃｈ．，ｐｐ９８０−９８９，  Ｓｅｐｔ  ２０００）には、ＳＣＧＩ（ＳｗｉｔｃｈｅｄＣｏｎｔｒｏｌ−Ｇｒｉｄ  Ｉｎｔｅｒｐｏｌａｔｉｏｎ）方式が提案されている。
ＳＣＧＩ方式では、各マクロブロックＭＢに対し、ＢＭＡ方式とＣＧＩ方式との両手法で、動きベクトルを生成し、より高い符号化効率を実現可能な動きベクトルを選択する。
ＳＣＧＩ方式によれば、平行移動を含むシーケンス、及び、拡大、回転等の動きを含むシーケンスの双方で、先述のＢＭＡ，ＣＧＩより高い符号化効率を実現することが可能となる。
また、ＳＣＧＩ方式では、１ビットの識別データ（ｌａｂｅｌ）により、ＢＭＡとＣＧＩのどちらが選択されたかに関する情報を、符号化データに埋め込む。図５は、ＢＭＡ方式，ＣＧＩ方式，ＳＣＧＩ方式による動きモデルの違いを１次元で表した図である。
【００３４】
ところで、上述したように、ＣＧＩ方式およびＳＣＧＩ方式では、マクロブロックＭＢ内の全ての画素位置の動きベクトルを、当該マクロブロックＭＢに隣接する３つのマクロブロックＭＢの所定の画素位置の動きベクトルを用いて所定の演算を行って生成する。そして、この演算過程において、マクロブロック内の全ての画素位置について、上記式（５）を基に差分の二乗を算出し、これを累積して残差エネルギεを算出する。
従って、動きベクトルの生成に伴う演算量が大きく、負荷が大きいという問題がある。
後述する実施形態は、かかる事情に鑑みてなされたものであり、上述した従来の手法に比べて、少ない演算量で、比較的高い符号化効率を提供する動きベクトルを生成できる画像処理装置およびその方法に関するものである。
【００３５】
図６は、図１に示す符号化装置５００に対応する復号回路４９９の機能ブロック図である。
図６に示す復号回路４９９では、入力となる画像データがバッファ６１３に格納された後、可逆復号回路６１４に出力される。そして、可逆復号回路６１４において、フレーム画像データのフォーマットに基づき、可変長復号化、算術復号化等の処理が行われる。同時に、当該フレーム画像データがインター符号化されたものである場合には、可逆復号回路６１４において、フレーム画像データのヘッダ部に格納された動きベクトルＭＶも復号され、その動きベクトルＭＶが動き予測・補償装置６２０に出力される。
【００３６】
可逆復号回路６１４の出力となる、量子化された変換係数は、逆量子化回路６１５に入力され、ここで変換係数が生成される。当該変換係数には、逆直交変換回路６１６において、定められたフレーム画像データのフォーマットに基づき、逆離散コサイン変換や逆カルーネン・レーベ変換等の逆直交変換が施される。当該フレーム画像データがイントラ符号化されたものである場合には、逆直交変換処理が施されたフレーム画像データは画面並べ替えバッファ６１８に格納され、Ｄ／Ａ変換回路６１９によるＤ／Ａ変換処理を経て出力される。
【００３７】
一方、当該フレームがインター符号化されたものである場合には、動き予測・補償回路６２０において動きベクトルＭＶ、及びフレームメモリ６２１に格納された参照フレーム画像データを基に予測フレーム画像データが生成され、この予測フレーム画像データと、逆直交変換回路６１６から出力されたフレーム画像データとが加算器６１７において加算される。その他の処理はイントラ符号化されたフレーム画像データと同様である。
【００３８】
動き予測・補償装置の用途は、上述の画像圧縮に限らない。
例えば、図７に示すように、動き予測・補償を用いたフレームレートアップコンバート装置などの画像補間装置は、動き予測回路７２２、フレームメモリ７２３、補間画像生成装置７２４、遅延バッファ７２５およびセレクタ７２６を有する。
動き予測回路７２２は、入力となるｎ［  Ｈｚ］  の画像データの構成要素であるフレーム画像データと、それより時間的に前にフレームメモリ２３に蓄積された参照フレーム画像データとを用いて、動きベクトルの探索および生成を行う。
図８に示す例では、フレームメモリ７２３に蓄積された、時刻ｔにおけるフレーム画像データＦＬＡＭＥ１、及び時刻ｔ＋２δｔにおけるフレーム画像データＦＬＡＭＥ２との間で動きベクトルＭＶの探索が行われる。
そして、補間画像生成回路７２４において、この動きベクトル情報ＭＶを用いて、時刻ｔ＋δｔにおける補間フレーム画像データの生成が行われる。このように生成された補間フレーム画像データＦＬＡＭＥ＿ＩＮＴＥＲと、フレーム画像データＦＬＭＡＥ１を、一定のタイミングでセレクタ７２６で選択して、ｍ〔Ｈｚ〕（ｍ＞ｎ）となるような出力画像を生成する。図８は、ｍ＝２の例である。
【００３９】
以下、上述した問題を解決するための本実施形態の画像処理装置、符号化装置、復号装置、およびそれらの方法について説明する。
第１実施形態
図９は、本実施形態の通信システム１の概念図である。
図９に示すように、通信システム１は、送信側に設けられた符号化装置２と、受信側に設けられた復号装置３とを有する。
通信システム１では、送信側の符号化装置２において、離散コサイン変換やカルーネン・レーベ変換などの直交変換と動き補償によって圧縮したフレーム画像データ（ビットストリーム）を生成し、当該フレーム画像データを変調した後に、衛星放送波、ケーブルＴＶ網、電話回線網、携帯電話回線網などの伝送媒体を介して送信する。
受信側では、受信した画像信号を復調した後に、上記変調時の直交変換の逆変換と動き補償によって伸張したフレーム画像データを生成して利用する。
なお、上記伝送媒体は、光ディスク、磁気ディスクおよび半導体メモリなどの記録媒体であってもよい。
なお、本実施形態では、符号化装置２における動きベクトルＭＶの生成、並びに復号装置３における動きベクトルＭＶおよび参照フレーム画像データを用いたフレーム画像データの生成に特徴を有している。
【００４０】
〔符号化装置２〕
符号化装置２は、前述したＣＧＩ方式で動きベクトルの生成を行う。
図１０は、図９に示す符号化装置２の全体構成図である。
図１０に示すように、符号化装置２は、例えば、Ａ／Ｄ変換回路２２、画面並べ替え回路２３、演算回路２４、直交変換回路２５、量子化回路２６、可逆符号化回路２７、バッファ２８、逆量子化回路２９、逆直交変換回路３０、フレームメモリ３１、レート制御回路３２、動きベクトル生成回路３４、残差演算制御回路３５および動き予測・補償回路３６を有する。
ここで、動きベクトル生成回路３４が本発明の動きベクトル生成手段に対応し、残差演算制御回路３５が本発明の制御手段に対応している。
また、動き予測・補償回路３６が本発明の画像生成手段に対応し、可逆符号化回路２７が本発明の符号化手段に対応している。
【００４１】
以下、符号化装置２の構成要素について説明する。
Ａ／Ｄ変換回路２２は、入力されたアナログの輝度信号Ｙ、色差信号Ｐｂ，Ｐｒから構成される画像信号をデジタルの画像信号に変換し、これを画面並べ替え回路２３に出力する。
画面並べ替え回路２３は、Ａ／Ｄ変換回路２２から入力した画像信号内のフレーム画像信号を、そのピクチャタイプＩ，Ｐ，ＢからなるＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）  構造に応じて、符号化する順番に並べ替えたフレーム画像データＳ２３を演算回路２４および動き予測・補償回路３６に出力する。
【００４２】
演算回路２４は、フレーム画像データＳ２３がインター（Ｉｎｔｅｒ）  符号化される場合には、フレーム画像データＳ２３と、動き予測・補償回路３６から入力した予測フレーム画像データＳ３６ａとの差分を示す画像データＳ２４を生成し、これを直交変換回路２５に出力する。
また、演算回路２４は、フレーム画像データＳ２３がイントラ（Ｉｎｔｒａ）  符号化される場合には、フレーム画像データＳ２３を画像データＳ２４として直交変換回路２５に出力する。
直交変換回路２５は、画像データＳ２４に離散コサイン変換やカルーネン・レーベ変換などの直交変換を施して画像データ（例えばＤＣＴ係数信号）Ｓ２５を生成し、これを量子化回路２６に出力する。
量子化回路２６は、レート制御回路３２から入力した量子化スケールで、画像データＳ２５を量子化して画像データＳ２６を生成し、これを可逆符号化回路２７および逆量子化回路２９に出力する。
【００４３】
可逆符号化回路２７は、画像データＳ２６を可変長符号化あるいは算術符号化した画像データをバッファ２８に格納する。
このとき、可逆符号化回路２７は、動き予測・補償回路３６から入力した動きベクトルＭＶあるいはその差分を符号化してヘッダデータに格納する。
バッファ２８に格納された画像データは、変調等された後に送信される。
逆量子化回路２９は、画像データＳ２６を逆量子化した信号を生成し、これを逆直交変換回路３０に出力する。
逆直交変換回路３０は、逆量子化回路２９から入力した画像データに、上記直交変換を逆変換を施して生成したフレーム画像データをフレームメモリ３１に格納する。
レート制御回路３２は、バッファ２３から読み出した画像データを基に量子化スケールを生成し、これを量子化回路２６に出力する。
【００４４】
動きベクトル生成回路３４は、図１１に示すように、動き予測・補償回路３６を介して入力したフレーム画像データＳ２３（本発明の第１の画像データ）の各画素位置の動きベクトルＭＶを、マクロブロックを単位として、参照画像のフレーム画像データＳ３１（本発明の第２の画像データ）内の所定の検索範囲を探索して生成し、これを可逆符号化回路２７に出力する。ここで、フレーム画像データＳ２３とＳ３１とは相関性を有している。
具体的には、動きベクトル生成回路３４は、処理対象のマクロブロック内の複数の画素位置について、当該画素位置に対応するフレーム画像データＳ２３の画素データと、当該画素位置と当該画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応するフレーム画像データＳ３１の画素データとの差分に応じた差分値を生成し、上記複数の画素位置について得られた差分値を累積して累積値を生成する第１の処理を行う。
そして、動きベクトル生成回路３４は、複数の上記候補動きベクトルのうち、上記第１の処理によって生成された累積値が最小の前記候補動きベクトルを選択（検索）する。
このとき、動きベクトル生成回路３４は、残差演算制御回路３５からの制御信号ＲＥが上記第１の処理の停止を示す場合に、当該第１の処理を停止して、新たな候補動きベクトルを用いて上記第１の処理を行う。
【００４５】
本実施形態では、前述したＣＧＩ方式を採用しており、処理対象のマクロブロック内の画素位置の動きベクトルを基に、当該処理対象のマクロブロックに隣接する他のマクロブロック内の画素位置の動きベクトルが規定される。
従って、動きベクトル生成回路３４は、処理対象のマクロブロック、並びに上記他のブロック内の画素位置について上記前記第１の処理を行い、当該第１の処理によって得られた累積値が最小の候補動きベクトルを選択（検索）する。
【００４６】
動きベクトル生成回路３４は、図１２に示すように、処理対象のマクロブロック、並びに当該処理対象のマクロブロックに隣接するマクロブロックについて、マクロブロックを単位として当該マクロブロック内の前記画素位置をラインに沿って走査して前記累積値を順に生成する。
なお、動きベクトル生成回路３４は、図１３に示すように、上記処理対象のマクロブロック、並びに当該処理対象のマクロブロックに隣接するマクロブロックについて、複数のマクロブロックに跨がって規定されたラインに沿って走査を行って上記累積値を順に生成してもよい。
【００４７】
残差演算制御回路３５は、動きベクトル生成回路３４が上記第１の処理を行う過程で、図１４に示すように、処理対象のマクロブロック内の一部の画素位置についての上記差分値を累積した結果（中間残差エネルギε＿ｔｅｍｐ）が、他の候補動きベクトルを用いて既に終了した上記第１の処理によって得られた暫定的に最小の上記累積値（残差エネルギε＿ｍｉｎ）より大きいと判断した場合に、上記第１の処理を停止することを示す制御信号ＲＥを動きベクトル生成回路３４に出力する。
具体的には、処理対象のマクロブロック内の画素位置の動きベクトルを基に、処理対象のマクロブロックに隣接する他のマクロブロック内の画素位置の動きベクトルが規定される場合、すなわちＣＧＩ方式を採用した場合には以下のようになる。
すなわち、残差演算制御回路３５は、動きベクトル生成回路３４が処理対象となるマクロブロックおよびそれに隣接するマクロブロックの全体について上記累積値を算出する過程で生成した中間値が、既に終了した他の候補動きベクトルを用いた上記第１の処理によって得られた最小の累積値より大きいと判断した場合に、上記第１の処理を停止することを示す制御信号ＲＥを動きベクトル生成回路３４に出力する。
この場合に、残差演算制御回路３５は、上述したように動きベクトル生成回路３４が生成した１ライン分の走査によって得られた累積値を用いて、上記判断を行う。
【００４８】
以下、動きベクトル生成回路３４による動きベクトルＭＶの生成処理を説明する。
ＣＧＩでは、図１１および図１５に示すように、フレーム画像データＳ２３内のマクロブロックＭＢの全ての画素位置ｓの動きベクトルＭＶ（ｓ）を、下記式（６）を基に、当該マクロブロックＭＢに隣接するマクロブロックＭＢの代表画素位置ｓ（ｓ１，ｓ２，ｓ３，ｓ４）の動きベクトルＭＶ（ＭＶ（ｓ１），ＭＶ（ｓ２），ＭＶ（ｓ３），ＭＶ（ｓ４））を用いて収束演算を行って生成する。
【００４９】
【数６】
2004165816.tif 000008
【００５０】
上記式（６）におけるｗを画素位置を引数とする双１次関数である重み付け関数としている。
ここで、重み付け関数ｗは、マクロブロックＭＢのサイズを２ｍ  ×２ｎ  （ｍ，ｎは整数）とした場合に、その値はｋ／２ｌ  （ｋ，ｌは整数）となり、除算を行うことなく、シフト演算によって実現される。
【００５１】
ところで、図１１および図１５に示すように、フレーム画像データＳ２３についてのＭＢ４を動きベクトル生成の対象となる（処理対象の）マクロブロックとし、ＭＢ１，ＭＢ２，ＭＢ３をＭＢ４に隣接するマクロブロックとした場合を考える。
また、ＭＶ（ｓ１）、ＭＶ（ｓ２），ＭＶ（ｓ３）、ＭＶ（ｓ４）を、それぞれＭＢ１〜ＭＢ４に対するＣＧＩ動きベクトルとする。
ここで、探索対象はＭＶ（ｓ４）であるが、ＭＶ（ｓ４）が変化することで、ＭＢ４の残差エネルギのみならず、ＭＢ１〜ＭＢ３の残差エネルギも変化する。従って、動きベクトル生成回路３４は、下記式（７）に示すように、ＭＢ１〜ＭＢ４の残差エネルギε１，ε２，ε３，ε４の総和の残差エネルギε（本発明の累積値）を最小にするＭＶ（ｓ４）を探索する。
【００５２】
【数７】
2004165816.tif 000009
【００５３】
各マクロブロックＭＢの残差エネルギεは、フレーム画像データＳ２３内のマクロブロックＭＢ＿Ｏと、参照画像のフレーム画像データＳ３１内のマクロブロックＭＢ＿Ｒ内の１６×１６の画素位置を前述した図１４に示すように規定すると、下記式（８）で示される。
【００５４】
【数８】
2004165816.tif 000010
【００５５】
上述したＣＧＩ方式では、上記４つのマクロブロックについての上記式（８）に示す演算を、残差エネルギεを最小にするＭＶ（ｓ４）を探索するまで繰り返し行う。
【００５６】
以下、動きベクトル生成回路３４が、フレーム画像データＳ２３内の全てのマクロブロックＭＢ（ｉ，ｊ）の代表画素位置（ｓ１，ｓ２，ｓ３，ｓ４）の動きベクトルＭＶ（ｉ，ｊ）を生成する手順を説明する。
図１６は、当該手順を説明するためのフローチャートである。
ステップＳＴ１：
動きベクトル生成回路３４は、動き予測・補償回路３６から入力したフレーム画像データＳ２３内のマクロブロックＭＢ（ｉ，ｊ）の代表画素位置の動きベクトルＭＶ（ｉ，ｊ）を０に初期化する。
また、動きベクトル生成回路３４は、動きベクトルＭＶ（ｉ，ｊ）の収束の有無を示す変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）、並びに動きベクトルの生成処理の繰り返し回数を示す変数ｉｔｒを０に初期化する。
【００５７】
ステップＳＴ２：
動きベクトル生成回路３４は、変数ｉｔｒをインクリメントする。
また、動きベクトル生成回路３４は、全てのマクロブロックＭＢ（ｉ，ｊ）の変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）が１を示し、全ての動きベクトルＭＶ（ｉ，ｊ）が収束したかを判断する指標となる変数ｃｏｕｔ＿ｃｈｅｃｋを０に初期化する。
【００５８】
動きベクトル生成回路３４は、以下に示すステップＳＴ３〜Ｓ９の処理を、全てのマクロブロックＭＢ（ｉ，ｊ）について行う。
【００５９】
ステップＳＴ３：
動きベクトル生成回路３４は、変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）が０を示すか否かを判断し、０を示すと判断した場合にはステップＳＴ４の処理に進み、そうでない場合（１を示す場合）には、次のマクロブロックＭＢ（ｉ，ｊ）についてステップＳＴ３の処理を行う。
ステップＳＴ４：
動きベクトル生成回路３４は、変数ｃｏｕｎｔ＿ｃｈｅｃｋをインクリメントする。
ステップＳＴ５：
動きベクトル生成回路３４は、動きベクトルＭＶ＿ｏｌｄに、動きベクトルＭＶ（ｉ，ｊ）を代入する。
ステップＳＴ６：
動きベクトル生成回路３４は、図１１〜図１５を用いて前述したＣＧＩ方式で、当該マクロブロックＭＢ（ｉ，ｊ）の代表画素データの動きベクトルＭＶ（ｉ，ｊ）を検索する。
この場合に、動きベクトル生成回路３４は、上述した式（７）で示される残差エネルギεを演算し、当該残差エネルギεを最小にする動きベクトルを探索結果として選択する。
動きベクトル生成回路３４による残差エネルギεを生成する演算は、前述したように、残差演算制御回路３５からの制御信号ＲＥを基に停止する。
ステップＳＴ６の処理手順については、後に詳細に説明する。
【００６０】
ステップＳＴ７：
動きベクトル生成回路３４は、動きベクトルＭＶ＿ｏｌｄと、ステップＳＴ６で検索した動きベクトルＭＶ（ｉ，ｊ）とが一致するか否かを判断し、一致すると判断した場合にはステップＳＴ８の処理に進み、一致しないと判断した場合にはステップＳＴ９の処理に進む。
【００６１】
ステップＳＴ８：
動きベクトル生成回路３４は、変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に１を設定する。
ステップＳＴ９：
動きベクトル生成回路３４は、処理対象のマクロブロックＭＢ（ｉ，ｊ）の周辺のマクロブロックＭＢの変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に０を設定する。図１５に示す例では、マクロブロックＭＢ４の動きベクトルＭＶ（ｓ４）を生成している場合には、動きベクトル生成回路３４は、マクロブロックＭＢ４に隣接するマクロブロックＭＢ１，ＭＢ２，ＭＢ３の変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に０を設定する。
【００６２】
ステップＳＴ１０：
動きベクトル生成回路３４は、全てのマクロブロックＭＢ（ｉ，ｊ）について前述したステップＳＴ３〜ＳＴ９の処理が終了した後に、変数ｃｈｅｃｋ＿ｃｏｕｎｔが０であるか否かを判断し、０でないと判断した場合にはステップＳＴ１１の処理に進み、０であると判断した場合には処理を終了する。
ステップＳＴ１１：
動きベクトル生成回路３４は、変数ｉｔｒが所定の回数ｍａｘ＿ｉｔｒに達したか否かを判断し、達したと判断した場合には処理を終了し、そうでない場合にはステップＳＴ２の処理に戻る。
【００６３】
以下、図１６に示すステップＳＴ６の処理を詳細に説明する。
図１７は、図１６に示すステップＳＴ６の手順を説明するためのフローチャートである。
ステップＳＴ２１：
動きベクトル生成回路３４は、フレーム画像データＳ２３内の処理対象のマクロブロックの代表画素位置ｓ４と、参照画像のフレーム画像データＳ３１内の検索範囲内に位置する複数のマクロブロック内の対応する画素位置との間の複数の候補動きベクトルのうち、未処理の候補動きベクトルを選択する。
【００６４】
ステップＳＴ２２：
動きベクトル生成回路３４は、上記式（６）の動きベクトルＭＶ（ｓ４）としてステップＳＴ２１で選択した候補動きベクトルを用いて上記式（７）に示す残差エネルギεを演算する過程で、図１２および図１３を用いて説明した１ライン分の画素位置について、フレーム画像データＳ２３内の対応する画素位置の画素データと、フレーム画像データＳ３１内の当該画素位置と上記動きベクトルとによって規定される画素位置の画像データとの差分の二乗和を算出し、これを上記残差エネルギεの演算過程で前回得られた中間残差エネルギε＿ｔｅｍｐ（中間値）に加算し、これを新たな中間残差エネルギε＿ｔｅｍｐとする。
動きベクトル生成回路３４は、上記新たな中間残差エネルギε＿ｔｅｍｐを、残差演算制御回路３５に出力する。
【００６５】
ステップＳＴ２３：
残差演算制御回路３５は、動きベクトル生成回路３４が動きベクトル生成回路３４から入力した中間残差エネルギε＿ｔｅｍｐが、他の候補動きベクトルを用いて既に得られた暫定的に最小の残差エネルギε＿ｍｉｎより大きい否かを判断する。
そして、残差演算制御回路３５は、中間残差エネルギε＿ｔｅｍｐが最小の残差エネルギε＿ｍｉｎより大きいと判断した場合に、当該候補動きベクトルを基にした残差エネルギの演算処理（第１の処理）を停止することを示す制御信号ＲＥを動きベクトル生成回路３４に出力し、そうでない場合にはステップＳＴ２４の処理に進む。
動きベクトル生成回路３４は、第１の処理を停止することを示す制御信号ＲＥを基に実行中の第１の処理を終了してステップＳＴ２１の処理に戻る。
【００６６】
ステップＳＴ２４：
動きベクトル生成回路３４は、処理対象のマクロブロックの全てのラインについて、上記ステップＳＴ２２の処理を終了したか否かを判断し、終了したと判断した場合にはステップＳＴ２５の処理に進み、そうでない場合には、未処理のラインについてステップＳＴ２２の処理を行う。
【００６７】
ステップＳＴ２５：
動きベクトル生成回路３４は、ステップＳＴ２２で得られた中間残差エネルギε＿ｔｅｍｐを、暫定的に最小の残差エネルギε＿ｍｉｎとする。
そして、動きベクトル生成回路３４は、処理対象とするマクロブロックについて、参照画像のフレーム画像データＳ３１内の検索範囲内に位置する複数のマクロブロック内に対応する全ての候補動きベクトルについて、ステップＳＴ２２〜ＳＴ２４の処理を行ったか否かを判断し、行ったと判断した場合にはステップＳＴ２６の処理に進み、行っていないと判断した場合にはステップＳＴ２１の処理に戻る。
【００６８】
ステップＳＴ２６：
動きベクトル生成回路３４は、暫定的に最小の残差エネルギε＿ｍｉｎを生成するのに用いた候補動きベクトルを、動きベクトルとして選択する。
【００６９】
動き予測・補償回路３６は、参照画像のフレーム画像データＳ３１と、動きベクトルＭＶとを用いて、動き予測された予測フレーム画像データＳ３６ａを生成し、これを演算回路２４に出力する。
そして、動き予測・補償回路３６は、予測フレーム画像データＳ３６ａを演算回路２４に出力する。
また、動き予測・補償回路３６は、動きベクトル生成回路３４から入力した動きベクトルＭＶを可逆符号化回路２７に出力する。
【００７０】
次に、図１０に示す符号化装置２の全体動作を説明する。
入力となる画像信号は、まず、Ａ／Ｄ変換回路２２においてデジタル信号に変換される。次に、出力となる画像圧縮情報のＧＯＰ構造に応じ、画面並べ替え回路２３においてフレーム画像データの並べ替えが行われる。
そして、イントラ符号化が行われるフレーム画像データに関しては、フレーム画像データ全体の画像情報が直交変換回路２５に入力され、直交変換回路２５において離散コサイン変換やカルーネン・レーベ変換等の直交変換が施される。
直交変換回路２５の出力となる変換係数は、量子化回路２６において量子化処理される。
量子化回路２６の出力となる、量子化された変換係数は、可逆変換回路２７に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施された後、バッファ２８に蓄積され、圧縮された画像データとして出力される。
量子化回路２６における量子化レートは、レート制御回路３２によって制御される。同時に、量子化回路２６の出力となる、量子化された変換係数は、逆量子化回路２９に入力され、さらに逆直交変換回路３０において逆直交変換処理が施されて、復号されたフレーム画像データとなり、そのフレーム画像データがフレームメモリ３１に蓄積される。
【００７１】
一方、インター符号化が行われる画像に関しては、先ず、そのフレーム画像データＳ２３が動き予測・補償回路３６に入力される。また、参照画像のフレーム画像データＳ３１がフレームメモリ３１より読み出され、動き予測・補償回路３６に出力される。
そして、動き予測・補償回路３６から動きベクトル生成回路３４に、フレーム画像データＳ２３および参照画像のフレーム画像データＳ３１が出力される。
そして、動きベクトル生成回路３４において、前述したように、ＣＧＩ方式で動きベクトルＭＶが生成され。これが可逆符号化回路２７に出力される。
この過程で、前述したように、残差演算制御回路３５が、動きベクトル生成回路３４から入力した中間残差エネルギε＿ｔｅｍｐが、暫定的な残差エネルギε＿ｍｉｎより大きい場合に、制御信号ＲＥを動きベクトル生成回路３４に出力して、選択した候補動きベクトルを用いた残差エネルギεの演算を中止させる。
【００７２】
そして、動き予測・補償回路３６において、参照画像のフレーム画像データＳ３１および動きベクトルＭＶを用いて、予測フレーム画像データＳ３６ａが生成される。
動き予測・補償回路３６は、予測フレーム画像データＳ３６ａを演算回路２４に出力する。
【００７３】
そして、演算回路２４において、画面並べ替え回路２３からのフレーム画像データと、動き予測・補償回路３６からの予測フレーム画像データＳ３６ａとの差分信号である画像データＳ２４が生成され、当該画像データＳ２４が直交変換回路２５に出力される。
そして、可逆符号化回路２７において、動きベクトルＭＶが可変長符号化あるいは算術符号化といった可逆符号化処理され、画像データのヘッダ部に挿入される。その他の処理はイントラ符号化を施される画像データと同様である。
【００７４】
以上説明したように、符号化装置２では、残差演算制御回路３５が、動きベクトル生成回路３４が上記第１の処理を行う過程で、図１４に示すように、処理対象のマクロブロック内の一部の画素位置についての上記差分値を累積した結果（中間残差エネルギε＿ｔｅｍｐ）が、他の候補動きベクトルを用いて既に終了した上記第１の処理によって得られた暫定的に最小の上記累積値（残差エネルギε＿ｍｉｎ）より大きいと判断した場合に、動きベクトル生成回路３４による上記第１の処理を停止させる。
そのため、符号化装置２によれば、従来に比べて、動きベクトル生成回路３４の演算量を削減でき、その処理負担を軽減できる。
【００７５】
〔復号装置３〕
図１８は、復号装置３の機能ブロック図である。
図１８に示すように、復号装置３は、例えば、蓄積バッファ７１、可逆復号化回路７２、逆量子化回路７３、逆直交変換回路７４、演算回路７５、画面並べ替え回路７６、Ｄ／Ａ変換回路７７、フレームメモリ７８および動き予測・補償回路８１を有する。
【００７６】
蓄積バッファ７１は、図１０に示す符号化装置２で符号化され、続いて変調されて送信された画像信号が受信され、当該画像信号が復調されると、当該復調によって得られたフレーム画像データを記憶する。
可逆復号化回路７２は、蓄積バッファ７１から入力したフレーム画像データに対して、可逆符号化回路２７の符号化処理に対応する復号処理を行い、それによって得られた画像データを逆量子化回路７３に出力し、当該復号処理で得られた動きベクトルＭＶを動き予測・補償回路８１に出力する。
【００７７】
逆量子化回路７３は、可逆復号化回路７２から入力した画像データを逆量子化して逆直交変換回路７４に出力する。
逆直交変換回路７４は、逆量子化回路７３から入力した画像データに、図１０に示す直交変換回路２５の直交変換処理に対応する逆直交変換処理を施し、それによって得られたフレーム画像データＳ７４を演算回路７５に出力する。
【００７８】
演算回路７５は、逆直交変換回路７４からのフレーム画像データＳ７４と、動き予測・補償回路８１からの予測フレーム画像データＳ８１とを加算してフレーム画像データＳ７５を生成し、これを画面並べ替え回路７６およびフレームメモリ７８に出力する。
画面並べ替え回路７６は、フレーム画像データＳ７５を表示順に並べ替えてＤ／Ａ変換回路７７に出力する。
Ｄ／Ａ変換回路７７は、画面並べ替え回路７６から入力したデジタルのフレーム画像データをアナログの画像信号に変換して出力する。
【００７９】
フレームメモリ７８は、フレーム画像データＳ７５を参照フレーム画像データとして記憶する。
【００８０】
動き予測・補償回路８１は、フレームメモリ７８から読み出されたフレーム画像データＳ２３と、可逆復号化回路７２から入力した動きベクトルＭＶとを用いて、予測フレーム画像データＳ８１を生成し、これを演算回路７５に出力する。
【００８１】
以下、復号装置３の全体動作例を説明する。
復号装置３では、入力となる画像データがバッファ７１に格納された後、可逆復号回路７２に出力される。
そして、可逆復号化回路７２において、定められた画像圧縮情報のフォーマットに基づき、可変長復号化、算術復号化等の処理が行われる。同時に、当該フレームがインター符号化されたものである場合には、可逆復号化回路７２において、画像信号のヘッダ部に格納された動きベクトルＭＶも復号され、その動きベクトルＭＶが動き予測・補償装置８１に出力される。
【００８２】
可逆復号化回路７２の出力となる、量子化された変換係数は、逆量子化回路７３に入力され、ここで変換係数が生成される。当該変換係数には、逆直交変換回路７４において、定められた画像圧縮情報のフォーマットに基づき、逆離散コサイン変換や逆カルーネン・レーベ変換等の逆直交変換が施される。当該フレーム画像データがイントラ符号化されたものである場合には、逆直交変換処理が施されたフレーム画像データは画面並べ替え回路７６に格納され、Ｄ／Ａ変換回路７７によるＤ／Ａ変換処理を経て出力される。
一方、当該フレームがインター符号化されたものである場合には、動き予測・補償回路８１からサブブロック分割回路７９に、参照フレーム画像データＳ７８および動きベクトルＭＶが出力される。
【００８３】
そして、動き予測・補償回路８１が、フレームメモリ７８から読み出された参照フレーム画像データＳ７８と、可逆復号化回路７２から入力した動きベクトルＭＶとを用いて、予測フレーム画像データＳ８１を生成し、これを演算回路７５に出力する。
【００８４】
以上説明したように、復号装置３によれば、符号化装置２によって符号化されたフレーム画像データを適切に復号することができる。
【００８５】
第２実施形態
上述した実施形態では、符号化装置２の動きベクトル生成回路３４がフレーム画像データＳ２３および参照画像のフレーム画像データＳ３１をそのまま用いて、動きベクトルＭＶの検索を行う場合を説明したが、本実施形態では、その他の検索方法を説明する。
図１９は、当該実施形態における動きベクトル生成回路３４の動きベクトルＭＶの探索方法を説明するための図である。
動きベクトル生成回路３４は、フレーム画像データＳ２３および参照画像のフーム画像データＳ３１の各々を、水平方向および垂直方法のそれぞれに対して１／２に画素データをダウンサンプリング（間引き処理）してフレーム画像データＦＬＳ２３＿１および参照画像のフレーム画像データＳ３１＿１を生成する。
また、動きベクトル生成回路３４は、フレーム画像データＳ２３＿１および参照画像のフレーム画像データＳ３１＿１の各々を、水平方向および垂直方法のそれぞれに対して１／２に画素データをダウンサンプリングしてフレーム画像データＳ２３＿２および参照画像のフレーム画像データＳ３１＿２を生成する。
【００８６】
そして、動きベクトル生成回路３４は、フレーム画像データＳ２３＿２および参照画像のフレーム画像データＳ３１＿２を用いて第１実施形態で説明した第１の手法で各マクロブロックＭＢの代表画素位置の動きベクトルＭＶ＿２の第１の検索を行う。
そして、動きベクトル生成回路３４は、フレーム画像データＳ２３＿１および参照フレーム画像データＳ３１＿１を用いて、フレーム画像データＳ２３＿１内の画素データのうち、上記第１の検索によって得られた動きベクトルＭＶ＿２によって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象とし動きベクトルＭＶ＿１の第２の検索を行う。
そして、フレーム画像データＳ２３および参照フレーム画像データＳ３１を用いて、フレーム画像データＳ２３内の画素データのうち、上記第２の検索によって得られた動きベクトルＭＶ＿１によって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象とし動きベクトルＭＶの第３の検索を行う。
【００８７】
上述したように、動きベクトル生成回路３４において、動きベクトルＭＶの検索を階層的に行うことで、動きベクトルＭＶの検索範囲を小さくでき、動きベクトルＭＶの検索を少ない演算量で高精度に行うことができる。
【００８８】
上述した実施形態では、動きベクトルＭＶを３階層で行う場合を例示したが、２階層以上であれば、その他の階層数を用いてもよい。
また、上述した実施形態では、間引き処理において、水平方向および垂直方向にそれぞれ１／２に画素データを間引く場合を例示したが、その他の間引き率を用いてもよい。
【００８９】
第３実施形態
上述した第１実施形態では、図１０に示す動きベクトル生成回路３４が、マクロブロックＭＢ内の代表画素位置の動きベクトルＭＶの生成を図１６および図１７に示すステップＳＴ６のようにＣＧＩ方式で行う場合を例示した。
本実施形態では、動きベクトル生成回路が、第１実施形態で説明したＣＧＩ方式とＢＭＡ方式とを選択的に使用して各マクロブロックの動きベクトルを生成する場合を説明する。
図２０は、本実施形態の符号化装置１０２の機能ブロック図である。
図２０において、図１０と同じ符号を付した構成要素は第１実施形態で説明したものと同じである。
符号化装置１０２は、前述したＳＣＧＩ方式で動きベクトルの生成を行う。
符号化装置１０２では、図２０に示す動きベクトル生成回路１３４が、第１実施形態で説明したＣＧＩ方式と、ＢＭＡ方式とによって得られた動きベクトルＭＶのうち、フレーム画像データＳ２３の符号化効率をより高くできる動きベクトルＭＶを選択する。
【００９０】
ＢＭＡ方式は、前述したように、いわゆるブロックマッチング法であり、例えば、上記式（１），（２）に示すように、フレーム画像データについて画像処理の単位として規定された１６×１６画素のマクロブロックＭＢ内の所定の画素位置ｓ１の動きベクトルＭＶを、当該マクロブロックＭＢ内のその他の画素位置の動きベクトルとして用いる。すなわち、マクロブロックＭＢ内の全ての画素位置で同じ動きベクトルＭＶを用いる。
ＢＭＡ方式においては、各マクロブロックＭＢにおける動きベクトル情報は、隣接するマクロブロックＭＢの動きベクトルＭＶには影響を及ぼさないため、収束演算を必要とせず、その演算量は限られている。
【００９１】
動きベクトル生成回路１３４は、第１実施形態で説明した上記式（７）を基に、処理対象のマクロブロックＭＢ４、並びに当該マクロブロックＭＢ４に隣接するマクロブロックＭＢ１，ＭＢ２，ＭＢ３の残差エネルギε１〜ε４を算出する場合に、ＢＭＡ方式を基に動きベクトルを生成したマクロブロックＭＢ１〜ＭＢ３については残差エネルギε１〜ε３を算出しない。
例えば、図２１に示すように、処理対象のマクロブロックＭＢ４に隣接するマクロブロックＭＢ１，ＭＢ２，ＭＢ３のうち、マクロブロックＭＢ１，ＭＢ３はＣＧＩ方式で動きベクトルが生成され、マクロブロックＭＢ２がＢＭＡ方式で動きベクトルが生成されている場合に、動きベクトル生成回路１３４は、下記式（９）に示すように、残差エネルギεを生成する。すなわち、マクロブロックＭＢ２の残差エネルギε２は加算しない。
【００９２】
【数９】
2004165816.tif 000011
【００９３】
また、図２２に示すように、処理対象のマクロブロックＭＢ４に隣接するマクロブロックＭＢ１，ＭＢ２，ＭＢ３のうち、マクロブロックＭＢ１，ＭＢ２はＣＧＩ方式で動きベクトルが生成され、マクロブロックＭＢ３がＢＭＡ方式で動きベクトルが生成されている場合に、動きベクトル生成回路１３４は、下記式（１０）に示すように、残差エネルギεを生成する。すなわち、マクロブロックＭＢ３の残差エネルギε３は加算しない。
【００９４】
【数１０】
2004165816.tif 000012
【００９５】
また、図２３に示すように、横方向に隣接するマクロブロックに跨がって走査を行って残差エネルギεを生成する場合に、ＣＧＩ方式のマクロブロックＭＢ１，ＭＢ２については、図１３を用いて前述した方法で残差エネルギε１，ε２を生成し、ＣＧＩ方式のいマクロブロックＭＢ４については図１２を用いて前述した方法で残差エネルギε４を生成し、上記式（１０）を基に残差エネルギεを生成する。
【００９６】
図２４および図２５は、図２０に示す符号化装置１０２の動きベクトル生成回路１３４における代表画素位置の動きベクトルＭＶの生成処理を説明するためのフローチャートである。
ここで、動きベクトルＭＶ＿ＣＧＩ（ｉ，ｊ）は上記ＣＧＩ方式で検索した代表画素位置の動きベクトルＭＶである。
動きベクトルＭＶ＿ＢＭＡ（ｉ，ｊ）は上記ＢＭＡ方式で検索した代表画素位置の動きベクトルＭＶである。
【００９７】
ステップＳＴ３１：
動きベクトル生成回路１３４は、動き予測・補償回路３６から入力したフレーム画像データＳ２３のマクロブロックＭＢ（ｉ，ｊ）の代表画素位置の動きベクトルＭＶ＿ＢＭＡ（ｉ，ｊ），ＭＶ＿ＣＧＩ（ｉ，ｊ）を０に初期化する。
また、動きベクトル生成回路１３４は、代表画素位置の動きベクトルＭＶがＣＧＩ方式およびＢＭＡ方式の何れの手法で検索されたかを示す識別データｌａｂｅｌ（ｉ，ｊ）を１に初期化する。
また、動きベクトル生成回路１３４は、動きベクトルＭＶ（ｉ，ｊ）の収束の有無を示す変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）、並びに動きベクトルの生成処理の繰り返し回数を示す変数ｉｔｒを０に初期化する。
【００９８】
ステップＳＴ３２：
動きベクトル生成回路１３４は、変数ｉｔｒをインクリメントする。
また、動きベクトル生成回路１３４は、全てのマクロブロックＭＢ（ｉ，ｊ）の変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）が１を示し、全ての動きベクトルＭＶ（ｉ，ｊ）が収束したかを判断する指標となる変数ｃｏｕｔ＿ｃｈｅｃｋを０に初期化する。
【００９９】
動きベクトル生成回路１３４は、以下に示すステップＳＴ３３〜ＳＴ４１の処理を、全てのマクロブロックＭＢ（ｉ，ｊ）について行う。
【０１００】
ステップＳＴ３３：
動きベクトル生成回路１３４は、変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）が０を示すか否かを判断し、０を示すと判断した場合にはステップＳＴ３４の処理に進み、そうでない場合（１を示す場合）には、次のマクロブロックＭＢ（ｉ，ｊ）についてステップＳＴ３３の処理を行う。
ステップＳＴ３４：
動きベクトル生成回路１３４は、変数ｃｏｕｎｔ＿ｃｈｅｃｋをインクリメントする。
ステップＳＴ３５：
動きベクトル生成回路１３４は、処理対象のマクロブロックＭＢ（ｉ，ｊ）について、当該マクロブロックＭＢ（ｉ，ｊ）の代表画素位置の動きベクトルＭＶ（ｉ，ｊ）の検索を、前述したＣＧＩ方式および第ＢＭＡ方式の双方で行う。
動きベクトル生成回路１３４は、ＣＧＩ方式で動きベクトルＭＶ（ｉ，ｊ）を生成（検索）する処理は、基本的に図１７を用いて説明したステップＳＴ６の場合と同様であるが、第１実施形態で説明した上記式（７）を基に、図２１〜図２３を用いて説明したよう、処理対象のマクロブロックＭＢ４、並びに当該マクロブロックＭＢ４に隣接するマクロブロックＭＢ１，ＭＢ２，ＭＢ３の残差エネルギε１〜ε４を算出する場合に、ＢＭＡ方式を基に動きベクトルを生成したマクロブロックＭＢ１〜ＭＢ３については残差エネルギε１〜ε３を算出しない。すなわち、当該マクロブロックＭＢ４に隣接するマクロブロックＭＢ１，ＭＢ２，ＭＢ３のうち、ＣＧＩ方式を基に動きベクトルを生成したマクロブロックを選択し、当該選択したマクロブロックについての残差エネルギε１〜ε３を加算して残差エネルギεを生成する。
また、動きベクトル生成回路１３４は、第１実施形態と同様に、残差演算制御回路３５からの制御信号ＲＥを基に、図１４を用いて説明したように、処理中の候補動きベクトルを用いた残差エネルギεの演算を停止し、新たな候補動きベクトルを用いた残差エネルギεを行う。
【０１０１】
そして、動きベクトル生成回路１３４は、ＣＧＩ方式で検索した動きベクトルＭＶ＿ＣＧＩを用いた場合のフレーム画像データＳ２３の当該マクロブロックＭＢの符号化効率ＣＧＩ＿ＤＩＦを求める。
動きベクトル生成回路１３４は、ＢＭＡ方式で検索した動きベクトルＭＶ＿ＢＭＡを用いた場合のフレーム画像データＳ２３の当該マクロブロックＭＢの符号化効率ＢＭＡ＿ＤＩＦを求める。
【０１０２】
ステップＳＴ３６：
動きベクトル生成回路１３４は、ステップＳＴ３５で求めた符号化効率ＣＧＩ＿ＩＦが、ＢＭＡ＿ＤＩＦより大きいか否かを判断し、大きいと判断した場合にはステップＳＴ３７の処理に進み、そうでない場合にはステップＳＴ３８の処理に進む。
ステップＳＴ３７：
動きベクトル生成回路１３４は、動きベクトルＭＶ（ｉ，ｊ）としてＢＭＡ方式で検索した動きベクトルＭＶ＿ＢＭＡ（ｉ，ｊ）を設定する。
また、当該マクロブロックＭＢ（ｉ，ｊ）の識別データ（ｉ，ｊ）に０を設定する。
ステップＳＴ３８：
動きベクトル生成回路１３４は、動きベクトルＭＶ（ｉ，ｊ）としてＣＧＩ方式で検索した動きベクトルＭＶ＿ＣＧＩ（ｉ，ｊ）を設定する。
また、当該マクロブロックＭＢ（ｉ，ｊ）の識別データｌａｂｅｌ（ｉ，ｊ）に１を設定する。
【０１０３】
ステップＳＴ３９：
動きベクトル生成回路１３４は、ステップＳＴ３７あるいはＳＴ３８で設定した動きベクトルＭＶ（ｉ，ｊ）および識別データｌａｂｅｌ（ｉ，ｊ）が共に前回の設定値と同じであるか否かを判断し、同じであると判断した場合にはステップＳＴ３０の処理に進み、異なると判断した場合にはステップＳＴ３１の処理に進む。
ステップＳＴ４０：
動きベクトル生成回路１３４は、変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に１を設定する。
ステップＳＴ４１：
動きベクトル生成回路１３４は、処理対象のマクロブロックＭＢ（ｉ，ｊ）の周辺のマクロブロックＭＢの変数ｌｏｃａｌ＿ｏｐｔ（ｉ，ｊ）に０を設定する。
ステップＳＴ４２：
動きベクトル生成回路１３４は、全てのマクロブロックＭＢ（ｉ，ｊ）について前述したステップＳＴ３３〜ＳＴ４１の処理が終了した後に、変数ｃｈｅｃｋ＿ｃｏｕｎｔが０であるか否かを判断し、０でないと判断した場合にはステップＳＴ４３の処理に進み、０であると判断した場合には処理を終了する。
ステップＳＴ４３：
動きベクトル生成回路１３４は、変数ｉｔｒが所定の回数ｍａｘ＿ｉｔｒに達したか否かを判断し、達したと判断した場合には処理を終了し、そうでない場合にはステップＳＴ３２の処理に戻る。
【０１０４】
図２０に示す符号化装置１０２は、動きベクトル生成回路１３４において生成された識別データｌａｂｅｌ（ｉ，ｊ）が、動き予測・補償回路３６を介して可逆符号化回路２７に出力され、フレーム画像データのヘッダデータなどに格納される。
【０１０５】
以上説明したように、符号化装置１０２では、残差演算制御回路３５が、動きベクトル生成回路１３４が上記第１の処理を行う過程で、図１４に示すように、処理対象のマクロブロック内の一部の画素位置についての上記差分値を累積した結果（中間残差エネルギε＿ｔｅｍｐ）が、他の候補動きベクトルを用いて既に終了した上記第１の処理によって得られた暫定的に最小の上記累積値（残差エネルギε＿ｍｉｎ）より大きいと判断した場合に、動きベクトル生成回路１３４による上記第１の処理を停止させる。
そのため、符号化装置１０２によれば、従来に比べて、動きベクトル生成回路１３４の演算量を削減でき、その処理負担を軽減できる。
符号化装置１０２によれば、図２１〜図２３を用いて説明したように、処理対象のマクロブロックに隣接するマクロブロックのうち、ＢＭＡ方式で動きベクトルが生成されたマクロブロックについては、残差エネルギを加算しないため、最適な動きベクトルを生成できる。
【０１０６】
図２６は、図２０に示す符号化装置１０２で符号化されたフレーム画像データを復号する復号装置１０３の機能ブロック図である。
図２６において、図１８と同じ符号を付した構成要素は第１実施形態で説明したものと同じである。
すなわち、復号装置１０３は、動き予測・補償回路１８１に特徴を有している。
復号装置１０３は、可逆復号化回路７２において、フレーム画像データ、並びに当該フレーム画像データのヘッダデータに格納された代表画素位置の動きベクトルＭＶ、並びに識別データｌａｂｅｌ（ｉ，ｊ）が復号されて動き予測・補償回路１８１に出力される。
動き予測・補償回路１８１は、識別データｌａｂｅｌ（ｉ，ｊ）に基づいて、処理対象のマクロブロックＭＢの動きベクトルＭＶがＣＧＩ方式を用いて生成された場合に、上記式（６）に基づいて、代表画素位置の動きベクトルＭＶを用いて、当該マクロブロックＭＢ内のその他の画素位置の動きベクトルＭＶを生成する。
また、動き予測・補償回路１８１は、識別データｌａｂｅｌ（ｉ，ｊ）に基づいて、処理対象のマクロブロックＭＢの動きベクトルＭＶがＢＭＡ方式を用いて生成された場合に、代表画素位置の動きベクトルＭＶを、当該マクロブロックＭＢ内のその他の画素位置の動きベクトルＭＶとする。
【０１０７】
以上説明したように、符号化装置１０２によれば、ＣＧＩ方式およびＢＭＡ方式で生成した動きベクトルＭＶのうち、より高い符号化効率を実現する動きベクトルＭＶを選択するため、例えば、画像に回転や拡大がない場合などに、比較的少ない演算で、第１実施形態の符号化装置２よりも高い符号化効率を実現できる。
また、復号装置１０３によれば、符号化装置１０２によって符号化されたフレーム画像データを適切に復号することができる。
【０１０８】
第４実施形態
上述した第３実施形態では、符号化装置１０２の動きベクトル生成回路１３４がフレーム画像データＳ２３および参照フレーム画像データＳ３１をそのまま用いて、マクロブロックＭＢ内の代表画素位置の動きベクトルＭＶの検索を行う場合を説明したが、本実施形態では、その他の検索方法を説明する。
図２７は、当該実施形態における動きベクトル生成回路１３４の動きベクトルＭＶの探索方法を説明するための図である。
動きベクトル生成回路１３４は、フレーム画像データＳ２３および参照画像のフレーム画像データＳ３１の各々を、水平方向および垂直方法のそれぞれに対して１／２に画素データをダウンサンプリング（間引き処理）してフレーム画像データＦＬＳ２３＿１および参照フレーム画像データＳ３１＿１を生成する。
また、動きベクトル生成回路３４は、フレーム画像データＳ２３＿１および参照フレーム画像データＳ３１＿１の各々を、水平方向および垂直方法のそれぞれに対して１／２に画素データをダウンサンプリングしてフレーム画像データＳ２３＿２および参照フレーム画像データＳ３１＿２を生成する。
【０１０９】
そして、動きベクトル生成回路１３４は、フレーム画像データＳ２３＿２および参照フレーム画像データＳ３１＿２を用いてＣＧＩ方式で各マクロブロックＭＢの代表画素位置の動きベクトルＭＶ＿２＿ＣＧＩの第１の検索を行う。
また、動きベクトル生成回路１３４は、フレーム画像データＳ２３＿２および参照フレーム画像データＳ３１＿２を用いてＢＭＡ方式で各マクロブロックＭＢの第１の代表画素位置の動きベクトルＭＶ＿２＿ＢＭＡの第１の検索を行う。
【０１１０】
そして、動きベクトル生成回路１３４は、フレーム画像データＳ２３＿１および参照フレーム画像データＳ３１＿１を用いて、フレーム画像データＳ２３＿１内の画素データのうち、上記第１の検索によって得られた動きベクトルＭＶ＿２＿ＣＧＩによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象としてＣＧＩ方式で動きベクトルＭＶ＿１＿ＣＧＩの第２の検索を行う。
また、動きベクトル生成回路１３４は、フレーム画像データＳ２３＿１および参照フレーム画像データＳ３１＿１を用いて、フレーム画像データＳ２３＿１内の画素データのうち、上記第１の検索によって得られた動きベクトルＭＶ＿２＿ＢＭＡによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象として上記ＢＭＡ方式で動きベクトルＭＶ＿１＿ＢＭＡの第２の検索を行う。
【０１１１】
動きベクトル生成回路１３４は、フレーム画像データＳ２３および参照フレーム画像データＳ３１を用いて、フレーム画像データＳ２３内の画素データのうち、上記第２の検索によって得られた動きベクトルＭＶ＿１＿ＣＧＩ，ＭＶ＿１＿ＢＭＡによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象とし、それぞれＣＧＩ，ＢＭＡ方式で動きベクトルＭＶの第３の検索を行う。
【０１１２】
上述したように、動きベクトル生成回路１３４において、動きベクトルＭＶの検索を階層的に行うことで、動きベクトルＭＶの検索範囲を小さくでき、動きベクトルＭＶの検索を少ない演算量で高精度に行うことができる。
【０１１３】
上述した実施形態では、動きベクトルＭＶを３階層で行う場合を例示したが、２階層以上であれば、その他の階層数を用いてもよい。
また、上述した実施形態では、間引き処理において、水平方向および垂直方向にそれぞれ１／２に画素データを間引く場合を例示したが、その他の間引き率を用いてもよい。
【０１１４】
第５実施形態
上述した実施形態では、動きベクトル生成の対象となるマクロブロックＭＢおよびそれに隣接するマクロブロックＭＢの残差エネルギを、マクロブロックＭＢの全ての画素位置の画素データを対象として算出する場合を例示した。
本実施形態では、“Ｎｅｗ  Ｆａｓｔ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ｔｈｅＥｓｔｉｍａｔｉｏｎ  ｏｆ  Ｂｌｏｃｋ  Ｍｏｔｉｏｎ  Ｖｅｃｔｏｒｓ”（Ｂ．Ｌｉｕ  ａｎｄ  Ａ．Ｚａｃｃａｒｉｎ，ＩＥＥＥ  Ｔｒａｎｓ．  ｏｎＣｉｒｃｕｉｔ  ａｎｄ  Ｓｙｓｔｅｍｓ  ｆｏｒ  Ｖｉｄｅｏ  Ｔｅｃｈ．ｖｏｌ  ３，  Ｎｏ．２，  Ａｐｒｉｌ  １９９３）に基づいて、第２の手法で、動きベクトルＭＶの探索の動きベクトル情報を探索する際に、マクロブロックＭＢ内全ての画素位置の画素データではなく、図２８に示すように、半分の画素を用いて残差エネルギの算出を行ってもよい。
【０１１５】
第６実施形態
上述した本実施形態の動きベクトルＭＶの検索および生成方法を、動き予測・補償を用いたフレームレートアップコンバート装置などの画像補間装置に適用してもよい。
図２９は、本実施形態の画像補間装置２０１の機能ブロック図である。
図２９に示すように、画像補間装置２０１は、例えば、動きベクトル生成回路３４、残差演算制御回路３５、動き予測回路２５３、フレームメモリ２３１、補間画像生成回路２５０、遅延バッファ２５１およびセレクタ２５２を有する。
動きベクトル生成回路３４および残差演算制御回路３５は、例えば、第１実施形態で説明したものと同じである。
動きベクトル生成回路３４は、動き予測回路２５３を介して入力したフレーム画像データＳ２５１の動きベクトルを、フレームメモリ２３１に蓄積された参照画像のフレーム画像データＳ２３１を用いて、前述したいずれかの実施形態で説明した方法で動きベクトルＭＶの探索および生成し、これを動き予測回路２５３に出力する。
動き予測回路２５３は、動きベクトル生成回路３４から入力した動きベクトルＭＶを補間画像生成回路２５０に出力する。
また、動き予測回路２５３は、フレーム画像データＳ２５１（ＦＬＡＭＥ１）をフレームメモリ２３１およびセレクタ２５２に出力する。
前述した図８に示す例では、フレームメモリ２３１に蓄積された、時刻ｔにおけるフレーム画像データＦＬＡＭＥ１、及び時刻ｔ＋２δｔにおけるフレーム画像データＦＬＡＭＥ２との間で動きベクトルＭＶの探索が行われる。
そして、補間画像生成回路２５０において、動きベクトル生成回路３４から入力した動きベクトルＭＶ、並びにフレーム画像データＳ２３１を用いて、時刻ｔ＋δｔにおける補間フレーム画像データの生成が行われる。このように生成された補間フレーム画像データＦＬＡＭＥ＿ＩＮＴＥＲは、遅延バッファ２５１に蓄積される。
セレクタ２５２は、フレーム画像データＦＬＡＭＥ１と補間フレーム画像データＦＬＡＭＥ＿ＩＮＴＥＲとを、一定のタイミングでセレクタ２５２で選択して、ｍ［  Ｈｚ］  （ｍ＞ｎ）の画像信号を出力する。
【０１１６】
なお、当該実施形態では、入力したフレーム画像データ間に時間的に位置する１個の補間フレーム画像データを生成および配置する場合を例示したが、当該間に２個以上の補間フレーム画像データを生成および配置してもよい。
【０１１７】
【発明の効果】
本発明によれば、従来に比べて少ない演算量で、動きベクトルを生成できる画像処理装置、符号化装置およびそれらの方法を提供することができる。
【図面の簡単な説明】
【図１】図１は、本発明の関連技術に係わる符号化装置の機能ブロック図である。
【図２】図２は、図１に示す動き予測・補償回路のおける動きベクトルの生成処理を説明するための図である。
【図３】図３は、図２に示す動きベクトル生成処理に用いられる種々の手法を説明するための図である。
【図４】図４は、図２に示す動きベクトル生成処理に用いられる残差エネルギの生成方法を説明するための図である。
【図５】図５は、ＢＭＡ，ＣＧＩ，ＳＣＧＩのアルゴリズムを比較して説明するための図である。
【図６】図６は、本発明の関連技術に係わる復号装置の機能ブロック図である。
【図７】図７は、本発明の関連技術に係わる画像補間装置の機能ブロック図である。
【図８】図８は、図７に示す画像補間装置の処理を説明するための図である。
【図９】図９は、本発明の第１実施形態の通信システムの概念図である。
【図１０】図１０は、本発明の第１実施形態に係わる符号化装置の機能ブロック図である。
【図１１】図１１は、図１０に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図１２】図１２は、図１０に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図１３】図１３は、図１０に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図１４】図１４は、図１０に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図１５】図１５は、図１０に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図１６】図１６は、図１０に示す動きベクトル生成回路における動きベクトルの生成処理のフローチャートである。
【図１７】図１７は、図１６に示すステップＳＴ６の処理を説明するためのフローチャートである。
【図１８】図１８は、図９に示す復号装置の機能ブロック図である。
【図１９】図１９は、本発明の第２実施形態の符号化装置における動きベクトル生成処理を説明するための図である。
【図２０】図２０は、本発明の第３実施形態に係わる符号化装置の機能ブロック図である。
【図２１】図２１は、図２０に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図２２】図２２は、図２０に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図２３】図２３は、図２０に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図２４】図２４は、図２０に示す動きベクトル生成回路における動きベクトルの生成処理のフローチャートである。
【図２５】図２５は、図２０に示す動きベクトル生成回路における動きベクトルの生成処理の図２４の続きのフローチャートである。
【図２６】図２６は、本発明の第３実施形態の復号装置の機能ブロック図である。
【図２７】図２７は、本発明の第４実施形態の符号化装置を説明するための図である。
【図２８】図２８は、本発明の第５実施形態を説明するための図である。
【図２９】図２９は、本発明の第６実施形態を説明するための図である。
【符号の説明】
１…通信システム、２…符号化装置、３…復号装置、２２…Ａ／Ｄ変換回路、２３…画面並べ替え回路、２４…演算回路、２５…直交変換回路、２６…量子化回路、２７…可逆符号化回路、２８…バッファ、２９…逆量子化回路、３０…逆直交変換回路、３１…フレームメモリ、３２…レート制御回路、３４，１３４…動きベクトル生成回路、３６…動き予測・補償回路、７１…バッファ、７２…可逆復号化回路、７３…逆量子化回路、７４…逆直交変換回路、７５…演算回路、７６…画像並べ替え回路、７７…Ｄ／Ａ変換回路、７８…フレームメモリ、２０１…画像補間装置、２３１…フレームメモリ、２５０…補間画像生成回路、２５１…遅延バッファ、２５２…セレクタ、２５３…動き予測回路
【図１】
2004165816.tif 000013
【図２】
2004165816.tif 000014
【図３】
2004165816.tif 000015
【図４】
2004165816.tif 000016
【図５】
2004165816.tif 000017
【図６】
2004165816.tif 000018
【図７】
2004165816.tif 000019
【図８】
2004165816.tif 000020
【図９】
2004165816.tif 000021
【図１０】
2004165816.tif 000022
【図１１】
2004165816.tif 000023
【図１２】
2004165816.tif 000024
【図１３】
2004165816.tif 000025
【図１４】
2004165816.tif 000026
【図１５】
2004165816.tif 000027
【図１６】
2004165816.tif 000028
【図１７】
2004165816.tif 000029
【図１８】
2004165816.tif 000030
【図１９】
2004165816.tif 000031
【図２０】
2004165816.tif 000032
【図２１】
2004165816.tif 000033
【図２２】
2004165816.tif 000034
【図２３】
2004165816.tif 000035
【図２４】
2004165816.tif 000036
【図２５】
2004165816.tif 000037
【図２６】
2004165816.tif 000038
【図２７】
2004165816.tif 000039
【図２８】
2004165816.tif 000040
【図２９】
2004165816.tif 000041