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

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

Info

Publication number
JP2004134993A
JP2004134993A JP2002296678A JP2002296678A JP2004134993A JP 2004134993 A JP2004134993 A JP 2004134993A JP 2002296678 A JP2002296678 A JP 2002296678A JP 2002296678 A JP2002296678 A JP 2002296678A JP 2004134993 A JP2004134993 A JP 2004134993A
Authority
JP
Japan
Prior art keywords
pixel
frame
address
feature amount
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.)
Granted
Application number
JP2002296678A
Other languages
English (en)
Other versions
JP4218298B2 (ja
Inventor
Tetsujiro Kondo
近藤 哲二郎
Yasushi Tatsuhira
立平 靖
Junichi Ishibashi
石橋 淳一
Seiji Wada
和田 成司
Yasuhiro Shudo
周藤 泰広
Kazuyuki Yoshikawa
吉川 和志
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 JP2002296678A priority Critical patent/JP4218298B2/ja
Publication of JP2004134993A publication Critical patent/JP2004134993A/ja
Application granted granted Critical
Publication of JP4218298B2 publication Critical patent/JP4218298B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)

Abstract

【課題】より少ない計算量で、より迅速に、より正確な動きベクトルを検出する。
【解決手段】特徴量抽出部101は、参照フレームの画素の特徴量を抽出する。アドレス生成部201および特徴量フレームメモリ202は、特徴量に対応する第1のアドレスの領域に画素位置情報を記憶する。特徴量抽出部103は、カレントフレームの画素の特徴量を抽出する。参照画素位置検出部203は、記憶されている画素位置情報を基に、動いた先がカレントフレームの画素である参照フレームの画素の位置を選択する。アドレス生成部201および特徴量フレームメモリ202は、第1のアドレスの領域に空きが無くなった場合、第2のアドレスの領域に、画素位置情報を記憶させ、第2のアドレスの領域に記憶することを表す情報を記憶する。本発明は、動きベクトルを検出する画像処理装置に適用できる。
【選択図】   図11

Description

