JP2004078862A - Image processor and image processing method - Google Patents

Image processor and image processing method Download PDF

Info

Publication number
JP2004078862A
JP2004078862A JP2002274058A JP2002274058A JP2004078862A JP 2004078862 A JP2004078862 A JP 2004078862A JP 2002274058 A JP2002274058 A JP 2002274058A JP 2002274058 A JP2002274058 A JP 2002274058A JP 2004078862 A JP2004078862 A JP 2004078862A
Authority
JP
Japan
Prior art keywords
pixel
difference value
stored
sum
image processing
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
JP2002274058A
Other languages
Japanese (ja)
Other versions
JP2004078862A5 (en
JP3941644B2 (en
Inventor
Tetsujiro Kondo
近藤 哲二郎
Juichi Shiraki
白木 寿一
Akihiro Okumura
奥村 明弘
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 JP2002274058A priority Critical patent/JP3941644B2/en
Priority to TW092122124A priority patent/TWI260509B/en
Priority to KR1020030056461A priority patent/KR101014637B1/en
Priority to US10/640,614 priority patent/US7522748B2/en
Priority to EP03018473A priority patent/EP1394744A3/en
Priority to CN031545289A priority patent/CN100407232C/en
Publication of JP2004078862A publication Critical patent/JP2004078862A/en
Publication of JP2004078862A5 publication Critical patent/JP2004078862A5/ja
Application granted granted Critical
Publication of JP3941644B2 publication Critical patent/JP3941644B2/en
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

<P>PROBLEM TO BE SOLVED: To provide an image processor and an image processing method for calculating a motion vector by a little calculation quantity. <P>SOLUTION: This image processor is provided with a frame memory for storing first and second image data, a memory 2 including a plurality of elements 20 and a control part. The elements 20 are provided with a picture element 21-1 for storing a first picture element value of a first picture element of the first image data; a picture element 21-2 for storing a second picture element value of a second picture element of the second image data; a minimum picture element difference storage part 22 for storing a first difference value; a motion vector storage part 23 for storing phase information; a comparing-renewing part 26 for outputting renewal information according to renewal by renewing a second difference value as the first difference value according to a comparing result, by comparing the first difference value stored in the minimum picture element difference storage part 22 with the second difference value of a difference between the first picture element and the second picture element; and a renewing part 27 for renewing the phase information according to the renewal information. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、例えば、画像データに基づいて動きベクトルを生成する画像処理装置および画像処理方法に関するものである。
【0002】
【従来の技術】
従来より、画像のフレーム間での動きベクトルを検出する手法として、ブロックマッチングが知られている。
【0003】
図1は一般的な画像処理装置を示す図である。図2は図1に示した一般的な画像処理装置の動作を示すフローチャートである。
図1,2を参照しながら、ブロックマッチングについて説明する。
【0004】
ブロックマッチングとは、ある時間T−1における画像中のあるブロックが、次の時間Tにどの位置に動いたかを示す動きベクトルを求めるものである。
【0005】
例えば、画像処理装置1sは、図1に示すように、フレームメモリ3s−T、フレームメモリ3s−T−1、探索範囲メモリms、参照ブロックメモリmr、位相ブロックメモリmp、演算部pc、評価テーブルメモリmv、および最小値探索部psを有する。
【0006】
画像処理装置1sは、時間Tにおいて探索範囲を設定し、その範囲内で時刻T−1の参照ブロックと探索範囲内の各位相(位置)におけるブロックの内の画素のマッチングを行い、最もマッチングの近い位相を、時刻Tでのブロックの位置とする。
そこで、2フレーム間でのブロックのシフト量を動きベクトルとする。
【0007】
図2を参照しながら、画像処理装置1sの動作を説明する。
連続する入力画像が時間的に蓄えられているフレームメモリTとフレームメモリT−1から、動きベクトルを求めたい位置での探索範囲と参照ブロックbrをそれぞれ読み出す(ST1,ST2)。
それらは探索範囲メモリmsおよび参照ブロックメモリmrに蓄えられる(ST3)。
【0008】
次に、探索範囲メモリmsから各位相ごとに参照ブロックbrと同じ形状と大きさを持つブロックを読み出す。これを位相ブロックbpとする。
位相は、後述する評価テーブルへの記録が終わった時点で順次更新され、そのたびにその位相での位相ブロックbpが読み出される(ST4)。
【0009】
読み出された位相ブロックbpは、例えば図1に示すように、位相ブロックメモリmpに蓄えられる。
【0010】
図3は、位相シフトによる位相ブロックの読み出しから、評価テーブルメモリmrへの記録までの動作の一具体例を説明するための図である。図3(a)は位相シフト前の状態を示す図、図3(b)は位相シフト後の状態を示す図である。図3を参照しながら評価テーブルメモリへの記録までの動作を説明する。
参照ブロックサイズを3×3画素、探索範囲を5×5画素としている。
【0011】
ここで、位相1から、位相2にシフトしたときに読み出される位相ブロックbpが水平方向に1画素ずれた位置のものとなっている。例えば更新による位相のシフト量は1画素である。
【0012】
次に演算部pcにより、参照ブロックbrと位相ブロックbpの間での対応する画素ごとの差分絶対値を演算し、それらの値の差分絶対値総和Sを求める。
【0013】
【数1】

Figure 2004078862
【0014】
差分絶対値総和Sは、参照ブロックbrの内の画素の画素値kと、対応する位相ブロックbpの内の画素の画素値kを用いて、例えば、数式(1)により計算される(ST5)。
【0015】
次に、その差分絶対値総和Sを、評価テーブルに記憶させる(ST6)。
具体的には、図1のように、その差分絶対値総和Sを評価テーブルメモリmvに記憶する。評価テーブルでは、読み出される位相ブロックに対応した位相ごとに、差分絶対値総和Sが記憶される。
【0016】
一般的な画像処理装置1sは、図3に示したように、例えば位相1から位相2にシフトした場合に、そのシフトに応じて評価テーブルに記憶させる位置もシフトする。
【0017】
探索範囲内の全ての、位相ブロックbpの読み出しから評価テーブルへの記録が終了すると(ST7)、最小値探索部psでは、評価テーブル内の最小値を探索する(ST8)。
【0018】
一方、ステップST7において、すべての位相の評価値テーブルが記録していないと判別されると、ステップST3の処理に戻る。
それは、参照ブロックbrと最も近い探索範囲内のブロックを探索していることになる。
【0019】
上述したように、評価テーブルでは読み出される位相ブロックbpに対応した位相ごとに差分絶対値総和Sが記録されている。したがって、評価テーブル内で最小値が分かれば、探索範囲の内の参照ブロックbrに対応するブロックの位相が分かる。その位相の情報を動きベクトルとして出力する。
【0020】
【発明が解決しようとする課題】
上述した一般的な画像処理装置の問題点として、以下の3点が挙げられる。
1.位相ブロック、評価テーブルの値を一旦、格納する手順が必要である。そのためのメモリを回路の中に用意しなければならないので、回路のレイアウトが複雑になる。また、例えば、1フレーム内で多数の位置において動きベクトルを算出したい場合、その位置ごとに順を追って動きベクトルを探索する必要があり時間的なロスが生じる。
2.評価テーブル内の全ての値が記録されてはじめて、最小値の探索が始まる。そのため、各位相ブロックの読み出しと、最小値探索の2回分位相の更新をする必要がある。
3.この場合の出力は動きベクトルであり、例えば、動きベクトルから抽出される画素を読み出す処理を行う場合、動きベクトルからその画素を抽出するという別の手順が必要になる。
【0021】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、少ない計算量で動きベクトルを算出可能な画像処理装置および画像処理方法を提供することである。
【0022】
【課題を解決するための手段】
前記目的を達成するために、第1の発明の画像処理装置は、第1の画像データおよび第2の画像データのマッチングを行う画像処理装置であって、マッチングデータを含む画像素子を少なくとも1つ有し、前記画像素子は、前記第1の画像データの内の参照用の第1の画素を記憶する第1の画素記憶手段と、前記第1の画素に応じて、前記第2の画像データの所定の探索範囲の内の第2の画素を記憶する第2の画素記憶手段と、更新可能な第1の差分値を記憶する差分値記憶手段と、更新可能な、第1の画素と第2の画素との位相に関する位相情報を記憶する位相情報記憶手段と、前記第1の画素記憶手段に記憶されている第1の画素と前記第2の画素記憶手段に記憶されている第2の画素との第2の差分値と、前記差分値記憶手段に記憶されている第1の差分値とを比較し、前記比較の結果に応じて、前記差分値記憶手段に記憶されている第1の差分値を更新する差分値更新手段とを有する。
【0023】
第1の発明の画像処理装置によれば、第1の画像データおよび第2の画像データのマッチングを行い、マッチングデータを含む画像素子を少なくとも1つ有する。
画像素子において、第1の画素記憶手段では、前記第1の画像データの内の参照用の第1の画素が記憶される。
第2の画素記憶手段では、前記第1の画素に応じて、前記第2の画像データの所定の探索範囲の内の第2の画素が記憶される。
差分値記憶手段では、更新可能な第1の差分値が記憶される。
位相情報記憶手段では、更新可能な、第1の画素と第2の画素との位相に関する位相情報が記憶される。
差分値更新手段では、前記第1の画素記憶手段に記憶されている第1の画素と前記第2の画素記憶手段に記憶されている第2の画素との第2の差分値と、前記差分値記憶手段に記憶されている第1の差分値とを比較し、前記比較の結果に応じて、前記差分値記憶手段に記憶されている第1の差分値が更新される。
【0024】
さらに、前記目的を達成するために、第2の発明の画像処理装置は、第1の画像データおよび第2の画像データのマッチングを行う画像処理装置であって、マッチングデータを含む複数の画像素子を有し、前記画像素子は、前記第1の画像データの内の参照用の第1の画素を記憶する第1の画素記憶手段と、前記第1の画素に応じて、前記第2の画像データの所定の探索範囲の内の第2の画素を記憶する第2の画素記憶手段と、前記第1の画素と前記第2の画素の差分値を記憶する差分値記憶手段と、更新可能な、隣接する他の画像素子の差分値と前記差分値記憶手段に記憶されている差分値との総和である第1の総和差分値を記憶する総和差分値記憶手段と、更新可能な、第1の画素と第2の画素との位相に関する位相情報を記憶する位相情報記憶手段と、前記差分値記憶手段に記憶されている差分値と、前記隣接する他の画像素子に記憶されている差分値とを加算し第2の総和差分値を出力する加算手段と、前記総和差分値記憶手段に記憶されている第1の総和差分値と、前記加算手段から出力された第2の総和差分値とを比較し、前記比較の結果に応じて、前記総和差分値記憶手段に記憶して第1の総和差分値を更新する総和差分値更新手段とを有する。
【0025】
さらに、前記目的を達成するために、第3の発明の画像処理装置は、時間的に異なる複数の画像データのマッチングを行う画像処理装置であって、マッチングデータを含む複数の画像素子を有し、前記画像素子は、前記時間的に異なる前記画像データそれぞれの画素を記憶する複数の第1の画素記憶手段と、要求に応じて更新可能な、前記第1の画素値記憶手段に記憶されている前記画素それぞれを記憶する複数の第2の画素記憶手段と、前記複数の第1の画素記憶手段に記憶されている前記画素の差分値の総和である時間総和差分値を記憶する時間総和差分値記憶手段と、前記時間総和差分値と、隣接する他の素子の時間総和差分値との総和である第1の総和差分値を記憶する総和差分値記憶手段と、前記時間総和差分値記憶手段と、前記所定の領域の内の他の画像素子の時間総和差分値記憶手段とに記憶されている時間総和差分値を加算し第2の総和差分値を出力する加算手段と、前記総和差分値記憶手段に記憶されている第1の総和差分値と、前記加算手段から出力された第2の総和差分値とを比較し、前記比較の結果に応じて、前記総和差分値記憶手段に記憶されている第1の総和差分値を更新する総和差分値更新手段とを有する。
【0026】
さらに、前記目的を達成するために、第4の発明の画像処理方法は、第1の画像データおよび第2の画像データのマッチングを行い、マッチングデータを含む少なくとも1つの画像素子を有する画像処理装置の画像処理方法であって、前記画像素子は、前記第1の画像データの内の参照用の第1の画素を記憶し、前記第1の画素に応じて、前記第2の画像データの所定の探索範囲の内の第2の画素を記憶し、更新可能な、第1の画素と第2の画素との位相に関する位相情報を記憶し、前記記憶している第1の画素と前記第2の画素との第2の差分値と、所定の第1の差分値とを比較し、前記比較の結果に応じて、前記第1の差分値を更新する。
【0027】
さらに、前記目的を達成するために、第5の発明の画像処理方法は、第1の画像データおよび第2の画像データのマッチングを行い、マッチングデータを含む複数の画像素子を有する画像処理装置の画像処理方法であって、前記画像素子は、前記第1の画像データの内の参照用の第1の画素を記憶し、前記第1の画素に応じて、前記第2の画像データの所定の探索範囲の内の第2の画素を記憶し、更新可能な第1の差分値を記憶し、更新可能な、隣接する他の画像素子の差分値と前記記憶している差分値との総和である第1の総和差分値を記憶し、更新可能な、第1の画素と第2の画素との位相に関する位相情報を記憶し、前記記憶している第1の差分値と、前記隣接する他の画像素子に記憶されている差分値とを加算し第2の総和差分値を生成し、前記記憶している第1の総和差分値と、前記生成された第2の総和差分値とを比較し、前記比較の結果に応じて、前記記憶して第1の総和差分値を更新する。
【0028】
さらに、前記目的を達成するために、第6の発明の画像処理方法は、時間的に異なる複数の画像データのマッチングを行い、マッチングデータを含む複数の画像素子を有する画像処理装置の画像処理方法であって、前記画像素子は、前記時間的に異なる前記画像データそれぞれの第1の画素を記憶し、要求に応じて更新可能な、前記第1の画素に対応する第2の画素を記憶し、前記記憶している前記画素の差分値の総和である時間総和差分値を記憶し、前記時間総和差分値と、隣接する他の素子の時間総和差分値との総和である第1の総和差分値を記憶し、前記記憶している時間総和差分値と、前記所定の領域の内の他の画像素子の時間総和差分値を加算し第2の総和差分値を生成し、前記記憶している第1の総和差分値と、前記生成された第2の総和差分値とを比較し、前記比較の結果に応じて、前記記憶している第1の総和差分値を更新する。
【0029】
【発明の実施の形態】
第1実施の形態
本実施の形態に係る画像処理装置1は、複数のフレームを有する動画像のフレーム間の動きベクトルの検出を行う。
【0030】
画素マッチング
図4は、本発明に係る画像処理装置の第1の実施の形態の機能ブロック図である。
図5(a)は第1の実施の形態に係る画像処理装置のメモリを示す図である。図5(b)は図5(a)に示した画像処理装置のメモリの内の素子の機能ブロック図である。
【0031】
本実施の形態に係る画像処理装置1は、図4に示すように、メモリ2、複数のフレームメモリ3、読出部4、および制御部100を有する。
【0032】
メモリ2は、後述するように、フレームメモリ3からの所定のデータ、例えば、画素の画素値および位相(位相情報とも言う)に基づいて、動きベクトルを生成および記憶する。
【0033】
フレームメモリ3は、例えば複数のフレームメモリ3、具体的にはフレームメモリ3−T、フレームメモリ3−T−1を有する。
フレームメモリ3−Tは、入力された時刻Tの画像データ(単に画像とも言う)を記憶する。
フレームメモリ3−T−1は、時刻T−1の画像データを記憶する。
また、所定の時間後には、フレームメモリ3−Tに記憶された画像データがフレームメモリ3−T−1に記憶され、フレームメモリ3−Tには新たに画像データが記憶される。
【0034】
読出部4は、メモリ2に記憶された動きベクトルを素子20毎に読み出す。
制御部100は、メモリ2、フレームメモリ3、および読出部4を、所定の処理に応じた制御を行う。
制御部100は、例えば、フレームメモリ3に画像を記憶させる。
制御部100は、例えば、フレームメモリ3から所定の探索範囲spおよび参照範囲の内の画素、および探索範囲spの内の探索領域tpと、参照領域trとの位相をメモリ2に出力する。
【0035】
各構成要素について詳細に説明する。
本実施の形態に係る画像処理装置1のメモリ2は、例えば、図5(a)に示すように、格子状に複数の素子20を有する。
簡単のために、メモリ2の内に3×3の素子(画素)20−1〜9を設ける。素子20それぞれは接続されている。
【0036】
各素子(画素)20ごとに一遍にマッチングを行う場合を説明する。
素子20は、図5(b)に示すように、複数の画素21、例えば画素21−1,2、最小画素差分記憶部22、動きベクトル記憶部23、減算器24、絶対値生成部25、比較更新部26、および更新部27とを有する。
【0037】
素子20は、具体的には、単に1画素を記憶する(格納するとも言う)だけでなく例えば2画素分の画素値を格納し、それらの差分絶対値を演算し、その結果である差分絶対値を格納する。
マッチングデータは、例えば、画素値や、差分絶対値や、所定の演算結果を示すデータ等の所定のマッチング処理に係るデータである。
【0038】
画素21は、複数の画素、例えば画素21−1および画素21−2を有する。
画素21−1は、例えば、フレームメモリ3−Tの内の探索範囲spの内の画素の画素値が入力される。
画素21−2は、例えば、フレームメモリ3−T−1の参照領域trの内の画素の画素値が入力される。
【0039】
最小画素差分記憶部22は、差分絶対値を記憶する。
最小画素差分記憶部22は、比較更新部26により、記憶している差分絶対値の更新が行われる。
【0040】
動きベクトル記憶部23は、後述するように、動きベクトルを記憶する。
動きベクトル記憶部23は、更新部27により、動きベクトルの更新が行われる。
【0041】
減算器24は、画素21−1に記憶された画素値と、画素21−2に記憶された画素値とに応じて、それらの画素値の差分値を絶対値生成部25に出力する。
【0042】
絶対値生成部25は、減算器24から出力された、画素21−1の画素値と画素21−2の画素値との差分値に基づいて、その差分値の絶対値(差分絶対値とも言う)を比較更新部26に出力する。
【0043】
比較更新部26は、絶対値生成部25から出力された差分絶対値と、最小画素差分記憶部22に記憶されている差分絶対値とを比較する。
【0044】
比較更新部26は、その比較の結果、絶対値生成部25から出力された差分絶対値が小さい場合には、この小さい方の差分絶対値を最小画素記憶部22に記憶させることで、差分絶対値を更新する。
比較更新部26は、上述の比較の結果、最小画素差分記憶部22の差分絶対値の更新を行う場合に、更新部27に差分絶対値が更新されたことを示す更新情報を出力する。
【0045】
更新部27は、比較更新部26から出力された更新情報、および位相情報に基づいて、動きベクトル記憶部23に記憶されている動きベクトルを更新する。
具体的には、更新部27は、比較更新部26から差分絶対値が更新されたことを示す更新情報が出力した場合には、その時の探索領域tpと参照領域trとの位相情報(位相)を動きベクトルとして、動きベクトル記憶部23に記憶させ、動きベクトルを更新する。
【0046】
上述したように、メモリ2は、画素値以外の動きベクトルや差分絶対値といった情報を付加情報として記憶する。
【0047】
図6は、図4に示した画像処理装置の画素マッチングにおける位相の更新と、探索領域tpの読み出しを説明するための図である。図6(a)は、探索範囲内の位相を示す図である。図6(b)は位相と探索領域tpの関係を示す図である。
【0048】
位相(位相情報)は、例えば探索範囲spの中心と、探索領域tpの中心とのずれである。例えば、図6(a)に示すように位相を定義する。
具体的には、図6(a)に示すように、探索範囲sp(5×5)の中心と、探索領域tp(3×3)の中心とが一致している場合には、位相(0,0)である。
【0049】
例えば、探索範囲sp(5×5)の中心と、探索領域tp(3×3)の中心が、図に向かって右に1単位ずれた場合には、位相(1,0)である。
その他の位相も探索範囲spの中心と探索領域tpの中心とのずれを、位相の座標とする。
【0050】
図6(b)は、位相の更新と探索領域tpの読出しを示す図である。
例えば、制御部100は、図6(b)に示すように、位相を順に(−1,−1)、(0,−1)、(1、−1)、(−1,0)、(0,0)、(0,1)、(−1,1)、(0,1)、(1,1)と更新して、それに応じて探索領域tpの内の画素を読み出し、メモリ2の内の対応する素子20に出力する。
後述するように、差分絶対値が最小の場合の位相を、真の動きベクトルとする。
【0051】
また、制御部100の、画素の読み出す順番、および位相の順番は、この形態に限られるものではない。全ての画素を読み出すことができれば順番は、上述の形態に限られるものではない。
ここで図5においては、各素子の保有する画素21−1に、探索領域tpの内の1画素を格納する。
【0052】
図7は、図1に示した画像処理装置1の動作を説明するためのフローチャートである。画像処理装置1の動作、特に、動きベクトルを生成する動作を、図7を参照しながら説明する。
【0053】
例えば制御部100は、フレームメモリ3−T−1から、任意の3×3の参照領域trの各画素を、メモリ20内の対応する各素子20ごとに格納する(ST11)。
具体的には、図4に示すように、各素子20の画素21−2に参照領域trの1画素を格納する。
【0054】
制御部100は、フレームメモリ3−Tにおいて、探索範囲spの内で位相を更新(シフト)しながら(ST12)、探索領域tp(3×3)の内の画素を読み出し、対応するメモリ2の内の各素子20ごとに格納する(ST13)。
具体的には、図4に示すように制御部100は、各素子20の画素21−1に探索領域tpの内の、対応する1画素を格納する。
【0055】
制御部100では、探索領域tpの位相の更新と、探索領域tpの内の画素の読み出しは、例えば、図6に示すように、(−1,−1)〜(1,1)の範囲で1画素ずつ位相をずらして計9回行われ、9回終わると終了する。
【0056】
各素子20の減算器24および絶対値生成部25で、画素21−1に格納された画素値と画素21−2に格納された画素値の差分絶対値が演算される。これを例えば差分絶対値aとする(ST14)。
比較更新部26では、メモリ2の内の素子20の最小画素差分記憶部22に記憶されている差分絶対値(例えば差分絶対値bと言う)と、差分絶対値aとが比較される(ST15)。
【0057】
ステップST15の比較の結果、比較更新部26では、差分絶対値aが小さい場合、最小画素差分記憶部22に差分絶対値aを記憶し、差分絶対値を更新する(ST16,ST17)。
一方、比較更新部26では、差分絶対値aが大きい場合は更新を行わず(ST16)、次の探索領域tpの位相の更新および探索領域tpの内の画素の読み出し処理へ移行する。
ところで、初期状態では素子20の最小画素差分記憶部22には、差分絶対値が格納されていない。その場合は、最小画素差分記憶部22には、無条件に最初の差分絶対値が格納される。
【0058】
ステップST17において、比較更新部26では、差分絶対値が更新された場合のみ、差分絶対値が更新されたことを示す更新情報が更新部27に出力される。
更新部27では、比較更新部26から差分絶対値が更新されたことを示す更新情報が出力された場合には、その時の探索領域tpの位相を、動きベクトル記憶部23に記憶させて、動きベクトルが更新される(ST18)。
【0059】
そして、全ての位相の更新が終了した時点で(ST19)、各素子20におい、最小画素差分記憶部21−2には、探索範囲spにおける画素差分絶対値の最小値が記憶され、それが更新されたときの位相(動きベクトル)が動きベクトル記憶部23に記憶されている。
【0060】
一方、ステップST19において、全ての位相の更新が終了していない場合には、ステップST12の処理に戻る。
【0061】
この各動きベクトルは、参照領域trの各画素20が時刻Tに探索範囲spの内のどの位置に移動したかを、画素20間の差分絶対値に基づいて求めたものである。最終的に、読出部4は、各素子20から、これらの動きベクトルを読出し出力する。
【0062】
以上、説明したように、画像データを記憶する複数のフレームメモリ3と、フレームメモリ3からのデータに応じて、動きベクトルを生成および記憶するメモリ2と、メモリから素子毎の動きベクトルを読出す読出部4と、それらを制御する制御部100とを設ける。そして、メモリ2には格子状に複数の素子20を設ける。
【0063】
素子20には、異なるフレームメモリの所定の画素の画素値を記憶する画素21−1〜2と、画素21−1〜2の画素値の差分値を出力する減算器24と、減算器24から出力された差分値の絶対値(差分絶対値)を出力する絶対値生成部25と、差分絶対値を記憶する最小画素差分記憶部22と、差分絶対値と、最小画素差分記憶部22に記憶されている差分絶対値を比較し、比較の結果、最小画素記憶部22の差分絶対値を更新し、更新したことを示す更新情報を出力する比較更新部26と、比較更新部26から差分絶対値が更新されたことを示す更新情報が出力した場合には、その時の位相座標を動きベクトルとして、動きベクトル記憶部23に記憶させて、動きベクトルを更新する更新部27とを設けたので、少ない計算量で動きベクトルを算出することができる。
【0064】
また、探索範囲sp内のすべての位相における評価テーブルの演算および最小値の探索という2段階の位相の更新を、一括して行うことができる。
【0065】
また、差分絶対値の最小値のみを更新していくので、例えば最小値の探索のための評価テーブルを別のメモリ上に生成する必要がないので、メモリを縮小することができる。
【0066】
本実施の形態に係る画像処理装置1では、3×3のサイズのメモリ2を用いて説明したが、これに限定されるものではない。
例えば、1フレームの全画素数分の素子20を有するメモリ2を設けた場合には、1フレーム分の全画素ごとの動きベクトルが、位相の更新を終了させた時点で1度に求めることができる。
【0067】
第2の実施の形態
ブロックマッチング
図8は、本発明に係る画像処理装置1aの第2の実施の形態の機能ブロック図である。
図9(a)は図8に示した画像処理装置1aのメモリを示す図である。図9(b)は図8に示したメモリの構成の一具体例を示す図である。図9(c)は図8に示した画像処理装置1aの動きベクトルが格納されるメモリの構成を示す図である。
【0068】
本実施の形態に係る画像処理装置1aは、図8に示すように、メモリ2a、複数のフレームメモリ3a、例えばフレームメモリ3a−T,T−1、読出部4、および制御部100aを有する。
【0069】
第1の実施の形態に係る画像処理装置1において、例えば、3×3のブロックマッチングでは、3×3の素子で、ある注目画素の動きベクトルを求めた。
第2の実施の形態の画像処理装置1aでは、隣接する3×3の画素の動きベクトルを1度に求める。
【0070】
メモリ2aは、第1の実施の形態に係る画像処理装置1のメモリ2と同様に、単に1画素を格納するだけでなく2画素分格納でき、それらの差分絶対値を演算する。また、その結果である差分絶対値を格納する。
【0071】
画素マッチングを応用したブロックマッチングの一具体例を説明する。
画像処理装置1aと、第1の実施の形態に係る画像処理装置1との大きな相違点は、メモリの構成が異なる点である。相違点のみ説明する。
【0072】
本実施の形態に係る画像処理装置1aのメモリ2aは、例えば図9に示すように、格子状に複数の素子20aを有する。
簡単のために、メモリ2aの内に5×5の素子20a−1〜25を設ける。各素子20それぞれは接続されている。
各素子20ごとに一遍にマッチングを行う場合を説明する。
ここで、素子20a−1〜25を区別しない場合には、単に素子(画素)20aという。探索範囲spを画素単位で(−1,−1)から(1,1)として説明する。
【0073】
メモリ2aは、素子20a間の配線により、図9(a)に示すように、注目する素子(例えば素子20a−5)の8近傍の素子(例えば素子20a−1〜4および素子20a−6〜9)に格納されている差分絶対値を注目する素子に送ることができる。
【0074】
各素子20aには、それら9つの差分絶対値を受取り加算する処理を有する。そのため注目する素子20aでは、その差分絶対値の総和を求め、それを格納する。
【0075】
但し、各素子20aは、予め保持されている差分絶対値の総和との比較を行い、小さい場合のみその値を更新する。その差分絶対値の総和が更新された場合、その時の動きベクトル(動きベクトル)も予め格納されているものから更新される。
以下、詳細に説明する。
【0076】
素子20aは、図9(c)に示すように、複数の画素21a、例えば画素21a−1〜2、画素差分記憶部22a−1、差分総和記憶部22a−2、動きベクトル記憶部23、減算器24、絶対値生成部25a、比較更新部26a、更新部27、および加算部28とを有する。
【0077】
素子20aと、第1の実施の形態に係る素子20との相違点は、画素差分記憶部22a−1、差分総和記憶部22a−2、絶対値生成部25a、比較更新部26a、加算部28である。
【0078】
画素差分記憶部22a−1は、絶対値生成部25aから出力された、画素21a−1と画素21a−2の差分絶対値を記憶する。
画素差分記憶部22a−1は、記憶している差分絶対値を加算部28に出力する。
【0079】
差分総和記憶部22a−2は、差分絶対値総和を記憶する。この差分絶対値総和は、後述するように比較更新部26aにより所定の条件の場合に更新される。
【0080】
絶対値生成部25aは、減算器24から出力された、画素21−1の画素値と画素21−2の画素値との差分値に基づいて、その差分値の絶対値(差分絶対値とも言う)を画素差分記憶部22a−1に出力する。
【0081】
比較更新部26aは、加算部28から出力された差分絶対値総和Aと、差分総和記憶部22a−2に記憶されている差分絶対値総和(差分絶対値総和Bと言う)とを比較して、比較の結果、差分絶対値総和Aが小さい場合には、差分絶対値総和Aを差分総和記憶部22a−2に記憶させて、差分絶対値総和を更新する。
【0082】
比較更新部26aは、上述した更新を行った場合には、更新を行ったことを示す更新情報を更新部27に出力する。
比較更新部26aは、比較の結果、差分絶対値総和Aが大きい場合には、差分総和記憶部22a−2に記憶されている差分絶対値総和Bの更新を行わない。
【0083】
加算部28は、その画素の近傍の8つの素子20a(8近傍の素子20aとも言う)それぞれから出力された差分絶対値a、および画素差分記憶部22a−1から出力された差分絶対値aに基づいて、それらを加算して、差分絶対値総和Aを生成し、比較更新部26aに出力する。
【0084】
図10は図8に示した画像処理装置の動作、特に位相の更新と探索領域tpの読み出しを行う動作について説明するための図である。図10(a)は探索範囲sp内の位相を示す図である。図10(b)は位相と探索領域tpの関係を示す図である。
【0085】
図10(a)に示すように、例えば、位相は探索範囲spの中心と探索領域tpの中心とのずれを示す。例えば、図10(a)に示すように位相の座標を定義する。
具体的には、図10(a)に示すように、探索範囲sp(7×7)の中心と、探索領域tp(5×5)の中心とが一致した場合には、位相(0,0)である。
【0086】
例えば、探索範囲sp(7×7)の中心と、探索領域tp(5×5)の中心が、向かって右に1単位ずれた場合には、位相(1,0)である。
その他の状態も探索範囲spの中心と探索領域tpの中心とのずれを位相の座標とする。
【0087】
例えば、制御部100aは、図10(b)に示すように、位相を順に(−1,−1)、(0,−1)、(1、−1)、(−1,0)、(0,0)、(0,1)、(−1,1)、(0,1)、(1,1)と更新して、それに応じて探索領域tpの内の画素を読み出し、メモリ2aの内の対応する素子20aに出力する。
また、制御部100aの読み出す順番は、この形態に限られるものではない。全ての画素を読み出すことができれば順番は、上述の形態に限られない。
【0088】
図11は、図8に示した画像処理装置1aの動作を説明するためのフローチャートである。画像処理装置1の動作、特に動きベクトル検出の動作を、図11を参照しながら説明する。
この場合では、注目素子とは、図9において、実際に動きベクトルが格納される素子20aの1つと想定する。ここで注目素子はメモリ2aの端にある素子ではない。
【0089】
例えば制御部100aは、フレームメモリ3a−T−1から、任意の5×5の参照領域trの各画素をメモリ2a内の各素子20aごとに格納する(ST21)。ここで図8においては、各素子20aの保有する画素21−2の部分に参照領域trの1画素を格納する。
【0090】
制御部100aは、探索範囲sp内で位相を更新しながら(ST22)、5×5の領域を読み出し、その領域内の各画素をメモリ2a内の各素子20aごとに格納する(ST23)。この5×5の領域を「探索領域tp」と名付ける。ここで図8においては、各素子20aの保有する画素21a−1の部分に探索領域tpの1画素を格納することになる。
位相の更新と探索領域tpの読み出しは、例えば、図10に示すように(−1,−1)〜(1,1)の範囲で9回行われ、9回終わると終了する。
【0091】
次に各素子20a内で、画素21a−1に格納された値と画素21a−2に格納された値の差分絶対値aを演算する(ST24)。その結果を、各素子20a内の画素差分記憶部22a−1に格納する。
【0092】
次に各注目素子において、加算部28は、その8近傍の素子20aから差分絶対値aを読み込み、画素差分記憶部22a−1に記憶されている差分絶対値aと加算し、差分絶対値総和Aを求める(ST25)。
【0093】
次に各注目素子において、比較更新部26aは、差分総和記憶部22a−2に予め格納されている差分絶対値総和(差分絶対値総和B)と、加算部28から出力された差分絶対値総和Aを比較して(ST26,ST27)、差分絶対値総和Aが小さい場合には、差分総和記憶部22a−2に格納する値を、差分絶対値総和Bから差分絶対値総和Aに更新する(ST28)。
【0094】
一方、ステップST27において、比較更新部26aでは、差分絶対値総和Aが大きい場合には更新を行わない。制御部100aでは、次の位相の更新および探索領域tpの読み出しへと移行する。ステップST22に戻る。
【0095】
ところで、初期状態では注目素子に差分絶対値総和は格納されていない。その場合は、無条件に最初の差分絶対値総和が格納される。
【0096】
ステップST29において、更新部27では、ある注目素子の差分絶対値総和が更新された場合のみ、そのときの位相を真の動きベクトルとして、その注目素子の、動きベクトル記憶部23に予め格納されている動きベクトルを更新する。
【0097】
そして、位相の更新が終了した時点で(ST30)、9つの各注目素子20aには探索範囲spにおける画素差分絶対値総和の最小値と、それが格納されたときの動きベクトルが格納されている。
一方、ステップST30において、位相の更新が終了していないと判別した場合には、ステップST22の処理に戻る。
【0098】
図12は、図8に示した画像処理装置のフレームの参照領域trから切り出されるブロックを示す図である。
この各動きベクトルは、図12に示すように参照領域tr内から切り出される9個の3×3のブロックが、時刻Tに探索範囲sp内のどの位置に移ったかを、3×3のブロック間の差分絶対値総和に基づいて求めたものである。
最終的には読出部4は、各注目素子から、これらの動きベクトルを読み出し出力する。
【0099】
以上、説明したように、画像処理装置1aでは、注目素子とその隣接する素子(3×3の素子)の差分絶対値とを加算した差分総和値に基づいて、3×3の画素の動きベクトルを1度に生成することができる。
【0100】
本実施の形態では、3×3のブロックサイズで探索範囲spを画素単位で(−1,−1)〜(1,1)の場合のブロックマッチングを実現するメモリを説明したが、この形態に限られるものではない。
例えば、各素子20a間の配線を周辺の5×5の素子20aから注目素子に接続するように変更することで、5×5のさらに大きなブロックサイズでのマッチングも可能である。
【0101】
また、メモリ2a内の全素子数を5×5の場合で説明したが、例えばメモリ2aに1フレーム内全画素数分の素子を設けた場合には、全画素ごとの動きベクトルが、位相の更新を終了させた時点で1度に求められる。
【0102】
また、動きベクトルを検出する機能を持つ素子20aを多数用いてメモリ2aを構成することで、隣接する複数の画素ごとの動きベクトルを一括して求めることができる。
【0103】
第3の実施の形態
対応画素検出
上述した第2の実施の形態に係る画像処理装置1aの画素マッチングでは、ブロックマッチングの最終的な結果として、動きベクトルがメモリ2a内に格納される。
【0104】
第3の実施の形態に係る画像処理装置1bは、注目するフレームとその前後のフレームで、「対応画素」そのものを直接格納し出力する。
ここで、「対応画素」とは、ある注目画素を含み、注目画素の前後のフレームにおいて、注目画素が動いても動きベクトルによって補正して同じ画素として対応させることができる画素を指す。このような格納される「対応画素」は、後述するクラス分類適応処理に利用可能である。
【0105】
図13は、本発明の第3の実施の形態に係る画像処理装置の対応画素の摘出を説明するための概念図である。
横軸はx軸、縦軸はy軸、斜軸は時間軸である。
本実施の形態では、図13に示すように、注目画素+前後2フレーム分の画素、すなわち計5画素を対応画素として、メモリに抽出する場合を考える。
【0106】
簡単のために対応画素深索のためのブロックサイズを3×3画素、探索範囲spを画素単位で(−1,−1)〜(1,1)として説明する。注目画素とそれ以外の前後2フレーム間の対応画素では、等速であるという拘束条件をつけている。
【0107】
すなわち、フレームT−1において、例えば、(−1,−1)(図13では、まる7)、の位置に対応画素がある場合、フレームT−2では(−2,−2)(図13では、まる9)、フレームT+1では、(1,1)(図13では、まる19)、フレームT+2では(2,2)(図13では、まる41)に必ず対応画素が存在する。但し、注目画素の位置を(0,0)(図13では、まる5)とした。
【0108】
本実施の形態に係る画像処理装置1bは、注目フレームTにおける注目画素を中心とした3×3のブロックとそれ以外の各フレームの3×3のブロックとの差分絶対値をそれぞれ演算し、それらを全て足し合わせたものが最小となる動きベクトルを生成する。
最小となる位相において、図13に示すような3×3のブロックの中心の画素を対応画素として、画像処理装置1bの内のメモリ2bに格納し出力する。
【0109】
図14は、本発明に係る画像処理装置の第3の実施の形態の機能ブロック図である。
本実施の形態に係る画像処理装置1bは、図14に示すように、メモリ2b、複数のフレームメモリ3b、例えばフレームメモリ3b−T+2,T+1,T,T−1,T−2、読出部4、および制御部100bを有する。
画像処理装置1bと、第2の実施の形態に係る画像処理装置1aとの大きな相違点は、メモリの構成が異なる点である。
【0110】
また、5つのフレームメモリ3b−T+2,T+1,T,T−1,T−2を有するのに伴い、制御部の動作が異なる。相違点のみ説明する。
【0111】
制御部100bは、フレームメモリ3b−T+2に、例えば入力された画像を記憶させ、所定のタイミングで、その画像をフレームメモリ3b−T+1に出力する。
【0112】
制御部100bは、フレームメモリ3b−T+1に、フレームメモリ3b−T+2から出力された画像を記憶させ、所定のタイミングで、その画像をフレームメモリ3b−Tに出力する。
制御部100bは、フレームメモリ3b−Tに、フレームメモリ3b−T+1から出力された画像を記憶させ、所定のタイミングで、その画像をフレームメモリ3b−T−1に出力する。
制御部100bは、フレームメモリ3b−T−1に、フレームメモリ3b−Tから出力された画像を記憶させ、所定のタイミングで、その画像をフレームメモリ3b−T−2に出力する。
制御部100bは、フレームメモリ3b−T−2に、フレームメモリ3b−T−1から出力された画像を記憶させる。
【0113】
制御部100bは、フレームメモリ3b−Tから所定の参照範囲(5×5)の内の画素の画素値をメモリ2bに出力する。
制御部100bは、フレームメモリ3b−T−2から、所定の探索範囲spT−2(9×9)の内の探索領域tpT−2(5×5)の画素、およびその位相情報をメモリ2bに出力する。
制御部100bは、フレームメモリ3b−T−1から、所定の探索範囲spT−1(7×7)の内の探索領域tpT−1(5×5)の画素、およびその位相情報をメモリ2bに出力する。
制御部100bは、フレームメモリ3b−T+1から、所定の探索範囲spT+1(7×7)の内の探索領域tpT+1(5×5)の画素、およびその位相情報をメモリ2bに出力する。
制御部100bは、フレームメモリ3b−T+2から、所定の探索範囲spT+2(9×9)の内の探索領域tpT+2(5×5)の画素、およびその位相情報をメモリ2bに出力する。
【0114】
上述した探索領域tp(5×5)の内の画素を読み出す場合には、制御部100bは、フレームメモリ3b−T−2,T−1,T+1,T+2それぞれの探索領域tpの内の画素が、例えば図14に示したように直線状になるように設定する。
【0115】
図15(a)は図14に示した画像処理装置1bのメモリ2bを示す図である。図15(b)は対応画素が格納されるメモリを示す図である。図15(c)は図15(a)に示したメモリ2bの素子20bの機能ブロック図である。
【0116】
本実施の形態に係る画像処理装置1bのメモリ2bは、例えば図15に示すように、5×5の素子20b−1〜25を有しており、各素子20bそれぞれは接続されている。
【0117】
3×3のブロックマッチングでは、ある注目画素における対応画素を求めるには3×3の素子で十分であるが、本実施の形態に係る画像処理装置1bでは、図14(b)に示すように、隣接する3×3の画素の動きベクトルを1度に求める。
【0118】
メモリ2bは、図15(a)に示すように、複数の素子20b、例えば格子状に形成された素子20b−1〜25を有する。
【0119】
素子20bは、図15(c)に示すように、複数の画素21b、例えば画素21b−T,T+2,T+1,T−1,T−2、差分絶対値総和A記憶部22b−1、差分絶対値総和B記憶部22b−2、複数の減算器24b、例えば減算器24b−1〜4、複数の絶対値生成部25b、例えば絶対値生成部25b−1〜4、加算器250、比較更新部26b、更新部27b、加算部28b、複数の対応画素210b、例えば対応画素210b−T,T+2,T+1,T−1,T−2を有する。
【0120】
画素21b−Tは、フレームTの注目する画素(注目画素とも言う)の画素値を記憶する。
画素21b−T+2、画素21b−T+1、画素21b−T−1、画素21b−T−2それぞれは、図13に示すように、注目フレームの前後±2フレームにおいて、時空間で注目画素を通る直線上に存在する4つの画素の画素値を記憶する。
【0121】
差分絶対値総和A記憶部22b−1は、格納している注目画素と4つの各画素間でそれぞれ差分絶対値を求めた合計(差分絶対値総和Aとも言う)を記憶する。
【0122】
差分絶対値総和B記憶部22b−2は、注目素子の近傍の8つの素子(8近傍の素子とも言う)にある差分絶対値総和Aの合計(差分絶対値総和Bとも言う)を記憶する。
【0123】
減算器24b−1は、画素3b−T−2から出力された画素値と、画素3b−Tから出力された画素値とを減算し絶対値生成部25b−1に出力する。
減算器24b−2は、画素3b−T−1から出力された画素値と、画素3b−Tから出力された画素値とを減算し絶対値生成部25b−2に出力する。
減算器24b−3は、画素3b−T+1から出力された画素値と、画素3b−Tから出力された画素値とを減算し絶対値生成部25b−3に出力する。
減算器24b−4は、画素3b−T+2から出力された画素値と、画素3b−Tから出力された画素値とを減算し絶対値生成部25b−4に出力する。
【0124】
絶対値生成部25−1は、減算器24b−1から出力された差分値の絶対値(差分絶対値)を加算器250に出力する。
絶対値生成部25−2は、減算器24b−2から出力された差分絶対値を加算器250に出力する。
絶対値生成部25−3は、減算器24b−3から出力された差分絶対値を加算器250に出力する。
絶対値生成部25−4は、減算器24b−4から出力された差分絶対値を加算器250に出力する。
【0125】
加算器250は、絶対値生成部25−1〜4それぞれから出力された差分絶対値を加算し、差分絶対値和A記憶部22b−1に出力する。
【0126】
比較更新部26bは、加算部28bから出力される差分絶対値Bと、差分絶対値総和B記憶部22b−2に記憶されている差分絶対値総和Bとを比較し、比較の結果、加算部28bから出力された差分絶対値総和Bが小さい場合には、その小さい方の差分絶対値総和Bを差分絶対値総和B記憶部22b−2に記憶させて更新する。
また、比較更新部26bは、上述した更新を行った場合には、差分絶対値総和B記憶部22b−2の差分絶対値総和Bを更新したことを示す更新情報を更新部27bに出力する。
【0127】
更新部27bは、比較更新部26bから、差分絶対値和Bが更新されたことを示す更新情報が出力されると、画素21b−T−2,T−1,T,T+1,T+2それぞれから出力された画素値を、対応画素210T−2,T−1,T+1,T+2に記憶させて更新する。
【0128】
加算部28bは、差分絶対値総和A記憶部22b−1から出力された差分絶対値総和A、および隣接する8つの各素子20bそれぞれから出力された、差分絶対値総和Aを加算し、比較更新部26bに出力する。
【0129】
上述したように、素子2bは、注目画素21b−Tと格納された他の4画素(画素21b−T+2、画素21b−T+1、画素21b−T−1、画素21b−T−2)に対して、それぞれ差分絶対値を演算できる。また、それぞれの差分絶対値の合計を求める演算もできる。
【0130】
本実施の形態に係る画像処理装置1bのブロックマッチングでは、素子間の配線により、図15(a)に示すように、注目する素子(例えば、図15(a)の素子20b−5)の8近傍の素子(図15(a)の素子20b−1〜4,6〜9)に格納されている差分絶対値総和Aを、注目する素子20b−5に送ることができる。
【0131】
各素子20bには、それら9つの差分絶対値総和Aを受取り全て加算する処理を有している。そのため注目する素子では、その差分絶対値総和Aの合計(差分絶対値総和B)を求め、それを格納できる。
【0132】
但し、予め保持されている差分絶対値総和との比較を行い、小さい場合のみ、その値を更新する。
その差分絶対値の総和が更新された場合、その時に格納されている5つの画素(画素21b−T、画素21b−T+2、画素21b−T+1、画素21b−T−1、画素21b−T−2に記憶されている画素)を、それぞれ対応画素210b−T、対応画素210b−T+2、対応画素210b−T+1、対応画素210b−T−1、対応画素210b−T−2に予め格納されている画素から全て更新する。
【0133】
図16(a)はフレームT+2の探索範囲spT+2(9×9)と、探索領域tpT+2の位相を示す図である。図16(b)はフレームT+1の探索範囲spT+1(7×7)と、探索領域tpT+1の位相を示す図である。図16(c)はフレームT−1の探索範囲spT−1(7×7)と、探索領域tpT−1の位相を示す図である。図16(d)はフレームT−2の探索範囲spT−2(9×9)と、探索領域tpT−2の位相を示す図である。図16(e)は図14に示した画像処理装置1bの位相の更新と探索領域tpの読み出しの処理を説明するための図である。
【0134】
制御部100bは、図16(a)〜(d)に示すように、位相の座標を設定する。横軸はx軸、縦軸はy軸である。
制御部100bは、図16(e)に示すように、例えば探索領域tpT+1の位相を基準として、順に(−1,−1)、(0,−1)、(1,−1)、(−1,0)、(0,0)、(0,1)、(−1,1)、(0,1)、(1,1)と更新して、それに応じて各フレームの探索範囲spの内の探索領域tpを更新する。
【0135】
この場合には、動きベクトルは、この位相それぞれに対応して、(−1,−1)、(0,−1)、(1,−1)、(−1,0)、(0,0)、(0,1)、(−1,1)、(0,1)、(1,1)である。
【0136】
また、制御部100bは、各素子20bの画素21b−T+2の部分に探索領域tpT+2の1画素を格納し、各素子20bの画素21b−T+1の部分に探索領域tpT+1の1画素を格納し、各素子20bの画素21b−T−1の部分に探索領域tpT−1の1画素を格納し、各素子20bの画素21b−T−2の部分に探索領域tpT−2の1画素を格納する。
【0137】
図17は、図14に示した画像処理装置の動作を説明するためのフローチャートである。この場合では、注目素子とは、図15(a)において、実際に対応画素が格納される素子の1つと想定する。注目画素はメモリの端にある素子ではないとする。
【0138】
まず、注目画素が存在するフレームが存在すると想定するフレームメモリTから、任意の5×5の参照領域trの各画素をメモリ2b内の各素子20bごとに格納する。ここで図15(c)においては、各素子20bの画素20b−Tに参照領域trの1画素分を格納する(ST101)。
【0139】
次に、図14に示す注目フレームと時間的に前後するフレームメモリ3b−T+2、フレームメモリ3b−T+1、フレームメモリ3b−T−1、フレームメモリ3b−T−2のそれぞれから、探索範囲sp内で位相を更新しながら、5×5の領域を読み出し、その領域内の各画素をメモリ2b内の各素子20bごとに格納する(ST102)。
【0140】
この5×5の領域を「探索領域tp」と名付ける。但し、上述したように各フレームメモリそれぞれから読み出される探索領域tpの位相は、例えば図13に示すように時空間で必ず直線上にある。
したがって、各フレームごとにそれぞれ位相を更新するのではなく、ある1つのフレームを基準として更新することで、その他の位相は一意に決まる。
【0141】
例えば、探索領域tpT+1の位相を基準とすると、探索領域tpT+1の空間的な位相が(1,1)の場合、フレームメモリT+2から読み出される探索領域tpT+2の空間的な位相は(2,2)、フレームメモリT−1から読み出される探索領域tpT−1の空間的な位相は(−1,−1)、フレームメモリT−2から読み出される探索領域tpT−2の空間的な位相は(−2,−2)となる。
【0142】
制御部100bは、位相の更新と探索領域tpの読み出しは、例えば図16に示すように探索領域tpT+1を基準として(−1,−1)〜(1,1)の範囲で9回行い、9回終わると終了する。
【0143】
各素子20bの画素21b−T−1に探索領域tpT−1の1画素を格納する(ST103)。各素子20bの保有する画素21b−T−2に探索領域tpT−2の1画素を格納する(ST104)。各素子20bの保有する画素21b−T+1に探索領域tpT+1の1画素を格納する(ST105)。各素子20bの画素21b−T+2に探索領域tpT+2の1画素を格納する(ST106)。
上述したステップST103〜106の順番は、この順番でなくともよい。
【0144】
次に各素子20b内で、減算器24b−2および絶対値生成部25b−2は、差分画素21b−Tに格納された値と画素21b−T−1に格納された値の差分絶対値aを演算する(ST107)。同様に各素子20b内で、減算器24b−1および絶対値生成部25b−1は、画素21b−Tに格納された値と画素21b−T−2に格納された値の差分絶対値bを演算する(ST108)。同様に各素子20b内で、減算器24b−3および絶対値生成部25b−3は、画素21b−Tに格納された値と画素21b−T+1に格納された値の差分絶対値cを演算する(ST109)。同様に各素子20b内で、減算器24b−4および絶対値生成部25b−4は、画素Tに格納された値と画素T+2に格納された値の差分絶対値dを演算する(ST110)。
上述したステップST107〜110の順番は、この順番でなくともよい。
【0145】
次に、加算器250は、差分絶対値a、b、c、dの和を演算し、差分絶対値総和Aを生成し、差分絶対値総和A記憶部22b−1に格納する(ST111)。
次に、配線によって接続されている各注目素子の8近傍の素子、例えば注目素子を図15に示した素子20b−5とすると、その素子20b−5の8近傍の素子20b−1〜9それぞれにおいて格納されている差分絶対値総和Aを注目の素子20b−5が読み込む。
例えば注目の素子20b−5において、その内の加算部28bは、それらの値と加算器250から出力された差分絶対値総和Aを加算して合計を差分絶対値総和Bとして求め(ST112)、比較更新部26bに出力する。
【0146】
次に各注目素子20bにおいて、比較更新部26bは、差分絶対値総和B記憶部22b−2に、予め格納されている差分絶対値総和(差分絶対値総和C)と差分絶対値総和Bを比較して(ST113)、差分絶対値総和Bが小さい場合には、格納する値を差分絶対値総和Cから差分絶対値総和Bに更新する(ST114,115)。逆に、差分絶対値総和Cが大きい場合は更新を行わず、次の位相の更新および探索領域tpの読み出しへと移行する。ステップST102に戻る。初期状態では注目素子20bに差分絶対値総和Cは格納されていない。その場合は、無条件に最初の差分絶対値総和Bが格納される。
【0147】
次に、ある注目素子20bの更新部27bでは、差分絶対値総和B記憶部22b−2に記憶されている差分絶対値総和が更新された場合のみ、画素21b−T、画素21b−T+2、画素21b−T+1、画素21b−T−1、画素21b−T−2に格納されている画素値を、それぞれ対応画素210b−T、対応画素210b−T+2、対応画素210b−T+1、対応画素210b−T−1、対応画素210b−T−2へ改めて格納する。すなわち、真の対応画素として、その注目素子20bに格納する対応画素が更新される(ST116)。
【0148】
以上、位相の更新が終了した時点で、9つの各注目素子20bには探索範囲spにおける画素差分絶対値総和Bの最小値と、それが格納されたときに更新された対応画素が格納されている(ST117)。
一方、ステップST117において、位相の更新が終了されていないと判別された場合には、ステップST102の処理に戻る。
【0149】
この演算自体は、図12に示すように、参照領域tr内から切り出される9個の3×3のブロックが時刻Tに探索範囲sp内のどの位置に移ったかを、3×3のブロック間の差分絶対値総和に基づいて求めたものである。
【0150】
この状態では、その点では、第2の実施の形態に係る画像処理装置1aの「ブロックマッチング」の場合と同じであるが、第3の実施の形態に係る画像処理装置1bは、そのときのブロックの中央の画素を直接、注目画素の「対応画素」として格納および出力する。
また、2フレーム間でのブロックマッチングとは違って、5フレーム間での動きの等速性を仮定した演算により、画像にノイズがある場合でも「対応画素」の検出精度が向上するほか、後述するクラス分類適応処理によるノイズ除去とも親和性がよい。
【0151】
最終的には各注目素子から、例えば読出部4は、これらの5フレームにおける対応画素を読み出し出力する。例えば出力された結果は、後述するクラス分類適応処理などに利用される。
【0152】
上述した形態に限られるものではない。例えば、本実施の形態では、3×3のブロックサイズで、探索範囲spを画素単位で(−1,−1)〜(1,1)の場合の対応画素の抽出および出力を行うメモリを説明したが、これに限定されるものではない。
【0153】
例えば、各素子間の配線を周辺の5×5の素子から注目素子に接続するように変更することで、5×5のさらに大きなブロックサイズで処理することができる。
また、メモリ2b内の全素子数を5×5の場合で説明したが、例えばメモリに1フレーム内全画素数分の素子を設けた場合には、全画素ごとの対応画素が、位相の更新を終了させた時点で1度に求められる。
【0154】
第4の実施の形態
対応画素検出を使ったクラス分類適応処理
図18は、本発明に係る画像処理装置の第4の実施の形態の機能ブロック図である。
第4の実施の形態に係る画像処理装置1cは、第3の実施の形態に係る画像処理装置1bのメモリ2bを用いて、クラス分類適応処理によるノイズ除去を行う。
【0155】
クラス分類適応処理とは、高画質の原画像(教師画像とも言う)を劣化させて、低画質の劣化画像(生徒画像とも言う)を作成し、教師画像と生徒画像間で統計的な学習を行い、その学習したデータを利用して、劣化画像が入力された場合でも、高画質な画像に変換して出力する処理である。
【0156】
クラス分類適応処理およびそれによるノイズ除去は、既に出願番号410304058で詳細が述べられているが、本実施の形態に係る画像処理装置1cは、具体的に、メモリを用いて上述した処理を行う。
また、例としてSD(Standard)フォーマットの入力画像の場合を想定するが、他のフォーマットでも同じ処理が可能である。
【0157】
学習
第4の実施の形態に係る画像処理装置1cは、図18に示すように、メモリ2b、複数のフレームメモリ3b、例えばフレームメモリ3b−T+2,T+1,T,T−1,T−2、読出部4c、ノイズ付加部5、クラスコード生成部6、正規方程式加算部7、係数記憶部(RAM)8、および制御部100cを有する
【0158】
画像処理装置1cと、第3の実施の形態に係る画像処理装置1bとの大きな相違点は、ノイズ付加部5、クラスコード生成部6、正規方程式加算部7、および係数記憶部(RAM)8をさらに有する点である。相違点のみ説明する。
【0159】
ノイズ付加部5は、入力画像に、ノイズ成分を付加する。例えば、ノイズ付加部5は、コンピュータシミュレーション的にランダムノイズを発生させ付加する。
【0160】
図19は、図18に示した画像処理装置1cのノイズ付加部の第1の具体例を示す機能ブロック図である。
第1の具体例に係るノイズ付加部5−1は、図19に示すようにRFモジュレータ(RF MODULATOR)51、アテネータ減衰器52、およびRFデモジュレータ(RF DEMODULATOR)53を有する。
【0161】
ノイズ付加部5−1において、RFモジュレータ(RF MODULATOR)51では、入力画像、例えばSD画像に応じてRF変調処理し、アテネータ減衰器52により減衰させ、RFデモジュレータ(RF DEMODULATOR)53によりRF復調処理を行い、ノイズを付加する。
【0162】
図20は、図18に示した画像処理装置1cのノイズ付加部の第2の具体例を示す機能ブロック図である。
第2の具体例に係るノイズ付加部5−2は、図20に示すようにRFモジュレータ51、アテネータ減衰器52、RFデモジュレータ53、減算器54、および加算器55を有する。
【0163】
ノイズ付加部5−2において、RFモジュレータ(RF MODULATOR)51では、背景が一様な画像(レベルが一様)をRF変調処理し、アテネータ減衰器52により減衰し、RFデモジュレータ(RF DEMODULATOR)53によりRF復調処理を行い、減算器54により、もとの背景が一様な画像との差分処理が行われノイズ成分のみが加算器55に出力され、加算器55では、そのノイズ成分が入力画像(SD画像)に加算されて出力される。
【0164】
図21は、図18に示した画像処理装置1cのノイズ付加部の第3の具体例を示す機能ブロック図である。
第3の具体例に係るノイズ付加部5−3は、図21に示すように、RFモジュレータ(RF MODULATOR)51、アテネータ減衰器52、RFデモジュレータ(RF DEMODULATOR)53、減算器54、加算器55、およびフレーム加算器56を有する。
【0165】
ノイズ付加部5−3において、RFモジュレータ51では、背景が一様な画像(レベルが一様)をRF変調処理し、アテネータ減衰器52により減衰し、RFデモジュレータ53によりRF復調処理を行い、フレーム加算器56および減算器54によりノイズ除去を行った画像と原の画像間での差分をとり、ノイズ成分だけを抽出し、加算器55により、このノイズ成分が入力画像(SD画像)に加算されて出力される。
【0166】
読出部4cは、素子ごとの対応画素を読み出し、クラスコード生成部6および正規方程式加算部7に出力する。
【0167】
クラスコード生成部6は、読出部4cから出力された素子ごとの対応画素の値に基づいて、ノイズ成分を検出して、クラスコードを生成し、正規方程式加算部7に出力する。
【0168】
図22は、図18に示した画像処理装置1cのクラスコード生成部のクラスコードを発生(ノイズ成分検出)させる原理を説明するための図である。
【0169】
クラスコード生成部6は、例えば図22に示すように、メモリ2bから順次出力される対応画素それぞれに対し、ノイズ成分を検出し、それをクラスコードとして記述し発生させる。
メモリ2bにより抽出された1つの対応画素は、時刻T−2〜T+2の5フレーム間で、基本的に動きに追従して押出した同じ画素とみなせるので、速い動きではぼけ等の劣化は見られる場合もあるが、基本的には時間的な変動はほとんどない。
【0170】
そのため、出力された対応画素内の値の変動がある場合、それはノイズであるとみなせる。したがって、そのノイズの変動をクラスコードとして記述することで、ノイズの変動に応じた後述する予測演算ができる。
【0171】
クラスコード生成部6は、対応画素内の5画素の最大値b、最小値aを求め、最大値bおよび最小値に応じたコード、例えば、平均値、具体的には、(最小値a+最大値b)/2より各対応画素のレベルが上ならば1、下ならば0であるような平均値コードを生成する。例えば、平均値コードは、図22に示したような場合には、「10100」である。
【0172】
また、クラスコード生成部6は、対応画素内でのダイナミックレンジ(最大値b−最小値a)を求め、それを2進数で表現し、ダイナミックレンジコードを生成する。
【0173】
例えば、ダイナミックレンジが18の場合、ダイナミックレンジコードは、「10010」である。
クラスコード生成部6は、平均値コードおよびダイナミックレンジコードを合成して、クラスコードを生成する。
【0174】
例えば、上述した場合には、平均値コード「10100」と、ダイナミックレンジコード「10010」を合成して、クラスコード「1010010010」を生成する。
ここで、平均値コードは、ノイズの時間変動であり、ダイナミックレンジコードは、ノイズレベルの大きさを表現している。
画像処理装置1cは、このコードごとに分類することでノイズの変動やレベルに的確に対応した処理が行うことができる。
【0175】
正規方程式加算部7は、具体的には、クラスコード生成部6から出力されたクラスコードごとに、読出部4から出力された対応画素と教師画像の画素とに基づいて正規方程式を生成し、クラスコードごとの予測係数を生成する。
【0176】
具体的には、正規方程式加算部7は、対応画素をXT+2、XT+1、X、XT−1、XT−2として、フレームメモリTの対応画素Xに対してノイズを付加する前の教師画像から同じ位置の画素をyとして、数式(2)に示すような正規方程式を生成する。
【0177】
【数2】
Figure 2004078862
Figure 2004078862
【0178】
ここで、aT+2、aT+1、a、aT−1、aT−2は推定すべき予測係数である。
正規方程式加算部7は、クラスごとに対応画素と教師画像の画素を、数式(2)に代入して正規方程式を生成し、必要な数の正規方程式が求められたとき最小自乗推定によって、この予測係数を推定する。
【0179】
正規方程式加算部7は、クラスコードごとの予測係数を決定し、係数記憶部(RAM)8に出力する。
係数記憶部(RAM)8は、正規方程式加算部7から出力された、クラスコードごとの予測係数を記憶する。
【0180】
制御部100cは、各フレームメモリT−2,T−1,T,T+1,T+2に保持されている画像から参照領域trを読み出し、メモリ2cに格納する。また、読み出された参照領域trに対応している探索範囲spを他のフレームメモリに設定し、位相を更新しながら探索領域tpを読み出しメモリ2cに格納していく。
【0181】
制御部100cは、読み出す参照領域trとして、例えばラスタスキャンのような順序で、フレームメモリT内で適当に位相をシフトしながら順次読み出していき、メモリ2cが最終的にフレームメモリ内の全画素の対応画素を出力できるようにする。
【0182】
図23は、図18に示した画像処理装置1cが、クラス分類適応処理のために、参照領域trのメモリに読み出すべき手順を説明するための図である。図23(a)はシフト前の状態を示す図である。図23(b)は、シフト後の状態を示す図である。
【0183】
例えば、制御部100cは、メモリ2bが5×5の場合、図23(a),(b)に示すように3×3画素ごとにシフトして参照領域trを切り出せば、対応画素がフレームメモリT内の全ての画素位置で得る。このため、フレームメモリTの全ての画素を処理できる。この場合、1つの参照領域trの読み出しに対し、メモリ2cは位相の異なる9つの対応画素を得て、この9つの対応画素を順次出力する。
【0184】
以上、説明した構成の画像処理装置の動作を、相違点のみ簡単に説明する。
ノイズ付加部5では、入力画像にノイズ成分が付加される。
フレームメモリT−2,T−1,T,T+1,T+2では、ノイズ成分が付加された入力画像を順次、記憶する。
【0185】
制御部100cでは、各フレームメモリから、所定の探索範囲spの内の探索領域tpの画素の画素値、および位相情報が読み出され、メモリ2bに出力される。
読出部4cでは、メモリ2bの各素子20bごとの対応画素が読み出され、クラスコード生成部6および正規方程式加算部7に出力される。
【0186】
クラスコード生成部6では、読出部4cから出力された素子ごとの対応画素の値に基づいて、ノイズ成分が検出され、上述した図22に示すように所定の処理によりクラスコードが生成され、正規方程式加算部7に出力される。
【0187】
正規方程式加算部7では、クラスコードごとに、読出部4から出力された対応画素と教師画像の画素とに基づいて、上述した所定の処理により正規方程式が生成され、クラスコードごとの予測係数が生成され、係数記憶部(RAM)8に記憶される。
【0188】
以上、説明したように、本実施の形態に係る画像処理装置1cでは、入力画像にノイズ成分を付加するノイズ付加部5と、フレームメモリ3b−T+2,T+1,T,T−1,T−2と、メモリ2bと、メモリ2bの内の素子ごとに対応画素を読み出す読出部4cと、その対応画素に応じてクラスコードを生成するクラスコード生成部6と、クラスコード、対応画素および入力画素に応じて正規方程式を生成して予測係数を生成する正規方程式加算部7と、予測係数を記憶する係数記憶部(RAM)8と、所定の制御を行う制御部100cとを設けたので、所定の入力画像にノイズ成分が付加され、入力画像、およびノイズ成分が付加された画像に基づいて、クラスコードを生成して、学習を行うことができる。
この学習結果の情報は、例えば、第5の実施の形態に係る画像処理装置によりノイズ成分が付加された画像から元の高画質の画像を生成する際に用いられる。
【0189】
第5の実施の形態
予測
図24は、本発明に係る画像処理装置の第5の実施の形態の機能ブロック示す図である。
本実施の形態に係る画像処理装置1dは、例えば第4の実施の形態に係る画像処理装置1cで説明したクラスコードを用いて、入力画像のノイズ成分を推定し、もとの高画質な画像を生成する。
【0190】
画像処理装置1dは、例えば図24に示すように、メモリ2d、複数のフレームメモリ3b、例えばフレームメモリ3b−T+2,T+1,T,T−1,T−2、読出部4c、クラスコード生成部6、係数記憶部8d、推定演算部9、および制御部100dを有する
【0191】
本実施の形態に係る画像処理装置1dと、第4の実施の形態に係る画像処理装置1cとの、大きな相違点は、係数記憶部8d、推定演算部9を有することである。
【0192】
画像処理装置1dの制御部100dは、ノイズの予測処理を行う場合に、入力画像の5フレーム分(現フレームと前後2フレーム分)を、フレームメモリ3b−T+2〜T−2それぞれに保持する。
【0193】
制御部100dは、各フレームメモリ3bTに保持されている画像から参照領域trを読み出し、メモリ2dに格納する。
制御部100dは、読み出された参照領域trに対応している探索範囲spを他のフレームメモリ3b−T−2、T−1、T+1、T+2に設定し、位相を更新しながら探索領域tpを読み出しメモリ2dに格納していく。
【0194】
制御部100dは、読み出す参照領域trとしては、例えばラスタスキャンのような順序で、フレームメモリT内で所定の順番に位相をシフトしながら順次読み出していき、メモリ2dが最終的にフレームメモリ内の全画素の対応画素を出力する。
【0195】
例えば、制御部100dは、メモリ3dが5×5の場合、図23(a),(b)に示すように3×3画素ごとにシフトして参照領域trを切り出せば、フレームメモリT内の全ての画素位置で対応画素を得る。このため、フレームメモリTの全ての画素を処理できる。この場合、1つの参照領域trの読み出しに対し、メモリ2dは位相の異なる9つの対応画素を得て、この9つの対応画素を順次出力する。
【0196】
クラスコード生成部6は、メモリ2dから順次出力される対応画素それぞれに、画素のノイズ成分に基づいて、クラスコードを生成する。
【0197】
係数記憶部(ROM)8dは、例えば、第4の実施の形態に係る画像処理装置1cで学習時に係数記憶部8に記憶されたクラスコードごとの予測係数を記憶する。
係数記憶部8dは、クラスコード生成部6から出力されたクラスコードに応じて、記憶されているクラスコードに応じた予測係数を出力する。
【0198】
推定演算部9は、係数記憶部8dから出力された予測係数および対応画素に応じて、予測値を推定し出力する。
具体的には、推定演算部9は、係数記憶部8dから出力された予測係数aT+2、aT+1、a、aT−1、aT−2と、対応画素XT+2、XT+1、X、XT−1、XT−2に応じて、例えば上述した数式(2)により予測値yを算出して出力する。この予想値yはノイズ成分が除去された画素値である。
【0199】
以上、説明した構成の画像処理装置の動作を、相違点のみ簡単に説明する。
制御部100dは、フレームメモリT−2,T−1,T,T+1,T+2に、ノイズ成分が付加された入力画像を記憶する。
【0200】
制御部100dでは、各フレームメモリから、所定の探索範囲spの内の探索領域tpの画素の画素値、および位相情報が読み出され、メモリ2dに出力される。
読出部4cでは、メモリ2dの各素子20dごとの対応画素が読み出され、クラスコード生成部6および推定演算部9に出力される。
【0201】
クラスコード生成部6では、読出部4cから出力された素子ごとの対応画素の値に基づいて、ノイズ成分が検出され、上述した図23に示すように所定の処理によりクラスコードが生成され、推定演算部9に出力される。
【0202】
推定演算部9では、係数記憶部(ROM)8dから出力された予測係数および対応画素に応じて、上述した所定の処理を行い、予測値が推定され出力される。
【0203】
以上、説明したように、本実施の形態に係る画像処理装置1dでは、フレームメモリ3b−T+2,T+1,T,T−1,T−2と、メモリ2dと、メモリ2dの内の素子ごとに対応画素を読み出す読出部4cと、その対応画素に応じてクラスコードを生成するクラスコード生成部6と、クラスコードに応じた係数を記憶する係数記憶部(ROM)8dと、係数記憶部(ROM)8dから出力された予測係数および対応画素に応じて、予想値を生成する推定演算部9と、所定の制御を行う制御部100dとを設けたので、フレームメモリTに保持されているノイズがある入力画像に対して、1画素単位でノイズ除去をした画素を出力することができる。
【0204】
また、上述した構成により、クラス分類適応処理に必要な画素などを直接に探索および出力できる。これにより、例えば、動きベクトル検出後に動きベクトルによる位相補正を行い、必要な画素抽出するような手順を簡略化することができる。
【0205】
第6の実施の形態
図25は、本発明に係る画像処理装置の第6の実施の形態の機能ブロック図である。図26(a)は図25に示した画像処理装置のメモリの構成図、図26(b)は図26(a)に示したメモリの予想画素が格納される素子を示す図、図26(c)は図26(a)に示したメモリの素子の機能ブロック図である。
【0206】
本実施の形態に係る画像処理装置1eは、図25に示すように、メモリ2e、複数のフレームメモリ3b、例えばフレームメモリ3b−T+2,T+1,T,T−1,T−2、係数記憶部(ROM)8e、および制御部100eを有する。
【0207】
画像処理装置1eは、メモリ2eの素子20eそれぞれに、第5の実施の形態に係る画像処理装置1dのクラス分類適応処理機能を有することである。相違点のみ説明する。
【0208】
メモリ2eは、例えば図26(a)に示すように、5×5の素子20e−1〜25を有しており、各素子20eが配線により接続されている。
【0209】
素子20eは、図26(c)に示すように、複数の画素21b、例えば画素21b−T,T+2,T+1,T−1,T−2、差分絶対値総和A記憶部22b−1、差分絶対値総和B記憶部22b−2、複数の減算器24b、例えば減算器24b−1〜4、複数の絶対値生成部25b、例えば絶対値生成部25b−1〜4、加算器250、比較更新部26e、クラスコード生成部6e、推定演算部9e、および加算部28bを有する。
【0210】
クラスコード生成部6eは、比較更新部26eから、差分絶対値総和を更新したことを示す更新情報と、画素21b−T,T+2,T+1,T−1,T−2から出力された画素値に応じて、クラスコードを生成し、係数記憶部(ROM)8eに出力する。
【0211】
具体的には、クラスコード生成部6eは、比較更新部26eから、差分絶対値総和を更新したことを示す更新情報が入力されると、画素21b−T,T+2,T+1,T−1,T−2から出力された画素値に応じたクラスコードを生成し、係数記憶部(ROM)8eに出力する。
【0212】
推定演算部9eは、係数記憶部(ROM)8eから出力された予測係数、および画素21b−T,T+2,T+1,T−1,T−2から出力された画素に基づいて、予測値を推定し出力する。
【0213】
以上説明した構成の画像処理装置1eの動作を、相違点のみ簡単に説明する。制御部100eは、ノイズの予測処理を行う場合に、入力画像の5フレーム分(現フレームと前後2フレーム分)を、フレームメモリ3b−T+2〜T−2それぞれに保持する。
【0214】
制御部100eは、各フレームメモリ3bTに保持されている画像から参照領域trを読み出し、メモリ2eに格納する。
制御部100eは、読み出された参照領域trに対応している探索範囲spを他のフレームメモリ3b−T−2、T−1、T+1、T+2に設定し、位相を更新しながら探索領域tpを読み出しメモリ2eに格納していく。
【0215】
制御部100eは、読み出す参照領域trとしては、例えばラスタスキャンのような順序で、フレームメモリT内で所定の順番に位相をシフトしながら順次読み出していき、メモリ2eが最終的にフレームメモリ内の全画素の対応画素を出力できるようにする。
【0216】
メモリ2eの内の素子20eにおいて、クラスコード生成部6eでは、比較更新部26eから、差分絶対値総和を更新したことを示す更新情報が入力されると、画素21b−T,T+2,T+1,T−1,T−2から出力された画素値に応じたクラスコードを生成し、係数記憶部(ROM)8eに出力する。
【0217】
係数記憶部(ROM)8eでは、クラスコード生成部6eから出力されたクラスコードに応じて、記憶している係数が推定演算部9eに出力される。
推定演算部9eでは、係数記憶部(ROM)8eから出力された予測係数、および画素21b−T,T+2,T+1,T−1,T−2から出力された画素に基づいて、予測値が推定され出力される。
【0218】
推定演算部9では、係数記憶部(ROM)8eから出力された予測係数および対応画素に応じて、上述した所定の処理を行い、予測値が推定され、例えばフレームメモリ等へ出力される。
【0219】
以上、説明したように、本実施の形態に係る画像処理装置1eでは、メモリ2eの各素子20eごとに、クラスコード生成部6e、推定演算部9eをさらに設けたことにより、クラス分類適応処理機能を持たせることができる。
【0220】
具体的には、差分絶対値総和が更新されるたびに、画素T、画素T+1、画素T+2、画素T−1、画素T−2に格納されている画素を使って、クラス分類適応処理によるノイズ除去がなされ、予測された画素がその都度出力される。画素の出力のたびに、別のフレームメモリなどに、その値がかき換えられるようにしておくと最終的にノイズ除去後の画像が得られる。
【0221】
なお、本発明は本実施の形態に限られるものではなく、任意好適な種々の改変が可能である。
例えば、第4の実施の形態に係る画像処理装置1cと、第5の実施の形態に係る画像処理装置1dとをまとめてもよい。こうすることにより、ノイズ成分を学習してクラスコードを生成し、生成されたクラスコードに応じてノイズ成分を推定し高画質の画像を生成することができる。
【0222】
第7の実施の形態
プレーンマッチング
図27は、本発明に係る画像処理装置に係る第7の実施の形態の動作を説明するための概念図である。
例えば、図27(a)に示すように、入力画像の中に、時間の経過により移動するオブジェクトob1,ob2が存在し、所定の大きさの参照ブロックを設定した場合に、図27(b)に示すように、参照ブロック内に複数のオブジェクトが含まれてしまう場合がある。
【0223】
ブロックマッチングでは、ブロック全体の動きとして、動きベクトルを捉えるものであるため、参照ブロックの注目画素が本来持っている動き(オブジェクトob1)が別のオブジェクト(オブジェクトob2)の動きベクトルになってしまったり、両者のオブジェクトの中間の動きが求まってしまう場合がある。
【0224】
本実施の形態に係る画像処理装置では、後述するプレーンマッチングを行い、参照ブロック内に複数のオブジェクトが含まれている場合であっても、正確な動きベクトルを生成する。
【0225】
図28は、本発明に係る画像処理装置の第7の実施の形態のプレーンマッチングの動作を説明するための概念図である。図28を参照しながら、画像処理装置のプレーンマッチングの動作を説明する。
【0226】
プレーンマッチングは、例えば、図28(a)に示すようにオブジェクトob1,2が存在する場合に、図28(b)に示すように参照ブロックを設定し、図28(c)に示すように参照ブロックの内から注目画素と同一のオブジェクトだけの画素を摘出し、抽出した画素に基づいてマッチングを行う。
画像中から、プレーンマッチングのために、同一のオブジェクトごとの画素を抽出することを「プレーン分離」と言う。
【0227】
図29は、本発明に係る画像処理装置の第7の実施の形態の機能ブロック図である。
本実施の形態に係る画像処理装置1fは、図29に示すように、メモリ2f、複数のフレームメモリ3f、例えばフレームメモリ3f−T,T−1、読出部4f、制御部100f、およびプレーン分離部110を有する。相違点のみ説明する。
【0228】
メモリ2fは、例えば図29に示すように、入力画像のサイズをw×bとすると、(w−2)×(h−2)のようにほぼ全画面の素子数を有する。
画像処理装置1fは、動きベクトルの探索を行うために、例えば予めフレームメモリ3f−T−1の全画面にプレーン分離処理を行い、各画素のプレーン情報を、メモリ2fの内の全素子に格納する処理を行う。
【0229】
フレームメモリ3f−Tは、時刻Tのフレームを記憶する。フレームメモリ3f−Tは、例えば探索範囲sp(w×h)の大きさのフレームメモリであり、例えば制御部100fにより、所定の探索領域tp(w−2)×(h−2)の内の画素が読出され、メモリ2fに出力される。
【0230】
フレームメモリ3f−T−1は、時刻T−1のフレームを記憶する。フレームメモリ3f−T−1は、例えばw×hの大きさのフレームメモリであり、例えば制御部100fにより、所定の参照領域tr(w−2)×(h−2)の内の画素が読み出され、メモリ2fに出力される。
【0231】
読出部4fは、メモリ2fの各素子ごとに記憶されている動きベクトルを読み出して出力する。
プレーン分離部110は、フレームメモリ3f−T−1に記憶されている画像データに基づいて、後述するプレーン分離処理を行い、処理の結果のプレーン情報をメモリ2fに出力する。
制御部100fは、後述する所定の処理を行う。
【0232】
各構成要素について、以下、詳細に説明する。
メモリの構成
図30(a)は図29に示した画像処理装置のメモリを模式的に示す図である。図30(b)は図30(a)の一部を拡大した図である。図30(c)は図30(b)に示したメモリの素子の機能ブロック図である。
【0233】
メモリ2fは、図30(a),(b)に示すように、複数の素子20fを有する。
素子20fは、図30(c)に示すように、画素20−1、画素20−2、画素差分記憶部22f−1、差分総和記憶部22f−2、動きベクトル記憶部23、減算器24、絶対値生成部25、比較更新部26f、更新部27、加算部28f、プレーン情報記憶部29、およびスイッチ(Switch)30を有する。
【0234】
メモリ2fは、素子20f間の配線により、例えば図15に示すように、注目する素子(図15では素子20f−5)の8近傍の素子(図15では素子20f−1〜4,6〜9)に格納されている差分絶対値を、注目する素子に出力する。但し、各素子20fごとに、出力するか否かの判定を、スイッチ(switch)30が行う。
【0235】
また、メモリ2fは、第1の実施の形態に係るメモリ2aと同様に、単に1画素を格納するだけでなく2画素分、格納でき、それらの差分絶対値を演算できる。また、その結果である差分絶対値を格納する。
また、本実施の形態に格納される画素に対応した「プレーン情報」が格納できる点が、第2の実施の形態に係る画像処理装置とは異なる。
以下、各構成要素の相違点のみ説明する。
【0236】
画素差分記憶部22f−1は、記憶している差分絶対値を加算部28fへ出力する。
差分総和記憶部22f−2は、加算部28fから出力されたデータと、差分総和記憶部22a−2に記憶されている総和差分絶対値を総和に基づいて、更新を差分総和記憶部22a−2に出力する。
【0237】
加算部28fは、スイッチ30から出力されたデータ、および画素差分記憶部22f−1に記憶されている総和差分絶対値に基づいて、それらを加算し、比較更新部26fに出力する。
【0238】
比較更新部26fは、加算部28fから出力された差分絶対値総和Aと、差分総和記憶部22a−2に記憶されている差分絶対値総和(差分絶対値総和Bと言う)とを比較して、比較の結果、差分絶対値総和Aが小さい場合には、差分絶対値総和Aを差分総和記憶部22f−2に記憶させて、差分絶対値総和を更新する。
【0239】
比較更新部26fは、上述した更新を行った場合には、更新を行ったことを示す更新情報を更新部27に出力する。
比較更新部26fは、比較の結果、差分絶対値総和Aが大きい場合には、差分総和記憶部22a−2に記憶されている差分絶対値総和Bの更新を行わない。
【0240】
更新部27fは、比較更新部26fから出力された更新情報、および位相情報に基づいて、動きベクトル記憶部23に記憶されている動きベクトルを更新する。
具体的には、更新部27fは、比較更新部26fから差分絶対値が更新されたことを示す更新情報が出力した場合には、その時の位相を動きベクトルとして、動きベクトル記憶部23に記憶させることで、動きベクトルを更新する。
【0241】
加算部28fは、画素差分記憶部22a−1から出力された差分絶対値a、および、スイッチ30から出力された、その画素の近傍の8つの素子20a(8近傍の素子20aとも言う)それぞれの差分絶対値aに基づいて、それらを加算して、差分絶対値総和Aを生成し、比較更新部26fに出力する。
プレーン情報記憶部29は、後述するプレーン情報を記憶する。
【0242】
スイッチ30は、プレーン情報の一致の判定を行い、各素子20fの差分絶対値aを加算部28fに出力するゲートの役割を有する。
例えばスイッチ(Switch)30は、注目する素子20fのプレーン情報と、他の8近傍の素子20fのプレーン情報に応じて、差分絶対値を加算部28fに出力する。
【0243】
具体的には、スイッチ30は、注目する素子20fのプレーン情報記憶部29に記憶されているプレーン情報と、他の8近傍の素子20fそれぞれのプレーン情報記憶部29に記憶されているプレーン情報とを比較し、一致している場合には、画素差分記憶部22f−1に記憶されている差分絶対値を加算部28fに出力し、一致していない場合には8近傍の素子20fそれぞれに記憶されている差分値絶対値を加算部28fに出力しない。
【0244】
各素子201の総和が更新された場合、その時の動きベクトル(動きベクトル)も予め格納されているものから更新される。
【0245】
プレーン分離とプレーン情報
図31は、図29に示した画像処理装置のプレーン分離部の処理を説明するための図である。
入力画像中の背景やそれぞれのオブジェクトなどの各要素をプレーンと言う。また、それぞれのプレーンに分離することをプレーン分離と言う。
【0246】
プレーン分離部110は、例えば図31に示すように「プレーン1にはLEVEL1を割り当てる」というようにプレーン分離された各プレーンに所定の値(ラベル)を割り当てる。画像中の各画素がどのプレーンに属しているかを表したものを、プレーン情報と言う。
以下、プレーン分離の手法の一具体例を説明する。
【0247】
図32は、画像処理装置1fのプレーン分離部の一具体例を示す機能ブロックである。
例えばプレーン分離部110は、入力された画像を、画像中の同じオブジェクトや背景などでは、その内部の輝度や色は同じ様なレベルであるということを利用して、所定のプレーンに分離する。
【0248】
プレーン分離部110は、例えば図32に示すように、ヒストグラム演算部111、ピーク検出部112、谷検出部113、消去部114、谷統合部115、およびラベリング部116を有する。
【0249】
ヒストグラム演算部111は、入力画像に応じて、レベル(輝度あるいは色)ごとのヒストグラム(度数分布)を生成し、保持する。
図33は、図32に示した画像処理装置1fのプレーン分離部のヒストグラム演算部111が生成するヒストグラムの一具体例を示す図である。横軸はレベル、縦軸はヒストグラム(度数)を示す。
【0250】
ヒストグラム演算部111は、入力画像に応じて、例えば図33に示すようにヒストグラムを生成する。
ヒストグラム演算部111は、生成したヒストグラム(度数分布)を、ピーク検出部112に出力する。
【0251】
ピーク検出部112は、入力されたヒストグラムに基づいて、そのヒストグラムの内の最大の度数のレベル(ピーク)を検出し、谷検出部113に出力する。例えば、ピーク検出部112は、ヒストグラム演算部111から出力されたヒストグラム、または消去部114から出力されたヒストグラムに基づいて、そのヒストグラムの内の最大の度数のレベル(ピーク)を検出し、谷検出部113に出力する。
【0252】
谷検出部113は、ヒストグラムのピークに基づいて、例えば、そのピークを含むオブジェクトの度数を特定する。
例えば、谷検出部113は、ピーク検出部112から出力された、最大の度数のレベル(ピーク)に基づいてヒストグラムの、そのレベルピークの両脇の谷を2点それぞれ検出する。
【0253】
具体的には、谷検出部113は、ピークを中心とした所定の範囲内、例えば+aの内で最も度数の少ない点を右側の谷とし、所定の範囲内、例えば−aの内で、最も度数の少ない点を左側の谷とする。
【0254】
消去部114は、例えば、所定のピークを含むオブジェクトの度数を消去する。
例えば、消去部114は、ヒストグラムのピークを中心として、左右の2点の谷に囲まれるレベルに対応する度数を、ヒストグラムの中から消去し、ピーク検出部112に出力する。
【0255】
図34は、図32に示した画像処理装置のプレーン分離部の消去部の動作を説明するためのヒストグラムの一具体例である。
消去部114は、例えば図34に示すように、所定のピークを中心として、左右の2点の谷に囲まれるレベルに対応する度数を、ヒストグラムの中から消去し、ピーク検出部112に出力する。
【0256】
消去部114は、ヒストグラム中の全てのレベルに対する度数が0になったと判別した場合には、谷の度数を谷統合部115に出力する。
【0257】
谷統合部115は、消去部114から出力された各谷の度数に基づいて、レベルの近い谷を統合し、所定のラベリング部116に出力する。
具体的には、谷統合部115は、各谷に対してレベルの近い谷は統合する。
より具体的には、谷統合部115は、谷の検出された順を優先して、先に検出された谷の所定の範囲、例えば±bの範囲に含まれる他の谷を消去する。
【0258】
図35は、図32に示した画像処理装置の谷統合部により統合される前のヒストグラムの谷を説明するための図である。図36は、図32に示した画像処理装置の谷統合部により統合されたヒストグラムの谷を説明するための図である。
【0259】
谷統合部115では、具体的には、例えば図35に示すように消去部114から出力された各谷の度数に基づいて、図36に示すように、レベルの近い谷を統合する。
【0260】
ラベリング部116は、入力画像、および谷統合部115から出力された画像に応じて、プレーン分離された各プレーンに所定の値(ラベル)ラベルを割り当てる。具体的には、ラベリング部116は、入力画像の各画素に対して、各谷の間に存在する画素は同じプレーンとみなし、同じラベルを割り当てる。
【0261】
ラベリング部116は、より具体的には、各画素ごとにレベル(輝度あるいは色)がどの谷の内部にあるかを判定し、その谷の内部の画素ごとに同一ラベルを割り当てる。
【0262】
図37は、図32に示した画像処理装置のプレーン分離部の動作を説明するためのフローチャートである。
【0263】
ステップST201において、ヒストグラム演算部111では、値レベル(輝度あるいは色)ごとのヒストグラムが生成され保持される。
また、ヒストグラム演算部111では、生成されたヒストグラムが、ピーク検出部112に出力される。
【0264】
ステップST202において、ピーク検出部112では、入力されたヒストグラムに基づいて、そのヒストグラムの内の最大の度数のレベル(ピーク)が検出され、谷検出部113に出力される。
具体的には、ピーク検出部112では、ヒストグラム演算部111から出力されたヒストグラム、または消去部114から出力されたヒストグラムに基づいて、そのヒストグラムの内の最大の度数のレベル(ピーク)が検出され、谷検出部113に出力される。
【0265】
ステップST203において、谷検出部113では、ピークの両脇の谷が検出される。具体的には、谷検出部113では、ピークを中心とした+aの範囲内での最も度数の少ない点を右側の谷とする。また、谷検出部113では、−aの範囲内での最も度数の少ない点を左側の谷とする。
【0266】
谷検出部113は、ヒストグラムのピークに基づいて、例えば、そのピークを含むオブジェクトの度数を特定する。
例えば、谷検出部113は、ピーク検出部112から出力された、最大の度数のレベル(ピーク)に基づいてヒストグラムの、そのレベルピークの両脇の谷を2点それぞれ検出する。
具体的には、谷検出部113は、ピークを中心とした所定の範囲内、例えば+aの内で最も度数の少ない点を右側の谷とし、所定の範囲内、例えば−aの内で、最も度数の少ない点を左側の谷とする。
【0267】
ステップST205において、消去部114では、左右の2点の谷に囲まれるレベルに対応する度数がヒストグラム中から消去される。
また、消去部114では、ヒストグラムの中の全てのレベルに対する度数が0になったか否かが判別され、0になっていないと判別された場合には、ステップST202の処理に戻る。
【0268】
一方、ステップST205の判別において、消去部114では、ヒストグラム中の全てのレベルに対する度数が0になったと判別された場合には、谷の度数が谷統合部115に出力される。
【0269】
ステップST206において、谷統合部115では、消去部114から出力された各谷の度数に基づいて、レベルの近いものが統合され、所定のラベリング部116に出力される。具体的には、谷統合部115では、各谷に対してレベルの近いものが統合される。より具体的には、谷統合部115では、谷の検出された順を優先して、先に検出された谷の所定の範囲、例えば±bの範囲に含まれる他の谷が消去される。
【0270】
ステップST207において、ラベリング部116では、入力画像、および谷統合部115から出力された画像に応じて、プレーン分離された各プレーンに所定の値(ラベル)ラベルが割り当てられる。
【0271】
具体的には、ラベリング部116では、入力画像の各画素に対して、各谷の間に存在する画素は同じプレーンとみなし、同じラベルが割り当てられる。ラベリング部116では、より具体的には、各画素ごとにレベル(輝度あるいは色)がどの谷の内部にあるかが判定され、その谷の内部の画素ごとに同一ラベルが割り当てられる。
そして、一連のプレーン分離に関する動作を終了する。
【0272】
図38は、図29に示した画像処理装置の動作を説明するためのフローチャートである。画像処理装置1fの動作を、素子20fを中心に図38を参照しながら説明する。
【0273】
簡単のため、プレーンマッチングを行うメモリに関して、簡単のためにブロックサイズ3×3画素、探索範囲spを画素単位で(−1,−1)〜(1,1)として説明する。
【0274】
ここで、注目素子とは、図30(b)において、実際に動きベクトルが格納される素子の1つと想定する。メモリ20fの端にある素子ではない。
簡単な説明のために画像のサイズをw×bとする。
【0275】
プレーン分離部110では、フレームメモリ3f−T−1に記憶されている画像に基づいて、上述した所定のプレーン分離処理が行われ、処理の結果のプレーン情報がメモリ2fの内の各素子20fごとに出力される。
素子20fそれぞれは、プレーン分離部110から出力されたプレーン情報を記憶する。
具体的には、素子20fのプレーン情報記憶部29それぞれに、1画素分のプレーン情報が格納される(ST301)。
【0276】
フレームメモリ3f−T−1から、図29に示すように、(w−2)×(h−2)参照領域trの各画素が、メモリ2fの内の各素子20fそれぞれに格納される。
具体的には、図30(c)に示すように、各素子2fの画素20−2に参照領域trの1画素を格納することになる。
次に、探索範囲sp内で位相を更新しながら、(w−2)×(h−2)の領域を読み出し、その領域内の各画素をメモリ内の各素子ごとに格納する(ST302)。この(w−2)×(h−2)の領域を「探索領域tp」と言う。
【0277】
図30(c)に示すように、各素子20fの画素20−1の部分に探索領域tpの1画素を格納することになる。
位相の更新と探索領域tpの読み出しは、実際には探索領域tpの画素数が違うだけで前述したブロックマッチングの場合と同様で(−1,−1)〜(1−1)の範囲で9回行われ、9回終わると終了する。
【0278】
各素子20内で、減算器24では、画素20−1に格納された値と画素20−2に格納された値の差分値が生成され、絶対値生成部25では減算器24から出力された差分値の絶対値(差分絶対値a)が生成され、画素差分記憶部22f−1では差分絶対値aが格納される(ST305)。
【0279】
次に各注目素子において、その8近傍の素子からプレーン情報を読み出される。
具体的には、スイッチ30では、注目素子20fのプレーン情報記憶部29に記憶されているプレーン情報と、他の8近傍の素子20fのプレーン情報記憶部29が記憶する各プレーン情報とが同じであるか否かの判定が行われる。
スイッチ30では、同じであると判定された素子20fの画素差分記憶部22f−1が記憶している差分絶対値aが読み出されて加算される。
加算部28fでは、スイッチ30それぞれから出力された差分絶対値aが加算され、差分絶対値総和Aが求められる(ST306)。
【0280】
次に各注目素子において、比較更新部26fでは、予め格納されている差分絶対値総和(差分絶対値総和B)と差分絶対値総和Aが比較され(ST307)、差分絶対値総和Aが小さい場合、差分総和記憶部22f−2に格納する値を差分絶対値総和Bから差分絶対値総和Aに更新する(ST309)。
一方、比較更新部26fでは、差分絶対値総和Aが大きい場合は更新を行わず、次の位相の更新および探索領域tpの読み出しへと移行する。
ところで、初期状態では注目素子に差分絶対値総和は格納されていない。その場合は、無条件に最初の差分絶対値総和が格納される。
【0281】
次に、ある注目素子の差分絶対値総和が更新された場合のみ、そのときの位相を真の動きベクトルとしてその注目素子に予め格納されている動きベクトルが更新される(ST310)。
以上より位相の更新が終了した時点で、9つの各注目素子には探索範囲spにおける画素差分絶対値総和の最小値と、それが格納されたときの動きベクトルが格納されている。
読出部4fでは、各注目素子から、これらの動きベクトルが読出され出力される。
【0282】
以上、説明したように本実施の形態に係る画像処理装置では、入力画像に応じてレベル(輝度あるいは色)ごとのヒストグラム(度数分布)を生成するヒストグラム演算部111と、そのヒストグラムに基づいて、そのヒストグラムの内の最大の度数のレベル(ピーク)を検出するピーク検出部112と、ヒストグラムのピークに基づいて、例えば、そのピークを含むオブジェクトの度数を特定する谷検出部113と、所定のピークを含むオブジェクトの度数を消去する消去部114と、消去部114から出力された各谷の度数に基づいて、レベルの近い谷を統合する谷統合部115と、入力画像、および谷統合部115から出力された画像に応じて、プレーン分離された各プレーンに所定の値(ラベル)ラベルを割り当てるラベリング部116とを有するプレーン分離部110と、素子20fそれぞれに、プレーン情報を記憶するプレーン情報記憶部29と、プレーン情報の一致の判定を行い、各素子20fの差分絶対値aを加算部28fに出力するスイッチ30とを設けたので、例えば参照ブロックの内に複数のオブジェクトが含まれている場合であっても、正確な動きベクトルを生成することができる。
【0283】
第8の実施の形態
図39は、本発明に係る画像処理装置の第8の実施の形態の機能ブロック図である。
本実施の形態に係る画像処理装置1gは、図39に示すように、メモリ2g、複数のフレームメモリ3g、例えばフレームメモリ3g−T,T−1、読出部4g、制御部100g、プレーン分離部110g、プレーン情報バッファ120を有する。
【0284】
画像処理装置1gと、第7の実施の形態に係る画像処理装置1fの相違点は、メモリ2g、複数のフレームメモリ3g、例えばフレームメモリ3g−T,T−1、読出部4g、制御部100g、プレーン分離部110g、およびプレーン情報バッファ120である。相違点のみ説明する。
【0285】
メモリ2gは、所定の数の素子20f、例えば5×5の素子20fを有する。
プレーン分離部110gは、フレームメモリ3g−T−1に記憶されている画像データの参照領域tr、例えば5×5の大きさの参照領域trごとに、その参照領域trの内の画素に基づいてプレーン分離処理を行い、処理の結果のプレーン情報をプレーン情報バッファ120に出力する。
【0286】
また、このプレーン分離部110gは、この形態に限られるものではない。プレーン分離部110gは、フレームメモリ3g−T−1に記憶されている画像データに基づいて、フレームメモリT−1に記憶されている画像のプレーン分離処理を行い、処理の結果のプレーン情報をプレーン情報バッファ120に出力してもよい。
【0287】
プレーン情報バッファ120は、例えば、プレーン分離部110gから出力された全画面サイズの画素を記憶する。
プレーン情報バッファ120は、例えば、プレーン分離部110gから出力された5×5の参照領域trごとのプレーン情報を、所定の位置(アドレス)に格納してもよい。
プレーン情報バッファ120は、所定の位置(アドレス)のプレーン情報をメモリ2gに出力し、メモリ2gの対応する素子20fのプレーン情報記憶部29に記憶させる。
【0288】
制御部100gは、例えば、上述した処理に応じて所定の処理を行う。
また、制御部100gは、例えば上述した処理に応じて、フレームメモリ3gやメモリ2g等に、所定のデータの書込み処理や読み込み処理等を行う。
【0289】
以上、説明した構成の画像処理装置の動作を、相違点のみ簡単に説明する。
プレーン分離部110gでは、フレームメモリ3g−T−1に記憶されている画像データの参照領域tr、例えば5×5の大きさの参照領域trごとに、その参照領域trの内の画素に基づいてプレーン分離処理が行われ、処理の結果のプレーン情報がプレーン情報バッファ120に出力され、プレーン情報バッファ120では、そのプレーン情報が所定の位置(アドレス)に格納される。
【0290】
以降は、上述した第7の実施の形態と同様に、メモリ2gにおいて、画素21−1に参照領域trの画素が記憶され、画素21−2に探索領域tpの画素が記憶される。
【0291】
減算器24により画素21−1に記憶されている画素と、画素21−2に記憶されている探索領域tpの画素の差分値が生成され、絶対値生成部25によりその差分値の絶対値である差分絶対値が生成され、画素差分記憶部22−1に記憶される。
【0292】
スイッチ30では、プレーン情報記憶部29に記憶されているプレーン情報と、注目素子の周辺の素子20のプレーン情報記憶部29に記憶されているプレーン情報とが比較され、一致している場合には、その周辺部の素子20の画素差分記憶部22f−1に記憶されている差分絶対値が、注目画素の加算部28fに出力される。
加算部28fでは、スイッチ30から出力された差分絶対値と、画素差分記憶部22f−1に記憶されている差分絶対値が加算され、比較更新部26fに出力される。
【0293】
比較更新部26fでは、差分総和記憶部22f−2に記憶されている差分総和値と、加算部28fから出力された差分総和値とが比較され、加算部28fから出力された差分総和値の方が小さい場合には、その小さい差分総和値が差分総和記憶部22f−2に出力される。差分総和記憶部22f−2では、その差分総和値が記憶されて、更新される。
【0294】
また、比較更新部26fでは、画素差分記憶部22f−2に記憶されている差分総和値を更新した場合には、更新したことを示す更新情報を更新部27が出力される。
更新部27では、比較更新部26fから、その更新したことを示す更新情報が出力されると、探索領域tpと参照領域trとの位相情報が動きベクトル記憶部23に記憶される。
探索範囲spの内の探索領域tpの位相が更新されて、全ての探索範囲spの内の全ての位相の探索領域tpと参照領域trとが比較され、動きベクトルが生成される。
【0295】
以上、説明したように、本実施の形態に係る画像処理装置1gは、第7の実施の形態に係る画像処理装置1fと比べて、フレームメモリ3g−T−1に記憶されている画像データに基づいて、プレーン分離を行いプレーン情報を生成するプレーン分離部110gと、そのプレーン情報を記憶するプレーン情報記憶部29とを設け、所定の大きさ、例えば5×5の素子20fを含むメモリ2gに、所定の探索範囲spおよび参照領域trの内の画像とを入力し、周辺の素子20fのプレーン情報と一致している場合にのみ、差分総和記憶部22f−2に記憶されている差分総和値を更新し、更新された場合にのみ動きベクトルを更新するので、参照領域trの内に複数のオブジェクトがある場合であっても、正確に動きベクトルを生成することができる。
また、プレーン情報バッファ120を設けたことにより、全画面サイズのプレーン情報を記憶して効率よく所定の処理を行うことができる。
【0296】
第9の実施の形態
プレーン情報を使った動きベクトルの補正
ブロックマッチングのブロックサイズやプレーンマッチングのプレーンの面積が小さい場合は、入力画像にノイズがのっていたりすると各画素の動きベクトル検出が誤る可能性が高くなる。
第9の実施の形態に係る画像処理装置1hのメモリ2hに格納されているプレーン情報を利用して、上述のような場合でも精度のよい動きベクトルを生成する。
【0297】
図40は、本発明に係る画像処理装置の第9の実施の形態の機能ブロック図である。
画像処理装置1hは、プレーンマッチング、動きベクトル検出の結果と、プレーン情報が格納されるメモリの構造を利用して、動きベクトルの検出を行う。
【0298】
画像処理装置1hは、図40に示すように、メモリ2f、複数のフレームメモリ3f、例えばフレームメモリ3f−T,T−1、読出部4h、制御部100h、プレーン分離部110h、および動きベクトル補正部130とを有する。
【0299】
画像処理装置1hのメモリ2fは、第7の実施の形態に係る画像処理装置1fのメモリ2fと同じ構造である。
画像処理装置1hは、メモリ2fの内に、プレーン情報や動きベクトルを格納される処理や、プレーンマッチング処理も、第7の実施の形態に係る画像処理装置1fとほぼ同様である。
【0300】
図41は、図40に示した画像処理装置の動きベクトル補正部の動作を説明するための図である。
画像処理装置1hは、上述した第7の実施の形態に係る画像処理装置1fのプレーンマッチングを出力するメモリ2fでの動きベクトル検出が終了した時点で、図41に示すように、ある注目画素に対する動きベクトルを出力する。以下、詳細に説明する。
【0301】
動きベクトル補正部130は、注目素子を中心とした、例えばメモリ内の5×5の格子領域に対して注目素子と同じプレーン情報をもつ素子のみから、動きベクトルを読み出し、その読み出された動きベクトルの頻度を求め、最も高い動きベクトルを注目素子の動きベクトルとする。
【0302】
具体的には、動きベクトル補正部130は、例えば読出部4hから出力された、注目素子を中心とした、例えばメモリ内の5×5の格子領域に対して注目素子のプレーン情報記憶部29に記憶されているプレーン情報と、同じプレーン情報をもつ素子のみから、動きベクトル記憶部23に記憶されている動きベクトルを読み出し、その読み出された動きベクトルの頻度を求め、最も高い動きベクトルを注目素子の動きベクトルとする。
【0303】
以上説明した構成の動作を、簡単に説明する。
読出部4hから注目素子を中心とした、例えばメモリ内の5×5の格子領域に対して注目素子のプレーン情報記憶部29に記憶されているプレーン情報と、同じプレーン情報をもつ素子のみから、動きベクトル記憶部23に記憶されている動きベクトルが読み出される。
動きベクトル補正部130では、その読み出された動きベクトルの頻度を求め、最も高い動きベクトルを注目素子の動きベクトルとする。
【0304】
以上、説明したように、動きベクトル補正部130は、注目画素周辺の同一のプレーンの画素はほぼ同じ動きであると仮定して、通常のマッチングでは注目画素の動きベクトルが誤っている場合でも、その注目画素が本来持っている可能性が高い動きベクトルを算出し、それに置き換えることで動きベクトルの精度をあげることができる。
【0305】
また、各素子ごとにプレーン情報を格納できるメモリ2fを設けたので、動きベクトルを導出する際に、誤りやすい複数のオブジェクトの境界部分などにおいても、動きベクトルを正確に求めることができる。
【0306】
また、注目画素の周辺の領域で同一プレーンごとに最頻の動きベクトルを求め、その動きベクトルを用いて補正することで、例えばノイズなどによって動きベクトルが誤りやすい場合でも、正確に動きベクトルを求めることができる。
【0307】
【発明の効果】
本発明によれば、少ない計算量で動きベクトルを算出可能な画像処理装置および画像処理方法を提供することができる。
【図面の簡単な説明】
【図1】一般的な画像処理装置を示す図である。
【図2】図1に示した一般的な画像処理装置の動作を示すフローチャートである。
【図3】位相シフトによる位相ブロック読み出しから、評価テーブルメモリへの記録までの動作の一具体例を説明するための図である。
【図4】本発明に係る画像処理装置の第1の実施の形態の機能ブロック図である。
【図5】(a)は第1の実施の形態に係る画像処理装置のメモリを示す図である。(b)は(a)に示した画像処理装置のメモリの内の素子の機能ブロック図である。
【図6】図4に示した画像処理装置の画素マッチングにおける位相の更新と、探索領域tpの読み出しを説明するための図である。(a)は、探索範囲内の位相を示す図である。(b)は位相と探索領域tpの関係を示す図である。
【図7】図1に示した画像処理装置1の動作を説明するためのフローチャートである。
【図8】本発明に係る画像処理装置の第2の実施の形態の機能ブロック図である。
【図9】(a)は図8に示した画像処理装置1aのメモリを示す図である。(b)は図8に示したメモリの構成の一具体例を示す図である。(c)は図8に示した画像処理装置1aの動きベクトルが格納されるメモリの構成を示す図である。
【図10】図8に示した画像処理装置の動作、特に位相の更新と探索領域tpの読み出しを行う動作について説明するための図である。(a)は探索範囲sp内の位相を示す図である。(b)は位相と探索領域tpの関係を示す図である。
【図11】図8に示した画像処理装置1aの動作を説明するためのフローチャートである。
【図12】図8に示した画像処理装置のフレームの参照領域trから切り出されるブロックを示す図である。
【図13】本発明の第3の実施の形態に係る画像処理装置の対応画素の摘出を説明するための概念図である。
【図14】本発明に係る画像処理装置の第3の実施の形態の機能ブロック図である。
【図15】(a)は図14に示した画像処理装置1bのメモリ2bを示す図である。(b)は対応画素が格納されるメモリを示す図である。(c)は、(a)に示したメモリ2bの素子20bの機能ブロック図である。
【図16】(a)は、フレームT+2の探索範囲spT+2(9×9)と、探索領域tpT+2の位相を示す図である。(b)は、フレームT+1の探索範囲spT+1(7×7)と、探索領域tpT+1の位相を示す図である。(c)は、フレームT−1の探索範囲spT−1(7×7)と、探索領域tpT−1の位相を示す図である。(d)は、フレームT−2の探索範囲spT−2(9×9)と、探索領域tpT−2の位相を示す図である。(e)は、図14に示した画像処理装置1bの位相の更新と探索領域tpの読み出しの処理を説明するための図である。
【図17】図14に示した画像処理装置の動作を説明するためのフローチャートである。
【図18】本発明に係る画像処理装置の第4の実施の形態の機能ブロック図である。
【図19】図18に示した画像処理装置1cのノイズ付加部の第1の具体例を示す機能ブロック図である。
【図20】図18に示した画像処理装置1cのノイズ付加部の第2の具体例を示す機能ブロック図である。
【図21】図18に示した画像処理装置1cのノイズ付加部の第3の具体例を示す機能ブロック図である。
【図22】図18に示した画像処理装置1cのクラスコード生成部のクラスコードを発生(ノイズ成分検出)させる原理を説明するための図である。
【図23】図18に示した画像処理装置1cが、クラス分類適応処理のために、参照領域trのメモリに読み出すべき手順を説明するための図である。(a)はシフト前の状態を示す図である。(b)は、シフト後の状態を示す図である。
【図24】本発明に係る画像処理装置の第5の実施の形態の機能ブロック示す図である。
【図25】本発明に係る画像処理装置の第6の実施の形態の機能ブロック図である。
【図26】(a)は図25に示した画像処理装置のメモリの構成図、(b)は(a)に示したメモリの予想画素が格納される素子を示す図、(c)は(a)に示したメモリの素子の機能ブロック図である。
【図27】本発明に係る画像処理装置に係る第7の実施の形態の動作を説明するための概念図である。
【図28】本発明に係る画像処理装置の第7の実施の形態のプレーンマッチングの動作を説明するための概念図である。
【図29】本発明に係る画像処理装置の第7の実施の形態の機能ブロック図である。
【図30】(a)は図29に示した画像処理装置のメモリを模式的に示す図である。(b)は(a)の一部を拡大した図である。(c)は(b)に示したメモリの素子の機能ブロック図である。
【図31】図29に示した画像処理装置のプレーン分離部の処理を説明するための図である。
【図32】画像処理装置1fのプレーン分離部の一具体例を示す機能ブロックである。
【図33】図32に示した画像処理装置1fのプレーン分離部のヒストグラム演算部が生成するヒストグラムの一具体例を示す図である。
【図34】図32に示した画像処理装置のプレーン分離部の消去部の動作を説明するためのヒストグラムの一具体例である。
【図35】図32に示した画像処理装置の谷統合部により統合される前のヒストグラムの谷を説明するための図である。
【図36】図32に示した画像処理装置の谷統合部により統合されるヒストグラムの谷を説明するための図である。
【図37】図32に示した画像処理装置のプレーン分離部の動作を説明するためのフローチャートである。
【図38】図29に示した画像処理装置の動作を説明するためのフローチャートである。
【図39】本発明に係る画像処理装置の第8の実施の形態の機能ブロック図である。
【図40】本発明に係る画像処理装置の第9の実施の形態の機能ブロック図である。
【図41】図40に示した画像処理装置の動きベクトル補正部の動作を説明するための図である。
【符号の説明】
1…画像処理装置、2…メモリ、3…フレームメモリ、4…読出部、5…ノイズ付加部、6…クラスコード生成部、7…正規方程式加算部、8…係数記憶部、9…推定演算部、20…素子、21…画素、22…最小画素差分記憶部、22a−1…画素差分記憶部、22a−2…差分総和記憶部、22b−1…差分絶対値総和A記憶部、22b−2…差分絶対値総和B記憶部、23…動きベクトル記憶部、24…減算器、25…絶対値生成部、26…比較更新部、27…更新部、28…加算器、29…プレーン情報記憶部、51…RFモジュレータ(RF MODULATOR)、52…アテネータ減衰器、53…RFデモジュレータ(RFDEMODULATOR)、54…減算器、55…加算器、56…フレーム加算器、100…制御部、110…プレーン分離部、111…ヒストグラム演算部、112…ピーク検出部、113…谷検出部、114…消去部、115…谷統合部、116…ラベリング部、120…プレーン情報バッファ、130…動きベクトル補正部、250…加算器。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing apparatus and an image processing method for generating a motion vector based on image data, for example.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, block matching has been known as a technique for detecting a motion vector between frames of an image.
[0003]
FIG. 1 is a diagram showing a general image processing apparatus. FIG. 2 is a flowchart showing the operation of the general image processing apparatus shown in FIG.
The block matching will be described with reference to FIGS.
[0004]
The block matching is to obtain a motion vector indicating where a certain block in the image at a certain time T-1 has moved at the next time T.
[0005]
For example, as shown in FIG. 1, the image processing device 1s includes a frame memory 3s-T, a frame memory 3s-T-1, a search range memory ms, a reference block memory mr, a phase block memory mp, a calculation unit pc, and an evaluation table. It has a memory mv and a minimum value search unit ps.
[0006]
The image processing device 1s sets a search range at time T, and within that range, performs matching between the reference block at time T-1 and pixels in the block at each phase (position) in the search range. A close phase is set as the position of the block at time T.
Therefore, a shift amount of a block between two frames is defined as a motion vector.
[0007]
The operation of the image processing device 1s will be described with reference to FIG.
A search range and a reference block br at a position where a motion vector is to be obtained are read from the frame memory T and the frame memory T-1 in which continuous input images are temporally stored (ST1, ST2).
They are stored in the search range memory ms and the reference block memory mr (ST3).
[0008]
Next, a block having the same shape and size as the reference block br is read from the search range memory ms for each phase. This is referred to as a phase block bp.
The phase is sequentially updated when the recording to the evaluation table described later is completed, and each time the phase block bp at that phase is read (ST4).
[0009]
The read phase block bp is stored in the phase block memory mp, for example, as shown in FIG.
[0010]
FIG. 3 is a diagram for explaining a specific example of an operation from reading of a phase block by phase shift to recording in the evaluation table memory mr. FIG. 3A is a diagram illustrating a state before the phase shift, and FIG. 3B is a diagram illustrating a state after the phase shift. The operation up to recording in the evaluation table memory will be described with reference to FIG.
The reference block size is 3 × 3 pixels, and the search range is 5 × 5 pixels.
[0011]
Here, the phase block bp read when shifting from phase 1 to phase 2 is at a position shifted by one pixel in the horizontal direction. For example, the amount of phase shift due to updating is one pixel.
[0012]
Next, the computing unit pc computes the difference absolute value of each corresponding pixel between the reference block br and the phase block bp, and obtains the difference absolute value sum S of those values.
[0013]
(Equation 1)
Figure 2004078862
[0014]
The sum of absolute difference values S is a pixel value k of a pixel in the reference block br.sAnd the pixel value k of the pixel in the corresponding phase block bppIs calculated using, for example, Equation (1) (ST5).
[0015]
Next, the difference absolute value sum S is stored in the evaluation table (ST6).
Specifically, as shown in FIG. 1, the absolute difference sum S is stored in the evaluation table memory mv. In the evaluation table, the sum of absolute difference values S is stored for each phase corresponding to the phase block to be read.
[0016]
As shown in FIG. 3, in the general image processing apparatus 1 s, for example, when the phase shifts from phase 1 to phase 2, the position stored in the evaluation table shifts according to the shift.
[0017]
When reading of all the phase blocks bp in the search range and recording in the evaluation table are completed (ST7), the minimum value search unit ps searches for the minimum value in the evaluation table (ST8).
[0018]
On the other hand, if it is determined in step ST7 that the evaluation value tables for all phases are not recorded, the process returns to step ST3.
This means that a block within the search range closest to the reference block br is being searched.
[0019]
As described above, in the evaluation table, the absolute difference sum S is recorded for each phase corresponding to the phase block bp to be read. Therefore, if the minimum value is found in the evaluation table, the phase of the block corresponding to the reference block br within the search range can be known. The information on the phase is output as a motion vector.
[0020]
[Problems to be solved by the invention]
The following three points can be cited as problems of the general image processing apparatus described above.
1. A procedure for temporarily storing the values of the phase block and the evaluation table is required. Since a memory for that purpose must be prepared in the circuit, the layout of the circuit becomes complicated. Also, for example, when it is desired to calculate motion vectors at a large number of positions in one frame, it is necessary to search for the motion vectors in order for each position, and a time loss occurs.
2. Only after all the values in the evaluation table are recorded, the search for the minimum value starts. Therefore, it is necessary to read out each phase block and update the phase twice for the minimum value search.
3. The output in this case is a motion vector. For example, when processing for reading a pixel extracted from the motion vector is performed, another procedure of extracting the pixel from the motion vector is required.
[0021]
The present invention has been made in view of such circumstances, and an object thereof is to provide an image processing apparatus and an image processing method capable of calculating a motion vector with a small amount of calculation.
[0022]
[Means for Solving the Problems]
To achieve the above object, an image processing apparatus according to a first aspect of the present invention is an image processing apparatus that performs matching between first image data and second image data, and includes at least one image element including matching data. A first pixel storage unit that stores a first pixel for reference in the first image data; and the second image data according to the first pixel. A second pixel storage unit that stores a second pixel within a predetermined search range, a difference value storage unit that stores an updatable first difference value, and an updatable first pixel and an updatable first pixel. Phase information storage means for storing phase information relating to the phase with the second pixel; a first pixel stored in the first pixel storage means; and a second information stored in the second pixel storage means. A second difference value with respect to the pixel, and a difference value stored in the difference value storage means. The first compares the difference value is, according to the result of the comparison, and a difference value updating means for updating the first difference value stored in the difference value storage means.
[0023]
According to the image processing apparatus of the first invention, the first image data and the second image data are matched, and at least one image element including the matching data is provided.
In the image element, the first pixel storage means stores a first pixel for reference in the first image data.
In the second pixel storage means, a second pixel in a predetermined search range of the second image data is stored according to the first pixel.
In the difference value storage means, an updatable first difference value is stored.
The phase information storage means stores updatable phase information on the phases of the first pixel and the second pixel.
The difference value updating means includes: a second difference value between a first pixel stored in the first pixel storage means and a second pixel stored in the second pixel storage means; The first difference value stored in the value storage means is compared with the first difference value stored in the value storage means, and the first difference value stored in the difference value storage means is updated according to the result of the comparison.
[0024]
In order to achieve the above object, an image processing apparatus according to a second aspect of the present invention is an image processing apparatus that performs matching between first image data and second image data, and includes a plurality of image elements including matching data. A first pixel storage unit that stores a first pixel for reference in the first image data, and the second image according to the first pixel. A second pixel storage unit that stores a second pixel within a predetermined search range of data; a difference value storage unit that stores a difference value between the first pixel and the second pixel; A first sum total difference value storage unit that stores a first sum total difference value that is a total sum of a difference value of another adjacent image element and a difference value stored in the difference value storage unit; For storing phase information related to the phase between the pixel of interest and the second pixel Report storage means, and addition means for adding a difference value stored in the difference value storage means and a difference value stored in the adjacent other image element to output a second sum difference value, Comparing the first sum difference value stored in the sum difference value storage means with the second sum difference value output from the addition means, and storing the sum difference value according to a result of the comparison; Means for updating the first sum difference value stored in the means.
[0025]
Furthermore, in order to achieve the above object, an image processing apparatus according to a third aspect of the present invention is an image processing apparatus that performs matching of a plurality of temporally different image data, and includes a plurality of image elements including matching data. The image element is stored in a plurality of first pixel storage units that store pixels of the temporally different image data, and is stored in the first pixel value storage unit that can be updated as required. A plurality of second pixel storage means for storing each of the pixels, and a time sum difference for storing a time sum difference value which is a sum of difference values of the pixels stored in the plurality of first pixel storage means. Value storage means, total sum difference value storage means for storing a first total difference value which is the sum of the time total difference value and the time total difference value of another adjacent element, and the time total difference value storage means And the Adding means for adding a time total difference value stored in a time total difference value storage means of another image element in a fixed area and outputting a second total difference value; and The stored first sum difference value is compared with the second sum difference value output from the adding means, and the second sum difference value stored in the sum difference value storage means is determined according to the result of the comparison. A total sum difference value updating means for updating the total sum difference value of No. 1.
[0026]
Further, in order to achieve the above object, an image processing method according to a fourth aspect of the present invention is an image processing apparatus which performs matching between first image data and second image data and has at least one image element including the matching data. The image processing method according to claim 1, wherein the image element stores a first pixel for reference in the first image data, and determines a predetermined value of the second image data according to the first pixel. The second pixel within the search range is stored, and updatable phase information on the phase between the first pixel and the second pixel is stored, and the stored first pixel and the second pixel are stored. A second difference value between the pixel and the first pixel is compared with a predetermined first difference value, and the first difference value is updated according to the result of the comparison.
[0027]
Further, in order to achieve the above object, an image processing method according to a fifth aspect of the present invention provides a method of an image processing apparatus, comprising: An image processing method, wherein the image element stores a first pixel for reference in the first image data, and stores a predetermined pixel of the second image data in accordance with the first pixel. A second pixel in the search range is stored, an updatable first difference value is stored, and an updatable difference value of another adjacent image element is summed with the stored difference value. A first total sum difference value is stored, and updatable phase information on a phase between the first pixel and the second pixel is stored, and the stored first difference value and the adjacent other And the difference value stored in the image element of Comparing the stored first total difference value with the generated second total difference value, and storing and storing the first total difference value in accordance with the result of the comparison. Update.
[0028]
In order to achieve the above object, an image processing method according to a sixth aspect of the present invention is an image processing method for an image processing apparatus having a plurality of image elements including matching data by matching a plurality of temporally different image data. Wherein the image element stores a first pixel of each of the temporally different image data, and stores a second pixel corresponding to the first pixel, which can be updated on demand. A first sum total difference, which is a sum of the total sum of the difference values of the stored pixels, and a total sum of the total time difference value of the pixels and the total time difference value of another adjacent element. A second sum difference value by adding the stored sum total difference value and the sum total time difference value of the other image elements in the predetermined area, and storing the sum total difference value. A first sum difference value and the generated Comparing the second sum difference values, according to the result of the comparison, and updates the first sum difference value is the storage.
[0029]
BEST MODE FOR CARRYING OUT THE INVENTION
First embodiment
The image processing apparatus 1 according to the present embodiment detects a motion vector between frames of a moving image having a plurality of frames.
[0030]
Pixel matching
FIG. 4 is a functional block diagram of the first embodiment of the image processing apparatus according to the present invention.
FIG. 5A is a diagram illustrating a memory of the image processing apparatus according to the first embodiment. FIG. 5B is a functional block diagram of elements in the memory of the image processing apparatus shown in FIG.
[0031]
The image processing apparatus 1 according to the present embodiment includes a memory 2, a plurality of frame memories 3, a reading unit 4, and a control unit 100, as shown in FIG.
[0032]
The memory 2 generates and stores a motion vector based on predetermined data from the frame memory 3, for example, a pixel value and a phase (also referred to as phase information) of the pixel, as described later.
[0033]
The frame memory 3 includes, for example, a plurality of frame memories 3, specifically, a frame memory 3-T and a frame memory 3-T-1.
The frame memory 3-T stores the input image data at the time T (also simply referred to as an image).
The frame memory 3-T-1 stores the image data at the time T-1.
After a predetermined time, the image data stored in the frame memory 3-T is stored in the frame memory 3-T-1, and new image data is stored in the frame memory 3-T.
[0034]
The reading unit 4 reads the motion vector stored in the memory 2 for each element 20.
The control unit 100 controls the memory 2, the frame memory 3, and the reading unit 4 according to predetermined processing.
The control unit 100 stores an image in the frame memory 3, for example.
The control unit 100 outputs, for example, the pixels in the predetermined search range sp and the reference range from the frame memory 3 and the phases of the search region tp in the search range sp and the reference region tr to the memory 2.
[0035]
Each component will be described in detail.
The memory 2 of the image processing apparatus 1 according to the present embodiment has, for example, a plurality of elements 20 in a grid pattern as shown in FIG.
For simplicity, 3 × 3 elements (pixels) 20-1 to 20-9 are provided in the memory 2. Each of the elements 20 is connected.
[0036]
A case where matching is performed uniformly for each element (pixel) 20 will be described.
As illustrated in FIG. 5B, the element 20 includes a plurality of pixels 21, for example, pixels 21-1 and 21-2, a minimum pixel difference storage unit 22, a motion vector storage unit 23, a subtractor 24, an absolute value generation unit 25, It has a comparison update unit 26 and an update unit 27.
[0037]
Specifically, the element 20 not only stores (also referred to as storing) one pixel, but also stores pixel values of, for example, two pixels, calculates the absolute value of the difference between them, and calculates the difference absolute value. Stores a value.
The matching data is data related to a predetermined matching process, such as a pixel value, an absolute difference value, or data indicating a predetermined calculation result.
[0038]
The pixel 21 has a plurality of pixels, for example, a pixel 21-1 and a pixel 21-2.
For example, the pixel value of the pixel in the search range sp in the frame memory 3-T is input to the pixel 21-1.
For example, the pixel value of the pixel in the reference area tr of the frame memory 3-T-1 is input to the pixel 21-2.
[0039]
The minimum pixel difference storage unit 22 stores a difference absolute value.
The minimum pixel difference storage unit 22 updates the stored difference absolute value by the comparison update unit 26.
[0040]
The motion vector storage unit 23 stores a motion vector as described later.
In the motion vector storage unit 23, the updating unit 27 updates the motion vector.
[0041]
The subtractor 24 outputs a difference value between the pixel values stored in the pixel 21-1 and the pixel value stored in the pixel 21-2 to the absolute value generation unit 25 according to the pixel value.
[0042]
The absolute value generation unit 25, based on the difference value between the pixel value of the pixel 21-1 and the pixel value of the pixel 21-2, output from the subtractor 24, calculates the absolute value of the difference value (also referred to as a difference absolute value). ) Is output to the comparison updating unit 26.
[0043]
The comparison update unit 26 compares the absolute difference value output from the absolute value generation unit 25 with the absolute difference value stored in the minimum pixel difference storage unit 22.
[0044]
When the result of the comparison indicates that the absolute value of the difference output from the absolute value generation unit 25 is small, the comparison / update unit 26 stores the smaller absolute value of the difference in the minimum pixel storage unit 22, thereby obtaining the absolute value of the difference. Update the value.
As a result of the above-described comparison, when the absolute difference value of the minimum pixel difference storage unit 22 is updated, the comparison updating unit 26 outputs update information indicating that the absolute difference value has been updated to the updating unit 27.
[0045]
The update unit 27 updates the motion vector stored in the motion vector storage unit 23 based on the update information output from the comparison update unit 26 and the phase information.
Specifically, when the update information indicating that the difference absolute value has been updated is output from the comparison update unit 26, the update unit 27 outputs the phase information (phase) between the search area tp and the reference area tr at that time. Is stored in the motion vector storage unit 23 as a motion vector, and the motion vector is updated.
[0046]
As described above, the memory 2 stores information such as a motion vector other than a pixel value and a difference absolute value as additional information.
[0047]
FIG. 6 is a diagram for explaining updating of the phase in the pixel matching of the image processing apparatus shown in FIG. 4 and reading of the search area tp. FIG. 6A is a diagram illustrating the phases within the search range. FIG. 6B is a diagram showing the relationship between the phase and the search area tp.
[0048]
The phase (phase information) is, for example, a shift between the center of the search range sp and the center of the search area tp. For example, a phase is defined as shown in FIG.
Specifically, as shown in FIG. 6A, when the center of the search range sp (5 × 5) coincides with the center of the search area tp (3 × 3), the phase (0 , 0).
[0049]
For example, when the center of the search range sp (5 × 5) and the center of the search area tp (3 × 3) are shifted by one unit to the right as viewed in the figure, the phase is (1,0).
For other phases, the deviation between the center of the search range sp and the center of the search area tp is defined as the coordinates of the phase.
[0050]
FIG. 6B is a diagram illustrating updating of the phase and reading of the search area tp.
For example, as illustrated in FIG. 6B, the control unit 100 sequentially sets the phases to (-1, -1), (0, -1), (1, -1), (-1, 0), ( (0,0), (0,1), (-1,1), (0,1), (1,1), and read out the pixels in the search area tp accordingly. Is output to the corresponding element 20 in.
As described later, the phase when the absolute value of the difference is the minimum is defined as a true motion vector.
[0051]
The order in which the control unit 100 reads out the pixels and the order of the phases is not limited to this mode. The order is not limited to the above-described embodiment as long as all the pixels can be read.
Here, in FIG. 5, one pixel in the search area tp is stored in the pixel 21-1 held by each element.
[0052]
FIG. 7 is a flowchart for explaining the operation of the image processing apparatus 1 shown in FIG. The operation of the image processing apparatus 1, particularly, the operation of generating a motion vector will be described with reference to FIG.
[0053]
For example, the control unit 100 stores each pixel of an arbitrary 3 × 3 reference area tr from the frame memory 3-T-1 for each corresponding element 20 in the memory 20 (ST11).
Specifically, as shown in FIG. 4, one pixel of the reference area tr is stored in the pixel 21-2 of each element 20.
[0054]
The control unit 100 reads the pixels in the search area tp (3 × 3) while updating (shifting) the phase within the search range sp in the frame memory 3-T (ST12), and reads out the pixels in the corresponding memory 2. Are stored for each element 20 (ST13).
Specifically, as shown in FIG. 4, the control unit 100 stores a corresponding one pixel in the search area tp in the pixel 21-1 of each element 20.
[0055]
In the control unit 100, the update of the phase of the search area tp and the readout of the pixels in the search area tp are performed, for example, in the range of (-1, -1) to (1, 1) as shown in FIG. The operation is performed a total of nine times with the phase shifted by one pixel, and ends when the nine times are completed.
[0056]
The subtractor 24 and the absolute value generator 25 of each element 20 calculate the absolute difference between the pixel value stored in the pixel 21-1 and the pixel value stored in the pixel 21-2. This is set as, for example, a difference absolute value a (ST14).
In the comparison updating unit 26, the difference absolute value (for example, referred to as a difference absolute value b) stored in the minimum pixel difference storage unit 22 of the element 20 in the memory 2 is compared with the difference absolute value a (ST15). ).
[0057]
As a result of the comparison in step ST15, when the difference absolute value a is small, the comparison update unit 26 stores the difference absolute value a in the minimum pixel difference storage unit 22, and updates the difference absolute value (ST16, ST17).
On the other hand, when the difference absolute value a is large, the comparison update unit 26 does not perform the update (ST16), and shifts to the process of updating the phase of the next search area tp and reading out the pixels in the search area tp.
By the way, in the initial state, the absolute difference value is not stored in the minimum pixel difference storage unit 22 of the element 20. In that case, the first difference absolute value is unconditionally stored in the minimum pixel difference storage unit 22.
[0058]
In step ST17, the comparison updating unit 26 outputs update information indicating that the difference absolute value has been updated to the updating unit 27 only when the difference absolute value has been updated.
When the update information indicating that the difference absolute value has been updated is output from the comparison update unit 26, the update unit 27 stores the phase of the search area tp at that time in the motion vector storage unit 23, and The vector is updated (ST18).
[0059]
When the update of all phases is completed (ST19), in each element 20, the minimum pixel difference absolute value in the search range sp is stored in the minimum pixel difference storage unit 21-2 and updated. The phase (motion vector) at the time of the execution is stored in the motion vector storage unit 23.
[0060]
On the other hand, in step ST19, if all phases have not been updated, the process returns to step ST12.
[0061]
Each of the motion vectors is obtained by determining to which position in the search range sp each pixel 20 of the reference area tr has moved at time T based on the absolute value of the difference between the pixels 20. Finally, the reading unit 4 reads and outputs these motion vectors from each element 20.
[0062]
As described above, a plurality of frame memories 3 for storing image data, a memory 2 for generating and storing a motion vector according to data from the frame memory 3, and reading a motion vector for each element from the memory A reading unit 4 and a control unit 100 for controlling them are provided. Then, the memory 2 is provided with a plurality of elements 20 in a lattice shape.
[0063]
The element 20 includes pixels 21-1 and 21-2 that store pixel values of predetermined pixels in different frame memories, a subtractor 24 that outputs a difference value between pixel values of the pixels 21-1 and 2, and a subtractor 24. An absolute value generation unit 25 that outputs the absolute value of the output difference value (a difference absolute value), a minimum pixel difference storage unit 22 that stores the difference absolute value, a difference absolute value, and a difference pixel stored in the minimum pixel difference storage unit 22 The comparison and update unit 26 compares the absolute values of the differences, and as a result of the comparison, updates the absolute value of the difference in the minimum pixel storage unit 22 and outputs update information indicating that the update has been performed. When update information indicating that the value has been updated is output, an update unit 27 that updates the motion vector by storing the phase coordinate at that time as a motion vector in the motion vector storage unit 23 is provided. Move with a small amount of calculation It is possible to calculate the torque.
[0064]
In addition, the two-stage phase update of calculating the evaluation table and searching for the minimum value in all phases within the search range sp can be collectively performed.
[0065]
Further, since only the minimum value of the absolute difference value is updated, it is not necessary to generate an evaluation table for searching for the minimum value on another memory, so that the memory can be reduced.
[0066]
Although the image processing apparatus 1 according to the present embodiment has been described using the memory 2 having a size of 3 × 3, the present invention is not limited to this.
For example, when the memory 2 having the elements 20 for the total number of pixels in one frame is provided, the motion vector for every pixel in one frame can be obtained at the time when the phase update is completed. it can.
[0067]
Second embodiment
Block matching
FIG. 8 is a functional block diagram of an image processing device 1a according to a second embodiment of the present invention.
FIG. 9A is a diagram showing a memory of the image processing apparatus 1a shown in FIG. FIG. 9B is a diagram showing a specific example of the configuration of the memory shown in FIG. FIG. 9C is a diagram showing a configuration of a memory for storing motion vectors of the image processing apparatus 1a shown in FIG.
[0068]
As shown in FIG. 8, the image processing device 1a according to the present embodiment includes a memory 2a, a plurality of frame memories 3a, for example, frame memories 3a-T and T-1, a reading unit 4, and a control unit 100a.
[0069]
In the image processing apparatus 1 according to the first embodiment, for example, in 3 × 3 block matching, a motion vector of a certain pixel of interest is obtained with 3 × 3 elements.
In the image processing device 1a according to the second embodiment, a motion vector of adjacent 3 × 3 pixels is obtained at one time.
[0070]
Similar to the memory 2 of the image processing apparatus 1 according to the first embodiment, the memory 2a can store not only one pixel but also two pixels, and calculates the absolute value of the difference. Further, the difference absolute value as the result is stored.
[0071]
A specific example of block matching using pixel matching will be described.
The major difference between the image processing apparatus 1a and the image processing apparatus 1 according to the first embodiment is that the configuration of the memory is different. Only the differences will be described.
[0072]
The memory 2a of the image processing apparatus 1a according to the present embodiment has a plurality of elements 20a in a grid pattern, for example, as shown in FIG.
For simplicity, 5 × 5 elements 20a-1 to 20a-25 are provided in the memory 2a. Each of the elements 20 is connected.
A case where matching is performed uniformly for each element 20 will be described.
Here, when the elements 20a-1 to 20a-25 are not distinguished, they are simply referred to as elements (pixels) 20a. The search range sp will be described as (−1, −1) to (1, 1) in pixel units.
[0073]
As shown in FIG. 9A, the memory 2a is connected to the elements (for example, the elements 20a-1 to 4 and the elements 20a-6 to 20) adjacent to the element of interest (for example, the element 20a-5) by wiring between the elements 20a. The absolute difference value stored in 9) can be sent to the element of interest.
[0074]
Each element 20a has a process of receiving and adding the nine absolute differences. Therefore, in the element 20a of interest, the sum of the absolute values of the differences is obtained and stored.
[0075]
However, each element 20a compares the value with the sum of the absolute values of the differences stored in advance, and updates the value only when the difference is small. When the sum of the absolute values of the differences is updated, the motion vector at that time (motion vector) is also updated from the previously stored one.
The details will be described below.
[0076]
As shown in FIG. 9C, the element 20a includes a plurality of pixels 21a, for example, pixels 21a-1 and 21a-2, a pixel difference storage unit 22a-1, a difference total storage unit 22a-2, a motion vector storage unit 23, and a subtraction unit. And a comparing / updating unit 26a, an updating unit 27, and an adding unit 28.
[0077]
The difference between the element 20a and the element 20 according to the first embodiment is that a pixel difference storage unit 22a-1, a difference total storage unit 22a-2, an absolute value generation unit 25a, a comparison update unit 26a, and an addition unit 28 It is.
[0078]
The pixel difference storage unit 22a-1 stores the absolute difference value between the pixel 21a-1 and the pixel 21a-2 output from the absolute value generation unit 25a.
The pixel difference storage unit 22a-1 outputs the stored absolute difference value to the addition unit 28.
[0079]
The difference sum storage unit 22a-2 stores the sum of absolute difference values. This sum of absolute difference values is updated by the comparing and updating unit 26a under a predetermined condition, as described later.
[0080]
The absolute value generation unit 25a, based on the difference value between the pixel value of the pixel 21-1 and the pixel value of the pixel 21-2, output from the subtractor 24, calculates the absolute value of the difference value (also referred to as a difference absolute value). ) Is output to the pixel difference storage unit 22a-1.
[0081]
The comparing / updating unit 26a compares the sum of absolute difference values A output from the adding unit 28 with the sum of absolute difference values (referred to as sum B of absolute difference values) stored in the sum total difference storage unit 22a-2. As a result of the comparison, if the sum of absolute differences A is small, the sum of absolute differences A is stored in the sum of differences storage unit 22a-2, and the sum of absolute differences is updated.
[0082]
When the above-described update is performed, the comparison update unit 26a outputs update information indicating that the update has been performed to the update unit 27.
If the comparison result indicates that the absolute difference sum A is large, the comparison updating unit 26a does not update the absolute difference sum B stored in the difference sum storage unit 22a-2.
[0083]
The adder 28 adds the difference absolute value a output from each of the eight elements 20a near the pixel (also referred to as the eight neighbors 20a) and the difference absolute value a output from the pixel difference storage 22a-1. Based on these, the sum is added to generate a sum of absolute difference values A, which is output to the comparison / update unit 26a.
[0084]
FIG. 10 is a diagram for explaining the operation of the image processing apparatus shown in FIG. 8, particularly the operation of updating the phase and reading the search area tp. FIG. 10A is a diagram showing the phases within the search range sp. FIG. 10B is a diagram showing the relationship between the phase and the search area tp.
[0085]
As shown in FIG. 10A, for example, the phase indicates a shift between the center of the search range sp and the center of the search area tp. For example, the coordinates of the phase are defined as shown in FIG.
Specifically, as shown in FIG. 10A, when the center of the search range sp (7 × 7) coincides with the center of the search area tp (5 × 5), the phase (0, 0) is set. ).
[0086]
For example, when the center of the search range sp (7 × 7) and the center of the search area tp (5 × 5) are shifted to the right by one unit, the phase is (1,0).
In other states, the deviation between the center of the search range sp and the center of the search area tp is defined as the phase coordinate.
[0087]
For example, as shown in FIG. 10B, the control unit 100a sequentially sets the phases to (-1, -1), (0, -1), (1, -1), (-1, 0), ( (0,0), (0,1), (-1,1), (0,1), (1,1), and read the pixels in the search area tp accordingly, To the corresponding element 20a.
Further, the order of reading by the control unit 100a is not limited to this mode. The order is not limited to the above-described embodiment as long as all the pixels can be read.
[0088]
FIG. 11 is a flowchart for explaining the operation of the image processing apparatus 1a shown in FIG. The operation of the image processing apparatus 1, particularly, the operation of motion vector detection will be described with reference to FIG.
In this case, it is assumed that the element of interest is one of the elements 20a in which a motion vector is actually stored in FIG. Here, the element of interest is not the element at the end of the memory 2a.
[0089]
For example, the control unit 100a stores, from the frame memory 3a-T-1, each pixel of an arbitrary 5 × 5 reference area tr for each element 20a in the memory 2a (ST21). Here, in FIG. 8, one pixel of the reference area tr is stored in the pixel 21-2 held by each element 20a.
[0090]
The control unit 100a reads a 5 × 5 area while updating the phase within the search range sp (ST22), and stores each pixel in the area for each element 20a in the memory 2a (ST23). This 5 × 5 area is named “search area tp”. Here, in FIG. 8, one pixel of the search area tp is stored in the pixel 21a-1 held by each element 20a.
Updating of the phase and reading of the search area tp are performed nine times in the range of (-1, -1) to (1, 1), for example, as shown in FIG.
[0091]
Next, in each element 20a, a difference absolute value a between a value stored in the pixel 21a-1 and a value stored in the pixel 21a-2 is calculated (ST24). The result is stored in the pixel difference storage unit 22a-1 in each element 20a.
[0092]
Next, in each element of interest, the addition unit 28 reads the absolute difference value a from the eight neighboring elements 20a, adds the absolute difference value a stored in the pixel difference storage unit 22a-1 to obtain the sum of absolute difference values. A is obtained (ST25).
[0093]
Next, in each element of interest, the comparison and update unit 26a calculates the sum of absolute difference values (sum of absolute difference values B) previously stored in the sum of difference storage unit 22a-2 and the sum of absolute difference values output from the addition unit 28. A is compared (ST26, ST27), and when the sum of absolute difference values A is smaller, the value stored in the sum of difference absolute value storage unit 22a-2 is updated from the sum of absolute difference value B to the sum of absolute difference value A ( ST28).
[0094]
On the other hand, in step ST27, the comparison / update unit 26a does not update when the sum of absolute difference values A is large. The control unit 100a shifts to updating the next phase and reading the search area tp. It returns to step ST22.
[0095]
By the way, in the initial state, the sum of absolute difference values is not stored in the element of interest. In that case, the first sum of absolute differences is unconditionally stored.
[0096]
In step ST29, the updating unit 27 stores the phase at that time as a true motion vector in the motion vector storage unit 23 of the element of interest only when the sum of absolute difference values of the element of interest is updated. Update the current motion vector.
[0097]
Then, when the phase update is completed (ST30), the minimum value of the sum of absolute pixel differences in the search range sp and the motion vector when the minimum value is stored are stored in each of the nine elements of interest 20a. .
On the other hand, if it is determined in step ST30 that the phase update has not been completed, the process returns to step ST22.
[0098]
FIG. 12 is a diagram illustrating blocks cut out from the reference area tr of the frame of the image processing apparatus illustrated in FIG.
As shown in FIG. 12, each of the motion vectors indicates to which position in the search range sp the nine 3 × 3 blocks cut out from the reference area tr have moved at time T between the 3 × 3 blocks. Is calculated based on the sum of the absolute values of the differences.
Finally, the reading unit 4 reads and outputs these motion vectors from each element of interest.
[0099]
As described above, in the image processing apparatus 1a, the motion vector of the 3 × 3 pixel is calculated based on the difference total value obtained by adding the difference absolute value of the element of interest and its adjacent element (3 × 3 element). Can be generated at once.
[0100]
In the present embodiment, a memory that realizes block matching when the search range sp is (−1, −1) to (1, 1) in pixel units with a 3 × 3 block size has been described. It is not limited.
For example, by changing the wiring between the elements 20a so that the peripheral 5 × 5 elements 20a are connected to the element of interest, matching with a larger 5 × 5 block size is also possible.
[0101]
Also, the case where the total number of elements in the memory 2a is 5 × 5 has been described. For example, when the memory 2a is provided with elements for the total number of pixels in one frame, the motion vector for every pixel is It is obtained once when the update is completed.
[0102]
Further, by configuring the memory 2a using a large number of elements 20a having a function of detecting a motion vector, it is possible to collectively obtain a motion vector for each of a plurality of adjacent pixels.
[0103]
Third embodiment
Corresponding pixel detection
In the pixel matching of the image processing device 1a according to the second embodiment described above, a motion vector is stored in the memory 2a as a final result of block matching.
[0104]
The image processing apparatus 1b according to the third embodiment directly stores and outputs “corresponding pixels” in a frame of interest and frames before and after the frame of interest.
Here, the “corresponding pixel” refers to a pixel that includes a certain pixel of interest, and in the frames before and after the pixel of interest, even if the pixel of interest moves, can be corrected by a motion vector and corresponded to the same pixel. Such stored “corresponding pixels” can be used for the classification adaptive processing described later.
[0105]
FIG. 13 is a conceptual diagram for describing extraction of corresponding pixels of the image processing device according to the third embodiment of the present invention.
The horizontal axis is the x axis, the vertical axis is the y axis, and the oblique axis is the time axis.
In the present embodiment, as shown in FIG. 13, a case is considered in which a pixel of interest + pixels of two frames before and after, that is, a total of five pixels are extracted as corresponding pixels in a memory.
[0106]
For simplicity, a description will be given assuming that the block size for the corresponding pixel deep search is 3 × 3 pixels and the search range sp is (−1, −1) to (1, 1) in pixel units. The constraint condition that the target pixel and the corresponding pixels between the other two frames before and after the target pixel are at a constant speed is set.
[0107]
That is, in the frame T-1, for example, when there is a corresponding pixel at the position of (-1, -1) (7 in FIG. 13), in the frame T-2, (-2, -2) (FIG. Then, the corresponding pixel always exists at (1, 1) (19 in FIG. 13) in the frame T + 1 and (2, 2) (41 in FIG. 13) in the frame T + 2. However, the position of the target pixel is (0, 0) (in FIG. 13, it is 5).
[0108]
The image processing apparatus 1b according to the present embodiment calculates the absolute difference between the 3 × 3 block around the pixel of interest in the frame of interest T and the 3 × 3 block in each of the other frames. Are generated to minimize the sum of the motion vectors.
In the minimum phase, the pixel at the center of the 3 × 3 block as shown in FIG. 13 is stored as a corresponding pixel in the memory 2b of the image processing apparatus 1b and output.
[0109]
FIG. 14 is a functional block diagram of the third embodiment of the image processing apparatus according to the present invention.
As shown in FIG. 14, the image processing apparatus 1b according to the present embodiment includes a memory 2b, a plurality of frame memories 3b, for example, frame memories 3b-T + 2, T + 1, T, T-1, T-2, and a reading unit 4. , And a control unit 100b.
A major difference between the image processing device 1b and the image processing device 1a according to the second embodiment is that the configuration of the memory is different.
[0110]
In addition, the operation of the control unit differs with the provision of the five frame memories 3b-T + 2, T + 1, T, T-1, and T-2. Only the differences will be described.
[0111]
The control unit 100b stores, for example, an input image in the frame memory 3b-T + 2, and outputs the image to the frame memory 3b-T + 1 at a predetermined timing.
[0112]
The control unit 100b stores the image output from the frame memory 3b-T + 2 in the frame memory 3b-T + 1, and outputs the image to the frame memory 3b-T at a predetermined timing.
The control unit 100b stores the image output from the frame memory 3b-T + 1 in the frame memory 3b-T, and outputs the image to the frame memory 3b-T-1 at a predetermined timing.
The control unit 100b stores the image output from the frame memory 3b-T in the frame memory 3b-T-1, and outputs the image to the frame memory 3b-T-2 at a predetermined timing.
The control unit 100b causes the frame memory 3b-T-2 to store the image output from the frame memory 3b-T-1.
[0113]
The control unit 100b outputs the pixel values of the pixels within a predetermined reference range (5 × 5) from the frame memory 3b-T to the memory 2b.
The control unit 100b stores the pixels of the search area tpT-2 (5 × 5) within the predetermined search range spT-2 (9 × 9) and the phase information thereof from the frame memory 3b-T-2 in the memory 2b. Output.
The control unit 100b stores the pixels of the search area tpT-1 (5 × 5) within the predetermined search range spT-1 (7 × 7) and the phase information thereof from the frame memory 3b-T-1 in the memory 2b. Output.
The control unit 100b outputs, from the frame memory 3b-T + 1, the pixels in the search area tpT + 1 (5 × 5) within the predetermined search range spT + 1 (7 × 7) and the phase information thereof to the memory 2b.
The control unit 100b outputs, from the frame memory 3b-T + 2, pixels in a search area tpT + 2 (5 × 5) within a predetermined search range spT + 2 (9 × 9) and phase information thereof to the memory 2b.
[0114]
When reading out the pixels in the search area tp (5 × 5) described above, the control unit 100b determines that the pixels in the search area tp of each of the frame memories 3b-T-2, T-1, T + 1, and T + 2 are For example, it is set so as to be linear as shown in FIG.
[0115]
FIG. 15A is a diagram showing the memory 2b of the image processing apparatus 1b shown in FIG. FIG. 15B shows a memory in which the corresponding pixels are stored. FIG. 15C is a functional block diagram of the element 20b of the memory 2b shown in FIG.
[0116]
The memory 2b of the image processing apparatus 1b according to the present embodiment has, for example, 5 × 5 elements 20b-1 to 25 as shown in FIG. 15, and each of the elements 20b is connected.
[0117]
In 3 × 3 block matching, a 3 × 3 element is sufficient to find a corresponding pixel in a given pixel of interest, but in the image processing apparatus 1b according to the present embodiment, as shown in FIG. , The motion vector of the adjacent 3 × 3 pixels is obtained at once.
[0118]
As shown in FIG. 15A, the memory 2b has a plurality of elements 20b, for example, elements 20b-1 to 20-25 formed in a lattice.
[0119]
As shown in FIG. 15C, the element 20b includes a plurality of pixels 21b, for example, pixels 21b-T, T + 2, T + 1, T-1, and T-2, a sum of absolute difference values A storage unit 22b-1, and a difference absolute value storage unit 22b-1. Value sum B storage unit 22b-2, a plurality of subtractors 24b, for example, subtractors 24b-1 to 24-4, a plurality of absolute value generation units 25b, for example, absolute value generation units 25b-1 to 25, an adder 250, and a comparison update unit 26b, an updating unit 27b, an adding unit 28b, and a plurality of corresponding pixels 210b, for example, corresponding pixels 210b-T, T + 2, T + 1, T-1, and T-2.
[0120]
The pixel 21b-T stores a pixel value of a pixel of interest (also referred to as a pixel of interest) of the frame T.
As shown in FIG. 13, each of the pixels 21b-T + 2, the pixels 21b-T + 1, the pixels 21b-T-1, and the pixels 21b-T-2 has a straight line passing through the pixel of interest in ± 2 frames before and after the frame of interest. The pixel values of the upper four pixels are stored.
[0121]
The difference absolute value sum A storage unit 22b-1 stores the sum of the difference absolute values obtained between the stored target pixel and each of the four pixels (also referred to as difference absolute value sum A).
[0122]
The absolute difference sum B storage unit 22b-2 stores the sum of absolute difference sums A in eight elements (also referred to as eight neighboring elements) near the element of interest (also referred to as the absolute difference sum B).
[0123]
The subtractor 24b-1 subtracts the pixel value output from the pixel 3b-T from the pixel value output from the pixel 3b-T-2, and outputs the result to the absolute value generation unit 25b-1.
The subtractor 24b-2 subtracts the pixel value output from the pixel 3b-T-1 from the pixel value output from the pixel 3b-T, and outputs the result to the absolute value generation unit 25b-2.
The subtractor 24b-3 subtracts the pixel value output from the pixel 3b-T + 1 from the pixel value output from the pixel 3b-T, and outputs the result to the absolute value generation unit 25b-3.
The subtractor 24b-4 subtracts the pixel value output from the pixel 3b-T + 2 from the pixel value output from the pixel 3b-T, and outputs the result to the absolute value generation unit 25b-4.
[0124]
The absolute value generation unit 25-1 outputs the absolute value of the difference value (the difference absolute value) output from the subtractor 24b-1 to the adder 250.
The absolute value generation unit 25-2 outputs the absolute difference value output from the subtractor 24b-2 to the adder 250.
The absolute value generation unit 25-3 outputs the absolute difference value output from the subtractor 24b-3 to the adder 250.
The absolute value generation unit 25-4 outputs the absolute difference value output from the subtractor 24b-4 to the adder 250.
[0125]
The adder 250 adds the difference absolute values output from each of the absolute value generation units 25-1 to 25-4, and outputs the result to the difference absolute value sum A storage unit 22b-1.
[0126]
The comparing and updating unit 26b compares the absolute difference value B output from the adding unit 28b with the absolute difference sum total B stored in the absolute difference sum total B storage unit 22b-2. When the sum of absolute difference values B output from 28b is small, the smaller sum of absolute difference values B is stored in the absolute difference value total B storage unit 22b-2 and updated.
In addition, when the above-described update is performed, the comparison update unit 26b outputs update information indicating that the absolute difference total B has been updated in the absolute difference total B storage unit 22b-2 to the update unit 27b.
[0127]
When the update information indicating that the absolute difference sum B has been updated is output from the comparison / update unit 26b, the update unit 27b outputs the output from each of the pixels 21b-T-2, T-1, T, T + 1, and T + 2. The updated pixel value is stored and stored in the corresponding pixel 210T-2, T-1, T + 1, T + 2.
[0128]
The adder 28b adds the absolute difference sum A output from the absolute difference sum A storage 22b-1 and the absolute difference sum A output from each of the eight adjacent elements 20b, and compares and updates the sum. Output to the unit 26b.
[0129]
As described above, the element 2b controls the pixel of interest 21b-T and the other four pixels stored therein (pixel 21b-T + 2, pixel 21b-T + 1, pixel 21b-T-1, and pixel 21b-T-2). Can calculate the absolute value of the difference. In addition, an operation for calculating the sum of the absolute values of the differences can be performed.
[0130]
In the block matching of the image processing apparatus 1b according to the present embodiment, as shown in FIG. 15A, eight of the elements of interest (for example, the element 20b-5 in FIG. The sum of absolute difference values A stored in nearby elements (elements 20b-1 to 20-4 and 6 to 9 in FIG. 15A) can be sent to the element of interest 20b-5.
[0131]
Each element 20b has a process of receiving the nine sums of absolute differences A and adding them all. Therefore, in the element of interest, the sum of the sum of absolute difference values A (sum of absolute difference values B) can be obtained and stored.
[0132]
However, a comparison is made with the previously stored sum of absolute difference values, and the value is updated only when the difference is small.
When the sum of the absolute differences is updated, the five pixels stored at that time (pixel 21b-T, pixel 21b-T + 2, pixel 21b-T + 1, pixel 21b-T-1, and pixel 21b-T-2) Are stored in the corresponding pixel 210b-T, the corresponding pixel 210b-T + 2, the corresponding pixel 210b-T + 1, the corresponding pixel 210b-T-1, and the corresponding pixel 210b-T-2, respectively. Update all from.
[0133]
FIG. 16A is a diagram showing the search range spT + 2 (9 × 9) of the frame T + 2 and the phase of the search area tpT + 2. FIG. 16B is a diagram showing the search range spT + 1 (7 × 7) of the frame T + 1 and the phase of the search area tpT + 1. FIG. 16C is a diagram showing the search range spT-1 (7 × 7) of the frame T-1 and the phase of the search area tpT-1. FIG. 16D is a diagram showing the search range spT-2 (9 × 9) of the frame T-2 and the phase of the search area tpT-2. FIG. 16E is a diagram for explaining the process of updating the phase and reading the search area tp of the image processing apparatus 1b shown in FIG.
[0134]
The control unit 100b sets the coordinates of the phase as shown in FIGS. The horizontal axis is the x axis, and the vertical axis is the y axis.
For example, as illustrated in FIG. 16E, the control unit 100b sequentially sets (−1, −1), (0, −1), (1, −1), and (−) based on the phase of the search area tpT + 1 as a reference. (1,0), (0,0), (0,1), (-1,1), (0,1), (1,1), and the search range sp of each frame is updated accordingly. Is updated in the search area tp.
[0135]
In this case, the motion vector is (-1, -1), (0, -1), (1, -1), (-1, 0), (0, 0) corresponding to each of the phases. ), (0,1), (-1,1), (0,1), (1,1).
[0136]
The control unit 100b stores one pixel of the search area tpT + 2 in the pixel 21b-T + 2 of each element 20b, and stores one pixel of the search area tpT + 1 in the pixel 21b-T + 1 of each element 20b. One pixel of the search area tpT-1 is stored in the pixel 21b-T-1 of the element 20b, and one pixel of the search area tpT-2 is stored in the pixel 21b-T-2 of each element 20b.
[0137]
FIG. 17 is a flowchart for explaining the operation of the image processing apparatus shown in FIG. In this case, the target element is assumed to be one of the elements in which the corresponding pixel is actually stored in FIG. It is assumed that the target pixel is not an element at the edge of the memory.
[0138]
First, each pixel of an arbitrary 5 × 5 reference area tr is stored for each element 20b in the memory 2b from the frame memory T where it is assumed that a frame in which the pixel of interest exists is present. Here, in FIG. 15C, one pixel of the reference area tr is stored in the pixel 20b-T of each element 20b (ST101).
[0139]
Next, each of the frame memory 3b-T + 2, the frame memory 3b-T + 1, the frame memory 3b-T-1, and the frame memory 3b-T-2 temporally before and after the target frame shown in FIG. The 5 × 5 area is read out while the phase is updated as described above, and each pixel in the area is stored for each element 20b in the memory 2b (ST102).
[0140]
This 5 × 5 area is named “search area tp”. However, as described above, the phase of the search area tp read from each frame memory is always on a straight line in space and time as shown in FIG.
Therefore, instead of updating the phase for each frame, the phase is updated based on a certain frame, and the other phases are uniquely determined.
[0141]
For example, with reference to the phase of the search area tpT + 1, when the spatial phase of the search area tpT + 1 is (1, 1), the spatial phase of the search area tpT + 2 read from the frame memory T + 2 is (2, 2). The spatial phase of the search area tpT-1 read from the frame memory T-1 is (-1, -1), and the spatial phase of the search area tpT-2 read from the frame memory T-2 is (-2, -1). -2).
[0142]
The control unit 100b updates the phase and reads the search area tp nine times in the range of (−1, −1) to (1, 1) based on the search area tpT + 1, for example, as shown in FIG. It ends when it finishes.
[0143]
One pixel of the search area tpT-1 is stored in the pixel 21b-T-1 of each element 20b (ST103). One pixel of the search area tpT-2 is stored in the pixel 21b-T-2 held by each element 20b (ST104). One pixel of the search area tpT + 1 is stored in the pixel 21b-T + 1 held by each element 20b (ST105). One pixel of the search area tpT + 2 is stored in the pixel 21b-T + 2 of each element 20b (ST106).
The order of steps ST103 to ST106 described above need not be this order.
[0144]
Next, in each element 20b, the subtractor 24b-2 and the absolute value generation unit 25b-2 calculate the difference absolute value a between the value stored in the difference pixel 21b-T and the value stored in the pixel 21b-T-1. Is calculated (ST107). Similarly, in each element 20b, the subtractor 24b-1 and the absolute value generation unit 25b-1 calculate the difference absolute value b between the value stored in the pixel 21b-T and the value stored in the pixel 21b-T-2. The calculation is performed (ST108). Similarly, in each element 20b, the subtractor 24b-3 and the absolute value generator 25b-3 calculate the absolute difference c between the value stored in the pixel 21b-T and the value stored in the pixel 21b-T + 1. (ST109). Similarly, in each element 20b, the subtractor 24b-4 and the absolute value generation unit 25b-4 calculate the difference absolute value d between the value stored in the pixel T and the value stored in the pixel T + 2 (ST110).
The order of steps ST107 to ST110 described above need not be this order.
[0145]
Next, the adder 250 calculates the sum of the difference absolute values a, b, c, and d, generates the difference absolute value sum A, and stores it in the difference absolute value sum A storage unit 22b-1 (ST111).
Next, assuming that the elements in the vicinity of eight of the elements of interest connected by wiring, for example, the element of interest 20b-5 shown in FIG. 15, the elements 20b-1 to 20-9 in the vicinity of the element 20b-5 are respectively The element of interest 20b-5 reads the sum of absolute differences A stored in.
For example, in the element 20b-5 of interest, the adder 28b adds the values and the sum of absolute difference values A output from the adder 250 to obtain the sum as the sum of absolute difference values B (ST112). The output is output to the comparison update unit 26b.
[0146]
Next, in each element of interest 20b, the comparison and update unit 26b compares the sum of difference absolute values (sum of difference absolute values C) and the sum of difference absolute values B stored in advance in the sum of absolute difference values B storage unit 22b-2. Then, if the sum of absolute difference values B is small (ST113), the stored value is updated from the sum of absolute difference values C to the sum of absolute difference values B (ST114, 115). Conversely, when the sum of absolute difference values C is large, the update is not performed, and the process shifts to updating the next phase and reading the search area tp. It returns to step ST102. In the initial state, the difference absolute value sum C is not stored in the element of interest 20b. In that case, the first sum of absolute difference values B is unconditionally stored.
[0147]
Next, in the updating unit 27b of a certain target element 20b, the pixel 21b-T, the pixel 21b-T + 2, the pixel 21b-T + 2 only when the sum of the absolute difference values stored in the absolute difference sum B storage unit 22b-2 is updated. The pixel values stored in 21b-T + 1, pixel 21b-T-1, and pixel 21b-T-2 are respectively converted to corresponding pixel 210b-T, corresponding pixel 210b-T + 2, corresponding pixel 210b-T + 1, and corresponding pixel 210b-T. -1, stored again in the corresponding pixel 210b-T-2. That is, the corresponding pixel stored in the element of interest 20b is updated as a true corresponding pixel (ST116).
[0148]
As described above, when the phase update is completed, the minimum value of the sum of pixel difference absolute values B in the search range sp and the corresponding pixel updated when it is stored are stored in the nine target elements 20b. (ST117).
On the other hand, if it is determined in step ST117 that the updating of the phase has not been completed, the process returns to step ST102.
[0149]
As shown in FIG. 12, the operation itself determines which position in the search range sp the nine 3 × 3 blocks cut out from the reference area tr have moved at time T between the 3 × 3 blocks. This is obtained based on the sum of absolute differences.
[0150]
In this state, the point is the same as the case of “block matching” of the image processing apparatus 1a according to the second embodiment, but the image processing apparatus 1b according to the third embodiment is The pixel at the center of the block is directly stored and output as the "corresponding pixel" of the target pixel.
Also, unlike block matching between two frames, the calculation assuming the uniformity of motion between five frames improves the detection accuracy of "corresponding pixels" even when there is noise in the image. It has good affinity with noise removal by the classification adaptive processing.
[0151]
Finally, for example, the reading unit 4 reads and outputs corresponding pixels in these five frames from each element of interest. For example, the output result is used for a class classification adaptive process to be described later.
[0152]
It is not limited to the above-described embodiment. For example, in this embodiment, a memory that extracts and outputs corresponding pixels when the search range sp is (−1, −1) to (1, 1) in pixel units with a 3 × 3 block size is described. However, the present invention is not limited to this.
[0153]
For example, by changing the wiring between the elements from the peripheral 5 × 5 elements to the target element, processing can be performed with a larger block size of 5 × 5.
Also, the case where the total number of elements in the memory 2b is 5 × 5 has been described. For example, when the memory is provided with elements for the total number of pixels in one frame, the corresponding pixels of all the pixels are updated in phase. Is obtained at the time when is terminated.
[0154]
Fourth embodiment
Classification adaptive processing using corresponding pixel detection
FIG. 18 is a functional block diagram of the fourth embodiment of the image processing apparatus according to the present invention.
The image processing device 1c according to the fourth embodiment uses the memory 2b of the image processing device 1b according to the third embodiment to perform noise removal by a class classification adaptive process.
[0155]
Classification adaptive processing is a process of degrading a high-quality original image (also called a teacher image) to create a low-quality deteriorated image (also called a student image), and performing statistical learning between the teacher image and the student image. This is a process of converting the image into a high-quality image and outputting the image even if a degraded image is input using the learned data.
[0156]
Although the details of the classification adaptive processing and the noise removal by the processing are already described in the application number 410304058, the image processing apparatus 1c according to the present embodiment specifically performs the above-described processing using a memory.
Also, as an example, the case of an input image in SD (Standard) format is assumed, but the same processing can be performed in another format.
[0157]
Learning
As shown in FIG. 18, the image processing apparatus 1c according to the fourth embodiment has a memory 2b, a plurality of frame memories 3b, for example, frame memories 3b-T + 2, T + 1, T, T-1, T-2, and readout. Unit 4c, a noise adding unit 5, a class code generating unit 6, a normal equation adding unit 7, a coefficient storing unit (RAM) 8, and a control unit 100c.
[0158]
The major difference between the image processing device 1c and the image processing device 1b according to the third embodiment is that a noise addition unit 5, a class code generation unit 6, a normal equation addition unit 7, and a coefficient storage unit (RAM) 8 Is further provided. Only the differences will be described.
[0159]
The noise adding unit 5 adds a noise component to an input image. For example, the noise adding unit 5 generates and adds random noise by computer simulation.
[0160]
FIG. 19 is a functional block diagram showing a first specific example of the noise adding unit of the image processing device 1c shown in FIG.
The noise adding unit 5-1 according to the first specific example includes an RF modulator (RF @ MODULATOR) 51, an attenuator attenuator 52, and an RF demodulator (RF @ DEMODULATOR) 53 as shown in FIG.
[0161]
In the noise adding section 5-1, an RF modulator (RF @ MODULATOR) 51 performs RF modulation processing according to an input image, for example, an SD image, attenuates by an attenuator attenuator 52, and performs RF demodulation by an RF demodulator (RF @ DEMODULATOR) 53. Perform processing and add noise.
[0162]
FIG. 20 is a functional block diagram illustrating a second specific example of the noise adding unit of the image processing apparatus 1c illustrated in FIG.
The noise adding unit 5-2 according to the second specific example includes an RF modulator 51, an attenuator attenuator 52, an RF demodulator 53, a subtractor 54, and an adder 55 as shown in FIG.
[0163]
In the noise adding section 5-2, an RF modulator (RF @ MODULATOR) 51 performs an RF modulation process on an image having a uniform background (uniform level), attenuates it with an attenuator attenuator 52, and an RF demodulator (RF @ DEMODULATOR). An RF demodulation process is performed by 53, a subtraction process is performed on the image with a uniform background by a subtractor 54, and only a noise component is output to an adder 55, and the noise component is input to the adder 55. It is added to the image (SD image) and output.
[0164]
FIG. 21 is a functional block diagram showing a third specific example of the noise adding unit of the image processing device 1c shown in FIG.
As shown in FIG. 21, the noise adding unit 5-3 according to the third specific example includes an RF modulator (RF @ MODULATOR) 51, an attenuator attenuator 52, an RF demodulator (RF @ DEMODULATOR) 53, a subtractor 54, and an adder. 55 and a frame adder 56.
[0165]
In the noise adding unit 5-3, the RF modulator 51 performs an RF modulation process on an image having a uniform background (a uniform level), attenuates the image with an attenuator attenuator 52, and performs an RF demodulation process with an RF demodulator 53. The difference between the image from which noise has been removed by the frame adder 56 and the subtractor 54 and the original image is obtained, and only the noise component is extracted. The adder 55 adds this noise component to the input image (SD image). Is output.
[0166]
The reading unit 4c reads a corresponding pixel for each element, and outputs it to the class code generating unit 6 and the normal equation adding unit 7.
[0167]
The class code generation unit 6 detects a noise component based on the value of the corresponding pixel for each element output from the reading unit 4c, generates a class code, and outputs the generated class code to the normal equation addition unit 7.
[0168]
FIG. 22 is a diagram for explaining the principle of generating a class code (detecting a noise component) of the class code generation unit of the image processing apparatus 1c shown in FIG.
[0169]
For example, as shown in FIG. 22, the class code generation unit 6 detects a noise component for each of the corresponding pixels sequentially output from the memory 2b, and describes and generates the noise component as a class code.
One corresponding pixel extracted by the memory 2b can be basically regarded as the same pixel extruded following the movement during the five frames from time T-2 to T + 2, so that deterioration such as blurring is seen in a fast movement. In some cases, there is little variation over time.
[0170]
Therefore, if there is a change in the value in the output corresponding pixel, it can be regarded as noise. Therefore, by describing the fluctuation of the noise as a class code, a prediction operation described later according to the fluctuation of the noise can be performed.
[0171]
The class code generation unit 6 obtains the maximum value b and the minimum value a of the five pixels in the corresponding pixel, and codes according to the maximum value b and the minimum value, for example, an average value, specifically, (minimum value a + maximum value). An average code is generated such that the value is 1 if the level of each corresponding pixel is higher than the value b) / 2 and 0 if the level is lower than the value b) / 2. For example, the average code is “10100” in the case shown in FIG.
[0172]
Further, the class code generation unit 6 obtains a dynamic range (maximum value b-minimum value a) in the corresponding pixel, expresses it in a binary number, and generates a dynamic range code.
[0173]
For example, when the dynamic range is 18, the dynamic range code is “10010”.
The class code generation unit 6 generates a class code by combining the average value code and the dynamic range code.
[0174]
For example, in the case described above, the average code “10100” and the dynamic range code “10010” are combined to generate the class code “1010010010”.
Here, the average value code is the time variation of noise, and the dynamic range code represents the magnitude of the noise level.
The image processing apparatus 1c can perform processing corresponding to noise fluctuations and levels accurately by classifying the codes.
[0175]
More specifically, the normal equation addition unit 7 generates a normal equation for each class code output from the class code generation unit 6 based on the corresponding pixel output from the reading unit 4 and the pixel of the teacher image, Generate prediction coefficients for each class code.
[0176]
Specifically, the normal equation adding unit 7 sets the corresponding pixel to XT + 2, XT + 1, XT, XT-1, XT-2As the corresponding pixel X of the frame memory TTThen, a normal equation as shown in Expression (2) is generated, where y is a pixel at the same position from the teacher image before adding noise.
[0177]
(Equation 2)
Figure 2004078862
Figure 2004078862
[0178]
Where aT + 2, AT + 1, AT, AT-1, AT-2Is a prediction coefficient to be estimated.
The normal equation adding unit 7 generates a normal equation by substituting the corresponding pixel and the pixel of the teacher image for each class into the equation (2), and when the required number of normal equations is obtained, performs the least square estimation. Estimate the prediction coefficient.
[0179]
The normal equation adding unit 7 determines a prediction coefficient for each class code, and outputs it to the coefficient storage unit (RAM) 8.
The coefficient storage unit (RAM) 8 stores the prediction coefficients for each class code output from the normal equation addition unit 7.
[0180]
The control unit 100c reads the reference area tr from the image held in each of the frame memories T-2, T-1, T, T + 1, and T + 2, and stores the reference area tr in the memory 2c. The search range sp corresponding to the read reference area tr is set in another frame memory, and the search area tp is stored in the read memory 2c while updating the phase.
[0181]
The control unit 100c sequentially reads out the reference area tr in a sequence such as a raster scan while shifting the phase appropriately in the frame memory T, and finally the memory 2c reads all the pixels in the frame memory. The corresponding pixel can be output.
[0182]
FIG. 23 is a diagram for explaining a procedure in which the image processing apparatus 1c shown in FIG. 18 should read out to the memory of the reference area tr for the classification adaptive processing. FIG. 23A shows a state before the shift. FIG. 23B is a diagram illustrating a state after the shift.
[0183]
For example, when the memory 2b is 5 × 5, the control unit 100c shifts the reference area tr by 3 × 3 pixels as shown in FIGS. 23A and 23B and cuts out the reference area tr. Obtained at all pixel positions in T. Therefore, all the pixels in the frame memory T can be processed. In this case, when reading out one reference area tr, the memory 2c obtains nine corresponding pixels having different phases and sequentially outputs these nine corresponding pixels.
[0184]
The operation of the image processing apparatus having the above-described configuration will be briefly described only for differences.
The noise adding unit 5 adds a noise component to the input image.
In the frame memories T-2, T-1, T, T + 1, and T + 2, input images to which noise components have been added are sequentially stored.
[0185]
In the control unit 100c, the pixel values and the phase information of the pixels in the search area tp within the predetermined search range sp are read from each frame memory and output to the memory 2b.
In the reading unit 4c, the corresponding pixel for each element 20b in the memory 2b is read and output to the class code generating unit 6 and the normal equation adding unit 7.
[0186]
The class code generation unit 6 detects a noise component based on the value of the corresponding pixel for each element output from the reading unit 4c, generates a class code by predetermined processing as shown in FIG. It is output to the equation adder 7.
[0187]
In the normal equation adding unit 7, a normal equation is generated by the above-described predetermined process based on the corresponding pixel output from the reading unit 4 and the pixel of the teacher image for each class code, and the prediction coefficient for each class code is calculated. It is generated and stored in the coefficient storage unit (RAM) 8.
[0188]
As described above, in the image processing device 1c according to the present embodiment, the noise adding unit 5 that adds a noise component to an input image, and the frame memories 3b-T + 2, T + 1, T, T-1, and T-2. And a memory 2b, a reading unit 4c for reading a corresponding pixel for each element in the memory 2b, a class code generating unit 6 for generating a class code according to the corresponding pixel, and a class code, a corresponding pixel, and an input pixel. Since a normal equation adding unit 7 for generating a normal equation and generating a prediction coefficient in accordance therewith, a coefficient storage unit (RAM) 8 for storing a prediction coefficient, and a control unit 100c for performing a predetermined control are provided, A noise component is added to the input image, and a class code is generated based on the input image and the image to which the noise component is added, and learning can be performed.
The information of the learning result is used, for example, when the image processing apparatus according to the fifth embodiment generates an original high-quality image from an image to which a noise component has been added.
[0189]
Fifth embodiment
prediction
FIG. 24 is a functional block diagram of the image processing apparatus according to the fifth embodiment of the present invention.
The image processing apparatus 1d according to the present embodiment estimates a noise component of an input image by using the class code described in the image processing apparatus 1c according to the fourth embodiment, for example. Generate
[0190]
As shown in FIG. 24, for example, the image processing apparatus 1d includes a memory 2d, a plurality of frame memories 3b, for example, frame memories 3b-T + 2, T + 1, T, T-1, T-2, a reading unit 4c, and a class code generating unit. 6, having a coefficient storage unit 8d, an estimation operation unit 9, and a control unit 100d
[0191]
A major difference between the image processing device 1d according to the present embodiment and the image processing device 1c according to the fourth embodiment is that the image processing device 1d includes a coefficient storage unit 8d and an estimation calculation unit 9.
[0192]
When performing the noise prediction process, the control unit 100d of the image processing apparatus 1d stores five frames of the input image (the current frame and two frames before and after) in the frame memories 3b-T + 2 to T-2, respectively.
[0193]
The control unit 100d reads out the reference area tr from the image held in each frame memory 3bT, and stores it in the memory 2d.
The control unit 100d sets the search range sp corresponding to the read reference area tr in the other frame memories 3b-T-2, T-1, T + 1, and T + 2, and updates the search area tp while updating the phase. Is read out and stored in the memory 2d.
[0194]
The control unit 100d sequentially reads out the reference area tr while sequentially shifting the phase in a predetermined order in the frame memory T in an order such as a raster scan. The corresponding pixels of all pixels are output.
[0195]
For example, when the memory 3d is 5 × 5, the control unit 100d shifts by 3 × 3 pixels and cuts out the reference area tr as shown in FIGS. Corresponding pixels are obtained at all pixel positions. Therefore, all the pixels in the frame memory T can be processed. In this case, when reading out one reference area tr, the memory 2d obtains nine corresponding pixels having different phases and sequentially outputs these nine corresponding pixels.
[0196]
The class code generator 6 generates a class code for each corresponding pixel sequentially output from the memory 2d based on the noise component of the pixel.
[0197]
The coefficient storage unit (ROM) 8d stores, for example, prediction coefficients for each class code stored in the coefficient storage unit 8 at the time of learning in the image processing device 1c according to the fourth embodiment.
The coefficient storage unit 8d outputs a prediction coefficient corresponding to the stored class code according to the class code output from the class code generation unit 6.
[0198]
The estimation calculation unit 9 estimates and outputs a prediction value according to the prediction coefficient and the corresponding pixel output from the coefficient storage unit 8d.
Specifically, the estimation calculation unit 9 calculates the prediction coefficient a output from the coefficient storage unit 8d.T + 2, AT + 1, AT, AT-1, AT-2And the corresponding pixel XT + 2, XT + 1, XT, XT-1, XT-2, The predicted value y is calculated by, for example, Equation (2) described above and output. The expected value y is a pixel value from which a noise component has been removed.
[0199]
The operation of the image processing apparatus having the above-described configuration will be briefly described only for differences.
The control unit 100d stores the input image to which the noise component has been added in the frame memories T-2, T-1, T, T + 1, and T + 2.
[0200]
In the control unit 100d, the pixel values and the phase information of the pixels in the search area tp within the predetermined search range sp are read from each frame memory and output to the memory 2d.
In the reading unit 4c, a corresponding pixel for each element 20d in the memory 2d is read and output to the class code generation unit 6 and the estimation calculation unit 9.
[0201]
The class code generation unit 6 detects a noise component based on the value of the corresponding pixel for each element output from the reading unit 4c, generates a class code by predetermined processing as shown in FIG. It is output to the operation unit 9.
[0202]
The estimation calculation unit 9 performs the above-described predetermined processing according to the prediction coefficient and the corresponding pixel output from the coefficient storage unit (ROM) 8d, and estimates and outputs a prediction value.
[0203]
As described above, in the image processing apparatus 1d according to the present embodiment, each of the frame memories 3b-T + 2, T + 1, T, T-1, T-2, the memory 2d, and the elements in the memory 2d is provided. A reading unit 4c for reading out a corresponding pixel, a class code generating unit 6 for generating a class code according to the corresponding pixel, a coefficient storing unit (ROM) 8d for storing a coefficient corresponding to the class code, and a coefficient storing unit (ROM) (2) Since the estimation calculation unit 9 that generates the predicted value and the control unit 100d that performs the predetermined control are provided according to the prediction coefficient and the corresponding pixel output from 8d, the noise held in the frame memory T is reduced. For a certain input image, it is possible to output pixels from which noise has been removed in pixel units.
[0204]
Further, with the above-described configuration, it is possible to directly search and output pixels and the like necessary for the classification adaptive processing. Thereby, for example, a procedure of performing phase correction using a motion vector after detecting a motion vector and extracting necessary pixels can be simplified.
[0205]
Sixth embodiment
FIG. 25 is a functional block diagram of the image processing apparatus according to the sixth embodiment of the present invention. FIG. 26A is a configuration diagram of a memory of the image processing apparatus shown in FIG. 25, FIG. 26B is a diagram showing elements storing predicted pixels of the memory shown in FIG. FIG. 27C is a functional block diagram of the elements of the memory shown in FIG.
[0206]
As shown in FIG. 25, the image processing apparatus 1e according to the present embodiment includes a memory 2e, a plurality of frame memories 3b, for example, frame memories 3b-T + 2, T + 1, T, T-1, T-2, and a coefficient storage unit. (ROM) 8e and a control unit 100e.
[0207]
The image processing device 1e is that each of the elements 20e of the memory 2e has the class classification adaptive processing function of the image processing device 1d according to the fifth embodiment. Only the differences will be described.
[0208]
The memory 2e has 5 × 5 elements 20e-1 to 20e-25, for example, as shown in FIG. 26A, and the elements 20e are connected by wiring.
[0209]
As shown in FIG. 26C, the element 20e includes a plurality of pixels 21b, for example, pixels 21b-T, T + 2, T + 1, T-1, and T-2, a difference absolute value total A storage unit 22b-1, a difference absolute Value sum B storage unit 22b-2, a plurality of subtractors 24b, for example, subtractors 24b-1 to 24-4, a plurality of absolute value generation units 25b, for example, absolute value generation units 25b-1 to 25, an adder 250, and a comparison update unit 26e, a class code generator 6e, an estimator 9e, and an adder 28b.
[0210]
The class code generation unit 6e converts the update information indicating that the absolute difference sum has been updated and the pixel values output from the pixels 21b-T, T + 2, T + 1, T-1, and T-2 from the comparison update unit 26e. In response, a class code is generated and output to the coefficient storage (ROM) 8e.
[0211]
Specifically, when the class code generation unit 6e receives update information indicating that the absolute difference sum has been updated from the comparison update unit 26e, the class code generation unit 6e outputs the pixels 21b-T, T + 2, T + 1, T-1, T-1, T-1 -2, and generates a class code corresponding to the pixel value output from the coefficient storage unit (ROM) 8e.
[0212]
The estimation calculation unit 9e estimates a prediction value based on the prediction coefficients output from the coefficient storage unit (ROM) 8e and the pixels output from the pixels 21b-T, T + 2, T + 1, T-1, and T-2. And output.
[0213]
The operation of the image processing apparatus 1e having the above-described configuration will be briefly described with respect to only differences. When performing the noise prediction process, the control unit 100e holds five frames of the input image (the current frame and two frames before and after) in the frame memories 3b-T + 2 to T-2, respectively.
[0214]
The control unit 100e reads the reference area tr from the image held in each frame memory 3bT, and stores it in the memory 2e.
The control unit 100e sets the search range sp corresponding to the read reference area tr in the other frame memories 3b-T-2, T-1, T + 1, and T + 2, and updates the search area tp while updating the phase. Is read out and stored in the memory 2e.
[0215]
The control unit 100e sequentially reads out the reference area tr while sequentially shifting the phase in a predetermined order in the frame memory T in an order such as a raster scan. The corresponding pixels of all the pixels can be output.
[0216]
In the element 20e in the memory 2e, in the class code generation unit 6e, when update information indicating that the sum of absolute difference values has been updated is input from the comparison update unit 26e, the pixels 21b-T, T + 2, T + 1, T A class code corresponding to the pixel values output from -1 and T-2 is generated and output to the coefficient storage (ROM) 8e.
[0219]
In the coefficient storage unit (ROM) 8e, the stored coefficients are output to the estimation calculation unit 9e according to the class code output from the class code generation unit 6e.
The estimation calculation unit 9e estimates a prediction value based on the prediction coefficients output from the coefficient storage unit (ROM) 8e and the pixels output from the pixels 21b-T, T + 2, T + 1, T-1, and T-2. Is output.
[0218]
The estimation operation unit 9 performs the above-described predetermined processing in accordance with the prediction coefficient and the corresponding pixel output from the coefficient storage unit (ROM) 8e, estimates a prediction value, and outputs the predicted value to, for example, a frame memory or the like.
[0219]
As described above, in the image processing device 1e according to the present embodiment, the class code generation unit 6e and the estimation calculation unit 9e are further provided for each element 20e of the memory 2e, so that the class classification adaptive processing function is provided. Can be provided.
[0220]
Specifically, each time the sum of absolute difference values is updated, the noise stored in the pixel T, the pixel T + 1, the pixel T + 2, the pixel T−1, and the pixel T−2 is used to perform the noise by the classification adaptive processing. Removal is performed and the predicted pixel is output each time. If the value is replaced in another frame memory or the like every time a pixel is output, an image after noise removal is finally obtained.
[0221]
Note that the present invention is not limited to the present embodiment, and various suitable modifications are possible.
For example, the image processing device 1c according to the fourth embodiment and the image processing device 1d according to the fifth embodiment may be combined. By doing so, it is possible to generate a class code by learning the noise component, estimate the noise component according to the generated class code, and generate a high-quality image.
[0222]
Seventh embodiment
Plane matching
FIG. 27 is a conceptual diagram for explaining the operation of the seventh embodiment of the image processing apparatus according to the present invention.
For example, as shown in FIG. 27A, when there are objects ob1 and ob2 that move with the lapse of time in an input image and a reference block having a predetermined size is set, FIG. In some cases, a plurality of objects are included in a reference block as shown in FIG.
[0223]
In block matching, since a motion vector is captured as the motion of the entire block, the motion (object ob1) originally possessed by the target pixel of the reference block becomes the motion vector of another object (object ob2). In some cases, an intermediate movement between the two objects may be obtained.
[0224]
The image processing apparatus according to the present embodiment performs plane matching, which will be described later, and generates an accurate motion vector even when a plurality of objects are included in a reference block.
[0225]
FIG. 28 is a conceptual diagram for explaining an operation of plane matching of the image processing apparatus according to the seventh embodiment of the present invention. The operation of the image processing apparatus for plane matching will be described with reference to FIG.
[0226]
In the plane matching, for example, when objects ob1 and ob2 exist as shown in FIG. 28A, a reference block is set as shown in FIG. 28B, and reference is made as shown in FIG. Pixels of only the same object as the target pixel are extracted from the blocks, and matching is performed based on the extracted pixels.
Extracting pixels for each identical object from an image for plane matching is referred to as “plane separation”.
[0227]
FIG. 29 is a functional block diagram of the image processing apparatus according to the seventh embodiment of the present invention.
As shown in FIG. 29, the image processing apparatus 1f according to the present embodiment includes a memory 2f, a plurality of frame memories 3f, for example, frame memories 3f-T and T-1, a reading unit 4f, a control unit 100f, and a plane separation unit. It has a unit 110. Only the differences will be described.
[0228]
For example, as shown in FIG. 29, when the size of the input image is w × b, the memory 2f has the number of elements of almost the entire screen as (w−2) × (h−2).
In order to search for a motion vector, the image processing device 1f performs, for example, plane separation processing on the entire screen of the frame memory 3f-T-1 in advance, and stores plane information of each pixel in all elements in the memory 2f. Is performed.
[0229]
The frame memory 3f-T stores the frame at the time T. The frame memory 3f-T is a frame memory having a size of, for example, a search range sp (w × h). For example, the control unit 100f controls a predetermined search area tp (w−2) × (h−2). Pixels are read and output to the memory 2f.
[0230]
The frame memory 3f-T-1 stores the frame at the time T-1. The frame memory 3f-T-1 is, for example, a frame memory having a size of w × h. For example, the control unit 100f reads pixels in a predetermined reference area tr (w−2) × (h−2). Output to the memory 2f.
[0231]
The reading unit 4f reads and outputs a motion vector stored for each element of the memory 2f.
The plane separation unit 110 performs a plane separation process described later based on the image data stored in the frame memory 3f-T-1, and outputs plane information resulting from the process to the memory 2f.
The control unit 100f performs a predetermined process described later.
[0232]
Each component will be described in detail below.
Memory configuration
FIG. 30A is a diagram schematically showing a memory of the image processing apparatus shown in FIG. FIG. 30B is an enlarged view of a part of FIG. FIG. 30C is a functional block diagram of the elements of the memory shown in FIG.
[0233]
As shown in FIGS. 30A and 30B, the memory 2f has a plurality of elements 20f.
As illustrated in FIG. 30C, the element 20f includes a pixel 20-1, a pixel 20-2, a pixel difference storage unit 22f-1, a difference sum storage unit 22f-2, a motion vector storage unit 23, a subtractor 24, It has an absolute value generation unit 25, a comparison update unit 26f, an update unit 27, an addition unit 28f, a plane information storage unit 29, and a switch (Switch) 30.
[0234]
As shown in FIG. 15, for example, as shown in FIG. 15, the memory 2f has eight neighboring elements (elements 20f-1 to 20f-4, 6 to 9 in FIG. 15) of the element of interest (element 20f-5 in FIG. 15) as shown in FIG. ) Is output to the element of interest. However, for each element 20f, the switch (switch) 30 determines whether or not to output.
[0235]
Further, the memory 2f can store not only one pixel but also two pixels as well as the memory 2a according to the first embodiment, and can calculate the absolute value of the difference. Further, the difference absolute value as the result is stored.
Further, this embodiment is different from the image processing apparatus according to the second embodiment in that “plane information” corresponding to pixels stored in the present embodiment can be stored.
Hereinafter, only the differences between the components will be described.
[0236]
The pixel difference storage unit 22f-1 outputs the stored absolute difference value to the addition unit 28f.
The difference sum storage unit 22f-2 updates the total sum difference absolute value stored in the difference sum storage unit 22a-2 based on the data output from the addition unit 28f and the sum total difference storage unit 22a-2. Output to
[0237]
The addition unit 28f adds the data based on the data output from the switch 30 and the total sum difference absolute value stored in the pixel difference storage unit 22f-1, and outputs the result to the comparison update unit 26f.
[0238]
The comparing / updating unit 26f compares the sum of absolute difference values A output from the adding unit 28f with the sum of absolute difference values (referred to as the sum of absolute difference values B) stored in the sum of difference storage unit 22a-2. As a result of the comparison, if the sum of absolute differences A is small, the sum of absolute differences A is stored in the sum of differences storage unit 22f-2, and the sum of absolute differences is updated.
[0239]
When performing the above-described update, the comparison update unit 26f outputs update information indicating that the update has been performed to the update unit 27.
When the difference absolute value sum A is large as a result of the comparison, the comparison updating unit 26f does not update the difference absolute value sum B stored in the difference sum storage unit 22a-2.
[0240]
The update unit 27f updates the motion vector stored in the motion vector storage unit 23 based on the update information output from the comparison update unit 26f and the phase information.
Specifically, when update information indicating that the difference absolute value has been updated is output from the comparison update unit 26f, the update unit 27f causes the motion vector storage unit 23 to store the phase at that time as a motion vector. By doing so, the motion vector is updated.
[0241]
The adder 28f calculates the difference absolute value a output from the pixel difference storage 22a-1 and the eight elements 20a near the pixel output from the switch 30 (also referred to as eight adjacent elements 20a). Based on the difference absolute value a, they are added to generate a difference absolute value sum A, which is output to the comparison update unit 26f.
The plane information storage unit 29 stores plane information described later.
[0242]
The switch 30 has a role of a gate that determines the coincidence of the plane information and outputs the absolute difference a of each element 20f to the adder 28f.
For example, the switch (Switch) 30 outputs the absolute difference value to the adding unit 28f according to the plane information of the element 20f of interest and the plane information of the other eight neighboring elements 20f.
[0243]
More specifically, the switch 30 determines the plane information stored in the plane information storage unit 29 of the element 20f of interest and the plane information stored in the plane information storage unit 29 of each of the other eight neighboring elements 20f. Are compared, and if they match, the difference absolute value stored in the pixel difference storage unit 22f-1 is output to the addition unit 28f. If they do not match, the difference absolute values are stored in the eight neighboring elements 20f. The absolute value of the difference value is not output to the adding unit 28f.
[0244]
When the sum of the elements 201 is updated, the motion vector (motion vector) at that time is also updated from the previously stored one.
[0245]
Plane separation and plane information
FIG. 31 is a diagram for explaining the processing of the plane separation unit of the image processing apparatus shown in FIG.
Each element such as the background and each object in the input image is called a plane. Separation into each plane is called plane separation.
[0246]
The plane separating unit 110 allocates a predetermined value (label) to each of the separated planes, for example, as shown in FIG. What represents which plane each pixel in the image belongs to is called plane information.
Hereinafter, a specific example of the plane separation method will be described.
[0247]
FIG. 32 is a functional block diagram illustrating a specific example of a plane separation unit of the image processing apparatus 1f.
For example, the plane separation unit 110 separates the input image into a predetermined plane by using the fact that the brightness and color inside the same object and background in the image are at the same level.
[0248]
The plane separation unit 110 includes, for example, a histogram calculation unit 111, a peak detection unit 112, a valley detection unit 113, an elimination unit 114, a valley integration unit 115, and a labeling unit 116, as shown in FIG.
[0249]
The histogram calculation unit 111 generates and holds a histogram (frequency distribution) for each level (luminance or color) according to the input image.
FIG. 33 is a diagram illustrating a specific example of a histogram generated by the histogram calculation unit 111 of the plane separation unit of the image processing apparatus 1f illustrated in FIG. The horizontal axis indicates the level, and the vertical axis indicates the histogram (frequency).
[0250]
The histogram calculation unit 111 generates a histogram according to the input image, for example, as illustrated in FIG.
The histogram calculation unit 111 outputs the generated histogram (frequency distribution) to the peak detection unit 112.
[0251]
The peak detection unit 112 detects a level (peak) having the maximum frequency in the histogram based on the input histogram, and outputs the level to the valley detection unit 113. For example, based on the histogram output from the histogram calculation unit 111 or the histogram output from the erasure unit 114, the peak detection unit 112 detects the level (peak) of the maximum frequency in the histogram and detects the valley. Output to the unit 113.
[0252]
The valley detection unit 113 specifies, for example, the frequency of an object including the peak based on the peak of the histogram.
For example, the valley detection unit 113 detects two valleys on both sides of the level peak in the histogram based on the level (peak) having the maximum frequency output from the peak detection unit 112.
[0253]
Specifically, the valley detecting unit 113 sets the point having the least frequency within a predetermined range around the peak, for example, + a, as the right valley, and within the predetermined range, for example, -a, The point with less frequency is the left valley.
[0254]
The deletion unit 114 deletes, for example, the frequency of an object including a predetermined peak.
For example, the erasing unit 114 erases, from the histogram, frequencies corresponding to levels surrounded by two valleys on the left and right with the peak of the histogram as the center, and outputs the frequency to the peak detecting unit 112.
[0255]
FIG. 34 is a specific example of a histogram for explaining the operation of the erasing unit of the plane separation unit of the image processing apparatus shown in FIG.
For example, as shown in FIG. 34, the erasing unit 114 erases the frequency corresponding to the level surrounded by the two valleys on the left and right around the predetermined peak from the histogram and outputs the frequency to the peak detecting unit 112. .
[0256]
When the elimination unit 114 determines that the frequencies for all the levels in the histogram have become 0, the elimination unit 114 outputs the valley frequencies to the valley integration unit 115.
[0257]
The valley integration unit 115 integrates valleys having similar levels based on the frequency of each valley output from the erasure unit 114 and outputs the valley to a predetermined labeling unit 116.
More specifically, the valley integration unit 115 integrates valleys having a level close to each valley.
More specifically, the valley integrating unit 115 deletes other valleys included in a predetermined range of the previously detected valley, for example, a range of ± b, giving priority to the order in which the valleys are detected.
[0258]
FIG. 35 is a diagram for explaining the valleys of the histogram before being integrated by the valley integration unit of the image processing apparatus illustrated in FIG. 32. FIG. 36 is a diagram for explaining the valleys of the histogram integrated by the valley integration unit of the image processing apparatus shown in FIG.
[0259]
Specifically, the valley integrating unit 115 integrates valleys having similar levels as shown in FIG. 36 based on the frequency of each valley output from the erasing unit 114 as shown in FIG. 35, for example.
[0260]
The labeling unit 116 assigns a predetermined value (label) label to each plane separated according to the input image and the image output from the valley integration unit 115. Specifically, the labeling unit 116 regards the pixels existing between the valleys as the same plane and assigns the same label to each pixel of the input image.
[0261]
More specifically, the labeling unit 116 determines for each pixel which valley the level (luminance or color) is inside, and assigns the same label to each pixel inside that valley.
[0262]
FIG. 37 is a flowchart for explaining the operation of the plane separation unit of the image processing apparatus shown in FIG.
[0263]
In step ST201, the histogram calculation unit 111 generates and holds a histogram for each value level (luminance or color).
In the histogram calculation unit 111, the generated histogram is output to the peak detection unit 112.
[0264]
In step ST202, the peak detection unit 112 detects the level (peak) of the maximum frequency in the histogram based on the input histogram, and outputs the level to the valley detection unit 113.
Specifically, the peak detection unit 112 detects the level (peak) of the maximum frequency in the histogram based on the histogram output from the histogram calculation unit 111 or the histogram output from the elimination unit 114. Are output to the valley detecting unit 113.
[0265]
In step ST203, the valley detection unit 113 detects valleys on both sides of the peak. Specifically, the valley detection unit 113 sets the point having the least frequency within the range of + a around the peak as the right valley. The valley detection unit 113 sets the point with the least frequency within the range of -a as the left valley.
[0266]
The valley detection unit 113 specifies, for example, the frequency of an object including the peak based on the peak of the histogram.
For example, the valley detection unit 113 detects two valleys on both sides of the level peak in the histogram based on the level (peak) having the maximum frequency output from the peak detection unit 112.
Specifically, the valley detecting unit 113 sets the point having the least frequency within a predetermined range around the peak, for example, + a, as the right valley, and within the predetermined range, for example, -a, The point with less frequency is the left valley.
[0267]
In step ST205, the erasing unit 114 erases the frequency corresponding to the level surrounded by the two valleys on the left and right from the histogram.
Further, the erasing section 114 determines whether or not the frequencies for all the levels in the histogram have become 0. If it is determined that the frequencies have not become 0, the process returns to step ST202.
[0268]
On the other hand, in the determination in step ST205, when the elimination unit 114 determines that the frequencies for all the levels in the histogram have become 0, the valley frequencies are output to the valley integration unit 115.
[0269]
In step ST206, the valley integrating unit 115 integrates the valleys having similar levels based on the frequency of each valley output from the erasing unit 114, and outputs the integrated valleys to the predetermined labeling unit 116. More specifically, the valley integration unit 115 integrates valleys having similar levels. More specifically, the valley integration unit 115 erases other valleys included in a predetermined range of the previously detected valley, for example, a range of ± b, giving priority to the order in which the valleys are detected.
[0270]
In step ST207, the labeling unit 116 assigns a predetermined value (label) label to each of the separated planes according to the input image and the image output from the valley integration unit 115.
[0271]
Specifically, the labeling unit 116 regards the pixels existing between the valleys as the same plane and assigns the same label to each pixel of the input image. More specifically, the labeling unit 116 determines for each pixel which valley the level (luminance or color) is inside, and assigns the same label to each pixel inside that valley.
Then, a series of operations related to plane separation are completed.
[0272]
FIG. 38 is a flowchart for explaining the operation of the image processing apparatus shown in FIG. The operation of the image processing apparatus 1f will be described with reference to FIG. 38, focusing on the element 20f.
[0273]
For simplicity, a memory that performs plane matching will be described with a block size of 3 × 3 pixels and a search range sp of (−1, −1) to (1, 1) in pixel units for simplicity.
[0274]
Here, the target element is assumed to be one of the elements in which a motion vector is actually stored in FIG. It is not an element at the end of the memory 20f.
Assume that the size of the image is w × b for a simple explanation.
[0275]
In the plane separation unit 110, the above-described predetermined plane separation processing is performed based on the image stored in the frame memory 3f-T-1, and plane information as a result of the processing is stored for each element 20f in the memory 2f. Is output to
Each of the elements 20f stores the plane information output from the plane separation unit 110.
Specifically, plane information for one pixel is stored in each of the plane information storage units 29 of the element 20f (ST301).
[0276]
From the frame memory 3f-T-1, as shown in FIG. 29, each pixel of the (w-2) × (h-2) reference area tr is stored in each element 20f of the memory 2f.
Specifically, as shown in FIG. 30C, one pixel of the reference area tr is stored in the pixel 20-2 of each element 2f.
Next, while updating the phase within the search range sp, the area of (w−2) × (h−2) is read, and each pixel in the area is stored for each element in the memory (ST302). This (w−2) × (h−2) area is referred to as “search area tp”.
[0277]
As shown in FIG. 30C, one pixel of the search area tp is stored in the pixel 20-1 of each element 20f.
Updating of the phase and reading of the search area tp are actually the same as in the case of the block matching described above, except that the number of pixels in the search area tp is different, and 9 in the range of (-1, -1) to (1-1). Is performed twice, and ends after nine times.
[0278]
In each element 20, the subtractor 24 generates a difference value between the value stored in the pixel 20-1 and the value stored in the pixel 20-2, and the absolute value generation unit 25 outputs the difference value from the subtractor 24. An absolute value of the difference value (a difference absolute value a) is generated, and the pixel difference storage unit 22f-1 stores the difference absolute value a (ST305).
[0279]
Next, in each element of interest, plane information is read from the eight neighboring elements.
Specifically, in the switch 30, the plane information stored in the plane information storage unit 29 of the element 20f of interest and the plane information stored in the plane information storage unit 29 of the other eight neighboring elements 20f are the same. A determination is made whether there is.
In the switch 30, the difference absolute value a stored in the pixel difference storage unit 22f-1 of the element 20f determined to be the same is read and added.
In addition section 28f, difference absolute value a output from each switch 30 is added, and difference absolute value total sum A is obtained (ST306).
[0280]
Next, in each target element, the comparison / update unit 26f compares the difference absolute value sum A (difference absolute value sum B) stored in advance with the difference absolute value sum A (ST307). Then, the value stored in the difference sum storage unit 22f-2 is updated from the difference absolute value sum B to the difference absolute value sum A (ST309).
On the other hand, when the absolute difference sum A is large, the comparison updating unit 26f does not perform the update, and shifts to the next phase update and reading of the search area tp.
By the way, in the initial state, the sum of absolute difference values is not stored in the element of interest. In that case, the first sum of absolute differences is unconditionally stored.
[0281]
Next, only when the sum of absolute difference values of a certain element of interest is updated, the motion vector stored in the element of interest is updated using the phase at that time as a true motion vector (ST310).
As described above, at the time when the phase update is completed, the minimum value of the sum of absolute pixel differences in the search range sp and the motion vector when it is stored are stored in each of the nine elements of interest.
The reading unit 4f reads and outputs these motion vectors from each element of interest.
[0282]
As described above, in the image processing apparatus according to the present embodiment, the histogram calculation unit 111 that generates a histogram (frequency distribution) for each level (luminance or color) according to the input image, A peak detector 112 for detecting the level (peak) of the maximum frequency in the histogram; a valley detector 113 for specifying, for example, the frequency of an object including the peak based on the peak of the histogram; From the input image and the valley consolidation unit 115, based on the frequency of each valley output from the elimination unit 114, A labeling unit 1 for assigning a predetermined value (label) label to each plane separated according to the output image 6, a plane information storage unit 29 that stores plane information for each of the elements 20f, and a determination of coincidence of the plane information, and outputs the absolute difference a of each element 20f to the addition unit 28f. Since the switch 30 is provided, an accurate motion vector can be generated even when a plurality of objects are included in a reference block, for example.
[0283]
Eighth embodiment
FIG. 39 is a functional block diagram of an image processing apparatus according to an eighth embodiment of the present invention.
As shown in FIG. 39, the image processing device 1g according to the present embodiment includes a memory 2g, a plurality of frame memories 3g, for example, a frame memory 3g-T, T-1, a reading unit 4g, a control unit 100g, a plane separating unit. 110g and a plane information buffer 120.
[0284]
The difference between the image processing device 1g and the image processing device 1f according to the seventh embodiment is that a memory 2g, a plurality of frame memories 3g, for example, frame memories 3g-T and T-1, a reading unit 4g, and a control unit 100g. , A plane separation unit 110g, and a plane information buffer 120. Only the differences will be described.
[0285]
The memory 2g has a predetermined number of elements 20f, for example, 5 × 5 elements 20f.
The plane separation unit 110g, for each reference region tr of the image data stored in the frame memory 3g-T-1, for example, for each reference region tr having a size of 5 × 5, based on the pixels in the reference region tr. The plane separation processing is performed, and the plane information resulting from the processing is output to the plane information buffer 120.
[0286]
The plane separating unit 110g is not limited to this mode. The plane separation unit 110g performs a plane separation process on the image stored in the frame memory T-1 based on the image data stored in the frame memory 3g-T-1, and outputs the resulting plane information to the plane. The information may be output to the information buffer 120.
[0287]
The plane information buffer 120 stores, for example, pixels of the entire screen size output from the plane separation unit 110g.
The plane information buffer 120 may store, for example, plane information for each 5 × 5 reference area tr output from the plane separation unit 110g at a predetermined position (address).
The plane information buffer 120 outputs plane information at a predetermined position (address) to the memory 2g, and stores the plane information in the plane information storage unit 29 of the corresponding element 20f of the memory 2g.
[0288]
The control unit 100g performs a predetermined process according to the above-described process, for example.
Further, the control unit 100g performs, for example, a write process or a read process of predetermined data in the frame memory 3g, the memory 2g, or the like according to the above-described process.
[0289]
The operation of the image processing apparatus having the above-described configuration will be briefly described only for differences.
In the plane separation unit 110g, for each reference area tr of the image data stored in the frame memory 3g-T-1, for example, a reference area tr of a size of 5 × 5, based on the pixels in the reference area tr. The plane separation processing is performed, and the plane information resulting from the processing is output to the plane information buffer 120, where the plane information is stored at a predetermined position (address).
[0290]
Thereafter, as in the above-described seventh embodiment, in the memory 2g, the pixel in the reference area tr is stored in the pixel 21-1, and the pixel in the search area tp is stored in the pixel 21-2.
[0291]
The subtractor 24 generates a difference value between the pixel stored in the pixel 21-1 and the pixel in the search area tp stored in the pixel 21-2, and the absolute value generation unit 25 calculates the absolute value of the difference value. A certain absolute difference value is generated and stored in the pixel difference storage unit 22-1.
[0292]
In the switch 30, the plane information stored in the plane information storage unit 29 is compared with the plane information stored in the plane information storage unit 29 of the element 20 around the element of interest. The absolute value of the difference stored in the pixel difference storage unit 22f-1 of the peripheral element 20 is output to the target pixel addition unit 28f.
The adding unit 28f adds the absolute difference value output from the switch 30 and the absolute difference value stored in the pixel difference storage unit 22f-1 and outputs the result to the comparison updating unit 26f.
[0293]
The comparing / updating unit 26f compares the difference sum value stored in the difference sum storage unit 22f-2 with the difference sum value output from the adding unit 28f, and compares the difference sum value output from the adding unit 28f with the difference sum value. Is smaller, the smaller difference sum value is output to the difference sum storage unit 22f-2. The difference total storage unit 22f-2 stores and updates the difference total value.
[0294]
When the comparison / update unit 26f updates the difference sum value stored in the pixel difference storage unit 22f-2, the update unit 27 outputs update information indicating the update.
In the update unit 27, when the update information indicating the update is output from the comparison update unit 26f, the phase information of the search area tp and the reference area tr is stored in the motion vector storage unit 23.
The phase of the search region tp in the search range sp is updated, the search regions tp of all phases in all the search ranges sp are compared with the reference region tr, and a motion vector is generated.
[0295]
As described above, the image processing device 1g according to the present embodiment can store image data stored in the frame memory 3g-T-1 in comparison with the image processing device 1f according to the seventh embodiment. A plane separation unit 110g that generates plane information by performing plane separation and a plane information storage unit 29 that stores the plane information are provided based on a predetermined size, for example, a memory 2g including a 5 × 5 element 20f. , A predetermined search range sp and an image in the reference area tr, and the difference sum value stored in the difference sum storage unit 22f-2 only when it matches the plane information of the peripheral element 20f. Is updated, and the motion vector is updated only when it is updated. Therefore, even if there are a plurality of objects in the reference area tr, the motion vector can be accurately generated. It can be.
Further, by providing the plane information buffer 120, plane information of the entire screen size can be stored and predetermined processing can be performed efficiently.
[0296]
Ninth embodiment
Motion vector correction using plane information
When the block size of the block matching or the plane area of the plane matching is small, if the input image contains noise, the possibility of erroneously detecting the motion vector of each pixel increases.
Using the plane information stored in the memory 2h of the image processing device 1h according to the ninth embodiment, a highly accurate motion vector is generated even in the case described above.
[0297]
FIG. 40 is a functional block diagram of a ninth embodiment of the image processing apparatus according to the present invention.
The image processing device 1h detects a motion vector using the result of the plane matching and the motion vector detection and the structure of the memory in which the plane information is stored.
[0298]
As shown in FIG. 40, the image processing apparatus 1h includes a memory 2f, a plurality of frame memories 3f, for example, frame memories 3f-T and T-1, a reading unit 4h, a control unit 100h, a plane separation unit 110h, and a motion vector correction. Unit 130.
[0299]
The memory 2f of the image processing device 1h has the same structure as the memory 2f of the image processing device 1f according to the seventh embodiment.
In the image processing device 1h, the process of storing plane information and motion vectors in the memory 2f and the plane matching process are almost the same as those of the image processing device 1f according to the seventh embodiment.
[0300]
FIG. 41 is a diagram for explaining the operation of the motion vector correction unit of the image processing device shown in FIG.
When the motion vector detection in the memory 2f that outputs the plane matching of the image processing device 1f according to the above-described seventh embodiment ends in the memory 2f, as illustrated in FIG. Output a motion vector. The details will be described below.
[0301]
The motion vector correction unit 130 reads a motion vector from only the element having the same plane information as the element of interest in, for example, a 5 × 5 lattice area in the memory around the element of interest, and reads the read motion The frequency of the vector is obtained, and the highest motion vector is set as the motion vector of the element of interest.
[0302]
Specifically, for example, the motion vector correction unit 130 stores the 5 × 5 lattice area in the memory centered on the element of interest, which is output from the reading unit 4h, in the plane information storage unit 29 of the element of interest. From only the elements having the same plane information as the stored plane information, the motion vector stored in the motion vector storage unit 23 is read, the frequency of the read motion vector is obtained, and the highest motion vector is noted. Let it be the motion vector of the element.
[0303]
The operation of the above-described configuration will be briefly described.
From the readout unit 4h, only the element having the same plane information as the plane information stored in the plane information storage unit 29 of the element of interest with respect to, for example, a 5 × 5 lattice area in the memory centering on the element of interest, The motion vector stored in the motion vector storage unit 23 is read.
The motion vector correction unit 130 calculates the frequency of the read motion vector, and sets the highest motion vector as the motion vector of the element of interest.
[0304]
As described above, the motion vector correction unit 130 assumes that the pixels on the same plane around the target pixel have almost the same motion, and even if the motion vector of the target pixel is incorrect in the normal matching, The accuracy of the motion vector can be improved by calculating a motion vector that is highly likely to be originally possessed by the pixel of interest and replacing it with the motion vector.
[0305]
Further, since the memory 2f capable of storing plane information is provided for each element, when deriving a motion vector, a motion vector can be accurately obtained even at a boundary portion between a plurality of objects that are likely to be erroneous.
[0306]
In addition, the most frequent motion vector is obtained for each same plane in the area around the pixel of interest, and the motion vector is corrected using the motion vector. be able to.
[0307]
【The invention's effect】
According to the present invention, it is possible to provide an image processing apparatus and an image processing method capable of calculating a motion vector with a small amount of calculation.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a general image processing apparatus.
FIG. 2 is a flowchart showing an operation of the general image processing apparatus shown in FIG.
FIG. 3 is a diagram for explaining a specific example of an operation from reading a phase block by a phase shift to recording in an evaluation table memory.
FIG. 4 is a functional block diagram of the first embodiment of the image processing apparatus according to the present invention.
FIG. 5A is a diagram illustrating a memory of the image processing apparatus according to the first embodiment; FIG. 2B is a functional block diagram of elements in the memory of the image processing apparatus shown in FIG.
FIG. 6 is a diagram for explaining updating of a phase in pixel matching of the image processing apparatus shown in FIG. 4 and reading of a search area tp. (A) is a figure which shows the phase in a search range. (B) is a figure which shows the relationship between a phase and the search area tp.
FIG. 7 is a flowchart for explaining the operation of the image processing apparatus 1 shown in FIG. 1;
FIG. 8 is a functional block diagram of a second embodiment of the image processing apparatus according to the present invention.
9A is a diagram illustrating a memory of the image processing apparatus 1a illustrated in FIG. 8; FIG. 9B is a diagram illustrating a specific example of the configuration of the memory illustrated in FIG. 8; FIG. 9C is a diagram illustrating a configuration of a memory for storing motion vectors of the image processing apparatus 1a illustrated in FIG.
10 is a diagram for explaining an operation of the image processing apparatus shown in FIG. 8, particularly an operation of updating a phase and reading a search area tp. (A) is a figure showing a phase in search range sp. (B) is a figure which shows the relationship between a phase and the search area tp.
FIG. 11 is a flowchart for explaining the operation of the image processing apparatus 1a shown in FIG.
12 is a diagram illustrating blocks cut out from a reference region tr of a frame of the image processing apparatus illustrated in FIG. 8;
FIG. 13 is a conceptual diagram for explaining extraction of a corresponding pixel of an image processing apparatus according to a third embodiment of the present invention.
FIG. 14 is a functional block diagram of a third embodiment of the image processing apparatus according to the present invention.
FIG. 15A is a diagram illustrating a memory 2b of the image processing apparatus 1b illustrated in FIG. 14; (B) is a diagram showing a memory in which corresponding pixels are stored. (C) is a functional block diagram of the element 20b of the memory 2b shown in (a).
FIG. 16A is a diagram showing a search range spT + 2 (9 × 9) of a frame T + 2 and a phase of a search area tpT + 2. (B) is a diagram showing the search range spT + 1 (7 × 7) of the frame T + 1 and the phase of the search area tpT + 1. (C) is a diagram showing the search range spT-1 (7 × 7) of the frame T-1 and the phase of the search area tpT-1. (D) is a diagram showing the search range spT-2 (9 × 9) of the frame T-2 and the phase of the search area tpT-2. FIG. 15E is a diagram for explaining the process of updating the phase and reading the search area tp of the image processing apparatus 1b shown in FIG.
FIG. 17 is a flowchart for explaining the operation of the image processing apparatus shown in FIG. 14;
FIG. 18 is a functional block diagram of an image processing apparatus according to a fourth embodiment of the present invention.
FIG. 19 is a functional block diagram illustrating a first specific example of a noise adding unit of the image processing apparatus 1c illustrated in FIG. 18;
20 is a functional block diagram illustrating a second specific example of the noise adding unit of the image processing apparatus 1c illustrated in FIG.
FIG. 21 is a functional block diagram illustrating a third specific example of the noise adding unit of the image processing device 1c illustrated in FIG. 18;
FIG. 22 is a diagram for explaining a principle of generating a class code (detecting a noise component) of a class code generation unit of the image processing apparatus 1c shown in FIG.
FIG. 23 is a diagram for explaining a procedure that the image processing apparatus 1c shown in FIG. 18 should read out to the memory of the reference area tr for class classification adaptive processing. (A) is a figure which shows the state before a shift. (B) is a figure which shows the state after a shift.
FIG. 24 is a diagram showing functional blocks of an image processing apparatus according to a fifth embodiment of the present invention.
FIG. 25 is a functional block diagram of a sixth embodiment of the image processing apparatus according to the present invention.
26A is a configuration diagram of a memory of the image processing apparatus shown in FIG. 25, FIG. 26B is a diagram showing elements storing predicted pixels of the memory shown in FIG. 25A, and FIG. FIG. 3 is a functional block diagram of the elements of the memory shown in FIG.
FIG. 27 is a conceptual diagram illustrating the operation of the image processing apparatus according to the seventh embodiment of the present invention.
FIG. 28 is a conceptual diagram for describing an operation of plane matching of the image processing apparatus according to the seventh embodiment of the present invention.
FIG. 29 is a functional block diagram of an image processing apparatus according to a seventh embodiment of the present invention.
FIG. 30A is a diagram schematically showing a memory of the image processing apparatus shown in FIG. 29; (B) is the figure which expanded a part of (a). (C) is a functional block diagram of the element of the memory shown in (b).
FIG. 31 is a diagram for describing processing of a plane separation unit of the image processing apparatus shown in FIG. 29;
FIG. 32 is a functional block diagram illustrating a specific example of a plane separation unit of the image processing apparatus 1f.
FIG. 33 is a diagram illustrating a specific example of a histogram generated by a histogram calculation unit of the plane separation unit of the image processing apparatus 1f illustrated in FIG. 32;
FIG. 34 is a specific example of a histogram for explaining the operation of the erasing unit of the plane separation unit of the image processing apparatus shown in FIG. 32.
FIG. 35 is a diagram for explaining valleys of the histogram before being integrated by the valley integration unit of the image processing apparatus shown in FIG. 32;
36 is a diagram for explaining valleys of a histogram integrated by the valley integration unit of the image processing apparatus shown in FIG. 32.
FIG. 37 is a flowchart for explaining the operation of the plane separation unit of the image processing apparatus shown in FIG. 32;
FIG. 38 is a flowchart for explaining the operation of the image processing apparatus shown in FIG. 29;
FIG. 39 is a functional block diagram of an image processing apparatus according to an eighth embodiment of the present invention.
FIG. 40 is a functional block diagram of a ninth embodiment of the image processing apparatus according to the present invention.
FIG. 41 is a diagram illustrating an operation of a motion vector correction unit of the image processing device illustrated in FIG. 40.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Image processing apparatus, 2 ... Memory, 3 ... Frame memory, 4 ... Readout part, 5 ... Noise addition part, 6 ... Class code generation part, 7 ... Normal equation addition part, 8 ... Coefficient storage part, 9 ... Estimation calculation Unit, 20 elements, 21 pixels, 22 minimum pixel difference storage unit, 22a-1 pixel difference storage unit, 22a-2 difference sum storage unit, 22b-1 difference absolute value sum A storage unit, 22b- 2 ... difference absolute value sum B storage unit, 23 ... motion vector storage unit, 24 ... subtractor, 25 ... absolute value generation unit, 26 ... comparison / update unit, 27 ... update unit, 28 ... adder, 29 ... plane information storage 51, an RF modulator (RF @ MODULATOR), 52, an attenuator attenuator, 53, an RF demodulator (RFDEMODULATOR), 54, a subtractor, 55, an adder, 56, a frame adder, 100, a controller, Reference Signs List 10: plane separation unit, 111: histogram calculation unit, 112: peak detection unit, 113: valley detection unit, 114: elimination unit, 115: valley integration unit, 116: labeling unit, 120: plane information buffer, 130: motion vector Correction unit, 250 ... adder.

