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