【0001】
【発明の属する技術分野】
本発明は、画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、画像の動きを検出する画像処理装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
画像の動きを示す動きベクトルを求め、この動きベクトルに基づいて効率よく動画像を処理する技術がある。
【0003】
上述の動きベクトルを求める手法としては、いくつか提案されているが、代表的な手法としてブロックマッチングアルゴリズムと呼ばれる手法がある。
【0004】
図1は、ブロックマッチングアルゴリズムを採用した従来の画像処理装置の構成を示すブロック図である。
【0005】
フレームメモリ11は、例えば、時刻t1において、画像(画像データ)が入力されると、1フレーム分の画像を格納し、記憶する。さらに、フレームメモリ11は、次のフレームのタイミングとなる時刻t2において、次のフレームの画像が入力されると、新たに入力された時刻t2の1フレーム分の画像を格納し、記憶するとともに、時刻t1の1フレーム分の画像をサーチエリア生成部12に出力する。
【0006】
ラインメモリ13は、時刻t2のタイミングで、入力されてきた1フレームの所定のラインの画像を格納し、時刻t2のタイミングで、ブロック生成部14に出力する。
【0007】
すなわち、フレームメモリ11が、上述の時刻t2のタイミングで入力される(今現在の)1フレーム分の画像の画素値を格納し、記憶するとき、フレームメモリ11は、時刻t1(1タイミング過去)の1フレーム分の画像の画素値をサーチエリア生成部12に出力する。ラインメモリ13は、時刻t2のタイミングで入力された(今現在の)1フレームのラインの画像の画素値をブロック生成部14に出力する。なお、以下において、ラインメモリ13に格納される画像のラインに対応するフレームをカレントフレームFc、フレームメモリ11から出力される画像を参照フレームFrと称する。
【0008】
サーチエリア生成部12は、フレームメモリ11から供給された参照フレームFrからサーチエリアSRを生成し、サーチエリアSRの画素の画素値をマッチング部15に供給する。
【0009】
ブロック生成部14は、ラインメモリ13から供給されたカレントフレームFcから基準ブロックBbを生成し、基準ブロックBbの画素の画素値をマッチング部15に供給する。
【0010】
図2に示すように、参照フレームFrのサーチエリアSRは、横にNS(画素数)、縦にMS(画素数)の画素からなり、カレントフレームFcの基準ブロックBbは、横にNB(画素数)、縦にMB(画素数)の画素からなる。通常、サーチエリアSRは、基準ブロックBbに比較して大きな領域(画素数が多い)からなる。
【0011】
この場合、サーチエリアSRの縦および横の画素数を同じ数のLとすることができる。
【0012】
マッチング部15は、サーチエリア生成部12から供給されたサーチエリアSRの画素の画素値と、ブロック生成部14から供給された基準ブロックBbの画素の画素値とを基に、サーチエリアSRの参照ブロックBrnを構成する各画素の画素値と、基準ブロックBbの各画素の画素値との差分絶対値和を算出して、参照ブロックBrnから基準ブロックBbへのベクトルと共に、差分絶対値和を誤差値として、誤差最小選択部16に供給する。
【0013】
誤差最小選択部16は、最小である誤差値に対応するベクトルを選択して、選択されたベクトルを動きベクトルとして出力する。
【0014】
ここで、ブロックマッチングアルゴリズムについて説明する。例えば、図3で示すように、カレントフレームFc内の注目画素P(i,j)に対応する動きベクトルを求める場合、まず、カレントフレームFc上に注目画素P(i,j)を中心としたL(画素数)×L(画素数)からなる基準ブロックBb(i,j)、参照フレームFr上に、注目画素P(i,j)の位置に対応するサーチエリアSR、そして、そのサーチエリアSR内に、L(画素数)×L(画素数)の画素からなる参照ブロックBrn(i,j)がそれぞれ設定される。
【0015】
次に、この基準ブロックBb(i,j)と、参照ブロックBrn(i,j)の各画素間の画素値の差分の絶対値の和を求める処理が、参照ブロックBrnをサーチエリアSR内の全域で水平方向、または、垂直方向に1画素分ずつラスタスキャン順に移動させながら、図3中のBr1からBrm(参照ブロックBrnが、サーチエリアSR内にm個設定できるものとする)まで繰り返される。
【0016】
このようにして求められた基準ブロックBb(i,j)と、参照ブロックBrn(i,j)の各画素間の差分絶対値和のうち、差分絶対値和が最小となる参照ブロックBrnを求めることにより、基準ブロックBb(i,j)に最も近い(類似している)参照ブロックBrn(i,j)を構成するL×L個の画素の中心となる参照画素Pn(i,j)が求められる。
【0017】
そして、このカレントフレーム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)となる。
【0018】
すなわち、注目画素P(i,j)に対応する参照フレーム上の参照画素P’(i,j)を始点とし、基準ブロックBb(i,j)に最も近い(類似している)参照ブロックBrn(i,j)を構成するL×L個の画素の中心となる参照画素Pn(i,j)を終点とするベクトルが動きベクトルとして求められる。
【0019】
次に、図4のフローチャートを参照して、図1の画像処理装置の動き検出処理について説明する。
【0020】
ステップS1において、サーチエリア生成部12は、カレントフレームFc上の注目画素P(i,j)の画素位置に応じて、サーチエリアSRを設定する。
【0021】
ステップS2において、誤差最小選択部16は、上述のように、基準ブロック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(画素数))に初期化される。
【0022】
ステップS3において、マッチング部15は、参照ブロックBrnをカウントするカウンタ変数nを1に初期化する。
【0023】
ステップS4において、誤差最小選択部16は、基準ブロックBbと参照ブロックBrnの画素間の差分絶対値和を代入するために用いる変数sumを0に初期化する。
【0024】
ステップS5において、マッチング部15は、基準ブロックBb(i,j)と参照ブロックBrn(i,j)の画素間の差分絶対値和(=sum)を求める。すなわち、基準ブロックBb(i,j)の各画素がP_Bb(i,j)、基準ブロックBrn(i,j)の各画素がP_Brn(i,j)としてそれぞれ示される場合、マッチング部15は、以下の式(1)で示される演算を実行して、基準ブロックBb(i,j)と参照ブロックBrn(i,j)の画素間の差分絶対値和を求める。
【0025】
【数1】
Figure 2004134993
【0026】
ステップS6において、誤差最小選択部16は、変数minが変数sumよりも大きいか否かを判定し、例えば、変数minが変数sumよりも大きいと判定する場合、ステップS7において、変数minを変数sumに更新し、その時点でのカウンタnの値を動きベクトル番号として登録する。すなわち、今求めた差分絶対値和を示す変数sumが、最小値を示す変数minよりも小さいと言うことは、これまで演算したどの参照ブロックよりも、今演算している参照ブロックBrn(i,j)が基準ブロックBb(i,j)により類似したものであるとみなすことができるので、動きベクトルを求める際の候補とするため、その時点でのカウンタnが動きベクトル番号として登録される。また、ステップS6において、変数minが変数sumよりも大きくないと判定された場合、ステップS7の処理がスキップされる。
【0027】
ステップS8において、マッチング部15は、カウンタ変数nがサーチエリアSRの参照ブロックBrnの総数mであるか否か、すなわち、今の参照ブロックBrnがBrn=Brmであるか否かを判定し、例えば、総数mではないと判定した場合、ステップS9において、カウンタ変数nを1インクリメントし、その処理は、ステップS4に戻る。
【0028】
ステップS8において、カウンタ変数nがサーチエリア内の参照ブロックBrnの総数mである、すなわち、今の参照ブロックBrnがBrn=Brmであると判定された場合、ステップS10において、誤差最小選択部16は、登録されている動きベクトル番号に基づいて動きベクトルを出力する。すなわち、ステップS4乃至S9が繰り返されることにより、差分絶対値和が最小となる参照ブロックBrnに対応するカウンタ変数nが動きベクトル番号として登録されることになるので、誤差最小選択部16は、この動きベクトル番号に対応する参照ブロックBrnのL×L個の画素のうち、その中心となる参照画素Pn(i,j)を求め、カレントフレームFc上の注目画素P(i,j)に対応する参照フレームFr上の画素P’(i,j)を始点とし、参照画素Pn(i,j)を終点とするベクトルを、注目画素P(i,j)の動きベクトル(Vx,Vy)として求めて出力する。
【0029】
図1に構成を示す画像処理装置において、1フレーム当たりの計算量は、1フレームの画素の数×差分絶対値和の計算量×基準ブロックBbに含まれる画素の数×サーチエリアSRに含まれる画素の数で求められる。
【0030】
差分絶対値和の計算量を1クロックで表し、基準ブロックBbに8×8の画素が含まれ、サーチエリアSRに20×20の画素が含まれるとしたとき、1画素についての動きベクトルを求める処理の計算量は、8×8×20×20×1クロック、すなわち25600クロックとなる。
【0031】
膨大な計算量が必要となるので、動画像をリアルタイムで処理することはできない。
【0032】
演算量を少なくするために、ブロックマッチングアルゴリズムの一種として、代表点ブロックマッチングアルゴリズムが用いられている。
【0033】
代表点ブロックマッチングアルゴリズムにおいては、図5に示すように、基準ブロックBbに代えて、代表点ブロックが用いられる。代表点ブロックに含まれる画素のうち、代表点ブロックの中央の画素、または代表点ブロックの所定の位置の画素など、1または複数の画素が代表点として選択される。
【0034】
代表点ブロックマッチングアルゴリズムにおいては、代表点と、サーチエリアSRの参照代表画素との差分絶対値和が算出され、最小の差分絶対値和が選択される。そして、カレントフレームFc上の代表点(i,j)に対応する参照フレームFr上の画素P’(i,j)を始点とし、最小の差分絶対値和に対応する参照代表画素(i,j)を終点とするベクトルが、代表点ブロックの動きベクトル(Vx,Vy)とされ出力される。
【0035】
代表点ブロックマッチングにおいて、計算量は、画素の数×差分絶対値和の計算量×代表点ブロックに含まれる画素の数×サーチエリアSRに含まれる画素の数/代表点ブロックに含まれる画素の数で求められる。
【0036】
差分絶対値和の計算量を1クロックで表し、代表点ブロックに8×8の画素が含まれ、サーチエリアSRに20×20の画素が含まれるとしたとき、1画素についての動きベクトルを求める処理の計算量は、8×8×20×20/(8×8)×1クロック、すなわち400クロックとなる。
【0037】
代表点ブロックマッチングにおいては、計算量が少なくなるが、動きベクトルが代表点ブロックに対して求められるので、動きベクトルの精度は劣化することになる。
【0038】
また、ブロックマッチング法により動きベクトルを検出する時に、定常成分および過渡成分の絶対値差分を累算した値の加重平均から得られる評価値に基づいて動きベクトルを検出することにより、演算量を低減させるようにするものがある(例えば、特許文献1参照)。
【0039】
さらに、参照ブロックおよび探索範囲内の画素値を符号化してコード値に基づいてマッチング演算を行い、演算結果に基づいて第1の動きベクトルを算出し、第1の動きベクトルに応じた動き補償を行った後に第1の動きベクトルに係る候補ブロックを1画素を単位としてずらすことで得られる新たな探索範囲について、画素値の差分に基づくブロックマッチングを行うことにより、第2の動きベクトルを算出して、第1の動きベクトルと第2の動きベクトルの和として最終的な動きベクトルを算出することで、演算を簡素化するものがある(例えば、特許文献2参照)。
【0040】
【特許文献1】
特開平07−087494号公報
【特許文献2】
特開2000−278691号公報
【0041】
【発明が解決しようとする課題】
以上のように、従来は、動きベクトルを検出するためには膨大な計算量を必要とし、迅速に動きベクトルを検出することができなかった。また、より正確な動きベクトルを求める場合、さらに計算量が増加するという問題点があった。
【0042】
本発明はこのような状況に鑑みてなされたものであり、より少ない計算量で、より迅速に、より正確な動きベクトルを検出できるようにすることを目的とする。
【0043】
【課題を解決するための手段】
本発明の第1の画像処理装置は、第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出する第1の特徴量抽出手段と、第1の画素の特徴量に対応する第1のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶を制御する記憶制御手段と、第1のフレームの第2の画素の特徴量を抽出する第2の特徴量抽出手段と、記憶されている、第1の画素の位置を示す画素位置情報を基に、第2の画素の特徴量と同じ特徴量の第1の画素の位置の中から、動いた先が第2の画素である第1の画素の位置を選択する選択手段とを含み、記憶制御手段は、第1の画素の特徴量に対応する第1のアドレスで指定される領域に空きが無くなった場合、第2のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶を制御すると共に、第1の画素の位置を示す画素位置情報を第2のアドレスで指定される領域に記憶することを表す情報の記憶を制御することを特徴とする。
【0044】
選択された第1の画素の位置、および第2の画素の位置から、第2の画素の動きベクトルを算出する算出手段をさらに設けることができる。
【0045】
選択手段は、記憶されている、第1の画素の位置を示す画素位置情報を基に、第2の画素の特徴量に近似する特徴量の第1の画素の位置の中から、動いた先が第2の画素である第1の画素の位置を選択するようにすることができる。
【0046】
記憶制御手段は、第1の画素の特徴量に対応する第1のアドレスで指定される領域に空きが無くなった場合、最も多い数の空きの領域を指定する第2のアドレスを選択し、第2のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶を制御するようにすることができる。
【0047】
第2のフレームの全ての第1の画素について、特徴量毎の第1の画素の数を算出する算出手段をさらに設け、記憶制御手段は、特徴量毎の第1の画素の数を基に、第2のアドレスを予め選択するようにすることができる。
【0048】
本発明の第1の画像処理方法は、第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出する第1の特徴量抽出ステップと、第1の画素の特徴量に対応する第1のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶を制御する記憶制御ステップと、第1のフレームの第2の画素の特徴量を抽出する第2の特徴量抽出ステップと、記憶されている、第1の画素の位置を示す画素位置情報を基に、第2の画素の特徴量と同じ特徴量の第1の画素の位置の中から、動いた先が第2の画素である第1の画素の位置を選択する選択ステップとを含み、記憶制御ステップにおいては、第1の画素の特徴量に対応する第1のアドレスで指定される領域に空きが無くなった場合、第2のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶が制御されると共に、第1の画素の位置を示す画素位置情報を第2のアドレスで指定される領域に記憶することを表す情報の記憶が制御されることを特徴とする。
【0049】
本発明の第1の記録媒体のプログラムは、第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出する第1の特徴量抽出ステップと、第1の画素の特徴量に対応する第1のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶を制御する記憶制御ステップと、第1のフレームの第2の画素の特徴量を抽出する第2の特徴量抽出ステップと、記憶されている、第1の画素の位置を示す画素位置情報を基に、第2の画素の特徴量と同じ特徴量の第1の画素の位置の中から、動いた先が第2の画素である第1の画素の位置を選択する選択ステップとを含み、記憶制御ステップにおいては、第1の画素の特徴量に対応する第1のアドレスで指定される領域に空きが無くなった場合、第2のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶が制御されると共に、第1の画素の位置を示す画素位置情報を第2のアドレスで指定される領域に記憶することを表す情報の記憶が制御されることを特徴とする。
【0050】
本発明の第1のプログラムは、第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出する第1の特徴量抽出ステップと、第1の画素の特徴量に対応する第1のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶を制御する記憶制御ステップと、第1のフレームの第2の画素の特徴量を抽出する第2の特徴量抽出ステップと、記憶されている、第1の画素の位置を示す画素位置情報を基に、第2の画素の特徴量と同じ特徴量の第1の画素の位置の中から、動いた先が第2の画素である第1の画素の位置を選択する選択ステップとをコンピュータに実行させ、記憶制御ステップにおいては、第1の画素の特徴量に対応する第1のアドレスで指定される領域に空きが無くなった場合、第2のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶が制御されると共に、第1の画素の位置を示す画素位置情報を第2のアドレスで指定される領域に記憶することを表す情報の記憶が制御されることを特徴とする。
【0051】
本発明の第2の画像処理装置は、第1のフレームに対して時間的に前のフレームである第2のフレームの画素の特徴量を抽出する第1の特徴量抽出手段と、第2のフレームの画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、第2のフレームの画素の位置を順次記憶させるように記憶を制御すると共に、画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置の記憶を記憶させるように記憶を制御する記憶制御手段と、第1のフレームの画素の特徴量を抽出する第2の特徴量抽出手段と、特徴量に対応するアドレスで指定される第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、第1のフレームの画素の特徴量と同じ特徴量の第2のフレームの画素の位置の中から、動いた先が第1のフレームの画素である第2のフレームの画素の位置を選択する選択手段とを含むことを特徴とする。
【0052】
選択された第2のフレームの画素の位置、および第1のフレームの画素の位置から、第1のフレームの画素の動きベクトルを算出する算出手段をさらに設けることができる。
【0053】
本発明の第2の画像処理方法は、第1のフレームに対して過去のフレームである第2のフレームの画素の特徴量を抽出する第1の特徴量抽出ステップと、第2のフレームの画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、第2のフレームの画素の位置を順次記憶させるように記憶を制御すると共に、画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置の記憶を記憶させるように記憶を制御する記憶制御ステップと、第1のフレームの画素の特徴量を抽出する第2の特徴量抽出ステップと、特徴量に対応するアドレスで指定される第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、第1のフレームの画素の特徴量と同じ特徴量の第2のフレームの画素の位置の中から、動いた先が第1のフレームの画素である第2のフレームの画素の位置を選択する選択ステップとを含むことを特徴とする。
【0054】
本発明の第2の記録媒体のプログラムは、第1のフレームに対して過去のフレームである第2のフレームの画素の特徴量を抽出する第1の特徴量抽出ステップと、第2のフレームの画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、第2のフレームの画素の位置を順次記憶させるように記憶を制御すると共に、画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置の記憶を記憶させるように記憶を制御する記憶制御ステップと、第1のフレームの画素の特徴量を抽出する第2の特徴量抽出ステップと、特徴量に対応するアドレスで指定される第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、第1のフレームの画素の特徴量と同じ特徴量の第2のフレームの画素の位置の中から、動いた先が第1のフレームの画素である第2のフレームの画素の位置を選択する選択ステップとを含むことを特徴とする。
【0055】
本発明の第2のプログラムは、第1のフレームに対して過去のフレームである第2のフレームの画素の特徴量を抽出する第1の特徴量抽出ステップと、第2のフレームの画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、第2のフレームの画素の位置を順次記憶させるように記憶を制御すると共に、画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置の記憶を記憶させるように記憶を制御する記憶制御ステップと、第1のフレームの画素の特徴量を抽出する第2の特徴量抽出ステップと、特徴量に対応するアドレスで指定される第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、第1のフレームの画素の特徴量と同じ特徴量の第2のフレームの画素の位置の中から、動いた先が第1のフレームの画素である第2のフレームの画素の位置を選択する選択ステップとをコンピュータに実行させることを特徴とする。
【0056】
本発明の第1の画像処理装置および方法、記録媒体、並びにプログラムにおいては、第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量が抽出され、第1の画素の特徴量に対応する第1のアドレスで指定される領域に、第1の画素の位置を示す画素位置情報が記憶される。さらに、第1のフレームの第2の画素の特徴量が抽出され、記憶されている、第1の画素の位置を示す画素位置情報を基に、第2の画素の特徴量と同じ特徴量の第1の画素の位置の中から、動いた先が第2の画素である第1の画素の位置が選択される。そして、第1の画素の特徴量に対応する第1のアドレスで指定される領域に空きが無くなった場合、第2のアドレスで指定される領域に、第1の画素の位置を示す画素位置情報が記憶されると共に、第1の画素の位置を示す画素位置情報を第2のアドレスで指定される領域に記憶することを表す情報が記憶される。
【0057】
本発明の第2の画像処理装置および方法、記録媒体、並びにプログラムにおいては、第1のフレームに対して時間的に前のフレームである第2のフレームの画素の特徴量が抽出され、第2のフレームの画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、第2のフレームの画素の位置が順次記憶される。また、画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置が記憶される。そして、第1のフレームの画素の特徴量が抽出され、特徴量に対応するアドレスで指定される第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、第1のフレームの画素の特徴量と同じ特徴量の第2のフレームの画素の位置の中から、動いた先が第1のフレームの画素である第2のフレームの画素の位置が選択される。
【0058】
【発明の実施の形態】
図6は、本発明に係る画像処理装置の一実施の形態の構成を示すブロック図である。画像処理装置に入力された画像は、特徴量抽出部101および特徴量抽出部103に供給される。
【0059】
特徴量抽出部101は、入力された画像の画素を、例えばラスタスキャン順に参照画素とし、参照画素に対応する特徴量を抽出する。特徴量とは、画素の特徴を表す量である。例えば、特徴量抽出部101は、参照画素を中心とした、3×3のブロックに含まれる画素の画素値を所定の順(例えば、ラスタスキャン順)に並べた値を特徴量とする。参照画素を中心とした、3×3のブロックに含まれる画素の画素値を所定の順に並べた値が特徴量であるとき、ブロックに含まれるいずれかの画素の画素値が変化した場合、特徴量は変化することになる。
【0060】
特徴量抽出部101は、参照画素の画面上の位置を示す画素位置情報と共に、抽出した特徴量を特徴量フレームメモリ102に供給する。
【0061】
特徴量フレームメモリ102は、特徴量抽出部101から供給された、参照画素の画面上の位置を示す画素位置情報、および特徴量を取得し、特徴量に対応するアドレスに画素位置情報を記憶する。
【0062】
図7は、特徴量フレームメモリ102が記憶する画素位置情報および画素位置情報の数の配置を説明する図である。
【0063】
図中においてDで示される四角は、それぞれ、1つの画素位置情報、または1つの画素位置情報の数を格納する格納領域Dを示す。
【0064】
図7において、格納領域Dの縦方向(列方向)の位置は、特徴量アドレスで特定され、1つの(1つの種類の)特徴量に対応する。すなわち、1つの特徴量アドレスは、1つの特徴量を示すと言える。特徴量アドレスが異なる場合、それぞれの特徴量アドレスは、異なる特徴量を示す。図7に示す特徴量フレームメモリ102の例においては、0乃至N−1の範囲のN個の特徴量アドレスが設定されている。言い換えれば、図7に示す特徴量フレームメモリ102は、N種類の特徴量に分類された画素の画素位置情報を記憶することができる。
【0065】
図7において、格納領域Dの横方向(行方向)の位置は、フラグアドレスで特定される。フラグアドレスが0である、図中の左側の列の格納領域Dには、特徴量アドレスで特定される特徴量を有する画素の数が格納される。同じ特徴量の画素の数は、その画素の位置を示す画素位置情報の数と等しいので、フラグアドレスが0である、図中の左側の列の格納領域Dには、同一の特徴量の画素の画素位置情報の数が格納されることになる。言い換えれば、所定の特徴量アドレスで特定される、フラグアドレス0の格納領域Dには、その特徴量アドレスで特定される格納領域Dに格納される画素位置情報の数が格納されることになる。
【0066】
以下、特徴量アドレスがaで、フラグアドレスがbである格納領域Dの位置をアドレス(a,b)と表す。
【0067】
フラグアドレスが1乃至Mである、図中の列の格納領域Dには、特徴量アドレスで特定される特徴量を有する画素の画素位置を示す画素位置情報の1つが格納される。例えば、特徴量アドレス2に対応する特徴量を有する最初の画素の画素位置を示す画素位置情報は、アドレス(2,1)の格納領域Dに格納される。そして、特徴量アドレス2に対応する特徴量を有する2番目の画素の画素位置を示す画素位置情報は、アドレス(2,2)の格納領域Dに格納される。
【0068】
このように、特徴量アドレス2に対応する特徴量が抽出されたとき、その特徴量が抽出された参照画素の画素位置を示す画素位置情報が、特徴量アドレス2で示される格納領域Dであって、フラグアドレス1乃至Mで指定されるものに、図中の左側から右側に順に格納される。
【0069】
同様に、0乃至N−1のいずれかの特徴量アドレスに対応する特徴量が抽出されたとき、その特徴量が抽出された参照画素の画素位置を示す画素位置情報が、0乃至N−1のいずれかの特徴量アドレスで示される格納領域Dであって、フラグアドレス1乃至Mで指定されるものに、図中の左側から右側に順に格納される。
【0070】
各格納領域Dには、例えば、1ワード(例えば、32ビット)の記憶領域を配置することができる。
【0071】
特徴量フレームメモリ102は、以上のように、特徴量によって分類される画素の画素位置情報を順に記憶する。
【0072】
特徴量フレームメモリ102は、カレントフレームFc(現在のフレーム)に対応する画素位置情報と、参照フレームFr(1つ前のフレーム)に対応する画素位置情報とをそれぞれに記憶し、それぞれ読み出すことができる。すなわち、特徴量フレームメモリ102は、カレントフレームFcに対応する図7に示す格納領域Dのページと、参照フレームFrに対応する図7に示す格納領域Dのページとを有し、ページを切り替えることにより、特徴量抽出部101から供給されたカレントフレームFcの画素位置情報を記憶するとともに、記憶されている参照フレームFrの画素位置情報を読み出して、参照画素位置検出部104に供給することができる。
【0073】
特徴量抽出部103は、入力された画像の画素を、例えばラスタスキャン順に注目画素とし、特徴量抽出部101と同様の処理で、注目画素に対応する特徴量を抽出する。例えば、特徴量抽出部101は、参照画素を中心とした、3×3のブロックに含まれる画素の画素値を所定の順に並べた値を特徴量とする。
【0074】
特徴量抽出部103は、注目画素の画面上の位置を示す画素位置情報と共に、抽出した特徴量を参照画素位置検出部104に供給する。
【0075】
なお、特徴量抽出部101または特徴量抽出部103が出力する特徴量を算出するためのブロックに含まれる画素の数は、任意の数とすることができ、3×3に限定されるものではない。特徴量を算出するためのブロックから、所定の数の画素を抽出して、抽出された画素から特徴量を求めるようにしてもよい。
【0076】
また、特徴量抽出部101または特徴量抽出部103が抽出する特徴量は、ブロックに含まれる画素の画素値を並べた値に限らず、注目画素または参照画素の画素値そのもの、画素値の和、画素値の平均値、画素値の上位の所定のビットを抽出した値の配列、和、若しくは平均値などでもよい。
【0077】
さらに、特徴量抽出部101または特徴量抽出部103は、ADRC(Adaptive Dynamic Range Coding)またはラプラシアンなど、画素値に所定の演算を適用して得られた結果を基に特徴量を算出するようにしてもよい。
【0078】
参照画素位置検出部104は、特徴量抽出部103から供給された注目画素の特徴量、および特徴量フレームメモリ102に記憶されている参照フレームFrの画素位置情報を基に、注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置を検出する。参照画素位置検出部104は、検出された注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置から、動いた先が注目画素である参照フレームFrの画素の位置を選択する。そして、参照画素位置検出部104は、注目画素の画素位置情報と参照フレームFrの選択された画素の画素位置とから、注目画素の位置に対応する位置の参照フレームFr上の画素を始点とし、注目画素の特徴量と同じ特徴量を有する参照フレームFrの選択された画素を終点とする動きベクトルを求めて、求めた動きベクトルを出力する。
【0079】
なお、フレームを単位として処理を実行すると説明したが、フィールドを単位として処理を実行するようにしてもよいことは、勿論である。また、処理の対象は、時間的に隣接するフレームまたはフィールドに限らず、時間的に離れたフレームまたはフィールドとすることができる。以下の実施の形態においても同様である。
【0080】
図8は、図6に構成を示す画像処理装置による、動きベクトルの検出の処理を説明するフローチャートである。
【0081】
ステップS101において、特徴量抽出部101および特徴量フレームメモリ102は、参照フレームFrの画素位置情報の格納の処理を実行することにより、画素位置情報を記憶する。画素位置情報の格納の処理の詳細は、図9のフローチャートを参照して、後述する。
【0082】
ステップS102において、特徴量抽出部103および参照画素位置検出部104は、注目画素に対応する画素の位置の検出の処理を実行して、注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置を検出する。注目画素に対応する画素の位置の検出の処理の詳細は、図10のフローチャートを参照して、後述する。
【0083】
ステップS103において、参照画素位置検出部104は、特徴量抽出部103から供給された注目画素の画素位置情報、およびステップS102の処理で検出された、参照フレームFrの画素の画素位置を基に、動きベクトルを求める。例えば、参照画素位置検出部104は、注目画素の位置に対応する位置の参照フレームFr上の画素を始点とし、注目画素の特徴量と同じ特徴量を有する参照フレームFrの画素を終点とする動きベクトルを求める。
【0084】
ステップS104において、参照画素位置検出部104は、ステップS103の処理で求めた動きベクトルを出力して、処理は終了する。
【0085】
図9は、ステップS101に対応する、画素位置情報の格納の処理を説明するフローチャートである。
【0086】
ステップS121において、特徴量フレームメモリ102は、特徴量フレームメモリ102に格納されているデータを初期化する。例えば、特徴量フレームメモリ102は、フラグアドレスが0である格納領域Dに0を設定し、フラグアドレスが1乃至Mである格納領域Dにヌル(null)を設定することにより、データを初期化する。
【0087】
ステップS122において、特徴量抽出部101は、カウンタ変数nを初期化する。カウンタ変数nは、処理の対象となる画素の数を数えるための変数である。例えば、特徴量フレームメモリ102は、ステップS122において、カウンタ変数nに1を設定する。
【0088】
ステップS123において、特徴量抽出部101は、参照フレームFrの画素のなかからまだ参照画素とされていない画素を選択して参照画素とする。特徴量抽出部101は、参照画素に対応するブロックの特徴量を算出することにより、参照画素の特徴量を抽出し、参照画素の位置を示す画素位置情報と共に、抽出した特徴量を特徴量フレームメモリ102に供給する。例えば、特徴量抽出部101は、参照画素を中心とした、3×3のブロックに含まれる画素の画素値をラスタスキャン順に並べた値である特徴量を算出する。
【0089】
ステップS124において、特徴量フレームメモリ102は、ステップS123の処理で算出された特徴量に対応する画素位置情報の数を読み出す。例えば、参照画素の特徴量に対応する特徴量アドレスがkであるとき、特徴量フレームメモリ102は、アドレス(k,0)の格納領域Dから、特徴量に対応する画素位置情報の数を読み出す。
【0090】
ステップS125において、特徴量フレームメモリ102は、ステップS124の処理で読み出した画素位置情報の数をインクリメントする。すなわち、特徴量フレームメモリ102は、ステップS124の処理で読み出した画素位置情報の数に1を加算する。
【0091】
ステップS126において、特徴量フレームメモリ102は、ステップS125の処理でインクリメントされた画素位置情報の数を記憶する。例えば、特徴量フレームメモリ102は、特徴量に対応する特徴量アドレスがkであるとき、アドレス(k,0)の格納領域Dに、インクリメントされた画素位置情報の数を書き込む。
【0092】
ステップS127において、特徴量フレームメモリ102は、特徴量に対応する特徴量アドレスと、画素位置情報の数に対応するフラグアドレスとから特定されるアドレスの格納領域Dに、参照画素の画素位置を示す画素位置情報を書き込む。例えば、特徴量フレームメモリ102は、参照画素の特徴量に対応する特徴量アドレスがkであり、画素位置情報の数がqであるとき、アドレス(k,q)の格納領域Dに、参照画素の画素位置を示す画素位置情報を書き込む。
【0093】
このようにすることで、同じ特徴量の画素を示す画素位置情報は、同じ特徴量アドレスの格納領域Dに、図7中の左側から右側に向かって順に格納されることになる。ここで、1つの格納領域Dは、1つの画素位置情報を格納する。
【0094】
ステップS128において、特徴量抽出部101は、カウンタ変数nをインクリメントする。すなわち、特徴量抽出部101は、カウンタ変数nに1を加算する。
【0095】
ステップS129において、特徴量抽出部101は、カウンタ変数nの値が、フレームの画素の数に等しいか否かを判定し、カウンタ変数nの値が、フレームの画素の数に等しくないと判定された場合、まだ、参照画素とされていない画素がある、すなわち特徴量が抽出されていない画素があるので、ステップS123に戻り、上述した処理を繰り返し、次の参照画素について特徴量を抽出して、画素位置情報を特徴量フレームメモリ102に格納する。
【0096】
ステップS129において、カウンタ変数nの値が、フレームの画素の数に等しいと判定された場合、フレームの全ての画素が参照画素とされ、フレームの全ての画素の特徴量が抽出されて、全ての画素に対応する画素位置情報が特徴量フレームメモリ102に格納されたので、処理は終了する。
【0097】
図10は、ステップS102の処理に対応する、注目画素に対応する画素位置の検出の処理を説明するフローチャートである。
【0098】
ステップS141において、参照画素位置検出部104は、カウンタ変数nを初期化する。カウンタ変数nは、処理の対象となる画素の数を数えるための変数である。例えば、特徴量フレームメモリ102は、ステップS141において、カウンタ変数nに1を設定する。
【0099】
ステップS142において、特徴量抽出部103は、特徴量抽出部101と同様の処理で、カレントフレームFcの画素のうち、まだ注目画素とされていない画素のなかから注目画素を選択する。特徴量抽出部103は、選択された注目画素に対応するブロックの特徴量を算出することにより、注目画素の特徴量を抽出し、注目画素の画面上の位置を示す画素位置情報と共に、抽出した特徴量を参照画素位置検出部104に供給する。例えば、特徴量抽出部103は、注目画素を中心とした、3×3のブロックに含まれる画素の画素値をラスタスキャン順に並べた値である特徴量を算出する。
【0100】
ステップS143において、参照画素位置検出部104は、特徴量フレームメモリ102から、ステップS142の処理で算出された特徴量に対応する画素位置情報を読み出す。すなわち、参照画素位置検出部104は、ステップS142の処理で特徴量抽出部103から供給された特徴量と同一の特徴量の画素の位置を示す画素位置情報を読み出す。
【0101】
より具体的には、特徴量抽出部103から供給された注目画素の特徴量に対応する特徴量アドレスがkであるとき、参照画素位置検出部104は、特徴量フレームメモリ102のアドレス(k,0)である格納領域Dから画素位置情報の数qを読み出す。そして、参照画素位置検出部104は、特徴量フレームメモリ102のアドレス(k,1)乃至(k,q)である格納領域Dから、q個の画素位置情報を読み出す。
【0102】
ステップS144において、参照画素位置検出部104は、注目画素の動きに対応した参照画素の位置として(動いた先が注目画素である参照画素の位置として)、ステップS143の処理で読み出した画素位置情報で示される画素の位置のうち、注目画素に最も近い画素の位置を選択する。すなわち、参照画素位置検出部104は、画素位置情報で示される参照画素(の位置)Pn(i,j)と注目画素P(の位置)(i,j)との距離を求め、距離が最小の参照画素の位置を選択する。
【0103】
なお、参照画素位置検出部104は、注目画素の動きに対応した参照画素の位置として、注目画素に最も近い画素の位置を選択すると説明したが、注目画素に最も近い画素の位置に限らず、注目画素の画素値に最も近い画素値を有する参照画素の位置、または注目画素を含む所定のブロックの画素の画素値に最も近い画素値の画素からなるブロックに対応する参照画素の位置など、他の基準を基に、動いた先が注目画素である参照画素の位置を選択するようにしてもよい。
【0104】
以下に説明する、画素の位置を選択する処理においても同様である。
【0105】
ステップS145において、参照画素位置検出部104は、選択された画素の位置と注目画素の位置との距離が、予め定めた閾値より短いか否かを判定し、選択された画素の位置と注目画素の位置との距離が、予め定めた閾値より短いと判定された場合、注目画素の動きに対応した正しい画素の位置が選択されたので、ステップS152に進む。
【0106】
ステップS145において、選択された画素の位置と注目画素の位置との距離が、予め定めた閾値以上であると判定された場合、注目画素の動きに対応した正しい画素の位置が選択されていないので、ステップS146に進み、参照画素位置検出部104は、注目画素に対応するブロックの特徴量の近傍の特徴量を選択する。ここで、近傍の特徴量とは、近似の特徴を有する画素を示す特徴量をいう。例えば、所定のブロックに含まれる各画素の画素値に近い画素値を有する画素からなるブロックから算出される特徴量は、元のブロックの特徴量の近傍の特徴量である。また、所定のブロックに含まれる画素の各画素値の変化(例えば、画素値の差分の並び)と同様に変化し、元の画素値に近い画素値を有する画素からなるブロックから算出される特徴量は、元のブロックの近傍の特徴量である。
【0107】
例えば、元のブロックに含まれる1つの画素の画素値の最下位ビットを反転させて得られたブロックから算出される特徴量は、元のブロックの特徴量の近傍の特徴量である。特徴量が3×3のブロックに含まれる画素の画素値を所定の順に並べた値が特徴量であるとき、ブロックに含まれる全ての画素値の最下位ビットを反転させたブロックの特徴量は、元のブロックの特徴量の近傍の特徴量である。
【0108】
ステップS147において、参照画素位置検出部104は、特徴量フレームメモリ102から、近傍の特徴量に対応する画素位置情報を読み出す。すなわち、参照画素位置検出部104は、ステップS146の処理で選択された近傍の特徴量と同一の特徴量の画素の位置を示す画素位置情報を読み出す。より具体的には、例えば、近傍の特徴量に対応する特徴量アドレスがk’であるとき、参照画素位置検出部104は、特徴量フレームメモリ102のアドレス(k’,0)である格納領域Dから画素位置情報の数q’を読み出す。そして、参照画素位置検出部104は、特徴量フレームメモリ102のアドレス(k’,1)乃至(k’,q’)である格納領域Dから、q’個の画素位置情報を読み出す。
【0109】
ステップS148において、参照画素位置検出部104は、動いた先が注目画素である画素の位置として、ステップS147の処理で読み出した画素位置情報で示される画素の位置のうち、注目画素に最も近い画素の位置を選択する。
【0110】
ステップS149において、参照画素位置検出部104は、選択された画素の位置と注目画素の位置との距離が、予め定めた閾値より短いか否かを判定し、選択された画素の位置と注目画素の位置との距離が、予め定めた閾値より短いと判定された場合、注目画素の動きに対応した正しい画素の位置が選択されたので、ステップS152に進む。
【0111】
ステップS149において、選択された画素の位置と注目画素の位置との距離が、予め定めた閾値以上であると判定された場合、注目画素の動きに対応した正しい画素の位置が選択されていないので、ステップS150に進み、参照画素位置検出部104は、所定の範囲の近傍の特徴量を全て選択したか否かを判定する。
【0112】
例えば、参照画素位置検出部104は、特徴量が3×3のブロックに含まれる画素の画素値を所定の順に並べた値が特徴量抽出部103から供給された特徴量であるとき、選択する近傍の特徴量の範囲には、ブロックに含まれる全ての画素値の最下位ビットを反転させたブロックの特徴量、ブロックに含まれる全ての画素値の下位2ビットを反転させたブロックの特徴量、およびブロックに含まれる全ての画素値の下位3ビットを反転させたブロックの特徴量を含めることができる。
【0113】
ステップS150において、所定の範囲の近傍の特徴量を全て選択していないと判定された場合、まだ選択すべき近傍の特徴量があるので、ステップS146に戻り、他の近傍の特徴量を選択して、ステップS147乃至ステップS149の処理を繰り返す。
【0114】
ステップS150において、所定の範囲の近傍の特徴量を全て選択したと判定された場合、近傍の特徴量にも注目画素の動きに対応した正しい画素がないので、ステップS151に進み、参照画素位置検出部104は、予め定めた値を画素位置に設定して、ステップS152に進む。ステップS151において、参照画素位置検出部104は、エラーコードを注目画素に対応して設定するようにしてもよい。
【0115】
ステップS152において、参照画素位置検出部104は、カウンタ変数nをインクリメントする。すなわち、特徴量抽出部101は、カウンタ変数nに1を加算する。
【0116】
ステップS153において、参照画素位置検出部104は、カウンタ変数nの値が、フレームの画素の数に等しいか否かを判定し、カウンタ変数nの値が、フレームの画素の数に等しくないと判定された場合、まだ、注目画素とされていない画素がある、すなわち対応する画素の位置が検出されていない画素があるので、ステップS142に戻り、上述した処理を繰り返し、次の注目画素に対応する画素の位置を検出する。
【0117】
ステップS153において、カウンタ変数nの値が、フレームの画素の数に等しいと判定された場合、まだ、フレームの全ての画素が注目画素とされ、フレームの全ての画素に対応する画素の位置が検出されたので、処理は終了する。
【0118】
以上のように、図6に構成を示す画像処理装置は、従来に比較して、より少ない演算量で、より迅速に、より正確な動きベクトルを検出することができる。
【0119】
しかしながら、特徴量フレームメモリ102において、フラグアドレスに対応したメモリ領域の大きさは、画素位置情報の最大数、すなわち1フレーム当たりの画素の数から決定される。すなわち、特徴量フレームメモリ102において、メモリ領域の全体の大きさは、画素位置情報の最大数×特徴量の数となる。
【0120】
従って、特徴量フレームメモリ102において、特徴量アドレスで特定される領域のうち、画素位置情報の最大数、すなわち画素の数にならない、特徴量アドレスで特定される領域Dには、空きが生じることになる。
【0121】
ここで、特徴量フレームメモリ102において、処理中にメモリアロケーションが静的に変化することはない。上述した特徴量アドレッシングでは、特徴量アドレス毎に画素位置情報が格納される。
【0122】
また、それぞれの特徴量アドレスに対応して特徴量フレームメモリ102に格納される画素位置情報の数は、処理の対象となる、入力される画像、フレームによって、変化する。これは、特徴量に対応する画素の数が、画像、またはフレームによって変化するためである。
【0123】
図11は、本発明に係る画像処理装置の他の実施の形態の構成を示すブロック図である。図6に示す場合と同様の部分には、同一の番号を付してあり、その説明は省略する。
【0124】
アドレス生成部201は、特徴量抽出部101から供給された特徴量および画素位置情報を基に、画素位置情報を書き込むべきアドレスを生成し、画素位置情報と共に、生成したアドレスを特徴量フレームメモリ202に供給する。アドレス生成部201は、各特徴量毎の画素位置情報の数を算出して、算出した画素位置情報の数を特徴量フレームメモリ202に供給する。また、アドレス生成部201は、特徴量フレームメモリ202に格納されているクラスタに格納すべき、次の特徴量アドレスおよび次のクラスタ番号を生成して、生成した次の特徴量アドレスおよび次のクラスタ番号を特徴量フレームメモリ202に供給する。
【0125】
詳細は後述するが、特徴量フレームメモリ202のクラスタは、1または2以上の所定の数の画素位置情報を格納する。次の特徴量アドレスは、その次の特徴量アドレスが格納されているクラスタに続いて同一の特徴量の画素位置情報が格納される、次のクラスタの特徴量アドレスを示す。次のクラスタ番号は、その次のクラスタ番号が格納されているクラスタに続いて同一の特徴量の画素位置情報が格納される、次のクラスタのクラスタアドレスを示す。
【0126】
特徴量フレームメモリ202は、クラスタを単位として、アドレス生成部201から供給されたアドレスを基に、特徴量に対応する画素位置情報を記憶する。
【0127】
図12は、特徴量フレームメモリ202が記憶するクラスタおよび画素位置情報の数の配置を説明する図である。
【0128】
図12において、クラスタの縦方向(列方向)の位置は、特徴量アドレスで特定され、原則として、1つの(1つの種類の)特徴量に対応する。すなわち、特徴量フレームメモリ202においても、1つの特徴量アドレスは、1つの特徴量を示すと言える。特徴量アドレスが異なる場合、それぞれの特徴量アドレスは、異なる特徴量を示す。図12に示す特徴量フレームメモリ202の例においては、0乃至N−1の範囲のN個の特徴量アドレスが設定されている。言い換えれば、図12に示す特徴量フレームメモリ202は、N種類の特徴量に分類された画素の画素位置情報を格納することができる。
【0129】
特徴量フレームメモリ202には、0乃至N−1の範囲のN個の特徴量アドレスに対応して、それぞれの特徴量アドレスに対応した同一の特徴量の画素の画素位置情報の数が格納される。図12中のLには、特徴量アドレス0に対応する特徴量の画素の画素位置情報の数が格納される。Lには、特徴量アドレス1に対応する特徴量の画素の画素位置情報の数が格納される。同様に、L乃至LN−1のそれぞれには、特徴量アドレス2乃至特徴量アドレスN−1のそれぞれに対応する特徴量の画素の画素位置情報の数が格納される。
【0130】
図12において、クラスタの横方向(行方向)の位置は、クラスタアドレスで特定される。
【0131】
以下、特徴量アドレスがaで、クラスタアドレスがbの位置をアドレス(a,b)と表す。
【0132】
原則として、クラスタアドレスが1乃至Rである、図中の列のクラスタは、1つまたは2以上の、特徴量アドレスで特定される特徴量を有する画素の画素位置を示す画素位置情報を格納する。ここでRは、特徴量フレームメモリ202の1行に配置できるクラスタの最大数、すなわちクラスタアドレスの最大値を示す。
【0133】
図13は、クラスタの構成の例を説明する図である。
【0134】
図13に示すクラスタは、Q個の画素位置情報を格納するとともに、次の特徴量アドレスおよび次のクラスタ番号を格納する。1つのクラスタに格納される、Q個の画素位置情報が示す位置の画素の特徴量は、同一である。
【0135】
クラスタに格納されている、次の特徴量アドレスおよび次のクラスタ番号は、Q個の画素位置情報で示される位置の画素の特徴量と同一の特徴量の画素の画素位置情報が格納される、次のクラスタを特定するための情報である。すなわち、クラスタに格納されている次の特徴量アドレスを特徴量アドレスとし、次のクラスタ番号をクラスタアドレスとして、アドレスが特定される次のクラスタは、次の特徴量アドレスおよび次のクラスタ番号を格納しているクラスタに格納されている画素位置情報で示される位置の画素の特徴量と同じ特徴量の画素の画素位置情報を格納する。例えば、アドレス(K,R)のクラスタに格納されている次の特徴量アドレスがSであり、次のクラスタ番号がRであるとき、次のクラスタのアドレスは、アドレス(S,R)である。アドレス(S,R)のクラスタには、アドレス(K,R)のクラスタに格納されている画素位置情報で示される位置の画素の特徴量と同じ特徴量の画素の画素位置情報が格納される。
【0136】
例えば、特徴量アドレスKに対応する特徴量を有する最初の画素の画素位置を示す画素位置情報は、アドレス(K,1)のクラスタに格納される。アドレス(K,1)のクラスタに順に、次の画素の画素位置情報が順に格納される。
【0137】
そして、アドレス(K,1)のクラスタがいっぱいになったとき、すなわち、これ以上画素位置情報をクラスタに格納することができなくなったとき、特徴量アドレスKに対応する特徴量を有する次の画素の画素位置を示す画素位置情報は、アドレス(K,2)のクラスタに格納される。アドレス(K,1)のクラスタには、アドレス(K,2)のクラスタを示す、次の特徴量アドレスおよび次のクラスタ番号が格納される。
【0138】
このように、アドレス(K,1)のクラスタ乃至アドレス(K,R)のクラスタに、特徴量アドレスKに対応する特徴量の画素の画素位置情報が順に格納することができる。アドレス(K,1)のクラスタ乃至アドレス(K,R)のクラスタに、特徴量アドレスKに対応する特徴量の画素の画素位置情報が順に格納されたとき、アドレス(K,1)のクラスタ乃至アドレス(K,R−1)のクラスタには、それぞれ、次のクラスタとして、アドレス(K,2)のクラスタ乃至アドレス(K,R)のクラスタを示す、次の特徴量アドレスおよび次のクラスタ番号が格納されることになる。
【0139】
そして、アドレス(K,1)のクラスタ乃至アドレス(K,R)のクラスタの全てがいっぱいになったとき、すなわち、特徴量アドレスKのクラスタにこれ以上画素位置情報を格納することができなくなったとき、さらに特徴量アドレスKに対応する特徴量を有する次の画素の画素位置を示す画素位置情報を特徴量フレームメモリ202に格納する場合、最も少ない数のクラスタが配置されている特徴量アドレスが探索される。最も少ない数のクラスタが配置されている特徴量アドレスがSであるとき、アドレス(S,R)のクラスタが、アドレス(K,R)のクラスタの次のクラスタとされる。
【0140】
特徴量アドレスKに対応する特徴量を有する次の画素の画素位置を示す画素位置情報は、アドレス(S,R)のクラスタに格納される。アドレス(K,R)のクラスタには、アドレス(S,R)のクラスタの位置を示す、次の特徴量アドレスおよび次のクラスタ番号が格納される。そして、特徴量アドレスKに対応する特徴量を有するさらに次の画素の画素位置を示す画素位置情報は、アドレス(S,R)のクラスタがいっぱいになるまで、アドレス(S,R)のクラスタに格納される。
【0141】
特徴量フレームメモリ202は、以上のように、特徴量に対応する特徴量アドレスのクラスタに特徴量が格納しきれなくなったとき、空き領域の最も大きい他の特徴量アドレスのクラスタに画素位置情報を順に記憶する。同じ特徴量の画素の画素位置を示す画素位置情報を格納しているクラスタの位置は、順に、クラスタに格納されている、次の特徴量アドレスおよび次のクラスタ番号で特定される。
【0142】
このようにすることで、特徴量フレームメモリ202の記憶領域を有効に使用することができるようになり、予め、最大の画素位置情報の数であるフレームの画素の数と同じ画素位置情報を1つの特徴量アドレスに確保する必要がなくなる。すなわち、図11に構成を示す画像処理装置においては、全体として、画素の数に近い、より少ない記憶領域で、1フレームの画素に対応する画素位置情報を記憶することができるようになる。
【0143】
なお、特徴量フレームメモリ202を、バーストRAM(バーストDRAM、バーストSRAM、またはパイプライン・バーストSRAMなど)で構成し、クラスタを、4ワード乃至8ワード(1ワードは32ビット)とすれば、1つのアドレス情報を基に複数のデータを連続して転送する、いわゆるバースト転送により、1クラスタを単位として、より迅速に、書き込みまたは読み出すことができるようになる。
【0144】
特徴量フレームメモリ202は、特徴量フレームメモリ102の場合と同様に、カレントフレームFc(現在のフレーム)に対応する画素位置情報と、参照フレームFr(1つ前のフレーム)に対応する画素位置情報とをそれぞれに記憶し、それぞれ読み出すことができる。
【0145】
図11に戻り、参照画素位置検出部203は、特徴量抽出部103から供給された注目画素の特徴量、およびクラスタを単位として特徴量フレームメモリ202に記憶されている参照フレームFrの画素位置情報を基に、注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置を検出する。そして、参照画素位置検出部203は、検出された注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置から、動いた先が注目画素である参照フレームFrの画素の位置を選択する。そして、参照画素位置検出部203は、特徴量抽出部103から供給された注目画素の画素位置情報と参照フレームFrの選択された画素の画素位置とから、注目画素の位置に対応する位置の参照フレームFr上の画素を始点とし、注目画素の特徴量と同じ特徴量を有する参照フレームFrの選択された画素を終点とする動きベクトルを求めて、求めた動きベクトルを出力する。
【0146】
図14は、アドレス生成部201の構成の例を示すブロック図である。
【0147】
メモリ状態記憶部221は、アドレスを生成する時点における、特徴量フレームメモリ202の画素位置情報の記憶の状態を示すデータを記憶する。例えば、メモリ状態記憶部221は、特徴量フレームメモリ202の、1つの特徴量アドレスごとに、画素位置情報の記憶の状態を示すデータを記憶する。より具体的に説明すれば、メモリ状態記憶部221は、特徴量フレームメモリ202の、1つの特徴量アドレスごとに、その特徴量アドレスに対応する特徴量の画素の位置を示す画素位置情報の数、その特徴量アドレスに対応する特徴量の画素の位置を示す画素位置情報を格納しているクラスタの数、その特徴量アドレスに対応する、次の画素位置情報を格納しようとするクラスタに格納されている画素位置情報の数、その特徴量アドレスに対応する、次の画素位置情報を格納しようとするクラスタが配置されている特徴量アドレス、その特徴量アドレスに対応する、次の画素位置情報を格納しようとするクラスタが配置されているクラスタアドレス、およびその特徴量アドレスに対応する特徴量の画素の画素位置情報を格納するクラスタの最大数(クラスタの最大数Rから、他の特徴量アドレスに対応する特徴量の画素の画素位置情報を格納するクラスタの数を引き算した数)などを記憶する。
【0148】
例えば、メモリ状態記憶部221は、特徴量アドレス0に対応して、特徴量アドレス0に対応する特徴量の画素の位置を示す画素位置情報の数をMレジスタに格納し、特徴量アドレス0に対応する特徴量の画素の位置を示す画素位置情報を格納しているクラスタの数をIレジスタに格納し、特徴量アドレス0に対応する、次の画素位置情報を格納しようとするクラスタに格納されている画素位置情報の数をQレジスタに格納する。メモリ状態記憶部221は、特徴量アドレス0に対応して、特徴量アドレス0に対応する、次の画素位置情報を格納しようとするクラスタが配置されている特徴量アドレスを記憶先特徴量レジスタに格納し、特徴量アドレス0に対応する、次の画素位置情報を格納しようとするクラスタが配置されているクラスタアドレスをクラスタ現在位置レジスタに格納し、特徴量アドレス0に対応する特徴量の画素の画素位置情報を格納するクラスタの最大数をIMAXレジスタに格納する。
【0149】
メモリ状態記憶部221は、特徴量アドレス1乃至特徴量アドレスN−1のそれぞれに対応して、特徴量アドレス1乃至特徴量アドレスN−1のそれぞれに対応する特徴量の画素の位置を示す画素位置情報の数をMレジスタに格納し、特徴量アドレス1乃至特徴量アドレスN−1のそれぞれに対応する特徴量の画素の位置を示す画素位置情報を格納しているクラスタの数をIレジスタに格納し、特徴量アドレス1乃至特徴量アドレスN−1のそれぞれに対応する、次の画素位置情報を格納しようとするクラスタに格納されている画素位置情報の数をQレジスタに格納する。メモリ状態記憶部221は、特徴量アドレス1乃至特徴量アドレスN−1のそれぞれに対応して、特徴量アドレス1乃至特徴量アドレスN−1のそれぞれに対応する、次の画素位置情報を格納しようとするクラスタが配置されている特徴量アドレスを記憶先特徴量レジスタに格納し、特徴量アドレス1乃至特徴量アドレスN−1のそれぞれに対応する、次の画素位置情報を格納しようとするクラスタが配置されているクラスタアドレスをクラスタ現在位置レジスタに格納し、特徴量アドレス1乃至特徴量アドレスN−1のそれぞれに対応する特徴量の画素の画素位置情報を格納するクラスタの最大数をIMAXレジスタに格納する。
【0150】
判断部222は、メモリ状態記憶部221に記憶されている、特徴量フレームメモリ202の画素位置情報の記憶の状態を示すデータを基に、各特徴量アドレスに対応する特徴量毎の画素位置情報の数を求めて、各特徴量アドレスに対応する特徴量毎の画素位置情報の数を出力する。例えば、判断部222は、Mレジスタに格納されている、各特徴量アドレスに対応する特徴量の画素の位置を示す画素位置情報の数を、画素位置情報の数として出力する。
【0151】
判断部222は、メモリ状態記憶部221に記憶されている、特徴量フレームメモリ202の画素位置情報の記憶の状態を示すデータを基に、クラスタに格納される、次の特徴量アドレスおよび次のクラスタ番号を求めて、次の特徴量アドレスおよび次のクラスタ番号を出力する。例えば、判断部222は、記憶先特徴量レジスタに格納されている、次の画素位置情報を格納しようとするクラスタが配置されている特徴量アドレスを、次の特徴量アドレスとして出力し、クラスタ現在位置レジスタに格納に格納されている、次の画素位置情報を格納しようとするクラスタが配置されているクラスタアドレスを、次のクラスタ番号として出力する。
【0152】
アドレス算出部223は、メモリ状態記憶部221に記憶されている、特徴量フレームメモリ202の画素位置情報の記憶の状態を示すデータを基に、画素位置情報を格納するクラスタを指定するアドレスを生成して、生成したアドレスを出力する。
【0153】
図15は、図11に構成を示す画像処理装置による、動きベクトルの検出の処理を説明するフローチャートである。
【0154】
ステップS201において、特徴量抽出部101、アドレス生成部201、および特徴量フレームメモリ202は、参照フレームFrの画素位置情報の格納の処理を実行することにより、参照フレームFrの画素位置情報を記憶する。画素位置情報の格納の処理の詳細は、図16のフローチャートを参照して、後述する。
【0155】
ステップS202において、特徴量抽出部103および参照画素位置検出部203は、注目画素に対応する画素の位置の検出の処理を実行して、注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置を検出する。注目画素に対応する画素の位置の検出の処理の詳細は、図19のフローチャートを参照して、後述する。
【0156】
ステップS203およびステップS204の処理は、図8のステップS103およびステップS104の処理とそれぞれ同様なので、その説明は省略する。
【0157】
図16は、ステップS201の処理に対応する、画素位置情報の格納の処理を説明するフローチャートである。
【0158】
ステップS221およびステップS222の処理は、図9のステップS121およびステップS122の処理とそれぞれ同様なので、その説明は省略する。
【0159】
ステップS223において、アドレス生成部201は、メモリ状態記憶部221に記憶されているデータを初期化する。例えば、アドレス生成部201は、メモリ状態記憶部221のMレジスタ、Iレジスタ、およびQレジスタに0を設定し、記憶先特徴量レジスタに、対応する特徴量アドレスを設定し、IMAXレジスタに、Rを設定し、クラスタ現在位置レジスタに、0を設定する。
【0160】
ステップS225において、アドレス生成部201は、画素位置情報を格納するクラスタおよびクラスタ上の位置を示すアドレスを生成する、アドレスの生成の処理を実行する。アドレスの生成の処理の詳細は、図17および図18のフローチャートを参照して後述する。
【0161】
ステップS226において、アドレス生成部201は、特徴量に対応する画素位置情報の数を特徴量フレームメモリ202に書き込む。
【0162】
ステップS227において、特徴量フレームメモリ202は、ステップS225の処理で生成され、アドレス生成部201から供給されたアドレスを基に、画素位置情報を所定のクラスタに書き込む。また、特徴量フレームメモリ202は、アドレス生成部201から次の特徴量アドレスおよび次のクラスタ番号が供給されたとき、アドレス生成部201から供給された、次の特徴量アドレスおよび次のクラスタ番号を所定のクラスタ(前回、画素位置情報が記憶されたクラスタ)に記憶させる。
【0163】
ステップS228およびステップS229の処理は、図9のステップS128およびステップS129の処理とそれぞれ同様なので、その説明は省略する。
【0164】
次に、ステップS225の処理に対応する、アドレス生成の処理を図17および図18のフローチャートを参照して説明する。
【0165】
ステップS251において、判断部222は、メモリ状態記憶部221から、ステップS224の処理で算出された特徴量に対応する、Mレジスタ、Iレジスタ、Qレジスタ、記憶先特徴量レジスタ、IMAXレジスタ、およびクラスタ現在位置レジスタの値を読み出す。すなわち、判断部222は、メモリ状態記憶部221から、特徴量に対応する特徴量アドレスの、Mレジスタ、Iレジスタ、Qレジスタ、記憶先特徴量レジスタ、IMAXレジスタ、およびクラスタ現在位置レジスタの値を読み出す。
【0166】
ステップS252において、判断部222は、Qレジスタの値が、クラスタに格納できる画素位置情報の最大数に等しいか否かを判定し、Qレジスタの値が、クラスタに格納できる画素位置情報の最大数に等しくないと判定された場合、現在の格納先のクラスタにまだ空きがあるので、ステップS253に進み、現在の画像位置情報の格納先であるクラスタの画像位置情報の格納位置を示すQレジスタの値をインクリメントする。判断部222は、インクリメントされた値をメモリ状態記憶部221の特徴量に対応する特徴量アドレスのQレジスタに格納する。
【0167】
ステップS254において、判断部222は、特徴量に対応する画像位置情報の数を示すMレジスタの値をインクリメントする。判断部222は、インクリメントされた値をメモリ状態記憶部221の特徴量に対応する特徴量アドレスのMレジスタに格納する。
【0168】
ステップS255において、判断部222は、記憶先特徴量レジスタの値が、特徴量に等しいか否かを判定し、記憶先特徴量レジスタの値が、特徴量に等しいと判定された場合、特徴量に対応する特徴量アドレスで特定されるクラスタに画素位置情報が格納されるので、ステップS256に進み、アドレス算出部223は、特徴量、Iレジスタの値、およびステップS253の処理でインクリメントされたQレジスタの値から、画素位置情報を格納するアドレスを算出して、処理は終了する。例えば、特徴量がKであり、Iレジスタが3であり、インクリメントされたQレジスタの値が4であるとき、画素位置情報を格納するクラスタのアドレスとして、アドレス(K,3)が算出され、さらに、アドレス(K,3)のクラスタの先頭から4番目の画素位置情報を格納する領域を指定するアドレスが算出される。
【0169】
ステップS255において、記憶先特徴量レジスタの値が、特徴量に等しくないと判定された場合、特徴量に対応する特徴量アドレス以外の特徴量アドレスで特定されるクラスタに画素位置情報が格納されるので、ステップS257に進み、アドレス算出部223は、記憶先特徴量レジスタの値、クラスタ現在位置レジスタの値、およびステップS253の処理でインクリメントされたQレジスタの値から、画素位置情報を格納するアドレスを算出して、処理は終了する。例えば、記憶先特徴量レジスタの値がSであり、クラスタ現在位置レジスタの値が2であり、インクリメントされたQレジスタの値が3であるとき、画素位置情報を格納するクラスタのアドレスとして、アドレス(S,2)が算出され、さらに、アドレス(S,2)のクラスタの先頭から3番目の画素位置情報を格納する領域を指定するアドレスが算出される。
【0170】
ステップS252において、Qレジスタの値が、クラスタに格納できる画素位置情報の最大数に等しいと判定された場合、現在の格納先のクラスタに空きがないので、ステップS258に進み、判断部222は、Iレジスタの値が、IMAXレジスタの値以上であるか否かを判定する。
【0171】
ステップS258において、Iレジスタの値が、IMAXレジスタの値以上でないと判定された場合、特徴量に対応する特徴量アドレスで特定される領域にさらにクラスタを配置することができるので、ステップS259に進み、判断部222は、画素位置情報を格納しているクラスタの数を示すIレジスタの値をインクリメントする。判断部222は、インクリメントされた値をメモリ状態記憶部221の特徴量に対応する特徴量アドレスのIレジスタに格納する。
【0172】
ステップS260において、アドレス生成部201は、特徴量フレームメモリ202に、現在のクラスタの次にクラスタを生成させる。すなわち、アドレス生成部201は、特徴量フレームメモリ202に、特徴量に対応する特徴量アドレスと、インクリメントされたIレジスタの値をクラスタアドレスとする位置に、クラスタを生成させる。例えば、特徴量に対応する特徴量アドレスがKであり、インクリメントされたIレジスタの値がRであるとき、アドレス生成部201は、特徴量フレームメモリ202に、アドレス(K,R)の位置のクラスタを生成させる。
【0173】
ステップS261において、判断部222は、Qレジスタの値を初期化する。判断部222は、メモリ状態記憶部221の、特徴量に対応する特徴量アドレスのQレジスタの値を初期化する。例えば、判断部222は、特徴量に対応する特徴量アドレスがKであるとき、特徴量アドレスKに対応するQレジスタの値を1に設定する。
【0174】
ステップS262において、判断部222は、Mレジスタの値をインクリメントする。判断部222は、インクリメントしたMレジスタの値を、特徴量に対応する特徴量アドレスのMレジスタに設定する。
【0175】
ステップS263において、アドレス算出部223は、ステップS260の処理で生成したクラスタの最初の特徴量の指定するアドレスを生成する。例えば、例えば、特徴量に対応する特徴量アドレスがKであり、インクリメントされたIレジスタの値がRであり、初期化されたQレジスタの値が1であるとき、画素位置情報を格納するクラスタのアドレスとして、アドレス(K,R)が算出され、さらに、アドレス(K,R)のクラスタの先頭の画素位置情報を格納する領域を指定するアドレスが算出される。
【0176】
ステップS264において、アドレス算出部223は、特徴量に対応する特徴量アドレスを次の特徴量アドレスとして出力する。
【0177】
ステップS265において、アドレス算出部223は、ステップS259の処理でインクリメントされたIレジスタの値を次のクラスタ番号として出力し、処理は終了する。
【0178】
ステップS258において、Iレジスタの値が、IMAXレジスタの値以上であると判定された場合、特徴量に対応する特徴量アドレスで特定される領域にさらにクラスタを配置することができないので、他の特徴量アドレスで特定される領域にクラスタを配置するために、ステップS266に進み、判断部222は、クラスタの数が最小の特徴量アドレスを探索する。例えば、判断部222は、メモリ状態記憶部221の各特徴量アドレスに対応するIMAXレジスタの値と、Iレジスタの値との差が最も大きい特徴量アドレスを求める。
【0179】
ステップS267において、判断部222は、ステップS266の処理で探索された、クラスタの数が最小の特徴量アドレスを、特徴量に対応する特徴量アドレスで示される記憶先特徴量レジスタに格納する。例えば、特徴量に対応する特徴量アドレスがKであり、クラスタの数が最小の特徴量アドレスがSであるとき、判断部222は、特徴量アドレスKの記憶先特徴量レジスタにSを格納する。
【0180】
ステップS268において、アドレス生成部201は、特徴量フレームメモリ202に、クラスタの数が最小の特徴量アドレスで特定される領域の後ろ側(クラスタアドレスの値が大きい側)にクラスタを生成させる。すなわち、アドレス生成部201は、特徴量フレームメモリ202に、クラスタの数が最小の特徴量アドレスと、クラスタアドレスの最大値をクラスタアドレスとする位置に、クラスタがまだ配置されていないとき、クラスタの数が最小の特徴量アドレスと、クラスタアドレスの最大値をクラスタアドレスとする位置に、クラスタを生成させる。例えば、クラスタの数が最小の特徴量アドレスがSであり、クラスタアドレスの最大値がRであるとき、アドレス(S,R)の位置にクラスタがまだ配置されていない場合、アドレス生成部201は、特徴量フレームメモリ202に、アドレス(S,R)の位置のクラスタを生成させる。
【0181】
アドレス生成部201は、特徴量フレームメモリ202に、クラスタの数が最小の特徴量アドレスと、クラスタアドレスの最大値をクラスタアドレスとする位置に、クラスタがすでに配置されているとき、そのクラスタの前(クラスタアドレスの値が小さい側)にクラスタを生成させる。例えば、クラスタの数が最小の特徴量アドレスがSであり、クラスタアドレスの最大値がRであるとき、アドレス(S,R)の位置にすでにクラスタが配置されている場合、アドレス生成部201は、特徴量フレームメモリ202に、アドレス(S,R−1)の位置のクラスタを生成させる。
【0182】
このように、アドレス生成部201は、特徴量フレームメモリ202に、クラスタの数が最小、すなわち空いている領域が最大である領域の、クラスタアドレスの後ろ側にクラスタを生成させる。
【0183】
ステップS269において、判断部222は、ステップS268の処理で生成したクラスタのクラスタアドレスを、メモリ状態記憶部221の、特徴量に対応する特徴量アドレスのクラスタ現在位置レジスタに格納する。
【0184】
ステップS270において、判断部222は、メモリ状態記憶部221の、ステップS266の処理で探索された、クラスタの数が最小である特徴量アドレスのIMAXレジスタの値をデクリメントする。すなわち、クラスタの数が最小である特徴量アドレスの領域にステップS268の処理でクラスタが生成されたので、クラスタの数が最小である特徴量アドレスに対応する特徴量の画素の画素位置情報を格納するクラスタの最大数を格納しているIMAXレジスタの値から1が引き算される。
【0185】
ステップS271において、判断部222は、Qレジスタの値を初期化する。判断部222は、メモリ状態記憶部221の、特徴量に対応する特徴量アドレスのQレジスタの値を初期化する。例えば、判断部222は、特徴量に対応する特徴量アドレスがKであるとき、特徴量アドレスKに対応するQレジスタの値を1に設定する。
【0186】
ステップS272において、判断部222は、特徴量の画素の位置を示す画素位置情報を格納しているクラスタの数を示すIレジスタの値をインクリメントする。判断部222は、インクリメントされた値をメモリ状態記憶部221の特徴量に対応する特徴量アドレスのIレジスタに格納する。
【0187】
ステップS273において、判断部222は、Mレジスタの値をインクリメントする。判断部222は、インクリメントしたMレジスタの値を、特徴量に対応する特徴量アドレスのMレジスタに設定する。
【0188】
ステップS274において、アドレス算出部223は、ステップS268の処理で生成したクラスタの最初の特徴量の指定するアドレスを生成する。例えば、例えば、記憶先特徴量レジスタの値がSであり、クラスタ現在位置レジスタの値がRであり、初期化されたQレジスタの値が1であるとき、画素位置情報を格納するクラスタのアドレスとして、アドレス(S,R)が算出され、さらに、アドレス(S,R)のクラスタの先頭の画素位置情報を格納する領域を指定するアドレスが算出される。
【0189】
ステップS275において、アドレス算出部223は、記憶先特徴量レジスタの値を次の特徴量アドレスとして出力する。
【0190】
ステップS265において、アドレス算出部223は、クラスタ現在位置レジスタの値を次のクラスタ番号として出力し、処理は終了する。
【0191】
次に、ステップS202の処理に対応する、注目画素に対応する画素位置の検出の処理について図19のフローチャートを参照して説明する。
【0192】
ステップS301およびステップS302の処理は、図10のステップS141およびステップS142の処理とそれぞれ同様なので、その説明は省略する。
【0193】
ステップS303において、参照画素位置検出部203は、特徴量に対応する画素位置情報の読み出しの処理を実行する。特徴量に対応する画素位置情報の読み出しの処理の詳細は、図20のフローチャートを参照して説明する。
【0194】
ステップS304乃至ステップS306の処理は、図10のステップS144乃至ステップS146の処理とそれぞれ同様なので、その説明は省略する。
【0195】
ステップS307において、参照画素位置検出部203は、近傍の特徴量に対応する画素位置情報の読み出しの処理を実行する。
【0196】
ステップS308乃至ステップS313の処理は、図10のステップS148乃至ステップS153の処理とそれぞれ同様なので、その説明は省略する。
【0197】
図20は、ステップ303の処理に対応する、特徴量に対応する画素位置情報の読み出しの処理を説明するフローチャートである。
【0198】
ステップS331において、参照画素位置検出部203は、特徴量フレームメモリ202から、特徴量に対応する画素位置情報の数を読み出す。例えば、特徴量に対応する特徴量アドレスがKであるとき、参照画素位置検出部203は、特徴量フレームメモリ202の、特徴量アドレスKである画素位置情報の数Lを読み出す。
【0199】
最初に実行する、ステップS332において、参照画素位置検出部203は、特徴量フレームメモリ202から、特徴量に対応する特徴量アドレスで指定され、クラスタアドレスが1のクラスタを読み出す。例えば、特徴量に対応する特徴量アドレスがKであるとき、参照画素位置検出部203は、特徴量フレームメモリ202から、アドレス(K,1)のクラスタを読み出す。
【0200】
ステップS333において、参照画素位置検出部203は、ステップS332の処理で読み出されたクラスタに格納されている画素位置情報を読み出す。クラスタには、1または2以上の画素位置情報が格納されている。
【0201】
ステップS334において、参照画素位置検出部203は、読み出された画素位置情報の総和を計算する。例えば、最初のステップS334の処理では、読み出された画素位置情報の総和に、ステップS332の処理で読み出された画素位置情報の数が設定され、処理が繰り返されることにより実行される2回目以降のステップS334の処理では、既に計算された画素位置情報の総和に、ステップS332の処理で読み出された画素位置情報の数が加算される。
【0202】
ステップS335において、参照画素位置検出部203は、ステップS334の処理で計算された、読み出された画素位置情報の総和が、ステップS331の処理で読み出された、特徴量に対応する画素位置の数未満であるか否かを判定し、読み出された画素位置情報の総和が、特徴量に対応する画素位置の数未満であると判定された場合、まだ読み出されていない画素位置情報があるので、ステップS336に進み、ステップS332の処理で読み出されたクラスタから、次の特徴量アドレスおよび次のクラスタ番号を読み出し、手続きは、ステップS332に進む。
【0203】
2回目以降のステップS332においては、参照画素位置検出部203は、ステップS336の処理で読み出された、次の特徴量アドレスおよび次のクラスタ番号で指定されるクラスタを読み出し、それ以降の処理を繰り返す。例えば、参照画素位置検出部203は、次の特徴量アドレスがSであり、次のクラスタ番号がRであるとき、アドレス(S,R)のクラスタを読み出す。
【0204】
ステップS335において、読み出された画素位置情報の総和が、特徴量に対応する画素位置の数未満でないと判定された場合、特徴量に対応する全ての画素位置情報が読み出されたので、処理は終了する。
【0205】
なお、ステップS307の処理は、近傍の特徴量に対応する、図20のフローチャートで説明した処理と同様なのでその説明は省略する。
【0206】
以上のように、図11に構成を示す画像処理装置においては、より少ない記憶領域で、動きベクトルを検出することができるようになる。すなわち、図11に構成を示す画像処理装置においては、参照フレームFrについての特徴量に対応する画素位置情報を特徴量フレームメモリ202に格納したとき、特徴量フレームメモリ202にできる、画素位置情報が格納されていない空きの領域をより少なくすることができる。
【0207】
このように、第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出し、第1の画素の特徴量に対応する第1のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶を制御し、第1のフレームの第2の画素の特徴量を抽出し、記憶されている、第1の画素の位置を示す画素位置情報を基に、第2の画素の特徴量と同じ特徴量の第1の画素の位置の中から、動いた先が第2の画素である第1の画素の位置を選択するようにした場合には、動きベクトルを検出することができる。
【0208】
また、第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出し、第1の画素の特徴量に対応する第1のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶を制御し、第1のフレームの第2の画素の特徴量を抽出し、記憶されている、第1の画素の位置を示す画素位置情報を基に、第2の画素の特徴量と同じ特徴量の第1の画素の位置の中から、動いた先が第2の画素である第1の画素の位置を選択し、第1の画素の特徴量に対応する第1のアドレスで指定される領域に空きが無くなった場合、第2のアドレスで指定される領域への、第1の画素の位置を示す画素位置情報の記憶を制御すると共に、第1の画素の位置を示す画素位置情報を第2のアドレスで指定される領域に記憶することを表す情報の記憶を制御するようにした場合には、より少ない計算量で、より迅速に、より正確な動きベクトルを検出できる。
【0209】
次に、本発明に係る画像処理装置のさらに他の構成について説明する。図21は、本発明に係る画像処理装置のさらに他の実施の形態の構成を示すブロック図である。図6に示す場合と同様の部分には、同一の番号を付してあり、その説明は省略する。
【0210】
特徴量記憶部401は、特徴量抽出部101から供給された、参照画素の位置を示す画素位置情報、および参照画素に対応する特徴量を取得し、特徴量に対応する画素位置情報の数を記憶すると共に、ポインタにより次の画素位置を示すことにより画素位置情報を記憶する。
【0211】
図22は、特徴量記憶部401の構成の例を示すブロック図である。
【0212】
記憶制御部421は、インデックスメモリ422およびフレームメモリ423へのデータの書き込みおよび読み出しを制御することにより、特徴量記憶部401への、特徴量に対応する画素位置情報の数の記憶、および画素位置を示すポインタの記憶を制御する。
【0213】
インデックスメモリ422は、特徴量に対応した特徴量アドレス毎に、特徴量に対応する特徴量個数、すなわち画素位置情報の数、ポインタで順に示される画素位置情報のうちの、先頭の画素位置、およびポインタで順に示される画素位置情報のうちの、最後の画素位置を格納する。
【0214】
この場合のポインタで示される画素位置の順序は、特徴量抽出部101が参照画素を選択する順序に対応し、例えば、ラスタスキャン順である。ただし、この順序は、本発明を限定するものではなく、ジグザクスキャンの方向など、任意の順とすることができる。
【0215】
フレームメモリ423は、領域Dを単位として、特徴量に対応した画素の画素位置の繋がりを示すポインタを格納する。フレームメモリ423の領域Dの位置を特定するための1つの方向は、画像の空間方向の一方、例えば、空間方向x(画像の横方向)に対応し、フレームメモリ423の領域Dの位置を特定するための他の方向は、画像の空間方向の他方、例えば、空間方向y(画像の縦方向)に対応する。フレームメモリ423において、領域Dの位置は、フレームメモリ423上の2次元のアドレスで特定され、同時に、画面上の画素の画素位置を示す。言い換えれば、フレームメモリ423の1つの領域Dは、参照フレームFrの1つの画素に対応する。従って、フレームメモリ423には、画面上(1フレーム)の画素の数と同じ数の領域Dが、画面上(フレーム)の画素に対応して配置される。
【0216】
フレームメモリ423の各領域Dは、ポインタであって、自分自身に対応する画素の特徴量と同じ特徴量の次の画素に対応する領域Dの位置を示す情報を格納する。画素の位置と領域Dの位置とが対応しているので、フレームメモリ423の領域Dは、同じ特徴量の次の画素の位置を示す情報を格納しているとも言える。
【0217】
例えば、インデックスメモリ422に、特徴量アドレスKに対応する特徴量の先頭の画素の画素位置として、図中の領域Dの位置を示す画素位置が格納されているとき、特徴量アドレスKに対応する特徴量の最初の画素の画素位置は、領域Dの位置に対応する画素位置であることがわかる。
【0218】
フレームメモリ423の領域Dには、特徴量アドレスKに対応する特徴量の、次の画素の位置である、領域Dの位置を示す情報(アドレス)が格納される。領域Dの位置が画素の画素位置に対応しているので、フレームメモリ423の領域Dから、次の領域Dの位置を示す情報を読み出すことにより、特徴量アドレスKに対応する特徴量の2番目の画素の画素位置は、領域Dの位置に対応する画素位置であることがわかる。
【0219】
同様に、フレームメモリ423の領域Dには、特徴量アドレスKに対応する特徴量の、さらに次の画素の位置である、領域Dの位置を示す情報(アドレス)が格納される。領域Dの位置が画素の画素位置に対応しているので、フレームメモリ423の領域Dから、次の領域Dの位置を示す情報を読み出すことにより、特徴量アドレスKに対応する特徴量の3番目の画素の画素位置は、領域Dの位置に対応する画素位置であることがわかる。
【0220】
このように、特徴量アドレスがKであるインデックスメモリ422に格納されている、先頭の画素位置から、フレームメモリ423に格納されているポインタを順に辿ることにより、特徴量アドレスKに対応した特徴量の画素の画素位置を得ることができる。
【0221】
以上のように、フレームメモリ423には、画像の画素の位置に対応して記憶領域が配置され、各記憶領域には、所定の特徴量の次の画素位置を示す情報(ポインタ)が格納される。すなわち、参照フレームFrの画素の位置を示す位置の、フレームメモリ423の領域Dに、同じ特徴量の次の画素であって、参照フレームFrの画素の位置が順次記憶される。
【0222】
そして、インデックスメモリ422の先頭画素位置には、参照フレームFrの、同じ特徴量の画素の位置のうちの、最初の画素の位置が記憶される。
【0223】
従って、特徴量記憶部401は、インデックスメモリ422に格納されている、各特徴量アドレスに対応して、先頭の画素位置から、最後の画素位置まで、特徴量個数に対応した数の、フレームメモリ423に格納されているポインタを順に辿ることにより、各特徴量アドレスに対応した特徴量の画素の画素位置を得ることができる。
【0224】
図21に戻り、参照画素位置検出部402は、特徴量抽出部103から供給された注目画素の特徴量、および特徴量記憶部401に記憶されている情報を基に、注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置を検出する。そして、参照画素位置検出部402は、検出された注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置から、動いた先が注目画素である参照フレームFrの画素の位置を選択する。そして、参照画素位置検出部402は、特徴量抽出部103から供給された注目画素の画素位置情報と参照フレームFrの選択された画素の画素位置とから、注目画素の位置に対応する位置の参照フレームFr上の画素を始点とし、注目画素の特徴量と同じ特徴量を有する参照フレームFrの選択された画素を終点とする動きベクトルを求めて、求めた動きベクトルを出力する。
【0225】
図23は、インデックスメモリ422に格納される、特徴量に対応した特徴量アドレス毎のデータの例を示す図である。特徴量個数は、特徴量の数、すなわち特徴量アドレスに対応する特徴量の画素の画素位置情報の数である(特徴量アドレスに対応する特徴量の画素の数でもあり、領域Dの数でもある)。
【0226】
先頭画素位置は、特徴量アドレスに対応する特徴量の先頭の画素の画素位置である。すなわち、先頭画素位置は、特徴量アドレスに対応する特徴量の先頭の画素に対応する、フレームメモリ423の領域Dのアドレスを示す。
【0227】
終了画素位置は、特徴量アドレスに対応する特徴量の最後の画素の画素位置である。すなわち、終了画素位置は、特徴量アドレスに対応する特徴量の最後の画素に対応する、フレームメモリ423の領域Dのアドレスを示す。
【0228】
先頭画素位置で示される位置(アドレス)の、フレームメモリ423の領域Dに格納されている、次の位置から、領域Dを順に辿った場合、最終画素位置で示される位置の領域Dに到達する。最終画素位置で示される位置の領域Dには、例えば、ヌル(null)が格納される。
【0229】
図21に構成を示す動きベクトル検出の処理は、図8のフローチャートに示す処理と同様なので、その説明は省略する。
【0230】
画像処理装置が図21に示す構成を有する場合の、ステップS101の処理に対応する、画素位置情報の格納の処理を図24のフローチャートを参照して説明する。
【0231】
ステップS401において、記憶制御部421は、インデックスメモリ422およびフレームメモリ423に格納されているデータを初期化する。例えば、記憶制御部421は、特徴量個数を0に設定し、先頭画素位置および終了画素位置にヌル(null)を設定する。また、例えば、記憶制御部421は、フレームメモリ423の全ての領域Dにヌルを設定する。
【0232】
ステップS402において、特徴量抽出部101は、カウンタ変数nを初期化する。カウンタ変数nは、処理の対象となる画素の数を数えるための変数である。例えば、特徴量フレームメモリ102は、カウンタ変数nに1を設定する。
【0233】
ステップS403において、特徴量抽出部101は、参照フレームFrの画素の中からまだ参照画素とされていない画素を順に選択して参照画素とする。特徴量抽出部101は、参照画素に対応するブロックの特徴量を算出することにより、参照画素の特徴量を抽出し、参照画素の位置を示す画素位置情報と共に、抽出した特徴量を特徴量規約部401に供給する。例えば、特徴量抽出部101は、参照画素を中心とした、3×3のブロックに含まれる画素の画素値を所定の順に並べた値である特徴量を算出する。
【0234】
ステップS404において、記憶制御部421は、特徴量に対応する特徴量個数をインデックスメモリ422から読み出す。例えば、記憶制御部421は、特徴量に対応する特徴量アドレスの特徴量個数をインデックスメモリ422から読み出す。
【0235】
ステップS405において、記憶制御部421は、その特徴量に対応する先頭の画素であるか否か、すなわち、ステップS404の処理で読み出した、特徴量に対応する特徴量個数が0であるか否かを判定し、先頭の画素であると判定された場合、先頭の画素の画素位置をインデックス422に記憶する必要があるので、ステップS406に進み、インデックス422の、特徴量に対応する特徴量アドレスの先頭画素位置および終了画素位置に、ステップS403の処理で取得された画素位置情報を書き込み、ステップS407に進む。
【0236】
ステップS405において、先頭の画素でないと判定された場合、画素の画素位置をインデックス422の先頭画素位置に記憶する必要がないので、ステップS406の処理はスキップされ、手続きは、ステップS407に進む。
【0237】
ステップS407において、記憶制御部421は、ステップS404の処理で読み出した特徴量個数をインクリメントする。すなわち、記憶制御部421は、特徴量個数に1を加算する。
【0238】
ステップS408において、記憶制御部421は、ステップS407の処理でインクリメントした特徴量個数を、インデックスメモリ422の、特徴量に対応した特徴量アドレスの特徴量個数に書き込む。
【0239】
ステップS409において、記憶制御部421は、特徴量に対応する特徴量アドレスの終了画素位置を読み出し、フレームメモリ423の、終了画素位置で示される領域Dに、画素位置情報を書き込む。この場合において、終了画素位置が先頭画素位置と同じであるとき(先頭の画素であるとき)、記憶制御部421は、書き込みの対象となる領域Dが無いので、画素位置情報を書き込まない。
【0240】
ステップS410において、記憶制御部421は、インデックスメモリ422の、特徴量に対応する特徴量アドレスの終了画素位置に、画素位置情報を書き込む。
【0241】
ステップS409およびステップS410の処理により、最終画素位置、および、同じ特徴量の1つ前の画素に対応する領域Dに、今回の画素位置情報が格納されることになる。
【0242】
ステップS411において、特徴量抽出部101は、カウンタ変数nをインクリメントする。すなわち、特徴量抽出部101は、カウンタ変数nの値に1を加算する。
【0243】
ステップS412において、特徴量抽出部101は、カウンタ変数nの値が、フレームの画素の数に等しいか否かを判定し、カウンタ変数nの値が、フレームの画素の数に等しくないと判定された場合、まだ、参照画素とされていない画素がある、すなわち特徴量が抽出されていない画素があるので、ステップS403に戻り、上述した処理を繰り返し、次の特徴量を抽出して、特徴量記憶部401に格納する。
【0244】
ステップS412において、カウンタ変数nの値が、フレームの画素の数に等しいと判定された場合、フレームの全ての画素が参照画素とされ、フレームの全ての画素の特徴量が抽出されて、特徴量記憶部401に格納されたので、処理は終了する。
【0245】
画像処理装置が図21に示す構成を有する場合の、ステップS102の処理に対応する処理は、図19のフローチャートを参照して処理と同様なので、その説明は省略する。
【0246】
画像処理装置が図21に示す構成を有する場合の、ステップS303の処理に対応する、特徴量に対応する画素位置情報の読み出しの処理を図25のフローチャートを参照して説明する。
【0247】
ステップS431において、特徴量記憶部401の記憶制御部421は、インデックスメモリ422から、特徴量に対応する、特徴量個数、先頭画素位置、および終了画素位置の値を読み出す。例えば、参照画素位置検出部402から、特徴量が供給され、特徴量に対応する画素位置情報が要求された場合、記憶制御部421は、インデックスメモリ422から、特徴量に対応する特徴量アドレスの、特徴量個数、先頭画素位置、および終了画素位置を読み出す。
【0248】
ステップS432において、記憶制御部421は、ステップS431の処理で取得した特徴量個数が1以上であるか否かを判定し、特徴量個数が1以上であると判定された場合、特徴量に対応した画素位置情報が存在するので、ステップS433に進み、ステップS431の処理で取得された先頭画素位置を画素位置情報および参照画素の画素位置情報に設定する。先頭画素の位置を示す画素位置情報は、参照画素位置検出部402に供給される。
【0249】
ステップS434において、記憶制御部421は、特徴量個数が1であるか否かを判定し、特徴量個数が1であると判定された場合、先頭画素以外に、その特徴量の画素は無いので、処理は終了する。
【0250】
ステップS434において、特徴量個数が1でないと判定された場合、その特徴量の画素が2以上あるので、ステップS435に進み、記憶制御部421は、フレームメモリ423の、参照画素の画素位置情報で示される領域Dから、次の領域Dの位置を示す情報、すなわち同じ特徴量の次の画素の画素位置を示す画素位置情報を読み出す。
【0251】
ステップS436において、記憶制御部421は、ステップS435の処理で読み出した、画素位置情報を、次の画素位置情報および参照画素の画素位置情報に設定する。次の画素位置情報は、参照画素位置検出部402に出力される。
【0252】
ステップS437において、記憶制御部421は、ステップS436の処理で設定した、参照画素の画素位置情報で示される画素位置が、ステップS431の処理で読み出された終了画素位置の値に等しいか否かを判定し、参照画素の画素位置情報で示される画素位置が、終了画素位置の値に等しくないと判定された場合、特徴量に対応する画素位置情報に、まだ読み出されていない画素位置情報があるので、ステップS435に戻り、画素位置情報の読み出しの処理を繰り返す。
【0253】
ステップS437において、参照画素の画素位置情報で示される画素位置が、終了画素位置の値に等しいと判定された場合、特徴量に対応する画素位置情報の全てが読み出されたので、処理は終了する。
【0254】
ステップS432において、特徴量個数が1以上でないと判定された場合、特徴量に対応する画素は無く、画素位置情報がないので、処理は終了する。
【0255】
このように、図21に構成を示す画像処理装置においては、画素位置情報を格納する領域にほとんど空きを生じさせることなく、画素位置情報を記憶することができ、記憶された画素位置情報を読み出すことができる。図21に構成を示す画像処理装置においては、より少ない記憶領域で、確実に画素位置情報を記憶することができる。
【0256】
すなわち、第1のフレームに対して時間的に前のフレームである第2のフレームの画素の特徴量を抽出し、第2のフレームの画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、第2のフレームの画素の位置を順次記憶させるように記憶を制御すると共に、画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置の記憶を記憶させるように記憶を制御し、第1のフレームの画素の特徴量を抽出し、特徴量に対応するアドレスで指定される第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、第1のフレームの画素の特徴量と同じ特徴量の第2のフレームの画素の位置の中から、動いた先が第1のフレームの画素である第2のフレームの画素の位置を選択するようにした場合には、より少ない計算量で、より迅速に、より正確な動きベクトルを検出できる。
【0257】
図26は、本発明に係る画像処理装置のさらに他の実施の形態の構成を示すブロック図である。
【0258】
図11に示す場合と同様の部分には同一の番号を付してあり、その説明は省略する。
【0259】
特徴量ヒストグラム生成部601は、特徴量抽出部101から供給される特徴量および画素位置情報を基に、特徴量毎の画素の数を求めて、各特徴量毎の画素の数を示す特徴量分布情報をアドレス生成部602に供給する。また、特徴量ヒストグラム生成部601は、特徴量抽出部101から供給される特徴量および画素位置情報を、そのまま、アドレス生成部602に供給する。
【0260】
アドレス生成部602は、特徴量ヒストグラム生成部601から供給された特徴量分布情報を基に、クラスタの次のクラスタを特定する、次の特徴量アドレスおよび次のクラスタ番号を生成し、画素位置情報と共に、生成した次の特徴量アドレスおよび次のクラスタ番号を特徴量フレームメモリ202に供給する。
【0261】
また、アドレス生成部602は、特徴量ヒストグラム生成部601から供給された特徴量分布情報に含まれる、特徴量毎の画素位置情報の数を特徴量フレームメモリ202に供給する。
【0262】
画素値フレームメモリ603は、入力された画像をフレーム単位で記憶し、記憶している画像のフレームを、1フレームに対応する期間遅延したタイミングで、特徴量抽出部103に供給する。図26に構成を示す画像処理装置においては、特徴量ヒストグラム生成部601の処理に要する期間が、1フレームに対応する期間なので、画素値フレームメモリ603は、1フレームに対応する期間遅延させた画像を特徴量抽出部103に供給する。従って、特徴量フレームメモリ202に記憶されて、参照画素位置検出部203に供給される画素位置情報に対応するフレームと、特徴量抽出部103から出力される特徴量に対応するフレームとの関係は、図11に構成を示す画像処理装置の場合と同等になる。すなわち、特徴量フレームメモリ202は、参照フレームFr(1つ前のフレーム)に対応する画素位置情報を参照画素位置検出部203に供給し、特徴量抽出部103は、カレントフレームFc(現在のフレーム)に対応する特徴量および画素位置情報を参照画素位置検出部203に供給する。図26に構成を示す画像処理装置におけるカレントフレームFcは、入力される画像の現在のフレームに対して、1つ過去のフレームとなる。
【0263】
図27は、図26に構成を示す画像処理装置による、動きベクトルの検出の処理を説明するフローチャートである。
【0264】
ステップS601において、特徴量抽出部101および特徴量ヒストグラム生成部601は、特徴量の分布を求める。すなわち、特徴量抽出部101は、入力された画像のフレームの各画素に対応して、特徴量を抽出し、抽出された特徴量と共に、対象とする画素の位置を示す画素位置情報を特徴量ヒストグラム生成部601に供給する。特徴量ヒストグラム生成部601は、特徴量抽出部101から供給される特徴量および画素位置情報を基に、特徴量毎の画素の数を算出して、特徴量毎の画素の数を示す特徴量分布情報をアドレス生成部602に供給する。
【0265】
ステップS602において、アドレス生成部602は、特徴量フレームメモリ202のクラスタに、次の特徴量アドレスおよび次のクラスタ番号を設定する、アドレス組み替えの処理を実行する。すなわち、アドレス組み替えの処理により、特徴量毎に、画素位置情報を格納するためのクラスタが確保されることになる。アドレス組み替えの処理の詳細は、図28および図29のフローチャートを参照して、後述する。
【0266】
ステップS603において、特徴量フレームメモリ202は、画素位置情報の格納の処理を実行することにより、参照フレームFrの画素位置情報を記憶する。画素位置情報は、ステップS602の処理で確保された、特徴量毎に確保されたクラスタに格納される。ステップS603における画素位置情報の格納の処理の詳細は、図30のフローチャートを参照して、後述する。
【0267】
ステップS604乃至ステップS606の処理は、図15のステップS202乃至ステップS204の処理とそれぞれ同様なので、その説明は省略する。
【0268】
図28および図29のフローチャートを参照して、各クラスタに1つの画素位置情報を格納する場合の、ステップS602の処理に対応する、アドレスの組み替えの処理の例を説明する。
【0269】
なお、以下の処理を実行する前に、予め、特徴量フレームメモリ202に、配置可能な全てのクラスタが生成され、生成されたクラスタは初期化される。
【0270】
ステップS621において、アドレス生成部602は、特徴量アドレス変数nを初期化する。特徴量アドレス変数nは、特徴量アドレスを特定するための変数であり、例えば、特徴量アドレスが0乃至N−1のいずれかの値であるとき、特徴量アドレス変数nには、0乃至N−1のいずれかの値が設定される。例えば、特徴量アドレスが0乃至N−1のいずれかの値であるとき、ステップS621の処理において、特徴量アドレス変数nに、0が設定される。
【0271】
ステップS622において、アドレス生成部602は、特徴量アドレス変数nの値で示される、特徴量アドレスに対応する特徴量の画素位置情報の数hnが、最大格納数Mを超えているか否かを判定する。特徴量アドレスに対応する特徴量の画素位置情報の数hnは、特徴量分布情報に含まれる、各特徴量毎の画素の数と同じである。最大格納数Mは、図12において、行方向(横方向)に並ぶ、1行のクラスタに格納することができる画素位置情報の数をいう。この場合、各クラスタに1つの画素位置情報が格納されるので、最大格納数Mは、1行のクラスタの数に等しい。
【0272】
ステップS622において、特徴量アドレスに対応する特徴量の画素位置情報の数hnが、最大格納数Mを超えていないと判定された場合、1行のクラスタに、特徴量に対応する全ての画素位置情報を格納することができるので、ステップS623に進み、アドレス生成部602は、確定済領域数snに、特徴量アドレスnに対応する特徴量の画素位置情報の数hnを設定する。確定済領域数snは、特徴量アドレスnのクラスタのうち、画素位置情報を格納することが定まったクラスタの数を示す。
【0273】
ステップS624において、アドレス生成部602は、特徴量の画素位置情報の数hn個の、特徴量アドレス変数nで示される特徴量アドレスのクラスタを確保するように、次の特徴量アドレスおよび次のクラスタ番号を設定し、ステップS625に進む。例えば、特徴量の画素位置情報の数hnがLであるとき、アドレス生成部602は、アドレス(n,1)乃至アドレス(n,L−1)のクラスタのそれぞれに、アドレス(n,2)乃至アドレス(n,L)のクラスタのそれぞれを示す、次の特徴量アドレスおよび次のクラスタ番号を設定する。より具体的には、アドレス生成部602は、アドレス(n,1)のクラスタに、アドレス(n,2)のクラスタを示す、次の特徴量アドレスおよび次のクラスタ番号を設定し、アドレス(n,2)のクラスタに、アドレス(n,3)のクラスタを示す、次の特徴量アドレスおよび次のクラスタ番号を設定するように、順に、次のクラスタを指すように、L−1個のクラスタに次の特徴量アドレスおよび次のクラスタ番号を設定する。
【0274】
ステップS622において、特徴量アドレスに対応する特徴量の画素位置情報の数hnが、最大格納数Mを超えていると判定された場合、1行のクラスタに、特徴量に対応する全ての画素位置情報を格納することができないので(すなわち、他の特徴量アドレスのクラスタを必要とするので)、ステップS623およびステップS624の処理はスキップされ、手続きは、ステップS625に進む。
【0275】
ステップS625において、アドレス生成部602は、特徴量アドレス変数nの値が、N−1以上であるか否かを判定し、特徴量アドレス変数nの値が、N−1以上でないと判定された場合、まだ全ての特徴量アドレスについてステップS622乃至ステップS624の処理が終了していないので、ステップS626に進み、特徴量アドレス変数nをインクリメントして、ステップS622に戻り、次の特徴量アドレスについて、処理を繰り返す。
【0276】
ステップS625において、特徴量アドレス変数nの値が、N−1以上であると判定された場合、全ての特徴量アドレスについてステップS622乃至ステップS624の処理が終了したので、ステップS627に進む。
【0277】
ステップS627において、アドレス生成部602は、特徴量アドレス変数nを初期化する。ステップS628において、アドレス生成部602は、特徴量アドレス変数nの値で示される、特徴量アドレスに対応する特徴量の画素位置情報の数hnが、最大格納数Mを超えているか否かを判定し、特徴量の画素位置情報の数hnが、最大格納数Mを超えていると判定された場合、2行以上のクラスタに、特徴量に対応する画素位置情報を格納しなければならないので(他の特徴量アドレスのクラスタを必要とするので)、ステップS629に進み、特徴量アドレス変数nの確定済領域数snに、最大格納数Mを設定する。
【0278】
ステップS630において、アドレス生成部602は、特徴量の画素位置情報の数hn個の、特徴量アドレス変数nで示される特徴量アドレスの全てのクラスタを確保するように、次の特徴量アドレスおよび次のクラスタ番号を設定する。例えば、アドレス生成部602は、アドレス(n,1)乃至アドレス(n,M−1)のクラスタのそれぞれに、アドレス(n,2)乃至アドレス(n,M)のクラスタのそれぞれを示す、次の特徴量アドレスおよび次のクラスタ番号を設定する。
【0279】
ステップS631において、アドレス生成部602は、空いているクラスタの数が最大の特徴量アドレスmを求める。例えば、アドレス生成部602は、1つの特徴量アドレスで特定されるM個のクラスタのうち、次の特徴量アドレスおよび次のクラスタ番号で指定されていないクラスタの数、すなわち画素位置情報の格納が決定していないクラスタの数が最大である特徴量アドレスmを、特徴量アドレス0乃至N−1のうちから求める。
【0280】
ステップS632において、アドレス生成部602は、画素位置情報をさらに格納するのに必要なクラスタの数が、特徴量アドレスmの空きクラスタの数を超えているか否かを判定する。例えば、画素位置情報をさらに格納するのに必要なクラスタの数は、画素位置情報を格納するのに必要なクラスタの数は、hn−snで示される。特徴量アドレスmの空いているクラスタの数は、M−smで示される。ここで、確定済領域数smは、特徴量アドレスmのクラスタのうち、画素位置情報を格納することが定まっているクラスタの数を示す。
【0281】
ステップS632において、画素位置情報をさらに格納するのに必要なクラスタの数が、特徴量アドレスmの空きクラスタの数を超えていないと判定された場合、特徴量アドレスmの空きクラスタに残りの画素位置情報の全てを格納することができるので、ステップS633に進み、アドレス生成部602は、特徴量アドレスmの空いているクラスタのうち、画素位置情報を格納するのに必要な数のクラスタを確保するように、次の特徴量アドレスおよび次のクラスタ番号を設定する。
【0282】
ステップS634において、アドレス生成部602は、特徴量アドレスnの確定済領域数snを更新する。すなわち、アドレス生成部602は、特徴量アドレスnの確定済領域数snに、特徴量アドレスnに対応する特徴量の画素位置情報の数hnを設定する。
【0283】
ステップS635において、アドレス生成部602は、特徴量アドレスmの確定済領域数smを更新する。すなわち、アドレス生成部602は、特徴量アドレスmの確定済領域数smに、ステップS633の処理で、画素位置情報を格納することが定まったクラスタの数を加算する。
【0284】
ステップS636において、アドレス生成部602は、特徴量アドレス変数nの値が、N−1以上であるか否かを判定し、特徴量アドレス変数nの値が、N−1以上でないと判定された場合、まだ全ての特徴量アドレスについてステップS628乃至ステップS635の処理、またはステップS638乃至ステップS640の処理が終了していないので、ステップS637に進み、特徴量アドレス変数nをインクリメントして、ステップS628に戻り、次の特徴量アドレスについて、処理を繰り返す。
【0285】
ステップS636において、特徴量アドレス変数nの値が、N−1以上であると判定された場合、全ての特徴量アドレスについてステップS628乃至ステップS635の処理、またはステップS638乃至ステップS640の処理が終了したので、処理は終了する。
【0286】
ステップS632において、画素位置情報をさらに格納するのに必要なクラスタの数が、特徴量アドレスmの空きクラスタの数を超えていると判定された場合、特徴量アドレスmの空きクラスタに残りの画素位置情報の全てを格納することができないので、ステップS638に進み、特徴量アドレスmの空きクラスタの全てを確保するように、次の特徴量アドレスおよび次のクラスタ番号を設定する。
【0287】
ステップS639において、アドレス生成部602は、特徴量アドレスnの確定済領域数snを更新する。すなわち、アドレス生成部602は、特徴量アドレスnの確定済領域数snに、ステップS638の処理で、画素位置情報を格納することが定まったクラスタの数を加算する。
【0288】
ステップS640において、アドレス生成部602は、特徴量アドレスmの確定済領域数smを更新し、ステップS631に戻り、さらに空いているクラスタを確保する処理を繰り返す。すなわち、アドレス生成部602は、特徴量アドレスmの確定済領域数smに、ステップS638の処理で、画素位置情報を格納することが定まったクラスタの数を加算する。特徴量アドレスmの確定済領域数smには、最大格納数Mが設定されることになる。
【0289】
このように、アドレス組み替えの処理により、各特徴量ごとに、画素位置情報を格納するのに必要な領域が確保される。すなわち、クラスタに格納された次の特徴量アドレスおよび次のクラスタ番号により、各特徴量毎の画素位置情報が格納されるクラスタが決定されることになる。
【0290】
次に、図30のフローチャートを参照して、ステップS603の処理に対応する、画素位置情報の格納の処理を説明する。
【0291】
ステップS661乃至ステップS666の処理は、図9のステップS121乃至ステップS126の処理とそれぞれ同様なので、その説明は省略する。
【0292】
ステップS667において、特徴量フレームメモリ202は、各クラスタに格納されている、次の特徴量アドレスおよび次のクラスタ番号を基に、画素位置情報をクラスタに書き込む。すなわち、特徴量フレームメモリ202は、特徴量アドレスKに対応する特徴量の最初の画素位置情報を書き込むとき、アドレス(K,1)のクラスタに画素位置情報を書き込む。特徴量フレームメモリ202は、特徴量アドレスKに対応する特徴量の2番目以降の画素位置情報を書き込むとき、1つ前に画素位置情報を書き込んだクラスタに格納されている、次の特徴量アドレスおよび次のクラスタ番号でアドレスが特定されるクラスタに、画素位置情報を書き込む。
【0293】
ステップS668およびステップS669の処理は、それぞれ、図9のステップS128およびステップS129の処理と同様なので、その説明は省略する。
【0294】
このように、図26に構成を示す画像処理装置においては、空いている領域に画素位置情報を書き込むようにしたので、特徴量フレームメモリ202に、余分な領域を設ける必要がなく、必要最低限の記憶領域で特徴量フレームメモリ202を構成することができる。また、画素位置情報が確実に記憶されることになる。
【0295】
図31は、本発明に係る画像処理装置のさらに他の実施の形態の構成を示すブロック図である。図6に示す場合と同様の部分には同一の番号を付してあり、その説明は省略する。
【0296】
図31に構成を示す画像処理装置に入力された画像は、フレームメモリ701、ラインメモリ703、特徴量抽出部101、および特徴量抽出部103に供給される。
【0297】
フレームメモリ701は、例えば、時刻t1において、画像(画像データ)が入力されると、1フレーム分の情報を格納し、記憶する。さらに、フレームメモリ701は、次のタイミングとなる時刻t2において、次のフレームの画像が入力されると、新たに入力された時刻t2の1フレーム分の画像を格納し、記憶するとともに、時刻t1の1フレーム分の画像をサーチエリア生成部702に出力する。すなわち、フレームメモリ701は、1フレームに対応する期間遅延させて、1フレームを単位として、画素値をサーチエリア生成部702に供給する。
【0298】
また、ラインメモリ703は、時刻t2のタイミングで、入力されてきた1フレームの所定のラインの画像を格納し、時刻t2のタイミング内で、ブロック生成部704に出力する。
【0299】
すなわち、フレームメモリ701が、上述の時刻t2のタイミングで入力される(今現在の)1フレーム分の画像情報を格納し、記憶するとき、フレームメモリ701は、時刻t1(1タイミング過去の)の1フレーム分の画像の画素値をサーチエリア生成部702に出力する。ラインメモリ703は、時刻t2のタイミングで入力された(今現在の)1フレームのラインの画像の画素値をブロック生成部704に出力する。すなわち、ブロック生成部704に現在のフレームの画素値が供給され、サーチエリア生成部702には、現在のフレームの1つ前(過去)のフレームの画素の画素値が供給される。
【0300】
サーチエリア生成部702は、フレームメモリ701から供給された参照フレームFrからサーチエリアSRを生成し、サーチエリアSRの画素の画素値をマッチング部705に供給する。
【0301】
ブロック生成部704は、ラインメモリ703から供給されたカレントフレームFcから基準ブロックBbを生成し、基準ブロックBbの画素の画素値をマッチング部705に供給する。
【0302】
サーチエリア生成部702により生成される、参照フレームFrのサーチエリアSRは、例えば、横にNS(画素数)、縦にMS(画素数)の画素からなる。ブロック生成部704により生成される、カレントフレームFcの基準ブロックBbは、横にNB(画素数)、縦にMB(画素数)の画素からなる。サーチエリアSRは、基準ブロックBbに比較して大きな領域(画素数が多い)からなる。
【0303】
この場合、サーチエリアSRの縦および横の画素数を同じ数のLとしてもよい。
【0304】
マッチング部705は、サーチエリア生成部702から供給されたサーチエリアSRの画素の画素値と、ブロック生成部704から供給された基準ブロックBbの画素の画素値とを基に、サーチエリアSRの参照ブロックBrnを構成する各画素の画素値と、基準ブロックBbの各画素の画素値との差分絶対値和を算出して、参照ブロックBrnから基準ブロックBbへのベクトルと共に、差分絶対値和を誤差値として、誤差最小選択部706に供給する。
【0305】
誤差最小選択部706は、最小である誤差値に対応するベクトルを選択して、選択されたベクトルを動きベクトルとして参照画素位置検出部707に供給する。
【0306】
参照画素位置検出部707は、特徴量抽出部103から供給された注目画素の特徴量、および特徴量フレームメモリ102に記憶されている参照フレームFrの画素位置情報を基に、注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置を検出する。参照画素位置検出部707は、検出された注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置の中から、誤差最小選択部706から供給された動きベクトルを基に、誤差最小選択部706から供給された動きベクトルに対応したサーチエリア内に位置する画素であって、動いた先が注目画素である参照フレームFrの画素の位置を選択する。そして、参照画素位置検出部707は、注目画素の画素位置情報と参照フレームFrの選択された画素の画素位置とから、注目画素の位置に対応する位置の参照フレームFr上の画素を始点とし、注目画素の特徴量と同じ特徴量を有する参照フレームFrの選択された画素を終点とする動きベクトルを求めて、求めた動きベクトルを出力する。
【0307】
図32は、サーチエリア生成部702で生成されるサーチエリアSR、ブロック生成部704で生成される基準ブロックBb、マッチング部705で生成される参照ブロックBrn、および参照画素位置検出部707で生成されるサーチエリアの関係を説明する図である。
【0308】
図32において、サーチエリア生成部702で生成されるサーチエリアSRは、サーチエリア1と表し、参照画素位置検出部707で生成されるサーチエリアは、サーチエリア2と表す。
【0309】
サーチエリア生成部702で生成されるサーチエリアSRは、例えば、基準ブロックBbの中心画素を中心として、基準ブロックBbに比較して、より広い領域(より多数の画素)からなる。参照ブロックBrnは、サーチエリアSRに含まれる画素からなり、基準ブロックBbと同じ形状(画素の配置)からなる。すなわち、参照ブロックBrnに含まれる画素の数は、基準ブロックBbに含まれる画素の数と同一である。
【0310】
最小誤差選択部706は、基準ブロックBbと、参照ブロックBrnの各画素間の差分絶対値和のうち、差分絶対値和が最小となる参照ブロックBrnを選択する。最小誤差選択部706が参照画素位置検出部707に供給する動きベクトルは、注目画素に対応する参照フレームFr上の画素を始点とし、参照ブロックBrnの所定の画素を終点とするベクトルである。例えば、最小誤差選択部706は、基準ブロックBbの中心画素である注目画素に対応する参照フレームFr上の画素を始点とし、参照ブロックBrnの中心画素を終点とするベクトルを動きベクトルとして参照画素位置検出部707に供給する。
【0311】
フレームメモリ701乃至誤差最小選択部706は、代表点ブロックマッチングにより、荒く動きベクトルを検出するようにしてもよい。また、フレームメモリ701乃至誤差最小選択部706は、サーチエリアSR内のベクトルを間引くなど、より荒く動きベクトルを検出するようにしてもよい。この場合、フレームメモリ701乃至誤差最小選択部706における処理がより高速になり、画像処理装置全体として、より高速に動きベクトルを求めることができる。
【0312】
参照画素位置検出部707は、例えば、最小誤差選択部706で選択された参照ブロックBrnをサーチエリア2として、サーチエリア2内に位置する画素であって、注目画素の特徴量と同じ特徴量を有する、参照フレームFrの画素の画素位置を検出する。すなわち、サーチエリア2は、誤差最小選択部706から供給された動きベクトルにより指定される領域である。参照画素位置検出部707は、注目画素の画素位置情報とサーチエリア2内の画素の画素位置とから、注目画素の位置に対応する位置の参照フレームFr上の画素を始点とし、注目画素の特徴量と同じ特徴量を有するサーチエリア2内の画素を終点とする動きベクトルを求めて、求めた動きベクトルを出力する。
【0313】
例えば、参照画素位置検出部707は、注目画素の特徴量と同じ特徴量を有し、サーチエリア2内に位置する画素A、画素B、および画素Cのうち、いずれかの画素を選択し、選択された画素の位置と注目画素の位置とから動きベクトルを求める。
【0314】
図33は、図31に構成を示す画像処理装置による動きベクトルの検出の処理を説明するフローチャートである。
【0315】
ステップS701において、特徴量抽出部101および特徴量フレームメモリ102は、参照フレームFrの画素位置情報の格納の処理を実行する。ステップS701の処理は、ステップS101の処理と同様なので、その説明は省略する。
【0316】
ステップS702において、フレームメモリ701乃至誤差最小選択部706は、ブロックマッチングの処理を実行することにより、動きベクトルを検出する。ブロックマッチングの処理の詳細は、図34のフローチャートを参照して後述する。
【0317】
ステップS703において、特徴量抽出部103および参照画素位置検出部707は、注目画素に対応する画素の位置の検出の処理を実行する。ステップS703の注目画素に対応する画素の位置の検出の処理の詳細は、図35のフローチャートを参照して後述する。
【0318】
ステップS704およびステップS705の処理は、図8のステップS103およびステップS104の処理とそれぞれ同様なので、その説明は省略する。
【0319】
図34は、ステップS702に対応する、ブロックマッチングの処理を説明するフローチャートである。
【0320】
ステップS721において、サーチエリア生成部702は、カレントフレームFc上の注目画素P(i,j)の画素位置に応じて、サーチエリアSRを設定する。
【0321】
ステップS722において、誤差最小選択部706は、上述のように、基準ブロック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(画素数))に初期化される。
【0322】
ステップS723において、マッチング部705は、参照ブロックBrnをカウントするカウンタ変数nを1に初期化する。
【0323】
ステップS724において、誤差最小選択部706は、基準ブロックBbと参照ブロックBrnの画素間の差分絶対値和を代入するために用いる変数sumを0に初期化する。
【0324】
ステップS725において、マッチング部705は、基準ブロックBb(i,j)と参照ブロックBrn(i,j)の画素間の差分絶対値和(=sum)を求める。すなわち、基準ブロックBb(i,j)の各画素がP_Bb(i,j)、基準ブロックBrn(i,j)の各画素がP_Brn(i,j)としてそれぞれ示される場合、マッチング部705は、上述した式(1)で示される演算を実行して、基準ブロックBb(i,j)と参照ブロックBrn(i,j)の画素間の差分絶対値和を求める。
【0325】
ステップS726において、誤差最小選択部706は、変数minが変数sumよりも大きいか否かを判定し、例えば、変数minが変数sumよりも大きいと判定する場合、ステップS727において、変数minを変数sumに更新し、その時点でのカウンタnの値を動きベクトル番号として登録する。すなわち、今求めた差分絶対値和を示す変数sumが、最小値を示す変数minよりも小さいと言うことは、これまで演算したどの参照ブロックよりも、今演算している参照ブロックBrn(i,j)が基準ブロックBb(i,j)により類似したものであるとみなすことができるので、動きベクトルを求める際の候補とするため、その時点でのカウンタnが動きベクトル番号として登録される。また、ステップS726において、変数minが変数sumよりも大きくないと判定された場合、ステップS727の処理がスキップされる。
【0326】
ステップS728において、マッチング部705は、カウンタ変数nがサーチエリアSRの参照ブロックBrnの総数mであるか否か、すなわち、今の参照ブロックBrnがBrn=Brmであるか否かを判定し、例えば、総数mではないと判定した場合、ステップS729において、カウンタ変数nを1インクリメントし、その処理は、ステップS724に戻る。
【0327】
ステップS728において、カウンタ変数nがサーチエリア内の参照ブロックBrnの総数mである、すなわち、今の参照ブロックBrnがBrn=Brmであると判定された場合、ステップS730において、誤差最小選択部706は、登録されている動きベクトル番号に基づいて動きベクトルを出力する。すなわち、ステップS724乃至S729が繰り返されることにより、差分絶対値和が最小となる参照ブロックBrnに対応するカウンタ変数nが動きベクトル番号として登録されることになるので、誤差最小選択部706は、この動きベクトル番号に対応する参照ブロックBrnのL×L個の画素のうち、その中心となる参照画素Pn(i,j)を求め、カレントフレームFc上の注目画素P(i,j)に対応する参照フレームFr上の画素P’(i,j)を始点とし、参照画素Pn(i,j)を終点とするベクトルを、注目画素P(i,j)の動きベクトル(Vx,Vy)として求めて参照画素位置検出部707に出力する。
【0328】
次に、ステップS703に対応する、注目画素に対応する画素の位置の検出の処理を図35のフローチャートを参照して、説明する。
【0329】
ステップS751乃至ステップS753の処理は、図10のステップS141乃至ステップS143の処理とそれぞれ同様なので、その説明は省略する。
【0330】
ステップS754において、参照画素位置検出部707は、誤差最小選択部706から供給された動きベクトルを基に、ステップS753の処理で読み出された画素位置情報が示す画素の位置のうち、サーチエリア2内の画素の位置を選択する。
【0331】
ステップS755において、参照画素位置検出部707は、ステップS754の処理で選択された画素の位置のうち、注目画素に最も近い画素の位置を選択する。
【0332】
ステップS756乃至ステップS758の処理は、図10のステップS145乃至ステップS147の処理と同様なので、その説明は省略する。
【0333】
ステップS759において、参照画素位置検出部707は、誤差最小選択部706から供給された動きベクトルを基に、ステップS758の処理で読み出された画素位置情報が示す、近傍の特徴量に対応する画素位置情報で示される画素の位置のうち、サーチエリア2内の画素の位置を選択する。
【0334】
ステップS760において、参照画素位置検出部707は、ステップS759の処理で選択された画素の位置のうち、注目画素に最も近い画素の位置を選択する。
【0335】
ステップS761乃至ステップS765の処理は、図10のステップS149乃至ステップS153の処理と同様なので、その説明は省略する。
【0336】
図31に構成を示す画像処理装置においては、予めフルサーチブロックマッチングまたは代表点ブロックマッチングによって、候補となる動きベクトルを求めてから、その動きベクトルを基準として、特徴量を利用して、より正確な動きベクトルを求めるので、より少ない演算量で、より正確な動きベクトルを求めることができる。
【0337】
フレームメモリ701乃至誤差最小選択部706においては、サーチエリアSR内のベクトルを間引くなど、処理の高速化の手法を採用するようにしてもよい。
【0338】
特徴量抽出部101乃至特徴量抽出部103および参照画素位置検出部707においては、誤差最小選択部706から供給された動きベクトルを基に、サーチエリア2を決定するので、より高速に、より正確な動きベクトルを求めることができる。
【0339】
なお、ブロックマッチングに代えて、勾配法により動きベクトルを検出して、検出された動きベクトルを基にサーチエリア2を決定するようにしてもよい。
【0340】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0341】
図36は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU(Central Processing Unit)821は、ROM(Read Only Memory)822、または記憶部828に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)823には、CPU821が実行するプログラムやデータなどが適宜記憶される。これらのCPU821、ROM822、およびRAM823は、バス824により相互に接続されている。
【0342】
CPU821にはまた、バス824を介して入出力インタフェース825が接続されている。入出力インタフェース825には、キーボード、マウス、マイクロホンなどよりなる入力部826、ディスプレイ、スピーカなどよりなる出力部827が接続されている。CPU821は、入力部826から入力される指令に対応して各種の処理を実行する。そして、CPU821は、処理の結果得られた画像や音声等を出力部827に出力する。
【0343】
入出力インタフェース825に接続されている記憶部828は、例えばハードディスクなどで構成され、CPU821が実行するプログラムや各種のデータを記憶する。通信部829は、インターネット、その他のネットワークを介して外部の装置と通信する。この例の場合、通信部829は、入力画像を取得するか、または出力画像を出力する、外部とのインタフェースとして動作する。
【0344】
また、通信部829を介してプログラムを取得し、記憶部828に記憶してもよい。
【0345】
入出力インタフェース825に接続されているドライブ830は、磁気ディスク851、光ディスク852、光磁気ディスク853、或いは半導体メモリ854などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部828に転送され、記憶される。
【0346】
一連の処理をさせるプログラムが格納されている記録媒体は、図36に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク851(フレキシブルディスクを含む)、光ディスク852(CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク853(MD(Mini−Disc)(商標)を含む)、若しくは半導体メモリ854などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM822や、記憶部828に含まれるハードディスクなどで構成される。
【0347】
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【0348】
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0349】
【発明の効果】
以上のように、第1の本発明によれば、動きベクトルを検出することができる。
【0350】
また、第1の本発明によれば、より少ない計算量で、より迅速に、より正確な動きベクトルを検出できる。
【0351】
第2の本発明によれば、動きベクトルを検出することができる。
【0352】
また、第2の本発明によれば、より少ない計算量で、より迅速に、より正確な動きベクトルを検出できる。
【図面の簡単な説明】
【図1】ブロックマッチングアルゴリズムを採用した従来の画像処理装置の構成を示すブロック図である。
【図2】サーチエリアSRおよび基準ブロックBbを説明する図である。
【図3】ブロックマッチングアルゴリズムを説明する図である。
【図4】従来の動き検出の処理を説明するフローチャートである。
【図5】代表点ブロックマッチングにおける、サーチエリアSRおよび代表点ブロックを説明する図である。
【図6】本発明に係る画像処理装置の一実施の形態の構成を示すブロック図である。
【図7】特徴量フレームメモリ102が記憶する画素位置情報および画素位置情報の数の配置を説明する図である。
【図8】図6に構成を示す画像処理装置による、動きベクトルの検出の処理を説明するフローチャートである。
【図9】ステップS101に対応する、画素位置情報の格納の処理を説明するフローチャートである。
【図10】ステップS102の処理に対応する、注目画素に対応する画素位置の検出の処理を説明するフローチャートである。
【図11】本発明に係る画像処理装置の他の実施の形態の構成を示すブロック図である。
【図12】特徴量フレームメモリ202が記憶するクラスタおよび画素位置情報の数の配置を説明する図である。
【図13】クラスタの構成の例を説明する図である。
【図14】アドレス生成部201の構成の例を示すブロック図である。
【図15】図11に構成を示す画像処理装置による、動きベクトルの検出の処理を説明するフローチャートである。
【図16】ステップS201の処理に対応する、画素位置情報の格納の処理を説明するフローチャートである。
【図17】ステップS225の処理に対応する、アドレス生成の処理を説明するフローチャートである。
【図18】ステップS225の処理に対応する、アドレス生成の処理を説明するフローチャートである。
【図19】ステップS202の処理に対応する、注目画素に対応する画素位置の検出の処理を説明するフローチャートである。
【図20】ステップ303の処理に対応する、特徴量に対応する画素位置情報の読み出しの処理を説明するフローチャートである。
【図21】本発明に係る画像処理装置のさらに他の実施の形態の構成を示すブロック図である。
【図22】特徴量記憶部401の構成の例を示すブロック図である。
【図23】特徴量に対応した特徴量アドレス毎のインデックスメモリ422に格納されるデータの例を示す図である。
【図24】画像処理装置が図21に示す構成を有する場合の、画素位置情報の格納の処理を説明するフローチャートである。
【図25】画像処理装置が図21に示す構成を有する場合の、特徴量に対応する画素位置情報の読み出しの処理を説明するフローチャートである。
【図26】本発明に係る画像処理装置のさらに他の実施の形態の構成を示すブロック図である。
【図27】図26に構成を示す画像処理装置による、動きベクトルの検出の処理を説明するフローチャートである。
【図28】各クラスタに1つの画素位置情報を格納する場合の、アドレスの組み替えの処理を説明するフローチャートである。
【図29】各クラスタに1つの画素位置情報を格納する場合の、アドレスの組み替えの処理を説明するフローチャートである。
【図30】ステップS603の処理に対応する、画素位置情報の格納の処理を説明するフローチャートである。
【図31】本発明に係る画像処理装置のさらに他の実施の形態の構成を示すブロック図である。
【図32】サーチエリア生成部702で生成されるサーチエリアSR、ブロック生成部704で生成される基準ブロックBb、マッチング部705で生成される参照ブロックBrn、および参照画素位置検出部707で生成されるサーチエリアの関係を説明する図である。
【図33】図31に構成を示す画像処理装置による動きベクトルの検出の処理を説明するフローチャートである。
【図34】ステップS702に対応する、ブロックマッチングの処理を説明するフローチャートである。
【図35】ステップS703に対応する、注目画素に対応する画素の位置の検出の処理を説明するフローチャートである。
【図36】一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。
【符号の説明】
101 特徴量抽出部, 102 特徴量フレームメモリ, 103 特徴量抽出部, 104 参照画素位置検出部, 201 アドレス生成部, 202特徴量フレームメモリ, 203 参照画素位置検出部, 221 メモリ状態記憶部, 222 判断部, 223 アドレス算出部, 401 特徴量記憶部, 402 参照画素位置検出部, 421 記憶制御部, 422 インデックスメモリ, 423 フレームメモリ, 601 特徴量ヒストグラム生成部, 602 アドレス生成部, 603 画素値フレームメモリ, 701ラインメモリ, 702 サーチエリア生成部, 703 ラインメモリ, 704 ブロック生成部, 705 マッチング部, 706 誤差最小選択部, 707 参照画素位置検出部, 821 CPU, 822 ROM, 823 RAM, 828 記憶部, 851 磁気ディスク, 852 光ディスク, 853 光磁気ディスク, 854 半導体メモリ

Claims (13)

  1. 第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出する第1の特徴量抽出手段と、
    前記第1の画素の特徴量に対応する第1のアドレスで指定される領域への、前記第1の画素の位置を示す画素位置情報の記憶を制御する記憶制御手段と、
    前記第1のフレームの第2の画素の特徴量を抽出する第2の特徴量抽出手段と、
    記憶されている、前記第1の画素の位置を示す前記画素位置情報を基に、前記第2の画素の特徴量と同じ特徴量の前記第1の画素の位置の中から、動いた先が前記第2の画素である前記第1の画素の位置を選択する選択手段と
    を含み、
    前記記憶制御手段は、前記第1の画素の前記特徴量に対応する前記第1のアドレスで指定される前記領域に空きが無くなった場合、第2のアドレスで指定される領域への、前記第1の画素の位置を示す画素位置情報の記憶を制御すると共に、前記第1の画素の位置を示す前記画素位置情報を前記第2のアドレスで指定される前記領域に記憶することを表す情報の記憶を制御する
    ことを特徴とする画像処理装置。
  2. 選択された前記第1の画素の位置、および前記第2の画素の位置から、前記第2の画素の動きベクトルを算出する算出手段
    をさらに含むことを特徴とする請求項1に記載の画像処理装置。
  3. 前記選択手段は、記憶されている、前記第1の画素の位置を示す前記画素位置情報を基に、前記第2の画素の特徴量に近似する特徴量の前記第1の画素の位置の中から、動いた先が前記第2の画素である前記第1の画素の位置を選択する
    ことを特徴とする請求項1に記載の画像処理装置。
  4. 前記記憶制御手段は、前記第1の画素の前記特徴量に対応する前記第1のアドレスで指定される前記領域に空きが無くなった場合、最も多い数の空きの領域を指定する前記第2のアドレスを選択し、前記第2のアドレスで指定される領域への、前記第1の画素の位置を示す画素位置情報の記憶を制御する
    ことを特徴とする請求項1に記載の画像処理装置。
  5. 前記第2のフレームの全ての前記第1の画素について、特徴量毎の前記第1の画素の数を算出する算出手段をさらに含み、
    前記記憶制御手段は、特徴量毎の前記第1の画素の数を基に、前記第2のアドレスを予め選択する
    ことを特徴とする請求項1に記載の画像処理装置。
  6. 第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出する第1の特徴量抽出ステップと、
    前記第1の画素の特徴量に対応する第1のアドレスで指定される領域への、前記第1の画素の位置を示す画素位置情報の記憶を制御する記憶制御ステップと、前記第1のフレームの第2の画素の特徴量を抽出する第2の特徴量抽出ステップと、
    記憶されている、前記第1の画素の位置を示す前記画素位置情報を基に、前記第2の画素の特徴量と同じ特徴量の前記第1の画素の位置の中から、動いた先が前記第2の画素である前記第1の画素の位置を選択する選択ステップと
    を含み、
    前記記憶制御ステップにおいては、前記第1の画素の前記特徴量に対応する前記第1のアドレスで指定される前記領域に空きが無くなった場合、第2のアドレスで指定される領域への、前記第1の画素の位置を示す画素位置情報の記憶が制御されると共に、前記第1の画素の位置を示す前記画素位置情報を前記第2のアドレスで指定される前記領域に記憶することを表す情報の記憶が制御される
    ことを特徴とする画像処理方法。
  7. 第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出する第1の特徴量抽出ステップと、
    前記第1の画素の特徴量に対応する第1のアドレスで指定される領域への、前記第1の画素の位置を示す画素位置情報の記憶を制御する記憶制御ステップと、前記第1のフレームの第2の画素の特徴量を抽出する第2の特徴量抽出ステップと、
    記憶されている、前記第1の画素の位置を示す前記画素位置情報を基に、前記第2の画素の特徴量と同じ特徴量の前記第1の画素の位置の中から、動いた先が前記第2の画素である前記第1の画素の位置を選択する選択ステップと
    を含み、
    前記記憶制御ステップにおいては、前記第1の画素の前記特徴量に対応する前記第1のアドレスで指定される前記領域に空きが無くなった場合、第2のアドレスで指定される領域への、前記第1の画素の位置を示す画素位置情報の記憶が制御されると共に、前記第1の画素の位置を示す前記画素位置情報を前記第2のアドレスで指定される前記領域に記憶することを表す情報の記憶が制御される
    ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
  8. 第1のフレームに対して時間的に前のフレームである第2のフレームの第1の画素の特徴量を抽出する第1の特徴量抽出ステップと、
    前記第1の画素の特徴量に対応する第1のアドレスで指定される領域への、前記第1の画素の位置を示す画素位置情報の記憶を制御する記憶制御ステップと、前記第1のフレームの第2の画素の特徴量を抽出する第2の特徴量抽出ステップと、
    記憶されている、前記第1の画素の位置を示す前記画素位置情報を基に、前記第2の画素の特徴量と同じ特徴量の前記第1の画素の位置の中から、動いた先が前記第2の画素である前記第1の画素の位置を選択する選択ステップと
    をコンピュータに実行させ、
    前記記憶制御ステップにおいては、前記第1の画素の前記特徴量に対応する前記第1のアドレスで指定される前記領域に空きが無くなった場合、第2のアドレスで指定される領域への、前記第1の画素の位置を示す画素位置情報の記憶が制御されると共に、前記第1の画素の位置を示す前記画素位置情報を前記第2のアドレスで指定される前記領域に記憶することを表す情報の記憶が制御される
    ことを特徴とするプログラム。
  9. 第1のフレームに対して時間的に前のフレームである第2のフレームの画素の特徴量を抽出する第1の特徴量抽出手段と、
    前記第2のフレームの前記画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、前記第2のフレームの画素の位置を順次記憶させるように記憶を制御すると共に、前記画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置の記憶を記憶させるように記憶を制御する記憶制御手段と、
    前記第1のフレームの画素の特徴量を抽出する第2の特徴量抽出手段と、
    特徴量に対応するアドレスで指定される前記第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、前記第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、前記第1のフレームの画素の特徴量と同じ特徴量の前記第2のフレームの画素の位置の中から、動いた先が前記第1のフレームの画素である前記第2のフレームの画素の位置を選択する選択手段と
    を含むことを特徴とする画像処理装置。
  10. 選択された前記第2のフレームの画素の位置、および前記第1のフレームの画素の位置から、前記第1のフレームの画素の動きベクトルを算出する算出手段
    をさらに含むことを特徴とする請求項9に記載の画像処理装置。
  11. 第1のフレームに対して過去のフレームである第2のフレームの画素の特徴量を抽出する第1の特徴量抽出ステップと、
    前記第2のフレームの前記画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、前記第2のフレームの画素の位置を順次記憶させるように記憶を制御すると共に、前記画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置の記憶を記憶させるように記憶を制御する記憶制御ステップと、
    前記第1のフレームの画素の特徴量を抽出する第2の特徴量抽出ステップと、特徴量に対応するアドレスで指定される前記第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、前記第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、前記第1のフレームの画素の特徴量と同じ特徴量の前記第2のフレームの画素の位置の中から、動いた先が前記第1のフレームの画素である前記第2のフレームの画素の位置を選択する選択ステップと
    を含むことを特徴とする画像処理方法。
  12. 第1のフレームに対して過去のフレームである第2のフレームの画素の特徴量を抽出する第1の特徴量抽出ステップと、
    前記第2のフレームの前記画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、前記第2のフレームの画素の位置を順次記憶させるように記憶を制御すると共に、前記画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置の記憶を記憶させるように記憶を制御する記憶制御ステップと、
    前記第1のフレームの画素の特徴量を抽出する第2の特徴量抽出ステップと、特徴量に対応するアドレスで指定される前記第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、前記第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、前記第1のフレームの画素の特徴量と同じ特徴量の前記第2のフレームの画素の位置の中から、動いた先が前記第1のフレームの画素である前記第2のフレームの画素の位置を選択する選択ステップと
    を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
  13. 第1のフレームに対して過去のフレームである第2のフレームの画素の特徴量を抽出する第1の特徴量抽出ステップと、
    前記第2のフレームの前記画素の位置を示す位置の第1の領域に、同じ特徴量の次の画素であって、前記第2のフレームの画素の位置を順次記憶させるように記憶を制御すると共に、前記画素の特徴量に対応するアドレスで指定される第2の領域に、同じ特徴量の画素の位置のうちの、最初の画素の位置の記憶を記憶させるように記憶を制御する記憶制御ステップと、
    前記第1のフレームの画素の特徴量を抽出する第2の特徴量抽出ステップと、特徴量に対応するアドレスで指定される前記第2の領域に記憶されている、同じ特徴量の画素の位置のうち、最初の画素の位置、前記第1の領域に記憶されている同じ特徴量の次の画素の位置、および画素の位置を示す第1の領域の位置を基に、前記第1のフレームの画素の特徴量と同じ特徴量の前記第2のフレームの画素の位置の中から、動いた先が前記第1のフレームの画素である前記第2のフレームの画素の位置を選択する選択ステップと
    をコンピュータに実行させることを特徴とするプログラム。
JP2002296678A 2002-10-09 2002-10-09 画像処理装置および方法、記録媒体、並びにプログラム Expired - Fee Related JP4218298B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2004134993A true JP2004134993A (ja) 2004-04-30
JP4218298B2 JP4218298B2 (ja) 2009-02-04

Family

ID=32286588

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4218298B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142541B2 (en) 2016-03-23 2018-11-27 Canon Kabushiki Kaisha Image processing apparatus, imaging apparatus, and control method of image processing apparatus
US10867389B2 (en) 2017-06-28 2020-12-15 Canon Kabushiki Kaisha Image processing apparatus, image pickup apparatus, method for controlling image processing apparatus and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142541B2 (en) 2016-03-23 2018-11-27 Canon Kabushiki Kaisha Image processing apparatus, imaging apparatus, and control method of image processing apparatus
US10867389B2 (en) 2017-06-28 2020-12-15 Canon Kabushiki Kaisha Image processing apparatus, image pickup apparatus, method for controlling image processing apparatus and storage medium

Also Published As

Publication number Publication date
JP4218298B2 (ja) 2009-02-04

Similar Documents

Publication Publication Date Title
US8970580B2 (en) Method, apparatus and computer-readable medium rendering three-dimensional (3D) graphics
CN106203619B (zh) 数据优化的神经网络遍历
US20120075433A1 (en) Efficient information presentation for augmented reality
KR102315311B1 (ko) 객체 검출 모델의 학습 방법 및 객체 검출 모델이 실행되는 객체 검출 장치
JP2006094494A (ja) グラフィックス処理装置を使用した加速ビデオ符号化
KR20020067514A (ko) 이미지 매칭
KR20120122957A (ko) 네비게이션 장치, 고도 좌표를 결정하는 방법 및 데이터베이스를 생성하는 방법
US20160239597A1 (en) Apparatus and method for performing finite element computation
US11189096B2 (en) Apparatus, system and method for data generation
CN116030180B (zh) 辐照度缓存光照计算方法及装置、存储介质、计算机设备
JP2015146181A (ja) 3dシーンの幾何学図形的配列画像を処理するための方法および装置
US20080117212A1 (en) Method, medium and system rendering 3-dimensional graphics using a multi-pipeline
CN111047682A (zh) 一种三维车道模型生成方法及系统
JP2020149611A (ja) 情報処理装置および蓄積画像選択方法
KR101508388B1 (ko) 밉맵 생성 장치 및 방법
Lee et al. Geometry splitting: an acceleration technique of quadtree-based terrain rendering using GPU
JP4218298B2 (ja) 画像処理装置および方法、記録媒体、並びにプログラム
CN112509025A (zh) 一种基于三维欧氏距离的岩石空间结构距离图的计算方法
JP4022917B2 (ja) 動きベクトル検出装置および方法、記録媒体、並びにプログラム
CN103247077A (zh) 一种基于多顶点对处理的三维模型边折叠简化的方法
US20230384117A1 (en) Method, data processing apparatus and computer program product for generating map data
Masood et al. A novel method for adaptive terrain rendering using memory-efficient tessellation codes for virtual globes
Amiraghdam et al. LOOPS: LOcally Optimized Polygon Simplification
CN116883575B (zh) 建筑群渲染方法、装置、计算机设备和存储介质
KR102504007B1 (ko) 분할 이미지를 통해 컨텍스트 벡터를 생성하는 컨텍스트 벡터 추출 모듈 및 이의 동작 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080926

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

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

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees