(57)【要約】【課題】動きベクトル等を精度良く検出する。【解決手段】ステップＳ２１で、注目画素を中心とするクラスコード用ブロックを設定する。ステップＳ２２で、クラスコード用ブロックに含まれる画素値Ｐ１乃至Ｐ９のうち、所定の個数の画素値を用いた複数のクラスコード用タップ候補を生成する。ステップＳ２３で、各クラスコード用タップ候補に対して評価値を演算する。ステップＳ２４で、複数のクラスコード用タップ候補のうち、評価値が最も大きいものを、クラスコード用タップに決定する。ステップＳ２５で、クラスコード用タップに含まれる画素の画素値を、それぞれ、１ビットＡＤＲＣにより０または１に符号化してクラスコードを生成する。本発明は、動画像信号を圧縮符号化するエンコードに適用することができる。【選択図】　　　図１２
2004134911.tif 000002
【特許請求の範囲】
【請求項１】
特徴量を示すクラスコードを生成し、生成した前記クラスコードに基づいてデータを処理するデータ処理装置において、
入力されたデータに基づいて、注目データの近傍の複数のデータからなる複数のブロック候補を設定する設定手段と、
前記設定手段によって設定された各ブロック候補に対して、前記ブロック候補を構成する複数のデータの分散の程度を示す評価値を演算する演算手段と、
前記演算手段によって演算された前記評価値に基づき、複数の前記ブロック候補の中から、ブロックを決定する決定手段と、
前記決定手段によって決定された前記ブロックを構成する複数のデータを、それぞれ、前記演算手段によって算出される閾値に基づいて符号化し、前記注目データに対する前記クラスコードを生成する生成手段と
を含むことを特徴とするデータ処理装置。
【請求項２】
前記演算手段は、
前記設定手段によって設定された各ブロック候補に対して、前記ブロック候補を構成する複数の前記データの最小値に、複数の前記データのダイナミックレンジの１／２を加算して前記閾値を算出する閾値算出手段と、
前記ブロック候補を構成する複数の前記データと、前記閾値算出手段によって算出された前記閾値との差の総和を、前記評価値として算出する差分総和算出手段と
を含むことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記データは、画像を構成する画素の画素値である
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
特徴量を示すクラスコードを生成し、生成した前記クラスコードに基づいてデータを処理するデータ処理装置のデータ処理方法において、
入力されたデータに基づいて、注目データの近傍の複数のデータからなる複数のブロック候補を設定する設定ステップと、
前記設定ステップの処理で設定された各ブロック候補に対して、前記ブロック候補を構成する複数のデータの分散の程度を示す評価値を演算する演算ステップと、
前記演算ステップの処理で演算された前記評価値に基づき、複数の前記ブロック候補の中から、ブロックを決定する決定ステップと、
前記決定ステップの処理で決定された前記ブロックを構成する複数のデータを、それぞれ、前記演算ステップの処理で算出される閾値に基づいて符号化し、前記注目データに対する前記クラスコードを生成する生成ステップと
を含むことを特徴とするデータ処理方法。
【請求項５】
特徴量を示すクラスコードを生成し、生成した前記クラスコードに基づいてデータを処理するためのプログラムであって、
入力されたデータに基づいて、注目データの近傍の複数のデータからなる複数のブロック候補を設定する設定ステップと、
前記設定ステップの処理で設定された各ブロック候補に対して、前記ブロック候補を構成する複数のデータの分散の程度を示す評価値を演算する演算ステップと、
前記演算ステップの処理で演算された前記評価値に基づき、複数の前記ブロック候補の中から、ブロックを決定する決定ステップと、
前記決定ステップの処理で決定された前記ブロックを構成する複数のデータを、それぞれ、前記演算ステップの処理で算出される閾値に基づいて符号化し、前記注目データに対する前記クラスコードを生成する生成ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項６】
特徴量を示すクラスコードを生成し、生成した前記クラスコードに基づいてデータを処理するコンピュータに、
入力されたデータに基づいて、注目データの近傍の複数のデータからなる複数のブロック候補を設定する設定ステップと、
前記設定ステップの処理で設定された各ブロック候補に対して、前記ブロック候補を構成する複数のデータの分散の程度を示す評価値を演算する演算ステップと、
前記演算ステップの処理で演算された前記評価値に基づき、複数の前記ブロック候補の中から、ブロックを決定する決定ステップと、
前記決定ステップの処理で決定された前記ブロックを構成する複数のデータを、それぞれ、前記演算ステップの処理で算出される閾値に基づいて符号化し、前記注目データに対する前記クラスコードを生成する生成ステップと
を含む処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置および方法、記録媒体、並びにプログラムに関し、例えば、連続する画像上の画素同士をマッチングさせ、マッチングの結果に基づいて動きベクトルを検出する場合に用いて好適なデータ処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
例えば、ＭＰＥＧ２（Ｍｏｖｉｎｇ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐ）方式等の画像信号を圧縮符号化する処理においては、隣接するフレーム間の相関関係に基づく符号化処理、いわゆる動き補償フレーム間予測が用いられている。動き補償フレーム間予測では、隣接するフレーム間（一方を現フレーム、他方を参照フレームと記述する）における各画素単位または所定サイズの画素ブロック単位の動きベクトルを検出する処理が必要となる。
【０００３】
動きベクトルを検出する方法としては、従来、ブロックマッチングアルゴリズムと称される方法が用いられている（例えば、特許文献１参照）。
【０００４】
図１は、ブロックマッチングアルゴリズムに従って動きベクトルを検出する動きベクトル検出装置の構成例を示している。この動きベクトル検出装置１は、入力される画像信号を１フレーム分だけ保持して後段に出力するフレームメモリ２，３、およびフレームメモリ２，３から入力される２フレームの画像信号に基づき、フレームメモリ２から入力される画像信号の画像内の動きベクトルを検出する検出部４から構成される。
【０００５】
フレームメモリ２は、入力された画像信号を１フレーム分だけ保持し、次のフレームの画像信号が入力されたとき、保持していた画像信号をフレームメモリ３および検出部４に出力する。フレームメモリ３は、フレームメモリ２から入力された画像信号を１フレーム分だけ保持し、次のフレームの画像信号が入力されたとき、保持していた画像信号を検出部４に出力する。
【０００６】
したがって、検出部４には、前後する２フレームの画像信号が入力されることになる。以下、フレームメモリ２から検出部４に入力された１フレーム分の画像信号の画像を、対象フレームＦｃと記述する。また、フレームメモリ３から検出部４に入力された、対象フレームＦｃよりも１フレーム前の画像信号の画像を、参照フレームＦｒと記述する。
【０００７】
検出部４は、ブロックマッチングアルゴリズムに従い、対象フレームＦｃ内の動きベクトルを算出する。ブロックマッチングアルゴリズムについて、図２に示す対象フレームＦｃと参照フレームＦｒの対応図および図３に示すフローチャートを参照して説明する。
【０００８】
ブロックマッチングアルゴリズムでは、対象フレームＦｃ内の全ての画素が、順次、注目画素に設定され、注目画素を中心とする所定サイズ（Ｌ×Ｌ画素）の基準ブロックと、参照フレームＦｒのサーチエリアＳＲ内で移動される参照ブロック（基準ブロックと同じサイズ）との対応する画素対の画素値の差分絶対値和が次式（１）に従って演算される。
ΣｉΣｊ＝｜Ｆｃ（ｉ，ｊ）−Ｆｒｎ（ｉ，ｊ）｜　　　　　　　・・・（１）
【０００９】
ただし、Ｆｃ（ｉ，ｊ）は基準ブロックの画素の画素値であり、Ｆｒｎ（ｉ，ｊ）は識別番号ｎの参照ブロックの画素の画素値であり、Σｉは、ｉを１からＬまで１ずつインクリメントしたときの総和演算、Σｊは、ｊを１からＬまで１ずつインクリメントしたときの総和演算を意味するものとする。
【００１０】
そして、基準ブロックと参照ブロックとの対応する画素対の画素値の差分絶対値和が最小となるときの参照ブロックの中心座標と注目画素の座標との差分ベクトルが動きベクトルとして算出される。
【００１１】
具体的には、対象フレームＦｃの注目画素に対して、以下の処理が実行される。ステップＳ１において、検出部４は、参照フレームＦｃに、対象フレームＦｃの注目画素の座標（ｘ，ｙ）と同じ座標を中心として、基準ブロックよりも大きなサイズのサーチエリアＳＲを設定する。
【００１２】
ステップＳ２において、検出部４は、差分絶対値和の最小値を格納する変数ｍｉｎを、その最大値に初期化する。例えば、１画素の画素値が８ビット、基準ブロックのサイズが４×４画素である場合、変数ｍｉｎが、４０９６（＝２８×１６）に初期化される。
【００１３】
ステップＳ３において、検出部４は、サーチエリアＳＲ内で移動させる参照ブロックの識別番号ｎを１に初期化する。ステップＳ４において、検出部４は、差分絶対値和の演算結果を格納する変数ｓｕｍを０に初期化する。
【００１４】
ステップＳ５において、検出部４は、対象フレームＦｃの基準ブロックと、参照フレームＦｒに設定したサーチエリアＳＲ内の識別番号ｎの参照ブロックとの同じ場所に位置する画素対の画素の差分絶対値和を演算して、変数ｓｕｍに代入する。ステップＳ６において、検出部４は、ステップＳ５の演算結果である変数ｓｕｍと変数ｍｉｎを比較し、変数ｓｕｍが変数ｍｉｎよりも小さいか否かを判定する。変数ｓｕｍが変数ｍｉｎよりも小さいと判定された場合、処理はステップＳ７に進む。
【００１５】
ステップＳ７において、検出部４は、変数ｍｉｎを、変数ｓｕｍで置換する。また、検出部４は、いまの参照ブロックの識別番号ｎを、動きベクトル番号として記憶する。
【００１６】
ステップＳ８において、検出部４は、参照ブロックの識別番号ｎが最大値であるか否か、すなわち、サーチエリアＳＲの全域に参照ブロックを移動し終えたか否かを判定する。参照ブロックの識別番号ｎが最大値ではないと判定された場合、処理はステップＳ９に進む。ステップＳ９において、検出部４は、参照ブロックの識別番号ｎを１だけインクリメントし、ステップＳ４の処理に戻って、それ以降の処理を繰り返す。
【００１７】
なお、ステップＳ６において、変数ｓｕｍが変数ｍｉｎよりも小さくないと判定された場合、処理はステップＳ７の処理はスキップされる。
【００１８】
その後、ステップＳ８において、参照ブロックの識別番号ｎが最大値ではないと判定された場合、すなわち、サーチエリアＳＲの全域に参照ブロックを移動し終えた場合、処理はステップＳ１０に進む。
【００１９】
ステップＳ１０において、検出部４は、動きベクトル番号として記憶している識別番号ｎに対応する参照ブロックの中心座標と、対象フレームＦｃの注目画素の座標（ｘ，ｙ）との差分ベクトルを、対象フレームＦｃの注目画素の動きベクトルとして算出する。以上で、ブロックマッチングアルゴリズムの説明を終了する。
【００２０】
【特許文献１】
特許第３２７７４１７号公報
【００２１】
【発明が解決しようとする課題】
上述したブロックマッチングアルゴリズムは、ステップＳ５における画素対の画素の差分絶対値和の演算量が非常に膨大となっており、画像圧縮処理の大半の時間がこの演算に費やされてしまうという課題があった。
【００２２】
本発明はこのような状況に鑑みてなされたものであり、僅かな演算量のみで画像間のマッチングを行うことができ、しかも動きベクトル等を精度良く検出できるようにすることを目的とする。
【００２３】
【課題を解決するための手段】
本発明のデータ処理装置は、入力されたデータに基づいて、注目データの近傍の複数のデータからなる複数のブロック候補を設定する設定手段と、設定手段によって設定された各ブロック候補に対して、ブロック候補を構成する複数のデータの分散の程度を示す評価値を演算する演算手段と、演算手段によって演算された評価値に基づき、複数のブロック候補の中から、ブロックを決定する決定手段と、決定手段によって決定されたブロックを構成する複数のデータを、それぞれ、演算手段によって算出される閾値に基づいて符号化し、注目データに対するクラスコードを生成する生成手段とを含むことを特徴とする。
【００２４】
前記演算手段は、設定手段によって設定された各ブロック候補に対して、ブロック候補を構成する複数のデータの最小値に、複数のデータのダイナミックレンジの１／２を加算して閾値を算出する閾値算出手段と、ブロック候補を構成する複数のデータと、閾値算出手段によって算出された閾値との差の総和を、評価値として算出する差分総和算出手段とを含むようにすることができる。
【００２５】
前記データは、画像を構成する画素の画素値とすることができる。
【００２６】
本発明のデータ処理方法は、入力されたデータに基づいて、注目データの近傍の複数のデータからなる複数のブロック候補を設定する設定ステップと、設定ステップの処理で設定された各ブロック候補に対して、ブロック候補を構成する複数のデータの分散の程度を示す評価値を演算する演算ステップと、演算ステップの処理で演算された評価値に基づき、複数のブロック候補の中から、ブロックを決定する決定ステップと、決定ステップの処理で決定されたブロックを構成する複数のデータを、それぞれ、演算ステップの処理で算出される閾値に基づいて符号化し、注目データに対するクラスコードを生成する生成ステップとを含むことを特徴とする。
【００２７】
本発明の記録媒体のプログラムは、入力されたデータに基づいて、注目データの近傍の複数のデータからなる複数のブロック候補を設定する設定ステップと、設定ステップの処理で設定された各ブロック候補に対して、ブロック候補を構成する複数のデータの分散の程度を示す評価値を演算する演算ステップと、演算ステップの処理で演算された評価値に基づき、複数のブロック候補の中から、ブロックを決定する決定ステップと、決定ステップの処理で決定されたブロックを構成する複数のデータを、それぞれ、演算ステップの処理で算出される閾値に基づいて符号化し、注目データに対するクラスコードを生成する生成ステップとを含むことを特徴とする。
【００２８】
本発明のプログラムは、入力されたデータに基づいて、注目データの近傍の複数のデータからなる複数のブロック候補を設定する設定ステップと、設定ステップの処理で設定された各ブロック候補に対して、ブロック候補を構成する複数のデータの分散の程度を示す評価値を演算する演算ステップと、演算ステップの処理で演算された評価値に基づき、複数のブロック候補の中から、ブロックを決定する決定ステップと、決定ステップの処理で決定されたブロックを構成する複数のデータを、それぞれ、演算ステップの処理で算出される閾値に基づいて符号化し、注目データに対するクラスコードを生成する生成ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００２９】
本発明のデータ処理装置および方法、並びにプログラムにおいては、注目データの近傍の複数のデータからなる複数のブロック候補が設定され、設定された各ブロック候補に対して、ブロック候補を構成する複数のデータの分散の程度を示す評価値が演算され、演算された評価値に基づき、複数のブロック候補の中から、ブロックが決定される。さらに、決定されたブロックを構成する複数のデータが、それぞれ、評価値が演算される過程で算出される閾値に基づいて符号化され、注目データに対するクラスコードが生成される。
【００３０】
【発明の実施の形態】
本発明を適用した動きベクトル検出装置の構成例について、図４を参照して説明する。この動きベクトル検出装置１１は、フレームメモリ１２，１３、クラスコード生成部１４、ＭＥメモリ１５、および動きベクトル演算部１６から構成される。
【００３１】
フレームメモリ１２は、入力された画像信号を１フレーム分だけ保持し、次のフレームの画像信号が入力されたとき、保持していた画像信号をフレームメモリ１３およびクラスコード生成部１４に出力する。フレームメモリ１３は、入力された画像信号を１フレーム分だけ保持し、次のフレームの画像信号がフレームメモリ１２から入力されたとき、保持していた画像信号をクラスコード生成部１４に出力する。
【００３２】
従って、フレームメモリ１３からクラスコード生成部１４に入力される画像信号は、フレームメモリ１２からクラスコード生成部１４に入力される画像信号の１フレーム前のものとなる。以下、フレームメモリ１２からクラスコード生成部１４に入力される１フレーム分の画像信号の画像を、対象フレームＦｃと記述する。また、フレームメモリ１３からクラスコード生成部１４に入力される、対象フレームＦｃの１フレーム前の画像信号の画像を、参照フレームＦｒと記述する。
【００３３】
クラスコード生成部１４は、対象フレームＦｃの各画素に対して空間的な特徴を示すクラスコードを生成して、動きベクトル演算部１６に出力する。具体的には、対象フレームＦｃの全ての画素を、順次、注目画素に設定し、注目画素を中心とする所定サイズのクラスコード用タップを決定して、クラスコード用タップに含まれる複数の画素の画素値を、１ビットＡＤＲＣ（Ａｄａｐｔｉｖｅ　Ｄｙｎａｍｉｃ　Ｒａｎｇｅ　Ｃｏｄｉｎｇ：適応的量子化）により、それぞれ０また１に量子化して、所定のビット数のクラスコードを生成する。なお、クラスコードを生成する処理については、図６以降を参照して詳述する。
【００３４】
また、クラスコード生成部１４は、参照フレームＦｒの各画素に対して空間的な特徴を示すクラスコードを生成して、ＭＥメモリ１５に出力する。ただし、参照フレームＦｒは、１回前のタイミングにおいて対象フレームＦｃであったものであるので、そのクラスコードは既に１回前に生成されている。よって、１回前のタイミングにおいて対象フレームＦｃの各画素に対して生成されたクラスコードを保持するようにして、今回の参照フレームＦｒの各画素に対するクラスコードとして流用するようにしてもよい。
【００３５】
ＭＥメモリ１５は、クラスコード生成部１４から入力される参照フレームＦｒの各画素に対するクラスコードを、クラスコードに各画素の座標を対応付けて記憶する。
【００３６】
図５は、ＭＥメモリ１５の構造を示している。ＭＥメモリ１５は、特徴量アドレス０乃至ａと、フラグアドレス０乃至ｂによって示されるａ×ｂ個のセルにより構成される。以下、例えば、特徴量アドレス１、フラグアドレス２のセルをセル（１，２）と記述する。
【００３７】
特徴量アドレスは、クラスコード生成部１４によって生成されるクラスコードに対応する。例えば、クラスコードが７ビットである場合、特徴量アドレスの最大値ａ＝２７となり、クラスコードが９ビットである場合、特徴量アドレスの最大値ａ＝２９となる。
【００３８】
特徴量アドレス０のフラグアドレス１以降のセルには、クラスコード生成部１４によってクラスコード０が生成された参照フレームＦｒの画素の座標がラスタ順に格納される。特徴量アドレス０のフラグアドレス０のセルには、クラスコード０の画素の座標が格納されている、特徴量アドレス０のフラグアドレス１以降のセルの数が格納される。例えば、参照フレームＦｒの画素のうち、３画素に対してクラスコード０が生成された場合、セル（０，１）、セル（０，２）、セル（０，３）に、３画素それぞれの座標が格納され、セル（０，０）に、３が格納される。
【００３９】
特徴量アドレス１のフラグアドレス１以降のセルには、クラスコード生成部１４によってクラスコード１が生成された参照フレームＦｒの画素の座標がラスタ順に格納される。特徴量アドレス１のフラグアドレス０のセルには、クラスコード１の画素の座標が格納されている、特徴量アドレス０のフラグアドレス１以降のセルの数が格納される。例えば、参照フレームＦｒの画素のうち、１０画素に対してクラスコード１が生成された場合、セル（１，１）、・・・、セル（１，１０）に、１０画素それぞれの座標が格納され、セル（１，０）には、１０が格納される。特徴量アドレス２以降のセルについても同様である。
【００４０】
図４に戻る。動きベクトル演算部１６は、対象フレームＦｃの各画素について、同じクラスコードを有する参照フレームＦｒの画素の座標を、ＭＥメモリ１５から検索し、検索された画素のうち、注目画素の座標に最も距離が近い座標の画素を、注目画素に対応する画素に決定して、注目画素の動きベクトルを算出する。
【００４１】
なお、ＭＥメモリ１５の構造、および動きベクトル演算部１６の処理の詳細については、本出願人が特願２００２−２２２０４４号として既に提案済である。
【００４２】
次に、本発明の主眼であるクラスコード生成部４による第１のクラスコード生成処理について、図６のフローチャートを参照して説明する。この処理は、対象フレームＦｃの各画素が、順次、注目画素に設定されて、注目画素に対して実行される。
【００４３】
ステップＳ１１において、クラスコード生成部１４は、注目画素を中心とする所定サイズのクラスコード用タップを設定し、クラスコード用タップに含まれる複数の画素の画素値を取得する。以下においては、図７に示すように、クラスコード用タップのサイズを３×３画素とし、左上の画素を先頭に右下の画素までの画素値をそれぞれＰ１乃至Ｐ９として説明を継続する。
【００４４】
ステップＳ１２において、クラスコード生成部１４は、画素値Ｐ１乃至Ｐ９の最大値ＰＭＡＸと最小値ＰＭＩＮを判定する。ステップＳ１３において、クラスコード生成部１４は、画素値Ｐ１乃至Ｐ９のダイナミックレンジＤＲ（＝｜最大値ＰＭＡＸ−最小値ＰＭＩＮ｜）を算出する。ステップＳ１４において、クラスコード生成部１４は、次式（２）のように、画素値Ｐ１乃至Ｐ９の最小値ＰＭＩＮに、ダイナミックレンジＤＲ／２を加算して閾値Ｔｈを決定する。
Ｔｈ＝ＰＭＩＮ＋ＤＲ／２　　　　　　　　　　　　　　　　　　・・・（２）
【００４５】
ステップＳ１５において、クラスコード生成部１４は、画素値Ｐ１乃至Ｐ９のうち、閾値Ｔｈに最も近い所定の個数（例えば、２個）の画素値を除外する。ステップＳ１６において、クラスコード生成部１４は、画素値Ｐ１乃至Ｐ９のうちの残った７画素を、それぞれ閾値Ｔｈと比較し、閾値Ｔｈよりも大きい場合には１に量子化し、閾値Ｔｈよりも小さい場合には０に量子化して、番号順に並べた７ビットを注目画素のクラスコードとして生成する。
【００４６】
例えば、クラスコード用タップに含まれる９画素の画素値Ｐ１乃至Ｐ９が図８に示すような状態である場合、閾値Ｔｈに最も近い画素値Ｐ６と画素値Ｐ８が除外され、７ビットのクラスコード１０１００１１が生成される。
【００４７】
また例えば、クラスコード用タップに含まれる９画素の画素値Ｐ１乃至Ｐ９が図９に示すような状態である場合、閾値Ｔｈに最も近い画素値Ｐ５と画素値Ｐ６が除外され、７ビットのクラスコード１０１０１０１が生成される。
【００４８】
なお、閾値Ｔｈに近い所定の個数の画素値を除外する代わりに、閾値Ｔｈに近い所定の個数の画素値を、それぞれ、０に量子化した場合の９ビットのクラスコードと、１に量子化した場合の９ビットのクラスコードと生成するようにしてもよい。
【００４９】
すなわち、例えば、クラスコード用タップに含まれる９画素の画素値Ｐ１乃至Ｐ９が図１０に示すような状態である場合、閾値Ｔｈに最も近い２個の画素値Ｐ６と画素値Ｐ８を、それぞれ、０に量子化した場合と、１に量子化した場合の４種類の９ビットのクラスコード１０１０００１０１、１０１０００１１１、１０１００１１０１、１０１００１１１１を、注目画素に対応するクラスコードとして生成するようにしてもよい。
【００５０】
また、閾値Ｔｈに近い所定の個数の画素値に対して、上述したような処理を施すことの代わりに、閾値Ｔｈを中心とする所定の範囲（±Δ）に含まれる全ての画素値に対して、上述したような処理を施すようにしてもよい。
【００５１】
例えば、クラスコード用タップに含まれる９画素の画素値Ｐ１乃至Ｐ９が図１１に示すような状態である場合、閾値Ｔｈを中心とする所定の範囲（±Δ）に含まれる画素値Ｐ６と画素値Ｐ８を、それぞれ、０に量子化した場合と、１に量子化した場合の４種類の９ビットのクラスコード１０１０００１１１、１０１００１１１１、１１１０００１１１、１１１００１１１１を生成するようにしてもよい。
【００５２】
あるいは、閾値Ｔｈを中心とする所定の範囲（±Δ）に含まれる画素値Ｐ６と画素値Ｐ８を除外して、７ビットのクラスコードを生成するようにしてもよい。
【００５３】
このように、クラスコード用タップに含まれる全画素のうち、閾値Ｔｈの近傍の画素値に対して、量子化の対象から除外するか、あるいは、０に量子化した場合のクラスコードと、１に量子化した場合のクラスコードを生成するようにしたことにより、閾値Ｔｈの近傍の画素値がノイズなどに影響されて変動したとしても、クラスコード内にビットの反転が発生することを抑止することができる。したがって、クラスコードのロバスト性を向上させることができる。
【００５４】
なお、クラスコード用タップを構成する画素の数、およびクラスコードのビット数は、上述した例に限るものではなく、任意である。以上で、第１のクラスコード生成処理の説明を終了する。
【００５５】
次に、上述した第１のクラスコード生成処理に代えることができる、第２のクラスコード生成処理について、図１２のフローチャートを参照して説明する。この処理は、対象フレームＦｃの各画素が、順次、注目画素に設定されて、注目画素に対して実行される。
【００５６】
ステップＳ２１において、クラスコード生成部１４は、注目画素を中心とする所定サイズのクラスコード用ブロックを設定し、クラスコード用ブロックに含まれる複数の画素の画素値を取得する。以下においては、図１３に示すように、クラスコード用ブロックのサイズを３×３画素とし、左上の画素を先頭に右下の画素までの画素値をそれぞれＰ１乃至Ｐ９として説明を継続する。
【００５７】
ステップＳ２２において、クラスコード生成部１４は、クラスコード用ブロックに含まれる画素値Ｐ１乃至Ｐ９のうち、所定の個数（以下、例えば７個とする）の画素値を用いた複数のクラスコード用タップ候補を生成する。ここで生成されるクラスコード用タップ候補のパターンは、予め設定されている。図１４は、生成される複数のクラスコード用タップ候補の３例を示している。なお、図１４のクラスコード用タップ候補上の矢印は、画素値を量子化して並べ、７ビットのクラスコードを生成するときの並び順を示している。
【００５８】
ステップＳ２３において、クラスコード生成部１４は、いずれのクラスコード用タップ候補が最もクラスコード用タップに適しているかを判断するために、各クラスコード用タップ候補に対して評価値を演算する。
【００５９】
各クラスコード用タップ候補の評価値を演算する処理について、図１５のフローチャートを参照して説明する。ステップＳ３１において、クラスコード生成部１４は、クラスコード用タップ候補に含まれる７画素の画素値のうちの最大値ＰＭＡＸと最小値ＰＭＩＮを検出する。ステップＳ３２において、クラスコード生成部１４は、クラスコード用タップ候補に含まれる７画素の画素値のダイナミックレンジＤＲ（＝｜最大値ＰＭＡＸ−最小値ＰＭＩＮ｜）を算出する。
【００６０】
ステップＳ３３において、クラスコード生成部１４は、式（２）を用いて閾値Ｔｈを決定する。
【００６１】
ステップＳ３４において、クラスコード生成部１４は、当該クラスコード用タップ候補の評価値として、クラスコード用タップ候補に含まれる７画素の画素値と閾値Ｔｈとの差の総和を演算する。
【００６２】
例えば、図１６に示すような画素値を有するクラスコード用タップ候補１（図１４Ａ）の評価値は、次式（３）のように演算される。
評価値＝｜Ｔｈ１−Ｐ３｜＋｜Ｔｈ１−Ｐ４｜＋｜Ｔｈ１−Ｐ５｜＋｜Ｔｈ１−Ｐ６｜＋｜Ｔｈ１−Ｐ７｜＋｜Ｔｈ１−Ｐ８｜＋｜Ｔｈ１−Ｐ９｜　　　　　　　　　　　　　　　　・・・（３）
ただし、Ｔｈ１は、クラスコード用タップ候補１に含まれる７画素の画素値に基づいて算出された閾値である。
【００６３】
また、例えば、図１７に示すような画素値を有するクラスコード用タップ候補２（図１４Ｂ）の評価値は、次式（４）のように演算される。
評価値＝｜Ｔｈ２−Ｐ３｜＋｜Ｔｈ２−Ｐ４｜＋｜Ｔｈ２−Ｐ５｜＋｜Ｔｈ２−Ｐ６｜＋｜Ｔｈ２−Ｐ７｜＋｜Ｔｈ２−Ｐ８｜＋｜Ｔｈ２−Ｐ９｜　　　　　　　　　　　　　　　　・・・（４）
ただし、Ｔｈ２は、クラスコード用タップ候補２に含まれる７画素の画素値に基づいて算出された閾値である。
【００６４】
以上で、各クラスコード用タップ候補の評価値を演算する処理の説明を終了する。処理は図１２のステップＳ２４に戻る。
【００６５】
ステップＳ２４において、クラスコード生成部１４は、複数のクラスコード用タップ候補のうち、ステップＳ２３の処理で演算した評価値が最も大きいもの（すなわち、閾値Ｔｈを中心とする各画素値の分散が大きいもの）を、クラスコード用タップに決定する。
【００６６】
ステップＳ２５において、クラスコード生成部１４は、ステップＳ２４で決定されたクラスコード用タップに含まれる７画素の画素値を、それぞれ、１ビットＡＤＲＣにより、０または１に量子化して、７ビットのクラスコードを生成する。
【００６７】
例えば、ステップＳ２４の処理で、図１６に示された画素値を有する７画素からなるクラスコード用タップ候補１がクラスコード用タップに決定された場合、７ビットのクラスコード１００１１００が生成される。また、例えば、ステップＳ２４の処理で、図１７に示された画素値を有する７画素からなるクラスコード用タップ候補２が、クラスコード用タップに決定された場合、７ビットのクラスコード１００１１００が生成される。
【００６８】
このように、複数のクラスコード用タップ候補のうち、評価値が最も大きいもの（すなわち、閾値Ｔｈを中心とする各画素値の分散が大きいもの）を、クラスコード用タップに決定し、クラスコードを生成するようにしたことにより、クラスコード内にビットの反転が発生することを抑止することができる。したがって、クラスコードのロバスト性を向上させることができる。
【００６９】
なお、クラスコード用ブロックを構成する画素の数、およびクラスコード用タップ候補を構成する画素の数は、任意であって、上述した例の他、例えば、クラスコード用ブロックを５×５画素で構成し、クラスコード用タップ候補を９画素で構成するようにしてもよい。以上で、第２のクラスコード生成処理の説明を終了する。
【００７０】
以上説明したように、本実施の形態によれば、クラスコード生成部１４は、対象フレームＦｃおよび参照フレームＦｒの各画素に対し、１ビットＡＤＲＣという容易な演算により、高いロバスト性を有するクラスコードを生成することができる。よって、対象フレームＦｃの画素と参照フレームＦｒの画素とを、高い精度でマッチングさせることができる。したがって、動きベクトルを精度良く検出することが可能となる。
【００７１】
また、本発明は、画像を構成する画素の画素値の他、例えば、音声データなどの任意のデータに対してクラスコードを生成する場合に適用することが可能である。
【００７２】
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば、図１８に示すように構成される汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【００７３】
このパーソナルコンピュータは、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）３１を内蔵している。ＣＰＵ３１にはバス３４を介して、入出力インタフェース３５が接続されている。バス３４には、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）３２およびＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）３３が接続されている。
【００７４】
入出力インタフェース３５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部３６、処理結果の映像を表示するＣＲＴ（Ｃａｔｈｏｄｅ　Ｒａｙ　Ｔｕｂｅ）またはＬＣＤ（Ｌｉｑｕｉｄ　Ｃｒｙｓｔａｌ　Ｄｉｓｐｌａｙ）等よりなる出力部３７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部３８、およびモデム、ＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）アダプタなどよりなり、インタネットに代表されるネットワークを介した通信処理を実行する通信部３９が接続されている。また、磁気ディスク４１、光ディスク４２、光磁気ディスク４３、および半導体メモリ４４などの記録媒体に対してデータを読み書きするドライブ４０が接続されている。
【００７５】
ＣＰＵ３１に上述した一連の処理を実行させるプログラムは、磁気ディスク４１（フレキシブルディスクを含む）、光ディスク４２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ−ＲｅａｄＯｎｌｙ　Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ）を含む）、光磁気ディスク４３（ＭＤ（Ｍｉｎｉ　Ｄｉｓｃ）を含む）、もしくは半導体メモリ４４に格納された状態でパーソナルコンピュータに供給され、ドライブ４０によって読み出されて記憶部３８に内蔵されるハードディスクドライブにインストールされている。記憶部３８にインストールされているプログラムは、入力部３６に入力されるユーザからのコマンドに対応するＣＰＵ３１の指令によって、記憶部３８からＲＡＭ３３にロードされて実行される。
【００７６】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００７７】
【発明の効果】
以上のように、本発明によれば、僅かな演算量のみで画像間のマッチングを行うことができる。また、本発明によれば、動きベクトル等を精度良く検出することが可能となる。
【図面の簡単な説明】
【図１】従来の動きベクトル検出装置の構成例を示すブロック図である。
【図２】対象フレームＦｃと参照フレームＦｒの対応関係を示す図である。
【図３】ブロックマッチングアルゴリズムを説明するフローチャートである。
【図４】本発明の一実施の形態である動きベクトル検出装置の構成例を示すブロック図である。
【図５】図４のＭＥメモリの構造を示す図である。
【図６】図４のクラスコード生成部による第１のクラスコード生成処理を説明するフローチャートである。
【図７】クラスコード用タップの一例を示す図である。
【図８】第１のクラスコード生成処理を説明するための図である。
【図９】第１のクラスコード生成処理を説明するための図である。
【図１０】第１のクラスコード生成処理の変形例を説明するための図である。
【図１１】第１のクラスコード生成処理の変形例を説明するための図である。
【図１２】図４のクラスコード生成部による第２のクラスコード生成処理を説明するフローチャートである。
【図１３】クラスコード用ブロックの一例を示す図である。
【図１４】クラスコード用タップ候補の例を示す図である。
【図１５】図１２のステップＳ２３における評価値演算処理を説明するフローチャートである。
【図１６】第２のクラスコード生成処理を説明するための図である。
【図１７】第２のクラスコード生成処理を説明するための図である。
【図１８】汎用のパーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
１１　動きベクトル検出装置，　１２，１３　フレームメモリ，　１４　クラスコード生成部，　１５　ＭＥメモリ，　１６　動きベクトル演算部，　３１　ＣＰＵ，　４１　磁気ディスク，　４２　光ディスク，　４３　光磁気ディスク，
４４　半導体メモリ
【図１】
2004134911.tif 000003
【図２】
2004134911.tif 000004
【図３】
2004134911.tif 000005
【図４】
2004134911.tif 000006
【図５】
2004134911.tif 000007
【図６】
2004134911.tif 000008
【図７】
2004134911.tif 000009
【図８】
2004134911.tif 000010
【図９】
2004134911.tif 000011
【図１０】
2004134911.tif 000012
【図１１】
2004134911.tif 000013
【図１２】
2004134911.tif 000014
【図１３】
2004134911.tif 000015
【図１４】
2004134911.tif 000016
【図１５】
2004134911.tif 000017
【図１６】
2004134911.tif 000018
【図１７】
2004134911.tif 000019
【図１８】
2004134911.tif 000020