JP4239556B2 - 画像処理装置および方法、記録媒体、並びにプログラム - Google Patents

画像処理装置および方法、記録媒体、並びにプログラム Download PDF

Info

Publication number
JP4239556B2
JP4239556B2 JP2002327270A JP2002327270A JP4239556B2 JP 4239556 B2 JP4239556 B2 JP 4239556B2 JP 2002327270 A JP2002327270 A JP 2002327270A JP 2002327270 A JP2002327270 A JP 2002327270A JP 4239556 B2 JP4239556 B2 JP 4239556B2
Authority
JP
Japan
Prior art keywords
tap
pixel
code
initial
dynamic range
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
Application number
JP2002327270A
Other languages
English (en)
Other versions
JP2004165838A (ja
Inventor
哲二郎 近藤
靖 立平
淳一 石橋
成司 和田
泰広 周藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002327270A priority Critical patent/JP4239556B2/ja
Publication of JP2004165838A publication Critical patent/JP2004165838A/ja
Application granted granted Critical
Publication of JP4239556B2 publication Critical patent/JP4239556B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (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(i,j)をサーチエリアSR内の全域で水平方向、または、垂直方向に1画素分ずつ移動させながら、図2中のBr1(i,j)からBrm(i,j)(参照ブロックBrn(i,j)が、サーチエリアSR内にm個設定できるものとする)まで繰り返される。
【0011】
このようにして求められた基準ブロックBb(i,j)と、参照ブロックBrn(i,j)の各画素間の差分絶対値和のうち、差分絶対値和が最小となる参照ブロックBrn(i,j)を求めることにより、基準ブロック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(i,j)をカウントするカウンタ変数nを1に初期化する。
【0018】
ステップS4において、動きベクトル検出部13は、基準ブロックBb(i,j)と参照ブロックBrn(i,j)の画素間の差分絶対値和を代入するために用いる変数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】
Figure 0004239556
【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(i,j)の総数mであるか否か、すなわち、今の参照ブロックBrn(i,j)がBrn(i,j)=Brm(i,j)であるか否かを判定し、例えば、総数mではないと判定した場合、ステップS9において、カウンタ変数nを1インクリメントし、その処理は、ステップS4に戻る。
【0023】
ステップS8において、カウンタ変数nがサーチエリア内の参照ブロックBrn(i,j)の総数mである、すなわち、今の参照ブロックBrn(i,j)がBrn(i,j)=Brm(i,j)であると判定された場合、ステップS10において、動きベクトル検出部13は、登録されている動きベクトル番号に基づいて動きベクトルを出力する。すなわち、ステップS4乃至S9が繰り返されることにより、差分絶対値和が最小となる参照ブロックBrn(i,j)に対応するカウンタ変数nが動きベクトル番号として登録されることになるので、動きベクトル検出部13は、この動きベクトル番号に対応する参照ブロックBrn(i,j)のL×L個の画素のうち、その中心となる参照画素Pn(i,j)を求め、カレントフレームFc上の注目画素P(i,j)に対応する参照フレームFr上の画素P’(i,j)を始点とし、参照画素Pn(i,j)を終点とするベクトルを、注目画素P(i,j)の動きベクトル(Vx,Vy)として求めて出力する。
【0024】
また、ブロックマッチング法により動きベクトルを検出する時に、定常成分および過渡成分の絶対値差分を累算した値の加重平均から得られる評価値に基づいて動きベクトルを検出することにより、演算量を低減させるようにするものがある(例えば、特許文献1参照)。
【0025】
さらに、参照ブロックおよび探索範囲内の画素値を符号化してコード値に基づいてマッチング演算を行い、演算結果に基づいて第1の動きベクトルを算出し、第1の動きベクトルに応じた動き補償を行った後に第1の動きベクトルに係る候補ブロックを1画素を単位としてずらすことで得られる新たな探索範囲について、画素値の差分に基づくブロックマッチングを行うことにより、第2の動きベクトルを算出して、第1の動きベクトルと第2の動きベクトルの和として最終的な動きベクトルを算出することで、演算を簡素化するものがある(例えば、特許文献2参照)。
【0026】
【特許文献1】
特開平07−087494号公報
【特許文献2】
特開2000−278691号公報
【0027】
【発明が解決しようとする課題】
しかしながら、上述したブロックマッチングアルゴリズムは、式(1)の演算量が非常に膨大なものとなるため、MPEG(Moving Picture Experts Group)等の画像圧縮処理においては、大半の時間がこの処理に費やされてしまうという課題があった。
【0028】
また、カレントフレームFc、または、参照フレームFrの動きベクトルの始点、または、終点付近でノイズが含まれた場合、ブロックマッチングでは基準ブロックに類似する参照ブロックを検出することができず、正確な動きベクトルを検出することができないという課題があった。
【0029】
本発明はこのような状況に鑑みてなされたものであり、正確に動きベクトルを生成することができるようにするものである。
【0030】
【課題を解決するための手段】
本発明の画像処理装置は、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第1の注目画素に決定し、第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1の初期DR(Dynamic Range)タップを抽出する第1の初期DRタップ抽出手段と、第1の初期DRタップを構成する複数の画素の画素値うち、最大値から最小値を差し引いた値である、第1の初期DRタップのダイナミックレンジを検出する第1の初期DR検出手段と、第1の初期 DR タップのダイナミックレンジに基づいて、複数の第1の DR コードのうち、第1の注目画素に対応する第1の DR コードを算出する第1の演算であって、同一の第1の DR コードが算出される第1の初期 DR タップのダイナミックレンジを含む第1の区分毎に区切られた、第1の初期 DR タップのダイナミックレンジの区分範囲のうち、第1の区分に含まれる第1の初期 DR タップのダイナミックレンジから、同一の第1の DR コードを算出する第1の演算により、第1の初期DRタップのダイナミックレンジから、第1の注目画素に対応する第1のDRードを算出する第1のDRクラスコード算出手段と、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第1のDRードに対応付けられているDR タップパターンにしたがって抽出する第1のDRタップ抽出手段と、第1のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第1のDRタップのダイナミックレンジを検出する第1のDR検出手段と、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のクラスタップを抽出する第1のクラスタップ抽出手段と、第1のクラスタップを構成する画素の画素値を、第1のDRタップのダイナミックレンジを用いた ADRC(Adaptive Dynamic Range Coding) により量子化し、第1の量子化コードを生成する第1の量子化コード生成手段と、第1の量子化コードに対応させて第1の注目画素の画素位置を、データベースに記憶する記憶手段と、カレントフレームを構成する各画素を第2の注目画素に決定し、第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2の初期DRタップを抽出する第2の初期DRタップ抽出手段と、第2の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2の初期DRタップのダイナミックレンジを検出する第2の初期DR検出手段と、第2の初期 DR タップのダイナミックレンジに基づいて、複数の第2の DR コードのうち、第2の注目画素に対応する第2の DR コードを算出する第2の演算であって、同一の第2の DR コードが算出される第2の初期 DR タップのダイナミックレンジを含む、第1の区分よりも狭い第2の区分毎に区切られた、第2の初期 DR タップのダイナミックレンジの区分範囲のうち、第2の区分に含まれる第2の初期 DR タップのダイナミックレンジから、同一の第2の DR コードを算出する第2の演算により、第2の初期DRタップのダイナミックレンジから、第2の注目画素に対応する第2のDRードを算出する第2のDRクラスコード算出手段と、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第2のDRードに対応付けられているDR タップパターンにしたがって抽出する第2のDRタップ抽出手段と、第2のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2のDRタップのダイナミックレンジを検出する第2のDR検出手段と、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のクラスタップを抽出する第2のクラスタップ抽出手段と、第2のクラスタップを構成する画素の画素値を、第2のDRタップのダイナミックレンジを用いた ADRC により量子化し、第2の量子化コードを生成する第2の量子化コード生成手段と、第2の量子化コードに対応する、参照フレーム中の画素の画素位置を、データベースから読み出す読出し手段と、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第2の注目画素の画素位置との距離が最小となる画素位置を検出する画素位置検出手段とを備える。
【0031】
出された参照フレーム中の画素の画素位置、及びカレントフレーム中の第2の注目画素の画素位置のいずれか一方を始点とし、他方を終点とする動きベクトルを生成する動きベクトル生成手段をさらに設けるようにさせることができる。
【0032】
第1のDRクラスコード算出手段には、同一の DR コード A が算出される第1の初期 DR タップのダイナミックレンジを含む区分を第1の区分とし、第1の区分毎に区切られた、第1の初期 DR タップのダイナミックレンジの区分範囲のうち、第1の区分に含まれる第1の初期 DR タップのダイナミックレンジから、同一の DR コード A を算出するとともに、同一の DR コード A が算出される第1の初期 DR タップのダイナミックレンジを含む区分とは異なる、同一の DR コード B が算出される第1の初期 DR タップのダイナミックレンジを含む区分を、第1の区分とし、第1の区分毎に区切られた、第1の初期 DR タップのダイナミックレンジの区分範囲のうち、第1の区分に含まれる第1の初期 DR タップのダイナミックレンジから、同一の DR コード B を算出する第1の演算により、第1の初期DRタップのダイナミックレンジから、DR コード A 及び DR コード B を、2種類の第1のDRードとして算出させるようにすることができ、第1のDRタップ抽出手段には、2種類の第1のDRードそれぞれに対応付けられているDR タップパターンにより、2種類の第1のDRタップを抽出させるようにすることができ、第1のDR検出手段には、2種類の第1のDRタップそれぞれのダイナミックレンジを検出させるようにすることができ、第1の量子化コード生成手段には、第1のクラスタップを、2種類の第1のDRタップそれぞれのダイナミックレンジを用いた ADRC により量子化し、2種類の第1の量子化コードを生成させるようにすることができる。
【0033】
第2のDRクラスコード算出手段には、同一の DR コード C が算出される第2の初期 DR タップのダイナミックレンジを含む区分を第2の区分とし、第2の区分毎に区切られた、第2の初期 DR タップのダイナミックレンジの区分範囲のうち、第2の区分に含まれる第2の初期 DR タップのダイナミックレンジから、同一の DR コード C を算出する第2の演算により、、第2の初期DRタップのダイナミックレンジから DR コード C を、第2のDRードとして算出させるようにすることができ第2のDRタップ抽出手段には、第2のDRードに対応付けられている第2のDRタップのDR タップパターンにより、第2のDRタップを抽出させるようにすることができる。
【0034】
第2のDRクラスコード算出手段には、第2の演算により、第2の区分毎に区切られた、第2の初期DRタップのダイナミックレンジの区分範囲のうち、第2の区分に含まれる第2の初期DRタップのダイナミックレンジの上位Aビットから、同一の第2のDRードを算出させるようにすることができ、第1のDRクラスコード算出手段には、第1の演算により第2の区分どうしの境界から、所定のビットだけシフトした位置を境界とする第1の区分毎に区切られた、第1の初期DRタップのダイナミックレンジの区分範囲のうち、第1の区分に含まれる第1の初期DRタップのダイナミックレンジの上位(A−1)ビットから、同一の第1のDRードを算出させるようにすることができる。
【0035】
第1のDRタップ抽出手段には、第1の初期DRタップのダイナミックレンジが、第2の区分どうしの境界付近である場合、2種類の第1のDRードそれぞれに対応付けられているDR タップパターンにより、2種類の第1のDRタップを抽出させるようにすることができ、第1の初期DRタップのダイナミックレンジが、第2の区分どうしの境界付近でない場合、2種類の第1のDRードそれぞれに対応付けられているDR タップパターンのいずれか一方により、1種類の第1のDRタップを抽出させるようにすることができ、第1のDR検出手段には、抽出された第1のDRタップのダイナミックレンジを検出させるようにすることができる。
【0036】
DRタップと第クラスタップは、同一であり、このとき同時に、第DRタップと第クラスタップも、同一であるものとすることができる。
【0037】
本発明の画像処理方法は、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第1の注目画素に決定し、第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1の初期DRップを抽出する第1の初期DRタップ抽出ステップと、第1の初期DRタップを構成する複数の画素の画素値うち、最大値から最小値を差し引いた値である、第1の初期DRタップのダイナミックレンジを検出する第1の初期DR検出ステップと、第1の初期 DR タップのダイナミックレンジに基づいて、複数の第1の DR コードのうち、第1の注目画素に対応する第1の DR コードを算出する第1の演算であって、同一の第1の DR コードが算出される第1の初期 DR タップのダイナミックレンジを含む第1の区分毎に区切られた、第1の初期 DR タップのダイナミックレンジの区分範囲のうち、第1の区分に含まれる第1の初期 DR タップのダイナミックレンジから、同一の第1の DR コードを算出する第1の演算により、第1の初期DRタップのダイナミックレンジから、第1の注目画素に対応する第1のDRードを算出する第1のDRクラスコード算出ステップと、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第1のDRードに対応付けられているDR タップパターンにしたがって抽出する第1のDRタップ抽出ステップと、第1のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第1のDRタップのダイナミックレンジを検出する第1のDR検出ステップと、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のクラスタップを抽出する第1のクラスタップ抽出ステップと、第1のクラスタップを構成する画素の画素値を、第1のDRタップのダイナミックレンジを用いた ADRC により量子化し、第1の量子化コードを生成する第1の量子化コード生成ステップと、第1の量子化コードに対応させて第1の注目画素の画素位置を、データベースに記憶する記憶ステップと、カレントフレームを構成する各画素を第2の注目画素に決定し、第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2の初期DRタップを抽出する第2の初期DRタップ抽出ステップと、第2の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2の初期DRタップのダイナミックレンジを検出する第2の初期DR検出ステップと、第2の初期 DR タップのダイナミックレンジに基づいて、複数の第2の DR コードのうち、第2の注目画素に対応する第2の DR コードを算出する第2の演算であって、同一の第2の DR コードが算出される第2の初期 DR タップのダイナミックレンジを含む、第1の区分よりも狭い第2の区分毎に区切られた、第2の初期 DR タップのダイナミックレンジの区分範囲のうち、第2の区分に含まれる第2の初期 DR タップのダイナミックレンジから、同一の第2の DR コードを算出する第2の演算により、第2の初期DRタップのダイナミックレンジから、第2の注目画素に対応する第2のDRードを算出する第2のDRクラスコード算出ステップと、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第2のDRードに対応付けられているDR タップパターンにしたがって抽出する第2のDRタップ抽出ステップと、第2のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2のDRタップのダイナミックレンジを検出する第2のDR検出ステップと、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のクラスタップを抽出する第2のクラスタップ抽出ステップと、第2のクラスタップを構成する画素の画素値を、第2のDRタップのダイナミックレンジを用いた ADRC により量子化し、第2の量子化コードを生成する第2の量子化コード生成ステップと、第2の量子化コードに対応する、参照フレーム中の画素の画素位置を、データベースから読み出す読出しステップと、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第2の注目画素の画素位置との距離が最小となる画素位置を検出する画素位置検出ステップとを含む。
【0038】
本発明の記録媒体のプログラムは、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第1の注目画素に決定し、第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1の初期DRップを抽出する第1の初期DRタップ抽出手段と、第1の初期DRタップを構成する複数の画素の画素値うち、最大値から最小値を差し引いた値である、第1の初期DRタップのダイナミックレンジを検出する第1の初期DR検出手段と、第1の初期 DR タップのダイナミックレンジに基づいて、複数の第1の DR コードのうち、第1の注目画素に対応する第1の DR コードを算出する第1の演算であって、同一の第1の DR コードが算出される第1の初期 DR タップのダイナミックレンジを含む第1の区分毎に区切られた、第1の初期 DR タップのダイナミックレンジの区分範囲のうち、第1の区分に含まれる第1の初期 DR タップのダイナミックレンジから、同一の第1の DR コードを算出する第1の演算により、第1の初期DRタップのダイナミックレンジから、第1の注目画素に対応する第1のDRードを算出する第1のDRクラスコード算出手段と、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第1のDRードに対応付けられているDR タップパターンにしたがって抽出する第1のDRタップ抽出手段と、第1のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第1のDRタップのダイナミックレンジを検出する第1のDR検出手段と、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のクラスタップを抽出する第1のクラスタップ抽出手段と、第1のクラスタップを構成する画素の画素値を、第1のDRタップのダイナミックレンジを用いた ADRC により量子化し、第1の量子化コードを生成する第1の量子化コード生成手段と、第1の量子化コードに対応させて第1の注目画素の画素位置を、データベースに記憶する記憶手段と、カレントフレームを構成する各画素を第2の注目画素に決定し、第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2の初期DRタップを抽出する第2の初期DRタップ抽出手段と、第2の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2の初期DRタップのダイナミックレンジを検出する第2の初期DR検出手段と、第2の初期 DR タップのダイナミックレンジに基づいて、複数の第2の DR コードのうち、第2の注目画素に対応する第2の DR コードを算出する第2の演算であって、同一の第2の DR コードが算出される第2の初期 DR タップのダイナミックレンジを含む、第1の区分よりも狭い第2の区分毎に区切られた、第2の初期 DR タップのダイナミックレンジの区分範囲のうち、第2の区分に含まれる第2の初期 DR タップのダイナミックレンジから、同一の第2の DR コードを算出する第2の演算により、第2の初期DRタップのダイナミックレンジから、第2の注目画素に対応する第2のDRードを算出する第2のDRクラスコード算出手段と、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第2のDRードに対応付けられているDR タップパターンにしたがって抽出する第2のDRタップ抽出手段と、第2のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2のDRタップのダイナミックレンジを検出する第2のDR検出手段と、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のクラスタップを抽出する第2のクラスタップ抽出手段と、第2のクラスタップを構成する画素の画素値を、第2のDRタップのダイナミックレンジを用いた ADRC により量子化し、第2の量子化コードを生成する第2の量子化コード生成手段と、第2の量子化コードに対応する、参照フレーム中の画素の画素位置を、データベースから読み出す読出し手段と、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第2の注目画素の画素位置との距離が最小となる画素位置を検出する画素位置検出手段として機能させるためのプログラムである。
【0039】
本発明のプログラムは、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第1の注目画素に決定し、第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1の初期DRップを抽出する第1の初期DRタップ抽出手段と、第1の初期DRタップを構成する複数の画素の画素値うち、最大値から最小値を差し引いた値である、第1の初期DRタップのダイナミックレンジを検出する第1の初期DR検出手段と、第1の初期 DR タップのダイナミックレンジに基づいて、複数の第1の DR コードのうち、第1の注目画素に対応する第1の DR コードを算出する第1の演算であって、同一の第1の DR コードが算出される第1の初期 DR タップのダイナミックレンジを含む第1の区分毎に区切られた、第1の初期 DR タップのダイナミックレンジの区分範囲のうち、第1の区分に含まれる第1の初期 DR タップのダイナミックレンジから、同一の第1の DR コードを算出する第1の演算により、第1の初期DRタップのダイナミックレンジから、第1の注目画素に対応する第1のDRードを算出する第1のDRクラスコード算出手段と、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第1のDRードに対応付けられているDR タップパターンにしたがって抽出する第1のDRタップ抽出手段と、第1のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第1のDRタップのダイナミックレンジを検出する第1のDR検出手段と、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のクラスタップを抽出する第1のクラスタップ抽出手段と、第1のクラスタップを構成する画素の画素値を、第1のDRタップのダイナミックレンジを用いた ADRC により量子化し、第1の量子化コードを生成する第1の量子化コード生成手段と、第1の量子化コードに対応させて第1の注目画素の画素位置を、データベースに記憶する記憶手段と、カレントフレームを構成する各画素を第2の注目画素に決定し、第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2の初期DRタップを抽出する第2の初期DRタップ抽出手段と、第2の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2の初期DRタップのダイナミックレンジを検出する第2の初期DR検出手段と、第2の初期 DR タップのダイナミックレンジに基づいて、複数の第2の DR コードのうち、第2の注目画素に対応する第2の DR コードを算出する第2の演算であって、同一の第2の DR コードが算出される第2の初期 DR タップのダイナミックレンジを含む、第1の区分よりも狭い第2の区分毎に区切られた、第2の初期 DR タップのダイナミックレンジの区分範囲のうち、第2の区分に含まれる第2の初期 DR タップのダイナミックレンジから、同一の第2の DR コードを算出する第2の演算により、第2の初期DRタップのダイナミックレンジから、第2の注目画素に対応する第2のDRードを算出する第2のDRクラスコード算出手段と、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第2のDRードに対応付けられているDR タップパターンにしたがって抽出する第2のDRタップ抽出手段と、第2のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2のDRタップのダイナミックレンジを検出する第2のDR検出手段と、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のクラスタップを抽出する第2のクラスタップ抽出手段と、第2のクラスタップを構成する画素の画素値を、第2のDRタップのダイナミックレンジを用いた ADRC により量子化し、第2の量子化コードを生成する第2の量子化コード生成手段と、第2の量子化コードに対応する、参照フレーム中の画素の画素位置を、データベースから読み出す読出し手段と、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第2の注目画素の画素位置との距離が最小となる画素位置を検出する画素位置検出手段として機能させるためのプログラムである。
【0040】
本発明の画像処理装置および方法、並びにプログラムにおいては、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素第1の注目画素に決定され、第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1の初期DRップが抽出され、第1の初期DRタップを構成する複数の画素の画素値うち、最大値から最小値を差し引いた値である、第1の初期DRタップのダイナミックレンジが検出され、第1の初期 DR タップのダイナミックレンジに基づいて、複数の第1の DR コードのうち、第1の注目画素に対応する第1の DR コードを算出する第1の演算であって、同一の第1の DR コードが算出される第1の初期 DR タップのダイナミックレンジを含む第1の区分毎に区切られた、第1の初期 DR タップのダイナミックレンジの区分範囲のうち、第1の区分に含まれる第1の初期 DR タップのダイナミックレンジから、同一の第1の DR コードを算出する第1の演算により、第1の初期DRタップのダイナミックレンジから、第1の注目画素に対応する第1のDRードが算出され、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のDRタップが、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第1のDRードに対応付けられているDR タップパターンにしたがって抽出され、第1のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第1のDRタップのダイナミックレンジが検出され、参照フレーム中の第1の注目画素と、第1の注目画素の周辺に存在する画素とからなる第1のクラスタップが抽出され、第1のクラスタップを構成する画素の画素値が、第1のDRタップのダイナミックレンジを用いた ADRC により量子化されて、第1の量子化コードが生成され、第1の量子化コードに対応させて第1の注目画素の画素位置が、データベースに記憶され、カレントフレームを構成する各画素第2の注目画素に決定され、第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2の初期DRタップが抽出され、第2の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2の初期DRタップのダイナミックレンジが検出され、第2の初期 DR タップのダイナミックレンジに基づいて、複数の第2の DR コードのうち、第2の注目画素に対応する第2の DR コードを算出する第2の演算であって、同一の第2の DR コードが算出される第2の初期 DR タップのダイナミックレンジを含む、第1の区分よりも狭い第2の区分毎に区切られた、第2の初期 DR タップのダイナミックレンジの区分範囲のうち、第2の区分に含まれる第2の初期 DR タップのダイナミックレンジから、同一の第2の DR コードを算出する第2の演算により、第2の初期DRタップのダイナミックレンジから、第2の注目画素に対応する第2のDRードが算出され、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のDRタップが、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、第2のDRードに対応付けられているDR タップパターンにしたがって抽出され、第2のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第2のDRタップのダイナミックレンジが検出され、カレントフレーム中の第2の注目画素と、第2の注目画素の周辺に存在する画素とからなる第2のクラスタップが抽出され、第2のクラスタップを構成する画素の画素値が、第2のDRタップのダイナミックレンジを用いた ADRC により量子化されて、第2の量子化コードが生成され、第2の量子化コードに対応する、参照フレーム中の画素の画素位置が、データベースから読み出され、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第2の注目画素の画素位置との距離が最小となる画素位置が検出される。
【0041】
【発明の実施の形態】
図4は、本発明を適用した画像処理装置の動き検出部21の構成を示すブロック図である。
【0042】
動き検出部21は、フレームメモリ31,32、参照フレーム特徴量抽出部33、データベース制御部34、カレントフレーム特徴量抽出部35、および、動きベクトル検出部36で構成されている。
【0043】
フレームメモリ31は、入力端子Tinから入力された画像信号の1画面(1フレーム)の情報を格納し、フレームメモリ32、および、カレントフレーム特徴量抽出部35に供給する。フレームメモリ32は、フレームメモリ31から1フレーム分の情報が入力されると、それまでに記憶していた1フレーム分の情報を参照フレーム特徴量抽出部33に出力する。すなわち、フレームメモリ31から1フレーム分の情報がカレントフレーム特徴量抽出部35に出力されるとき、そのタイミングより、1フレーム前の情報がフレームメモリ32から参照フレーム特徴量抽出部33に出力される。尚、以下の説明において、フレームメモリ31からカレントフレーム特徴量抽出部35に出力されるフレームの情報をカレントフレームFcの情報と称すると共に、フレームメモリ32から参照フレーム特徴量抽出部33に出力されるフレームの情報を参照フレームFrの情報と称する(上述の図2を参照して説明したカレントフレームFcと参照フレームFrの関係と同様である)。
【0044】
参照フレーム特徴量抽出部33は、フレームメモリ32から供給された画面情報、すなわち参照フレームFcの情報を基に、参照フレーム上に存在する全ての画素の特徴量を抽出する。
【0045】
参照フレーム特徴量抽出部33は、注目画素毎に初期DR(Dynamic Range)タップを抽出し、初期DRタップのDRを求め、求められたDRから2種類のDRクラスを決定する。そして、参照フレーム特徴量抽出部33は、2種類のDRクラスに基づいた2種類のDRタップに基づいて、参照フレームFr中の注目画素の量子化コード(ADRC(Adaptive Dynamic Range Coding)コード)を求めるための2種類のDR、および、最小値をそれぞれ求める。さらに、参照フレーム特徴量抽出部33は、注目画素に対応するクラスタップを抽出し、上述の2種類のDR、および、最小値から2種類の量子化コードを参照フレームFrの特徴量情報として生成して、データベース制御部34に出力する。尚、参照フレーム特徴量抽出部33の処理については、詳細を後述する。
【0046】
データベース制御部34は、参照フレーム特徴量抽出部33から入力される参照フレームFrの特徴量情報に基づいて、特徴量をアドレスとして画素の位置情報をデータベース41に格納することにより、参照フレーム情報を生成する。データベース制御部34は、内部に、処理済の画素数をカウントするためのカウンタを有している。
【0047】
次に、図5を参照して、データベース41に格納される参照フレーム情報の構成について説明する。
【0048】
データベース41は、特徴量アドレス0乃至aと、フラグアドレス0乃至bによって示されるa×b個のセルにより構成されている。データベース制御部34は、画素の特徴量を特徴量アドレスに対応付けて、特徴量毎にその特徴量を持つ画素位置の情報を、データベース41の、特徴量アドレスに対応するフラグアドレス1乃至bに順次格納する。そして、フラグアドレス0には、現在、その特徴量アドレスに格納されている画素位置の情報の数が、順次、インクリメントされて格納される。具体的には、特徴量アドレス1に、1つの画素位置の情報がセル(1,1)に格納されている場合、セル(1,0)には、格納されている画素位置の情報の数として、1が格納される。そして、次の注目画素の特徴量が、特徴量アドレス1に対応するものであった場合、セル(1,0)に格納されている値は、インクリメントされて2となり、注目画素の位置情報が、セル(1,2)に格納される。
【0049】
再び、図4に戻り、動き検出部21の構成について説明する。
【0050】
カレントフレーム特徴量抽出部35は、カレントフレームの注目画素毎に初期DRタップを抽出し、初期DRタップのDRを求め、求められたDRからDRクラスを決定する。そして、カレントフレーム特徴量抽出部33は、DRクラスに基づいたDRタップに基づいて、カレントフレームFc中の注目画素の量子化コード(ADRCコード)を求めるためのDR、および、最小値をそれぞれ求める。さらに、カレントフレーム特徴量抽出部33は、注目画素に対応するクラスタップを抽出し、上述のDR、および、最小値から量子化コードをカレントフレームFcの特徴量情報として生成して、動きベクトル検出部36に出力する。尚、カレントフレーム特徴量抽出部35の処理については、詳細を後述する。
【0051】
動きベクトル検出部36は、カレントフレーム特徴量抽出部35から供給されたカレントフレームFcの特徴量情報と、データベース制御部34のデータベース41に記憶されている情報とのマッチング処理を実行して、動きベクトルを検出する。動きベクトル検出部36は、具体的には、カレントフレームFcの注目画素の特徴量に対応する、データベース41の特徴量アドレスに記載されている、複数の候補それぞれの画素位置と注目画素の距離を演算し、算出された距離が最小である画素位置の情報に基づいて、差分座標を注目画素の動きベクトル(Vx,Vy)として検出する。
【0052】
動きベクトル検出部36は、検出した動きベクトルMの値が想定される動きベクトルの最大値M_Maxより小さいときは(規定範囲内にあるとき)、正しい動きベクトルとして判定し、端子Toutから出力する。また、動きベクトル検出部36は、検出した動きベクトルMの値が想定される動きベクトルの最大値M_Maxより大きいときは(規定範囲外にあるとき(等しい場合も含む))、対応していない位置の動きベクトルと判定し、カレントフレーム内の画素とデータベース41で近い特徴量のアドレスを生成して、近傍の特徴量のアドレスに属する画素位置の情報に基づいて再度マッチング処理を行う。なお、動きベクトル検出部36は、たとえば近傍の特徴量の選択においてビット反転を行うが、このとき注目画素のパターンに応じてビット反転の形態を変更する。
【0053】
次に、図6のフローチャートを参照して、参照フレーム情報生成処理について説明する。
【0054】
ステップS31において、データベース制御部34は、データベース41に登録されている参照フレーム情報を初期化する。すなわち、データベース制御部34は、全ての特徴量アドレスに対応するフラグアドレス0のセルに0を書き込み、フラグアドレス1乃至bに格納されている画素位置の情報を削除する。
【0055】
ステップS32において、データベース制御部34は、フレームメモリ31内の画素をカウントするカウンタのカウンタ変数nを0に初期化する。
【0056】
ステップS33において、参照フレーム特徴量抽出部33は、フレームメモリ32に記憶されている画像情報(参照フレームFc)の各画素に対応する2種類の量子化コード(ADRCコード)を参照フレームFrの特徴量情報として生成して、データベース制御部34に出力する。尚、参照フレーム特徴量算出処理については、図16のフローチャートを参照して後述する。
【0057】
ステップS34において、データベース制御部34は、参照フレーム特徴量抽出部33において抽出された参照フレームFrの注目画素の2種類の特徴量(後述するコードAおよびコードB)を読出し、データベース41から、2種類のそれぞれの特徴量に対応する特徴量アドレスの、フラグアドレス0に記載されている値Kを読み込む。上述したように、1つの注目画素に対して、2種類の特徴量が決定されるので、2箇所の特徴量アドレスに対応する値Kが読み出される。
【0058】
ステップS35において、データベース制御部34は、ステップS35において読み出した値Kを、それぞれ1だけインクリメントして(K=K+1として)、データベース41の対応する特徴量アドレスの、フラグアドレス0に書き込む。
【0059】
ステップS36において、データベース制御部34は、参照フレーム特徴量抽出部33より入力された参照フレームFrの情報から、注目画素の位置情報を読み出し、データベース41の対応する特徴量アドレスのフラグアドレスK+1に、注目画素の位置情報を書き込む。
【0060】
ステップS37において、データベース制御部34は、カウンタ変数nをインクリメントして、n=n+1とする。
【0061】
ステップS38において、データベース制御部34は、カウンタ変数n=1フレームの画素数であるか否かを判定する。ステップS38において、カウンタ変数n=1フレームの画素数ではないと判定された場合、処理は、ステップS33に戻り、それ以降の処理が繰り返される。ステップS38において、カウンタ変数n=1フレームの画素数であると判定された場合、処理は、終了される。
【0062】
次に、図7,図8のフローチャートを参照して、図4の動き検出部21による動きベクトル検出処理について説明する。
【0063】
ステップS51において、動きベクトル検出部36は、1フレームの画素数をカウントするカウント変数sを0に初期化する。
【0064】
ステップS52において、カレントフレーム特徴量抽出部35は、フレームメモリ31に記憶されているカレントフレームFcに基づいて、カレントフレーム特徴量抽出処理を実行して、カレントフレームFcの注目画素Pnの特徴量情報を動きベクトル検出部36に出力する。尚、カレントフレーム特徴量抽出処理については、図20のフローチャートを参照して後述する。
【0065】
ステップS53において、動きベクトル検出部36は、カレントフレーム特徴量抽出部35より入力された特徴量の特徴量アドレスに対応する、データベース41上のセル(特徴量アドレス,0)に記録されている値を読み込み、同じ特徴量に分類される画素数(候補数:画素位置の情報の数)を変数tsに代入する。また、動きベクトル検出部36は、候補数カウンタを示すカウンタ変数tを1に、距離の最小値を示す変数Minを∞に、距離を示すカウンタ変数Lを0にそれぞれ初期化する。
【0066】
ステップS54において、動きベクトル検出部36は、カレントフレームFc内の注目画素Pnとデータベース制御部35から読み込んだデータベース41上の(特徴量アドレス,t)に記録されている画素位置の情報との距離を演算して、変数Lに代入する。
【0067】
ステップS55において、動きベクトル検出部36は、ステップS54の処理で求められた距離Lが最小値を示す変数Minよりも小さいか否かを判定し、例えば、変数Min>距離Lであると判定した場合、ステップS56において、変数Minを距離Lに更新し、そのときの変数tを動きベクトル番号として登録する。また、変数Min≦距離Lであると判定された場合、ステップS56の処理はスキップされる。
【0068】
ステップS57において、動きベクトル検出部36は、候補カウンタ変数tが候補数の変数ts以上であるか否かを判定し、候補カウンタ変数tが候補数の変数ts以上ではないと判定した場合、すなわち、候補となる未処理の画素が存在する場合、ステップS58において、変数tを1インクリメントして、その処理は、ステップS54に戻る。
【0069】
すなわち、候補カウンタ変数tが候補数の変数ts以上ではないということは、データベース41上に記録されている、注目画素の特徴量と同一の特徴量に分類された画素位置の情報のうち、ステップS54乃至S56の処理がなされていない画素位置の情報が存在することになるので、候補となる全ての画素位置の情報について、ステップS54乃至S57の処理が施されるまで、その処理が繰り返される。
【0070】
ステップS57において、変数tが変数ts以上であると判定された場合、すなわち、注目画素の特徴量と同一の特徴量を有する全ての画素の画素位置と注目画素との距離が比較されたと判定された場合、ステップS59において、動きベクトル検出部36は、ステップS56の処理で登録した動きベクトル番号に対応する画素位置を始点とし、注目画素位置を終点とする動きベクトルMを求める。
【0071】
ステップS60において、動きベクトル検出部36は、求められた動きベクトルMの絶対値と、動きベクトルMの想定される最大値M_Maxとを比較し、動きベクトルMの絶対値が最大値M_Maxよりも小さいか否かを判定し、例えば、動きベクトルMの絶対値が最大値M_Maxよりも小さいと判定した場合、その処理は、ステップS61に進む。
【0072】
ステップS61において、動きベクトル検出部36は、ステップS59の処理で求められた動きベクトルMを出力端子Toutから出力し、ステップS62において、変数sを1インクリメントする。
【0073】
ステップS63において、動きベクトル検出部36は、変数sがフレーム内の画素数と一致するか否かを判定し、例えば、変数sがフレーム内の画素数と一致しないと判定した場合、すなわち、まだ、処理すべき画素が存在すると判定する場合、その処理は、ステップS52に戻り、例えば、変数sがフレーム内の画素数と一致すると判定した場合、すなわち、全ての画素について処理がなされたと判定された場合、その処理は終了する。
【0074】
ステップS60において、動きベクトルMの絶対値が最大値M_Maxよりも小さくないと判定された場合、すなわち、注目画素と同じ特徴量を有する参照フレームの画素のうち、注目画素と最も近い位置に存在する画素との距離が想定していた距離M_Maxよりも離れていた(大きかった)場合、その処理は、ステップS64(図8)に進む。
【0075】
ステップS64(図8)において、動きベクトル検出部36は、反転ビット数を示す変数uを1に初期化する。
【0076】
ステップS65において、動きベクトル検出部36は、注目画素の特徴量を示す量子化コードのうちuビットを反転させる。すなわち、最初の処理では注目画素の特徴量を示す量子化コードを構成する複数ビットのうちのいずれか1ビットが反転される。
【0077】
ステップS66において、動きベクトル検出部36は、uビットだけ反転した特徴量を特徴量アドレスに対応する、データベース41上の(特徴量アドレス,0)に記録されている値を読み込み、同じ特徴量に分類される画素数(候補数:画素位置の情報の数)を変数tsに代入する。また、動きベクトル検出部36は、候補数カウンタを示すカウンタ変数tを1に、距離の最小値を意味する変数Minを∞に、距離を示すカウンタ変数Lを0にそれぞれ初期化する。
【0078】
ステップS67において、動きベクトル検出部36は、カレントフレームFc内の注目画素Pnと、データベース制御部35から読み込んだデータベース41上の(特徴量アドレス,t)に記録されている画素位置との距離を演算して、変数Lに代入する。
【0079】
ステップS68において、動きベクトル検出部36は、ステップS67の処理で求められた距離Lが距離の最小値の変数Minよりも小さいか否かを判定し、例えば、変数Min>距離Lであると判定した場合、ステップS69において、最小値の変数Minを距離Lに更新し、そのときの変数tを動きベクトル番号として登録する。また、変数Min≦距離Lであると判定された場合、ステップS69の処理はスキップされる。
【0080】
ステップS70において、動きベクトル検出部36は、候補カウンタ変数tが候補数の変数ts以上であるか否かを判定し、候補カウンタ変数tが候補数の変数ts以上ではないと判定した場合、すなわち、候補となる未処理の画素が存在するとみなし、ステップS71において、変数tを1インクリメントして、その処理は、ステップS67に戻る。
【0081】
すなわち、候補カウンタ変数tが候補数の変数ts以上ではないということは、データベース41上に記録されている、注目画素の特徴量がuビット反転された特徴量と同一の特徴量に分類された画素位置の情報のうち、ステップS67乃至S69の処理がなされていない画素が存在することになるので、候補となる全ての画素について、ステップS67乃至S69の処理が施されるまで、その処理が繰り返される。
【0082】
ステップS70において、変数tが変数ts以上であると判定された場合、すなわち、注目画素の特徴量のうちuビット反転された特徴量と同一の特徴量を有する全ての画素の画素位置と注目画素との距離が比較されたと判定された場合、ステップS72において、注目画素の特徴量のうち反転させていないビットの組み合わせがあるか否かを判定し、まだ、反転させていないビットが、または、反転させていないビットの組み合わせがあると判定した場合、その処理は、ステップS65に戻る。
【0083】
ステップS72において、反転させていないビットが存在しないと判定された場合、ステップS73において、動きベクトル検出部36は、ステップS69の処理で登録した動きベクトル番号に対応する画素位置を始点とし、注目画素位置を終点とする動きベクトルMを求める。
【0084】
ステップS74において、動きベクトル検出部36は、求められた動きベクトルMの大きさの絶対値と、動きベクトルMの大きさとして想定される最大値M_Maxとを比較し、動きベクトルMの絶対値が最大値M_Maxよりも小さいか否かを判定し、例えば、動きベクトルMの絶対値が最大値M_Maxよりも小さいと判定した場合、その処理は、ステップS61に戻る。
【0085】
ステップS74において、動きベクトルMの絶対値が最大値M_Maxよりも小さくないと判定された場合、すなわち、注目画素の特徴量のうちuビット反転された特徴量と同じ特徴量を有する参照フレームの画素のうち、注目画素と最も近い位置に存在する画素との距離が想定していた距離よりも離れていた場合、ステップS75において、変数uを1インクリメントして、その処理は、ステップS65に戻る。
【0086】
すなわち、ステップS51乃至S63の処理により、注目画素Pnの特徴量と同一の特徴量として分類されている画素と、注目画素との距離を順次演算し、最小となる画素を求め、その求められた画素位置の情報と注目画素Pnの画素位置の情報から動きベクトルを生成して、出力する。
【0087】
ただし、ステップS60において、生成された動きベクトルMの絶対値が、最大値M_Maxよりも大きい場合、正しく求められた動きベクトルではないと判定され、ステップS64乃至S75の処理により、注目画素Pnの特徴量に類似した近傍の特徴量に属する(分類される)画素と、注目画素Pnとの距離を順次求めて、その距離が最小となる画素を求め、動きベクトルを求める。
【0088】
すなわち、動き物体のある部分の特徴量が隣接フレームで少量変化することがありうる。
【0089】
特徴量空間の各要素間は直交の関係にあるため、ある特徴量は図8のd−a1のように要素の個数を軸とした特徴量空間で定義される。すなわち、d−a1で示す座標に特徴量を抽出した画素の空間座標をリンクさせる。
【0090】
ある特徴量に対して近傍の特徴量(ある特徴量に対して類似する特徴量)は、図8中d−a2で示すように、各特徴量空間内の軸x,y,zの値に対してある範囲の振れ幅を許容する領域として定義される。特徴量抽出部32から出力される特徴量は、量子化コードであり、例えば、3ビットの量子化コードとして「000」が出力される場合、最も近傍の特徴量は、ハミング距離が1となる「001」、「010」、および「100」となる。結果として、図8において、注目画素の特徴量が「000」である場合、図中d−a2で定義される範囲に含まれる特徴量(類似する特徴量)は、「001」、「010」、および「100」となる。
【0091】
そこで、ステップS65乃至S72の処理においては、上述したようにいずれかuビットのデータを反転させた(0ならば1に、1ならば0に反転させた)ときに求められる特徴量に属する画素と注目画素との距離を求めて最小となる画素と注目画素の画素位置の情報から動きベクトルMを生成し、大きさが最大値M_Max以下となる動きベクトルMが生成されるまで、反転させるビット数uを大きくしながらその処理を繰り返す。すなわち、注目画素の特徴量を示す量子化コードとのハミング距離を徐々に大きくしながら、注目画素との距離が最小となる画素を求める処理を繰り返す。
【0092】
この場合、演算内容はアドレス参照と差分演算と分岐のみなので、演算量が大幅に増大することはない。
【0093】
画素値としては、たとえば1画素=8ビットとした場合、コンピュータグラフィックス(CG)のような画像はフルビット(8ビット)情報でマッチング処理を行うことができるが、自然画像の場合は、フレーム毎にバラツキを含むので、複数ビットのうち所定ビットを除いて、マッチング処理を行うことが望ましい。具体的には、下位数ビットをマスクして使用してもよいし、ビット数を少なくして再量子化しても良い。つまり、非線形/線形な量子化におけるビット数を削減する(量子化ビット数を少なくする)ことが望ましい。
【0094】
次に、参照フレーム特徴量抽出部33について詳細を説明する。
【0095】
図10は、参照フレーム特徴量抽出部33の構成例を示したブロック図である。
【0096】
DRタップ抽出部51は、入力された画像情報のうち、特徴量の抽出に必要な注目画素に対応する周辺画素のDRを求めるためのタップ(初期DRタップ)を抽出する。初期DRタップは、例えば、図11で示すように、注目画素を中心とした3画素×3画素の合計9画素などから構成するようにしてもよい。尚、図11において、黒丸は、注目画素を示す。また、以降においても、同様に示す。
【0097】
また、DRタップ抽出部51は、初期DRタップのDRに基づいて、DRクラス演算部54から入力されたDRクラスと、対応するDRタップパターンの関係を示すテーブルからなるDRタップテーブル51aを有しており、DRクラス演算部54から入力された2種類のDRクラスに対応する2種類のパターンでDRタップを抽出し、DR演算部52に出力する。
【0098】
従って、DRタップ抽出部51は、1つの注目画素について、初期DRタップ、および、DRタップのDRに基づいた2種類のDRクラスに対応するDRタップの合計3種類のDRタップを抽出して、合計3回の処理でDR演算部52に出力する。
【0099】
DR(ダイナミックレンジ)演算部52は、DRタップ抽出部51より入力される初期DRタップの情報(画素値)からDRを求め、求めたDRをDRクラス演算部54に出力する。また、DR演算部52は、DRタップ抽出部51から入力される2種類のDRタップ(初期DRタップにより設定された2種類のDRクラスに対応するタップ)の情報から2種類のDRを求め、ADRC(Adaptive Dynamic Range Coding)コード生成部53に出力すると共に、DRを求める際に得られる最小値の情報をADRCコード生成部53に出力する。従って、DRタップ演算部52は、初期DRタップが入力された場合、DRを求めて、DRクラス演算部54に出力し、そのDRにより決定された2種類のDRクラスに基づいて設定された2種類のDRタップについて、2種類のDRと最小値をADRCコード生成部53に出力する。
【0100】
例えば、DRタップ(または、初期DRタップ)が、画素C1,C2,C3,C4の4画素であった場合、各DRタップC1乃至C4の情報(画素値レベル)が、(C1,C2,C3,C4)=(60,90,51,100)であるとき、その関係は、図12で示すようになる。このような場合、ダイナミックレンジは、画素値レベルの最小値と最大値の差として定義され、その値は、以下の式(2)で定義される。
DR=Max−Min+1・・・(2)
【0101】
ここで、Maxは、DRタップの情報である画素値レベルの最大値であり、Minは、DRタップの画素値レベルの最小値を示す。ここで、1を加算するのは、クラスを定義するためである(例えば、0,1で示されるクラスを設定する場合、両者の差分は1であるが、クラスとしては2クラスとなるため、差分に1を加算する)。従って、図12の場合、DRタップC3の画素値レベル100が最大値であり、DRタップC1の画素値レベル51が最小値となるので、DRは、50(=100−51+1)となる。
【0102】
このように、DR演算部52は、DRを演算するにあたり、DRタップの画素値レベルのうちの最小値と最大値を検出することになるので、初期DRタップのDRに基づいて、設定された2種類のDRタップの最小値(または最大値:最小値は、最大値とDRから求めることができる)をDRと共にADRCコード生成部53に出力することができる。
【0103】
DRクラス演算部54は、DR演算部52より入力される初期DRタップのDRの値に基づいて、2種類のDRクラスをコードA,Bとして求め、DRクラスタップ抽出部51に出力する。より詳細には、例えば、画素値が8ビットに量子化されていた場合、DRクラス演算部54は、コードA,Bとして、8ビットのDRの上位3ビットを用いて、コード化を実行する。すなわち、8ビットで示されるDR0乃至2^8−1(「^」はべき乗を示す)が、2^3種類のコードで示されるのであるが、ここでは、2種類のコードを算出する。従って、算出されるコードの種類の総数は、2^3×2種類(2^4種類)となる。具体的には、次の式(3)および式(4)により、コードA(codeA)およびコードB(codeB)が算出される。
codeA=Round({DR(x,y)+8}/32)×2・・・(3)
codeB=Round({DR(x,y)−8}/32)×2+1・・・(4)
【0104】
ここで、DR(x,y)は、注目画素(x,y)に対応する初期DRタップのDRを示し、Roundは()内の計算値の小数点以下を切り捨てることを示すものである。
【0105】
クラスタップ抽出部55は、入力された画像情報のうち、特徴量(ADRCコード)の抽出に必要な注目画素に対応する周辺画素(クラスタップ)の情報(画素値)を抽出しADRCコード生成部53に出力する。クラスタップは、例えば、図11で示すように、注目画素を中心とした3画素×3画素の合計9画素などから構成するようにしてもよい(すなわち、初期DRタップと同様のものでもよい)し、それ以外のパターン、または、それ以外の個数のタップであってもよい。
【0106】
ADRCコード生成部53は、DR演算部52より入力されたDRの値および最小値Min、並びに、クラスタップ抽出部55から入力されたクラスタップの各画素値レベルに基づいて、ADRCコードからなる量子化コードを生成して出力する。
より詳細には、ADRCコードは、クラスタップの各画素値レベルを以下の式(5)に代入することにより求められる。
Q=Round((L−Min+0.5)×(2^n)/DR)・・・(5)
【0107】
ここで、Round()は小数点以下の切り捨てを、Lは画素値レベルを、nは割り当てビット数を、(2^n)は2のn乗を、それぞれ示している。
【0108】
従って、例えば、割り当てビット数nが1であった場合、各クラスタップの画素値レベルは、以下の式(6)で示される閾値th以上であれば1であり、閾値thより小さければ0とされる。
th=DR/2−0.5+Min・・・(6)
【0109】
結果として、割り当てビット数nが1である場合、クラスタップが図12で示すようなDRタップと同様の場合、閾値thは、75.5(=50/2−0.5+51)となるので、ADRCコードは、ADRC(C1,C2,C3,C4)=0101となる。
【0110】
また、ADRCコード生成部53には、上述のようにコードA,Bに対応する2種類のDRと最小値が入力される。そこで、ADRCコード生成部53は、順次入力されるコードA,Bに対応するADRCコードの何れか一方生成された後、自らのバッファ53aに記憶し、さらに、残された他方のコードA,Bのいずれかに対応するADRCコードが生成されると、バッファ53aに記憶されたADRCコードと共に出力する。すなわち、ADRCコード生成部53は、2種類のADRCコードが生成された時点で、2種類のADRCコードを同じタイミングで出力する。
【0111】
次に、図13を参照して、カレントフレーム特徴量抽出部35の構成について説明する。カレントフレーム特徴量抽出部35は、基本的に参照フレーム特徴量抽出部33と同様の機能を有するものである。すなわち、カレントフレーム特徴量抽出部35のDRタップ抽出部71、DR演算部72、ADRCコード生成部73、クラス演算部74、および、クラスタップ抽出部75は、参照フレーム特徴量抽出部33のDRタップ抽出部51、DR演算部52、ADRCコード生成部53、クラス演算部54、および、クラスタップ抽出部55に対応するものであるが、DRクラス演算部74は、1種類のDRクラス(後述するコードC)のみが入力されることになるので、DRタップ抽出部71は、初期DRタップを抽出して、DR演算部72に出力すると共に、DRクラス演算部74より入力されるDRクラス(コードC)に対応するパターンをDRタップテーブル71aより読出し、読み出したパターンのDRタップを抽出し、DR演算部72に出力する。すなわち、DRタップ抽出部71からは、初期DRタップと、そのDRタップのDRに基づいて決定されたDRクラスの情報に対応するDRタップの2種類のDRタップを抽出してDR演算部72に出力する。
【0112】
また、DRクラス演算部74は、DR演算部52より入力される初期DRタップのDRに基づいて、1種類のDRクラスをコードCとして求め、DRクラスタップ抽出部71に出力する。より詳細には、例えば、画素値が8ビットに量子化されていた場合、DRクラス演算部74は、コードCとして、8ビットのDRの上位4ビットを用いて、コード化を実行する。すなわち、8ビットで示されるDR0乃至2^8−1が、2^4種類のコードで示されるのであるが、上述のように、参照フレーム特徴量抽出部35のDRクラス演算部54により算出される2種類のコードの種類の総数は、2^3×2種類(2^4種類)となり、同数となっている。具体的には、次の式(7)により、コードC(codeC)が算出される。
codeC=Round(DR(x,y)/16)・・・(7)
【0113】
このようにDR演算部72よりADRCコード生成部73に出力されるDR、および、最小値は、1種類であるので、ADRCコード生成部73から出力されるADRCコードは、1個の注目画素について1個となり、このため、ADRCコード生成部73には、ADRCコード生成部53に設けられていたバッファは設けられていない。尚、クラスタップ抽出部75は、クラスタップ抽出部55と全く同様のものであり、注目画素に対応するADRCコードを生成するためのクラスタップを抽出し、ADRCコード生成部73に出力する。
【0114】
次に、DRクラス演算部54,74より出力されるDRクラスに対応する、DRタップ抽出部51,71のタップテーブル51a,71aに記録されているテーブルの構成について説明する。
【0115】
DRクラスは、DRの大きさに比例して設定される値であり、DRが小さければ小さいほど小さなクラスとなる。すなわち、例えば、画素値が8ビットで示される場合、上位4ビットからなる2^4のクラスに設定される。そして、DRタップ抽出部51,71のDRタップテーブル51a,71aは、図14で示すような構造となっている。すなわち、図中左側に示すように、DRクラスに応じて、DRタップパターンを示すコードが予め設定されており、図14の場合、DRクラスが0のとき、DRタップパターンはTAP−0、DRクラスが1のとき、DRタップパターンはTAP−1、DRクラスが2のとき、DRタップパターンはTAP−2、DRクラスが3のとき、DRタップパターンはTAP−3、DRクラスが4のとき、DRタップパターンはTAP−4、DRクラスが5以上のとき、DRタップパターンはTAP−4にそれぞれ設定されている。
【0116】
ここで、TAP−0乃至TAP−4のコードで設定されるDRタップは、例えば、図15で示すような関係となる。すなわち、図15の場合、TAP−0のコードで示すDRタップは、注目画素を中心とした11画素×11画素、TAP−1のコードで示すDRタップは、注目画素を中心とした9画素×9画素、TAP−2のコードで示すDRタップは、注目画素を中心とした7画素×7画素、TAP−3のコードで示すDRタップは、注目画素を中心とした5画素×5画素、TAP−4のコードで示すDRタップは、注目画素を中心とした3画素×3画素となる。
【0117】
すなわち、図14,図15の関係から、DRの大きさに比例して、DRタップが減少するように設定されており、DRが所定の大きさ以上になった場合(図14,図15の場合、DRクラスが4以上となるDRとなった場合)、3画素×3画素の合計9画素より小さくならない。
【0118】
DRタップがこのように構成されているのは、以下のような理由からである。すなわち、例えば、横軸をDRタップの位置を示す番号とし、縦軸を各DRタップのレベル(画素値)として示す場合、図16で示すように分布したとき(図中のDRタップのX1乃至X2の範囲で、本来変化の無い部分に、ノイズのような変化があったとき)、DRタップのX1乃至X2の範囲を拡大したとき、図17で示す分布であったものとする。
【0119】
図17において、範囲X1乃至X2において、DRタップC11,C12,C13,C14,C15,C16,C17は、(C11,C12,C13,C14,C15,C16,C17)=(10,11,10,11,10,10,11)であることから、最小値は10、最大値は11となるから、その差、すなわち、DRは、2(=11−10+1)となる。このDRタップとクラスタップが同一であった場合、クラスタップC11,C12,C13,C14,C15,C16,C17のADRCコードは、0101001となる。本来、クラスタップC11,C12,C13,C14,C15,C16,C17は、図16で示すようにノイズにより発生した波形の乱れであるので、ADRCコードは、0000000となるべきであるにもかかわらず、この範囲X1乃至X2におけるクラスタップは、各ビットのコードにばらつきが発生することになる(アクティビティの高いコードとなってしまう)。
【0120】
結果として、参照フレームを生成する処理では、データベース41に記録されるべき画素位置の情報が、本来の特徴量アドレスに記録されないことにより、動きベクトル検出処理では、正確に参照フレームの画素位置を読み出せない恐れがある。
【0121】
そこで、図17で示すように、DRタップC11乃至C17に加えて、例えば、DRタップC21,C22を追加して、DRタップを増やすようにすると、DRタップの最大値は16となり、最小値は10となる。このため、DRは7(=16−10+1)となる。
【0122】
この結果、クラスタップC11乃至C17のADRCコードは、0000000となる。このように、DRが小さい場合に、DRタップの個数を増やすことにより、DRを大きくするため、まず、初期DRタップによりDRを求め、そのDRの大きさに対応して、DRクラスを設定し、そのDRクラスに応じたDRタップのパターンが設定されている。このような理由から、DRタップ抽出部51,71のDRタップテーブル51a,71aには、初期DRタップのDRが小さいほど(DRクラスが小さいほど)、DRタップ数が多くなるように設定され、DRが大きくなるにつれて、DRタップ数が減少するように設定されている。さらに、DRが所定数以上に大きくなった場合、各タップのレベルはノイズによる影響を受けにくくなるため、一定の(少ない)DRタップ数が設定される。尚、DRタップのパターンは、図15で示したパターンに限るものではなく、DRクラス(DR)が小さくなるに連れて、タップ数が増大するように、DRクラス(DR)が大きくなるに連れてタップ数が減少するように設定されていればよい。
【0123】
このように初期DRタップのDRクラス(DR)の値に対応して、DRタップのパターンを設定することにより、ADRCコードを生成する際に必要となるDRを適正に設定することが可能となり、結果として、ノイズにより本来のADRCコードが得られないといったことが抑制される。
【0124】
次に、図18を参照して、DRコード演算部54により決定されるコードA,Bと、DRコード演算部74により演算されるコードCの関係について説明する。尚、以下の説明においては、画素値が8ビットで表現されるものとする。従って、DRも8ビットで表現されることになる。
【0125】
このとき、コードA,Bは、上述のように上位3ビットの値を用いてコード化されているのに対し、コードCが、上位4ビットの値を用いてコード化されているため、同一コードに含まれる画素範囲は、コードA,Bにおいては32ステップ(ここでいうステップとは、DRの10進表示の間隔である)であり(ただし、コードA=0は例外である)、コードCにおいては、コードA,Bにおける場合の1/2倍の16ステップとなる。そして、コードAのコードの境界は、コードCの境界と比較して、マイナス側に3ビットシフトされ、コードBのコードの境界は、コードCの境界と比較して、プラス側に3ビットシフトされている。
【0126】
ノイズなどの影響により、参照フレームFrとカレントフレームFcとにおいて画素の特徴量が変化した場合、最も誤検知を起こしやすいのは、コードの境界部分である。従って、この部分を誤検知しないように、参照フレームFrのコードA,Bが、それぞれ、コードCの境界部分を含んで、同じ画素値範囲でオーバーラップするように設定される。
【0127】
図18に示されるように、上述した式(3)および式(4)によって生成されるコードAまたはコードBは、それぞれ、コードC=X(Xは、0乃至14)と、コードC=X+1との境界部分の画素値を含む。そして、コードC=Xと、コードC=X+1との境界部分となる画素値において、コードA=Xとなり、コードB=X+1となる。
【0128】
次に、図19のフローチャートを参照して、参照フレーム特徴量抽出処理について説明する。
【0129】
ステップS101において、DRタップ抽出部51は、DRタップテーブル51aに記憶されている初期DRタップのパターンを読出し、対応するタップの情報(画素値)をフレームメモリ32に記憶されている参照フレームFrより抽出し、DR演算部52に出力する。
【0130】
ステップS102において、DR演算部52は、DRタップ抽出部51より入力されてくる初期DRタップのDRを演算し、DRクラス演算部54に出力する。
【0131】
ステップS103において、DRクラス演算部54は、DRの値に対応するDRクラスを上述の式(3),式(4)を演算してコードA,Bとして求める。
【0132】
ステップS104において、DRクラス演算部54は、演算したDRクラスのうち、コードAをDRタップ抽出部51に出力する。
【0133】
ステップS105において、DRタップ抽出部51は、DRクラス演算部54より入力されたコードAのDRクラスに基づいて、DRタップテーブル51aを参照し、対応するDRタップのパターンを読み出し、そのパターンでDRタップを抽出して、DR演算部52に出力する。
【0134】
ステップS106において、DR演算部52は、DRタップ抽出部51より入力されたコードAに対応するDRタップに基づいて、DRと最小値を求めてADRCコード生成部53に出力する。
【0135】
ステップS107において、クラスタップ抽出部55は、フレームメモリ32に記憶されている参照フレームFrよりクラスタップを抽出し、ADRCコード生成部53に出力する。
【0136】
ステップS108において、ADRCコード生成部53は、DR演算部52より入力されたDRと最小値を用いて、クラスタップ抽出部55より入力されたクラスタップの情報(各画素の画素値)からコードAに対応するADRCコードを生成し、バッファ53aに記憶させる。
【0137】
ステップS109において、DRクラス演算部54は、演算したDRクラスのうち、コードBをDRタップ抽出部51に出力する。
【0138】
ステップS110において、DRタップ抽出部51は、DRクラス演算部54より入力されたコードBのDRクラスに基づいて、DRタップテーブル51aを参照し、対応するDRタップのパターンを読み出し、そのパターンでDRタップを抽出して、DR演算部52に出力する。
【0139】
ステップS111において、DR演算部52は、DRタップ抽出部51より入力されたコードBに対応するDRタップに基づいて、DRと最小値を求めてADRCコード生成部53に出力する。
【0140】
ステップS112において、クラスタップ抽出部55は、フレームメモリ32に記憶されている参照フレームFrよりクラスタップを抽出し、ADRCコード生成部53に出力する。
【0141】
ステップS113において、ADRCコード生成部53は、DR演算部52より入力されたDRと最小値を用いて、クラスタップ抽出部55より入力されたクラスタップの情報(各画素の画素値)からコードBに対応するADRCコードを生成し、バッファ53aに記憶させる。
【0142】
ステップS114において、ADRCコード生成部53は、バッファ53aに記憶されているコードA,Bに対応する2種類のADRCコードに、クラスタップを構成する注目画素の画素位置の情報と共にデータベース制御部34に出力する。
【0143】
すなわち、以上の処理により、ステップS101乃至S103の処理により、初期DRタップのDRを演算し、そのDRに対応するコードA,Bに対応するDRクラスを求める。次に、ステップS104乃至S108の処理により、注目画素についてコードAに対応するADRCコードを生成し、ステップS109乃至S113の処理により、注目画素についてコードBに対応するADRCコードを生成する。最終的に、ステップS114の処理により、1個の注目画素について同一のクラスタップから、コードA,Bからなる2種類のDRクラス(DRクラスタップ)の2種類のDRと最小値により、2種類のADRCコードが出力される。従って、データベース41には、2つのADRCアドレスに、同一の画素位置の情報が記録されることになる。
【0144】
次に、図20のフローチャートを参照して、カレントフレーム特徴量抽出処理について説明する。
【0145】
ステップS131において、DRタップ抽出部71は、DRタップテーブル71aに記憶されている初期DRタップのパターンを読出し、対応するタップの情報(画素値)をフレームメモリ31に記憶されているカレントフレームFcより抽出し、DR演算部72に出力する。
【0146】
ステップS132において、DR演算部72は、DRタップ抽出部71より入力されてくる初期DRタップのDRを演算し、DRクラス演算部74に出力する。
【0147】
ステップS133において、DRクラス演算部74は、DRの値に対応するDRクラスを上述の式(7)を演算してコードCとして求める。
【0148】
ステップS134において、DRクラス演算部74は、演算したDRクラスとしてのコードCをDRタップ抽出部71に出力する。
【0149】
ステップS135において、DRタップ抽出部71は、DRクラス演算部74より入力されたコードCのDRクラスに基づいて、DRタップテーブル71aを参照し、対応するDRタップのパターンを読み出し、そのパターンでDRタップを抽出して、DR演算部72に出力する。
【0150】
ステップS136において、DR演算部72は、DRタップ抽出部71より入力されたコードCに対応するDRタップに基づいて、DRと最小値を求めてADRCコード生成部73に出力する。
【0151】
ステップS137において、クラスタップ抽出部75は、フレームメモリ31に記憶されているカレントフレームFcよりクラスタップを抽出し、ADRCコード生成部73に出力する。
【0152】
ステップS138において、ADRCコード生成部73は、DR演算部72より入力されたDRと最小値を用いて、クラスタップ抽出部75より入力されたクラスタップの情報(各画素の画素値)からコードCに対応するADRCコードを生成し動きベクトル検出部36に出力する。
【0153】
以上のような処理により、カレントフレームの注目画素に対応するADRCコードが演算される。結果として、コードCに対応するDRクラスに対応するDRタップから得られるDRと最小値によるADRCコードがノイズにより多少変化していても、データベース41上には対応するコードA,BのDRクラスに対応したDRタップにより得られたDRと最小値により得られた2種類のADRCコードに対応したADRCアドレスに同一の画素位置の情報が記録されているので、動きベクトルを求める際に必要となる参照画素を正確に求めることが可能となる。
【0154】
より具体的には、図18で示すように、例えば、注目画素の初期DRタップにより得られるDRが63である場合、カレントフレームFcにおいては、コードCがコードC=3となり、参照フレームFrにおいて、コードAがコードA=4、かつ、コードBがコードB=3となる。また、注目画素の初期DRタップにより得られるDRが64である場合、カレントフレームFcにおいて、コードCはコードC=4となり、参照フレームFrにおいて、コードAがコードA=4、かつ、コードBがコードB=3となる。
【0155】
従って、カレントフレームFc上の注目画素の初期DRタップのDRが63と64で変化してしまった場合においても、コードAかコードBのいずれかにおいて、コードCと同一のDRクラスを得ることができ、結果として、同一のDRタップから得られるDRと最小値により得られるADRCコードを取得することが可能となる。上述した式(3)および式(4)によってコードAおよびコードBが生成された場合、コードAまたはコードBは、コードCの対応する境界を挟んで、3ビット(DRで8ステップ)ずつずれているので、参照フレームFrとカレントフレームFcとにおいての画素の特徴量の変動が3ビット(DRで8ステップ)以内であれば、コードAかコードBのいずれかにおいて、正しい検出結果を得ることが可能となる。
【0156】
ここでは、コードA,Bを検出するために用いる情報のビット数を上位3ビットとし、コードCを検出するために用いる情報のビット数を上位4ビットとして説明したが、特徴量としてのコードの検出方法はこの限りではない。例えば、コードCを検出するために用いる情報のビット数を上位5ビットとし、コードAおよびコードBを検出するために用いる情報のビット数を上位4ビットとしてもよい。
【0157】
ところで、上述の処理においては、コードCに対応するDRクラスの境界に付近のDRとなった場合に、ノイズなどにより初期DRタップのDRが変化することにより、境界付近のいずれのDRクラスをとっても、最適な候補となる画素位置の情報が検出できるように、オーバーラップしてコードA,Bの2種類のDRコードを設定するようにしている。従って、図18で示す場合、DRが8,24,40,56,72,88,102,120の近傍付近であったとき、DRの値は、コードCに対応するDRクラスにおける各ステップの中央値をとなるため、ノイズにより多少DRが変化してもDRクラスが変更する可能性は低いものと考えることができる。
【0158】
そこで、図21で示すように、DRの値が、コードCに対するDRクラスの境界付近となる場合にのみクラスA,Bの2種類のDRクラスを設定するようにして、DRがそれ以外の値をとる場合(特にDRクラスの中央値となる場合)は、コードCと同様のDRクラスとなるようにしてもよい。
【0159】
図22は、上述のように、境界付近でのみ2種類のDRクラスを設定するようにした参照フレーム特徴量抽出部33の構成を示している。
【0160】
なお、図10における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図22の参照フレーム特徴量抽出部33は、DR演算部54に代えて、DRクラス演算部91を備えられている以外は、基本的に、図10を用いて説明した参照フレーム特徴量抽出部33と同様の構成を有するものである。
【0161】
DRクラス演算部91の機能は、基本的にDRクラス演算部54と同様のものであるが、DR演算部52より入力されるDRの値に応じて、コードAのみをDRタップ抽出部51に供給する場合、コードBのみをDRタップ抽出部51に供給する場合、または、コードA,Bの両方を供給する場合の3パターンのうちのいずれかの動作を実行する。すなわち、図21の場合、コードAまたはコードBは、コードCの対応する境界を挟んで、2ビット(DRで4ステップ)ずつずれているので、コードCの各DRクラスの中央値の前後2ビットは、コードAまたはBのいずれかのコードのみとなる。尚、図21中の斜線部分が、コードが存在しないDRの範囲を示す。従って、図21においては、コードAでは、20≦DR<28,52≦DR<60,84≦DR<92,116≦DR<124の範囲において、コードAをDRタップ抽出部51に供給する必要が無く、コードBは、0≦DR<12,36≦DR<44,68≦DR<76,100≦DR<108の範囲において、コードBをDRタップ抽出部51に供給する必要が無くなる。
【0162】
そこで、DRクラス演算部91は、初期DRタップのDRの値に応じて、コードA,Bのそれぞれを供給する必要があるか否かを判断し、上述の3つのモードのいずれかの動作を実行する。
【0163】
次に、図23のフローチャートを参照して、図22の参照フレーム特徴量抽出部33による参照フレーム特徴量抽出処理について説明する。尚、図23のフローチャートのステップS151乃至S153,S155乃至S159,S161乃至S165の処理は、図19のフローチャートにおけるステップS101乃至S113の処理と同様であるので、その処理の説明は、省略する。
【0164】
ステップS154において、DRクラス演算部91は、初期DRタップのDRに基づいて、コードAの値をDRタップ抽出部51に供給する必要があるか否かを判定し、必要があると判定した場合、すなわち、図21において、DRが、例えば、0≦DR<20,28≦DR<52,60≦DR<84,92≦DR<116の範囲であった場合、コードAは必要であると判定し、その処理は、ステップS155に進む。また、ステップS154において、コードAの値がDRタップ抽出部51に供給される必要がないと判定された場合、すなわち、DRが、例えば、0≦DR<20,28≦DR<52,60≦DR<84,92≦DR<116の範囲ではなかった場合、ステップS155乃至S159の処理はスキップされて、その処理は、ステップS160に進む。
【0165】
ステップS160において、DRクラス演算部91は、初期DRタップのDRに基づいて、コードBの値をDRタップ抽出部51に供給する必要があるか否かを判定し、必要があると判定した場合、すなわち、図21において、例えば、DRが、12≦DR<36,44≦DR<68,76≦DR<100の範囲であった場合、コードBは必要であると判定し、その処理は、ステップS161に進む。また、ステップS160において、コードBの値がDRタップ抽出部51に供給される必要がないと判定された場合、すなわち、DRが、例えば、12≦DR<36,44≦DR<68,76≦DR<100の範囲ではなかった場合、ステップS161乃至S165の処理はスキップされて、その処理は、ステップS166に進む。
【0166】
ステップS166において、ADRCコード生成部53は、バッファ53aに記憶されているコードAまたはBのいずれかに対応する1種類、または、コードA,B2の2種類のADRCコードに、クラスタップを構成する注目画素の画素位置の情報と共にデータベース制御部34に出力する。
【0167】
すなわち、ステップS154,S160の判定により、コードAのみ、コードBのみ、または、コードA,Bの両方に対応するADRCコードが出力されることになる。尚、図22の参照フレーム特徴量抽出部33による参照フレーム特徴量抽出処理により、図6のフローチャートにおけるステップS34の処理においては、データベース制御部34は、参照フレーム特徴量抽出部33において抽出された参照フレームFrの注目画素に対する1種類、または、2種類の特徴量(後述するコードAおよびコードB)を読出し、データベース41から、1種類、または、2種類の特徴量に対応する特徴量アドレスの、フラグアドレス0に記載されている値Kを読み込むことになる。この結果、1つの注目画素に対して、初期DRタップのDRが、コードCの境界付近(図21においては、境界値に対して正方向乃至負方向に2ビットの範囲であるが、それに限られるものではない)である場合にのみ、2種類の特徴量が決定され、2箇所の特徴量アドレスに画素位置の情報が記憶され、それ以外については1箇所の特徴量アドレスの画素位置の情報が記憶される。結果として、コードCの境界付近でのコードCの変化にも対応できる上、境界付近以外のDRでは、1箇所の特徴量アドレスにのみ画素位置の情報を記録することになるので、データベース41の容量を節約することが可能となる。
【0168】
また、以上の例においては、参照フレーム特徴量抽出処理、および、カレントフレーム特徴量抽出処理のいずれにおいても、初期DRタップにより求められるDRにより設定されたDRタップにより、ADRCコードの生成に使用するDRと最小値を求め、このDRタップとは別にクラスタップを抽出して、ADRCコードを生成する例について説明してきたが、ADRCコードの生成に使用するDRと最小値を求めるためのDRタップを、そのままクラスタップとして使用するようにしてもよい。
【0169】
図24は、ADRCコードの生成に使用するDRと最小値を求めるためのDRタップをクラスタップとして使用するようにした参照フレーム特徴量抽出部33を示しており、図25は、ADRCコードの生成に使用するDRと最小値を求めるためのDRタップをクラスタップとして使用するようにしたカレントフレーム特徴量抽出部35を示している。
【0170】
図24,図25においては、図10,図13における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図24の参照フレーム特徴量抽出部33は、DRタップ抽出部51に代えて、DRタップ抽出部101を備え、クラスタップ抽出部55が削除されている以外は、基本的に、図10を用いて説明した参照フレーム特徴量抽出部33と同様の構成を有するものである。また、図25のカレントフレーム特徴量抽出部35は、DRタップ抽出部71に代えて、DRタップ抽出部111を備え、クラスタップ抽出部75が削除されている以外は、基本的に、図13を用いて説明したカレントフレーム特徴量抽出部35と同様の構成を有するものである。
【0171】
参照フレーム特徴量抽出部33およびカレントフレーム特徴量抽出部35のいずれにおいても、DRタップ抽出部101,111(DRタップテーブル101a,111aを含む)は、いずれも、基本的にDRタップ抽出部51,71と同様の機能を有するものであるが、さらに、ADRCコードの生成に使用するDRと最小値を求めるためのDRタップをクラスタップとしてADRCコード生成部53,73に供給する。
【0172】
次に、図26のフローチャートを参照して、図24の参照フレーム特徴量抽出部33による参照フレーム特徴量抽出処理について説明する。尚、図26のフローチャートにおけるステップS181乃至S186,S189乃至S191,S194の処理は、図19のフローチャートを参照して説明したステップS101乃至S106,S109乃至S111,S113,S114の処理と同様であるので、その説明は省略する。
【0173】
ステップS187において、DRタップ抽出部101は、フレームメモリ32に記憶されている参照フレームFrよりステップS185の処理で抽出したDRタップをコードAに対応するADRCコードのクラスタップとして、ADRCコード生成部53に出力する。
【0174】
従って、ステップS188において、ADRCコード生成部53は、DR演算部52より入力されたDRと最小値、さらには、DRタップ抽出部101より入力されたクラスタップを用いて、コードAに対応するADRCコードを生成し、バッファ53aに記憶させることになる。
【0175】
ステップS192において、DRタップ抽出部101は、フレームメモリ32に記憶されている参照フレームFrよりステップS190の処理で抽出したDRタップをコードBに対応するADRCコードのクラスタップとして、ADRCコード生成部53に出力する。
【0176】
従って、ステップS193において、ADRCコード生成部53は、DR演算部52より入力されたDRと最小値、さらには、DRタップ抽出部101より入力されたクラスタップを用いて、コードBに対応するADRCコードを生成し、バッファ53aに記憶させることになる。
【0177】
次に、図27のフローチャートを参照して、図25のカレントフレーム特徴量抽出部35によるカレントフレーム特徴量抽出処理について説明する。
【0178】
尚、図27のフローチャートのステップS211乃至S216の処理は、図20のフローチャートを参照して、説明したステップS131乃至S136の処理と同様であるのでその説明は省略する。
【0179】
ステップS217において、DRタップ抽出部111は、フレームメモリ31に記憶されているカレントフレームFcよりステップS215の処理で抽出したDRタップをコードCに対応するADRCコードのクラスタップとして、ADRCコード生成部73に出力する。
【0180】
従って、ステップS218において、ADRCコード生成部73は、DR演算部72より入力されたDRと最小値に加えて、DRタップ抽出部111より入力されたクラスタップを用いて、コードCに対応するADRCコードを生成し動きベクトル検出部36に出力する。
【0181】
以上の処理により、より多くのADRCコードが生成されることになるので、データベース41上の同一のADRCアドレスに記録される画素位置の情報が少なくなるので、ブロックマッチング処理を高速にすることが可能となる。
【0182】
以上によれば、注目画素について設定される初期DRタップにより求められるDRの値に応じて、ADRCコードを生成する際の、DRを得るためのDRタップを設定するようにしたので、DRの小さいノイズの影響を受けにくいADRCコードを生成することができ、結果として、正確に動きベクトルを求めることが可能となる。
【0183】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【0184】
図28は、動き検出部21をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU201は、パーソナルコンピュータの動作の全体を制御する。また、CPU201は、バス204および入出力インタフェース205を介してユーザからキーボードやマウスなどからなる入力部206から指令が入力されると、それに対応してROM(Read Only Memory)202に格納されているプログラムを実行する。あるいはまた、CPU201は、ドライブ210に接続された磁気ディスク211、光ディスク212、光磁気ディスク213、または半導体メモリ214から読み出され、記憶部208にインストールされたプログラムを、RAM(Random Access Memory)203にロードして実行し、出力部207が実行結果を出力する。さらに、CPU201は、通信部209を制御して、外部と通信し、データの授受を実行する。
【0185】
プログラムが記録されている記録媒体は、図28に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク211(フレキシブルディスクを含む)、光ディスク212(CDROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク213(MD(Mini-Disc)を含む)、もしくは半導体メモリ214などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM202や、記憶部208に含まれるハードディスクなどで構成される。
【0186】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【0187】
【発明の効果】
本発明によれば、動きベクトルを正確に求めることが可能となる。
【図面の簡単な説明】
【図1】従来の動き検出部の構成を示すブロック図である。
【図2】動きベクトルの検出方法を説明する図である。
【図3】図1の動き検出部による動き検出処理を説明するフローチャートである。
【図4】本発明を適用した動き検出部の一実施の形態の構成を説明するブロック図である。
【図5】図4のデータベースの構造を説明する図である。
【図6】図4の動き検出部による参照フレーム情報生成処理を説明するフローチャートである。
【図7】図4の動き検出部による動きベクトル検出処理を説明するフローチャートである。
【図8】図4の動き検出部による動きベクトル検出処理を説明するフローチャートである。
【図9】注目画素の特徴量の近傍の特徴量を説明する図である。
【図10】図4の参照フレーム特徴量抽出部の一実施の形態の構成を説明するブロック図である。
【図11】初期DRタップを説明する図である。
【図12】 ADRCコードを説明する図である。
【図13】図4のカレントフレーム特徴量抽出部の一実施の形態の構成を説明するブロック図である。
【図14】 DRタップテーブルを説明する図である。
【図15】 DRタップを説明する図である。
【図16】 DRタップとADRCコードの関係を説明する図である。
【図17】 DRタップとADRCコードの関係を説明する図である。
【図18】図10の参照フレーム特徴量抽出部のDRクラス演算部により演算されるDRクラスと、図13のカレントフレーム特徴量抽出部のDRクラス演算部により演算されるDRクラスの関係を説明する図である。
【図19】図10の参照フレーム特徴量抽出部による参照フレーム特徴量算出処理を説明するフローチャートである。
【図20】図13のカレントフレーム特徴量抽出部によるカレントフレーム特徴量算出処理を説明するフローチャートである。
【図21】図22の参照フレーム特徴量抽出部のDRクラス演算部により演算されるDRクラスと、図13カレントフレーム特徴量抽出部のDRクラス演算部により演算されるDRクラスの関係を説明する図である。
【図22】参照フレーム特徴量抽出部の他の構成を説明するブロック図である。
【図23】図22の参照フレーム特徴量抽出部による参照フレーム特徴量算出処理を説明するフローチャートである。
【図24】参照フレーム特徴量抽出部の他の構成を説明するブロック図である。
【図25】カレントフレーム特徴量抽出部の他の構成を説明するブロック図である。
【図26】図24の参照フレーム特徴量抽出部による参照フレーム特徴量算出処理を説明するフローチャートである。
【図27】図25のカレントフレーム特徴量抽出部によるカレントフレーム特徴量算出処理を説明するフローチャートである。
【図28】媒体を説明する図である。
【符号の説明】
31,32 フレームメモリ, 33 参照フレーム特徴量抽出部, 34 データベース制御部, 35 カレントフレーム特徴量抽出部, 36 動きベクトル検出部, 41 データベース, 51 DRタップ抽出部, 51a DRタップテーブル, 52 DR演算部, 53 ADRCコード生成部, 54 DRクラス演算部, 55 クラスタップ抽出部, 71 DRタップ抽出部, 71a DRタップテーブル, 72 DR演算部, 73 ADRCコード生成部, 74 DRクラス演算部, 75 クラスタップ抽出部, 91 DRクラス演算部,101 DRタップ抽出部, 101a DRタップテーブル,111 DRタップ抽出部, 111a DRタップテーブル

Claims (10)

  1. カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第1の注目画素に決定し、前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1の初期DR(Dynamic Range)タップを抽出する第1の初期DRタップ抽出手段と、
    前記第1の初期DRタップを構成する複数の画素の画素値うち、最大値から最小値を差し引いた値である、前記第1の初期DRタップのダイナミックレンジを検出する第1の初期DR検出手段と、
    前記第1の初期 DR タップのダイナミックレンジに基づいて、複数の第1の DR コードのうち、前記第1の注目画素に対応する第1の DR コードを算出する第1の演算であって、同一の第1の DR コードが算出される前記第1の初期 DR タップのダイナミックレンジを含む第1の区分毎に区切られた、前記第1の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第1の区分に含まれる前記第1の初期 DR タップのダイナミックレンジから、同一の前記第1の DR コードを算出する前記第1の演算により、前記第1の初期DRタップのダイナミックレンジから、前記第1の注目画素に対応する第1のDRードを算出する第1のDRクラスコード算出手段と、
    前記参照フレーム中の前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、前記第1のDRードに対応付けられているDR タップパターンにしたがって抽出する第1のDRタップ抽出手段と、
    前記第1のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第1のDRタップのダイナミックレンジを検出する第1のDR検出手段と、
    前記参照フレーム中の前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1のクラスタップを抽出する第1のクラスタップ抽出手段と、
    前記第1のクラスタップを構成する画素の画素値を、前記第1のDRタップのダイナミックレンジを用いた ADRC(Adaptive Dynamic Range Coding) により量子化し、第1の量子化コードを生成する第1の量子化コード生成手段と、
    前記第1の量子化コードに対応させて前記第1の注目画素の画素位置を、データベースに記憶する記憶手段と、
    前記カレントフレームを構成する各画素を第2の注目画素に決定し、前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2の初期DRタップを抽出する第2の初期DRタップ抽出手段と、
    前記第2の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第2の初期DRタップのダイナミックレンジを検出する第2の初期DR検出手段と、
    前記第2の初期 DR タップのダイナミックレンジに基づいて、複数の第2の DR コードのうち、前記第2の注目画素に対応する第2の DR コードを算出する第2の演算であって、同一の第2の DR コードが算出される前記第2の初期 DR タップのダイナミックレンジを含む、前記第1の区分よりも狭い第2の区分毎に区切られた、前記第2の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第2の区分に含まれる前記第2の初期 DR タップのダイナミックレンジから、同一の前記第2の DR コードを算出する前記第2の演算により、前記第2の初期DRタップのダイナミックレンジから、前記第2の注目画素に対応する第2のDRードを算出する第2のDRクラスコード算出手段と、
    前記カレントフレーム中の前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、前記第2のDRードに対応付けられているDR タップパターンにしたがって抽出する第2のDRタップ抽出手段と、
    前記第2のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第2のDRタップのダイナミックレンジを検出する第2のDR検出手段と、
    前記カレントフレーム中の前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2のクラスタップを抽出する第2のクラスタップ抽出手段と、
    前記第2のクラスタップを構成する画素の画素値を、前記第2のDRタップのダイナミックレンジを用いた ADRC により量子化し、第2の量子化コードを生成する第2の量子化コード生成手段と、
    前記第2の量子化コードに対応する、前記参照フレーム中の画素の前記画素位置を、前記データベースから読み出す読出し手段と、
    読み出された前記参照フレーム中の画素の前記画素位置のうち、前記カレントフレーム中の前記第2の注目画素の画素位置との距離が最小となる前記画素位置を検出する画素位置検出手段と
    を備える画像処理装置。
  2. 検出された前記参照フレーム中の画素の前記画素位置、及び前記カレントフレーム中の前記第2の注目画素の画素位置のいずれか一方を始点とし、他方を終点とする動きベクトルを生成する動きベクトル生成手段をさらに備える
    請求項1に記載の画像処理装置。
  3. 前記第1のDRクラスコード算出手段は、
    同一の DR コード A が算出される前記第1の初期 DR タップのダイナミックレンジを含む区分を前記第1の区分とし、前記第1の区分毎に区切られた、前記第1の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第1の区分に含まれる前記第1の初期 DR タップのダイナミックレンジから、同一の前記 DR コード A を算出するとともに、
    同一の DR コード A が算出される前記第1の初期 DR タップのダイナミックレンジを含む区分とは異なる、同一の DR コード B が算出される前記第1の初期 DR タップのダイナミックレンジを含む区分を、前記第1の区分とし、前記第1の区分毎に区切られた、前記第1の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第1の区分に含まれる前記第1の初期 DR タップのダイナミックレンジから、同一の前記 DR コード B を算出する
    第1の演算により、前記第1の初期DRタップのダイナミックレンジから、前記 DR コード A 及び前記 DR コード B を、2種類の前記第1のDRードとして算出し、
    前記第1のDRタップ抽出手段は、2種類の前記第1のDRードそれぞれに対応付けられているDR タップパターンにより、2種類の前記第1のDRタップを抽出し、
    前記第1のDR検出手段は、2種類の前記第1のDRタップそれぞれのダイナミックレンジを検出し、
    前記第1の量子化コード生成手段は、前記第1のクラスタップを、2種類の前記第1のDRタップそれぞれのダイナミックレンジを用いた ADRC により量子化し、2種類の前記第1の量子化コードを生成する
    請求項1に記載の画像処理装置。
  4. 前記第2のDRクラスコード算出手段は、同一の DR コード C が算出される前記第2の初期 DR タップのダイナミックレンジを含む区分を前記第2の区分とし、前記第2の区分毎に区切られた、前記第2の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第2の区分に含まれる前記第2の初期 DR タップのダイナミックレンジから、同一の前記 DR コード C を算出する前記第2の演算により、記第2の初期DRタップのダイナミックレンジから、前記 DR コード C を、前記第2のDRードとして算出し
    前記第2のDRタップ抽出手段は、前記第2のDRードに対応付けられている前記第2のDRタップのDR タップパターンにより、前記第2のDRタップを抽出する
    請求項3に記載の画像処理装置。
  5. 前記第2のDRクラスコード算出手段は、前記第2の演算により、前記第2の区分毎に区切られた、前記第2の初期DRタップのダイナミックレンジの区分範囲のうち、前記第2の区分に含まれる前記第2の初期DRタップのダイナミックレンジの上位Aビットから、同一の前記第2のDRードを算出し、
    前記第1のDRクラスコード算出手段は、第1の演算により、前記第2の区分どうしの境界から、所定のビットだけシフトした位置を境界とする前記第1の区分毎に区切られた、前記第1の初期DRタップのダイナミックレンジの区分範囲のうち、前記第1の区分に含まれる前記第1の初期DRタップのダイナミックレンジの上位(A−1)ビットから、同一の前記第1のDRードを算出する
    請求項4に記載の画像処理装置。
  6. 前記第1のDRタップ抽出手段は、
    前記第1の初期DRタップのダイナミックレンジが、前記第2の区分どうしの境界付近である場合、2種類の前記第1のDRードそれぞれに対応付けられているDR タップパターンにより、2種類の前記第1のDRタップを抽出し、
    前記第1の初期DRタップのダイナミックレンジが、前記第2の区分どうしの境界付近でない場合、2種類の前記第1の前記DRードそれぞれに対応付けられているDR タップパターンのいずれか一方により、1種類の前記第1のDRタップを抽出し、
    前記第1のDR検出手段は、抽出された前記第1のDRタップのダイナミックレンジを検出する
    請求項4に記載の画像処理装置。
  7. 前記第1のDRタップと前記第1のクラスタップは、同一であり、このとき同時に、前記第2のDRタップと前記第2のクラスタップも、同一である
    請求項1に記載の画像処理装置。
  8. カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第1の注目画素に決定し、前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1の初期DRップを抽出する第1の初期DRタップ抽出ステップと、
    前記第1の初期DRタップを構成する複数の画素の画素値うち、最大値から最小値を差し引いた値である、前記第1の初期DRタップのダイナミックレンジを検出する第1の初期DR検出ステップと、
    前記第1の初期 DR タップのダイナミックレンジに基づいて、複数の第1の DR コードのうち、前記第1の注目画素に対応する第1の DR コードを算出する第1の演算であって、同一の第1の DR コードが算出される前記第1の初期 DR タップのダイナミックレンジを含む第1の区分毎に区切られた、前記第1の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第1の区分に含まれる前記第1の初期 DR タップのダイナミックレンジから、同一の前記第1の DR コードを算出する前記第1の演算により、前記第1の初期DRタップのダイナミックレンジから、前記第1の注目画素に対応する第1のDRードを算出する第1のDRクラスコード算出ステップと、
    前記参照フレーム中の前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、前記第1のDRードに対応付けられているDR タップパターンにしたがって抽出する第1のDRタップ抽出ステップと、
    前記第1のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第1のDRタップのダイナミックレンジを検出する第1のDR検出ステップと、
    前記参照フレーム中の前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1のクラスタップを抽出する第1のクラスタップ抽出ステップと、
    前記第1のクラスタップを構成する画素の画素値を、前記第1のDRタップのダイナミックレンジを用いた ADRC により量子化し、第1の量子化コードを生成する第1の量子化コード生成ステップと、
    前記第1の量子化コードに対応させて前記第1の注目画素の画素位置を、データベースに記憶する記憶ステップと、
    前記カレントフレームを構成する各画素を第2の注目画素に決定し、前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2の初期DRタップを抽出する第2の初期DRタップ抽出ステップと、
    前記第2の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第2の初期DRタップのダイナミックレンジを検出する第2の初期DR検出ステップと、
    前記第2の初期 DR タップのダイナミックレンジに基づいて、複数の第2の DR コードのうち、前記第2の注目画素に対応する第2の DR コードを算出する第2の演算であって、同一の第2の DR コードが算出される前記第2の初期 DR タップのダイナミックレンジを含む、前記第1の区分よりも狭い第2の区分毎に区切られた、前記第2の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第2の区分に含まれる前記第2の初期 DR タップのダイナミックレンジから、同一の前記第2の DR コードを算出する前記第2の演算により、前記第2の初期DRタップのダイナミックレンジから、前記第2の注目画素に対応する第2のDRードを算出する第2のDRクラスコード算出ステップと、
    前記カレントフレーム中の前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、前記第2のDRードに対応付けられているDR タップパターンにしたがって抽出する第2のDRタップ抽出ステップと、
    前記第2のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第2のDRタップのダイナミックレンジを検出する第2のDR検出ステップと、
    前記カレントフレーム中の前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2のクラスタップを抽出する第2のクラスタップ抽出ステップと、
    前記第2のクラスタップを構成する画素の画素値を、前記第2のDRタップのダイナミックレンジを用いた ADRC により量子化し、第2の量子化コードを生成する第2の量子化コード生成ステップと、
    前記第2の量子化コードに対応する、前記参照フレーム中の画素の前記画素位置を、前記データベースから読み出す読出しステップと、
    読み出された前記参照フレーム中の画素の前記画素位置のうち、前記カレントフレーム中の前記第2の注目画素の画素位置との距離が最小となる前記画素位置を検出する画素位置検出ステップと
    を含む画像処理方法。
  9. コンピュータを、
    カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第1の注目画素に決定し、前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1の初期DRップを抽出する第1の初期DRタップ抽出手段と、
    前記第1の初期DRタップを構成する複数の画素の画素値うち、最大値から最小値を差し引いた値である、前記第1の初期DRタップのダイナミックレンジを検出する第1の初期DR検出手段と、
    前記第1の初期 DR タップのダイナミックレンジに基づいて、複数の第1の DR コードのうち、前記第1の注目画素に対応する第1の DR コードを算出する第1の演算であって、同一の第1の DR コードが算出される前記第1の初期 DR タップのダイナミックレンジを含む第1の区分毎に区切られた、前記第1の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第1の区分に含まれる前記第1の初期 DR タップのダイナミックレンジから、同一の前記第1の DR コードを算出する前記第1の演算により、前記第1の初期DRタップのダイナミックレンジから、前記第1の注目画素に対応する第1のDRードを算出する第1のDRクラスコード算出手段と、
    前記参照フレーム中の前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、前記第1のDRードに対応付けられているDR タップパターンにしたがって抽出する第1のDRタップ抽出手段と、
    前記第1のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第1のDRタップのダイナミックレンジを検出する第1のDR検出手段と、
    前記参照フレーム中の前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1のクラスタップを抽出する第1のクラスタップ抽出手段と、
    前記第1のクラスタップを構成する画素の画素値を、前記第1のDRタップのダイナミックレンジを用いた ADRC により量子化し、第1の量子化コードを生成する第1の量子化コード生成手段と、
    前記第1の量子化コードに対応させて前記第1の注目画素の画素位置を、データベースに記憶する記憶手段と、
    前記カレントフレームを構成する各画素を第2の注目画素に決定し、前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2の初期DRタップを抽出する第2の初期DRタップ抽出手段と、
    前記第2の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第2の初期DRタップのダイナミックレンジを検出する第2の初期DR検出手段と、
    前記第2の初期 DR タップのダイナミックレンジに基づいて、複数の第2の DR コードのうち、前記第2の注目画素に対応する第2の DR コードを算出する第2の演算であって、同一の第2の DR コードが算出される前記第2の初期 DR タップのダイナミックレンジを含む、前記第1の区分よりも狭い第2の区分毎に区切られた、前記第2の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第2の区分に含まれる前記第2の初期 DR タップのダイナミックレンジから、同一の前記第2の DR コードを算出する前記第2の演算により、前記第2の初期DRタップのダイナミックレンジから、前記第2の注目画素に対応する第2のDRードを算出する第2のDRクラスコード算出手段と、
    前記カレントフレーム中の前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、前記第2のDRードに対応付けられているDR タップパターンにしたがって抽出する第2のDRタップ抽出手段と、
    前記第2のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第2のDRタップのダイナミックレンジを検出する第2のDR検出手段と、
    前記カレントフレーム中の前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2のクラスタップを抽出する第2のクラスタップ抽出手段と、
    前記第2のクラスタップを構成する画素の画素値を、前記第2のDRタップのダイナミックレンジを用いた ADRC により量子化し、第2の量子化コードを生成する第2の量子化コード生成手段と、
    前記第2の量子化コードに対応する、前記参照フレーム中の画素の前記画素位置を、前記データベースから読み出す読出し手段と、
    読み出された前記参照フレーム中の画素の前記画素位置のうち、前記カレントフレーム中の前記第2の注目画素の画素位置との距離が最小となる前記画素位置を検出する画素位置検出手段と
    して機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  10. コンピュータを、
    カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第1の注目画素に決定し、前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1の初期DRップを抽出する第1の初期DRタップ抽出手段と、
    前記第1の初期DRタップを構成する複数の画素の画素値うち、最大値から最小値を差し引いた値である、前記第1の初期DRタップのダイナミックレンジを検出する第1の初期DR検出手段と、
    前記第1の初期 DR タップのダイナミックレンジに基づいて、複数の第1の DR コードのうち、前記第1の注目画素に対応する第1の DR コードを算出する第1の演算であって、同一の第1の DR コードが算出される前記第1の初期 DR タップのダイナミックレンジを含む第1の区分毎に区切られた、前記第1の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第1の区分に含まれる前記第1の初期 DR タップのダイナミックレンジから、同一の前記第1の DR コードを算出する前記第1の演算により、前記第1の初期DRタップのダイナミックレンジから、前記第1の注目画素に対応する第1のDRードを算出する第1のDRクラスコード算出手段と、
    前記参照フレーム中の前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、前記第1のDRードに対応付けられているDR タップパターンにしたがって抽出する第1のDRタップ抽出手段と、
    前記第1のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第1のDRタップのダイナミックレンジを検出する第1のDR検出手段と、
    前記参照フレーム中の前記第1の注目画素と、前記第1の注目画素の周辺に存在する画素とからなる第1のクラスタップを抽出する第1のクラスタップ抽出手段と、
    前記第1のクラスタップを構成する画素の画素値を、前記第1のDRタップのダイナミックレンジを用いた ADRC により量子化し、第1の量子化コードを生成する第1の量子化コード生成手段と、
    前記第1の量子化コードに対応させて前記第1の注目画素の画素位置を、データベースに記憶する記憶手段と、
    前記カレントフレームを構成する各画素を第2の注目画素に決定し、前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2の初期DRタップを抽出する第2の初期DRタップ抽出手段と、
    前記第2の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第2の初期DRタップのダイナミックレンジを検出する第2の初期DR検出手段と、
    前記第2の初期 DR タップのダイナミックレンジに基づいて、複数の第2の DR コードのうち、前記第2の注目画素に対応する第2の DR コードを算出する第2の演算であって、同一の第2の DR コードが算出される前記第2の初期 DR タップのダイナミックレンジを含む、前記第1の区分よりも狭い第2の区分毎に区切られた、前記第2の初期 DR タップのダイナミックレンジの区分範囲のうち、前記第2の区分に含まれる前記第2の初期 DR タップのダイナミックレンジから、同一の前記第2の DR コードを算出する前記第2の演算により、前記第2の初期DRタップのダイナミックレンジから、前記第2の注目画素に対応する第2のDRードを算出する第2のDRクラスコード算出手段と、
    前記カレントフレーム中の前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2のDRタップを、予め、複数のDRードそれぞれに対応付けられているDR タップパターンのうち、前記第2のDRードに対応付けられているDR タップパターンにしたがって抽出する第2のDRタップ抽出手段と、
    前記第2のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第2のDRタップのダイナミックレンジを検出する第2のDR検出手段と、
    前記カレントフレーム中の前記第2の注目画素と、前記第2の注目画素の周辺に存在する画素とからなる第2のクラスタップを抽出する第2のクラスタップ抽出手段と、
    前記第2のクラスタップを構成する画素の画素値を、前記第2のDRタップのダイナミックレンジを用いた ADRC により量子化し、第2の量子化コードを生成する第2の量子化コード生成手段と、
    前記第2の量子化コードに対応する、前記参照フレーム中の画素の前記画素位置を、前記データベースから読み出す読出し手段と、
    読み出された前記参照フレーム中の画素の前記画素位置のうち、前記カレントフレーム中の前記第2の注目画素の画素位置との距離が最小となる前記画素位置を検出する画素位置検出手段と
    して機能させるためのプログラム。
JP2002327270A 2002-11-11 2002-11-11 画像処理装置および方法、記録媒体、並びにプログラム Expired - Fee Related JP4239556B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002327270A JP4239556B2 (ja) 2002-11-11 2002-11-11 画像処理装置および方法、記録媒体、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002327270A JP4239556B2 (ja) 2002-11-11 2002-11-11 画像処理装置および方法、記録媒体、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2004165838A JP2004165838A (ja) 2004-06-10
JP4239556B2 true JP4239556B2 (ja) 2009-03-18

Family

ID=32805962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002327270A Expired - Fee Related JP4239556B2 (ja) 2002-11-11 2002-11-11 画像処理装置および方法、記録媒体、並びにプログラム

Country Status (1)

Country Link
JP (1) JP4239556B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5549431B2 (ja) * 2010-07-02 2014-07-16 日本電気株式会社 サーバ装置、移動ベクトル検出方法及びプログラム

Also Published As

Publication number Publication date
JP2004165838A (ja) 2004-06-10

Similar Documents

Publication Publication Date Title
CN113557745B (zh) 点云几何结构填充
JP4468490B2 (ja) 効率的なルックアップテーブルに基づく視覚的に無損失の画像圧縮方式
KR101106419B1 (ko) 화상 처리 장치 및 방법, 및 기록 매체
US7702152B2 (en) Non-linear quantization and similarity matching methods for retrieving video sequence having a set of image frames
CN109977952B (zh) 基于局部最大值的候选目标检测方法
KR101141467B1 (ko) 화상 처리 장치 및 방법, 및 기록 매체
WO2005084036A1 (ja) 動きベクトル検出装置、および動きベクトル検出方法、並びにコンピュータ・プログラム
JP4697275B2 (ja) 動きベクトル検出装置、動きベクトル検出方法及びプログラム
EP1300779B1 (en) Form recognition system, form recognition method, program and storage medium
US5838833A (en) Fractal image compression method and device and fractal image restoration method and device
JP2001076161A (ja) 画像処理方法及び装置並びに記憶媒体
JP4239556B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
Moscheni et al. Robust region merging for spatio-temporal segmentation
JP4525064B2 (ja) 動きベクトル検出装置、および動きベクトル検出方法、並びにコンピュータ・プログラム
US6993077B2 (en) Experimental design for motion estimation
JP4622265B2 (ja) 動きベクトル検出装置、および動きベクトル検出方法、並びにプログラム
Heng et al. Shot boundary refinement for long transition in digital video sequence
JP4264803B2 (ja) 画像処理装置および方法、学習装置および方法、記録媒体、並びに、プログラム
JP4193460B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP4175073B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP4264531B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
JP2009268021A (ja) 画像処理装置、画像処理方法、学習装置、学習方法、及びプログラム
JP3196749B2 (ja) 領域の属性モデルを用いる領域分割方法及び装置
JP4042594B2 (ja) 画像処理方法および画像処理装置ならびに画像処理プログラム
JPH07271987A (ja) 代表特徴量抽出方法及び代表特徴量抽出装置

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: 20080626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080821

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: 20081107

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: 20081202

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: 20081215

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

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