Claims (32)

第1の画像データおよび第2の画像データのマッチングを行う画像処理装置であって、
マッチングデータを含む画像素子を少なくとも1つ有し、
前記画像素子は、
前記第1の画像データの内の参照用の第1の画素を記憶する第1の画素記憶手段と、
前記第1の画素に応じて、前記第2の画像データの所定の探索範囲の内の第2の画素を記憶する第2の画素記憶手段と、
更新可能な第1の差分値を記憶する差分値記憶手段と、
更新可能な、第1の画素と第2の画素との位相に関する位相情報を記憶する位相情報記憶手段と、
前記第1の画素記憶手段に記憶されている第1の画素と前記第2の画素記憶手段に記憶されている第2の画素との第2の差分値と、前記差分値記憶手段に記憶されている第1の差分値とを比較し、前記比較の結果に応じて、前記差分値記憶手段に記憶されている第1の差分値を更新する差分値更新手段とを有する
画像処理装置。
An image processing device that performs matching between first image data and second image data,
Having at least one image element containing matching data,
The image element is
First pixel storage means for storing a first pixel for reference in the first image data;
A second pixel storage unit configured to store a second pixel within a predetermined search range of the second image data according to the first pixel;
Difference value storage means for storing an updatable first difference value;
Updatable phase information storage means for storing phase information relating to the phases of the first pixel and the second pixel;
A second difference value between a first pixel stored in the first pixel storage unit and a second pixel stored in the second pixel storage unit; and a second difference value stored in the difference value storage unit. And a difference value updating unit that updates the first difference value stored in the difference value storage unit according to a result of the comparison.
前記差分値更新手段が前記第1の差分値を更新した場合には、前記位相情報記憶手段に記憶されている位相情報を更新する位相情報更新手段を有する
請求項1に記載の画像処理装置。
The image processing apparatus according to claim 1, further comprising: a phase information updating unit that updates the phase information stored in the phase information storage unit when the difference value updating unit updates the first difference value.
前記差分値更新手段が、前記第1の画素と、前記第2の画像データの所定の探索範囲の内の第2の画素とのマッチング処理の結果、最小の差分値が前記差分値記憶手段に記憶されているときの、前記位相情報更新手段に記憶されている位相情報を、動きベクトルとする
請求項2に記載の画像処理装置。
As a result of the matching process between the first pixel and a second pixel within a predetermined search range of the second image data, the minimum difference value is stored in the difference value storage unit. 3. The image processing apparatus according to claim 2, wherein the phase information stored in the phase information updating means when stored is a motion vector.
前記差分値更新手段は、前記第1の画素記憶手段に記憶されている第1の画素と前記第2の画素記憶手段に記憶されている第2の画素との第2の差分値と、前記差分値記憶手段に記憶されている第1の差分値とを比較し、当該第2の差分値の方が小さい場合には、当該第2の差分値を前記差分値記憶手段に記憶させて第1の差分値を更新する
請求項1に記載の画像処理装置。
The difference value updating unit includes a second difference value between a first pixel stored in the first pixel storage unit and a second pixel stored in the second pixel storage unit; The second difference value is compared with the first difference value stored in the difference value storage means, and if the second difference value is smaller, the second difference value is stored in the difference value storage means and The image processing apparatus according to claim 1, wherein the difference value of 1 is updated.
第1の画像データおよび第2の画像データのマッチングを行う画像処理装置であって、
マッチングデータを含む複数の画像素子を有し、
前記画像素子は、
前記第1の画像データの内の参照用の第1の画素を記憶する第1の画素記憶手段と、
前記第1の画素に応じて、前記第2の画像データの所定の探索範囲の内の第2の画素を記憶する第2の画素記憶手段と、
前記第1の画素と前記第2の画素の差分値を記憶する差分値記憶手段と、
更新可能な、隣接する他の画像素子の差分値と前記差分値記憶手段に記憶されている差分値との総和である第1の総和差分値を記憶する総和差分値記憶手段と、
更新可能な、第1の画素と第2の画素との位相に関する位相情報を記憶する位相情報記憶手段と、
前記差分値記憶手段に記憶されている差分値と、前記隣接する他の画像素子に記憶されている差分値とを加算し第2の総和差分値を出力する加算手段と、
前記総和差分値記憶手段に記憶されている第1の総和差分値と、前記加算手段から出力された第2の総和差分値とを比較し、前記比較の結果に応じて、前記総和差分値記憶手段に記憶して第1の総和差分値を更新する総和差分値更新手段とを有する
画像処理装置。
An image processing device that performs matching between first image data and second image data,
Having a plurality of image elements including matching data,
The image element is
First pixel storage means for storing a first pixel for reference in the first image data;
A second pixel storage unit configured to store a second pixel within a predetermined search range of the second image data according to the first pixel;
Difference value storage means for storing a difference value between the first pixel and the second pixel;
Updatable total sum difference value storage means for storing a first sum total difference value which is a sum of a difference value of another adjacent image element and a difference value stored in the difference value storage means,
Updatable phase information storage means for storing phase information relating to the phases of the first pixel and the second pixel;
Adding means for adding a difference value stored in the difference value storage means and a difference value stored in the adjacent other image element and outputting a second sum difference value;
Comparing the first sum difference value stored in the sum difference value storage means with the second sum difference value output from the addition means; Means for updating the first sum difference value stored in the means.
前記総和差分値更新手段が、前記総和差分値を更新した場合には、前記位相情報記憶手段に記憶されている位相情報を更新する位相情報更新手段を有する
請求項5に記載の画像処理装置。
6. The image processing apparatus according to claim 5, further comprising: a phase information updating unit that updates the phase information stored in the phase information storage unit when the total difference value updating unit updates the total difference value.
前記総和差分値更新手段が、前記第1の画素と、前記第2の画像データの所定の探索範囲の内の第2の画素とのマッチングの処理結果、最小の総和差分値が前記総和差分値記憶手段に記憶されているときの、前記位相情報記憶手段に記憶されている位相情報を、動きベクトルとする
請求項6に記載の画像処理装置。
The sum total difference updating unit may calculate a minimum sum total difference value as a result of the matching processing between the first pixel and a second pixel within a predetermined search range of the second image data. 7. The image processing apparatus according to claim 6, wherein the phase information stored in the phase information storage unit when stored in the storage unit is a motion vector.
前記総和差分値更新手段は、前記総和差分値手段に記憶されている第1の総和差分値と、前記加算手段から出力された第2の総和差分値とを比較し、前記第2の総和差分値が小さい場合には、当該第2の総和差分値を、前記総和差分値記憶手段に記憶させて第1の総和差分値を更新する
請求項5に記載の画像処理装置。
The sum total difference updating means compares the first sum total difference value stored in the sum total difference value means with the second sum total difference value output from the adding means, and calculates the second sum total difference value. 6. The image processing apparatus according to claim 5, wherein when the value is small, the second sum difference value is stored in the sum difference value storage means to update the first sum difference value.
時間的に異なる複数の画像データのマッチングを行う画像処理装置であって、
マッチングデータを含む複数の画像素子を有し、
前記画像素子は、
前記時間的に異なる前記画像データそれぞれの画素を記憶する複数の第1の画素記憶手段と、
要求に応じて更新可能な、前記第1の画素値記憶手段に記憶されている前記画素それぞれを記憶する複数の第2の画素記憶手段と、
前記複数の第1の画素記憶手段に記憶されている前記画素の差分値の総和である時間総和差分値を記憶する時間総和差分値記憶手段と、
前記時間総和差分値と、隣接する他の素子の時間総和差分値との総和である第1の総和差分値を記憶する総和差分値記憶手段と、
前記時間総和差分値記憶手段と、前記所定の領域の内の他の画像素子の時間総和差分値記憶手段とに記憶されている時間総和差分値を加算し第2の総和差分値を出力する加算手段と、
前記総和差分値記憶手段に記憶されている第1の総和差分値と、前記加算手段から出力された第2の総和差分値とを比較し、前記比較の結果に応じて、前記総和差分値記憶手段に記憶されている第1の総和差分値を更新する総和差分値更新手段とを有する
画像処理装置。
An image processing apparatus that performs matching of a plurality of temporally different image data,
Having a plurality of image elements including matching data,
The image element is
A plurality of first pixel storage means for storing pixels of each of the temporally different image data;
A plurality of second pixel storage means for storing each of the pixels stored in the first pixel value storage means, which can be updated as required,
A time total difference value storage unit that stores a time total difference value that is a total of the difference values of the pixels stored in the plurality of first pixel storage units;
Sum total difference value storage means for storing a first sum total difference value which is a sum of the time total difference value and a time total difference value of another adjacent element;
An addition for adding the time total difference values stored in the time total difference value storage means and the time total difference value storage means of the other image elements in the predetermined area to output a second total difference value Means,
Comparing the first sum difference value stored in the sum difference value storage means with the second sum difference value output from the addition means, and storing the sum difference value in accordance with a result of the comparison; An image processing device comprising: a total sum difference value updating unit that updates a first total sum difference value stored in the unit.
前記総和差分値更新手段が前記第1の総和差分値を更新した場合には、前記複数の第1の画素値記憶手段に記憶されている画素値を、前記複数の第2の画素値記憶手段に記憶させる更新手段を有する
請求項9に記載の画像処理装置。
When the sum total difference value updating means updates the first sum total difference value, the pixel values stored in the plurality of first pixel value storage means are replaced with the plurality of second pixel value storage means. The image processing apparatus according to claim 9, further comprising an updating unit configured to store the information in the image processing apparatus.
前記更新手段が、前記複数の画像データの、所定の領域の内の対応する画素それぞれについてマッチング処理の結果、最小の総和差分値が前記総和差分値記憶手段に記憶されているとき、前記第2画素記憶手段に記憶されている画素を対応画素とする
請求項10に記載の画像処理装置。
When the minimum sum total difference value is stored in the total sum difference value storage unit as a result of the matching process for each of the corresponding pixels in the predetermined area of the plurality of image data, The image processing apparatus according to claim 10, wherein a pixel stored in the pixel storage unit is a corresponding pixel.
前記第2の画素値記憶手段に記憶されている、時間的に異なる前記画像データそれぞれの画素の画素値に基づいて、前記画像データに含まれるノイズ成分に応じたノイズ情報を生成するノイズ情報生成手段を有する
請求項9に記載の画像処理装置。
Noise information generation for generating noise information corresponding to a noise component included in the image data based on pixel values of pixels of the image data which are different in time and stored in the second pixel value storage means; The image processing apparatus according to claim 9, further comprising a unit.
前記第2の画素値記憶手段に記憶されている、時間的に異なる前記画像データそれぞれの画素の画素値に基づいて、ノイズ成分の大きさを示すノイズ成分量情報と、前記ノイズ成分の時間変動を示すノイズ成分時間変動情報を生成するノイズ情報生成手段と、
当該ノイズ成分量情報とノイズ成分時間変動情報、および、当該時間的に異なる前記画像データそれぞれの画素の画素値に基づいて、当該ノイズ成分量情報とノイズ成分時間変動情報に対応した、ノイズ成分を除去するためのノイズ除去情報を生成するノイズ除去情報生成手段とを有する
請求項9に記載の画像処理装置。
Noise component amount information indicating the magnitude of the noise component based on the pixel value of each pixel of the image data which is different in time and stored in the second pixel value storage means; Noise information generating means for generating noise component time variation information indicating
The noise component amount information and the noise component time variation information, and, based on the pixel value of each pixel of the image data that differs in time, the noise component corresponding to the noise component amount information and the noise component time variation information, The image processing apparatus according to claim 9, further comprising a noise removal information generation unit configured to generate noise removal information for removal.
前記ノイズ成分量情報とノイズ成分時間変動情報に対応した、ノイズ成分を除去するためのノイズ除去情報を生成するノイズ除去情報を記憶するノイズ除去情報記憶手段を有する
請求項13に記載の画像処理装置。
14. The image processing apparatus according to claim 13, further comprising noise removal information storage means for storing noise removal information for generating noise removal information for removing a noise component, corresponding to the noise component amount information and the noise component time variation information. .
前記第2の画素値記憶手段から出力された画素の画素値と、前記ノイズ情報生成手段により生成された前記ノイズ情報とに基づいて、ノイズ成分を除去した画素を推定する推定手段を有する
請求項12に記載の画像処理装置。
An estimation unit that estimates a pixel from which a noise component has been removed, based on a pixel value of a pixel output from the second pixel value storage unit and the noise information generated by the noise information generation unit. 13. The image processing apparatus according to claim 12.
前記第2の画素値記憶手段に記憶されている、時間的に異なる前記画像データそれぞれの画素の画素値に基づいて、ノイズ成分の大きさを示すノイズ成分量情報と、前記ノイズ成分の時間変動を示すノイズ成分時間変動情報を生成するノイズ情報生成手段と、
前記第2の画素値記憶手段から出力された画素の画素値、前記ノイズ成分量情報、前記ノイズ成分時間変動情報、および前記ノイズ除去情報に基づいて、ノイズ成分を除去した画素を推定する推定手段とを有する
請求項14に記載の画像処理装置。
Noise component amount information indicating the magnitude of the noise component based on the pixel value of each pixel of the image data which is different in time and stored in the second pixel value storage means; Noise information generating means for generating noise component time variation information indicating
Estimating means for estimating a pixel from which a noise component has been removed based on the pixel value of the pixel output from the second pixel value storage means, the noise component amount information, the noise component time variation information, and the noise removal information. The image processing apparatus according to claim 14, comprising:
第1の画像データおよび第2の画像データのマッチングを行い、マッチングデータを含む少なくとも1つの画像素子を有する画像処理装置の画像処理方法であって、
前記画像素子は、
前記第1の画像データの内の参照用の第1の画素を記憶し、
前記第1の画素に応じて、前記第2の画像データの所定の探索範囲の内の第2の画素を記憶し、
更新可能な、第1の画素と第2の画素との位相に関する位相情報を記憶し、
前記記憶している第1の画素と前記第2の画素との第2の差分値と、所定の第1の差分値とを比較し、前記比較の結果に応じて、前記第1の差分値を更新する
画像処理方法。
An image processing method for an image processing apparatus that performs matching between first image data and second image data and has at least one image element including the matching data,
The image element is
Storing a first pixel for reference in the first image data;
Storing a second pixel within a predetermined search range of the second image data according to the first pixel;
Storing updatable phase information about the phase of the first pixel and the second pixel;
A second difference value between the stored first pixel and the second pixel is compared with a predetermined first difference value, and the first difference value is determined according to a result of the comparison. Update image processing method.
前記第1の差分値を更新した場合には、前記記憶している位相情報を更新する
請求項17に記載の画像処理方法。
18. The image processing method according to claim 17, wherein when the first difference value is updated, the stored phase information is updated.
前記第1の画素と、前記第2の画像データの所定の探索範囲の内の第2の画素とのマッチング処理の結果、前記画像素子が最小の差分値を記憶しているときの、位相情報を動きベクトルとする
請求項18に記載の画像処理方法。
The phase information when the image element stores the minimum difference value as a result of the matching processing between the first pixel and the second pixel within the predetermined search range of the second image data. The image processing method according to claim 18, wherein is a motion vector.
前記第1の差分値を更新する場合には、前記記憶している第1の画素と前記記憶している第2の画素との第2の差分値と、前記所定の第1の差分値とを比較し、当該第2の差分値の方が小さい場合には、当該第2の差分値を第1の差分値として更新する
請求項17に記載の画像処理方法。
When updating the first difference value, a second difference value between the stored first pixel and the stored second pixel, and the predetermined first difference value 18. The image processing method according to claim 17, wherein if the second difference value is smaller, the second difference value is updated as the first difference value.
第1の画像データおよび第2の画像データのマッチングを行い、マッチングデータを含む複数の画像素子を有する画像処理装置の画像処理方法であって、
前記画像素子は、
前記第1の画像データの内の参照用の第1の画素を記憶し、
前記第1の画素に応じて、前記第2の画像データの所定の探索範囲の内の第2の画素を記憶し、
前記第1の画素と前記第2の画素の差分値を記憶し、
更新可能な、隣接する他の画像素子の差分値と前記記憶している差分値との総和である第1の総和差分値を記憶し、
更新可能な、第1の画素と第2の画素との位相に関する位相情報を記憶し、
前記記憶している差分値と、前記隣接する他の画像素子に記憶されている差分値とを加算し第2の総和差分値を生成し、
前記記憶している第1の総和差分値と、前記生成された第2の総和差分値とを比較し、前記比較の結果に応じて、前記記憶して第1の総和差分値を更新する
画像処理方法。
An image processing method for an image processing apparatus that performs matching between first image data and second image data, and includes a plurality of image elements including the matching data.
The image element is
Storing a first pixel for reference in the first image data;
Storing a second pixel within a predetermined search range of the second image data according to the first pixel;
Storing a difference value between the first pixel and the second pixel;
Updatable, storing a first total difference value that is a total of a difference value of another adjacent image element and the stored difference value,
Storing updatable phase information about the phase of the first pixel and the second pixel;
Adding the stored difference value and the difference value stored in the adjacent other image element to generate a second total difference value;
An image for comparing the stored first total difference value with the generated second total difference value, and updating the stored first total difference value according to a result of the comparison; Processing method.
前記総和差分値を更新した場合には、前記記憶している位相情報を更新する
請求項21に記載の画像処理方法。
22. The image processing method according to claim 21, wherein when the total difference value is updated, the stored phase information is updated.
前記第1の画素と、前記第2の画像データの所定の探索範囲の内の第2の画素とのマッチング処理の結果、前記画像素子が最小の総和差分値を記憶しているときの、位相情報を、動きベクトルとする
請求項22の画像処理方法。
As a result of a matching process between the first pixel and a second pixel within a predetermined search range of the second image data, a phase when the image element stores a minimum sum difference value 23. The image processing method according to claim 22, wherein the information is a motion vector.
前記総和差分値を更新する場合には、前記記憶している第1の総和差分値と、前記生成された第2の総和差分値とを比較し、前記第2の総和差分値が小さい場合には、当該第2の総和差分値を第1の総和差分値として更新する
請求項21に記載の画像処理方法。
When updating the sum total difference value, the stored first sum total difference value is compared with the generated second sum total difference value, and when the second sum total difference value is small, 22. The image processing method according to claim 21, further comprising: updating the second sum difference value as a first sum difference value.
時間的に異なる複数の画像データのマッチングを行い、マッチングデータを含む複数の画像素子を有する画像処理装置の画像処理方法であって、
前記画像素子は、
前記時間的に異なる前記画像データそれぞれの第1の画素を記憶し、
要求に応じて更新可能な、前記第1の画素に対応する第2の画素を記憶し、
前記記憶している前記画素の差分値の総和である時間総和差分値を記憶し、
前記時間総和差分値と、隣接する他の素子の時間総和差分値との総和である第1の総和差分値を記憶し、
前記記憶している時間総和差分値と、前記所定の領域の内の他の画像素子の時間総和差分値を加算し第2の総和差分値を生成し、
前記記憶している第1の総和差分値と、前記生成された第2の総和差分値とを比較し、前記比較の結果に応じて、前記記憶している第1の総和差分値を更新する
画像処理方法。
An image processing method for an image processing apparatus having a plurality of image elements including matching data by performing matching of a plurality of image data that differ in time,
The image element is
Storing a first pixel of each of the temporally different image data;
Storing a second pixel corresponding to said first pixel, which can be updated on demand,
Storing a time sum difference value that is a sum of the difference values of the stored pixels,
Storing a first sum difference value that is a sum of the time sum difference value and a time sum difference value of another adjacent element;
Adding the stored total time difference value and the total time difference value of the other image elements in the predetermined area to generate a second total difference value;
The stored first total difference value is compared with the generated second total difference value, and the stored first total difference value is updated according to a result of the comparison. Image processing method.
前記第1の総和差分値を更新した場合には、前記記憶している第1の画素を、前記第2の画素とする
請求項25に記載の画像処理方法。
26. The image processing method according to claim 25, wherein when the first total sum difference value is updated, the stored first pixel is set as the second pixel.
前記複数の画像データの、所定の領域の内の対応する画素それぞれについてマッチング処理の結果、最小の総和差分値が前記画像素子に記憶されているとき、前記記憶している第2の画素を対応画素とする
請求項26に記載の画像処理方法。
When the minimum sum difference value is stored in the image element as a result of the matching process for each of the corresponding pixels in the predetermined area of the plurality of image data, the stored second pixel is corresponded. 27. The image processing method according to claim 26, wherein the pixels are pixels.
前記記憶している時間的に異なる前記画像データそれぞれの画素の画素値に基づいて、前記画像データに含まれるノイズ成分に応じたノイズ情報を生成する
請求項25に記載の画像処理方法。
26. The image processing method according to claim 25, wherein noise information corresponding to a noise component included in the image data is generated based on a pixel value of each of the stored temporally different image data.
前記記憶している、時間的に異なる前記画像データそれぞれの画素の画素値に基づいて、ノイズ成分の大きさを示すノイズ成分量情報と、前記ノイズ成分の時間変動を示すノイズ成分時間変動情報を生成し、
当該ノイズ成分量情報とノイズ成分時間変動情報、および、当該時間的に異なる前記画像データそれぞれの画素の画素値に基づいて、当該ノイズ成分量情報とノイズ成分時間変動情報に対応した、ノイズ成分を除去するためのノイズ除去情報を生成する
請求項26に記載の画像処理方法。
The stored noise component amount information indicating the magnitude of the noise component and the noise component time variation information indicating the time variation of the noise component are based on the pixel values of the respective pixels of the image data that are temporally different. Generate,
The noise component amount information and the noise component time variation information, and, based on the pixel value of each pixel of the image data that differs in time, the noise component corresponding to the noise component amount information and the noise component time variation information, The image processing method according to claim 26, wherein noise removal information for removing is generated.
前記ノイズ成分量情報とノイズ成分時間変動情報に対応した、ノイズ成分を除去するためのノイズ除去情報を生成するノイズ除去情報を記憶する
請求項29に記載の画像処理方法。
30. The image processing method according to claim 29, wherein noise removal information for generating noise removal information for removing a noise component corresponding to the noise component amount information and the noise component time variation information is stored.
前記出力された画素の画素値と、前記生成された前記ノイズ情報とに基づいて、ノイズ成分を除去した画素を推定する
請求項28に記載の画像処理方法。
29. The image processing method according to claim 28, wherein a pixel from which a noise component has been removed is estimated based on the pixel value of the output pixel and the generated noise information.
前記記憶している、時間的に異なる前記画像データそれぞれの画素の画素値に基づいて、ノイズ成分の大きさを示すノイズ成分量情報と、前記ノイズ成分の時間変動を示すノイズ成分時間変動情報を生成し、
前記出力された画素の画素値、前記ノイズ成分量情報、前記ノイズ成分時間変動情報、および前記ノイズ除去情報に基づいて、ノイズ成分を除去した画素を推定する
請求項30に記載の画像処理方法。
The stored noise component amount information indicating the magnitude of the noise component and the noise component time variation information indicating the time variation of the noise component are based on the pixel values of the respective pixels of the image data that are temporally different. Generate,
31. The image processing method according to claim 30, wherein a pixel from which a noise component has been removed is estimated based on the pixel value of the output pixel, the noise component amount information, the noise component time variation information, and the noise removal information.
JP2002274058A 2002-08-15 2002-08-15 Image processing apparatus and image processing method Expired - Fee Related JP3941644B2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2002274058A JP3941644B2 (en) 2002-08-15 2002-08-15 Image processing apparatus and image processing method
TW092122124A TWI260509B (en) 2002-08-15 2003-08-12 Method and apparatus for processing image data and semiconductor storage device
US10/640,614 US7522748B2 (en) 2002-08-15 2003-08-14 Method and apparatus for processing image data and semiconductor storage device
EP03018473A EP1394744A3 (en) 2002-08-15 2003-08-14 Method and apparatus for processing image data and semiconductor storage device
KR1020030056461A KR101014637B1 (en) 2002-08-15 2003-08-14 Method and Apparatus for Processing Image Data and Semiconductor Storage Device
CN031545289A CN100407232C (en) 2002-08-15 2003-08-15 Image processing device, computer program product and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002274058A JP3941644B2 (en) 2002-08-15 2002-08-15 Image processing apparatus and image processing method

