(57)【要約】【課題】符号化効率も良く、かつ動きの激しい画像などを符号化する場合でも画質が劣化しないような動画像符号化のための動きベクトル検出方法を求めること。【解決手段】処理対象画像データに基づいて、マクロブロックの動きベクトルを検出し、マクロブロックを分割したブロックの動きベクトルを順次検出し、ブロックの動きベクトルに対応する差分の累積和を求め、マクロブロックの動きベクトルに対応する差分とブロックの動きベクトルに対応する差分の累積和と所定の閾値とに応じて、マクロブロックの動きベクトルあるいは順次検出した複数のブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用する。【選択図】図２
2007274366.tif 000002
【特許請求の範囲】
【請求項１】
マクロブロックの動きベクトルを検出し、該動きベクトルに対応する差分を求めるマクロブロック動きベクトル検出部と、
処理対象の前記マクロブロックを複数に分割し、分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出するブロック動きベクトル検出部と、
前記ブロック動きベクトル検出部が順次検出する動きベクトルに対応する差分の累積和を演算する差分累積和演算部と、
動きベクトル検出制御部と、
閾値記憶部を備え、
前記動きベクトル検出制御部は、前記マクロブロック動きベクトル検出部が検出する動きベクトルに対応する差分と、前記差分累積和演算部が演算する差分の累積和と、前記閾値記憶部に設定された閾値に基づいて、前記マクロブロック動きベクトル検出部が検出する動きベクトル、あるいは前記ブロック動きベクトル検出部が検出する複数の動きベクトルを動画像符号化に使用する動きベクトルとして採用すること
を特徴とする動画像符号化装置。
【請求項２】
現在処理中の画像フレームである現フレームが格納される現フレーム記憶部と、現フレームの符号化のために参照される画像フレームである参照フレームが格納される参照フレーム記憶部と、現フレームのマクロブロックうち処理中のマクロブロックが格納される処理中マクロブロック記憶部を備え、
前記マクロブロック動きベクトル検出部は、第１差分演算処理部とマクロブロック差分記憶部を含み、
前記第１差分演算処理部は、前記処理中マクロブロック記憶部に記憶されたマクロブロックと、前記参照フレーム記憶部に格納された参照フレームの探索範囲内の１６ｘ１６画素の領域との差分として差分二乗和を順次計算して差分二乗和の最も小さい領域を求めることにより動きベクトルを求め、そのもっとも小さい差分二乗和の値を前記マクロブロック差分記憶部に設定し、
前記ブロック動きベクトル検出部は、第２差分演算処理部とブロック差分記憶部を含み、また前記差分累積和演算部は累積加算部とブロック差分累積和記憶部を含み、
前記第２差分演算処理部は、前記処理中マクロブロック記憶部に記憶されたマクロブロックを複数のブロックに分割し、ブロック毎に前記参照フレーム記憶部に格納された参照フレームの探索範囲内のブロックとの差分二乗和を順次計算して最小となる差分二乗和を前記ブロック差分記憶部に記憶しながら該ブロックの動きベクトルを検出し、該ブロックの動きベクトルが検出されるごとに、前記ブロック差分記憶部に記憶された該動きベクトルに対応する前記参照フレーム中のブロックとの差分二乗和を前記累積加算部に入力し、
前記累積加算部は、該入力される差分二乗和と前記ブロック差分累積和記憶部に記憶されたブロック差分累積和の和を新たなブロック差分累積和として前記ブロック差分累積和記憶部に記憶し、
前記閾値記憶部には第１の閾値と第２の閾値が記憶され、
前記動きベクトル検出制御部は、前記マクロブロック差分記憶部に設定された差分二乗和と前記閾値記憶部に設定された第１の閾値を比較し、該差分二乗和が前記第１の閾値よりも大きくなければ、前記第１の差分演算処理部が検出した動きベクトルを採用し、前記比較において、前記差分二乗和が前記第１の閾値よりも大きければ、前記第２差分演算処理部の動作を開始させ、該第２差分演算処理部がマクロブロックを分割したブロックについての動きベクトルを検出するごとに、前記ブロック差分累積和記憶部に記憶されたブロック差分累積和を前記マクロブロック差分記憶部に記憶された差分二乗和から引き算し、該引き算結果の差分を前記閾値記憶部に設定された第２の閾値と比較し、該差分が前記第２の閾値よりも大きくなければ、前記第１の差分演算処理部が検出した動きベクトルを採用し、すべてのブロックについての差分二乗和の累積和により前記引き算結果の差分を計算しても、該差分が前記第２の閾値より大きい場合には、前記第２差分演算処理部が検出したすべてのブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用すること
を特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
動画像符号化のための動きベクトル検出方法において、
マクロブロックの動きベクトルを検出するとともに該マクロブロックの動きベクトルに対応する差分を求め、
処理対象の前記マクロブロックを複数に分割し、
分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出し、
前記順次検出される動きベクトルに対応する差分の累積和を演算し、
前記マクロブロックの動きベクトルに対応する差分と、前記差分の累積和と、所定の閾値に基づいて、前記マクロブロックの動きベクトル、あるいは前記分割した各ブロックについての複数の動きベクトルを動画像符号化に使用する動きベクトルとして採用すること
を特徴とする動きベクトル検出方法。
【請求項４】
前記所定の閾値は、第１の閾値と第２の閾値であり、
前記マクロブロックの動きベクトルに対応する差分が前記第１の閾値より大きくなければ該マクロブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用し、
前記マクロブロックの動きベクトルに対応する差分が前記第１の閾値より大きい場合には、前記順次検出されるブロックの動きベクトルに対応する差分の累積和を演算する毎に、該差分の累積和を前記マクロブロックの動きベクトルに対応する差分から引き算し、該引き算結果の差分を前記第２の閾値と比較し、
該差分が前記第２の閾値よりも大きくなければ、前記マクロブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用し、
すべてのブロックについての差分の累積和により前記引き算結果の差分を計算しても、該差分が前記第２の閾値より大きい場合には、該すべてのブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用することを特徴とする請求項３に記載の動きベクトル検出方法。
【請求項５】
処理対象のマクロブロックを複数のブロックに分割し、
分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出し、
前記順次検出されるブロックの動きベクトルに対応する差分の累積和を演算し、
該順次演算される差分の累積和を所定の閾値と比較し、
前記差分の累積和が前記所定の閾値よりも大きければ、前記マクロブロックの動きベクトルを検出して動画像符号化に使用する動きベクトルとして採用し、
すべてのブロックについての差分の累積和を計算しても、該差分の累積和が前記所定の閾値より大きくなければ、前記すべてのブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用することを特徴とする請求項３に記載の動きベクトル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動画像符号化装置に関し、特に、ＭＰＥＧ−4エンコーダにおける動きベクトル検出方法に関する。
【背景技術】
【０００２】
動画像符号化の標準規格として、ＭＰＥＧ−4が制定されており、その規格に則って動画像の符号化を行う小型高性能なＭＰＥＧ−４エンコーダが製品化されている。今日では、図６に示すように、ＭＰＥＧ−４エンコーダを搭載することにより動画像を録画可能な機器が増加している。そして録画された動画像データを、ネットワークあるいはメモリカード等の記録媒体を介して従来の規格より高効率かつ高品質で再生側に送信することができるようになってきている。
【０００３】
ＭＰＥＧ−4に限らず、動画像の符号化では、情報量の圧縮のため、画像フレーム間の相関を利用して時間方向の冗長性を削減している。そのため、下記特許文献に記載されているように、１６×１６画素の領域(マクロブロック)あるいはその領域を分割した８×８画素の領域(ブロック)毎に動きベクトルの検出が行われており、検出された動きベクトルのデータを利用することにより符号化に要する情報量を圧縮している。
【０００４】
動画像の現フレームのデータは、動きベクトルのデータと参照フレームとの差分データとして符号化される。そして、伝送速度あるいは利用できるバンド幅が一定であれば、動きベクトル用のデータ量と差分データ用のデータ量の合計は一定となるので、両者は、動きベクトルの符号化のデータ量が増えると、差分データの符号化に使えるデータ量が減る関係にある。
【特許文献１】特開２００５−２７８１５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
動画像符号化時の動きベクトル検出において、マクロブロック毎に１個の動きベクトルを検出して使用すると、ベクトル分として使用するビット数が減り、符号化効率が良くなる場合が多い。しかし、動きの激しい画像や、画像の絵柄の細かい画像を符号化する場合には、細かい動きを表現することが難しいため、画質が劣化する。
【０００６】
したがって、本発明の目的は、符号化効率も良く、かつ動きの激しい画像などを符号化する場合でも画質が劣化しないような動きベクトル検出手段を実現することである。
【課題を解決するための手段】
【０００７】
本発明の動画像符号化のための動きベクトル検出方法によれば、マクロブロックの動きベクトルを検出するとともに該マクロブロックの動きベクトルに対応する差分を求め、処理対象のマクロブロックを複数に分割し、分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出し、順次検出される動きベクトルに対応する差分の累積和を演算し、マクロブロックの動きベクトルに対応する差分と、前記差分の累積和と、所定の閾値に基づいて、マクロブロックの動きベクトル、あるいは分割した各ブロックについての複数の動きベクトルを動画像符号化に使用する動きベクトルとして採用する。
【０００８】
また、本発明によれば、動画像符号化装置に、マクロブロックの動きベクトルを検出し、動きベクトルに対応する差分を求めるマクロブロック動きベクトル検出部と、処理対象のマクロブロックを複数に分割し、分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出するブロック動きベクトル検出部と、ブロック動きベクトル検出部が順次検出する動きベクトルに対応する差分の累積和を演算する差分累積和演算部と、動きベクトル検出制御部と、閾値記憶部を設け、動きベクトル検出制御部は、マクロブロック動きベクトル検出部が検出する動きベクトルに対応する差分と、差分累積和演算部が演算する差分の累積和と、閾値記憶部に設定された閾値に基づいて、マクロブロック動きベクトル検出部が検出する動きベクトル、あるいはブロック動きベクトル検出部が検出する複数の動きベクトルを動画像符号化に使用する動きベクトルとして採用するようにする。
【０００９】
さらに本発明は、上記動画像符号化装置をコンピュータとして実装し、そのコンピュータに上記動画像符号化のための動きベクトル検出方法を実行させるプログラムとしての面を有する。
【発明の効果】
【００１０】
本発明によれば、１６×１６画素のマクロブロックに対する動きベクトルと、マクロブロックを分割したブロックに対する動きベクトルを動画像列に応じて動画像符号化に使用する動きベクトルとして採用することができるので、通常の画像ではマクロブロックに１つの動きベクトルを採用することで符号化効率を高くし、動きの激しい画像や、画像の絵柄の細かい画像を符号化する場合には、１つのマクロブロックに対して複数の動きベクトルを使うことにより、画質の劣化も避けることができる。
【発明を実施するための最良の形態】
【００１１】
図１に示すのは、本発明によるＭＰＥＧ−4エンコーダの機能ブロック図である。符号化対象の動画像は入力画像メモリ21に入力され、1フレーム内の画素データのみで符号化されるものはそのままＤＣＴ変換部31に入力される。参照フレームメモリ22に格納されている参照フレームの画素データを利用して符号化されるものは、動きベクトル検出部10で動きベクトルが検出され、その動きベクトルを使用して動き補償部11で動き補償された画像フレームとの差分が差分演算部81で演算されてＤＣＴ変換部31に入力される。
【００１２】
本発明の動きベクトル検出方法においては、マクロブロック差分メモリ23に記憶される１６×１６画素単位の差分二乗和に加えて、ブロック差分累積和メモリ24に記憶される８×８画素単位の差分二乗和の和（累積和）が用いられる。
【００１３】
動きベクトル検出以外の部分は従来のものと同じであり、ＤＣＴ変換部31では時間領域のデータを周波数領域のデータに変換し、その周波数領域の係数データは、量子化部41で量子化され、一方ではＡＣ／ＤＣ予測部50を介したものを含めて可変長符号化部60に入力されて最終出力であるビットストリームが例えばビットストリームメモリ26に格納される。また他方では、前記量子化されたデータは、逆量子化部42、逆ＤＣＴ変換部32を経て逆変換され、動き補償データと加算部82で加算されてフレームメモリ25に記憶され、動き補償部11での動き補償等に用いられる。
【００１４】
ビットストリームの情報はレート制御部70にフィードバックされ、量子化部41と逆量子化部42のレート制御に用いられる。
図２は、本発明の動画像符号化装置における動きベクトル検出部分の機能ブロック図であり、本発明の原理を説明するものである。図１に示したＭＰＥＧ−4エンコーダの機能ブロック図と比較すると、図１の入力画像メモリ21、参照フレームメモリ22は、図２の処理対象画像データ記憶部100に含めることができる。もちろん、入力画像メモリ21と参照フレームメモリ22を直接用いるのではなく、それぞれ数フレーム分の容量を持つバッファを用いることもできる。また、図２のマクロブロック動きベクトル検出部200、ブロック動きベクトル検出部300、差分累積和演算部400、動きベクトル検出制御部500、及び閾値記憶部600は、図１の動きベクトル検出部に相当する。マクロブロック動きベクトル検出部200は図２のマクロブロック差分メモリ23を含み、差分累積和演算部400は図１のブロック差分累積和メモリ24を含む。
【００１５】
処理対象画像データ記憶部100には、符号化処理対象の現フレームとその参照フレームの画像データが格納されている。マクロブロック動きベクトル検出部200は、処理対象画像データ記憶部100に格納された画像データに基づいて、参照フレームのマクロブロックと最も差分の小さいマクロブロックの動きベクトルを検出する。マクロブロックの動きベクトルの検出手法には各種のものが存在するが、本発明は、それらのマクロブロックの動きベクトルの検出手法のうちある特定のものに限定されるものではない。
【００１６】
ブロック動きベクトル検出部300は、処理対象のマクロブロックを複数に分割し、分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出する。マクロブロックを分割したブロックの動きベクトルの検出手法にも各種のものが存在するが、マクロブロックの場合と同様に、本発明は、ブロックの動きベクトルの検出手法のうちある特定のものに限定されるものではない。
【００１７】
差分累積和演算部400は、ブロック動きベクトル検出部300が順次検出する動きベクトルに対応する差分の累積和を演算する。
動きベクトル検出制御部500は、マクロブロック動きベクトル検出部200が検出する動きベクトルに対応する差分と、差分累積和演算部400が演算する差分の累積和と、閾値記憶部に設定された閾値に基づいて、マクロブロック動きベクトル検出部200が検出する動きベクトル、あるいはブロック動きベクトル検出部300が検出する複数の動きベクトルを動画像符号化に使用する動きベクトルとして採用する。
【００１８】
図３に示すのは、図２に示した機能ブロックのより具体的な構成例である。図３の現フレーム記憶部110、処理中マクロブロック記憶部120、参照フレーム記憶部130が図２の処理対象データ記憶部100を構成する。図３の第１差分演算処理部210、マクロブロック差分記憶部220は、マクロブロック動きベクトル検出部200を構成する。第２差分演算処理部310、ブロック差分記憶部320はブロック動きベクトル検出部300を構成し、累積加算部410、ブロック差分累積和記憶部420は差分累積和演算部400を構成する。
【００１９】
以下、図３〜６を参照して本発明の実施例を説明する。
図３の現フレーム記憶部110には図４に示す現フレーム、すなわち現在処理中の画像フレームが格納される。また、参照フレーム記憶部130には、図４に示す参照フレーム、すなわち現フレームの符号化のために参照される画像フレームが格納される。処理中マクロブロック記憶部120には、現フレーム中の１６ｘ１６画素の領域であるマクロブロックのうち、現在処理中のマクロブロックが記憶される。
【００２０】
第１差分演算処理部210は、マクロブロック単位の動きベクトル検出を実施する部分であり、処理中マクロブロック記憶部120に記憶されたマクロブロックと、参照フレーム記憶部130に格納された参照フレームの探索範囲内の１６ｘ１６画素の領域との差分として差分二乗和を順次計算し、差分二乗和の最も小さい領域を求めることにより動きベクトルを求める。そして、そのもっとも小さい差分二乗和の値をマクロブロック差分記憶部220に設定する。第１差分演算処理部210は、始めの演算で得られた差分二乗和をマクロブロック差分記憶部220に記憶した後、引き続き差分二乗和を演算するごとにその演算結果とマクロブロック差分記憶部220に記憶された値とを比較し、小さいほうをマクロブロック差分記憶部220に記憶することで、最も小さい差分二乗和の値をマクロブロック差分記憶部220に設定することができる。
【００２１】
第２差分演算処理部310は、処理中マクロブロック記憶部120に記憶された現在処理中のマクロブロックを図５に示すように４つのブロックＢ１、Ｂ２、Ｂ３、Ｂ４に分割し、ブロック毎に参照フレーム記憶部130に格納された参照フレームの探索範囲内の８ｘ８画素の領域との差分二乗和を順次計算して差分二乗和が最小となる動きベクトルＭＶ１、ＭＶ２、ＭＶ３、ＭＶ４を検出する。動きベクトルが検出されるごとに対応する参照フレーム中のブロックとの差分二乗和がブロック差分記憶部320に記憶され、その値は累積加算部410に入力される。第２差分演算処理部310がブロック差分記憶部320を用いて動きベクトルを求めるには、上述した第１差分演算処理部210がマクロブロック差分記憶部220を用いて動きベクトルを求める手法と同様な手法が採用できる。
【００２２】
累積加算部410とブロック差分累積和記憶部420により、動きベクトルＭＶ１、ＭＶ２、ＭＶ３、ＭＶ４を求めたときの差分二乗和の累積和がブロック差分累積和記憶部420に順次求められる。
【００２３】
動きベクトル検出制御部500は、マクロブロック差分記憶部220に設定された差分二乗和と、閾値設定部700により閾値記憶部600に設定された第１の閾値Ｘを比較し、その差分二乗和が第１の閾値Ｘよりも大きくなければ、すなわちその差分二乗値が充分小さければ、第１の差分演算処理部210が検出した動きベクトルを符号化処理のために採用する。
【００２４】
上記比較において、差分二乗和が第１の閾値Ｘよりも大きければ、第２差分演算処理部310の動作を開始させる。そして、第２差分演算処理部310がマクロブロックを分割したブロックについての動きベクトルを検出するごとに、それまでの差分二乗和の累積和、すなわちブロック差分累積和記憶部420に記憶された値をマクロブロック差分記憶部220に記憶された値から引き算し、その差分と閾値記憶部600に設定された第２の閾値Ｙを比較する。比較の結果その差分が第２の閾値Ｙよりも大きくなければ、言い換えれば、ブロックの差分二乗和の累積和が充分に小さくなければ、その段階で第２差分演算処理部310での処理を終了し、第１の差分演算処理部210が検出した動きベクトルを符号化処理のために採用する。
【００２５】
すべてのブロックについての差分二乗和の累積和により上記差分を計算しても、その差分が第２の閾値より大きい場合には、第２差分演算処理部310が検出したすべてのブロックの動きベクトルを符号化処理のために採用する。
【００２６】
動きベクトル検出制御部500は、上記説明した処理のほか、各種初期設定等、動きベクトル検出に必要なその他の処理を実行する。
なお、１つのマクロブロックに複数個の動きベクトルを使用すると、動きの激しい画像等で画質の劣化を防ぐことができるが、しかし、動きベクトル１個の場合と比較して符号化効率が下がり、画質が逆に劣化する場合がある。したがって、上記第１の閾値と第２の閾値は例えばプログラムパラメータとして可変とし、画質をチューニングできるようにして画質と符号化効率のトレードオフを可能にすることが好ましい。
【００２７】
そのために、図３に記載した実施例では閾値設定部700が設けられている。閾値設定部700により閾値記憶部に設定された閾値の設定変更を可能としている。閾値設定の具体的手段としては、閾値をプログラムパラメータとし、外部から入力された閾値を用いる方法や、動きベクトル検出制御部での動きベクトル検出の実行結果に応じてダイナミックに閾値を設定する方法を採用することができる。
【００２８】
次に、図６に、本発明の動きベクトル検出処理フローを示す。
ステップＳ１０は、上述の第１差分演算処理部210での処理に相当するものである。また、ステップＳ５０及びステップＳ６０は、第２差分演算処理部310と累積加算部410での処理に相当する。そして、その他のステップは動きベクトル検出制御部500による制御に相当する部分である。
【００２９】
まず、ステップＳ１０で、１６ｘ１６画素単位の差分二乗和が最小となる動きベクトルを検出し、その１６ｘ１６画素単位の差分二乗和を求める。ステップＳ２０で、その１６ｘ１６画素単位の差分二乗和が閾値Ｘよりも大きいか判定し、大きくなければステップＳ９０に分岐してステップＳ１０で検出した動きベクトルを符号化のための動きベクトルとして採用する。ステップＳ２０での判定がイエスであれば、ステップＳ３０でマクロブロックを分割した複数のブロックに付与したインデックスに初期値を設定し、ステップＳ４０〜ステップＳ８０の処理を順次繰り返し実行する。
【００３０】
ステップＳ４０ではすべてのブロックについての処理が終了したか判定する。終了していなければ、ステップＳ５０で８ｘ８画素単位のブロックの差分二乗和が最小となる動きベクトルを検出してその差分二乗和を求め、ステップＳ６０で、ステップＳ５０で求めた動きベクトルに対応する差分二乗和の累積和を求める。
【００３１】
ステップＳ７０では、ステップＳ１０で求めた差分二乗和からステップＳ６０で求めた累積和を引いた値と閾値Ｙとを比較し、閾値Ｙが引き算した値より小さければインデックスを更新してステップＳ４０に戻る。閾値Ｙが引き算した値より小さくなければ、ステップＳ９０に分岐する。
【００３２】
ステップＳ４０での判定が、すべてのブロックについての処理が終了したという場合は、ステップＳ１００に分岐し、ステップＳ５０で検出した動きベクトル４本を、動きベクトルを符号化のための動きベクトルとして採用する。
【００３３】
なお、図３に示した各演算処理部や制御部等は個別のハードウェアを有する部分として構成することもできるし、１つ以上のＣＰＵを備えた一まとまりのシステムであるコンピュータとして構成することもできる。また、ＭＰＥＧ−4エンコーダ全体を構成するハードウェア上に構成することも可能である。いずれの場合においても、ハードウェアとソフトウェアの組み合わせなど、当業者にとって、本発明を具体的にどのような構成で実現するかは、本明細書に開示された事項を基に、種々選択可能な事項である。
【００３４】
そして、上記実施例の説明においては、マクロブロックの動きベクトルを検出してから該マクロブロックを分割したブロックについての動きベクトルを検出しているが、ハードウェアを増強することにより、両方の動きベクトルの検出を並列化できることは当業者に明らかである。
【００３５】
また、最初にマクロブロックを分割したブロックについての動きベクトルを順次検出していき、累積差分和が一定の閾値を超えなければ該ブロックについての複数の動きベクトルを採用し、累積差分和が一定の閾値を越えたならばマクロブロック分割を打ち切り、マクロブロックの動きベクトル検出に切り替えるように動きベクトル検出制御部が制御することも可能である。
【００３６】
さらに、マクロブロックの動きベクトルが採用される頻度とそれを分割したブロックの動きベクトルが採用される頻度等により、どちらの動きベクトル検出を先に実行するかを切り替える処理を行うことも可能である。それらの場合も、所定の閾値を、プログラムパラメータとするなど、修正可能とすることができる。
【００３７】
(付記１)
マクロブロックの動きベクトルを検出し、該動きベクトルに対応する差分を求めるマクロブロック動きベクトル検出部と、
処理対象の前記マクロブロックを複数に分割し、分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出するブロック動きベクトル検出部と、
前記ブロック動きベクトル検出部が順次検出する動きベクトルに対応する差分の累積和を演算する差分累積和演算部と、
動きベクトル検出制御部と、
閾値記憶部を備え、
前記動きベクトル検出制御部は、前記マクロブロック動きベクトル検出部が検出する動きベクトルに対応する差分と、前記差分累積和演算部が演算する差分の累積和と、前記閾値記憶部に設定された閾値に基づいて、前記マクロブロック動きベクトル検出部が検出する動きベクトル、あるいは前記ブロック動きベクトル検出部が検出する複数の動きベクトルを動画像符号化に使用する動きベクトルとして採用すること
を特徴とする動画像符号化装置。
(付記２)
現在処理中の画像フレームである現フレームが格納される現フレーム記憶部と、現フレームの符号化のために参照される画像フレームである参照フレームが格納される参照フレーム記憶部と、現フレームのマクロブロックうち処理中のマクロブロックが格納される処理中マクロブロック記憶部を備え、
前記マクロブロック動きベクトル検出部は、第１差分演算処理部とマクロブロック差分記憶部を含み、
前記第１差分演算処理部は、前記処理中マクロブロック記憶部に記憶されたマクロブロックと、前記参照フレーム記憶部に格納された参照フレームの探索範囲内の１６ｘ１６画素の領域との差分として差分二乗和を順次計算して差分二乗和の最も小さい領域を求めることにより動きベクトルを求め、そのもっとも小さい差分二乗和の値を前記マクロブロック差分記憶部に設定し、
前記ブロック動きベクトル検出部は、第２差分演算処理部とブロック差分記憶部を含み、また前記差分累積和演算部は累積加算部とブロック差分累積和記憶部を含み、
前記第２差分演算処理部は、前記処理中マクロブロック記憶部に記憶されたマクロブロックを複数のブロックに分割し、ブロック毎に前記参照フレーム記憶部に格納された参照フレームの探索範囲内のブロックとの差分二乗和を順次計算して最小となる差分二乗和を前記ブロック差分記憶部に記憶しながら該ブロックの動きベクトルを検出し、該ブロックの動きベクトルが検出されるごとに、前記ブロック差分記憶部に記憶された該動きベクトルに対応する前記参照フレーム中のブロックとの差分二乗和を前記累積加算部に入力し、
前記累積加算部は、該入力される差分二乗和と前記ブロック差分累積和記憶部に記憶されたブロック差分累積和の和を新たなブロック差分累積和として前記ブロック差分累積和記憶部に記憶し、
前記閾値記憶部には第１の閾値と第２の閾値が記憶され、
前記動きベクトル検出制御部は、前記マクロブロック差分記憶部に設定された差分二乗和と前記閾値記憶部に設定された第１の閾値を比較し、該差分二乗和が前記第１の閾値よりも大きくなければ、前記第１の差分演算処理部が検出した動きベクトルを採用し、前記比較において、前記差分二乗和が前記第１の閾値よりも大きければ、前記第２差分演算処理部の動作を開始させ、該第２差分演算処理部がマクロブロックを分割したブロックについての動きベクトルを検出するごとに、前記ブロック差分累積和記憶部に記憶されたブロック差分累積和を前記マクロブロック差分記憶部に記憶された差分二乗和から引き算し、該引き算結果の差分を前記閾値記憶部に設定された第２の閾値と比較し、該差分が前記第２の閾値よりも大きくなければ、前記第１の差分演算処理部が検出した動きベクトルを採用し、すべてのブロックについての差分二乗和の累積和により前記引き算結果の差分を計算しても、該差分が前記第２の閾値より大きい場合には、前記第２差分演算処理部が検出したすべてのブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用すること
を特徴とする付記１に記載の動画像符号化装置。
(付記３)
前記第１の閾値あるいは第２の閾値を設定する閾値設定部を有することを特徴とする付記２に記載の動画像符号化装置。
(付記４)
動画像符号化のための動きベクトル検出方法において、
マクロブロックの動きベクトルを検出するとともに該マクロブロックの動きベクトルに対応する差分を求め、
処理対象の前記マクロブロックを複数に分割し、
分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出し、
前記順次検出される動きベクトルに対応する差分の累積和を演算し、
前記マクロブロックの動きベクトルに対応する差分と、前記差分の累積和と、所定の閾値に基づいて、前記マクロブロックの動きベクトル、あるいは前記分割した各ブロックについての複数の動きベクトルを動画像符号化に使用する動きベクトルとして採用すること
を特徴とする動きベクトル検出方法。
(付記５)
前記所定の閾値は設定変更が可能であることを特徴とする付記４に記載の動きベクトル検出方法。
(付記６)
前記所定の閾値は、第１の閾値と第２の閾値であり、
前記マクロブロックの動きベクトルに対応する差分が前記第１の閾値より大きくなければ該マクロブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用し、
前記マクロブロックの動きベクトルに対応する差分が前記第１の閾値より大きい場合には、前記順次検出されるブロックの動きベクトルに対応する差分の累積和を演算する毎に、該差分の累積和を前記マクロブロックの動きベクトルに対応する差分から引き算し、該引き算結果の差分を前記第２の閾値と比較し、
該差分が前記第２の閾値よりも大きくなければ、前記マクロブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用し、
すべてのブロックについての差分の累積和により前記引き算結果の差分を計算しても、該差分が前記第２の閾値より大きい場合には、該すべてのブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用することを特徴とする付記４に記載の動きベクトル検出方法。
(付記７)
前記第１の閾値と第２の閾値は設定変更が可能であることを特徴とする付記６に記載の動きベクトル検出方法。
(付記８)
処理対象のマクロブロックを複数のブロックに分割し、
分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出し、
前記順次検出されるブロックの動きベクトルに対応する差分の累積和を演算し、
該順次演算される差分の累積和を所定の閾値と比較し、
前記差分の累積和が前記所定の閾値よりも大きければ、前記マクロブロックの動きベクトルを検出して動画像符号化に使用する動きベクトルとして採用し、
すべてのブロックについての差分の累積和を計算しても、該差分の累積和が前記所定の閾値より大きくなければ、前記すべてのブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用することを特徴とする付記４に記載の動きベクトル検出方法。
(付記９)
前記所定の閾値は設定変更が可能であることを特徴とする付記８に記載の動きベクトル検出方法。
(付記１０)
コンピュータに動画像符号化のための動きベクトル検出を実行させるためプログラムにおいて、
コンピュータに、
マクロブロックの動きベクトルを検出するとともに該マクロブロックの動きベクトルに対応する差分を求めるマクロブロック動きベクトル検出ステップと、
処理対象の前記マクロブロックを複数に分割するステップと、
分割した各ブロックについて、参照フレームのブロックと最も差分の小さい動きベクトルを順次検出するブロック動きベクトル検出ステップと、
前記ブロック動きベクトル検出ステップにおいて順次検出されるブロックの動きベクトルに対応する差分の累積和を演算する累積和演算ステップと、
前記マクロブロック動きベクトル検出ステップで求められたマクロブロックの動きベクトルに対応する差分と、前記累積和演算ステップで演算された差分の累積和と、所定の閾値に基づいて、前記マクロブロック動きベクトル検出ステップで検出されたマクロブロックの動きベクトル、あるいは前記ブロック動きベクトル検出ステップで検出された各ブロックについての複数の動きベクトルを動画像符号化に使用する動きベクトルとして採用する動きベクトル採用ステップ
を実行させることを特徴とするプログラム。
(付記１１)
前記所定の閾値はプログラムパラメータであることを特徴とする付記１０に記載のプログラム。
(付記１２)
前記コンピュータは、現在処理中の画像フレームである現フレームが格納される現フレーム記憶部と、現フレームの符号化のために参照される画像フレームである参照フレームが格納される参照フレーム記憶部と、現フレームのマクロブロックうち処理中のマクロブロックが格納される処理中マクロブロック記憶部と、マクロブロック差分記憶部と、ブロック差分記憶部と、ブロック差分累積和記憶部と、第１の閾値と第２の閾値が記憶された閾値記憶部を備え、
前記マクロブロック動きベクトル検出ステップは、前記処理中マクロブロック記憶部に記憶されたマクロブロックと、前記参照フレーム記憶部に格納された参照フレームの探索範囲内の１６ｘ１６画素の領域との差分として差分二乗和を順次計算して差分二乗和の最も小さい領域を求めることにより動きベクトルを求め、そのもっとも小さい差分二乗和の値を前記マクロブロック差分記憶部に設定することで、マクロブロックの動きベクトルを検出するとともに該マクロブロックの動きベクトルに対応する差分を求めるものであり、
前記ブロック動きベクトル検出ステップは、ブロック毎に前記参照フレーム記憶部に格納された参照フレームの探索範囲内のブロックとの差分二乗和を順次計算して最小となる差分二乗和を前記ブロック差分記憶部に記憶しながら該ブロックの動きベクトルを検出するものであり、
前記累積和演算ステップは、前記ブロックの動きベクトルが検出されるごとに、前記ブロック差分記憶部に記憶された該動きベクトルに対応する前記参照フレーム中のブロックとの差分二乗和と前記ブロック差分累積和記憶部に記憶されたブロック差分累積和の和を新たなブロック差分累積和として前記ブロック差分累積和記憶部に記憶することにより、前記ブロック動きベクトル検出ステップにおいて順次検出されるブロックの動きベクトルに対応する差分の累積和を演算するものであり、
前記動きベクトル採用ステップは、前記マクロブロック差分記憶部に設定された差分二乗和と前記閾値記憶部に設定された第１の閾値を比較し、該差分二乗和が前記第１の閾値よりも大きくなければ、前記第１の差分演算処理部が検出した動きベクトルを動画像符号化に使用する動きベクトルとして採用し、前記比較において、前記差分二乗和が前記第１の閾値よりも大きければ、前記第２差分演算処理部の動作を開始させ、該第２差分演算処理部がマクロブロックを分割したブロックについての動きベクトルを検出するごとに、前記ブロック差分累積和記憶部に記憶されたブロック差分累積和を前記マクロブロック差分記憶部に記憶された差分二乗和から引き算し、該引き算結果の差分を前記閾値記憶部に設定された第２の閾値と比較し、該差分が前記第２の閾値よりも大きくなければ、前記第１の差分演算処理部が検出した動きベクトルを動画像符号化に使用する動きベクトルとして採用し、すべてのブロックについての差分二乗和の累積和により前記引き算結果の差分を計算しても、該差分が前記第２の閾値より大きい場合には、前記第２差分演算処理部が検出したすべてのブロックの動きベクトルを動画像符号化に使用する動きベクトルとして採用するものであることを特徴とする付記１０に記載のプログラム。
(付記１３)
前記第１の閾値と第２の閾値はプログラムパラメータであることを特徴とする付記１２に記載のプログラム。
【図面の簡単な説明】
【００３８】
【図１】本発明によるＭＰＥＧ−4エンコーダの機能ブロック図である。
【図２】本発明の動画像符号化装置における動きベクトル検出部分の機能ブロック図である。
【図３】図２に示した機能ブロックのより具体的な構成例である。
【図４】マクロブロック単位の動きベクトル検出を示す図である。
【図５】ブロック分割とブロック単位のベクトル検出を示す図である。
【図６】本発明の動きベクトル検出処理フローを示す図である。
【図７】ＭＰＥＧ−4エンコーダの使用される環境の例を示す図である。
【符号の説明】
【００３９】
１０  動きベクトル検出部
１１  動き補償部
２１  入力画像メモリ
２２  参照フレームメモリ
２３  マクロブロック差分メモリ
２４  ブロック差分累積和メモリ
２５  フレームメモリ
２６  ビットストリームメモリ
３１  ＤＣＴ変換部
３２  逆ＤＣＴ変換部
４１  量子化部
４２  逆量子化部
５０  ＡＣ／ＤＣ予測部
６０  可変長符号化部
７０  レート制御部
１００  処理対象画像データ記憶部
１１０  現フレーム記憶部
１２０  処理中マクロブロック記憶部
１３０  参照フレーム記憶部
２００  マクロブロック動きベクトル検出部
２１０  第１差分演算処理部
２２０  マクロブロック差分記憶部
３００  ブロック動きベクトル検出部
３１０  第２差分演算処理部
３２０  ブロック差分記憶部
４００  差分累積和演算部
４１０  累積加算部
４２０  ブロック差分累積和記憶部
５００  動きベクトル検出制御部
６００  閾値記憶部
７００  閾値設定部
【図１】
2007274366.tif 000003
【図２】
2007274366.tif 000004
【図３】
2007274366.tif 000005
【図４】
2007274366.tif 000006
【図５】
2007274366.tif 000007
【図６】
2007274366.tif 000008
【図７】
2007274366.tif 000009