(57)【要約】【課題】参照フレームとカレントフレームとで、対応する画素の差分レベルの少ない画素位置の画素を用いて、特徴量を算出する。【解決手段】ステップＳ１１１において、ＡＤＲＣコード、または、ビット反転されたＡＤＲＣコードが取得され、ステップＳ１１２において、画素位置テーブルが参照されて、ＡＤＲＣコードに対応する、対応するクラスタップのうち、カレントフレームと参照フレームとにおいて、差分レベルの最も小さな画素位置が選択される。ステップＳ１１３において、選択された画素位置に対応する画素の画素値の上位３ビットが抽出され、ステップＳ１１４において、コードＢおよびコードＣが算出される。本発明は、画像処理装置の動き検出部に適用できる。【選択図】      図２６
2004165837.tif 000002
【特許請求の範囲】
【請求項１】
第１のフレームの画像データから第１の特徴量を抽出する第１の特徴量抽出手段と、
前記第１のフレームより時間的に前のフレームである第２のフレームの画像データから第２の特徴量を抽出する第２の特徴量抽出手段と、
前記第２の特徴量抽出手段により抽出された前記第２の特徴量ごとに、対応する画素位置の情報を記憶する第１の記憶手段と、
前記記憶手段により記憶されている前記画素位置の情報のうち、前記第１の特徴量抽出手段により抽出された前記第１のフレームに含まれる注目画素の前記第１の特徴量と対応する前記第２の特徴量の前記画素位置の情報を検索する検索手段と
を備え、
前記第１の特徴量抽出手段および前記第２の特徴量抽出手段は、前記注目画素を含む所定のサイズのブロックのうち、前記第１のフレームと前記第２のフレームとで、レベル変動が少ない位置の情報を記憶する第２の記憶手段を備え、
前記第１の特徴量抽出手段は、前記第２の記憶手段により記憶されている情報を基に、前記レベル変動が少ない位置の画素値を基に生成された第１のコードを含む、前記第１の特徴量を抽出し、
前記第２の特徴量抽出手段は、前記第２の記憶手段により記憶されている情報を基に、前記レベル変動が少ない位置の画素値を基に生成された第２のコードを含む、前記第２の特徴量を抽出する
ことを特徴とする画像処理装置。
【請求項２】
前記第２の記憶手段は、前記注目画素を含む所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードに対応付けて、前記レベル変動が少ない位置の情報を記憶する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の特徴量抽出手段は、前記第１のコード、および、前記量子化コードを含む前記第１の特徴量を抽出し、
前記第２の特徴量抽出手段は、前記第２のコード、および、前記量子化コードを含む、前記第２の特徴量を抽出する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第２の特徴量抽出手段は、前記第１の特徴量抽出手段により抽出される前記第１の特徴量を含む、前記第１の特徴量より広範囲の特徴量を、前記第２の特徴量として抽出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記検索手段により検索された前記画素位置の情報のうち、前記第１のフレーム中の前記注目画素との距離が最小となる画素位置を検出し、検出された前記画素位置と、前記注目画素の画素位置の情報とを基に、動きベクトルを生成する動きベクトル生成手段
を更に備えることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
参照フレームの画素に関する情報を記憶する記憶手段を用いて、動きベクトルを検出する画像処理装置の画像処理方法において、
第１のフレームと、前記第１のフレームより時間的に前のフレームである第２のフレームとにおいて、レベル変動が少ない画素位置を取得する取得ステップと、
前記第１のフレームの画素のうち、前記取得ステップの処理により取得された前記レベル変動が少ない位置の画素を基に生成された第１のコードを含む第１の特徴量を抽出する第１の特徴量抽出ステップと、
前記第２のフレームの画素のうち、前記取得ステップの処理により取得された前記レベル変動が少ない位置の画素を基に生成された第２のコードを含む第２の特徴量を抽出する第２の特徴量抽出ステップと、
前記第２の特徴量抽出ステップの処理により抽出された前記第２の特徴量ごとに、対応する画素位置の情報を前記記憶手段に記憶する処理を制御する記憶制御ステップと、
前記記憶制御ステップの処理により記憶が制御されている前記画素位置の情報のうち、前記第１の特徴量抽出ステップの処理により抽出された前記第１のフレームに含まれる注目画素の前記第１の特徴量と対応する前記第２の特徴量の前記画素位置の情報を検索する検索ステップと
を含むことを特徴とする画像処理方法。
【請求項７】
参照フレームの画素に関する情報を記憶する記憶手段を用いて、動きベクトルを検出する処理を実行させるプログラムであって、
第１のフレームと、前記第１のフレームより時間的に前のフレームである第２のフレームとにおいて、レベル変動が少ない画素位置を取得する取得ステップと、
前記第１のフレームの画素のうち、前記取得ステップの処理により取得された前記レベル変動が少ない位置の画素を基に生成された第１のコードを含む第１の特徴量を抽出する第１の特徴量抽出ステップと、
前記第２のフレームの画素のうち、前記取得ステップの処理により取得された前記レベル変動が少ない位置の画素を基に生成された第２のコードを含む第２の特徴量を抽出する第２の特徴量抽出ステップと、
前記第２の特徴量抽出ステップの処理により抽出された前記第２の特徴量ごとに、対応する画素位置の情報を前記記憶手段に記憶する処理を制御する記憶制御ステップと、
前記記憶制御ステップの処理により記憶が制御されている前記画素位置の情報のうち、前記第１の特徴量抽出ステップの処理により抽出された前記第１のフレームに含まれる注目画素の前記第１の特徴量と対応する前記第２の特徴量の前記画素位置の情報を検索する検索ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項８】
参照フレームの画素に関する情報を記憶する記憶手段を用いて、動きベクトルを検出する処理を実行させるプログラムであって、
第１のフレームと、前記第１のフレームより時間的に前のフレームである第２のフレームとにおいて、レベル変動が少ない画素位置を取得する取得ステップと、
前記第１のフレームの画素のうち、前記取得ステップの処理により取得された前記レベル変動が少ない位置の画素を基に生成された第１のコードを含む第１の特徴量を抽出する第１の特徴量抽出ステップと、
前記第２のフレームの画素のうち、前記取得ステップの処理により取得された前記レベル変動が少ない位置の画素を基に生成された第２のコードを含む第２の特徴量を抽出する第２の特徴量抽出ステップと、
前記第２の特徴量抽出ステップの処理により抽出された前記第２の特徴量ごとに、対応する画素位置の情報を前記記憶手段に記憶する処理を制御する記憶制御ステップと、
前記記憶制御ステップの処理により記憶が制御されている前記画素位置の情報のうち、前記第１の特徴量抽出ステップの処理により抽出された前記第１のフレームに含まれる注目画素の前記第１の特徴量と対応する前記第２の特徴量の前記画素位置の情報を検索する検索ステップと
を含むことを特徴とするプログラム。
【請求項９】
第１のフレームにおいて、注目画素を含む所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードを生成する量子化コード生成手段と、
前記第１のフレームと、前記第１のフレームより時間的に前のフレームである第２のフレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出手段と、
前記量子化コード生成手段により生成された前記量子化コードに対応付けて、前記検出手段により検出された、前記ブロックのそれぞれの画素位置における前記画素のレベルの変動値を蓄積する蓄積手段と、
前記蓄積手段により蓄積された情報を基に、前記量子化コードと、前記画素値のレベル変動が最も低い画素位置を対応付けた画素位置情報を生成する画素位置情報生成手段と
を備えることを特徴とする情報処理装置。
【請求項１０】
第１のフレームと、前記第１のフレームより時間的に前のフレームである第２のフレームとにおいて対応する画素のレベルの変動値が、注目画素を含む所定のサイズのブロック内で最も小さな画素位置を検出する処理を実行する情報処理装置の情報処理方法において、
前記第１のフレームにおいて、前記注目画素を含む前記所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードを生成する量子化コード生成ステップと、
前記第１のフレームと、前記第２のフレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出ステップと、
前記量子化コード生成ステップの処理により生成された前記量子化コードに対応付けて、前記検出ステップの処理により検出された前記ブロックのそれぞれの画素位置における前記画素のレベルの変動値を蓄積する蓄積ステップと、
前記蓄積ステップの処理により蓄積された情報を基に、前記量子化コードと、前記画素値のレベルの変動が最も低い画素位置を対応付けた画素位置情報を生成する画素位置情報生成ステップと
を含むことを特徴とする情報処理方法。
【請求項１１】
第１のフレームと、前記第１のフレームより時間的に前のフレームである第２のフレームとにおいて対応する画素のレベルの変動値が、注目画素を含む所定のサイズのブロック内で最も小さな画素位置を検出する処理をコンピュータに実行させるプログラムであって、
前記第１のフレームにおいて、前記注目画素を含む前記所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードを生成する量子化コード生成ステップと、
前記第１のフレームと、前記第２のフレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出ステップと、
前記量子化コード生成ステップの処理により生成された前記量子化コードに対応付けて、前記検出ステップの処理により検出された前記ブロックのそれぞれの画素位置における前記画素のレベルの変動値を蓄積する蓄積ステップと、
前記蓄積ステップの処理により蓄積された情報を基に、前記量子化コードと、前記画素値のレベルの変動が最も低い画素位置を対応付けた画素位置情報を生成する画素位置情報生成ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１２】
第１のフレームと、前記第１のフレームより時間的に前のフレームである第２のフレームとにおいて対応する画素のレベルの変動値が、注目画素を含む所定のサイズのブロック内で最も小さな画素位置を検出する処理をコンピュータに実行させるプログラムであって、
前記第１のフレームにおいて、前記注目画素を含む前記所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードを生成する量子化コード生成ステップと、
前記第１のフレームと、前記第２のフレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出ステップと、
前記量子化コード生成ステップの処理により生成された前記量子化コードに対応付けて、前記検出ステップの処理により検出された前記ブロックのそれぞれの画素位置における前記画素のレベルの変動値を蓄積する蓄積ステップと、
前記蓄積ステップの処理により蓄積された情報を基に、前記量子化コードと、前記画素値のレベルの変動が最も低い画素位置を対応付けた画素位置情報を生成する画素位置情報生成ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および方法、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、より正確に動きベクトルを検出できるようにした画像処理装置および方法、情報処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
画像の動きを示す動きベクトルを求め、この動きベクトルに基づいて効率よく動画像を圧縮する技術がある。
【０００３】
この動画像圧縮技術における上述の動きベクトルを求める手法としては、いくつか提案されているが、代表的な手法としてブロックマッチングアルゴリズムと呼ばれる手法がある。
【０００４】
図１は、ブロックマッチングアルゴリズムを採用した従来の画像処理装置の動き検出部１の構成例を示している。
【０００５】
動き検出部１のフレームメモリ１１は、例えば、時刻ｔ１において、入力端子Ｔｉｎから画像信号が入力されると、１フレーム分の情報を格納する。更に、フレームメモリ１１は、次のタイミングとなる時刻ｔ２において、入力端子Ｔｉｎから次のフレームの画像信号が入力されると、時刻ｔ１において、格納した１フレーム分の画像情報をフレームメモリ１２に出力した後、新たに入力された１フレーム分の画像情報を格納する。
【０００６】
また、フレームメモリ１２は、時刻ｔ２のタイミングで、フレームメモリ１１から入力されてくる時刻ｔ１のタイミングで入力端子Ｔｉｎから入力されてきた１フレーム分の画像情報を格納する。
【０００７】
すなわち、フレームメモリ１１が、上述の時刻ｔ２のタイミングで入力される（今現在の）１フレーム分の画像情報を格納するとき、フレームメモリ１２は、時刻ｔ１のタイミングで入力された（１タイミング過去の）１フレーム分の画像情報を格納していることになる。なお、以下において、フレームメモリ１１に格納される画像情報をカレントフレームＦｃ、フレームメモリ１２に格納される画像情報を参照フレームＦｒと称するものとする。
【０００８】
動きベクトル検出部１３は、フレームメモリ１１，１２に格納されているカレントフレームＦｃと参照フレームＦｒをそれぞれから読出し、このカレントフレームＦｃと参照フレームＦｒに基づいて、ブロックマッチングアルゴリズムにより動きベクトルを検出し、出力端子Ｔｏｕｔから出力する。
【０００９】
ここで、ブロックマッチングアルゴリズムについて説明する。例えば、図２で示すように、カレントフレームＦｃ内の注目画素Ｐ（ｉ，ｊ）に対応する動きベクトルを求める場合、まず、カレントフレームＦｃ上に注目画素Ｐ（ｉ，ｊ）を中心としたＬ（画素数）×Ｌ（画素数）からなる基準ブロックＢｂ（ｉ，ｊ）、参照フレームＦｒ上に、注目画素Ｐ（ｉ，ｊ）の位置に対応するサーチエリアＳＲ、そして、そのサーチエリアＳＲ内に、Ｌ（画素数）×Ｌ（画素数）の画素からなる参照ブロックＢｒｎ（ｉ，ｊ）がそれぞれ設定される。
【００１０】
次に、この基準ブロックＢｂ（ｉ，ｊ）と、参照ブロックＢｒｎ（ｉ，ｊ）の各画素間の差分の絶対値の和を求める処理が、参照ブロックＢｒｎをサーチエリアＳＲ内の全域で水平方向、または、垂直方向に１画素分ずつ移動させながら、図２中のＢｒ１からＢｒｍ（参照ブロックＢｒｎが、サーチエリアＳＲ内にｍ個設定できるものとする）まで繰り返される。
【００１１】
このようにして求められた基準ブロックＢｂ（ｉ，ｊ）と、参照ブロックＢｒｎ（ｉ，ｊ）の各画素間の差分絶対値和のうち、差分絶対値和が最小となる参照ブロックＢｒｎを求めることにより、基準ブロックＢｂ（ｉ，ｊ）に最も近い（類似している）参照ブロックＢｒｎ（ｉ，ｊ）を構成するＬ×Ｌ個の画素の中心となる参照画素Ｐｎ（ｉ，ｊ）が求められる。
【００１２】
そして、このカレントフレームＦｃ上の注目画素Ｐ（ｉ，ｊ）に対応する参照フレームＦｒ上の画素Ｐ’（ｉ，ｊ）を始点とし、参照画素Ｐｎ（ｉ，ｊ）を終点とするベクトルが、注目画素Ｐ（ｉ，ｊ）の動きベクトル（Ｖｘ，Ｖｙ）として出力される。ここで、例えば、Ｐ（ｉ，ｊ）＝（ａ，ｂ）、および、Ｐｎ（ｉ，ｊ）＝（ｃ，ｄ）である場合、（Ｖｘ，Ｖｙ）は、（Ｖｘ，Ｖｙ）＝（ｃ−ａ，ｄ−ｂ）となる。
【００１３】
すなわち、注目画素Ｐ（ｉ，ｊ）に対応する参照フレームＦｒ上の参照画素Ｐ’（ｉ，ｊ）を始点とし、基準ブロックＢｂ（ｉ，ｊ）に最も近い（類似している）参照ブロックＢｒｎ（ｉ，ｊ）を構成するＬ×Ｌ個の画素の中心となる参照画素Ｐｎ（ｉ，ｊ）を終点とするベクトルが動きベクトルとして求められる。
【００１４】
次に、図３のフローチャートを参照して、図１の動き検出部１の動き検出処理について説明する。
【００１５】
ステップＳ１において、動きベクトル検出部１３は、フレームメモリ１１に格納されているカレントフレームＦｃ上の注目画素Ｐ（ｉ，ｊ）の画素位置に応じて、サーチエリアＳＲを設定する。
【００１６】
ステップＳ２において、動きベクトル検出部１３は、上述のように、基準ブロックＢｂ（ｉ，ｊ）と参照ブロックＢｒｎ（ｉ，ｊ）の画素間の差分絶対値和の最小値を設定する変数ｍｉｎを、画素の階調数に基準ブロックＢｂ（ｉ，ｊ）を構成する画素数を乗じた値に設定することにより初期化する。すなわち、例えば、１画素が８ビットのデータであった場合、１画素の階調数は、２の８乗となるため２５６階調（２５６色）となる。また、基準ブロックＢｂ（ｉ，ｊ）がＬ画素×Ｌ画素＝３画素×３画素から構成される場合、その画素数は、９個となる。結果として、変数ｍｉｎは、２３０４（＝２５６（階調数）×９（画素数））に初期化される。
【００１７】
ステップＳ３において、動きベクトル検出部１３は、参照ブロックＢｒｎをカウントするカウンタ変数ｎを１に初期化する。
【００１８】
ステップＳ４において、動きベクトル検出部１３は、基準ブロックＢｂと参照ブロックＢｒｎの画素間の差分絶対値和を代入するために用いる変数ｓｕｍを０に初期化する。
【００１９】
ステップＳ５において、動きベクトル検出部１３は、基準ブロックＢｂ（ｉ，ｊ）と参照ブロックＢｒｎ（ｉ，ｊ）の画素間の差分絶対値和（＝ｓｕｍ）を求める。すなわち、基準ブロックＢｂ（ｉ，ｊ）の各画素がＰ＿Ｂｂ（ｉ，ｊ）、基準ブロックＢｒｎ（ｉ，ｊ）の各画素がＰ＿Ｂｒｎ（ｉ，ｊ）としてそれぞれ示される場合、動きベクトル検出部１３は、以下の式（１）で示される演算を実行して、基準ブロックＢｂ（ｉ，ｊ）と参照ブロックＢｒｎ（ｉ，ｊ）の画素間の差分絶対値和を求める。
【００２０】
【数１】
2004165837.tif 000003
【００２１】
ステップＳ６において、動きベクトル検出部１３は、変数ｍｉｎが変数ｓｕｍよりも大きいか否かを判定し、例えば、変数ｍｉｎが変数ｓｕｍよりも大きいと判定する場合、ステップＳ７において、変数ｍｉｎを変数ｓｕｍに更新し、その時点でのカウンタｎの値を動きベクトル番号として登録する。すなわち、今求めた差分絶対値和を示す変数ｓｕｍが、最小値を示す変数ｍｉｎよりも小さいと言うことは、これまで演算したどの参照ブロックよりも、今演算している参照ブロックＢｒｎ（ｉ，ｊ）が基準ブロックＢｂ（ｉ，ｊ）により類似したものであるとみなすことができるので、動きベクトルを求める際の候補とするため、その時点でのカウンタｎが動きベクトル番号として登録される。また、ステップＳ６において、変数ｍｉｎが変数ｓｕｍよりも大きくないと判定された場合、ステップＳ７の処理がスキップされる。
【００２２】
ステップＳ８において、動きベクトル検出部１３は、カウンタ変数ｎがサーチエリアＳＲの参照ブロックＢｒｎの総数ｍであるか否か、すなわち、今の参照ブロックＢｒｎがＢｒｎ＝Ｂｒｍであるか否かを判定し、例えば、総数ｍではないと判定した場合、ステップＳ９において、カウンタ変数ｎを１インクリメントし、その処理は、ステップＳ４に戻る。
【００２３】
ステップＳ８において、カウンタ変数ｎがサーチエリア内の参照ブロックＢｒｎの総数ｍである、すなわち、今の参照ブロックＢｒｎがＢｒｎ＝Ｂｒｍであると判定された場合、ステップＳ１０において、動きベクトル検出部１３は、登録されている動きベクトル番号に基づいて動きベクトルを出力する。すなわち、ステップＳ４乃至Ｓ９が繰り返されることにより、差分絶対値和が最小となる参照ブロックＢｒｎに対応するカウンタ変数ｎが動きベクトル番号として登録されることになるので、動きベクトル検出部１３は、この動きベクトル番号に対応する参照ブロックＢｒｎのＬ×Ｌ個の画素のうち、その中心となる参照画素Ｐｎ（ｉ，ｊ）を求め、カレントフレームＦｃ上の注目画素Ｐ（ｉ，ｊ）に対応する参照フレームＦｒ上の画素Ｐ’（ｉ，ｊ）を始点とし、参照画素Ｐｎ（ｉ，ｊ）を終点とするベクトルを、注目画素Ｐ（ｉ，ｊ）の動きベクトル（Ｖｘ，Ｖｙ）として求めて出力する。
【００２４】
以上説明したようなブロックマッチング法により、動きベクトルを検出する場合において、動きベクトル検出対象ブロック、および、参照フレームの小ブロックごとに定常成分および過渡成分を抽出し、これらの定常成分および過渡成分の差分をそれぞれ検出して、絶対値差分を累算した値を加重平均して評価値を形成し、この評価値に基づいて動きベクトルを検出することにより、演算量を低減することができ、また、誤検出のおそれを防止することができるようにする技術がある（例えば、特許文献１参照）。また、１ビットＡＤＲＣによって各画素値を１ビットのコード値に符号化し、そのコード値を使用してマッチング演算を行うことにより、動きベクトルの検出に係る回路構成、演算時間等を簡素化することができる技術がある（例えば、特許文献２参照）。
【００２５】
【特許文献１】
特開平０７−０８７４９４号公報
【００２６】
【特許文献２】
特開２０００−２７８６９１号公報
【００２７】
【発明が解決しようとする課題】
しかしながら、上述したブロックマッチングアルゴリズムは、式（１）の演算量が非常に膨大なものとなるため、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）等の画像圧縮処理においては、大半の時間がこの処理に費やされてしまうという課題があった。
【００２８】
また、カレントフレームＦｃ、または、参照フレームＦｒの動きベクトルの始点、または、終点付近でノイズが含まれた場合、ブロックマッチングでは基準ブロックに類似する参照ブロックを検出することができず、正確な動きベクトルを検出することができないという課題があった。
【００２９】
本発明はこのような状況に鑑みてなされたものであり、正確に動きベクトルを生成することができるようにするものである。
【００３０】
【課題を解決するための手段】
本発明の画像処理装置は、第１のフレームの画像データから第１の特徴量を抽出する第１の特徴量抽出手段と、第１のフレームより時間的に前のフレームである第２のフレームの画像データから第２の特徴量を抽出する第２の特徴量抽出手段と、第２の特徴量抽出手段により抽出された第２の特徴量ごとに、対応する画素位置の情報を記憶する第１の記憶手段と、記憶手段により記憶されている画素位置の情報のうち、第１の特徴量抽出手段により抽出された第１のフレームに含まれる注目画素の第１の特徴量と対応する第２の特徴量の画素位置の情報を検索する検索手段とを備え、第１の特徴量抽出手段および第２の特徴量抽出手段は、注目画素を含む所定のサイズのブロックのうち、第１のフレームと第２のフレームとで、レベル変動が少ない位置の情報を記憶する第２の記憶手段を備え、第１の特徴量抽出手段は、第２の記憶手段により記憶されている情報を基に、レベル変動が少ない位置の画素値を基に生成された第１のコードを含む、第１の特徴量を抽出し、第２の特徴量抽出手段は、第２の記憶手段により記憶されている情報を基に、レベル変動が少ない位置の画素値を基に生成された第２のコードを含む、第２の特徴量を抽出することを特徴とする。
【００３１】
第２の記憶手段には、注目画素を含む所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードに対応付けて、レベル変動が少ない位置の情報を記憶させるようにすることができる。
【００３２】
第１の特徴量抽出手段には、第１のコード、および、量子化コードを含む第１の特徴量を抽出させるようにすることができ、第２の特徴量抽出手段には、第２のコード、および、量子化コードを含む、第２の特徴量を抽出させるようにすることができる。
【００３３】
第２の特徴量抽出手段には、第１の特徴量抽出手段により抽出される第１の特徴量を含む、第１の特徴量より広範囲の特徴量を、第２の特徴量として抽出させるようにすることができる。
【００３４】
検索手段により検索された画素位置の情報のうち、第１のフレーム中の注目画素との距離が最小となる画素位置を検出し、検出された画素位置と、注目画素の画素位置の情報とを基に、動きベクトルを生成する動きベクトル生成手段を更に備えさせるようにすることができる。
【００３５】
本発明の画像処理方法は、第１のフレームと、第１のフレームより時間的に前のフレームである第２のフレームとにおいて、レベル変動が少ない画素位置を取得する取得ステップと、第１のフレームの画素のうち、取得ステップの処理により取得されたレベル変動が少ない位置の画素を基に生成された第１のコードを含む第１の特徴量を抽出する第１の特徴量抽出ステップと、第２のフレームの画素のうち、取得ステップの処理により取得されたレベル変動が少ない位置の画素を基に生成された第２のコードを含む第２の特徴量を抽出する第２の特徴量抽出ステップと、第２の特徴量抽出ステップの処理により抽出された第２の特徴量ごとに、対応する画素位置の情報を記憶手段に記憶する処理を制御する記憶制御ステップと、記憶制御ステップの処理により記憶が制御されている画素位置の情報のうち、第１の特徴量抽出ステップの処理により抽出された第１のフレームに含まれる注目画素の第１の特徴量と対応する第２の特徴量の画素位置の情報を検索する検索ステップとを含むことを特徴とする。
【００３６】
本発明の第１の記録媒体に記録されているプログラムは、第１のフレームと、第１のフレームより時間的に前のフレームである第２のフレームとにおいて、レベル変動が少ない画素位置を取得する取得ステップと、第１のフレームの画素のうち、取得ステップの処理により取得されたレベル変動が少ない位置の画素を基に生成された第１のコードを含む第１の特徴量を抽出する第１の特徴量抽出ステップと、第２のフレームの画素のうち、取得ステップの処理により取得されたレベル変動が少ない位置の画素を基に生成された第２のコードを含む第２の特徴量を抽出する第２の特徴量抽出ステップと、第２の特徴量抽出ステップの処理により抽出された第２の特徴量ごとに、対応する画素位置の情報を記憶手段に記憶する処理を制御する記憶制御ステップと、記憶制御ステップの処理により記憶が制御されている画素位置の情報のうち、第１の特徴量抽出ステップの処理により抽出された第１のフレームに含まれる注目画素の第１の特徴量と対応する第２の特徴量の画素位置の情報を検索する検索ステップとを含むことを特徴とする。
【００３７】
本発明の第１のプログラムは、第１のフレームと、第１のフレームより時間的に前のフレームである第２のフレームとにおいて、レベル変動が少ない画素位置を取得する取得ステップと、第１のフレームの画素のうち、取得ステップの処理により取得されたレベル変動が少ない位置の画素を基に生成された第１のコードを含む第１の特徴量を抽出する第１の特徴量抽出ステップと、第２のフレームの画素のうち、取得ステップの処理により取得されたレベル変動が少ない位置の画素を基に生成された第２のコードを含む第２の特徴量を抽出する第２の特徴量抽出ステップと、第２の特徴量抽出ステップの処理により抽出された第２の特徴量ごとに、対応する画素位置の情報を記憶手段に記憶する処理を制御する記憶制御ステップと、記憶制御ステップの処理により記憶が制御されている画素位置の情報のうち、第１の特徴量抽出ステップの処理により抽出された第１のフレームに含まれる注目画素の第１の特徴量と対応する第２の特徴量の画素位置の情報を検索する検索ステップとを含むことを特徴とする。
【００３８】
本発明の情報処理装置は、第１のフレームにおいて、注目画素を含む所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードを生成する量子化コード生成手段と、第１のフレームと、第１のフレームより時間的に前のフレームである第２のフレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出手段と、量子化コード生成手段により生成された量子化コードに対応付けて、検出手段により検出された、ブロックのそれぞれの画素位置における画素のレベルの変動値を蓄積する蓄積手段と、蓄積手段により蓄積された情報を基に、量子化コードと、画素値のレベル変動が最も低い画素位置を対応付けた画素位置情報を生成する画素位置情報生成手段とを備えることを特徴とする。
【００３９】
本発明の情報処理方法は、第１のフレームにおいて、注目画素を含む所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードを生成する量子化コード生成ステップと、第１のフレームと、第２のフレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出ステップと、量子化コード生成ステップの処理により生成された量子化コードに対応付けて、検出ステップの処理により検出されたブロックのそれぞれの画素位置における画素のレベルの変動値を蓄積する蓄積ステップと、蓄積ステップの処理により蓄積された情報を基に、量子化コードと、画素値のレベルの変動が最も低い画素位置を対応付けた画素位置情報を生成する画素位置情報生成ステップとを含むことを特徴とする。
【００４０】
本発明の第２の記録媒体に記録されているプログラムは、第１のフレームにおいて、注目画素を含む所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードを生成する量子化コード生成ステップと、第１のフレームと、第２のフレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出ステップと、量子化コード生成ステップの処理により生成された量子化コードに対応付けて、検出ステップの処理により検出されたブロックのそれぞれの画素位置における画素のレベルの変動値を蓄積する蓄積ステップと、蓄積ステップの処理により蓄積された情報を基に、量子化コードと、画素値のレベルの変動が最も低い画素位置を対応付けた画素位置情報を生成する画素位置情報生成ステップを含むことを特徴とする。
【００４１】
本発明の第２のプログラムは、第１のフレームにおいて、注目画素を含む所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードを生成する量子化コード生成ステップと、第１のフレームと、第２のフレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出ステップと、量子化コード生成ステップの処理により生成された量子化コードに対応付けて、検出ステップの処理により検出されたブロックのそれぞれの画素位置における画素のレベルの変動値を蓄積する蓄積ステップと、蓄積ステップの処理により蓄積された情報を基に、量子化コードと、画素値のレベルの変動が最も低い画素位置を対応付けた画素位置情報を生成する画素位置情報生成ステップとを含むことを特徴とする。
【００４２】
本発明の画像処理装置および方法、並びに第１のプログラムにおいては、第１のフレームと、第１のフレームより時間的に前のフレームである第２のフレームとにおいて、レベル変動が少ない画素位置が取得され、第１のフレームの画素のうち、レベル変動が少ない位置の画素を基に、第１の特徴量が抽出され、第２のフレームの画素のうち、レベル変動が少ない位置の画素を基に、第２の特徴量が抽出され、抽出された第２の特徴量ごとに、対応する画素位置の情報が記憶され、記憶されている画素位置の情報のうち、第１の特徴量と対応する第２の特徴量の画素位置の情報が検索される。
【００４３】
本発明の情報処理装置および方法、並びに第２のプログラムにおいては、第１のフレームにおいて、注目画素を含む所定のサイズのブロックのＡＤＲＣに基づく、ｎビットの量子化コードが生成され、第１のフレームと、第１のフレームより時間的に前のフレームである第２のフレームとにおいて対応する画素位置の画素のレベルの変動値が検出され、量子化コードに対応付けて、ブロックのそれぞれの画素位置における画素のレベルの変動値が蓄積され、蓄積された情報を基に、量子化コードと、画素値のレベル変動が最も低い画素位置を対応付けた画素位置情報が生成される。
【００４４】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【００４５】
図４は、本発明を適用した画像処理装置の動き検出部５１の構成を示すブロック図である。
【００４６】
動き検出部５１は、フレームメモリ６１および６２、特徴量抽出部６３および６４、データベース制御部６５、データベース検索部６６、および、動きベクトル決定部６７で構成されている。
【００４７】
第１のフレームメモリであるフレームメモリ６１は、入力端子Ｔｉｎから入力された画像信号の１画面の情報を格納し、フレームメモリ６２および特徴量抽出部６３に供給する。入力端子Ｔｉｎから入力される画像信号は、各画素の画素値が、所定のビット数に量子化された情報であり、例えば、ＰＣＭ符号化などにより、符号化されていてもかまわない。ここでは、画素値が、８ビットに量子化されているものとして説明する。
【００４８】
特徴量抽出部６３は、フレームメモリから供給された画面情報、すなわちカレントフレームＦｃの情報を基に、注目画素の特徴量を抽出する。特徴量には、例えば、注目画素の画素値、注目画素近傍の所定の画素の画素値、注目画素を中心とした所定の画素範囲のブロックの複数の画素値またはこれらの画素値の平均値、注目画素を中心とした所定の画素範囲のブロックの画素値を基に算出されるＡＤＲＣ（Ａｄａｐｔｉｖｅ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ  Ｃｏｄｉｎｇ）のコード、ブロック内の画素値分布のダイナミックレンジ、あるいは、ブロック内の画素値分布の最小値などがある。
【００４９】
ここでは、特徴量抽出部６３は、注目画素近傍の所定の画素の画素値、および、ＡＤＲＣコードを、特徴量として抽出するものとする。
【００５０】
図５は、特徴量抽出部６３の構成を示すブロック図である。
【００５１】
クラスタップ抽出部９１は、入力された画像情報のうち、特徴量の抽出に必要な注目画素に対応する周辺画素（クラスタップ）の情報（画素値）を抽出し、ＤＲ（ダイナミックレンジ）演算部９２、および、ＡＤＲＣ（Ａｄａｐｔｉｖｅ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ  Ｃｏｄｉｎｇ）コード生成部９３に出力する。また、クラスタップ抽出部９１は、クラスタップのパターンを記憶したタップテーブル９１ａを有しており、タップテーブル９１ａに記憶されているクラスタップのパターンに基づいて、抽出するクラスタップのパターンを決定する。
【００５２】
すなわち、タップテーブル９１ａは、クラスタップのパターンとして、図６で示すように、注目画素（図中黒丸で表示されている画素）を中心とした３画素×３画素からなるブロックの最外周位置に配置される８画素（図中斜線で塗りつぶされている画素）のパターン、または、注目画素を含む３画素×３画素からなるブロックの９画素のパターン、図７で示すように、注目画素（図中黒丸で表示されている画素）を中心とした５画素×５画素からなるブロックの最外周位置に配置される１６画素（図中斜線で塗りつぶされている画素）のパターン、または、注目画素を含む５画素×５画素からなるブロックの２５画素のパターン、図８で示すように、注目画素（図中黒丸で表示されている画素）を中心とした７画素×７画素からなるブロックの最外周位置に配置される２４画素（図中斜線で塗りつぶされている画素）のパターン、更に、図示しないが、注目画素（図中黒丸で表示されている画素）を中心としたｎ画素×ｎ画素からなるブロックの最外周位置に配置される４（ｎ−１）画素パターンなどを記憶している。
【００５３】
また、クラスタップのパターンは、図９で示すように、注目画素の上下左右の１画素からなる４画素であってもよいし、図１０で示すように、注目画素の上下左右の２画素からなる８画素であってもよいし、図１１で示すように、注目画素の上下左右の３画素からなる１２画素であってもよいし、更には、図示しないが、注目画素の上下左右のｍ画素からなる４ｍ画素であってもよい。更に、クラスタップは、図示した以外の構成でもよく、例えば、注目画素との位置関係が非対称となる配置のものであってもよい。
【００５４】
ここでは、クラスタップ抽出部９１は、クラスタップのパターンとして、図６で示すように、注目画素を含む３画素×３画素からなるブロックの９画素を抽出するものとする。
【００５５】
ＤＲ（ダイナミックレンジ）演算部９２は、クラスタップ抽出部９１より入力されるクラスタップの情報（画素値）からダイナミックレンジを求め、ダイナミックレンジをＡＤＲＣコード生成部９３に出力するとともに、ダイナミックレンジを求める際に得られる最小値の情報をＡＤＲＣコード生成部９３に出力する。すなわち、クラスタップのパターンが、例えば、図９で示すものであった場合、各クラスタップＣ１乃至Ｃ４の情報（画素値レベル）が、（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（６０，９０，５１，１００）であるとき、その関係は、図１２で示すようになる。このような場合、ダイナミックレンジは、画素値レベルの最小値と最大値の差として定義され、その値は、以下の式（２）で定義される。
【００５６】
ＤＲ＝Ｍａｘ−Ｍｉｎ＋１・・・（２）
【００５７】
ここで、Ｍａｘは、クラスタップの情報である画素値レベルの最大値であり、Ｍｉｎは、クラスタップの画素値レベルの最小値を示す。ここで、１を加算するのは、クラスを定義するためである（例えば、０，１で示されるクラスを設定する場合、両者の差分は１であるが、クラスとしては２クラスとなるため、差分に１を加算する）。従って、図１２の場合、クラスタップＣ３の画素値レベル１００が最大値であり、クラスタップＣ１の画素値レベル５１が最小値となるので、ＤＲは、５０（＝１００−５１＋１）となる。
【００５８】
このように、ＤＲ演算部９２は、ダイナミックレンジを演算するにあたり、クラスタップの画素値レベルのうちの最小値と最大値を検出することになるので、その最小値（または最大値）をＡＤＲＣコード生成部９３に出力する。
【００５９】
ＡＤＲＣコード生成部９３は、ＤＲ演算部９２より入力されたダイナミックレンジの値と最小値Ｍｉｎとから、クラスタップの各画素値レベルを基に、ＡＤＲＣコードからなる量子化コードを生成して出力する。より詳細には、ＡＤＲＣコードは、クラスタップの各画素値レベルを以下の式（３）の代入することにより求められる。
【００６０】
Ｑ＝Ｒｏｕｎｄ（（Ｌ−Ｍｉｎ＋０．５）×（２＾ｎ）／ＤＲ）・・・（３）
【００６１】
ここで、Ｒｏｕｎｄは切捨てを、Ｌは画素値レベルを、ｎは割当てビット数を、（２＾ｎ）は２のｎ乗を、それぞれ示している。
【００６２】
従って、例えば、割当てビット数ｎが１であった場合、各クラスタップの画素値レベルは、以下の式（４）で示される閾値ｔｈ以上であれば１であり、閾値ｔｈより小さければ０とされる。
【００６３】
ｔｈ＝ＤＲ／２−０．５＋Ｍｉｎ・・・（４）
【００６４】
結果として、割当てビット数ｎが１である場合、図１２で示すようなクラスタップが得られたとき、閾値ｔｈは、７５．５（＝５０／２−０．５＋５１）となるので、ＡＤＲＣコードは、ＡＤＲＣ（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝０１０１となる。
【００６５】
すなわち、クラスタップ抽出部９１が、クラスタップのパターンとして、図６で示した注目画素を中心とした３画素×３画素を抽出した場合、ＡＤＲＣコード生成部９３においては、９ビットのＡＤＲＣコードが生成される。
【００６６】
ＡＤＲＣコード生成部９３は、生成したＡＤＲＣコードを、特徴量生成部９６に供給する。
【００６７】
画素コード生成部９４は、画素位置テーブル９５に記憶されている画素位置テーブルを参照して、ノイズなどによるレベル変動が少ない画素位置の画素値を基に、画素コードを生成する。
【００６８】
参照フレームＦｒとカレントフレームＦｃにおいて対応する画素は、本来、同一の特徴を有しているはずであるが、例えば、ノイズなどの影響により、その特徴が多少変化することがある。参照フレームとカレントフレームにおいて対応するべき画素の画素値の差分レベルと、クラスタップ中の画素位置との関係は、ＡＤＲＣコードのパターンによって、規則性を有する。換言すれば、ＡＤＲＣコードに対応して、画素値の差分レベルが小さい（あるいは、大きい）画素のタップ位置（画素位置）が決まっている。
【００６９】
例えば、クラスタップのパターンとして、図６で示した注目画素を中心とした３画素×３画素を用い、複数の（例えば、２５パターン程度の）動画の参照フレームおよびカレントフレームにおいて、対応するべき画素の画素値の差分レベルを調べた結果、対応するべき画素の画素値の差分レベルが、図１３に示されるように、第１のＡＤＲＣコードパターンにおいては、実線で示されるような規則性を有し、第２のＡＤＲＣコードパターンにおいては、点線で示されるような規則性を有するものとする。このとき、第１のＡＤＲＣコードパターンにおいては、タップ位置１で示される画素位置において、対応するべき画素の画素値の差分レベルの変動が少ないといえる。また、第２のＡＤＲＣコードパターンにおいては、タップ位置３で示される画素位置において、対応するべき画素の画素値の差分レベルの変動が少ないといえる。
【００７０】
従って、ＡＤＲＣコードごとに最も差分レベルの少ない画素位置を予め学習して、記憶しておき、特徴量抽出時に、ＡＤＲＣコードを参照して、クラスタップ中の最も画素値の差分レベルの変動が少ない画素位置の画素値を基に、特徴量を抽出するようにすることにより、動きベクトル検出において、ノイズによるレベル変動の影響を低減することが可能となる。
【００７１】
画素コード生成部９４は、クラスタップ抽出部９１がクラスタップのパターンとして、図６で示した注目画素を中心とした３画素×３画素を抽出した場合、その３画素×３画素の供給を受けるとともに、ＡＤＲＣコード生成部９３において生成された、ＡＤＲＤコードの供給を受ける。画素位置テーブル９５には、図１４に示されるように、学習の結果、最も差分レベルが低いとされる画素位置が、ＡＤＲＤコードに対応付けられて記憶されている。画素コード生成部９４は、画素位置テーブル９５を参照し、ＡＤＲＤコードに対応した、最も差分レベルの低いと予想される画素位置を選択し、その画素位置における画素値から、画素コード（コードＡ）を算出する。
【００７２】
画素コード生成部９４は、選択された画素の画素値として、８ビットのデータを取得し、そのうち、上位４ビットを用いて、コード化を実行する。すなわち、８ビットで示される画素値０乃至２８−１が、２４種類のコードで示される。具体的には、特徴量抽出部６３において、次の式（５）により、コードＡ（ｃｏｄｅＡ）が算出される。
【００７３】
ｃｏｄｅＡ＝［ｐ（ｘ、ｙ）／１６］・・・（５）
【００７４】
ただし、ｐ（ｘ、ｙ）は、注目画素の画素値であり、［］の括弧内の計算値は、小数点以下を切り捨てるものとする。画素コード生成部９４は、算出されたコードＡを、対応する画素の位置（例えば、座標情報）とともに、特徴量生成部９６に供給する。
【００７５】
特徴量生成部９６は、画素コード生成部９４から供給された４ビットの画素コードであるコードＡ、および、ＡＤＲＣコード生成部９３から供給された９ビットのＡＤＲＣコードを用いて、１３ビットの特徴量コードである特徴量コードＡを生成し、対応する画素の位置（例えば、座標情報）とともに、データベース検索部６６に供給する。
【００７６】
なお、画素位置テーブル９５に記憶されている画素位置テーブルの生成については、後述する。
【００７７】
図４に戻り、本発明を適用した画像処理装置の動き検出部５１について説明する。
【００７８】
第２のフレームメモリであるフレームメモリ６２は、フレームメモリ６１に格納されていた、以前（たとえば１画面前）の画面情報の入力を受け、参照フレームＦｒの情報として格納し、順次、特徴量抽出部６４に供給する。
【００７９】
参照フレームＦｒとカレントフレームＦｃにおいて対応する画素は、本来、同一の特徴を有しているはずであるが、例えば、ノイズなどの影響により、その特徴が多少変化することがある。参照フレームＦｒとカレントフレームＦｃにおいて、いずれも、式（５）を用いて説明したコードＡの演算結果を利用して特徴量を算出するようになされている場合、例えば、参照フレームＦｒにおいて、画素値が１５であった画素が、カレントフレームＦｃにおいて、画素値１６となってしまったとき、コードＡの算出結果は、参照フレームＦｒではコードＡ＝０、カレントフレームＦｃではコードＡ＝１となる。このような場合、同一の特徴量算出結果を得ることができない。また、同様にして、画素値が、ＡＤＲＣコード算出時の閾値ｔｈに近い値である場合、ノイズなどの影響により、ビット反転を起こしてしまうことがある。このような場合、動きベクトルを正しく検出することができなくなってしまう。
【００８０】
そこで、特徴量抽出部６４は、フレームメモリ６２から供給された参照フレームＦｒの情報を基に、特徴量抽出部６３とは異なる規準を用いて、注目画素の特徴量を抽出する。
【００８１】
図１５は、特徴量抽出部６４の構成を示すブロック図である。
【００８２】
なお、図５における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【００８３】
すなわち、図１５の特徴量抽出部６４は、画素コード生成部９４に代わって画素コード生成部１０２が設けられ、ＡＤＲＣコード生成部９３により生成されたＡＤＲＣコードを変換するコード変換部１０１が更に備えられている以外は、図５の特徴量抽出部６３と基本的に同様の構成を有するものである。
【００８４】
参照フレームＦｒとカレントフレームＦｃの対応する画素の特徴量は、同一であるはずであるが、例えば、ノイズなどの影響により、特徴量が変化してしまうことが考えられる。特徴量として、ＡＤＲＣコードが用いられる場合、例えば、画素値が閾値ｔｈに近い値を有しているいずれかのビットが、特徴量の変化によって反転してしまう恐れがある。
【００８５】
コード変換部１０１は、供給されたＡＤＲＣコードのうち、ビット反転が起こる可能性が高い所定の画素位置に対応するコードをビット反転したコードを生成し、入力されたＡＤＲＣコード（ビット反転前のコード）とともに、特徴量生成部９６に供給する。
【００８６】
そして、画素コード生成部１０２においては、ＡＤＲＣコード生成部９３により生成されたＡＤＲＣコード、および、コード変換部１０１において変換されたＡＤＲＣコードを用いて、図５の画素コード生成部９４とは異なる方法で、画素コードが生成されるようになされている。画素コード生成部１０２は、画素位置テーブル９５を参照し、ＡＤＲＤコード、または、変換されたＡＤＲＣコードに対応した、カレントフレームと参照フレームにおいて対応する画素の画素値の差分レベルの最も低いと予想される画素位置を選択し、その画素位置における画素値から、コードＡを求めた方法とは異なる方法を用いて、画素コード（コードＢおよびコードＣ）を算出する。
【００８７】
画素コード生成部１０２は、画素位置テーブル９５を参照して選択された画素位置の画素の画素値として、８ビットのデータを取得し、そのうち、上位３ビットを用いて、コード化を実行する。すなわち、８ビットで示される画素値０乃至２８−１が、２３種類のコードで示されるのであるが、ここでは、２種類のコードを算出する。従って、算出されるコードの種類の総数は、２３×２種類となり、特徴量抽出部６３において算出されるコードの種類と同数となる。具体的には、次の式（６）および式（７）により、コードＢ（ｃｏｄｅＢ）およびコードＣ（ｃｏｄｅＣ）が算出される。
【００８８】
ｃｏｄｅＢ＝［｛ｐ（ｘ、ｙ）＋８｝／３２］×２・・・（６）
ｃｏｄｅＣ＝［｛ｐ（ｘ、ｙ）−８｝／３２］×２＋１・・・（７）
【００８９】
ここでも、［］の括弧内の計算値は、小数点以下切り捨てるものとする。特徴量抽出部６３において算出されるコードＡと、特徴量抽出部６４において算出されるコードＢおよびコードＣとの関係を図１６に示す。
【００９０】
コードＡが、上位４ビットの値を用いてコード化されているのに対し、コードＢおよびコードＣは、上位３ビットの値を用いてコード化されているため、同一コードに含まれる画素範囲は、コードＡにおいては１６ステップであり、コードＢおよびコードＣにおいては、コードＡにおける場合の２倍の３２ステップとなる。そして、コードＢのコードの境界は、コードＡの境界と比較して、マイナス側に３ビットシフトされ、コードＣのコードの境界は、コードＡの境界と比較して、プラス側に３ビットシフトされている。
【００９１】
ノイズなどの影響により、参照フレームＦｒとカレントフレームＦｃとにおいて画素の特徴量が変化した場合、最も誤検知を起こしやすいのは、コードの境界部分である。従って、この部分を誤検知しないように、参照フレームＦｒのコードＢおよびコードＣが、それぞれ、コードＡの境界部分を含んで、同じ画素値範囲でオーバーラップするように設定される。
【００９２】
図１６に示されるように、上述した式（６）および式（７）によって生成されるコードＢまたはコードＣは、それぞれ、コードＡ＝Ｘ（Ｘは、０乃至１４）と、コードＡ＝Ｘ＋１との境界部分の画素値を含む。そして、コードＡ＝Ｘと、コードＡ＝Ｘ＋１との境界部分となる画素値において、コードＢ＝Ｘとなり、コードＣ＝Ｘ＋１となる。
【００９３】
具体的には、例えば、注目画素の画素値が６３である場合、カレントフレームＦｃにおいて、コードＡ＝３となり、参照フレームＦｒにおいて、コードＢ＝４、かつ、コードＣ＝３となる。また、注目画素の画素値が６４である場合、カレントフレームＦｃにおいて、コードＡ＝４となり、参照フレームＦｒにおいて、コードＢ＝４、かつ、コードＣ＝３となる。
【００９４】
従って、参照フレームＦｒとカレントフレームＦｃとにおいて画素の特徴量が６３と６４で変化してしまった場合においても、コードＢかコードＣのいずれかにおいて、コードＡと同一のコードを得ることが可能となる。上述した式（６）および式（７）によってコードＢおよびコードＣが生成された場合、コードＢまたはコードＣは、コードＡの対応する境界を挟んで、３ビット（画素値で８ステップ）ずつずれているので、参照フレームＦｒとカレントフレームＦｃとにおいての画素の特徴量の変動が３ビット（画素値で８ステップ）以内であれば、コードＢかコードＣのいずれかにおいて、正しい検出結果を得ることが可能となる。
【００９５】
ここでは、コードＡを検出するために用いる情報のビット数を上位４ビットとし、コードＢおよびコードＣを検出するために用いる情報のビット数を上位３ビットとして説明したが、特徴量としてのコードの検出方法はこの限りではない。例えば、コードＡを検出するために用いる情報のビット数を上位５ビットとし、コードＢおよびコードＣを検出するために用いる情報のビット数を上位４ビットとしてもよい。
【００９６】
画素コード生成部１０２は、算出されたコードＢおよびコードＣを、特徴量生成部９６に供給する。特徴量生成部９６は、画素コード生成部１０２から供給された４ビットの画素コードであるコードＢ、および、コード変換部１０１から供給された９ビットのＡＤＲＣコードを用いて、１３ビットの特徴量コードである特徴量コードＢを生成し、また、画素コード生成部１０２から供給された４ビットの画素コードであるコードＣ、および、コード変換部１０１から供給された９ビットのＡＤＲＣコードを用いて、１３ビットの特徴量コードである特徴量コードＣを生成して、それぞれ、データベース制御部６５に供給する。
【００９７】
再び、図４に戻り、本発明を適用した画像処理装置の動き検出部５１について説明する。
【００９８】
データベース制御部６５は、特徴量抽出部６４から供給された、参照フレームＦｒの特徴量情報を基に、特徴量をアドレスとして、画素の位置情報をデータベース７１に格納することにより、参照フレーム情報を生成する。データベース制御部６５は、内部に、処理済の画素数をカウントするためのカウンタを有している。
【００９９】
データベース７１に格納される参照フレーム情報の構成を図１７に示す。
【０１００】
データベース７１は、特徴量アドレス０乃至ａと、フラグアドレス０乃至ｂによって示される（ａ＋１）×（ｂ＋１）個のセルにより構成されている。
【０１０１】
データベース制御部６５は、参照フレームＦｒの画素の特徴量である特徴量コードＢ、および、特徴量コードＣを、特徴量アドレスに対応つけて、その画素の位置情報を、データベース７１の、特徴量アドレスに対応するフラグアドレス１乃至ｂに順次格納する。そして、フラグアドレス０には、現在、その特徴量アドレスに格納されている位置情報の数が、順次、インクリメントされて格納される。具体的には、特徴量アドレス１に、１つの位置情報が格納されている場合、セル（１，０）には、格納されている位置情報の数として、１が格納される。そして、次の注目画素の特徴量が、特徴量アドレス１に対応するものであった場合、セル（１，０）に格納されている値は、インクリメントされて２となり、注目画素の位置情報が、セル（１，２）に格納される。
【０１０２】
そして、参照フレームＦｒの注目画素１つに付き、特徴量コードＢおよび特徴量コードＣに対応する２つの画素位置情報が、特徴量アドレスに対応するフラグアドレス１乃至ｂのいずれかに格納される。１フレーム分の格納処理が終了したとき、データベース７１のセル（０，１）からセル（ａ，ｂ）には、１フレームの画素数の２倍の画素位置情報が格納される。
【０１０３】
データベース検索部６６は、特徴量抽出部６３から供給されたカレントフレームＦｃの特徴量情報である特徴量コードＡと、データベース制御部６５のデータベース７１に記憶されている参照フレーム情報とのマッチング処理を実行する。すなわち、データベース検索部６１は、特徴量抽出部６３から、カレントフレームＦｃの注目画素の特徴量である特徴量コードＡの入力を受け、データベース７１の参照フレーム情報を参照して、カレントフレームＦｃの注目画素の特徴量と一致する特徴量アドレスに記載されている、複数の参照画素候補の画素位置情報を検出して、カレントフレームＦｃの注目画素の画素位置情報とともに、動きベクトル決定部６７に供給する。
【０１０４】
動きベクトル決定部６７は、カレントフレームＦｃの注目画素の画素位置情報と、複数の参照画素候補の画素位置情報との距離を演算し、例えば、算出された距離が最小である参照画素候補を、カレントフレームＦｃの注目画素に対応する参照画素であると決定し、その位置情報に基づいて、差分座標を検出して出力する。出力された差分座標は、注目画素の動きベクトル（Ｖｘ，Ｖｙ）である。
【０１０５】
ここでは、距離演算結果が最小のものを選択することにより、複数の参照画素候補のうち、カレントフレームＦｃの注目画素に対応する参照画素を決定するものとして説明したが、参照画素の決定方法は、それ以外の方法であってもかまわないことは言うまでもない。
【０１０６】
図１８を参照して、動き検出部５１が実行する動き検出処理１について説明する。
【０１０７】
ステップＳ３１において、フレームメモリ６１は、フレームの入力を受ける。
【０１０８】
ステップＳ３２において、フレームメモリ６１は、ステップＳ２１において入力されたフレームを、第２のフレームメモリであるフレームメモリ６２に供給する。フレームメモリ６２は、例えば、ｎ番目のフレームがフレームメモリ６１からフレームメモリ６２に供給されるよりも前に、格納されていたｎ−１番目のフレームを、特徴量抽出部６４に供給する。
【０１０９】
ステップＳ３３において、図１９を用いて後述する参照フレーム情報生成処理が、特徴量抽出部６４において実行される。
【０１１０】
ステップＳ３４において、図２７を用いて後述するカレントフレーム情報生成処理が、特徴量抽出部６３において実行される。
【０１１１】
ステップＳ３５において、図３０を用いて後述するマッチング処理が実行されて、処理が終了される。
【０１１２】
次に、図１９のフローチャートを参照して、図１８のステップＳ３３において実行される、参照フレーム情報生成処理について説明する。
【０１１３】
ステップＳ５１において、データベース制御部６５は、データベース７１に登録されている参照フレーム情報を初期化する。すなわち、データベース制御部６５は、全ての特徴量アドレスに対応するフラグアドレス０のセルに０を書き込み、フラグアドレス１乃至ｂに格納されている位置情報を削除する。
【０１１４】
ステップＳ５２において、データベース制御部６５は、１フレームメモリ内の画素をカウントするカウンタのカウンタ変数ｎを０に初期化する。
【０１１５】
ステップＳ５３において、特徴量抽出部６４は、図２０を用いて後述する特徴量算出処理を実行する。
【０１１６】
ステップＳ５４において、データベース制御部６５は、特徴量抽出部６３において抽出された参照フレームＦｒのクラスタップの特徴量の供給を受け、データベース７１から、特徴量コードＢおよび特徴量コードＣに対応する特徴量アドレスの、フラグアドレス０に記載されている値Ｋを読み込む。上述したように、１つの注目画素に対して、特徴量である特徴量コードＢおよび特徴量コードＣが２つ決定されるので、２箇所の特徴量アドレスに対応する値Ｋが読み出される。
【０１１７】
ステップＳ５５において、データベース制御部６５は、ステップＳ５４において読み出した値Ｋを、それぞれ、Ｋ＝Ｋ＋１とし、データベース７１の対応する特徴量アドレスの、フラグアドレス０に書き込む。
【０１１８】
ステップＳ５６において、データベース制御部６５は、特徴量抽出部６３から供給された、参照フレームＦｒの注目画素の位置情報を、データベース７１の対応する特徴量アドレスのフラグアドレスＫ＋１で示される２箇所のセルに書き込む。
【０１１９】
ステップＳ５７において、データベース制御部６５は、カウンタ変数ｎをインクリメントして、ｎ＝ｎ＋１とする。
【０１２０】
ステップＳ５８において、データベース制御部６５は、カウンタ変数ｎ＝１フレームの画素数であるか否かを判断する。ステップＳ５８において、カウンタ変数ｎ＝１フレームの画素数ではないと判断された場合、処理は、ステップＳ５３に戻り、それ以降の処理が繰り返される。ステップＳ５８において、カウンタ変数ｎ＝１フレームの画素数であると判断された場合、処理は、図１８のステップＳ３４に戻る。
【０１２１】
このような処理により、図１７を用いて説明したデータベース７１のフラグアドレス＝０のセルであるセル（０，０）乃至セル（ａ，０）に、対応する特徴量を有する参照フレームＦｒの画素位置の候補の数が格納され、データベース７１のフラグアドレス＝１乃至ｂのセルであるセル（０，１）乃至セル（ａ，ｂ）に、対応する特徴量を有する参照フレームＦｒの画素位置が格納される。換言すれば、参照フレームＦｒにおいて、同一の特徴量を有する可能性の高い画素の画素位置が、特徴量ごとにアドレシングされて、データベース７１に格納される。
【０１２２】
次に、図２０のフローチャートを参照して、図１９のステップＳ５３において実行される特徴量算出処理について説明する。
【０１２３】
ステップＳ７１において、図２１を用いて後述するＡＤＲＣコード生成処理１が実行される。
【０１２４】
ステップＳ７２において、図２６を用いて後述する画素コード生成処理１が実行される。
【０１２５】
ステップＳ７３において、特徴量抽出部６４の特徴量生成部９６は、画素コード生成部１０２から供給された４ビットの画素コードであるコードＢ、および、コード変換部１０１から供給された９ビットのＡＤＲＣコードを用いて、１３ビットの特徴量コードである特徴量コードＢを生成し、また、画素コード生成部１０２から供給された４ビットの画素コードであるコードＣ、および、コード変換部１０１から供給された９ビットのＡＤＲＣコードを用いて、１３ビットの特徴量コードである特徴量コードＣを生成して、処理は、図１９のステップＳ５４に戻る。
【０１２６】
次に、図２１のフローチャートを参照して、図２０のステップＳ７１で実行されるＡＤＲＣコード生成処理１について説明する。
【０１２７】
ステップＳ９１において、クラスタップ抽出部９１は、注目画素を中心とする所定サイズのクラスコード用タップを設定し、クラスコード用タップに含まれる複数の画素の画素値を取得する。以下においては、図２２に示すように、クラスコード用タップのサイズを３×３画素とし、左上の画素を先頭に右下の画素までの画素値をそれぞれＰ１乃至Ｐ９として説明を継続する。
【０１２８】
ＤＲ演算部９２は、ステップＳ９２において、画素値Ｐ１乃至Ｐ９の最大値ＰＭＡＸと最小値ＰＭＩＮを判定し、ステップＳ９３において、画素値Ｐ１乃至Ｐ９のダイナミックレンジＤＲ（＝｜最大値ＰＭＡＸ−最小値ＰＭＩＮ＋１｜）を算出し、最小値ＰＭＩＮとともに、ＡＤＲＣコード生成部９３に供給する。
【０１２９】
ステップＳ９４において、ＡＤＲＣコード生成部９３は、ＤＲ演算部９２から供給された画素値Ｐ１乃至Ｐ９の最小値ＰＭＩＮ、および、ダイナミックレンジＤＲより、上述した式（４）を用いて、閾値ｔｈを決定する。閾値ｔｈは、コード変換部１０１に供給される。
【０１３０】
ステップＳ９５において、コード変換部１０１は、画素値Ｐ１乃至Ｐ９のうち、マスク化する画素を決定する。ここで、マスク化とは、ノイズなどによる画素値のゆれが発生した場合においても、正しく動きベクトルが検出できるように、ビット反転を行う処理のことである。マスク化する画素は、例えば、閾値Ｔｈ近傍の画素値を有する所定の個数（例えば、２個）の画素としたり、閾値Ｔｈから所定の範囲以内の画素値を有する画素として決定するようにしても良い。
【０１３１】
ステップＳ９６において、ＡＤＲＣコード生成部９３は、画素値Ｐ１乃至Ｐ９の９画素を、それぞれ閾値Ｔｈと比較し、閾値Ｔｈよりも大きい場合には１に量子化し、閾値Ｔｈよりも小さい場合には０に量子化して、番号順に並べた９ビットを注目画素のＡＤＲＣコードとして生成し、コード変換部１０１に供給する。
【０１３２】
ステップＳ９７において、コード変換部１０１は、供給された９ピットのコードのうち、マスク化される画素をビット反転し、処理は、図２０のステップＳ７２に戻る。
【０１３３】
例えば、閾値Ｔｈ近傍の２つの画素をマスク化する場合、クラスコード用タップに含まれる９画素の画素値Ｐ１乃至Ｐ９が、図２３に示すような状態であるとき、ステップＳ９６において、９ビットのＡＤＲＣコード１０１００１１１１が生成される。そして、ステップＳ９７において、閾値Ｔｈに最も近い画素値Ｐ６と画素値Ｐ８に対応するＡＤＲＣコードのそれぞれが単独で、あるいは、両方がビット反転されるので、９ビットのＡＤＲＣコード１０１０００１１１、１０１００１１０１、および、１０１０００１０１が生成される。
【０１３４】
また、例えば、クラスコード用タップに含まれる９画素の画素値Ｐ１乃至Ｐ９が図２４に示すような状態であるとき、ステップＳ９６において、９ビットのＡＤＲＣコード１０１００１１０１が生成される。そして、ステップＳ９７において、閾値Ｔｈに最も近い画素値Ｐ５と画素値Ｐ６に対応するＡＤＲＣコードのそれぞれが単独で、あるいは、両方のコードがビット反転されるので、９ビットのＡＤＲＣコード１０１０１１１０１、１０１０００１０１、および、１０１０１０１０１が生成される。
【０１３５】
また、閾値Ｔｈを中心とする所定の範囲（±Δ）に含まれる全ての画素値を有する画素に対して、マスク化を行う場合、例えば、クラスコード用タップに含まれる９画素の画素値Ｐ１乃至Ｐ９が図２５に示すような状態であるとき、ステップＳ９６において、１０１００１１１１が生成される。そして、ステップＳ９７において、閾値Ｔｈを中心とする所定の範囲（±Δ）に含まれる画素値Ｐ２と画素値Ｐ６に対応するＡＤＲＣコードのそれぞれが単独で、あるいは、両方のコードがビット反転されるので、９ビットのＡＤＲＣコード１１１００１１１１、１０１０００１１１、および、１１１０００１１１が生成される。
【０１３６】
このように、ノイズなどの影響により、レベルが変動した場合に、ＡＤＲＣコードがビット反転する可能性の高い画素のＡＤＲＣコードに対して、０に量子化した場合のＡＤＲＣコードと、１に量子化した場合のＡＤＲＣコードを生成するようにしたことにより、ノイズなどの影響により、マッチングが正しく取れないようなことを抑止することができる。従って、クラスコードのロバスト性を向上させることができる。
【０１３７】
なお、クラスコード用タップを構成する画素の数、およびクラスコードのビット数は、上述した例に限るものではなく、任意である。
【０１３８】
更に、マスク化する画素の決定方法は、上述した限りではなく、他の方法で、マスク化する画素を決めることができるようにしても良いことは言うまでもない。
【０１３９】
また、マスク化を実行することなく、検出されたＡＤＲＣコードのみを用いて、マッチング処理を行うようにしてもよい。
【０１４０】
次に、図２６のフローチャートを参照して、図２０のステップＳ７２において実行される画素コード生成処理１について説明する。
【０１４１】
ステップＳ１１１において、画素コード生成部１０２は、ＡＤＲＣコード生成部９３により生成されたＡＤＲＣコード、または、コード変換部１０１により変換された（所定のコードがビット反転された）ＡＤＲＣコードを取得する。
【０１４２】
ステップＳ１１２において、画素コード生成部１０２は、画素位置テーブル９５に記憶されている画素位置テーブルを参照して、ＡＤＲＣコードに対応する、差分レベルが小さい画素位置を選択する。
【０１４３】
例えば、画素位置テーブル９５に、図１４を用いて説明したテーブル画素位置が記憶され、ステップＳ１１１において取得されたＡＤＲＣコードが、コード３で示されるコード配列であった場合、図２２におけるタップＰ４が、画素コード生成に用いられる画素の画素位置として選択される。
【０１４４】
ステップＳ１１３において、画素コード生成部１０２は、選択された画素位置に対応する画素の画素値の上位３ビットを抽出する。
【０１４５】
ステップＳ１１４において、画素コード生成部１０２は、コードＢおよびコードＣを算出して、処理は、図２０のステップＳ７３に戻る。
【０１４６】
ステップＳ１１３およびステップＳ１１４の処理は、具体的には、上述した、式（６）および式（７）を用いて、コードＢおよびコードＣを算出する処理と等価である。
【０１４７】
このようにして、ＡＤＲＣコードに対応した差分レベルが小さい画素位置の画素を基に、参照フレームの画素コードを、図２９を用いて後述するカレントフレームの画素コードの算出方法とは異なる方法で算出することができる。
【０１４８】
次に、図２７のフローチャートを参照して、図１８のステップＳ３４において実行されるカレントフレーム情報生成処理１について説明する。
【０１４９】
ステップＳ１３１において、データベース検索部６６は、１フレームメモリ内の画素をカウントするカウンタのカウンタ変数ｍを０に初期化する。
【０１５０】
ステップＳ１３２において、図２８を用いて後述するＡＤＲＣコード生成処理２が実行される。
【０１５１】
ステップＳ１３３において、図２９を用いて後述する画素コード生成処理２が実行される。
【０１５２】
ステップＳ１３４において、特徴量抽出部６３の特徴量生成部９６は、画素コード生成部９４から供給された４ビットの画素コードであるコードＡ、および、ＡＤＲＣコード生成部９３から供給された９ビットのＡＤＲＣコードを用いて、１３ビットの特徴量コードである特徴量コードＡを生成して、データベース検索部６６に供給する。
【０１５３】
ステップＳ１３５において、データベース検索部６６は、カウンタ変数ｍをインクリメントして、ｍ＝ｍ＋１とする。
【０１５４】
ステップＳ１３６において、データベース検索部６６は、カウンタ変数ｍ＝１フレームの画素数であるか否かを判断する。ステップＳ１３６において、カウンタ変数ｍ＝１フレームの画素数ではないと判断された場合、処理は、ステップＳ１３２に戻り、それ以降の処理が繰り返される。ステップＳ１３６において、カウンタ変数ｍ＝１フレームの画素数であると判断された場合、処理は、図１８のステップＳ３５に戻る。
【０１５５】
このような処理により、カレントフレーム情報が算出される。
【０１５６】
次に、図２８のフローチャートを参照して、図２７のステップＳ１３２において実行されるＡＤＲＣコード生成処理２について説明する。
【０１５７】
ステップＳ１５１乃至ステップＳ１５４において、図２１を用いて説明したステップＳ９１乃至ステップＳ９４と同様の処理が、特徴量抽出部６３において実行される。すなわち、特徴量抽出部６３のクラスタップ抽出部９１において設定された所定サイズのクラスコード用タップに含まれる複数の画素の画素値が取得され、ＤＲ演算部９２において、画素値Ｐ１乃至Ｐ９の最大値ＰＭＡＸと最小値ＰＭＩＮが判定されて、画素値Ｐ１乃至Ｐ９のダイナミックレンジＤＲが算出され、最小値ＰＭＩＮとともに、ＡＤＲＣコード生成部９３に供給される。そして、ＡＤＲＣコード生成部９３において、上述した式（４）を用いて閾値Ｔｈが決定される。
【０１５８】
ステップＳ１５５において、特徴量抽出部６３のＡＤＲＣコード生成部９３は、画素値Ｐ１乃至Ｐ９の９画素を、それぞれ閾値Ｔｈと比較し、閾値Ｔｈよりも大きい場合には１に量子化し、閾値Ｔｈよりも小さい場合には０に量子化して、番号順に並べた９ビットを注目画素のＡＤＲＣコードとして生成し、特徴量生成部９６に供給して、処理は、図２７のステップＳ１３３に戻る。
【０１５９】
このような処理により、カレントフレームにおいて、ＡＤＲＣコードが算出される。
【０１６０】
次に、図２９のフローチャートを参照して、図２７のステップＳ１３３において実行される画素コード生成処理２について説明する。
【０１６１】
ステップＳ１７１において、画素コード生成部９４は、ＡＤＲＣコード生成部９３により生成されたＡＤＲＣコードを取得する。
【０１６２】
ステップＳ１７２において、画素コード生成部９４は、画素位置テーブル９５に記憶されている画素位置テーブルを参照して、ＡＤＲＣコードに対応する画素位置を選択する。
【０１６３】
ステップＳ１７３において、画素コード生成部９４は、入力された参照フレームＦｒの注目画素の画素値の上位４ビットを抽出する。
【０１６４】
ステップＳ１７４において、画素コード生成部９４は、コードＡを算出して、処理は、図２７のステップＳ１３４に戻る。
【０１６５】
ステップＳ１７３およびステップＳ１７４の処理は、具体的には、上述した、式（５）を用いて、コードＡを算出する処理と等価である。
【０１６６】
この処理により、画素コードであるコードＡが算出される。
【０１６７】
次に、図３０のフローチャートを参照して、図１８のステップＳ３５において実行されるマッチング処理について説明する。
【０１６８】
ステップＳ１９１において、データベース検索部６６は、特徴量抽出部６３から、カレントフレームＦｃの注目画素の特徴量コードＡの入力を受ける。
【０１６９】
ステップＳ１９２において、データベース検索部６６は、データベース７１に記録されている参照フレームＦｒの特徴量（特徴量アドレス）のうち、カレントフレームＦｃの特徴量コードＡと等しいものを検出する。
【０１７０】
ステップＳ１９３において、データベース検索部６６は、検出された特徴量のアドレスのフラグアドレス１乃至フラグアドレスＫのセルに記載されている画素位置情報を読み込んで、動きベクトル決定部６７に供給する。
【０１７１】
ステップＳ１９４において、動きベクトル決定部６７は、読み込まれた画素位置の中で、カレントフレームＦｃの注目画素に最も近い画素位置を検出する。
【０１７２】
ステップＳ１９５において、動きベクトル決定部６７は、注目画素の画素位置と検出された画素位置を基に、動きベクトルを算出し、処理が終了される。
【０１７３】
ここでは、カレントフレームＦｃの注目画素から最も近い候補が、対応する参照フレームＦｒの画素であるものとして説明したが、動きベクトルの検出方法は、これ以外の方法であってもかまわない。
【０１７４】
以上が、図４を用いて説明した動き検出部５１が実行する図１８の動き検出処理についての説明であるが、図１８のステップＳ３１乃至ステップＳ３５の処理は、一部、並行して実行される。例えば、ｎ−１番目に入力されたフレーム（ｎ−１フレーム）、ｎ番目に入力されたフレーム（ｎフレーム）、および、ｎ＋１番目に入力されたフレーム（ｎ＋１フレーム）が処理されるタイミングの例について、図３１を用いて説明する。
【０１７５】
例えば、フレームメモリ６１にｎフレームが入力されたとき、特徴量抽出部６４においては、ｎ−１フレームを参照フレームとして、特徴量コードＢおよび特徴量コードＣが算出される。
【０１７６】
次に、特徴量抽出部６３において、ｎフレームをカレントフレームとして、特徴量コードＡが算出されているとき、第２のフレームメモリであるフレームメモリ６２にｎフレームが供給され、特徴量抽出部６４において算出されたｎ−１フレームの特徴量コードＢおよび特徴量コードＣが、データベース制御部６５の処理により、データベース７１に登録される。
【０１７７】
そして、その後、データベース検索部６６において、特徴量抽出部６３で算出されたｎフレーム、すなわち、カレントフレームの特徴量コードＡと、データベース７１に登録されているｎ−１フレーム、すなわち、参照フレームの特徴量コードＢおよび特徴量コードＣとがマッチングされて、カレントフレームの特徴量コードＡに対応する特徴量を有する画素位置が検出される。このとき、特徴量抽出部６４において、ｎフレームを参照フレームとして特徴量コードＢおよび特徴量コードＣが算出され、フレームメモリ６１に、カレントフレームであるｎ＋１フレームが入力される。
【０１７８】
次に、特徴量抽出部６３において、カレントフレームであるｎ＋１フレームの特徴量コードＡが算出されているとき、第２のフレームメモリであるフレームメモリ６２にｎ＋１フレームが供給されるとともに、特徴量抽出部６４において算出されたｎフレーム、すなわち、参照フレームの特徴量コードＢおよび特徴量コードＣが、データベース制御部６５の処理により、データベース７１に登録される。
【０１７９】
そして、データベース検索部６６において、特徴量抽出部６３において算出されたｎ＋１フレーム、すなわち、カレントフレームの特徴量コードＡと、データベース７１に登録されているｎフレーム、すなわち、参照フレームの特徴量コードＢおよび特徴量コードＣとがマッチングされ、カレントフレームの特徴量コードＡに対応する特徴量を有する画素位置が検出される。以下、同様に処理が繰り返される。
【０１８０】
このようにして、ステップＳ３１乃至ステップＳ３５の処理は、一部、並行して実行される。
【０１８１】
また、データベースを２つ設けることにより、データベースへの登録処理である参照フレーム情報生成処理と、データベースに登録された情報を用いて実行されるマッチング処理を、並行して行えるようにし、処理を高速化することができる。
【０１８２】
図３２は、データベースを２つ備えるようにした動き検出部１２１の構成を示すブロック図である。なお、図４における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０１８３】
すなわち、図３２の動き検出部１２１は、データベース制御部６５に代わり、データベース７１−１およびデータベース７１−２の２つのデータベースを備え、データベース選択処理部１４１を有するデータベース制御部１３１が備えられ、フレームメモリ６２が省略されている以外は、基本的に、図４を用いて説明した動き検出部５１と同様の構成を有するものである。
【０１８４】
図３３は、図３２のデータベース制御部の更に詳細な構成を示すブロック図である。データベース選択処理部１４１は、データベース７１−１およびデータベース７１−２の一方に、特徴量抽出部６４から供給されるカレントフレームＦｃの特徴量が登録され、他方にすでに登録されている参照フレームＦｒの情報が、データベース検索部６６により読み込まれるように、情報の入出力を制御する。
【０１８５】
すなわち、データベース制御部１３１には、データベース７１−１およびデータベース７１−２の２つのデータベースが備えられ、例えば、カレントフレームＦｃの特徴量が、データベース７１−２に登録されている間、その前の処理でデータベース７１−１に登録された参照フレームＦｒの情報が、データベース検索部６６により読み込まれる。そして、データベース７１−１に登録された参照フレームＦｒと、カレントフレームＦｃとのマッチング処理、および、カレントフレームＦｃの特徴量のデータベース７１−２への登録処理が終了した後、次のフレームがカレントフレームＦｃとなり、カレントフレームＦｃの特徴量がデータベース７１−１に登録され、データベース７１−２に登録されている情報が、参照フレームＦｒの情報としてデータベース検索部６６により読み込まれる。
【０１８６】
すなわち、データベース７１−１からの情報の読み出しと、データベース７１−２への情報の書き込みが、並行して行われ、データベース７１−２からの情報の読み出しと、データベース７１−１への情報の書き込みが、並行して行われる。
【０１８７】
図３４のフローチャートを参照して、図３２の動き検出部１２１が実行する動き検出処理２について説明する。
【０１８８】
ステップＳ２１１において、フレームメモリ６１は、フレームの入力を受ける。フレームメモリ６１は、入力されたフレームを、特徴量抽出部６３および特徴量抽出部６４に供給する。
【０１８９】
ステップＳ２１２において、図１９を用いて説明した参照フレーム情報生成処理が、特徴量抽出部６４において実行される。
【０１９０】
ステップＳ２１３において、図２７を用いて説明したカレントフレーム情報生成処理が、特徴量抽出部６３において実行される。
【０１９１】
ステップＳ２１４において、図３０を用いて説明したマッチング処理が実行されて、処理が終了される。
【０１９２】
ステップＳ２１１乃至ステップＳ２１４の処理は、一部、並行して実行される。例えば、ｎ−１番目に入力されたフレーム（ｎ−１フレーム）、ｎ番目に入力されたフレーム（ｎフレーム）、および、ｎ＋１番目に入力されたフレーム（ｎ＋１フレーム）が処理されるタイミングの例について、図３５を用いて説明する。
【０１９３】
例えば、フレームメモリ６１にｎフレームが入力されたとき、特徴量抽出部６４において、ｎ−１フレームの特徴量コードＢおよび特徴量コードＣが算出されて、データベース制御部１３１に供給される。
【０１９４】
次に、特徴量抽出部６３において、ｎフレームの特徴量コードＡが算出されているとき、特徴量抽出部６４において、ｎフレームの特徴量コードＢおよび特徴量コードＣが算出される。この処理と並行して、特徴量抽出部６４において算出されたｎ−１フレームの特徴量コードＢおよび特徴量コードＣがデータベース制御部１３１の処理により、データベース７１のいずれか一方（以下、第１のデータベースと称する）に登録される。このとき、フレームメモリ６１には、ｎ＋１フレームが入力される。
【０１９５】
そして、その後、データベース検索部６６において、特徴量抽出部６３において算出されたｎフレームの特徴量コードＡと、第１のデータベースに登録されているｎ−１フレームの特徴量コードＢおよび特徴量コードＣとがマッチングされて、特徴量コードＡに対応する特徴量を有する画素位置の情報が得られる。このとき、特徴量抽出部６４において算出された、フレームｎの特徴量コードＢおよび特徴量コードＣが、データベース制御部１３１の処理により、データベース７１の他方（以下、第２のデータベースと称する）に登録される。
【０１９６】
すなわち、第１のデータベースからの情報の読み出しと、第２のデータベースへの情報の書き込みが、並行して行われる。更に、並行して、特徴量抽出部６３において、ｎ＋１フレームの特徴量コードＡが算出され、特徴量抽出部６４において、ｎ＋１フレームの特徴量コードＢおよび特徴量コードＣが算出される。
【０１９７】
そして、データベース検索部６６において、特徴量抽出部６３において算出されたｎ＋１フレームの特徴量コードＡと、第２のデータベースに登録されているｎフレームの特徴量コードＢおよび特徴量コードＣとがマッチングされて、特徴量コードＡに対応する特徴量を有する画素位置の情報が得られる。このとき、特徴量抽出部６４において算出されたフレームｎ＋１の特徴量コードＢおよび特徴量コードＣが、データベース制御部１３１の処理により第１のデータベースに登録され、以下、同様に処理が繰り返される。
【０１９８】
このような構成にすることにより、図３１を用いて説明した場合と比較して、処理を高速化することが可能となる。
【０１９９】
次に、特徴量抽出部６３および特徴量抽出部６４の画素位置テーブル９５に記憶されている画素位置テーブルの生成について説明する。
【０２００】
図３６は、画素位置テーブルを生成する画素位置テーブル生成装置１６１の構成を示すブロック図である。なお、図５における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【０２０１】
クラスタップ抽出部９１、ＤＲ演算部９２、および、ＡＤＲＣコード生成部９３の処理により、画像情報ＡのＡＤＲＣコードが生成され、データ蓄積部１７２に供給される。クラスタップ抽出部９１は、図２２を用いて説明したように、３画素×３画素の９画素のクラスタップを抽出するものとして説明する。
【０２０２】
差分レベル抽出部１７１は、画像情報Ａのクラスタップと、画像情報Ａの前のフレームの画像である画像情報Ｂとの供給を受ける。画像情報Ａと画像情報Ｂにおいて、動きの前後において対応する画素位置は、既知であり、差分レベル抽出部１７１は、動きの前後において対応する画素のレベルの変動（差分レベル）を、クラスタップの９画素のそれぞれの画素位置ごとに検出し、データ蓄積部１７２に供給する。
【０２０３】
データ蓄積部１７２は、差分レベル抽出部１７１から供給された、画素位置ごとの差分レベルを、ＡＤＲＣコード別に蓄積する。図１３を用いて説明したように、画素位置と差分レベルとの関係は、ＡＤＲＣコードによって、規則性を有する。データ蓄積部１７２は、例えば、２５パターン程度、あるいは、それ以上の数の画像情報Ａおよび画像情報Ｂに対応する差分レベル情報を蓄積する。
【０２０４】
画素位置テーブル生成部１７３は、データ蓄積部１７２に蓄積されているデータから、それぞれのＡＤＲＣコードにおいて、最も差分レベルの小さい画素位置を検出し、図１４を用いて説明した画素位置テーブルを生成する。
【０２０５】
次に、図３７のフローチャートを参照して、画素位置テーブル生成装置１６１が実行する画素位置テーブル生成処理について説明する。
【０２０６】
ステップＳ２３１において、図２８を用いて説明したＡＤＲＣコード生成処理２が実行される。
【０２０７】
ステップＳ２３２において、差分レベル抽出部１７１は、画像情報Ａと、画像情報Ａより１フレーム前の画像である画像情報Ｂとの、動き前後において対応する画素位置における画素値の差分レベルを抽出し、データ蓄積部１７２に供給する
【０２０８】
ステップＳ２３３において、データ蓄積部１７２は、差分レベル抽出部１７１から供給された差分レベル情報を、ＡＤＲＣコード生成部９３から供給されたＡＤＲＣコードと対応して蓄積する。ここでは、例えば、２５パターン程度の画像情報Ａおよび画像情報Ｂに対応する差分レベル情報が蓄積されるものとする。
【０２０９】
ステップＳ２３４において、画素位置テーブル生成部１７３は、データ蓄積部１７２に蓄積されている差分レベル情報を参照して、ＡＤＲＣコードごとに差分レベルの最も小さな画素位置を検出する。
【０２１０】
ステップＳ２３５において、画素位置テーブル生成部１７３は、図１４を用いて説明した画素位置テーブルを生成し、処理が終了される。
【０２１１】
このような処理により、図１４を用いて説明した画素位置テーブルが生成される。そして、動きベクトル検出時に、この画素位置テーブルが参照されて、差分レベルの低い画素位置の画素値を基に、特徴量の抽出が行われるので、動きベクトルの検出において、ノイズなどによるレベル変動の影響を削減することが可能となる。
【０２１２】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２１３】
この記録媒体は、図３８に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク２４１（フレキシブルディスクを含む）、光ディスク２４２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）を含む）、光磁気ディスク２４３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）（商標）を含む）、もしくは半導体メモリ１４４などよりなるパッケージメディアなどにより構成される。
【０２１４】
図３８を用いて、パーソナルコンピュータ２０１について説明する。
【０２１５】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２２１は、入出力インターフェース２２２および内部バス２２３を介して、ユーザが、入力部２２４を用いて入力した各種指令に対応する信号や、ネットワークインターフェース２３０を介して、他のパーソナルコンピュータが送信した制御信号の入力を受け、入力された信号に基づいた各種処理を実行する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２５は、ＣＰＵ２２１が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２６は、ＣＰＵ２２１の実行において使用するプログラムや、その実行において適宜変化するパラメータを格納する。ＣＰＵ２２１、ＲＯＭ２２５、およびＲＡＭ２２６は、内部バス２２３により相互に接続されている。
【０２１６】
内部バス２２３は、入出力インターフェース２２２とも接続されている。入力部２２４は、例えば、キーボード、タッチパッド、ジョグダイヤル、あるいはマウスなどからなり、ユーザがＣＰＵ２２１に各種の指令を入力するとき操作される。表示部２２７は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）や液晶表示装置などからなり、各種情報をテキスト、あるいはイメージなどで表示する。
【０２１７】
ＨＤＤ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）２２８は、ハードディスクを駆動し、それらにＣＰＵ２２１によって実行するプログラムや情報を記録または再生させる。ドライブ２２９には、必要に応じて磁気ディスク２４１、光ディスク２４２、光磁気ディスク２４３、および半導体メモリ２４４が装着され、データの授受を行う。
【０２１８】
ネットワークインターフェース２３０は、他のパーソナルコンピュータや、パーソナルコンピュータ以外の各種装置と所定のケーブルを用いて有線で、もしくは無線で接続され、それらの機器との情報の授受を行ったり、インターネットを介してウェブサーバにアクセスし、情報の授受を行う。
【０２１９】
これらの入力部２２４乃至ネットワークインターフェース２３０は、入出力インターフェース２２２および内部バス２２３を介してＣＰＵ２２１に接続されている。
【０２２０】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２２１】
【発明の効果】
このように、本発明によれば、カレントフレームの注目画素に対応する前記参照フレームの画素を検出することができる。特に、参照フレームとカレントフレームとで画素の特徴量が変化しても、正しく検出することができるので、正しい動きベクトルを求めることが可能となる。
【０２２２】
また、他の本発明によれば、ＡＤＲＣコードごとに差分レベルの最も小さな画素位置を検出して、画像処理に用いる画素の画素位置を示すテーブルを生成することができる。
【図面の簡単な説明】
【図１】従来の動き検出部の構成を示すブロック図である。
【図２】動きベクトルの検出方法を説明する図である。
【図３】図１の動き検出部による動き検出処理を説明するフローチャートである。
【図４】本発明を適用した動き検出部の構成を示すブロック図である。
【図５】図４の特徴量抽出部６３の構成を示すブロック図である。
【図６】クラスタップを説明する図である。
【図７】クラスタップを説明する図である。
【図８】クラスタップを説明する図である。
【図９】クラスタップを説明する図である。
【図１０】クラスタップを説明する図である。
【図１１】クラスタップを説明する図である。
【図１２】ＡＤＲＣコードを説明する図である。
【図１３】ＡＤＲＣコードごとのタップ位置と差分レベルとの関係について説明する図である。
【図１４】画素位置テーブルについて説明する図である。
【図１５】図４の特徴量抽出部６４の構成を示すブロック図である。
【図１６】画素コードとして算出されるコードＡ、コードＢ、およびコードＣについて説明する図である。
【図１７】図４のデータベースの構造を説明する図である。
【図１８】図４の動き検出部による動き検出処理１を説明するフローチャートである。
【図１９】参照フレーム情報生成処理を説明するフローチャートである。
【図２０】特徴量算出処理を説明するフローチャートである。
【図２１】ＡＤＲＣコード生成処理１を説明するフローチャートである。
【図２２】クラスコード用タップの一例を示す図である。
【図２３】マスク化する画素位置について説明する図である。
【図２４】マスク化する画素位置について説明する図である。
【図２５】マスク化する画素位置について説明する図である。
【図２６】画素コード生成処理１を説明するフローチャートである。
【図２７】カレントフレーム情報生成処理を説明するフローチャートである。
【図２８】ＡＤＲＣコード生成処理２を説明するフローチャートである。
【図２９】画素コード生成処理２を説明するフローチャートである。
【図３０】マッチング処理を説明するフローチャートである。
【図３１】図４の動き検出部による動き検出処理のタイミングを説明する図である。
【図３２】本発明を適用した動き検出部の他の構成を示すブロック図である。
【図３３】図３２のデータベース制御部の構成を示すブロック図である。
【図３４】図３２の動き検出部による動き検出処理２を説明するフローチャートである。
【図３５】図３２の動き検出部による動き検出処理のタイミングを説明する図である。
【図３６】画素位置テーブル生成装置の構成例を示すブロック図である。
【図３７】画素位置テーブル生成処理を説明するフローチャートである。
【図３８】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
５１  動き検出部，  ６１，６２  フレームメモリ，  ６３，６４  特徴量抽出部，  ６５  データベース制御部，  ６６  データベース検索部，  ６７  動きベクトル決定部，  ７１  データベース，  ９１  クラスタップ抽出部，  ９２  ＤＲ演算部，  ９３  ＡＤＲＣコード生成部，  ９４  画素コード生成部，９５  画素位置テーブル，  ９６  特徴量生成部，  １０１  コード変換部，１０２  画素コード生成部，  １２１  動き検出部，  １３１  データベース制御部，  １４１  データベース選択処理部，  １６１  画素位置テーブル生成装置，  １７１  差分レベル抽出部，  １７２  データ蓄積部，  １７３  画素位置テーブル生成部，  ２０１  パーソナルコンピュータ
【図１】
2004165837.tif 000004
【図２】
2004165837.tif 000005
【図３】
2004165837.tif 000006
【図４】
2004165837.tif 000007
【図５】
2004165837.tif 000008
【図６】
2004165837.tif 000009
【図７】
2004165837.tif 000010
【図８】
2004165837.tif 000011
【図９】
2004165837.tif 000012
【図１０】
2004165837.tif 000013
【図１１】
2004165837.tif 000014
【図１２】
2004165837.tif 000015
【図１３】
2004165837.tif 000016
【図１４】
2004165837.tif 000017
【図１５】
2004165837.tif 000018
【図１６】
2004165837.tif 000019
【図１７】
2004165837.tif 000020
【図１８】
2004165837.tif 000021
【図１９】
2004165837.tif 000022
【図２０】
2004165837.tif 000023
【図２１】
2004165837.tif 000024
【図２２】
2004165837.tif 000025
【図２３】
2004165837.tif 000026
【図２４】
2004165837.tif 000027
【図２５】
2004165837.tif 000028
【図２６】
2004165837.tif 000029
【図２７】
2004165837.tif 000030
【図２８】
2004165837.tif 000031
【図２９】
2004165837.tif 000032
【図３０】
2004165837.tif 000033
【図３１】
2004165837.tif 000034
【図３２】
2004165837.tif 000035
【図３３】
2004165837.tif 000036
【図３４】
2004165837.tif 000037
【図３５】
2004165837.tif 000038
【図３６】
2004165837.tif 000039
【図３７】
2004165837.tif 000040
【図３８】
2004165837.tif 000041