Publications (3)

Publication Number Publication Date
JP2004078862A true JP2004078862A (en) 2004-03-11
JP2004078862A5 JP2004078862A5 (en) 2005-04-07
JP3941644B2 JP3941644B2 (en) 2007-07-04

Family

ID=32024978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002274058A Expired - Fee Related JP3941644B2 (en) 2002-08-15 2002-08-15 Image processing apparatus and image processing method

Country Status (1)

Country Link
JP (1) JP3941644B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07193822A (en) * 1993-12-24 1995-07-28 Nec Corp Motion prediction processor and device therefor
JPH10191352A (en) * 1996-12-20 1998-07-21 Toshiba Corp Motion vector detector and its method
JP2001126061A (en) * 1999-10-28 2001-05-11 Sony Corp Image processor, image processing method, data processor and data processing method
JP2004078863A (en) * 2002-08-15 2004-03-11 Sony Corp Image processor and image processing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07193822A (en) * 1993-12-24 1995-07-28 Nec Corp Motion prediction processor and device therefor
JPH10191352A (en) * 1996-12-20 1998-07-21 Toshiba Corp Motion vector detector and its method
JP2001126061A (en) * 1999-10-28 2001-05-11 Sony Corp Image processor, image processing method, data processor and data processing method
JP2004078863A (en) * 2002-08-15 2004-03-11 Sony Corp Image processor and image processing method

