JP4264803B2 - Image processing apparatus and method, learning apparatus and method, recording medium, and program - Google Patents
Image processing apparatus and method, learning apparatus and method, recording medium, and program Download PDFInfo
- Publication number
- JP4264803B2 JP4264803B2 JP2002327268A JP2002327268A JP4264803B2 JP 4264803 B2 JP4264803 B2 JP 4264803B2 JP 2002327268 A JP2002327268 A JP 2002327268A JP 2002327268 A JP2002327268 A JP 2002327268A JP 4264803 B2 JP4264803 B2 JP 4264803B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- code
- frame
- value
- feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Analysis (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、画像処理装置および方法、学習装置および方法、記録媒体、並びにプログラムに関し、特に、より正確に動きベクトルを検出できるようにした画像処理装置および方法、学習装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
画像の動きを示す動きベクトルを求め、この動きベクトルに基づいて効率よく動画像を圧縮する技術がある。
【0003】
この動画像圧縮技術における上述の動きベクトルを求める手法としては、いくつか提案されているが、代表的な手法としてブロックマッチングアルゴリズムと呼ばれる手法がある。
【0004】
図1は、ブロックマッチングアルゴリズムを採用した従来の画像処理装置の動き検出部1の構成例を示している。
【0005】
動き検出部1のフレームメモリ11は、例えば、時刻t1において、入力端子Tinから画像信号が入力されると、1フレーム分の情報を格納する。更に、フレームメモリ11は、次のタイミングとなる時刻t2において、入力端子Tinから次のフレームの画像信号が入力されると、時刻t1において、格納した1フレーム分の画像情報をフレームメモリ12に出力した後、新たに入力された1フレーム分の画像情報を格納する。
【0006】
また、フレームメモリ12は、時刻t2のタイミングで、フレームメモリ11から入力されてくる時刻t1のタイミングで入力端子Tinから入力されてきた1フレーム分の画像情報を格納する。
【0007】
すなわち、フレームメモリ11が、上述の時刻t2のタイミングで入力される(今現在の)1フレーム分の画像情報を格納するとき、フレームメモリ12は、時刻t1のタイミングで入力された(1タイミング過去の)1フレーム分の画像情報を格納していることになる。なお、以下において、フレームメモリ11に格納される画像情報をカレントフレームFc、フレームメモリ12に格納される画像情報を参照フレームFrと称するものとする。
【0008】
動きベクトル検出部13は、フレームメモリ11,12に格納されているカレントフレームFcと参照フレームFrをそれぞれから読出し、このカレントフレームFcと参照フレームFrに基づいて、ブロックマッチングアルゴリズムにより動きベクトルを検出し、出力端子Toutから出力する。
【0009】
ここで、ブロックマッチングアルゴリズムについて説明する。例えば、図2で示すように、カレントフレームFc内の注目画素P(i,j)に対応する動きベクトルを求める場合、まず、カレントフレームFc上に注目画素P(i,j)を中心としたL(画素数)×L(画素数)からなる基準ブロックBb(i,j)、参照フレームFr上に、注目画素P(i,j)の位置に対応するサーチエリアSR、そして、そのサーチエリアSR内に、L(画素数)×L(画素数)の画素からなる参照ブロックBrn(i,j)がそれぞれ設定される。
【0010】
次に、この基準ブロックBb(i,j)と、参照ブロックBrn(i,j)の各画素間の差分の絶対値の和を求める処理が、参照ブロックBrnをサーチエリアSR内の全域で水平方向、または、垂直方向に1画素分ずつ移動させながら、図2中のBr1からBrm(参照ブロックBrnが、サーチエリアSR内にm個設定できるものとする)まで繰り返される。
【0011】
このようにして求められた基準ブロックBb(i,j)と、参照ブロックBrn(i,j)の各画素間の差分絶対値和のうち、差分絶対値和が最小となる参照ブロックBrnを求めることにより、基準ブロックBb(i,j)に最も近い(類似している)参照ブロックBrn(i,j)を構成するL×L個の画素の中心となる参照画素Pn(i,j)が求められる。
【0012】
そして、このカレントフレームFc上の注目画素P(i,j)に対応する参照フレームFr上の画素P'(i,j)を始点とし、参照画素Pn(i,j)を終点とするベクトルが、注目画素P(i,j)の動きベクトル(Vx,Vy)として出力される。ここで、例えば、P(i,j)=(a,b)、および、Pn(i,j)=(c,d)である場合、(Vx,Vy)は、(Vx,Vy)=(c−a,d−b)となる。
【0013】
すなわち、注目画素P(i,j)に対応する参照フレームFr上の参照画素P'(i,j)を始点とし、基準ブロックBb(i,j)に最も近い(類似している)参照ブロックBrn(i,j)を構成するL×L個の画素の中心となる参照画素Pn(i,j)を終点とするベクトルが動きベクトルとして求められる。
【0014】
次に、図3のフローチャートを参照して、図1の動き検出部1の動き検出処理について説明する。
【0015】
ステップS1において、動きベクトル検出部13は、フレームメモリ11に格納されているカレントフレームFc上の注目画素P(i,j)の画素位置に応じて、サーチエリアSRを設定する。
【0016】
ステップS2において、動きベクトル検出部13は、上述のように、基準ブロックBb(i,j)と参照ブロックBrn(i,j)の画素間の差分絶対値和の最小値を設定する変数minを、画素の階調数に基準ブロックBb(i,j)を構成する画素数を乗じた値に設定することにより初期化する。すなわち、例えば、1画素が8ビットのデータであった場合、1画素の階調数は、2の8乗となるため256階調(256色)となる。また、基準ブロックBb(i,j)がL画素×L画素=3画素×3画素から構成される場合、その画素数は、9個となる。結果として、変数minは、2304(=256(階調数)×9(画素数))に初期化される。
【0017】
ステップS3において、動きベクトル検出部13は、参照ブロックBrnをカウントするカウンタ変数nを1に初期化する。
【0018】
ステップS4において、動きベクトル検出部13は、基準ブロックBbと参照ブロックBrnの画素間の差分絶対値和を代入するために用いる変数sumを0に初期化する。
【0019】
ステップS5において、動きベクトル検出部13は、基準ブロックBb(i,j)と参照ブロックBrn(i,j)の画素間の差分絶対値和(=sum)を求める。すなわち、基準ブロックBb(i,j)の各画素がP_Bb(i,j)、基準ブロックBrn(i,j)の各画素がP_Brn(i,j)としてそれぞれ示される場合、動きベクトル検出部13は、以下の式(1)で示される演算を実行して、基準ブロックBb(i,j)と参照ブロックBrn(i,j)の画素間の差分絶対値和を求める。
【0020】
【数1】
【0021】
ステップS6において、動きベクトル検出部13は、変数minが変数sumよりも大きいか否かを判定し、例えば、変数minが変数sumよりも大きいと判定する場合、ステップS7において、変数minを変数sumに更新し、その時点でのカウンタnの値を動きベクトル番号として登録する。すなわち、今求めた差分絶対値和を示す変数sumが、最小値を示す変数minよりも小さいと言うことは、これまで演算したどの参照ブロックよりも、今演算している参照ブロックBrn(i,j)が基準ブロックBb(i,j)により類似したものであるとみなすことができるので、動きベクトルを求める際の候補とするため、その時点でのカウンタnが動きベクトル番号として登録される。また、ステップS6において、変数minが変数sumよりも大きくないと判定された場合、ステップS7の処理がスキップされる。
【0022】
ステップS8において、動きベクトル検出部13は、カウンタ変数nがサーチエリアSRの参照ブロックBrnの総数mであるか否か、すなわち、今の参照ブロックBrnがBrn=Brmであるか否かを判定し、例えば、総数mではないと判定した場合、ステップS9において、カウンタ変数nを1インクリメントし、その処理は、ステップS4に戻る。
【0023】
ステップS8において、カウンタ変数nがサーチエリア内の参照ブロックBrnの総数mである、すなわち、今の参照ブロックBrnがBrn=Brmであると判定された場合、ステップS10において、動きベクトル検出部13は、登録されている動きベクトル番号に基づいて動きベクトルを出力する。すなわち、ステップS4乃至S9が繰り返されることにより、差分絶対値和が最小となる参照ブロックBrnに対応するカウンタ変数nが動きベクトル番号として登録されることになるので、動きベクトル検出部13は、この動きベクトル番号に対応する参照ブロックBrnのL×L個の画素のうち、その中心となる参照画素Pn(i,j)を求め、カレントフレームFc上の注目画素P(i,j)に対応する参照フレームFr上の画素P'(i,j)を始点とし、参照画素Pn(i,j)を終点とするベクトルを、注目画素P(i,j)の動きベクトル(Vx,Vy)として求めて出力する。
【0024】
以上説明したようなブロックマッチング法により、動きベクトルを検出する場合において、動きベクトル検出対象ブロック、および、参照フレームの小ブロックごとに定常成分および過渡成分を抽出し、これらの定常成分および過渡成分の差分をそれぞれ検出して、絶対値差分を累算した値を加重平均して評価値を形成し、この評価値に基づいて動きベクトルを検出することにより、演算量を低減することができ、また、誤検出のおそれを防止することができるようにする技術がある(例えば、特許文献1参照)。また、1ビットADRCによって各画素値を1ビットのコード値に符号化し、そのコード値を使用してマッチング演算を行うことにより、動きベクトルの検出に係る回路構成、演算時間等を簡素化することができる技術がある(例えば、特許文献2参照)。
【0025】
【特許文献1】
特開平07−087494号公報
【0026】
【特許文献2】
特開2000−278691号公報
【0027】
【発明が解決しようとする課題】
しかしながら、上述したブロックマッチングアルゴリズムは、式(1)の演算量が非常に膨大なものとなるため、MPEG(Moving Picture Experts Group)等の画像圧縮処理においては、大半の時間がこの処理に費やされてしまうという課題があった。
【0028】
また、カレントフレームFc、または、参照フレームFrの動きベクトルの始点、または、終点付近でノイズが含まれた場合、ブロックマッチングでは基準ブロックに類似する参照ブロックを検出することができず、正確な動きベクトルを検出することができないという課題があった。
【0029】
本発明はこのような状況に鑑みてなされたものであり、正確に動きベクトルを生成することができるようにするものである。
【0030】
【課題を解決するための手段】
本発明の画像処理装置は、第1の学習フレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードに対応付けて、所定の画素群のうち、第1の学習フレームと第1の学習フレームより時間的に前のフレームである第2の学習フレームとで検出される画素値のレベル変動が最も少ない画素位置の情報を記憶する画素位置テーブルと、入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第1の画素位置を画素位置テーブルから読み出し、画素位置テーブルから読み出されたレベル変動が最も少ない第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードAと、第1のフレームの注目画素を含む所定の画素群の量子化コードからなる、第1のフレームの注目画素の特徴量コードAを抽出する第1の特徴量抽出手段と、第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第2の画素位置を画素位置テーブルから読み出し、画素位置テーブルから読み出されたレベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、第2のフレームの注目画素を含む所定の画素群の量子化コードからなる、第2のフレームの注目画素の特徴量コードBおよび特徴量コードCをそれぞれ抽出する第2の特徴量抽出手段と、第2の特徴量抽出手段により抽出された特徴量コードBおよび特徴量コードCごとに、対応する画素位置の情報を記憶するデータベースと、データベースにより記憶されている画素位置の情報のうち、第1の特徴量抽出手段により抽出された第1のフレームの注目画素の特徴量コードAと値が一致する特徴量コードBおよび特徴量コードCの画素位置の情報を検索する検索手段とを備える。
【0031】
第2の特徴量抽出手段は、第2の画素位置の画素値を示す8ビットのデータに2 m-1 を加算した後に2 m+1 で割ったものに2を乗算することで、第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いてコードBをコード化し、第2の画素位置の画素値を示す8ビットのデータから2 m-1 を減算した後に2 m+1 で割ったものに2を乗算してから1を足すことで、第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いてコードCをコード化することができる。
【0032】
第2の特徴量抽出手段は、第2のフレームの注目画素を含む所定の画素群の量子化コードのうち、量子化における閾値近傍の画素値に対応する所定のコードのみをビット反転し、所定のコードのみがビット反転されている量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第3の画素位置を画素位置テーブルから読み出し、画素位置テーブルから読み出されたレベル変動が最も少ない第3の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、所定のコードのみがビット反転されている量子化コードからなる特徴量コードBおよび特徴量コードCもそれぞれ抽出することができる。
【0033】
データベースは、複数備えられ、フレーム毎に交互に情報が記憶される。
【0034】
検索手段により検索された画素位置の情報のうち、第1のフレーム中の注目画素との距離が最小となる画素位置を検出し、検出された画素位置と、注目画素の画素位置の情報とを基に、動きベクトルを生成する動きベクトル生成手段を更に備えさせるようにすることができる。
【0035】
本発明の画像処理方法は、動きベクトルを検出する画像処理装置が、第1の学習フレームの注目画素を含む所定の画素群のADRCの各画素値をnビットの量子化コードに対応付けて、所定の画素群のうち、第1の学習フレームと第1の学習フレームより時間的に前のフレームである第2の学習フレームとで検出される画素値のレベル変動が最も少ない画素位置の情報を記憶する画素位置テーブルから、入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第1の画素位置を読み出し、画素位置テーブルから読みだされたレベル変動が最も少ない第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードAと、第1のフレームの注目画素を含む所定の画素群の量子化コードからなる、第1のフレームの注目画素の特徴量コードAを抽出し、第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第2の画素位置を画素位置テーブルから読み出し、画素位置テーブルから読みだされたレベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、第2のフレームの注目画素を含む所定の画素群の量子化コードからなる、第2のフレームの注目画素の特徴量コードBおよび特徴量コードCをそれぞれ抽出し、抽出された特徴量コードBおよび特徴量コードCごとに、対応する画素位置の情報をデータベースに記憶する処理を制御し、データベースに記憶されている画素位置の情報のうち、抽出された第1のフレームの注目画素の特徴量コードAと値が一致する特徴量コードBおよび特徴量コードCの画素位置の情報を検索するステップを含む。
【0036】
本発明の第1の記録媒体に記録されているプログラムは、第1の学習フレームの注目画素を含む所定の画素群のADRCの各画素値をnビットの量子化コードに対応付けて、所定の画素群のうち、第1の学習フレームと第1の学習フレームより時間的に前のフレームである第2の学習フレームとで検出される画素値のレベル変動が最も少ない画素位置の情報を記憶する画素位置テーブルから、入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第1の画素位置を読み出し、画素位置テーブルから読みだされたレベル変動が最も少ない第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードAと、第1のフレームの注目画素を含む所定の画素群の量子化コードからなる、第1のフレームの注目画素の特徴量コードAを抽出し、第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第2の画素位置を画素位置テーブルから読み出し、画素位置テーブルから読みだされたレベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、第2のフレームの注目画素を含む所定の画素群の量子化コードからなる、第2のフレームの注目画素の特徴量コードBおよび特徴量コードCをそれぞれ抽出し、抽出された特徴量コードBおよび特徴量コードCごとに、対応する画素位置の情報をデータベースに記憶する処理を制御し、データベースに記憶されている画素位置の情報のうち、抽出された第1のフレームの注目画素の特徴量コードAと値が一致する特徴量コードBおよび特徴量コードCの画素位置の情報を検索するステップを含む処理をコンピュータに実行させる。
【0037】
本発明の第1のプログラムは、第1の学習フレームの注目画素を含む所定の画素群のADRCの各画素値をnビットの量子化コードに対応付けて、所定の画素群のうち、第1の学習フレームと第1の学習フレームより時間的に前のフレームである第2の学習フレームとで検出される画素値のレベル変動が最も少ない画素位置の情報を記憶する画素位置テーブルから、入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第1の画素位置を読み出し、画素位置テーブルから読みだされたレベル変動が最も少ない第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードAと、第1のフレームの注目画素を含む所定の画素群の量子化コードからなる、第1のフレームの注目画素の特徴量コードAを抽出し、第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第2の画素位置を画素位置テーブルから読み出し、画素位置テーブルから読みだされたレベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、第2のフレームの注目画素を含む所定の画素群の量子化コードからなる、第2のフレームの注目画素の特徴量コードBおよび特徴量コードCをそれぞれ抽出し、抽出された特徴量コードBおよび特徴量コードCごとに、対応する画素位置の情報をデータベースに記憶する処理を制御し、データベースに記憶されている画素位置の情報のうち、抽出された第1のフレームの注目画素の特徴量コードAと値が一致する特徴量コードBおよび特徴量コードCの画素位置の情報を検索するステップを含む処理をコンピュータに実行させる。
【0038】
本発明の学習装置は、入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードA、および第1のフレームの注目画素を含む所定の画素群の量子化コードからなる、第1のフレームの注目画素の特徴量コードAと、特徴量コードAに対応するものが検索される特徴量であって、第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、第2のフレームの注目画素を含む所定の画素群の量子化コードからなる、第2のフレームの注目画素の特徴量である特徴量コードBおよび特徴量コードCとを抽出するのに用いられる、第1の学習フレームの注目画素を含む所定の画素群における画素位置の情報を学習する学習装置において、第1の学習フレームにおいて、注目画素を含む所定の画素群の各画素値をADRCで量子化して、nビットの量子化コードを生成する量子化コード生成手段と、第1の学習フレームと、第1の学習フレームより時間的に前のフレームである第2の学習フレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出手段と、量子化コード生成手段により生成された量子化コードに対応付けて、検出手段により検出された画素群のそれぞれの画素位置における画素のレベルの変動値を蓄積する蓄積手段と、蓄積手段により蓄積された情報を基に、量子化コードと、画素値のレベル変動が最も少ない画素位置を対応付けた画素位置情報を生成する画素位置情報生成手段とを備える。
【0039】
本発明の学習方法は、入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードA、および第1のフレームの注目画素を含む所定の画素群の量子化コードからなる、第1のフレームの注目画素の特徴量コードAと、特徴量コードAに対応するものが検索される特徴量であって、第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、第2のフレームの注目画素を含む所定の画素群の量子化コードからなる、第2のフレームの注目画素の特徴量である特徴量コードBおよび特徴量コードCとを抽出するのに用いられる、第1の学習フレームの注目画素を含む所定の画素群における画素位置の情報を学習する学習装置が、第1の学習フレームにおいて、注目画素を含む所定の画素群のADRCに基づくnビットの量子化コードを生成し、第1の学習フレームと、第1の学習フレームより時間的に前のフレームである第2の学習フレームとにおいて対応する画素位置の画素のレベルの変動値を検出し、生成された量子化コードに対応付けて、検出された画素群のそれぞれの画素位置における画素のレベルの変動値を蓄積し、蓄積された情報を基に、量子化コードと、画素値のレベル変動が最も少ない画素位置を対応付けた画素位置情報を生成するステップを含む。
【0040】
本発明の第2の記録媒体に記録されているプログラムは、入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードA、および第1のフレームの注目画素を含む所定の画素群の量子化コードからなる、第1のフレームの注目画素の特徴量コードAと、特徴量コードAに対応するものが検索される特徴量であって、第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、第2のフレームの注目画素を含む所定の画素群の量子化コードからなる、第2のフレームの注目画素の特徴量である特徴量コードBおよび特徴量コードCとを抽出するのに用いられる、第1の学習フレームの注目画素を含む所定の画素群における画素位置の情報を学習する学習装置に、第1の学習フレームにおいて、注目画素を含む所定の画素群のADRCに基づくnビットの量子化コードを生成し、第1の学習フレームと、第1の学習フレームより時間的に前のフレームである第2の学習フレームとにおいて対応する画素位置の画素のレベルの変動値を検出し、生成された量子化コードに対応付けて、検出された画素群のそれぞれの画素位置における画素のレベルの変動値を蓄積し、蓄積された情報を基に、量子化コードと、画素値のレベル変動が最も少ない画素位置を対応付けた画素位置情報を生成するステップを含む処理を実行させる。
【0041】
本発明の第2のプログラムは、入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードA、および第1のフレームの注目画素を含む所定の画素群の量子化コードからなる、第1のフレームの注目画素の特徴量コードAと、特徴量コードAに対応するものが検索される特徴量であって、第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、第2のフレームの注目画素を含む所定の画素群の量子化コードからなる、第2のフレームの注目画素の特徴量である特徴量コードBおよび特徴量コードCとを抽出するのに用いられる、第1の学習フレームの注目画素を含む所定の画素群における画素位置の情報を学習する学習装置に、第1の学習フレームにおいて、注目画素を含む所定の画素群のADRCに基づくnビットの量子化コードを生成し、第1の学習フレームと、第1の学習フレームより時間的に前のフレームである第2の学習フレームとにおいて対応する画素位置の画素のレベルの変動値を検出し、生成された量子化コードに対応付けて、検出された画素群のそれぞれの画素位置における画素のレベルの変動値を蓄積し、蓄積された情報を基に、量子化コードと、画素値のレベル変動が最も少ない画素位置を対応付けた画素位置情報を生成するステップを含む処理を実行させる。
【0042】
本発明の画像処理装置および方法、並びに第1のプログラムにおいては、第1の学習フレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードに対応付けて、所定の画素群のうち、第1の学習フレームと第1の学習フレームより時間的に前のフレームである第2の学習フレームとで検出される画素値のレベル変動が最も少ない画素位置の情報を記憶する画素位置テーブルから、入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第1の画素位置が読み出され、画素位置テーブルから読み出されたレベル変動が最も少ない第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードAと、第1のフレームの注目画素を含む所定の画素群の量子化コードからなる、第1のフレームの注目画素の特徴量コードAが抽出される。また、第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する第1の学習フレームの量子化コードに対応付けられたレベル変動が最も少ない第2の画素位置が画素位置テーブルから読み出され、画素位置テーブルから読み出されたレベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、第2のフレームの注目画素を含む所定の画素群の量子化コードからなる、第2のフレームの注目画素の特徴量コードBおよび特徴量コードCがそれぞれ抽出される。そして、抽出された特徴量コードBおよび特徴量コードCごとに、対応する画素位置の情報がデータベースに記憶され、データベースに記憶されている画素位置の情報のうち、第1のフレームの注目画素の特徴量コードAと値が一致する特徴量コードBおよび特徴量コードCの画素位置の情報が検索される。
【0043】
本発明の学習装置および方法、並びに第2のプログラムにおいては、第1の学習フレームにおいて、注目画素を含む所定の画素群の各画素値をADRCで量子化して、nビットの量子化コードが生成され、第1の学習フレームと、第1の学習フレームより時間的に前のフレームである第2の学習フレームとにおいて対応する画素位置の画素のレベルの変動値が検出され、量子化コードに対応付けて、画素群のそれぞれの画素位置における画素のレベルの変動値が蓄積され、蓄積された情報を基に、量子化コードと、画素値のレベル変動が最も少ない画素位置を対応付けた画素位置情報が生成される。
【0044】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【0045】
図4は、本発明を適用した画像処理装置の動き検出部51の構成を示すブロック図である。
【0046】
動き検出部51は、フレームメモリ61および62、特徴量抽出部63および64、データベース制御部65、データベース検索部66、および、動きベクトル決定部67で構成されている。
【0047】
第1のフレームメモリであるフレームメモリ61は、入力端子Tinから入力された画像信号の1画面の情報を格納し、フレームメモリ62および特徴量抽出部63に供給する。入力端子Tinから入力される画像信号は、各画素の画素値が、所定のビット数に量子化された情報であり、例えば、PCM符号化などにより、符号化されていてもかまわない。ここでは、画素値が、8ビットに量子化されているものとして説明する。
【0048】
特徴量抽出部63は、フレームメモリから供給された画面情報、すなわちカレントフレームFcの情報を基に、注目画素の特徴量を抽出する。特徴量には、例えば、注目画素の画素値、注目画素近傍の所定の画素の画素値、注目画素を中心とした所定の画素範囲のブロックの複数の画素値またはこれらの画素値の平均値、注目画素を中心とした所定の画素範囲のブロックの画素値を基に算出されるADRC(Adaptive Dynamic Range Coding)のコード、ブロック内の画素値分布のダイナミックレンジ、あるいは、ブロック内の画素値分布の最小値などがある。
【0049】
ここでは、特徴量抽出部63は、注目画素近傍の所定の画素の画素値、および、ADRCコードを、特徴量として抽出するものとする。
【0050】
図5は、特徴量抽出部63の構成を示すブロック図である。
【0051】
クラスタップ抽出部91は、入力された画像情報のうち、特徴量の抽出に必要な注目画素に対応する周辺画素(クラスタップ)の情報(画素値)を抽出し、DR(ダイナミックレンジ)演算部92、および、ADRC(Adaptive Dynamic Range Coding)コード生成部93に出力する。また、クラスタップ抽出部91は、クラスタップのパターンを記憶したタップテーブル91aを有しており、タップテーブル91aに記憶されているクラスタップのパターンに基づいて、抽出するクラスタップのパターンを決定する。
【0052】
すなわち、タップテーブル91aは、クラスタップのパターンとして、図6で示すように、注目画素(図中黒丸で表示されている画素)を中心とした3画素×3画素からなるブロックの最外周位置に配置される8画素(図中斜線で塗りつぶされている画素)のパターン、または、注目画素を含む3画素×3画素からなるブロックの9画素のパターン、図7で示すように、注目画素(図中黒丸で表示されている画素)を中心とした5画素×5画素からなるブロックの最外周位置に配置される16画素(図中斜線で塗りつぶされている画素)のパターン、または、注目画素を含む5画素×5画素からなるブロックの25画素のパターン、図8で示すように、注目画素(図中黒丸で表示されている画素)を中心とした7画素×7画素からなるブロックの最外周位置に配置される24画素(図中斜線で塗りつぶされている画素)のパターン、更に、図示しないが、注目画素(図中黒丸で表示されている画素)を中心としたn画素×n画素からなるブロックの最外周位置に配置される4(n−1)画素パターンなどを記憶している。
【0053】
また、クラスタップのパターンは、図9で示すように、注目画素の上下左右の1画素からなる4画素であってもよいし、図10で示すように、注目画素の上下左右の2画素からなる8画素であってもよいし、図11で示すように、注目画素の上下左右の3画素からなる12画素であってもよいし、更には、図示しないが、注目画素の上下左右のm画素からなる4m画素であってもよい。更に、クラスタップは、図示した以外の構成でもよく、例えば、注目画素との位置関係が非対称となる配置のものであってもよい。
【0054】
ここでは、クラスタップ抽出部91は、クラスタップのパターンとして、図6で示すように、注目画素を含む3画素×3画素からなるブロックの9画素を抽出するものとする。
【0055】
DR(ダイナミックレンジ)演算部92は、クラスタップ抽出部91より入力されるクラスタップの情報(画素値)からダイナミックレンジを求め、ダイナミックレンジをADRCコード生成部93に出力するとともに、ダイナミックレンジを求める際に得られる最小値の情報をADRCコード生成部93に出力する。すなわち、クラスタップのパターンが、例えば、図9で示すものであった場合、各クラスタップC1乃至C4の情報(画素値レベル)が、(C1,C2,C3,C4)=(60,90,51,100)であるとき、その関係は、図12で示すようになる。このような場合、ダイナミックレンジは、画素値レベルの最小値と最大値の差として定義され、その値は、以下の式(2)で定義される。
【0056】
DR=Max−Min+1・・・(2)
【0057】
ここで、Maxは、クラスタップの情報である画素値レベルの最大値であり、Minは、クラスタップの画素値レベルの最小値を示す。ここで、1を加算するのは、クラスを定義するためである(例えば、0,1で示されるクラスを設定する場合、両者の差分は1であるが、クラスとしては2クラスとなるため、差分に1を加算する)。従って、図12の場合、クラスタップC3の画素値レベル100が最大値であり、クラスタップC1の画素値レベル51が最小値となるので、DRは、50(=100−51+1)となる。
【0058】
このように、DR演算部92は、ダイナミックレンジを演算するにあたり、クラスタップの画素値レベルのうちの最小値と最大値を検出することになるので、その最小値(または最大値)をADRCコード生成部93に出力する。
【0059】
ADRCコード生成部93は、DR演算部92より入力されたダイナミックレンジの値と最小値Minとから、クラスタップの各画素値レベルを基に、ADRCコードからなる量子化コードを生成して出力する。より詳細には、ADRCコードは、クラスタップの各画素値レベルを以下の式(3)の代入することにより求められる。
【0060】
Q=Round((L−Min+0.5)×(2^n)/DR)・・・(3)
【0061】
ここで、Roundは切捨てを、Lは画素値レベルを、nは割当てビット数を、(2^n)は2のn乗を、それぞれ示している。
【0062】
従って、例えば、割当てビット数nが1であった場合、各クラスタップの画素値レベルは、以下の式(4)で示される閾値th以上であれば1であり、閾値thより小さければ0とされる。
【0063】
th=DR/2−0.5+Min・・・(4)
【0064】
結果として、割当てビット数nが1である場合、図12で示すようなクラスタップが得られたとき、閾値thは、75.5(=50/2−0.5+51)となるので、ADRCコードは、ADRC(C1,C2,C3,C4)=0101となる。
【0065】
すなわち、クラスタップ抽出部91が、クラスタップのパターンとして、図6で示した注目画素を中心とした3画素×3画素を抽出した場合、ADRCコード生成部93においては、9ビットのADRCコードが生成される。
【0066】
ADRCコード生成部93は、生成したADRCコードを、特徴量生成部96に供給する。
【0067】
画素コード生成部94は、画素位置テーブル95に記憶されている画素位置テーブルを参照して、ノイズなどによるレベル変動が少ない画素位置の画素値を基に、画素コードを生成する。
【0068】
参照フレームFrとカレントフレームFcにおいて対応する画素は、本来、同一の特徴を有しているはずであるが、例えば、ノイズなどの影響により、その特徴が多少変化することがある。参照フレームとカレントフレームにおいて対応するべき画素の画素値の差分レベルと、クラスタップ中の画素位置との関係は、ADRCコードのパターンによって、規則性を有する。換言すれば、ADRCコードに対応して、画素値の差分レベルが小さい(あるいは、大きい)画素のタップ位置(画素位置)が決まっている。
【0069】
例えば、クラスタップのパターンとして、図6で示した注目画素を中心とした3画素×3画素を用い、複数の(例えば、25パターン程度の)動画の参照フレームおよびカレントフレームにおいて、対応するべき画素の画素値の差分レベルを調べた結果、対応するべき画素の画素値の差分レベルが、図13に示されるように、第1のADRCコードパターンにおいては、実線で示されるような規則性を有し、第2のADRCコードパターンにおいては、点線で示されるような規則性を有するものとする。このとき、第1のADRCコードパターンにおいては、タップ位置1で示される画素位置において、対応するべき画素の画素値の差分レベルの変動が少ないといえる。また、第2のADRCコードパターンにおいては、タップ位置3で示される画素位置において、対応するべき画素の画素値の差分レベルの変動が少ないといえる。
【0070】
従って、ADRCコードごとに最も差分レベルの少ない画素位置を予め学習して、記憶しておき、特徴量抽出時に、ADRCコードを参照して、クラスタップ中の最も画素値の差分レベルの変動が少ない画素位置の画素値を基に、特徴量を抽出するようにすることにより、動きベクトル検出において、ノイズによるレベル変動の影響を低減することが可能となる。
【0071】
画素コード生成部94は、クラスタップ抽出部91がクラスタップのパターンとして、図6で示した注目画素を中心とした3画素×3画素を抽出した場合、その3画素×3画素の供給を受けるとともに、ADRCコード生成部93において生成された、ADRDコードの供給を受ける。画素位置テーブル95には、図14に示されるように、学習の結果、最も差分レベルが低いとされる画素位置が、ADRDコードに対応付けられて記憶されている。画素コード生成部94は、画素位置テーブル95を参照し、ADRDコードに対応した、最も差分レベルの低いと予想される画素位置を選択し、その画素位置における画素値から、画素コード(コードA)を算出する。
【0072】
画素コード生成部94は、選択された画素の画素値として、8ビットのデータを取得し、そのうち、上位4ビットを用いて、コード化を実行する。すなわち、8ビットで示される画素値0乃至28−1が、24種類のコードで示される。具体的には、特徴量抽出部63において、次の式(5)により、コードA(codeA)が算出される。
【0073】
codeA=[p(x、y)/16]・・・(5)
【0074】
ただし、p(x、y)は、注目画素の画素値であり、[]の括弧内の計算値は、小数点以下を切り捨てるものとする。画素コード生成部94は、算出されたコードAを、対応する画素の位置(例えば、座標情報)とともに、特徴量生成部96に供給する。
【0075】
特徴量生成部96は、画素コード生成部94から供給された4ビットの画素コードであるコードA、および、ADRCコード生成部93から供給された9ビットのADRCコードを用いて、13ビットの特徴量コードである特徴量コードAを生成し、対応する画素の位置(例えば、座標情報)とともに、データベース検索部66に供給する。
【0076】
なお、画素位置テーブル95に記憶されている画素位置テーブルの生成については、後述する。
【0077】
図4に戻り、本発明を適用した画像処理装置の動き検出部51について説明する。
【0078】
第2のフレームメモリであるフレームメモリ62は、フレームメモリ61に格納されていた、以前(たとえば1画面前)の画面情報の入力を受け、参照フレームFrの情報として格納し、順次、特徴量抽出部64に供給する。
【0079】
参照フレームFrとカレントフレームFcにおいて対応する画素は、本来、同一の特徴を有しているはずであるが、例えば、ノイズなどの影響により、その特徴が多少変化することがある。参照フレームFrとカレントフレームFcにおいて、いずれも、式(5)を用いて説明したコードAの演算結果を利用して特徴量を算出するようになされている場合、例えば、参照フレームFrにおいて、画素値が15であった画素が、カレントフレームFcにおいて、画素値16となってしまったとき、コードAの算出結果は、参照フレームFrではコードA=0、カレントフレームFcではコードA=1となる。このような場合、同一の特徴量算出結果を得ることができない。また、同様にして、画素値が、ADRCコード算出時の閾値thに近い値である場合、ノイズなどの影響により、ビット反転を起こしてしまうことがある。このような場合、動きベクトルを正しく検出することができなくなってしまう。
【0080】
そこで、特徴量抽出部64は、フレームメモリ62から供給された参照フレームFrの情報を基に、特徴量抽出部63とは異なる規準を用いて、注目画素の特徴量を抽出する。
【0081】
図15は、特徴量抽出部64の構成を示すブロック図である。
【0082】
なお、図5における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【0083】
すなわち、図15の特徴量抽出部64は、画素コード生成部94に代わって画素コード生成部102が設けられ、ADRCコード生成部93により生成されたADRCコードを変換するコード変換部101が更に備えられている以外は、図5の特徴量抽出部63と基本的に同様の構成を有するものである。
【0084】
参照フレームFrとカレントフレームFcの対応する画素の特徴量は、同一であるはずであるが、例えば、ノイズなどの影響により、特徴量が変化してしまうことが考えられる。特徴量として、ADRCコードが用いられる場合、例えば、画素値が閾値thに近い値を有しているいずれかのビットが、特徴量の変化によって反転してしまう恐れがある。
【0085】
コード変換部101は、供給されたADRCコードのうち、ビット反転が起こる可能性が高い所定の画素位置に対応するコードをビット反転したコードを生成し、入力されたADRCコード(ビット反転前のコード)とともに、特徴量生成部96に供給する。
【0086】
そして、画素コード生成部102においては、ADRCコード生成部93により生成されたADRCコード、および、コード変換部101において変換されたADRCコードを用いて、図5の画素コード生成部94とは異なる方法で、画素コードが生成されるようになされている。画素コード生成部102は、画素位置テーブル95を参照し、ADRDコード、または、変換されたADRCコードに対応した、カレントフレームと参照フレームにおいて対応する画素の画素値の差分レベルの最も低いと予想される画素位置を選択し、その画素位置における画素値から、コードAを求めた方法とは異なる方法を用いて、画素コード(コードBおよびコードC)を算出する。
【0087】
画素コード生成部102は、画素位置テーブル95を参照して選択された画素位置の画素の画素値として、8ビットのデータを取得し、そのうち、上位3ビットを用いて、コード化を実行する。すなわち、8ビットで示される画素値0乃至28−1が、23種類のコードで示されるのであるが、ここでは、2種類のコードを算出する。従って、算出されるコードの種類の総数は、23×2種類となり、特徴量抽出部63において算出されるコードの種類と同数となる。具体的には、次の式(6)および式(7)により、コードB(codeB)およびコードC(codeC)が算出される。
【0088】
codeB=[{p(x、y)+8}/32]×2・・・(6)
codeC=[{p(x、y)−8}/32]×2+1・・・(7)
【0089】
ここでも、[]の括弧内の計算値は、小数点以下切り捨てるものとする。特徴量抽出部63において算出されるコードAと、特徴量抽出部64において算出されるコードBおよびコードCとの関係を図16に示す。
【0090】
コードAが、上位4ビットの値を用いてコード化されているのに対し、コードBおよびコードCは、上位3ビットの値を用いてコード化されているため、同一コードに含まれる画素範囲は、コードAにおいては16ステップであり、コードBおよびコードCにおいては、コードAにおける場合の2倍の32ステップとなる。そして、コードBのコードの境界は、コードAの境界と比較して、マイナス側に3ビットシフトされ、コードCのコードの境界は、コードAの境界と比較して、プラス側に3ビットシフトされている。
【0091】
ノイズなどの影響により、参照フレームFrとカレントフレームFcとにおいて画素の特徴量が変化した場合、最も誤検知を起こしやすいのは、コードの境界部分である。従って、この部分を誤検知しないように、参照フレームFrのコードBおよびコードCが、それぞれ、コードAの境界部分を含んで、同じ画素値範囲でオーバーラップするように設定される。
【0092】
図16に示されるように、上述した式(6)および式(7)によって生成されるコードBまたはコードCは、それぞれ、コードA=X(Xは、0乃至14)と、コードA=X+1との境界部分の画素値を含む。そして、コードA=Xと、コードA=X+1との境界部分となる画素値において、コードB=Xとなり、コードC=X+1となる。
【0093】
具体的には、例えば、注目画素の画素値が63である場合、カレントフレームFcにおいて、コードA=3となり、参照フレームFrにおいて、コードB=4、かつ、コードC=3となる。また、注目画素の画素値が64である場合、カレントフレームFcにおいて、コードA=4となり、参照フレームFrにおいて、コードB=4、かつ、コードC=3となる。
【0094】
従って、参照フレームFrとカレントフレームFcとにおいて画素の特徴量が63と64で変化してしまった場合においても、コードBかコードCのいずれかにおいて、コードAと同一のコードを得ることが可能となる。上述した式(6)および式(7)によってコードBおよびコードCが生成された場合、コードBまたはコードCは、コードAの対応する境界を挟んで、3ビット(画素値で8ステップ)ずつずれているので、参照フレームFrとカレントフレームFcとにおいての画素の特徴量の変動が3ビット(画素値で8ステップ)以内であれば、コードBかコードCのいずれかにおいて、正しい検出結果を得ることが可能となる。
【0095】
ここでは、コードAを検出するために用いる情報のビット数を上位4ビットとし、コードBおよびコードCを検出するために用いる情報のビット数を上位3ビットとして説明したが、特徴量としてのコードの検出方法はこの限りではない。例えば、コードAを検出するために用いる情報のビット数を上位5ビットとし、コードBおよびコードCを検出するために用いる情報のビット数を上位4ビットとしてもよい。
【0096】
画素コード生成部102は、算出されたコードBおよびコードCを、特徴量生成部96に供給する。特徴量生成部96は、画素コード生成部102から供給された4ビットの画素コードであるコードB、および、コード変換部101から供給された9ビットのADRCコードを用いて、13ビットの特徴量コードである特徴量コードBを生成し、また、画素コード生成部102から供給された4ビットの画素コードであるコードC、および、コード変換部101から供給された9ビットのADRCコードを用いて、13ビットの特徴量コードである特徴量コードCを生成して、それぞれ、データベース制御部65に供給する。
【0097】
再び、図4に戻り、本発明を適用した画像処理装置の動き検出部51について説明する。
【0098】
データベース制御部65は、特徴量抽出部64から供給された、参照フレームFrの特徴量情報を基に、特徴量をアドレスとして、画素の位置情報をデータベース71に格納することにより、参照フレーム情報を生成する。データベース制御部65は、内部に、処理済の画素数をカウントするためのカウンタを有している。
【0099】
データベース71に格納される参照フレーム情報の構成を図17に示す。
【0100】
データベース71は、特徴量アドレス0乃至aと、フラグアドレス0乃至bによって示される(a+1)×(b+1)個のセルにより構成されている。
【0101】
データベース制御部65は、参照フレームFrの画素の特徴量である特徴量コードB、および、特徴量コードCを、特徴量アドレスに対応つけて、その画素の位置情報を、データベース71の、特徴量アドレスに対応するフラグアドレス1乃至bに順次格納する。そして、フラグアドレス0には、現在、その特徴量アドレスに格納されている位置情報の数が、順次、インクリメントされて格納される。具体的には、特徴量アドレス1に、1つの位置情報が格納されている場合、セル(1,0)には、格納されている位置情報の数として、1が格納される。そして、次の注目画素の特徴量が、特徴量アドレス1に対応するものであった場合、セル(1,0)に格納されている値は、インクリメントされて2となり、注目画素の位置情報が、セル(1,2)に格納される。
【0102】
そして、参照フレームFrの注目画素1つに付き、特徴量コードBおよび特徴量コードCに対応する2つの画素位置情報が、特徴量アドレスに対応するフラグアドレス1乃至bのいずれかに格納される。1フレーム分の格納処理が終了したとき、データベース71のセル(0,1)からセル(a,b)には、1フレームの画素数の2倍の画素位置情報が格納される。
【0103】
データベース検索部66は、特徴量抽出部63から供給されたカレントフレームFcの特徴量情報である特徴量コードAと、データベース制御部65のデータベース71に記憶されている参照フレーム情報とのマッチング処理を実行する。すなわち、データベース検索部61は、特徴量抽出部63から、カレントフレームFcの注目画素の特徴量である特徴量コードAの入力を受け、データベース71の参照フレーム情報を参照して、カレントフレームFcの注目画素の特徴量と一致する特徴量アドレスに記載されている、複数の参照画素候補の画素位置情報を検出して、カレントフレームFcの注目画素の画素位置情報とともに、動きベクトル決定部67に供給する。
【0104】
動きベクトル決定部67は、カレントフレームFcの注目画素の画素位置情報と、複数の参照画素候補の画素位置情報との距離を演算し、例えば、算出された距離が最小である参照画素候補を、カレントフレームFcの注目画素に対応する参照画素であると決定し、その位置情報に基づいて、差分座標を検出して出力する。出力された差分座標は、注目画素の動きベクトル(Vx,Vy)である。
【0105】
ここでは、距離演算結果が最小のものを選択することにより、複数の参照画素候補のうち、カレントフレームFcの注目画素に対応する参照画素を決定するものとして説明したが、参照画素の決定方法は、それ以外の方法であってもかまわないことは言うまでもない。
【0106】
図18を参照して、動き検出部51が実行する動き検出処理1について説明する。
【0107】
ステップS31において、フレームメモリ61は、フレームの入力を受ける。
【0108】
ステップS32において、フレームメモリ61は、ステップS21において入力されたフレームを、第2のフレームメモリであるフレームメモリ62に供給する。フレームメモリ62は、例えば、n番目のフレームがフレームメモリ61からフレームメモリ62に供給されるよりも前に、格納されていたn−1番目のフレームを、特徴量抽出部64に供給する。
【0109】
ステップS33において、図19を用いて後述する参照フレーム情報生成処理が、特徴量抽出部64において実行される。
【0110】
ステップS34において、図27を用いて後述するカレントフレーム情報生成処理が、特徴量抽出部63において実行される。
【0111】
ステップS35において、図30を用いて後述するマッチング処理が実行されて、処理が終了される。
【0112】
次に、図19のフローチャートを参照して、図18のステップS33において実行される、参照フレーム情報生成処理について説明する。
【0113】
ステップS51において、データベース制御部65は、データベース71に登録されている参照フレーム情報を初期化する。すなわち、データベース制御部65は、全ての特徴量アドレスに対応するフラグアドレス0のセルに0を書き込み、フラグアドレス1乃至bに格納されている位置情報を削除する。
【0114】
ステップS52において、データベース制御部65は、1フレームメモリ内の画素をカウントするカウンタのカウンタ変数nを0に初期化する。
【0115】
ステップS53において、特徴量抽出部64は、図20を用いて後述する特徴量算出処理を実行する。
【0116】
ステップS54において、データベース制御部65は、特徴量抽出部63において抽出された参照フレームFrのクラスタップの特徴量の供給を受け、データベース71から、特徴量コードBおよび特徴量コードCに対応する特徴量アドレスの、フラグアドレス0に記載されている値Kを読み込む。上述したように、1つの注目画素に対して、特徴量である特徴量コードBおよび特徴量コードCが2つ決定されるので、2箇所の特徴量アドレスに対応する値Kが読み出される。
【0117】
ステップS55において、データベース制御部65は、ステップS54において読み出した値Kを、それぞれ、K=K+1とし、データベース71の対応する特徴量アドレスの、フラグアドレス0に書き込む。
【0118】
ステップS56において、データベース制御部65は、特徴量抽出部63から供給された、参照フレームFrの注目画素の位置情報を、データベース71の対応する2箇所の特徴量アドレスのフラグアドレスK+1で示されるセルに書き込む。
【0119】
ステップS57において、データベース制御部65は、カウンタ変数nをインクリメントして、n=n+1とする。
【0120】
ステップS58において、データベース制御部65は、カウンタ変数n=1フレームの画素数であるか否かを判断する。ステップS58において、カウンタ変数n=1フレームの画素数ではないと判断された場合、処理は、ステップS53に戻り、それ以降の処理が繰り返される。ステップS58において、カウンタ変数n=1フレームの画素数であると判断された場合、処理は、図18のステップS34に戻る。
【0121】
このような処理により、図17を用いて説明したデータベース71のフラグアドレス=0のセルであるセル(0,0)乃至セル(a,0)に、対応する特徴量を有する参照フレームFrの画素位置の候補の数が格納され、データベース71のフラグアドレス=1乃至bのセルであるセル(0,1)乃至セル(a,b)に、対応する特徴量を有する参照フレームFrの画素位置が格納される。換言すれば、参照フレームFrにおいて、同一の特徴量を有する可能性の高い画素の画素位置が、特徴量ごとにアドレシングされて、データベース71に格納される。
【0122】
次に、図20のフローチャートを参照して、図19のステップS53において実行される特徴量算出処理について説明する。
【0123】
ステップS71において、図21を用いて後述するADRCコード生成処理1が実行される。
【0124】
ステップS72において、図26を用いて後述する画素コード生成処理1が実行される。
【0125】
ステップS73において、特徴量抽出部64の特徴量生成部96は、画素コード生成部102から供給された4ビットの画素コードであるコードB、および、コード変換部101から供給された9ビットのADRCコードを用いて、13ビットの特徴量コードである特徴量コードBを生成し、また、画素コード生成部102から供給された4ビットの画素コードであるコードC、および、コード変換部101から供給された9ビットのADRCコードを用いて、13ビットの特徴量コードである特徴量コードCを生成して、処理は、図19のステップS54に戻る。
【0126】
次に、図21のフローチャートを参照して、図20のステップS71で実行されるADRCコード生成処理1について説明する。
【0127】
ステップS91において、クラスタップ抽出部91は、注目画素を中心とする所定サイズのクラスコード用タップを設定し、クラスコード用タップに含まれる複数の画素の画素値を取得する。以下においては、図22に示すように、クラスコード用タップのサイズを3×3画素とし、左上の画素を先頭に右下の画素までの画素値をそれぞれP1乃至P9として説明を継続する。
【0128】
DR演算部92は、ステップS92において、画素値P1乃至P9の最大値PMAXと最小値PMINを判定し、ステップS93において、画素値P1乃至P9のダイナミックレンジDR(=|最大値PMAX−最小値PMIN+1|)を算出し、最小値PMINとともに、ADRCコード生成部93に供給する。
【0129】
ステップS94において、ADRCコード生成部93は、DR演算部92から供給された画素値P1乃至P9の最小値PMIN、および、ダイナミックレンジDRより、上述した式(4)を用いて、閾値thを決定する。閾値thは、コード変換部101に供給される。
【0130】
ステップS95において、コード変換部101は、画素値P1乃至P9のうち、マスク化する画素を決定する。ここで、マスク化とは、ノイズなどによる画素値のゆれが発生した場合においても、正しく動きベクトルが検出できるように、ビット反転を行う処理のことである。マスク化する画素は、例えば、閾値Th近傍の画素値を有する所定の個数(例えば、2個)の画素としたり、閾値Thから所定の範囲以内の画素値を有する画素として決定するようにしても良い。
【0131】
ステップS96において、ADRCコード生成部93は、画素値P1乃至P9の9画素を、それぞれ閾値Thと比較し、閾値Thよりも大きい場合には1に量子化し、閾値Thよりも小さい場合には0に量子化して、番号順に並べた9ビットを注目画素のADRCコードとして生成し、コード変換部101に供給する。
【0132】
ステップS97において、コード変換部101は、供給された9ピットのコードのうち、マスク化される画素をビット反転し、処理は、図20のステップS72に戻る。
【0133】
例えば、閾値Th近傍の2つの画素をマスク化する場合、クラスコード用タップに含まれる9画素の画素値P1乃至P9が、図23に示すような状態であるとき、ステップS96において、9ビットのADRCコード101001111が生成される。そして、ステップS97において、閾値Thに最も近い画素値P6と画素値P8に対応するADRCコードのそれぞれが単独で、あるいは、両方がビット反転されるので、9ビットのADRCコード101000111、101001101、および、101000101が生成される。
【0134】
また、例えば、クラスコード用タップに含まれる9画素の画素値P1乃至P9が図24に示すような状態であるとき、ステップS96において、9ビットのADRCコード101001101が生成される。そして、ステップS97において、閾値Thに最も近い画素値P5と画素値P6に対応するADRCコードのそれぞれが単独で、あるいは、両方のコードがビット反転されるので、9ビットのADRCコード101011101、101000101、および、101010101が生成される。
【0135】
また、閾値Thを中心とする所定の範囲(±Δ)に含まれる全ての画素値を有する画素に対して、マスク化を行う場合、例えば、クラスコード用タップに含まれる9画素の画素値P1乃至P9が図25に示すような状態であるとき、ステップS96において、101001111が生成される。そして、ステップS97において、閾値Thを中心とする所定の範囲(±Δ)に含まれる画素値P2と画素値P6に対応するADRCコードのそれぞれが単独で、あるいは、両方のコードがビット反転されるので、9ビットのADRCコード111001111、101000111、および、111000111が生成される。
【0136】
このように、ノイズなどの影響により、レベルが変動した場合に、ADRCコードがビット反転する可能性の高い画素のADRCコードに対して、0に量子化した場合のADRCコードと、1に量子化した場合のADRCコードを生成するようにしたことにより、ノイズなどの影響により、マッチングが正しく取れないようなことを抑止することができる。従って、クラスコードのロバスト性を向上させることができる。
【0137】
なお、クラスコード用タップを構成する画素の数、およびクラスコードのビット数は、上述した例に限るものではなく、任意である。
【0138】
更に、マスク化する画素の決定方法は、上述した限りではなく、他の方法で、マスク化する画素を決めることができるようにしても良いことは言うまでもない。
【0139】
また、マスク化を実行することなく、検出されたADRCコードのみを用いて、マッチング処理を行うようにしてもよい。
【0140】
次に、図26のフローチャートを参照して、図20のステップS72において実行される画素コード生成処理1について説明する。
【0141】
ステップS111において、画素コード生成部102は、ADRCコード生成部93により生成されたADRCコード、または、コード変換部101により変換された(所定のコードがビット反転された)ADRCコードを取得する。
【0142】
ステップS112において、画素コード生成部102は、画素位置テーブル95に記憶されている画素位置テーブルを参照して、ADRCコードに対応する、差分レベルが小さい画素位置を選択する。
【0143】
例えば、画素位置テーブル95に、図14を用いて説明したテーブル画素位置が記憶され、ステップS111において取得されたADRCコードが、コード3で示されるコード配列であった場合、図22におけるタップP4が、画素コード生成に用いられる画素の画素位置として選択される。
【0144】
ステップS113において、画素コード生成部102は、選択された画素位置に対応する画素の画素値の上位3ビットを抽出する。
【0145】
ステップS114において、画素コード生成部102は、コードBおよびコードCを算出して、処理は、図20のステップS73に戻る。
【0146】
ステップS113およびステップS114の処理は、具体的には、上述した、式(6)および式(7)を用いて、コードBおよびコードCを算出する処理と等価である。
【0147】
このようにして、ADRCコードに対応した差分レベルが小さい画素位置の画素を基に、参照フレームの画素コードを、図29を用いて後述するカレントフレームの画素コードの算出方法とは異なる方法で算出することができる。
【0148】
次に、図27のフローチャートを参照して、図18のステップS34において実行されるカレントフレーム情報生成処理1について説明する。
【0149】
ステップS131において、データベース検索部66は、1フレームメモリ内の画素をカウントするカウンタのカウンタ変数mを0に初期化する。
【0150】
ステップS132において、図28を用いて後述するADRCコード生成処理2が実行される。
【0151】
ステップS133において、図29を用いて後述する画素コード生成処理2が実行される。
【0152】
ステップS134において、特徴量抽出部63の特徴量生成部96は、画素コード生成部94から供給された4ビットの画素コードであるコードA、および、ADRCコード生成部93から供給された9ビットのADRCコードを用いて、13ビットの特徴量コードである特徴量コードAを生成して、データベース検索部66に供給する。
【0153】
ステップS135において、データベース検索部66は、カウンタ変数mをインクリメントして、m=m+1とする。
【0154】
ステップS136において、データベース検索部66は、カウンタ変数m=1フレームの画素数であるか否かを判断する。ステップS136において、カウンタ変数m=1フレームの画素数ではないと判断された場合、処理は、ステップS132に戻り、それ以降の処理が繰り返される。ステップS136において、カウンタ変数m=1フレームの画素数であると判断された場合、処理は、図18のステップS35に戻る。
【0155】
このような処理により、カレントフレーム情報が算出される。
【0156】
次に、図28のフローチャートを参照して、図27のステップS132において実行されるADRCコード生成処理2について説明する。
【0157】
ステップS151乃至ステップS154において、図21を用いて説明したステップS91乃至ステップS94と同様の処理が、特徴量抽出部63において実行される。すなわち、特徴量抽出部63のクラスタップ抽出部91において設定された所定サイズのクラスコード用タップに含まれる複数の画素の画素値が取得され、DR演算部92において、画素値P1乃至P9の最大値PMAXと最小値PMINが判定されて、画素値P1乃至P9のダイナミックレンジDRが算出され、最小値PMINとともに、ADRCコード生成部93に供給される。そして、ADRCコード生成部93において、上述した式(4)を用いて閾値Thが決定される。
【0158】
ステップS155において、特徴量抽出部63のADRCコード生成部93は、画素値P1乃至P9の9画素を、それぞれ閾値Thと比較し、閾値Thよりも大きい場合には1に量子化し、閾値Thよりも小さい場合には0に量子化して、番号順に並べた9ビットを注目画素のADRCコードとして生成し、特徴量生成部96に供給して、処理は、図27のステップS133に戻る。
【0159】
このような処理により、カレントフレームにおいて、ADRCコードが算出される。
【0160】
次に、図29のフローチャートを参照して、図27のステップS133において実行される画素コード生成処理2について説明する。
【0161】
ステップS171において、画素コード生成部94は、ADRCコード生成部93により生成されたADRCコードを取得する。
【0162】
ステップS172において、画素コード生成部94は、画素位置テーブル95に記憶されている画素位置テーブルを参照して、ADRCコードに対応する画素位置を選択する。
【0163】
ステップS173において、画素コード生成部94は、入力された参照フレームFrの注目画素の画素値の上位4ビットを抽出する。
【0164】
ステップS174において、画素コード生成部94は、コードAを算出して、処理は、図27のステップS134に戻る。
【0165】
ステップS173およびステップS174の処理は、具体的には、上述した、式(5)を用いて、コードAを算出する処理と等価である。
【0166】
この処理により、画素コードであるコードAが算出される。
【0167】
次に、図30のフローチャートを参照して、図18のステップS35において実行されるマッチング処理について説明する。
【0168】
ステップS191において、データベース検索部66は、特徴量抽出部63から、カレントフレームFcの注目画素の特徴量コードAの入力を受ける。
【0169】
ステップS192において、データベース検索部66は、データベース71に記録されている参照フレームFrの特徴量(特徴量アドレス)のうち、カレントフレームFcの特徴量コードAと等しいものを検出する。
【0170】
ステップS193において、データベース検索部66は、検出された特徴量のアドレスのフラグアドレス1乃至フラグアドレスKのセルに記載されている画素位置情報を読み込んで、動きベクトル決定部67に供給する。
【0171】
ステップS194において、動きベクトル決定部67は、読み込まれた画素位置の中で、カレントフレームFcの注目画素に最も近い画素位置を検出する。
【0172】
ステップS195において、動きベクトル決定部67は、注目画素の画素位置と検出された画素位置を基に、動きベクトルを算出し、処理が終了される。
【0173】
ここでは、カレントフレームFcの注目画素から最も近い候補が、対応する参照フレームFrの画素であるものとして説明したが、動きベクトルの検出方法は、これ以外の方法であってもかまわない。
【0174】
以上が、図4を用いて説明した動き検出部51が実行する図18の動き検出処理についての説明であるが、図18のステップS31乃至ステップS35の処理は、一部、並行して実行される。例えば、n−1番目に入力されたフレーム(n−1フレーム)、n番目に入力されたフレーム(nフレーム)、および、n+1番目に入力されたフレーム(n+1フレーム)が処理されるタイミングの例について、図31を用いて説明する。
【0175】
例えば、フレームメモリ61にnフレームが入力されたとき、特徴量抽出部64においては、n−1フレームを参照フレームとして、特徴量コードBおよび特徴量コードCが算出される。
【0176】
次に、特徴量抽出部63において、nフレームをカレントフレームとして、特徴量コードAが算出されているとき、第2のフレームメモリであるフレームメモリ62にnフレームが供給され、特徴量抽出部64において算出されたn−1フレームの特徴量コードBおよび特徴量コードCが、データベース制御部65の処理により、データベース71に登録される。
【0177】
そして、その後、データベース検索部66において、特徴量抽出部63で算出されたnフレーム、すなわち、カレントフレームの特徴量コードAと、データベース71に登録されているn−1フレーム、すなわち、参照フレームの特徴量コードBおよび特徴量コードCとがマッチングされて、カレントフレームの特徴量コードAに対応する特徴量を有する画素位置が検出される。このとき、特徴量抽出部64において、nフレームを参照フレームとして特徴量コードBおよび特徴量コードCが算出され、フレームメモリ61に、カレントフレームであるn+1フレームが入力される。
【0178】
次に、特徴量抽出部63において、カレントフレームであるn+1フレームの特徴量コードAが算出されているとき、第2のフレームメモリであるフレームメモリ62にn+1フレームが供給されるとともに、特徴量抽出部64において算出されたnフレーム、すなわち、参照フレームの特徴量コードBおよび特徴量コードCが、データベース制御部65の処理により、データベース71に登録される。
【0179】
そして、データベース検索部66において、特徴量抽出部63において算出されたn+1フレーム、すなわち、カレントフレームの特徴量コードAと、データベース71に登録されているnフレーム、すなわち、参照フレームの特徴量コードBおよび特徴量コードCとがマッチングされ、カレントフレームの特徴量コードAに対応する特徴量を有する画素位置が検出される。以下、同様に処理が繰り返される。
【0180】
このようにして、ステップS31乃至ステップS35の処理は、一部、並行して実行される。
【0181】
また、データベースを2つ設けることにより、データベースへの登録処理である参照フレーム情報生成処理と、データベースに登録された情報を用いて実行されるマッチング処理を、並行して行えるようにし、処理を高速化することができる。
【0182】
図32は、データベースを2つ備えるようにした動き検出部121の構成を示すブロック図である。なお、図4における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【0183】
すなわち、図32の動き検出部121は、データベース制御部65に代わり、データベース71−1およびデータベース71−2の2つのデータベースを備え、データベース選択処理部141を有するデータベース制御部131が備えられ、フレームメモリ62が省略されている以外は、基本的に、図4を用いて説明した動き検出部51と同様の構成を有するものである。
【0184】
図33は、図32のデータベース制御部の更に詳細な構成を示すブロック図である。データベース選択処理部141は、データベース71−1およびデータベース71−2の一方に、特徴量抽出部64から供給されるカレントフレームFcの特徴量が登録され、他方にすでに登録されている参照フレームFrの情報が、データベース検索部66により読み込まれるように、情報の入出力を制御する。
【0185】
すなわち、データベース制御部131には、データベース71−1およびデータベース71−2の2つのデータベースが備えられ、例えば、カレントフレームFcの特徴量が、データベース71−2に登録されている間、その前の処理でデータベース71−1に登録された参照フレームFrの情報が、データベース検索部66により読み込まれる。そして、データベース71−1に登録された参照フレームFrと、カレントフレームFcとのマッチング処理、および、カレントフレームFcの特徴量のデータベース71−2への登録処理が終了した後、次のフレームがカレントフレームFcとなり、カレントフレームFcの特徴量がデータベース71−1に登録され、データベース71−2に登録されている情報が、参照フレームFrの情報としてデータベース検索部66により読み込まれる。
【0186】
すなわち、データベース71−1からの情報の読み出しと、データベース71−2への情報の書き込みが、並行して行われ、データベース71−2からの情報の読み出しと、データベース71−1への情報の書き込みが、並行して行われる。
【0187】
図34のフローチャートを参照して、図32の動き検出部121が実行する動き検出処理2について説明する。
【0188】
ステップS211において、フレームメモリ61は、フレームの入力を受ける。フレームメモリ61は、入力されたフレームを、特徴量抽出部63および特徴量抽出部64に供給する。
【0189】
ステップS212において、図19を用いて説明した参照フレーム情報生成処理が、特徴量抽出部64において実行される。
【0190】
ステップS213において、図27を用いて説明したカレントフレーム情報生成処理が、特徴量抽出部63において実行される。
【0191】
ステップS214において、図30を用いて説明したマッチング処理が実行されて、処理が終了される。
【0192】
ステップS211乃至ステップS214の処理は、一部、並行して実行される。例えば、n−1番目に入力されたフレーム(n−1フレーム)、n番目に入力されたフレーム(nフレーム)、および、n+1番目に入力されたフレーム(n+1フレーム)が処理されるタイミングの例について、図35を用いて説明する。
【0193】
例えば、フレームメモリ61にnフレームが入力されたとき、特徴量抽出部64において、n−1フレームの特徴量コードBおよび特徴量コードCが算出されて、データベース制御部131に供給される。
【0194】
次に、特徴量抽出部63において、nフレームの特徴量コードAが算出されているとき、特徴量抽出部64において、nフレームの特徴量コードBおよび特徴量コードCが算出される。この処理と並行して、特徴量抽出部64において算出されたn−1フレームの特徴量コードBおよび特徴量コードCがデータベース制御部131の処理により、データベース71のいずれか一方(以下、第1のデータベースと称する)に登録される。このとき、フレームメモリ61には、n+1フレームが入力される。
【0195】
そして、その後、データベース検索部66において、特徴量抽出部63において算出されたnフレームの特徴量コードAと、第1のデータベースに登録されているn−1フレームの特徴量コードBおよび特徴量コードCとがマッチングされて、特徴量コードAに対応する特徴量を有する画素位置の情報が得られる。このとき、特徴量抽出部64において算出された、フレームnの特徴量コードBおよび特徴量コードCが、データベース制御部131の処理により、データベース71の他方(以下、第2のデータベースと称する)に登録される。
【0196】
すなわち、第1のデータベースからの情報の読み出しと、第2のデータベースへの情報の書き込みが、並行して行われる。更に、並行して、特徴量抽出部63において、n+1フレームの特徴量コードAが算出され、特徴量抽出部64において、n+1フレームの特徴量コードBおよび特徴量コードCが算出される。
【0197】
そして、データベース検索部66において、特徴量抽出部63において算出されたn+1フレームの特徴量コードAと、第2のデータベースに登録されているnフレームの特徴量コードBおよび特徴量コードCとがマッチングされて、特徴量コードAに対応する特徴量を有する画素位置の情報が得られる。このとき、特徴量抽出部64において算出されたフレームn+1の特徴量コードBおよび特徴量コードCが、データベース制御部131の処理により第1のデータベースに登録され、以下、同様に処理が繰り返される。
【0198】
このような構成にすることにより、図31を用いて説明した場合と比較して、処理を高速化することが可能となる。
【0199】
次に、特徴量抽出部63および特徴量抽出部64の画素位置テーブル95に記憶されている画素位置テーブルの生成について説明する。
【0200】
図36は、画素位置テーブルを生成する画素位置テーブル生成装置161の構成を示すブロック図である。なお、図5における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
【0201】
クラスタップ抽出部91、DR演算部92、および、ADRCコード生成部93の処理により、画像情報AのADRCコードが生成され、データ蓄積部172に供給される。クラスタップ抽出部91は、図22を用いて説明したように、3画素×3画素の9画素のクラスタップを抽出するものとして説明する。
【0202】
差分レベル抽出部171は、画像情報Aのクラスタップと、画像情報Aの前のフレームの画像である画像情報Bとの供給を受ける。画像情報Aと画像情報Bにおいて、動きの前後において対応する画素位置は、既知であり、差分レベル抽出部171は、動きの前後において対応する画素のレベルの変動(差分レベル)を、クラスタップの9画素のそれぞれの画素位置ごとに検出し、データ蓄積部172に供給する。
【0203】
データ蓄積部172は、差分レベル抽出部171から供給された、画素位置ごとの差分レベルを、ADRCコード別に蓄積する。図13を用いて説明したように、画素位置と差分レベルとの関係は、ADRCコードによって、規則性を有する。データ蓄積部172は、例えば、25パターン程度、あるいは、それ以上の数の画像情報Aおよび画像情報Bに対応する差分レベル情報を蓄積する。
【0204】
画素位置テーブル生成部173は、データ蓄積部172に蓄積されているデータから、それぞれのADRCコードにおいて、最も差分レベルの小さい画素位置を検出し、図14を用いて説明した画素位置テーブルを生成する。
【0205】
次に、図37のフローチャートを参照して、画素位置テーブル生成装置161が実行する画素位置テーブル生成処理について説明する。
【0206】
ステップS231において、図28を用いて説明したADRCコード生成処理2が実行される。
【0207】
ステップS232において、差分レベル抽出部171は、画像情報Aと、画像情報Aより1フレーム前の画像である画像情報Bとの、動き前後において対応する画素位置における画素値の差分レベルを抽出し、データ蓄積部172に供給する
【0208】
ステップS233において、データ蓄積部172は、差分レベル抽出部171から供給された差分レベル情報を、ADRCコード生成部93から供給されたADRCコードと対応して蓄積する。ここでは、例えば、25パターン程度の画像情報Aおよび画像情報Bに対応する差分レベル情報が蓄積されるものとする。
【0209】
ステップS234において、画素位置テーブル生成部173は、データ蓄積部172に蓄積されている差分レベル情報を参照して、ADRCコードごとに差分レベルの最も小さな画素位置を検出する。
【0210】
ステップS235において、画素位置テーブル生成部173は、図14を用いて説明した画素位置テーブルを生成し、処理が終了される。
【0211】
このような処理により、図14を用いて説明した画素位置テーブルが生成される。そして、動きベクトル検出時に、この画素位置テーブルが参照されて、差分レベルの低い画素位置の画素値を基に、特徴量の抽出が行われるので、動きベクトルの検出において、ノイズなどによるレベル変動の影響を削減することが可能となる。
【0212】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0213】
この記録媒体は、図38に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク241(フレキシブルディスクを含む)、光ディスク242(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク243(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ144などよりなるパッケージメディアなどにより構成される。
【0214】
図38を用いて、パーソナルコンピュータ201について説明する。
【0215】
CPU(Central Processing Unit)221は、入出力インターフェース222および内部バス223を介して、ユーザが、入力部224を用いて入力した各種指令に対応する信号や、ネットワークインターフェース230を介して、他のパーソナルコンピュータが送信した制御信号の入力を受け、入力された信号に基づいた各種処理を実行する。ROM(Read Only Memory)225は、CPU221が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。RAM(Random Access Memory)226は、CPU221の実行において使用するプログラムや、その実行において適宜変化するパラメータを格納する。CPU221、ROM225、およびRAM226は、内部バス223により相互に接続されている。
【0216】
内部バス223は、入出力インターフェース222とも接続されている。入力部224は、例えば、キーボード、タッチパッド、ジョグダイヤル、あるいはマウスなどからなり、ユーザがCPU221に各種の指令を入力するとき操作される。表示部227は、例えば、CRT(Cathode Ray Tube)や液晶表示装置などからなり、各種情報をテキスト、あるいはイメージなどで表示する。
【0217】
HDD(hard disk drive)228は、ハードディスクを駆動し、それらにCPU221によって実行するプログラムや情報を記録または再生させる。ドライブ229には、必要に応じて磁気ディスク241、光ディスク242、光磁気ディスク243、および半導体メモリ244が装着され、データの授受を行う。
【0218】
ネットワークインターフェース230は、他のパーソナルコンピュータや、パーソナルコンピュータ以外の各種装置と所定のケーブルを用いて有線で、もしくは無線で接続され、それらの機器との情報の授受を行ったり、インターネットを介してウェブサーバにアクセスし、情報の授受を行う。
【0219】
これらの入力部224乃至ネットワークインターフェース230は、入出力インターフェース222および内部バス223を介してCPU221に接続されている。
【0220】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0221】
【発明の効果】
このように、本発明によれば、カレントフレームの注目画素に対応する前記参照フレームの画素を検出することができる。特に、参照フレームとカレントフレームとで画素の特徴量が変化しても、正しく検出することができるので、正しい動きベクトルを求めることが可能となる。
【0222】
また、他の本発明によれば、ADRCコードごとに差分レベルの最も小さな画素位置を検出して、画像処理に用いる画素の画素位置を示すテーブルを生成することができる。
【図面の簡単な説明】
【図1】従来の動き検出部の構成を示すブロック図である。
【図2】動きベクトルの検出方法を説明する図である。
【図3】図1の動き検出部による動き検出処理を説明するフローチャートである。
【図4】本発明を適用した動き検出部の構成を示すブロック図である。
【図5】図4の特徴量抽出部63の構成を示すブロック図である。
【図6】クラスタップを説明する図である。
【図7】クラスタップを説明する図である。
【図8】クラスタップを説明する図である。
【図9】クラスタップを説明する図である。
【図10】クラスタップを説明する図である。
【図11】クラスタップを説明する図である。
【図12】ADRCコードを説明する図である。
【図13】ADRCコードごとのタップ位置と差分レベルとの関係について説明する図である。
【図14】画素位置テーブルについて説明する図である。
【図15】図4の特徴量抽出部64の構成を示すブロック図である。
【図16】画素コードとして算出されるコードA、コードB、およびコードCについて説明する図である。
【図17】図4のデータベースの構造を説明する図である。
【図18】図4の動き検出部による動き検出処理1を説明するフローチャートである。
【図19】参照フレーム情報生成処理を説明するフローチャートである。
【図20】特徴量算出処理を説明するフローチャートである。
【図21】ADRCコード生成処理1を説明するフローチャートである。
【図22】クラスコード用タップの一例を示す図である。
【図23】マスク化する画素位置について説明する図である。
【図24】マスク化する画素位置について説明する図である。
【図25】マスク化する画素位置について説明する図である。
【図26】画素コード生成処理1を説明するフローチャートである。
【図27】カレントフレーム情報生成処理を説明するフローチャートである。
【図28】ADRCコード生成処理2を説明するフローチャートである。
【図29】画素コード生成処理2を説明するフローチャートである。
【図30】マッチング処理を説明するフローチャートである。
【図31】図4の動き検出部による動き検出処理のタイミングを説明する図である。
【図32】本発明を適用した動き検出部の他の構成を示すブロック図である。
【図33】図32のデータベース制御部の構成を示すブロック図である。
【図34】図32の動き検出部による動き検出処理2を説明するフローチャートである。
【図35】図32の動き検出部による動き検出処理のタイミングを説明する図である。
【図36】画素位置テーブル生成装置の構成例を示すブロック図である。
【図37】画素位置テーブル生成処理を説明するフローチャートである。
【図38】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
51 動き検出部, 61,62 フレームメモリ, 63,64 特徴量抽出部, 65 データベース制御部, 66 データベース検索部, 67 動きベクトル決定部, 71 データベース, 91 クラスタップ抽出部, 92 DR演算部, 93 ADRCコード生成部, 94 画素コード生成部,95 画素位置テーブル, 96 特徴量生成部, 101 コード変換部,102 画素コード生成部, 121 動き検出部, 131 データベース制御部, 141 データベース選択処理部, 161 画素位置テーブル生成装置, 171 差分レベル抽出部, 172 データ蓄積部, 173 画素位置テーブル生成部, 201 パーソナルコンピュータ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus and method,LearningIn particular, the present invention relates to an apparatus and method, a recording medium, and a program, and in particular, an image processing apparatus and method capable of more accurately detecting a motion vector,LearningThe present invention relates to an apparatus and method, a recording medium, and a program.
[0002]
[Prior art]
There is a technique for obtaining a motion vector indicating the motion of an image and efficiently compressing the moving image based on the motion vector.
[0003]
Several methods for obtaining the above-described motion vector in this moving image compression technique have been proposed. As a representative method, there is a method called a block matching algorithm.
[0004]
FIG. 1 shows a configuration example of a
[0005]
For example, when an image signal is input from the input terminal Tin at time t1, the
[0006]
The
[0007]
That is, when the
[0008]
The motion
[0009]
Here, the block matching algorithm will be described. For example, as shown in FIG. 2, when obtaining a motion vector corresponding to a target pixel P (i, j) in the current frame Fc, first, the target pixel P (i, j) is centered on the current frame Fc. A reference block Bb (i, j) composed of L (number of pixels) × L (number of pixels), a search area SR corresponding to the position of the target pixel P (i, j) on the reference frame Fr, and the search area Reference blocks Brn (i, j) each consisting of L (number of pixels) × L (number of pixels) pixels are set in SR.
[0010]
Next, the process of calculating the sum of the absolute values of the differences between the pixels of the base block Bb (i, j) and the reference block Brn (i, j) causes the reference block Brn to be horizontal throughout the search area SR. The process is repeated from Br1 to Brm in FIG. 2 (m is possible to set m reference blocks Brn in the search area SR) while moving one pixel at a time in the direction or in the vertical direction.
[0011]
Of the sum of absolute differences between the pixels of the base block Bb (i, j) and the reference block Brn (i, j) obtained in this way, the reference block Brn having the smallest difference absolute value sum is obtained. Thus, the reference pixel Pn (i, j) serving as the center of the L × L pixels constituting the reference block Brn (i, j) closest to (similar to) the base block Bb (i, j) is Desired.
[0012]
A vector having a pixel P ′ (i, j) on the reference frame Fr corresponding to the target pixel P (i, j) on the current frame Fc as a start point and a reference pixel Pn (i, j) as an end point is obtained. , And output as a motion vector (Vx, Vy) of the pixel of interest P (i, j). Here, for example, when P (i, j) = (a, b) and Pn (i, j) = (c, d), (Vx, Vy) becomes (Vx, Vy) = ( c-a, db).
[0013]
That is, the reference block closest to (similar to) the base block Bb (i, j) starting from the reference pixel P ′ (i, j) on the reference frame Fr corresponding to the target pixel P (i, j). A vector whose end point is the reference pixel Pn (i, j), which is the center of L × L pixels constituting Brn (i, j), is obtained as a motion vector.
[0014]
Next, the motion detection processing of the
[0015]
In step S <b> 1, the motion
[0016]
In step S2, the motion
[0017]
In step S3, the motion
[0018]
In step S4, the motion
[0019]
In step S5, the motion
[0020]
[Expression 1]
[0021]
In step S6, the motion
[0022]
In step S8, the motion
[0023]
In step S8, when it is determined that the counter variable n is the total number m of reference blocks Brn in the search area, that is, the current reference block Brn is Brn = Brm, the motion
[0024]
When detecting a motion vector by the block matching method as described above, a stationary component and a transient component are extracted for each motion vector detection target block and each small block of the reference frame. Each of the differences is detected, and a value obtained by accumulating the absolute value difference is weighted and averaged to form an evaluation value. By detecting a motion vector based on the evaluation value, the amount of computation can be reduced. There is a technique for preventing the possibility of erroneous detection (see, for example, Patent Document 1). Also, each pixel value is encoded into a 1-bit code value by 1-bit ADRC, and a matching operation is performed using the code value, thereby simplifying the circuit configuration, operation time, and the like related to motion vector detection. There is a technology that can do this (for example, see Patent Document 2).
[0025]
[Patent Document 1]
Japanese Patent Application Laid-Open No. 07-087494
[0026]
[Patent Document 2]
JP 2000-278691 A
[0027]
[Problems to be solved by the invention]
However, since the above-described block matching algorithm requires an enormous amount of calculation of equation (1), most of the time is spent on this processing in image compression processing such as MPEG (Moving Picture Experts Group). There was a problem of being done.
[0028]
In addition, when noise is included near the start point or end point of the motion vector of the current frame Fc or the reference frame Fr, the block matching cannot detect a reference block similar to the reference block, and an accurate motion There was a problem that the vector could not be detected.
[0029]
The present invention has been made in view of such circumstances, and makes it possible to accurately generate a motion vector.
[0030]
[Means for Solving the Problems]
The image processing apparatus according to the present invention associates each pixel value of a predetermined pixel group including the target pixel of the first learning frame with an n-bit quantization code generated by quantizing with ADRC, and stores the predetermined pixel group Among these, the pixel position that stores information on the pixel position with the least level fluctuation of the pixel value detected in the first learning frame and the second learning frame that is temporally prior to the first learning frame The quantum of the first learning frame whose value matches the n-bit quantization code generated by ADRC quantizing each pixel value of the predetermined pixel group including the target pixel of the input first frame in the table. The level fluctuation associated with the activation code is the leastFirstThe pixel position is read from the pixel position table, and the level fluctuation read from the pixel position table is the least.FirstOf the 8-bit data indicating the pixel value at the pixel position, a first code consisting of a code A coded using the upper m bits and a quantization code of a predetermined pixel group including the target pixel of the first frame, Each of a predetermined pixel group including a first feature amount extraction unit that extracts a feature amount code A of a target pixel of a second frame, and a target pixel of a second frame that is a temporally preceding frame of the first frame The level fluctuation associated with the quantization code of the first learning frame whose value matches the n-bit quantization code generated by quantizing the pixel value by ADRC is the least.SecondThe pixel position is read from the pixel position table, and the level fluctuation read from the pixel position table is the least.SecondOf the 8-bit data indicating the pixel value at the pixel position, the upper m-1 bits are used., So as to overlap each other within a predetermined pixel value range including the pixel value indicated by the boundary part of code AA feature amount code B and a feature amount code C of the pixel of interest in the second frame, each of which includes the coded code B or code C and a quantization code of a predetermined pixel group including the pixel of interest in the second frame, respectively. Second feature quantity extraction means for extraction, a database for storing information of corresponding pixel positions for each feature quantity code B and feature quantity code C extracted by the second feature quantity extraction means, and a database Of the pixel positions of the feature amount code B and the feature amount code C whose values match the feature amount code A of the target pixel of the first frame extracted by the first feature amount extraction means. Search means for searching for information.
[0031]
The second feature amount extraction means includes:2 to 8-bit data indicating the pixel value of the
[0032]
The second feature amount extraction unit bit-inverts only a predetermined code corresponding to a pixel value in the vicinity of a threshold in quantization among the quantization codes of a predetermined pixel group including the target pixel of the second frame, The level fluctuation associated with the quantized code of the first learning frame whose value matches the quantized code in which only the code is bit-inverted is the least.ThirdThe pixel position is read from the pixel position table, and the level fluctuation read from the pixel position table is the least.ThirdOf the 8-bit data indicating the pixel value at the pixel position, the upper m-1 bits are used., So as to overlap each other within a predetermined pixel value range including the pixel value indicated by the boundary part of code AA feature code B and a feature code C each including a coded code B or code C and a quantized code in which only a predetermined code is bit-inverted can also be extracted.
[0033]
The databaseAre provided, and information is stored alternately for each frame.
[0034]
Among the pixel position information searched by the search means, a pixel position having a minimum distance from the target pixel in the first frame is detected, and the detected pixel position and the pixel position information of the target pixel are obtained. Based on this, it is possible to further include a motion vector generation means for generating a motion vector.
[0035]
In the image processing method of the present invention, an image processing apparatus that detects a motion vector associates each pixel value of ADRC of a predetermined pixel group including a target pixel of the first learning frame with an n-bit quantization code, Among the predetermined pixel group, information on the pixel position where the level fluctuation of the pixel value detected in the first learning frame and the second learning frame that is temporally prior to the first learning frame is the smallest. The first bit whose value matches the n-bit quantization code generated by quantizing each pixel value of a predetermined pixel group including the target pixel of the input first frame from the pixel position table to be stored by ADRC. Minimal level fluctuation associated with the quantization code of the learning frameFirstReads the pixel position and has the least level fluctuation read from the pixel position tableFirstOf the 8-bit data indicating the pixel value at the pixel position, a first code consisting of a code A coded using the upper m bits and a quantization code of a predetermined pixel group including the target pixel of the first frame, The feature amount code A of the target pixel of the second frame is extracted, and each pixel value of a predetermined pixel group including the target pixel of the second frame, which is a frame temporally prior to the first frame, is quantized by ADRC. The level fluctuation associated with the quantized code of the first learning frame whose value matches the generated n-bit quantized code is the least.SecondReads the pixel position from the pixel position table and has the least level fluctuation read from the pixel position tableSecondOf the 8-bit data indicating the pixel value at the pixel position, the upper m-1 bits are used., So as to overlap each other within a predetermined pixel value range including the pixel value indicated by the boundary part of code AA feature amount code B and a feature amount code C of the pixel of interest in the second frame, each of which includes the coded code B or code C and a quantization code of a predetermined pixel group including the pixel of interest in the second frame, respectively. For each extracted feature quantity code B and feature quantity code C, the process of storing the corresponding pixel position information in the database is controlled, and the extracted pixel position information stored in the database is extracted. A step of retrieving pixel position information of a feature code B and a feature code C whose values match the feature code A of the target pixel of the first frame.
[0036]
The program recorded on the first recording medium of the present invention associates each ADRC pixel value of a predetermined pixel group including the target pixel of the first learning frame with an n-bit quantization code, In the pixel group, information on the pixel position where the level fluctuation of the pixel value detected in the first learning frame and the second learning frame that is temporally prior to the first learning frame is the smallest is stored. A first learning frame whose value matches the n-bit quantization code generated by ADRC quantizing each pixel value of a predetermined pixel group including the target pixel of the input first frame from the pixel position table Minimal level fluctuations associated with other quantization codesFirstReads the pixel position and has the least level fluctuation read from the pixel position tableFirstOf the 8-bit data indicating the pixel value at the pixel position, a first code consisting of a code A coded using the upper m bits and a quantization code of a predetermined pixel group including the target pixel of the first frame, The feature amount code A of the target pixel of the second frame is extracted, and each pixel value of a predetermined pixel group including the target pixel of the second frame, which is a frame temporally prior to the first frame, is quantized by ADRC. The level fluctuation associated with the quantized code of the first learning frame whose value matches the generated n-bit quantized code is the least.SecondReads the pixel position from the pixel position table and has the least level fluctuation read from the pixel position tableSecondOf the 8-bit data indicating the pixel value at the pixel position, the upper m-1 bits are used., So as to overlap each other within a predetermined pixel value range including the pixel value indicated by the boundary part of code AA feature amount code B and a feature amount code C of the pixel of interest in the second frame, each of which includes the coded code B or code C and a quantization code of a predetermined pixel group including the pixel of interest in the second frame, respectively. For each extracted feature quantity code B and feature quantity code C, the process of storing the corresponding pixel position information in the database is controlled, and the extracted pixel position information stored in the database is extracted. The computer is caused to execute a process including a step of searching for pixel position information of the feature amount code B and the feature amount code C whose values match the feature amount code A of the target pixel of the first frame.
[0037]
The first program of the present invention associates each pixel value of ADRC of a predetermined pixel group including the target pixel of the first learning frame with an n-bit quantization code, and outputs the first of the predetermined pixel group. Input from a pixel position table that stores information on pixel positions with the least level fluctuation of pixel values detected in the second learning frame that is temporally prior to the first learning frame and the second learning frame Each pixel value of a predetermined pixel group including the target pixel of the first frame is associated with the n-bit quantization code generated by quantizing with ADRC and the quantization value of the first learning frame whose value matches Minimized level fluctuationFirstReads the pixel position and has the least level fluctuation read from the pixel position tableFirstOf the 8-bit data indicating the pixel value at the pixel position, a first code consisting of a code A coded using the upper m bits and a quantization code of a predetermined pixel group including the target pixel of the first frame, The feature amount code A of the target pixel of the second frame is extracted, and each pixel value of a predetermined pixel group including the target pixel of the second frame, which is a frame temporally prior to the first frame, is quantized by ADRC. The level fluctuation associated with the quantized code of the first learning frame whose value matches the generated n-bit quantized code is the least.SecondReads the pixel position from the pixel position table and has the least level fluctuation read from the pixel position tableSecondOf the 8-bit data indicating the pixel value at the pixel position, the upper m-1 bits are used., So as to overlap each other within a predetermined pixel value range including the pixel value indicated by the boundary part of code AA feature amount code B and a feature amount code C of the pixel of interest in the second frame, each of which includes the coded code B or code C and a quantization code of a predetermined pixel group including the pixel of interest in the second frame, respectively. For each extracted feature quantity code B and feature quantity code C, the process of storing the corresponding pixel position information in the database is controlled, and the extracted pixel position information stored in the database is extracted. The computer is caused to execute a process including a step of searching for pixel position information of the feature amount code B and the feature amount code C whose values match the feature amount code A of the target pixel of the first frame.
[0038]
The learning device according to the present invention includes a pixel of interest of an input first frameThe level fluctuation associated with the quantized code of the first learning frame whose value matches the n-bit quantized code generated by quantizing each pixel value of a predetermined pixel group including ADRC is the smallest. Among the 8-bit data indicating the pixel value of the pixel position of 1, the code A encoded using the upper m bits and the quantization code of a predetermined pixel group including the target pixel of the first frame, Of the pixel of interest in the first frameThe feature amount code A and the feature amount corresponding to the feature amount code A are searched, and are frames that are temporally prior to the first frame.Each pixel value of a predetermined pixel group including the target pixel of the second frame is associated with the quantization code of the first learning frame whose value matches the n-bit quantization code generated by quantizing with ADRC. Among the 8-bit data indicating the pixel value of the second pixel position with the least level fluctuation, the upper m−1 bits are used to overrun the predetermined pixel value range including the pixel value indicated by the boundary portion of code A A code B or a code C each encoded so as to wrap, and a quantization code of a predetermined pixel group including a target pixel of the second frame,Information on the pixel position in a predetermined pixel group including the target pixel of the first learning frame, which is used to extract the feature amount code B and the feature amount code C, which are feature amounts of the target pixel of the second frame, In the learning device for learning, in the first learning frame, quantized code generating means for quantizing each pixel value of a predetermined pixel group including the target pixel by ADRC to generate an n-bit quantized code; Detecting means for detecting a fluctuation value of a level of a pixel at a corresponding pixel position in a learning frame of the second learning frame and a second learning frame that is temporally prior to the first learning frame, and a quantization code generating means A storage means for storing a fluctuation value of a pixel level at each pixel position of the pixel group detected by the detection means in association with the generated quantization code; Based on the information accumulated by, it comprises a quantization code, and pixel position information generating means for generating a pixel position information level variation associates smallest pixel position of the pixel values.
[0039]
According to the learning method of the present invention, the target pixel of the input first frameThe level fluctuation associated with the quantized code of the first learning frame whose value matches the n-bit quantized code generated by quantizing each pixel value of a predetermined pixel group including ADRC is the smallest. Among the 8-bit data indicating the pixel value of the pixel position of 1, the code A encoded using the upper m bits and the quantization code of a predetermined pixel group including the target pixel of the first frame, Of the pixel of interest in the first frameThe feature amount code A and the feature amount corresponding to the feature amount code A are searched, and are frames that are temporally prior to the first frame.Each pixel value of a predetermined pixel group including the target pixel of the second frame is associated with the quantization code of the first learning frame whose value matches the n-bit quantization code generated by quantizing with ADRC. Among the 8-bit data indicating the pixel value of the second pixel position with the least level fluctuation, the upper m−1 bits are used to overrun the predetermined pixel value range including the pixel value indicated by the boundary portion of code A A code B or a code C each encoded so as to wrap, and a quantization code of a predetermined pixel group including a target pixel of the second frame,Information on the pixel position in a predetermined pixel group including the target pixel of the first learning frame, which is used to extract the feature amount code B and the feature amount code C, which are feature amounts of the target pixel of the second frame, A learning device for learning generates an n-bit quantization code based on ADRC of a predetermined pixel group including a target pixel in the first learning frame, and is temporally compared with the first learning frame and the first learning frame. The variation value of the level of the pixel at the corresponding pixel position in the second learning frame that is the previous frame is detected and associated with the generated quantization code at each pixel position of the detected pixel group The pixel level fluctuation value is accumulated, and based on the accumulated information, a step of generating pixel position information that associates the quantization code with the pixel position having the smallest pixel value level fluctuation. Including the.
[0040]
The program recorded on the second recording medium of the present invention is the target pixel of the first frame to be inputThe level fluctuation associated with the quantized code of the first learning frame whose value matches the n-bit quantized code generated by quantizing each pixel value of a predetermined pixel group including ADRC is the smallest. Among the 8-bit data indicating the pixel value of the pixel position of 1, the code A encoded using the upper m bits and the quantization code of a predetermined pixel group including the target pixel of the first frame, Of the pixel of interest in the first frameThe feature amount code A and the feature amount corresponding to the feature amount code A are searched, and are frames that are temporally prior to the first frame.Each pixel value of a predetermined pixel group including the target pixel of the second frame is associated with the quantization code of the first learning frame whose value matches the n-bit quantization code generated by quantizing with ADRC. Among the 8-bit data indicating the pixel value of the second pixel position with the least level fluctuation, the upper m−1 bits are used to overrun the predetermined pixel value range including the pixel value indicated by the boundary portion of code A A code B or a code C each encoded so as to wrap, and a quantization code of a predetermined pixel group including a target pixel of the second frame,Information on the pixel position in a predetermined pixel group including the target pixel of the first learning frame, which is used to extract the feature amount code B and the feature amount code C, which are feature amounts of the target pixel of the second frame, The learning device for learning generates an n-bit quantization code based on ADRC of a predetermined pixel group including the pixel of interest in the first learning frame, and is temporally compared with the first learning frame and the first learning frame. The variation value of the level of the pixel at the corresponding pixel position in the second learning frame that is the previous frame is detected and associated with the generated quantization code at each pixel position of the detected pixel group The pixel level fluctuation value is accumulated, and based on the accumulated information, a step of generating pixel position information that associates the quantization code with the pixel position having the smallest pixel value level fluctuation. To execute a process including the.
[0041]
The second program of the present invention is a pixel of interest of the input first frameThe level fluctuation associated with the quantized code of the first learning frame whose value matches the n-bit quantized code generated by quantizing each pixel value of a predetermined pixel group including ADRC is the smallest. Among the 8-bit data indicating the pixel value of the pixel position of 1, the code A encoded using the upper m bits and the quantization code of a predetermined pixel group including the target pixel of the first frame, Of the pixel of interest in the first frameThe feature amount code A and the feature amount corresponding to the feature amount code A are searched, and are frames that are temporally prior to the first frame.Each pixel value of a predetermined pixel group including the target pixel of the second frame is associated with the quantization code of the first learning frame whose value matches the n-bit quantization code generated by quantizing with ADRC. Among the 8-bit data indicating the pixel value of the second pixel position with the least level fluctuation, the upper m−1 bits are used to overrun the predetermined pixel value range including the pixel value indicated by the boundary portion of code A A code B or a code C each encoded so as to wrap, and a quantization code of a predetermined pixel group including a target pixel of the second frame,Information on the pixel position in a predetermined pixel group including the target pixel of the first learning frame, which is used to extract the feature amount code B and the feature amount code C, which are feature amounts of the target pixel of the second frame, The learning device for learning generates an n-bit quantization code based on ADRC of a predetermined pixel group including the pixel of interest in the first learning frame, and is temporally compared with the first learning frame and the first learning frame. The variation value of the level of the pixel at the corresponding pixel position in the second learning frame that is the previous frame is detected and associated with the generated quantization code at each pixel position of the detected pixel group The pixel level fluctuation value is accumulated, and based on the accumulated information, a step of generating pixel position information that associates the quantization code with the pixel position having the smallest pixel value level fluctuation. To execute a process including the.
[0042]
In the image processing apparatus and method and the first program of the present invention, an n-bit quantization code generated by quantizing each pixel value of a predetermined pixel group including the target pixel of the first learning frame by ADRC Correspondingly, the level fluctuation of the pixel value detected in the first learning frame and the second learning frame that is temporally prior to the first learning frame in the predetermined pixel group is the smallest. An n-bit quantization code and a value generated by quantizing each pixel value of a predetermined pixel group including the target pixel of the input first frame by ADRC from a pixel position table storing pixel position information The level fluctuation associated with the quantized code of the matching first learning frame is the leastFirstThe pixel position is read and the level fluctuation read from the pixel position table is the leastFirstOf the 8-bit data indicating the pixel value at the pixel position, a first code consisting of a code A coded using the upper m bits and a quantization code of a predetermined pixel group including the target pixel of the first frame, The feature amount code A of the target pixel of the frame is extracted. Also, an n-bit quantization code and a value generated by quantizing each pixel value of a predetermined pixel group including the target pixel of the second frame, which is a frame temporally prior to the first frame, by ADRC are The level fluctuation associated with the quantized code of the matching first learning frame is the leastSecondThe pixel position is read from the pixel position table, and the level fluctuation read from the pixel position table is the leastSecondOf the 8-bit data indicating the pixel value at the pixel position, the upper m-1 bits are used., So as to overlap each other within a predetermined pixel value range including the pixel value indicated by the boundary part of code AThe feature amount code B and the feature amount code C of the target pixel of the second frame, each of which includes the coded code B or code C and the quantization code of a predetermined pixel group including the target pixel of the second frame, Extracted. Then, for each extracted feature quantity code B and feature quantity code C, corresponding pixel position information is stored in the database, and the pixel position information of the first frame is stored in the database. Information on the pixel positions of the feature code B and the feature code C whose values match the feature code A is searched.
[0043]
In the learning apparatus and method and the second program of the present invention, a predetermined pixel group including the target pixel in the first learning frameEach pixel value ofADRCQuantize withAn n-bit quantization code is generated, and a fluctuation value of the level of the pixel at the corresponding pixel position in the first learning frame and the second learning frame that is temporally prior to the first learning frame is Detected and associated with the quantization code, the variation value of the pixel level at each pixel position of the pixel group is accumulated, and the quantization code and the pixel value level variation are the smallest based on the accumulated information Pixel position information associated with the pixel position is generated.
[0044]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0045]
FIG. 4 is a block diagram showing a configuration of the
[0046]
The
[0047]
A
[0048]
The feature
[0049]
Here, it is assumed that the feature
[0050]
FIG. 5 is a block diagram illustrating a configuration of the feature
[0051]
The class
[0052]
That is, as shown in FIG. 6, the tap table 91a has a class tap pattern at the outermost peripheral position of a block composed of 3 pixels × 3 pixels centered on the pixel of interest (pixels displayed with black circles in the figure). A pattern of 8 pixels (pixels filled with diagonal lines in the figure) arranged, or a pattern of 9 pixels of a block composed of 3 pixels × 3 pixels including the pixel of interest, as shown in FIG. A pattern of 16 pixels (pixels filled with diagonal lines in the figure) arranged at the outermost peripheral position of a block composed of 5 pixels × 5 pixels centered on a pixel indicated by a solid black circle) or a target pixel The pattern of 25 pixels of a block consisting of 5 pixels × 5 pixels including, as shown in FIG. 8, a block of 7 pixels × 7 pixels centered on the pixel of interest (pixels displayed with black circles in the figure) A pattern of 24 pixels (pixels filled with diagonal lines in the figure) arranged at the outermost peripheral position. Further, although not shown, n pixels × n centering on a pixel of interest (pixels displayed in black circles in the figure) A 4 (n-1) pixel pattern or the like arranged at the outermost peripheral position of a block composed of pixels is stored.
[0053]
Further, the class tap pattern may be four pixels including one pixel above, below, left, and right of the target pixel as shown in FIG. 9, or from two pixels above, below, left, and right of the target pixel as shown in FIG. 11 may be used, or as shown in FIG. 11, the pixel may be 12 pixels including three pixels on the top, bottom, left, and right of the target pixel. It may be a 4 m pixel consisting of pixels. Furthermore, the class tap may have a configuration other than that illustrated, for example, an arrangement in which the positional relationship with the target pixel is asymmetrical.
[0054]
Here, as shown in FIG. 6, the class
[0055]
The DR (dynamic range)
[0056]
DR = Max−Min + 1 (2)
[0057]
Here, Max is the maximum value of the pixel value level which is class tap information, and Min is the minimum value of the pixel value level of the class tap. Here, 1 is added in order to define a class (for example, when a class indicated by 0, 1 is set, the difference between the two is 1, but the class is 2 classes. 1 is added to the difference). Therefore, in the case of FIG. 12, since the
[0058]
As described above, since the
[0059]
The ADRC
[0060]
Q = Round ((L−Min + 0.5) × (2 ^ n) / DR) (3)
[0061]
Here, Round indicates truncation, L indicates the pixel value level, n indicates the number of assigned bits, and (2 ^ n) indicates 2 to the nth power.
[0062]
Therefore, for example, when the number of assigned bits n is 1, the pixel value level of each class tap is 1 if it is greater than or equal to the threshold th shown in the following equation (4), and 0 if it is smaller than the threshold th. Is done.
[0063]
th = DR / 2−0.5 + Min (4)
[0064]
As a result, when the number of assigned bits n is 1, when the class tap as shown in FIG. 12 is obtained, the threshold th is 75.5 (= 50 / 2−0.5 + 51), so the ADRC code Is ADRC (C1, C2, C3, C4) = 0101.
[0065]
That is, when the class
[0066]
The ADRC
[0067]
The pixel
[0068]
The corresponding pixels in the reference frame Fr and the current frame Fc should originally have the same characteristics, but the characteristics may slightly change due to the influence of noise or the like, for example. The relationship between the difference level of the pixel value of the pixel that should correspond in the reference frame and the current frame and the pixel position in the class tap has regularity depending on the pattern of the ADRC code. In other words, a tap position (pixel position) of a pixel having a small (or large) pixel value difference level is determined in accordance with the ADRC code.
[0069]
For example, 3 × 3 pixels centered on the target pixel shown in FIG. 6 are used as the class tap pattern, and pixels to be supported in a plurality of (for example, about 25 patterns) reference frames and current frames As a result of examining the difference level of the pixel value of the first ADRC code pattern, the difference level of the pixel value of the corresponding pixel has regularity as shown by a solid line as shown in FIG. The second ADRC code pattern has regularity as indicated by a dotted line. At this time, in the first ADRC code pattern, at the pixel position indicated by the
[0070]
Accordingly, the pixel position with the smallest difference level is learned and stored in advance for each ADRC code, and the difference in the difference level of the pixel value in the class tap is the smallest when the feature value is extracted with reference to the ADRC code. By extracting the feature value based on the pixel value at the pixel position, it is possible to reduce the influence of level fluctuation due to noise in motion vector detection.
[0071]
When the class
[0072]
The pixel
[0073]
codeA = [p (x, y) / 16] (5)
[0074]
However, p (x, y) is the pixel value of the pixel of interest, and the calculation value in parentheses in [] is rounded down. The pixel
[0075]
The feature
[0076]
The generation of the pixel position table stored in the pixel position table 95 will be described later.
[0077]
Returning to FIG. 4, the
[0078]
The
[0079]
The corresponding pixels in the reference frame Fr and the current frame Fc should originally have the same characteristics, but the characteristics may slightly change due to the influence of noise or the like, for example. In both the reference frame Fr and the current frame Fc, when the feature amount is calculated using the calculation result of the code A described using the equation (5), for example, in the reference frame Fr, When a pixel having a value of 15 has a pixel value of 16 in the current frame Fc, the calculation result of code A is code A = 0 in the reference frame Fr and code A = 1 in the current frame Fc. . In such a case, the same feature amount calculation result cannot be obtained. Similarly, when the pixel value is a value close to the threshold th when calculating the ADRC code, bit inversion may occur due to the influence of noise or the like. In such a case, the motion vector cannot be detected correctly.
[0080]
Therefore, the feature
[0081]
FIG. 15 is a block diagram illustrating a configuration of the feature
[0082]
In addition, the same code | symbol is attached | subjected to the part corresponding to the case in FIG. 5, The description is abbreviate | omitted suitably.
[0083]
15 includes a pixel
[0084]
The feature amounts of the corresponding pixels of the reference frame Fr and the current frame Fc should be the same, but it is conceivable that the feature amount changes due to the influence of noise or the like. When an ADRC code is used as the feature amount, for example, any bit whose pixel value has a value close to the threshold th may be inverted due to a change in the feature amount.
[0085]
The
[0086]
The pixel
[0087]
The pixel
[0088]
codeB = [{p (x, y) +8} / 32] × 2 (6)
codeC = [{p (x, y) −8} / 32] × 2 + 1 (7)
[0089]
Again, the calculation value in parentheses in [] is rounded down. FIG. 16 shows the relationship between the code A calculated by the feature
[0090]
While code A is coded using the upper 4 bits, code B and code C are coded using the upper 3 bits, so the pixel range included in the same code Is 16 steps in code A, and in code B and code C, it is 32 steps, twice that in code A. The code boundary of code B is shifted 3 bits to the minus side compared to the boundary of code A, and the code boundary of code C is shifted 3 bits to the plus side compared to the boundary of code A. Has been.
[0091]
When the pixel feature amount changes between the reference frame Fr and the current frame Fc due to the influence of noise or the like, it is the boundary portion of the code that is most likely to cause a false detection. Therefore, the code B and the code C of the reference frame Fr are set so as to overlap in the same pixel value range, including the boundary portion of the code A, so that this portion is not erroneously detected.
[0092]
As shown in FIG. 16, the code B or the code C generated by the above equations (6) and (7) are code A = X (X is 0 to 14) and code A = X + 1, respectively. Including the pixel value of the boundary portion between. Then, in a pixel value that is a boundary portion between the code A = X and the code A = X + 1, the code B = X and the code C = X + 1.
[0093]
Specifically, for example, when the pixel value of the target pixel is 63, code A = 3 in the current frame Fc, code B = 4, and code C = 3 in the reference frame Fr. When the pixel value of the target pixel is 64, code A = 4 in the current frame Fc, code B = 4, and code C = 3 in the reference frame Fr.
[0094]
Therefore, even when the pixel feature amount changes between 63 and 64 in the reference frame Fr and the current frame Fc, the same code as the code A can be obtained in either the code B or the code C. It becomes. When the code B and the code C are generated by the above-described equations (6) and (7), the code B or the code C is 3 bits (eight steps by pixel value) across the corresponding boundary of the code A. Therefore, if the variation in the feature amount of the pixel between the reference frame Fr and the current frame Fc is within 3 bits (eight steps in pixel value), the correct detection result is obtained with either the code B or the code C. Can be obtained.
[0095]
Here, the number of bits of information used to detect code A has been described as the upper 4 bits, and the number of bits of information used to detect code B and code C has been described as the upper 3 bits. The detection method is not limited to this. For example, the number of bits of information used to detect code A may be the upper 5 bits, and the number of bits of information used to detect code B and code C may be the upper 4 bits.
[0096]
The pixel
[0097]
Returning to FIG. 4 again, the
[0098]
The database control unit 65 stores the reference frame information by storing the pixel position information in the
[0099]
The configuration of the reference frame information stored in the
[0100]
The
[0101]
The database control unit 65 associates the feature amount code B and the feature amount code C, which are the feature amounts of the pixels of the reference frame Fr, with the feature amount addresses, and obtains the position information of the pixels as the feature amounts of the
[0102]
Then, for each target pixel of the reference frame Fr, two pieces of pixel position information corresponding to the feature amount code B and the feature amount code C are stored in any one of flag addresses 1 to b corresponding to the feature amount address. . When the storage process for one frame is completed, the pixel position information twice the number of pixels of one frame is stored in the cell (0, 1) to the cell (a, b) of the
[0103]
The
[0104]
The motion
[0105]
Here, it has been described that the reference pixel corresponding to the target pixel of the current frame Fc is determined from among a plurality of reference pixel candidates by selecting the one having the smallest distance calculation result. It goes without saying that other methods may be used.
[0106]
With reference to FIG. 18, the
[0107]
In step S31, the
[0108]
In step S32, the
[0109]
In step S33, a reference frame information generation process, which will be described later with reference to FIG.
[0110]
In step S34, the feature
[0111]
In step S35, a matching process, which will be described later with reference to FIG. 30, is executed, and the process ends.
[0112]
Next, reference frame information generation processing executed in step S33 in FIG. 18 will be described with reference to the flowchart in FIG.
[0113]
In step S <b> 51, the database control unit 65 initializes reference frame information registered in the
[0114]
In step S52, the database control unit 65 initializes a counter variable n of a counter that counts pixels in one frame memory to zero.
[0115]
In step S53, the feature
[0116]
In step S <b> 54, the database control unit 65 receives supply of the feature amount of the class tap of the reference frame Fr extracted by the feature
[0117]
In step S55, the database control unit 65 sets the values K read in step S54 to K = K + 1, and writes them to the
[0118]
In step S <b> 56, the database control unit 65 corresponds to the position information of the target pixel of the reference frame Fr supplied from the feature
[0119]
In step S57, the database control unit 65 increments the counter variable n to n = n + 1.
[0120]
In step S58, the database control unit 65 determines whether or not the counter variable n is the number of pixels of one frame. If it is determined in step S58 that the counter variable n is not the number of pixels in one frame, the process returns to step S53, and the subsequent processes are repeated. If it is determined in step S58 that the counter variable n is the number of pixels in one frame, the process returns to step S34 in FIG.
[0121]
Through such processing, the pixels of the reference frame Fr having the feature quantities corresponding to the cells (0, 0) to (a, 0), which are the cells having the flag address = 0 in the
[0122]
Next, the feature quantity calculation process executed in step S53 in FIG. 19 will be described with reference to the flowchart in FIG.
[0123]
In step S71, ADRC
[0124]
In step S72, a pixel
[0125]
In step S <b> 73, the feature
[0126]
Next, the ADRC
[0127]
In step S91, the class
[0128]
In step S92, the
[0129]
In step S <b> 94, the ADRC
[0130]
In step S95, the
[0131]
In step S96, the ADRC
[0132]
In step S97, the
[0133]
For example, when masking two pixels in the vicinity of the threshold Th, when the pixel values P1 to P9 of the nine pixels included in the class code tap are in the state as shown in FIG. An ADRC code 101001111 is generated. In step S97, each of the ADRC codes corresponding to the pixel value P6 and the pixel value P8 closest to the threshold value Th is singly or both are bit-inverted, so that the 9-bit ADRC codes 101000111, 101001101, and 101000101 is generated.
[0134]
For example, when the pixel values P1 to P9 of the nine pixels included in the class code tap are in the state as shown in FIG. 24, a 9-bit ADRC code 10100101 is generated in step S96. In step S97, each of the ADRC codes corresponding to the pixel value P5 and the pixel value P6 closest to the threshold value Th is independent, or both codes are bit-inverted, so that the 9-bit ADRC codes 101011101, 101000101, And 101010101 are generated.
[0135]
Further, when masking is performed on pixels having all pixel values included in a predetermined range (± Δ) centering on the threshold Th, for example, the pixel value P1 of 9 pixels included in the class code tap is used. When P9 to P9 are in the state shown in FIG. 25, 101001111 is generated in step S96. In step S97, each of the ADRC codes corresponding to the pixel value P2 and the pixel value P6 included in the predetermined range (± Δ) centering on the threshold Th is alone, or both codes are bit-inverted. Therefore, 9-bit ADRC codes 111001111, 101000111, and 111000111 are generated.
[0136]
In this way, when the level changes due to the influence of noise or the like, the ADRC code of a pixel that is highly likely to bit-invert the ADRC code and the ADRC code when quantized to 0 and quantized to 1 By generating the ADRC code in such a case, it is possible to prevent the matching from being correctly obtained due to the influence of noise or the like. Therefore, the robustness of the class code can be improved.
[0137]
The number of pixels constituting the class code tap and the number of bits of the class code are not limited to the above-described example, and are arbitrary.
[0138]
Furthermore, the method for determining the pixel to be masked is not limited to the above, and it goes without saying that the pixel to be masked may be determined by another method.
[0139]
Further, the matching process may be performed using only the detected ADRC code without performing masking.
[0140]
Next, the pixel
[0141]
In step S111, the pixel
[0142]
In step S112, the pixel
[0143]
For example, when the table pixel position described with reference to FIG. 14 is stored in the pixel position table 95 and the ADRC code acquired in step S111 is the code arrangement indicated by
[0144]
In step S113, the pixel
[0145]
In step S114, the pixel
[0146]
Specifically, the processing in step S113 and step S114 is equivalent to the processing for calculating code B and code C using the above-described equations (6) and (7).
[0147]
In this way, the pixel code of the reference frame is calculated by a method different from the method of calculating the pixel code of the current frame, which will be described later with reference to FIG. 29, based on the pixel at the pixel position having a small difference level corresponding to the ADRC code. can do.
[0148]
Next, the current frame
[0149]
In step S131, the
[0150]
In step S132, ADRC
[0151]
In step S133, pixel
[0152]
In step S <b> 134, the feature
[0153]
In step S135, the
[0154]
In step S136, the
[0155]
Through such processing, current frame information is calculated.
[0156]
Next, the ADRC
[0157]
In step S151 through step S154, the feature
[0158]
In step S155, the ADRC
[0159]
By such processing, the ADRC code is calculated in the current frame.
[0160]
Next, the pixel
[0161]
In step S <b> 171, the pixel
[0162]
In step S <b> 172, the pixel
[0163]
In step S173, the pixel
[0164]
In step S174, the pixel
[0165]
Specifically, the processing in step S173 and step S174 is equivalent to the processing for calculating code A using the above-described equation (5).
[0166]
By this processing, a code A that is a pixel code is calculated.
[0167]
Next, the matching process executed in step S35 of FIG. 18 will be described with reference to the flowchart of FIG.
[0168]
In step S191, the
[0169]
In step S192, the
[0170]
In step S193, the
[0171]
In step S194, the motion
[0172]
In step S195, the motion
[0173]
Here, the candidate closest to the pixel of interest in the current frame Fc is described as being the pixel of the corresponding reference frame Fr, but the motion vector detection method may be other methods.
[0174]
The above is the description of the motion detection process of FIG. 18 performed by the
[0175]
For example, when n frames are input to the
[0176]
Next, when the feature
[0177]
Thereafter, in the
[0178]
Next, when the feature amount code A of the n + 1 frame that is the current frame is calculated in the feature
[0179]
Then, in the
[0180]
In this way, the processes in steps S31 to S35 are partially executed in parallel.
[0181]
In addition, by providing two databases, the reference frame information generation process, which is a registration process for the database, and the matching process executed using the information registered in the database can be performed in parallel, thereby speeding up the process. Can be
[0182]
FIG. 32 is a block diagram illustrating a configuration of the
[0183]
That is, the
[0184]
FIG. 33 is a block diagram showing a more detailed configuration of the database control unit of FIG. The database
[0185]
That is, the
[0186]
That is, reading of information from the database 71-1 and writing of information to the database 71-2 are performed in parallel, reading of information from the database 71-2 and writing of information to the database 71-1. Are done in parallel.
[0187]
With reference to the flowchart of FIG. 34, the
[0188]
In step S211, the
[0189]
In step S212, the reference frame information generation process described with reference to FIG.
[0190]
In step S213, the feature
[0191]
In step S214, the matching process described with reference to FIG. 30 is executed, and the process ends.
[0192]
The processes in steps S211 to S214 are partially executed in parallel. For example, an example of the timing at which the (n-1) th input frame (n-1 frame), the nth input frame (nframe), and the (n + 1) th input frame (n + 1 frame) are processed. Will be described with reference to FIG.
[0193]
For example, when n frames are input to the
[0194]
Next, when the feature
[0195]
Thereafter, in the
[0196]
That is, reading of information from the first database and writing of information to the second database are performed in parallel. In parallel, the feature
[0197]
Then, the
[0198]
By adopting such a configuration, it is possible to speed up the processing compared to the case described with reference to FIG.
[0199]
Next, generation of the pixel position table stored in the pixel position table 95 of the feature
[0200]
FIG. 36 is a block diagram illustrating a configuration of a pixel position
[0201]
The ADRC code of the image information A is generated by the processing of the class
[0202]
The difference
[0203]
The
[0204]
The pixel position table generation unit 173 detects the pixel position having the smallest difference level in each ADRC code from the data stored in the
[0205]
Next, pixel position table generation processing executed by the pixel position
[0206]
In step S231, the ADRC
[0207]
In step S232, the difference
[0208]
In step S233, the
[0209]
In step S234, the pixel position table generation unit 173 refers to the difference level information stored in the
[0210]
In step S235, the pixel position table generation unit 173 generates the pixel position table described with reference to FIG. 14, and the process ends.
[0211]
By such processing, the pixel position table described with reference to FIG. 14 is generated. Then, at the time of motion vector detection, the pixel position table is referred to, and feature amounts are extracted based on the pixel value of the pixel position having a low difference level. Therefore, in motion vector detection, level fluctuation due to noise or the like is detected. The impact can be reduced.
[0212]
The series of processes described above can also be executed by software. The software is a computer in which the program constituting the software is incorporated in dedicated hardware, or various functions can be executed by installing various programs, for example, a general-purpose personal computer For example, it is installed from a recording medium.
[0213]
As shown in FIG. 38, this recording medium is distributed to provide a program to the user separately from the computer, and includes a magnetic disk 241 (including a flexible disk) on which the program is recorded, an optical disk 242 (CD- ROM (Compact Disk-Read Only Memory), DVD (including Digital Versatile Disk)), magneto-optical disk 243 (including MD (Mini-Disk) (trademark)), or a package medium composed of semiconductor memory 144, etc. Is done.
[0214]
The
[0215]
A CPU (Central Processing Unit) 221 receives signals corresponding to various commands input by the user using the
[0216]
The
[0217]
An HDD (hard disk drive) 228 drives a hard disk and records or reproduces a program executed by the
[0218]
The
[0219]
The
[0220]
Further, in the present specification, the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but may be performed in parallel or It also includes processes that are executed individually.
[0221]
【The invention's effect】
Thus, according to the present invention, the pixel of the reference frame corresponding to the target pixel of the current frame can be detected. In particular, even if the feature amount of the pixel changes between the reference frame and the current frame, it can be detected correctly, so that a correct motion vector can be obtained.
[0222]
According to another aspect of the present invention, it is possible to detect a pixel position having the smallest difference level for each ADRC code and generate a table indicating the pixel positions of pixels used for image processing.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a conventional motion detection unit.
FIG. 2 is a diagram for explaining a motion vector detection method;
FIG. 3 is a flowchart for explaining motion detection processing by a motion detection unit in FIG. 1;
FIG. 4 is a block diagram illustrating a configuration of a motion detection unit to which the present invention is applied.
5 is a block diagram illustrating a configuration of a feature
FIG. 6 is a diagram illustrating class taps.
FIG. 7 is a diagram illustrating class taps.
FIG. 8 is a diagram illustrating class taps.
FIG. 9 is a diagram illustrating class taps.
FIG. 10 is a diagram illustrating class taps.
FIG. 11 is a diagram illustrating class taps.
FIG. 12 is a diagram illustrating an ADRC code.
FIG. 13 is a diagram illustrating a relationship between a tap position and a difference level for each ADRC code.
FIG. 14 is a diagram illustrating a pixel position table.
15 is a block diagram illustrating a configuration of a feature
FIG. 16 is a diagram illustrating code A, code B, and code C calculated as pixel codes.
17 is a diagram for explaining the structure of the database in FIG. 4;
18 is a flowchart for explaining
FIG. 19 is a flowchart illustrating reference frame information generation processing.
FIG. 20 is a flowchart illustrating a feature amount calculation process.
FIG. 21 is a flowchart for explaining ADRC
FIG. 22 is a diagram illustrating an example of a class code tap.
FIG. 23 is a diagram illustrating pixel positions to be masked.
FIG. 24 is a diagram illustrating pixel positions to be masked.
FIG. 25 is a diagram illustrating pixel positions to be masked.
FIG. 26 is a flowchart for explaining pixel
FIG. 27 is a flowchart for describing current frame information generation processing;
FIG. 28 is a flowchart for explaining ADRC
FIG. 29 is a flowchart illustrating pixel
FIG. 30 is a flowchart illustrating matching processing.
31 is a diagram illustrating timing of motion detection processing by the motion detection unit in FIG. 4; FIG.
FIG. 32 is a block diagram illustrating another configuration of a motion detection unit to which the present invention is applied.
33 is a block diagram showing a configuration of a database control unit in FIG. 32. FIG.
34 is a flowchart for explaining
35 is a diagram for explaining the timing of motion detection processing by the motion detection unit in FIG. 32;
FIG. 36 is a block diagram illustrating a configuration example of a pixel position table generation device.
FIG. 37 is a flowchart for describing pixel position table generation processing;
FIG. 38 is a block diagram illustrating a configuration example of a personal computer.
[Explanation of symbols]
51 motion detector, 61, 62 frame memory, 63, 64 feature extraction unit, 65 database control unit, 66 database search unit, 67 motion vector determination unit, 71 database, 91 class tap extraction unit, 92 DR operation unit, 93 ADRC code generation unit, 94 pixel code generation unit, 95 pixel position table, 96 feature quantity generation unit, 101 code conversion unit, 102 pixel code generation unit, 121 motion detection unit, 131 database control unit, 141 database selection processing unit, 161 Pixel position table generation device, 171 difference level extraction unit, 172 data storage unit, 173 pixel position table generation unit, 201 personal computer
Claims (12)
入力される第1のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第1の画素位置を前記画素位置テーブルから読み出し、
前記画素位置テーブルから読み出された前記レベル変動が最も少ない前記第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードAと、前記第1のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第1のフレームの注目画素の特徴量コードAを抽出する第1の特徴量抽出手段と、
前記第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第2の画素位置を前記画素位置テーブルから読み出し、
前記画素位置テーブルから読み出された前記レベル変動が最も少ない前記第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、前記コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、前記第2のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第2のフレームの注目画素の特徴量コードBおよび特徴量コードCをそれぞれ抽出する第2の特徴量抽出手段と、
前記第2の特徴量抽出手段により抽出された前記特徴量コードBおよび前記特徴量コードCごとに、対応する画素位置の情報を記憶するデータベースと、
前記データベースにより記憶されている前記画素位置の情報のうち、前記第1の特徴量抽出手段により抽出された前記第1のフレームの注目画素の前記特徴量コードAと値が一致する前記特徴量コードBおよび前記特徴量コードCの前記画素位置の情報を検索する検索手段と
を備える画像処理装置。In association with each n-bit quantization code generated by ADRC quantizing each pixel value of the predetermined pixel group including the target pixel of the first learning frame, the first pixel of the predetermined pixel group A pixel position table that stores information on pixel positions with the least level fluctuation of pixel values detected in a learning frame and a second learning frame that is temporally prior to the first learning frame;
The quantization of the first learning frame whose value matches the n-bit quantization code generated by quantizing each pixel value of the predetermined pixel group including the target pixel of the input first frame by ADRC Read the first pixel position associated with the code with the least level fluctuation from the pixel position table,
Of the 8-bit data indicating the pixel value at the first pixel position with the least level fluctuation read from the pixel position table, the code A encoded using upper m bits, and the first First feature quantity extraction means for extracting the feature quantity code A of the target pixel of the first frame, comprising the quantization code of the predetermined pixel group including the target pixel of the frame of
The value coincides with the n-bit quantization code generated by quantizing each pixel value of the predetermined pixel group including the target pixel of the second frame, which is a frame temporally prior to the first frame, by ADRC. A second pixel position with the least level fluctuation associated with the quantization code of the first learning frame is read from the pixel position table;
Of the 8-bit data indicating the pixel value of the second pixel position with the least level fluctuation read from the pixel position table, the upper m−1 bits are used to indicate the boundary portion of the code A A code B or a code C each encoded so as to overlap in a predetermined pixel value range including a pixel value, and the quantization code of the predetermined pixel group including the target pixel of the second frame, Second feature quantity extraction means for extracting the feature quantity code B and the feature quantity code C of the target pixel of the second frame;
A database for storing information of corresponding pixel positions for each of the feature quantity code B and the feature quantity code C extracted by the second feature quantity extraction unit;
Of the pixel position information stored in the database, the feature code whose value matches the feature code A of the target pixel of the first frame extracted by the first feature extraction means B and a search means for searching for information on the pixel position of the feature code C.
前記第2の画素位置の画素値を示す8ビットのデータから2 m-1 を減算した後に2 m+1 で割ったものに2を乗算してから1を足すことで、前記第2の画素位置の画素値を示す8ビットのデータのうち、前記上位m−1ビットを用いて前記コードCをコード化する
請求項1に記載の画像処理装置。The second feature quantity extraction unit adds 2 m−1 to 8-bit data indicating a pixel value at the second pixel position, and then divides by 2 m + 1 to multiply by 2. Of the 8-bit data indicating the pixel value of the second pixel position, the code B is encoded using the upper m−1 bits.
By subtracting 2 m−1 from 8-bit data indicating the pixel value at the second pixel position and then dividing by 2 m + 1 , multiplying by 2 and adding 1 to the second pixel The image processing apparatus according to claim 1, wherein the code C is encoded using the upper m−1 bits of 8-bit data indicating a pixel value of a position .
前記画素位置テーブルから読み出された前記レベル変動が最も少ない前記第3の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、前記コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、前記所定のコードのみがビット反転されている前記量子化コードからなる特徴量コードBおよび特徴量コードCもそれぞれ抽出する
請求項1に記載の画像処理装置。The second feature amount extraction unit is configured to bit only a predetermined code corresponding to a pixel value in the vicinity of a threshold in quantization among the quantization codes of the predetermined pixel group including the target pixel of the second frame. A third pixel position having the least level fluctuation associated with the quantization code of the first learning frame whose value matches the quantization code in which only the predetermined code is bit-inverted. Read from the pixel location table;
Of the 8-bit data indicating the pixel value of the third pixel position with the least level fluctuation read from the pixel position table, the upper m−1 bits are used to indicate the boundary portion of the code A. Feature quantity code B and feature comprising code B or code C each coded to overlap within a predetermined pixel value range including pixel values, and the quantized code in which only the predetermined code is bit-inverted The image processing apparatus according to claim 1, wherein each quantity code C is also extracted.
請求項1に記載の画像処理装置。The image processing apparatus according to claim 1, wherein a plurality of the databases are provided, and information is alternately stored for each frame.
を更に備える請求項1に記載の画像処理装置。Among the information on the pixel position searched by the search means, a pixel position having a minimum distance from the target pixel of the first frame is detected, and the detected pixel position and the pixel of the target pixel The image processing apparatus according to claim 1, further comprising: a motion vector generation unit configured to generate a motion vector based on the position information.
第1の学習フレームの注目画素を含む所定の画素群のADRCの各画素値をnビットの量子化コードに対応付けて、前記所定の画素群のうち、前記第1の学習フレームと前記第1の学習フレームより時間的に前のフレームである第2の学習フレームとで検出される画素値のレベル変動が最も少ない画素位置の情報を記憶する画素位置テーブルから、入力される第1のフレームの注目画素を含む前記所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第1の画素位置を読み出し、
前記画素位置テーブルから読みだされた前記レベル変動が最も少ない前記第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードAと、前記第1のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第1のフレームの注目画素の特徴量コードAを抽出し、
前記第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む前記所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第2の画素位置を前記画素位置テーブルから読み出し、
前記画素位置テーブルから読みだされた前記レベル変動が最も少ない前記第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、前記コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、前記第2のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第2のフレームの注目画素の特徴量コードBおよび特徴量コードCをそれぞれ抽出し、
抽出された前記特徴量コードBおよび前記特徴量コードCごとに、対応する画素位置の情報をデータベースに記憶する処理を制御し、
前記データベースに記憶されている前記画素位置の情報のうち、抽出された前記第1のフレームの注目画素の前記特徴量コードAと値が一致する前記特徴量コードBおよび前記特徴量コードCの前記画素位置の情報を検索するステップを
含む画像処理方法。An image processing device for detecting a motion vector
Associating each pixel value of ADRC of a predetermined pixel group including the target pixel of the first learning frame with an n-bit quantization code, the first learning frame and the first of the predetermined pixel group From the pixel position table that stores information on the pixel position with the smallest level fluctuation of the pixel value detected in the second learning frame that is temporally prior to the learning frame of the first frame, Each of the pixel values of the predetermined pixel group including the pixel of interest is associated with the quantization code of the first learning frame whose value matches an n-bit quantization code generated by quantizing with ADRC. Read the first pixel position with the least level fluctuation,
Of the 8-bit data indicating the pixel value of the first pixel position with the least level fluctuation read from the pixel position table, the code A encoded using upper m bits, and the first A feature amount code A of the target pixel of the first frame, which is composed of the quantization code of the predetermined pixel group including the target pixel of the frame of
An n-bit quantization code and a value generated by quantizing each pixel value of the predetermined pixel group including the target pixel of the second frame, which is a frame temporally prior to the first frame, by ADRC. Read from the pixel position table the second pixel position with the least level variation associated with the quantization code of the first learning frame that matches,
Of the 8-bit data indicating the pixel value at the second pixel position with the least level fluctuation read from the pixel position table, the upper m−1 bits are used to indicate the boundary portion of the code A. A code B or a code C each encoded so as to overlap in a predetermined pixel value range including a pixel value, and the quantization code of the predetermined pixel group including the target pixel of the second frame, Extracting the feature amount code B and the feature amount code C of the target pixel of the second frame,
For each of the extracted feature quantity code B and feature quantity code C, control processing for storing information on the corresponding pixel position in a database;
Of the information on the pixel position stored in the database, the feature code B and the feature code C whose values match the feature code A of the extracted target pixel of the first frame. An image processing method including a step of retrieving pixel position information.
前記画素位置テーブルから読みだされた前記レベル変動が最も少ない前記第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードAと、前記第1のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第1のフレームの注目画素の特徴量コードAを抽出し、
前記第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む前記所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第2の画素位置を前記画素位置テーブルから読み出し、
前記画素位置テーブルから読みだされた前記レベル変動が最も少ない前記第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、前記コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、前記第2のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第2のフレームの注目画素の特徴量コードBおよび特徴量コードCをそれぞれ抽出し、
抽出された前記特徴量コードBおよび前記特徴量コードCごとに、対応する画素位置の情報をデータベースに記憶する処理を制御し、
前記データベースに記憶されている前記画素位置の情報のうち、抽出された前記第1のフレームの注目画素の前記特徴量コードAと値が一致する前記特徴量コードBおよび前記特徴量コードCの前記画素位置の情報を検索するステップを
含む処理をコンピュータに実行させるためのプログラムが記録されている記録媒体。Associating each pixel value of ADRC of a predetermined pixel group including the target pixel of the first learning frame with an n-bit quantization code, the first learning frame and the first of the predetermined pixel group From the pixel position table that stores information on the pixel position with the smallest level fluctuation of the pixel value detected in the second learning frame that is temporally prior to the learning frame of the first frame, Each of the pixel values of the predetermined pixel group including the pixel of interest is associated with the quantization code of the first learning frame whose value matches an n-bit quantization code generated by quantizing with ADRC. Read the first pixel position with the least level fluctuation,
Of the 8-bit data indicating the pixel value of the first pixel position with the least level fluctuation read from the pixel position table, the code A encoded using upper m bits, and the first A feature amount code A of the target pixel of the first frame, which is composed of the quantization code of the predetermined pixel group including the target pixel of the frame of
An n-bit quantization code and a value generated by quantizing each pixel value of the predetermined pixel group including the target pixel of the second frame, which is a frame temporally prior to the first frame, by ADRC. Read from the pixel position table the second pixel position with the least level variation associated with the quantization code of the first learning frame that matches,
Of the 8-bit data indicating the pixel value at the second pixel position with the least level fluctuation read from the pixel position table, the upper m−1 bits are used to indicate the boundary portion of the code A. A code B or a code C each encoded so as to overlap in a predetermined pixel value range including a pixel value, and the quantization code of the predetermined pixel group including the target pixel of the second frame, Extracting the feature amount code B and the feature amount code C of the target pixel of the second frame,
For each of the extracted feature quantity code B and feature quantity code C, control processing for storing information on the corresponding pixel position in a database;
Of the information on the pixel position stored in the database, the feature code B and the feature code C whose values match the feature code A of the extracted target pixel of the first frame. A recording medium on which a program for causing a computer to execute processing including a step of searching for pixel position information is recorded.
前記画素位置テーブルから読みだされた前記レベル変動が最も少ない前記第1の画素位置の画素値を示す8ビットのデータのうち、上位mビットを用いてコード化されたコードAと、前記第1のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第1のフレームの注目画素の特徴量コードAを抽出し、
前記第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む前記所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第2の画素位置を前記画素位置テーブルから読み出し、
前記画素位置テーブルから読みだされた前記レベル変動が最も少ない前記第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、前記コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、前記第2のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第2のフレームの注目画素の特徴量コードBおよび特徴量コードCをそれぞれ抽出し、
抽出された前記特徴量コードBおよび前記特徴量コードCごとに、対応する画素位置の情報をデータベースに記憶する処理を制御し、
前記データベースに記憶されている前記画素位置の情報のうち、抽出された前記第1のフレームの注目画素の前記特徴量コードAと値が一致する前記特徴量コードBおよび前記特徴量コードCの前記画素位置の情報を検索するステップを
含む処理をコンピュータに実行させるためのプログラム。Associating each pixel value of ADRC of a predetermined pixel group including the target pixel of the first learning frame with an n-bit quantization code, the first learning frame and the first of the predetermined pixel group From the pixel position table that stores information on the pixel position with the smallest level fluctuation of the pixel value detected in the second learning frame that is temporally prior to the learning frame of the first frame, Each of the pixel values of the predetermined pixel group including the pixel of interest is associated with the quantization code of the first learning frame whose value matches an n-bit quantization code generated by quantizing with ADRC. Read the first pixel position with the least level fluctuation,
Of the 8-bit data indicating the pixel value of the first pixel position with the least level fluctuation read from the pixel position table, the code A encoded using upper m bits, and the first A feature amount code A of the target pixel of the first frame, which is composed of the quantization code of the predetermined pixel group including the target pixel of the frame of
An n-bit quantization code and a value generated by quantizing each pixel value of the predetermined pixel group including the target pixel of the second frame, which is a frame temporally prior to the first frame, by ADRC. Read from the pixel position table the second pixel position with the least level variation associated with the quantization code of the first learning frame that matches,
Of the 8-bit data indicating the pixel value at the second pixel position with the least level fluctuation read from the pixel position table, the upper m−1 bits are used to indicate the boundary portion of the code A. A code B or a code C each encoded so as to overlap in a predetermined pixel value range including a pixel value, and the quantization code of the predetermined pixel group including the target pixel of the second frame, Extracting the feature amount code B and the feature amount code C of the target pixel of the second frame,
For each of the extracted feature quantity code B and feature quantity code C, control processing for storing information on the corresponding pixel position in a database;
Of the information on the pixel position stored in the database, the feature code B and the feature code C whose values match the feature code A of the extracted target pixel of the first frame. A program for causing a computer to execute processing including a step of retrieving pixel position information.
前記特徴量コードAに対応するものが検索される特徴量であって、前記第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、前記コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、前記第2のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第2のフレームの注目画素の特徴量である特徴量コードBおよび特徴量コードCと
を抽出するのに用いられる、前記第1の学習フレームの注目画素を含む所定の画素群における画素位置の情報を学習する学習装置において、
前記第1の学習フレームにおいて、注目画素を含む所定の画素群の各画素値をADRCで量子化して、nビットの量子化コードを生成する量子化コード生成手段と、
前記第1の学習フレームと、前記第1の学習フレームより時間的に前のフレームである第2の学習フレームとにおいて対応する画素位置の画素のレベルの変動値を検出する検出手段と、
前記量子化コード生成手段により生成された前記量子化コードに対応付けて、前記検出手段により検出された前記画素群のそれぞれの画素位置における前記画素のレベルの変動値を蓄積する蓄積手段と、
前記蓄積手段により蓄積された情報を基に、前記量子化コードと、前記画素値の前記レベル変動が最も少ない画素位置を対応付けた画素位置情報を生成する画素位置情報生成手段と
を備える学習装置。 The quantization code of the first learning frame whose value matches the n-bit quantization code generated by quantizing each pixel value of the predetermined pixel group including the target pixel of the input first frame by ADRC Among the 8-bit data indicating the pixel value at the first pixel position with the smallest level fluctuation associated with the code A encoded using the upper m bits, and the target pixel of the first frame A feature amount code A of a pixel of interest in the first frame, which is composed of the quantization code of the predetermined pixel group including :
A feature value corresponding to the feature code A is a feature value to be searched , and each pixel value of a predetermined pixel group including a target pixel of a second frame that is a frame temporally prior to the first frame The pixel value of the second pixel position with the least level fluctuation associated with the quantization code of the first learning frame whose value matches the n-bit quantization code generated by ADRC quantization Code B or code each encoded so as to overlap in a predetermined pixel value range including the pixel value indicated by the boundary portion of the code A, using the upper m-1 bits of the 8-bit data indicating C and the composed of the quantization code of the predetermined group of pixels including a target pixel of the second frame, the second is a feature of the subject pixel of the frame feature value code B and the feature co Used to extract and de C, and the learning device for learning the information of the pixel position in a given pixel group including a pixel of interest of the first learning frame,
In the first learning frame, quantized code generating means for generating an n-bit quantized code by quantizing each pixel value of a predetermined pixel group including the target pixel by ADRC;
Detecting means for detecting a variation value of a level of a pixel at a corresponding pixel position in the first learning frame and a second learning frame which is a frame temporally prior to the first learning frame;
Storage means for storing a variation value of the level of the pixel at each pixel position of the pixel group detected by the detection means in association with the quantization code generated by the quantization code generation means;
A learning apparatus comprising: pixel position information generating means for generating pixel position information in which the quantization code is associated with the pixel position with the smallest level fluctuation of the pixel value based on the information accumulated by the accumulation means. .
前記特徴量コードAに対応するものが検索される特徴量であって、前記第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、前記コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、前記第2のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第2のフレームの注目画素の特徴量である特徴量コードBおよび特徴量コードCと
を抽出するのに用いられる、前記第1の学習フレームの注目画素を含む所定の画素群における画素位置の情報を学習する学習装置が、
前記第1の学習フレームにおいて、注目画素を含む所定の画素群のADRCに基づくnビットの量子化コードを生成し、
前記第1の学習フレームと、前記第1の学習フレームより時間的に前のフレームである第2の学習フレームとにおいて対応する画素位置の画素のレベルの変動値を検出し、
生成された前記量子化コードに対応付けて、検出された前記画素群のそれぞれの画素位置における前記画素のレベルの変動値を蓄積し、
蓄積された情報を基に、前記量子化コードと、前記画素値の前記レベル変動が最も少ない画素位置を対応付けた画素位置情報を生成するステップを
含む学習方法。 The quantization code of the first learning frame whose value matches the n-bit quantization code generated by quantizing each pixel value of the predetermined pixel group including the target pixel of the input first frame by ADRC Among the 8-bit data indicating the pixel value at the first pixel position with the smallest level fluctuation associated with the code A encoded using the upper m bits, and the target pixel of the first frame A feature amount code A of a pixel of interest in the first frame, which is composed of the quantization code of the predetermined pixel group including :
A feature value corresponding to the feature code A is a feature value to be searched , and each pixel value of a predetermined pixel group including a target pixel of a second frame that is a frame temporally prior to the first frame The pixel value of the second pixel position with the least level fluctuation associated with the quantization code of the first learning frame whose value matches the n-bit quantization code generated by ADRC quantization Code B or code each encoded so as to overlap in a predetermined pixel value range including the pixel value indicated by the boundary portion of the code A, using the upper m-1 bits of the 8-bit data indicating C and the composed of the quantization code of the predetermined group of pixels including a target pixel of the second frame, the second is a feature of the subject pixel of the frame feature value code B and the feature co Used to extract and de C, the first learning device for learning the information of the pixel position in a given pixel group including a pixel of interest of the learning frame,
In the first learning frame, an n-bit quantization code based on ADRC of a predetermined pixel group including the target pixel is generated,
Detecting a variation value of a level of a pixel at a corresponding pixel position in the first learning frame and a second learning frame that is a frame temporally prior to the first learning frame;
In association with the generated quantization code, accumulate the fluctuation value of the level of the pixel at each pixel position of the detected pixel group,
A learning method including a step of generating pixel position information in which the quantization code is associated with a pixel position where the level variation of the pixel value is the smallest based on accumulated information.
前記特徴量コードAに対応するものが検索される特徴量であって、前記第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、前記コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、前記第2のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第2のフレームの注目画素の特徴量である特徴量コードBおよび特徴量コードCと
を抽出するのに用いられる、前記第1の学習フレームの注目画素を含む所定の画素群における画素位置の情報を学習する学習装置に、
前記第1の学習フレームにおいて、注目画素を含む所定の画素群のADRCに基づくnビットの量子化コードを生成し、
前記第1の学習フレームと、前記第1の学習フレームより時間的に前のフレームである第2の学習フレームとにおいて対応する画素位置の画素のレベルの変動値を検出し、
生成された前記量子化コードに対応付けて、検出された前記画素群のそれぞれの画素位置における前記画素のレベルの変動値を蓄積し、
蓄積された情報を基に、前記量子化コードと、前記画素値の前記レベル変動が最も少ない画素位置を対応付けた画素位置情報を生成するステップを
含む処理を実行させるためのプログラムが記録されている記録媒体。 The quantization code of the first learning frame whose value matches the n-bit quantization code generated by quantizing each pixel value of the predetermined pixel group including the target pixel of the input first frame by ADRC Among the 8-bit data indicating the pixel value at the first pixel position with the smallest level fluctuation associated with the code A encoded using the upper m bits, and the target pixel of the first frame A feature amount code A of a pixel of interest of the first frame, the quantization code of the predetermined pixel group including :
A feature value corresponding to the feature code A is a feature value to be searched , and each pixel value of a predetermined pixel group including a target pixel of a second frame that is a frame temporally prior to the first frame The pixel value of the second pixel position with the least level fluctuation associated with the quantization code of the first learning frame whose value matches the n-bit quantization code generated by ADRC quantization Code B or code each encoded so as to overlap in a predetermined pixel value range including the pixel value indicated by the boundary portion of the code A, using the upper m-1 bits of the 8-bit data indicating C and the composed of the quantization code of the predetermined group of pixels including a target pixel of the second frame, the second is a feature of the subject pixel of the frame feature value code B and the feature co Used to extract and de C, and the learning device for learning the information of the pixel position in a given pixel group including a pixel of interest of the first learning frame,
In the first learning frame, an n-bit quantization code based on ADRC of a predetermined pixel group including the target pixel is generated,
Detecting a variation value of a level of a pixel at a corresponding pixel position in the first learning frame and a second learning frame that is a frame temporally prior to the first learning frame;
In association with the generated quantization code, accumulate the fluctuation value of the level of the pixel at each pixel position of the detected pixel group,
Based on the accumulated information, a program for executing a process including a step of generating pixel position information in which the quantization code is associated with the pixel position having the smallest level variation of the pixel value is recorded. Recording medium.
前記特徴量コードAに対応するものが検索される特徴量であって、前記第1のフレームより時間的に前のフレームである第2のフレームの注目画素を含む所定の画素群の各画素値をADRCで量子化して生成されたnビットの量子化コードと値が一致する前記第1の学習フレームの前記量子化コードに対応付けられた前記レベル変動が最も少ない第2の画素位置の画素値を示す8ビットのデータのうち、上位m−1ビットを用いて、前記コードAの境界部分が示す画素値を含む所定の画素値範囲でオーバーラップするようにそれぞれコード化されたコードBまたはコードCと、前記第2のフレームの注目画素を含む前記所定の画素群の前記量子化コードからなる、前記第2のフレームの注目画素の特徴量である特徴量コードBおよび特徴量コードCと
を抽出するのに用いられる、前記第1の学習フレームの注目画素を含む所定の画素群における画素位置の情報を学習する学習装置に、
前記第1の学習フレームにおいて、注目画素を含む所定の画素群のADRCに基づくnビットの量子化コードを生成し、
前記第1の学習フレームと、前記第1の学習フレームより時間的に前のフレームである第2の学習フレームとにおいて対応する画素位置の画素のレベルの変動値を検出し、
生成された前記量子化コードに対応付けて、検出された前記画素群のそれぞれの画素位置における前記画素のレベルの変動値を蓄積し、
蓄積された情報を基に、前記量子化コードと、前記画素値の前記レベル変動が最も少ない画素位置を対応付けた画素位置情報を生成するステップを
含む処理を実行させるためのプログラム。 The quantization code of the first learning frame whose value matches the n-bit quantization code generated by quantizing each pixel value of the predetermined pixel group including the target pixel of the input first frame by ADRC Among the 8-bit data indicating the pixel value at the first pixel position with the smallest level fluctuation associated with the code A encoded using the upper m bits, and the target pixel of the first frame A feature amount code A of a pixel of interest in the first frame, which is composed of the quantization code of the predetermined pixel group including :
A feature value corresponding to the feature code A is a feature value to be searched , and each pixel value of a predetermined pixel group including a target pixel of a second frame that is a frame temporally prior to the first frame The pixel value of the second pixel position with the least level fluctuation associated with the quantization code of the first learning frame whose value matches the n-bit quantization code generated by ADRC quantization Code B or code each encoded so as to overlap in a predetermined pixel value range including the pixel value indicated by the boundary portion of the code A, using the upper m-1 bits of the 8-bit data indicating C and the composed of the quantization code of the predetermined group of pixels including a target pixel of the second frame, the second is a feature of the subject pixel of the frame feature value code B and the feature co Used to extract and de C, and the learning device for learning the information of the pixel position in a given pixel group including a pixel of interest of the first learning frame,
In the first learning frame, an n-bit quantization code based on ADRC of a predetermined pixel group including the target pixel is generated,
Detecting a variation value of a level of a pixel at a corresponding pixel position in the first learning frame and a second learning frame that is a frame temporally prior to the first learning frame;
In association with the generated quantization code, accumulate the fluctuation value of the level of the pixel at each pixel position of the detected pixel group,
A program for executing a process including a step of generating pixel position information in which the quantization code is associated with a pixel position with the smallest level fluctuation of the pixel value based on accumulated information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002327268A JP4264803B2 (en) | 2002-11-11 | 2002-11-11 | Image processing apparatus and method, learning apparatus and method, recording medium, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002327268A JP4264803B2 (en) | 2002-11-11 | 2002-11-11 | Image processing apparatus and method, learning apparatus and method, recording medium, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004165837A JP2004165837A (en) | 2004-06-10 |
JP4264803B2 true JP4264803B2 (en) | 2009-05-20 |
Family
ID=32805960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002327268A Expired - Fee Related JP4264803B2 (en) | 2002-11-11 | 2002-11-11 | Image processing apparatus and method, learning apparatus and method, recording medium, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4264803B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103597A (en) * | 2016-02-19 | 2017-08-29 | 青岛海信电器股份有限公司 | A kind of pixel location determining method and device |
-
2002
- 2002-11-11 JP JP2002327268A patent/JP4264803B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103597A (en) * | 2016-02-19 | 2017-08-29 | 青岛海信电器股份有限公司 | A kind of pixel location determining method and device |
CN107103597B (en) * | 2016-02-19 | 2020-04-21 | 青岛海信电器股份有限公司 | Method and device for determining pixel point position |
Also Published As
Publication number | Publication date |
---|---|
JP2004165837A (en) | 2004-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113557745B (en) | Point cloud geometry filling | |
CN110324660B (en) | Method and device for judging repeated video | |
CN115294409A (en) | Video compression method, system and medium for security monitoring | |
KR20020067514A (en) | Image matching | |
JP4697275B2 (en) | Motion vector detection apparatus, motion vector detection method, and program | |
CN110049309B (en) | Method and device for detecting stability of image frame in video stream | |
JP2011229080A (en) | Image matching point detection device, image matching point detection method, and recording medium | |
KR20200062686A (en) | Apparatus and method for detecting dynamic object | |
US8175160B1 (en) | System, method, and computer program product for refining motion vectors | |
JP2005535028A (en) | System and segmentation method for segmentation | |
JP4748191B2 (en) | Motion vector detection apparatus, motion vector detection method, and program | |
JP2008171247A (en) | Motion detecting device, method and program | |
JP4264803B2 (en) | Image processing apparatus and method, learning apparatus and method, recording medium, and program | |
JPH10247204A (en) | Method and device for multidimensional retrieval | |
JP4525064B2 (en) | Motion vector detection apparatus, motion vector detection method, and computer program | |
JP4264531B2 (en) | Image processing apparatus and method, recording medium, and program | |
JP4622264B2 (en) | Motion vector detection apparatus, motion vector detection method, and computer program | |
JP4622265B2 (en) | Motion vector detection device, motion vector detection method, and program | |
US6993077B2 (en) | Experimental design for motion estimation | |
JP4207764B2 (en) | Motion vector detection apparatus, motion vector detection method, and computer program | |
CN111581416A (en) | Picture retrieval method, device and storage medium | |
JP4129788B2 (en) | Image data processing apparatus and method, recording medium, and program | |
JP4207763B2 (en) | Motion vector detection apparatus, motion vector detection method, and computer program | |
JP2004165838A (en) | Image processing apparatus and method, recording medium, and program | |
CN110717362B (en) | Method for establishing characteristic tree structure of digital image and image object identification method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080624 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080820 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080911 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081024 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081224 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090122 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090204 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130227 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140227 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |