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