Also Published As

Publication number Publication date
JP3941644B2 (en) 2007-07-04

Similar Documents

Publication Publication Date Title
JP4181473B2 (en) Video object trajectory synthesis apparatus, method and program thereof
US8064522B2 (en) Motion-vector detecting device, motion-vector detecting method, and computer program
US7050502B2 (en) Method and apparatus for motion vector detection and medium storing method program directed to the same
KR101092287B1 (en) Image processing apparatus and image processing method
JP2004534336A (en) MOTION OR DEPTH ESTIMATION METHOD AND ESTIMATION UNIT, AND IMAGE PROCESSING APPARATUS HAVING SUCH MOTION ESTIMATION UNIT
US20180005039A1 (en) Method and apparatus for generating an initial superpixel label map for an image
EP0624981B1 (en) Motion vector detecting circuit
JP4496992B2 (en) Animal up-frame detection method, program, and storage medium storing program, and animal up-shot detection method, animal up-frame or shot detection method, program, and storage medium
JP2005535028A (en) System and segmentation method for segmentation
JP2001520781A (en) Motion or depth estimation
KR101014637B1 (en) Method and Apparatus for Processing Image Data and Semiconductor Storage Device
JP3903890B2 (en) Image processing apparatus and image processing method
JP4398533B2 (en) Image tracking device and recording medium
JP2002223374A (en) Device and method for removing noise
KR100644574B1 (en) Digital image segmentation method and device thereof
JP2007166545A (en) Motion vector detection device and method
JP3175914B2 (en) Image encoding method and image encoding device
JP4622264B2 (en) Motion vector detection apparatus, motion vector detection method, and computer program
JP2004078862A (en) Image processor and image processing method
JP4228705B2 (en) Motion vector search method and apparatus
JP6468703B2 (en) Motion detection device, motion detection method, and program
JP3237815B2 (en) Motion vector search method and apparatus
JP3763279B2 (en) Object extraction system, object extraction method, and object extraction program
JP4546810B2 (en) Trajectory-added video generation apparatus and trajectory-added video generation program
JP2005250561A (en) Motion vector detecting device, motion vector detecting method and computer program

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040430

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040430

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060926

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070326

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

Free format text: PAYMENT UNTIL: 20100413

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110413

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120413

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130413

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130413

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140413

Year of fee payment: 7

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