JP2009055410A - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
JP2009055410A
JP2009055410A JP2007220972A JP2007220972A JP2009055410A JP 2009055410 A JP2009055410 A JP 2009055410A JP 2007220972 A JP2007220972 A JP 2007220972A JP 2007220972 A JP2007220972 A JP 2007220972A JP 2009055410 A JP2009055410 A JP 2009055410A
Authority
JP
Japan
Prior art keywords
block
reduced
plane
reference block
target
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.)
Pending
Application number
JP2007220972A
Other languages
English (en)
Inventor
Rei Numata
怜 沼田
Toru Kurata
徹 倉田
Jinko Wada
仁孝 和田
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 JP2007220972A priority Critical patent/JP2009055410A/ja
Publication of JP2009055410A publication Critical patent/JP2009055410A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】画素精度以上の高精度の動きベクトル検出を、ハードウエア規模の削減、処理の高速化およびバス帯域削減をしてできるようにする。
【解決手段】ターゲット画面および参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、ブロックマッチングを行い、最強相関縮小面参照ブロックの縮小面ターゲットブロックからの位置ずれに対応する縮小面動きベクトルを算出する。縮小前の基底参照画面において、算出された縮小面動きベクトルを縮小率の逆数倍したベクトルが指し示す画素の周辺にサーチ範囲を設定する。設定されたサーチ範囲において、基底面においてブロックマッチングを行い、最強相関基底面参照ブロックの位置を検出する。最強相関基底面参照ブロックと、その近傍の複数個の近傍基底面参照ブロックの相関値を用いて補間処理を行い、動きベクトルを検出する。
【選択図】図27

Description

この発明は、2枚の異なる画面の間での動きベクトルを検出する画像処理装置および画像処理方法に関する。この明細書で、画面とは、1フレーム分または1フィールド分の画像データからなり、1枚分としてディスプレイに表示される画像を意味しているものとしている。
2つの画面間の動きベクトルを、画像情報自身から求めるブロックマッチング手法は、歴史の古い技術である。テレビジョンカメラのパン・チルト検出や被写体追尾、MPEG(Moving Picture Experts Group)方式の動画符号化などを中心に開発が進み、90年代に入ってからは、画像の重ね合わせによる、センサレス手ブレ補正や低照度撮影時のノイズ除去など多岐に渡って応用が進められている。
ブロックマッチングは、注目画面である参照画面と、当該参照画面の動きの元となる元画面(ターゲット画面と称する)との間の2画面間の動きベクトルを、所定の大きさの矩形領域のブロックについて、参照画面と元画面との間での相関を算出することにより算出する方法である。元画面が時間的に参照画面よりも前の画面とされる場合(例えば、MPEGにおける動き検出の場合)と、参照画面が時間的に元画面よりも前の画面とされる場合(例えば、後述する画像フレームの重ね合わせによるノイズ低減の場合)の両方がある。
なお、前述したように、この明細書で、画面とは、1フレームまたは1フィールドの画像データからなる画像を意味しているが、この明細書における以下の説明の便宜上、画面は1フレームからなるものとして、画面をフレームと称することとする。したがって、参照画面は参照フレーム、元画面は元フレームと称することとする。
図39〜図44は、従来のブロックマッチングの概要を説明するための図である。ここで説明するブロックマッチング手法においては、例えば、図39(A)に示すように、元フレーム(ターゲットフレーム)100を、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域(ブロックという)の複数個に分割する。ターゲットフレームにおけるこれらの複数個のブロック102のそれぞれを、ターゲットブロックという。
ブロックマッチングにおいては、ターゲットブロック102と相関性の高いブロックを、参照フレーム101の中から検索する。この検索の結果、相関性が最も高いとして参照フレーム101内に検出されたブロック103(図39(B)参照)を、動き補償ブロックと呼ぶ。また、ターゲットブロック102と動き補償ブロック103との間の位置ずれ量を、動きベクトル(図39(B)の符号104参照)と称する。
ターゲットブロック102と動き補償ブロック103との間の位置ずれ(位置ずれ量と位置ずれ方向を含む)に対応する動きベクトル104は、参照フレーム101において、ターゲットフレーム100の各ターゲットブロック102の位置と同じ位置に、ターゲットブロック102の射影イメージブロック109を想定したとき、このターゲットブロックの射影イメージブロック109の位置(例えば中心位置)と、動き補償ブロック103の位置(例えば中心位置)との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。
ブロックマッチング処理の概要を説明する。図40において点線で示すように、参照フレーム101において、ターゲットフレーム100の各ターゲットブロック102の位置と同じ位置にターゲットブロックの射影イメージブロック109を想定し、このターゲットブロックの射影イメージブロック109の中心の座標を、動き検出の原点105とする。そして、動きベクトル104が、動き検出の原点105から或る範囲内に存在すると仮定し、この動き検出の原点105を中心した所定の範囲をサーチ範囲106(図40の一点鎖線参照)と設定する。
次に、ターゲットブロック102と同じ大きさのブロック(参照ブロックという)108を参照画面において設定する。そして、この参照ブロック108の位置を、サーチ範囲106内において、例えば水平方向および垂直方向に、1画素または複数画素単位で移動させるようにする。したがって、サーチ範囲106においては、複数個の参照ブロック108が設定されることになる。
ここで、参照ブロック108を、サーチ範囲106内を移動させるというのは、この例では、動き検出原点105がターゲットブロックの中心位置であるので、参照ブロック108の中心位置を、サーチ範囲106内を移動させることを意味し、参照ブロック108を構成する画素は、サーチ範囲106よりもはみ出すことがある。
そして、サーチ範囲において、設定される各参照ブロック108に対して、当該各参照ブロック108とターゲットブロック102との位置ずれ量および位置ずれ方向を表すベクトル(参照ベクトルという)107(図40参照)を設定し、それぞれの参照ベクトル107が指し示す位置にある参照ブロック108の画像内容と、ターゲットブロック102の画像内容との相関性を評価する。
参照ベクトル107は、図41に示すように、参照ブロック108の水平方向(X方向)の位置ずれ量Vxとし、垂直方向(Y方向)の位置ずれ量をVyとしたとき、ベクトル(Vx,Vy)と表すことができ、参照ブロック108の位置座標(例えば中心位置座標)とターゲットブロック102の位置座標(例えば中心位置座標)とが同じときには、参照ベクトル107は、ベクトル(0,0)と表す。
例えば、参照ブロック108が、ターゲットブロック102の位置から、X方向に1画素ずれた位置にある場合、参照ベクトル107はベクトル(1,0)となる。また、図42に示すように、参照ブロック108が、ターゲットブロック102の位置から、X方向に3画素、Y方向に2画素ずれた位置にある場合には、参照ベクトル107はベクトル(3,2)となる。
つまり、参照ベクトル107は、図42の例に示すように、ターゲットブロック102および参照ブロック108の位置を、それぞれのブロックの中心位置とした場合、各参照ベクトル108は、対応する各参照ブロック108の中心位置とターゲットブロック102の中心位置との位置ずれ(位置ずれ量と位置ずれの方向を含むベクトルとなる)を意味する。
参照ブロック108は、サーチ範囲106において移動するものとなるが、その場合に、参照ブロック108の中心位置がサーチ範囲106内を移動する。前述もしたように、参照ブロック108は、水平方向および垂直方向の複数画素からなるので、ターゲットブロック102とブロックマッチング処理される対象となる参照ブロック108が移動する最大範囲は、図42に示すように、サーチ範囲106よりも広いマッチング処理範囲110となる。
そして、ターゲットブロック102の画像内容との相関が最も強いとして検出された参照ブロック108の位置を、ターゲットフレーム100のターゲットブロック102の、参照フレーム101における位置(動いた後の位置)として検出し、検出した参照ブロックを、前述した動き補償ブロック103とする。そして、その検出した動き補償ブロック103の位置と、ターゲットブロック102の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル104として検出するようにする(図39(B)参照)。
ここで、ターゲットブロック102と、サーチ範囲106において移動する参照ブロック108との相関の強さを表す相関値は、基本的にはターゲットブロック102と参照ブロック108との対応する画素値を用いて算出されるが、その算出方法は、自乗平均を用いる方法やその他種々の方法が提案されている。
ここで、ターゲットブロック102と、サーチ範囲106において移動する参照ブロック108との相関の強さを表す相関値は、基本的にはターゲットブロック102と参照ブロック108との対応する画素値を用いて算出されるが、その算出方法は、自乗平均を用いる方法やその他種々の方法が提案されている。
そのうち、動きベクトルを算出する際に一般的に用いられる相関値としては、例えば、ターゲットブロック102内の各画素の輝度値と、参照ブロック106内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和(この差分の絶対値の総和を差分絶対値和と呼ぶ。以下、この差分絶対値和をSAD(Sum of Absolute Difference)と記載することとする)が用いられる(図43参照)。
相関値としてSAD値が用いられる場合には、SAD値が小さいほど相関が強いものとされる。したがって、サーチ範囲106において移動する参照ブロック108のうち、SAD値が最小となる位置の参照ブロック108が最も相関が強い最強相関参照ブロックとなり、この最強相関参照ブロックが、動き補償ブロック103として検出され、その検出された動き補償ブロック103のターゲットブロック102の位置に対する位置ずれ量が動きベクトルとして検出される。
前述したように、ブロックマッチングでは、サーチ範囲106において設定される複数個の参照ブロック108のそれぞれの、ターゲットブロック102の位置に対する位置ずれ量は、方向成分を含む量としての参照ベクトル107で表現される。各参照ブロック108の参照ベクトル107は、参照ブロック108の参照フレーム102上の位置に応じた値となる。前述したように、ブロックマッチングでは、相関値であるSAD値が最小値となる参照ブロック108の参照ベクトルを、動きベクトル104として検出する。
そこで、ブロックマッチングでは、一般に、図44に示すように、サーチ範囲106において設定される複数個の参照ブロック108のそれぞれとターゲットブロック102との間におけるSAD値(以下、説明の簡単のため参照ブロック108についてのSAD値という)を、それぞれの参照ブロック108の位置に応じた参照ベクトル107(以下、説明の簡単のため、参照ブロック106の位置に応じた参照ベクトル107を参照ブロック108の参照ベクトル107という)のそれぞれに対応させて、メモリに記憶しておき、そのメモリに記憶された全ての参照ブロック108についてのSAD値の中から、最小のSAD値の参照ブロック108を検出することで、動きベクトル104を検出するようにしている。
サーチ範囲106において設定された複数個の参照ブロック108の位置に応じた参照ベクトル107のそれぞれに対応させて、それぞれの参照ブロック108についての相関値(この例では、SAD値)を記憶したものを相関値テーブルと呼ぶ。この例では、相関値として差分絶対値和であるSAD値を用いるので、この相関値テーブルを、差分絶対値和テーブル(以下SADテーブルという)と呼ぶことにする。
図44のSADテーブルTBLが、これを示しており、このSADテーブルTBLにおいて、それぞれの参照ブロック108についての相関値(この例ではSAD値)を相関値テーブル要素という。図44の例では、符号111で指し示すSAD値は、参照ベクトルがベクトル(0,0)のときのSAD値である。そして、図44の例では、SAD値の最小値は、参照ベクトルがベクトル(3,2)のときの「7」であるので、求める動きベクトル104は、当該(3,2)となる。
なお、上述の説明において、ターゲットブロック102および参照ブロック108の位置とは、それらのブロックの任意の特定の位置、例えば中心位置を意味するものであり、参照ベクトル107は、参照フレーム102におけるターゲットブロック102の射影イメージブロック109の位置と、参照ブロック108の位置との間のずれ量(方向を含む)を示すものである。
そして、各参照ブロック108に対応する参照ベクトル107は、参照フレーム101上において、ターゲットブロック102に対応する射影イメージブロック109の位置からの、各参照ブロック108の位置ずれとなっているので、参照ブロック108の位置が特定されると、その位置に対応して参照ベクトルの値も特定される。したがって、SADテーブル110のメモリにおける参照ブロックの相関値テーブル要素のアドレスが特定されると、対応する参照ベクトルは特定されることになる。
なお、SAD値は、同時に、2つ以上のターゲットブロックについて計算するようにしてもよい。同時に処理するターゲットブロックが増加すると、処理は高速化する。しかし、SAD値を計算するハードウエアの規模が増大するので、処理の高速化と、回路規模の増大のトレードオフになる。
ところで、上述したブロックマッチング手法は、処理対象の画像の解像度が増大すると、2画像間(2画面間)で動きとして検出される画素数が、解像度の増大に応じて大きくなるために、その動きに追従させようとすると、動きベクトルのサーチ範囲を広く取る(サーチ範囲に含まれる画素数を増大させる)必要がある。
ところが、このように、サーチ範囲を広く取ると、処理対象の1ブロック当たりのフレームメモリからの画素の読み込み回数が増大することから、処理時間が長くなるという問題点があった。
また、処理対象の画像の解像度が小さい場合、またはフレームレートが速い場合は、画素間の動きが小さくなるため、1画素未満の微小な動きを検出する必要があり、オーバーサンプルした画像を用いて動きベクトルを求めることによって、1画素未満の動きベクトルを検出する必要があった。しかし、そのようにすると、オーバーサンプルによって、回路規模が増大し、処理時間も長くなるという問題点があった。
上記のように、ブロックマッチング手法は、広い検索範囲および1画素未満の微小な動きの要求に対して、処理時間、回路規模が増大する傾向にあり、これを如何に小さくするかが求められてきた。
また、近年、ハイディフィニション動画(以下、HD動画という)の映像の開発が進み、画像の解像度および画質に対する要求が高まってきている。これに伴い、ブロックマッチング手法にも、広い検索範囲と、1画素未満の微小な動きを検出することの、両技術を実現する要望が高まってきている。
これらの問題に対して、従来、1画素未満の微小な動きの検出における処理の効率化を図る手法(例えば特許文献1(特開平7−95585号公報)参照)や、参照画像を間引いてフレームメモリおよび演算量を削減する手法(例えば特許文献2(特開2006−160829号公報)参照) など、多くの手法が提案されてきた。
中でも、最も実用的な手法が、SADテーブルにおいて、SAD値の最小値位置およびその近傍の複数個のSAD値を用いて、SADテーブルの精度、つまり、ターゲットフレームおよび参照フレームにおける画素ピッチ精度よりも小さい高精度でSAD値の最小値を算出するように補間処理をする手法(例えば特許文献3(特開平05−91492号公報)参照)であり、参照画像を前処理することなく、回路規模のインパクトも小さい。
上記の特許文献は、次の通りである。
特開平7−95585号公報 特開2006−160829号公報 特開平05−91492号公報
しかしながら、上述した従来の技術では、実際に、HD動画のような解像度が高く、広い検索範囲で精度も求められる画像が対象のブロックマッチング回路に対しては、補間精度の問題、SADテーブルの容量、処理の高速化、バス帯域削減など、の点で実用的ではなかった。ここで、バス帯域とは、バス上で、輻輳を回避して転送することができるデータレートである。
この発明は、ブロックマッチング処理において、SADテーブルの容量など、処理を実行する上で必要となるメモリ容量を小さくでき、また、十分な補間精度を確保でき、さらに、処理の高速化、およびバス帯域削減などを実用上問題の無い程度に実現することができる画像処理装置および方法を提供することを目的とする。
上記の課題を解決するために、請求項1の発明は、
ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれに基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置において、
前記ターゲット画面および前記参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、前記ターゲットブロックおよび前記参照ブロックを前記所定の縮小率で縮小した縮小面ターゲットブロックおよび縮小面参照ブロックを設定する手段と、
前記縮小面参照ブロック内の複数の画素の画素値と、前記縮小面ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記複数個の縮小面参照ブロックのそれぞれと前記縮小面ターゲットブロックとの間の第1の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関縮小面参照ブロックの位置を検出し、前記最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれに対応する縮小面動きベクトルを算出する縮小面動きベクトル算出手段と、
縮小前の基底参照画面において、前記縮小面動きベクトル算出手段で算出された前記縮小面動きベクトルを前記縮小率の逆数倍したベクトルが指し示す画素の周辺にサーチ範囲を設定するサーチ範囲設定手段と、
前記サーチ範囲設定手段で設定された前記サーチ範囲において、前記基底ターゲット画面に設定される基底面ターゲットブロック内の複数の画素の画素値と、前記縮小前の参照画面に設定される複数個の基底面参照ブロックのそれぞれ内で対応する位置の複数の画素の画素値とを用いて、前記複数個の基底面参照ブロックのそれぞれと前記基底面ターゲットブロックとの間の第2の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関基底面参照ブロックの位置を検出する最強相関基底面参照ブロック検出手段と、
前記最強相関基底面参照ブロック検出手段で検出した前記最強相関基底面参照ブロックの前記第2の相関値と、前記最強相関基底面参照ブロックの近傍の複数個の近傍基底面参照ブロックの前記第2の相関値を用いて補間処理を行い、前記基底参照画面の画素ピッチよりも小さい精度で前記基底面ターゲットブロックとの相関が最も強い高精細最強相関基底面参照ブロックの位置を検出する補間処理手段と、
前記補間処理手段で検出された前記高精細最強相関基底面参照ブロックの位置から、前記動きベクトルを検出する動きベクトル検出手段と、
を備えることを特徴とする画像処理装置を提供する。
この請求項1の発明においては、ターゲット画面および参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、縮小面ターゲットブロックおよび縮小面参照ブロックを設定して、両ブロック間においてブロックマッチング処理がなされ、縮小面動きベクトルが算出される。縮小画面におけるブロックマッチングであるので、サーチ範囲を移動する参照ブロック(縮小面参照ブロック)の数は少なくなり、マッチング処理回数も少なくなる。
ここで、算出された縮小面動きベクトルの精度は、最大、縮小画面における画素精度であるので、縮小前の基底参照画面における画素精度よりも粗い精度であるが、求めようとする基底画面における動きベクトルに近いベクトルである。
そこで、この請求項1の発明においては、サーチ範囲設定手段は、縮小画面において算出された縮小面動きベクトルを、縮小率の逆数倍したベクトルが基底参照画面において指し示す画素の周辺に、基底画面におけるサーチ範囲を設定する。
そして、設定されたサーチ範囲のみにおいて、基底画面においてブロックマッチングを行い、最強相関基底面参照ブロックの位置を検出する。基底画面においては、縮小画面において算出された縮小面動きベクトルに基づく狭いサーチ範囲においてのみ、ブロックマッチングを行えばよいので、マッチング処理回数は、非常に少なくて済む。これにより、基底参照画面における画素精度で、動きベクトルを検出することができる。
この請求項1の発明においては、さらに、最強相関基底面参照ブロックの位置と、その近傍の複数個の近傍基底面参照ブロックの相関値を用いて、補間処理を行い、基底参照画面における画素精度よりも高精度の高精細最強相関基底面参照ブロックの位置を検出する。そして、この高精細最強相関基底面参照ブロックの位置から、高精度の動きベクトルを検出する。
以上のように、請求項1の発明によれば、階層化したマッチング処理をした後、基底面において補間処理をすることにより、基底参照画面における画素精度よりも高精度の動きベクトルを検出することができる。そして、上述したように、マッチング処理回数は、階層化により非常に少なくすることができ、処理の高速化、およびバス帯域削減などを実用上問題の無い程度に実現することができる。
また、請求項7の発明は、
ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれ量に基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置において、
前記ターゲット画面および前記参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、前記ターゲットブロックおよび前記参照ブロックを前記所定の縮小率で縮小した縮小面ターゲットブロックおよび縮小面参照ブロックを設定する手段と、
前記縮小面参照ブロック内の複数の画素の画素値と、前記縮小面ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記複数個の縮小面参照ブロックのそれぞれと前記縮小面ターゲットブロックとの間の第1の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関縮小面参照ブロックの位置を検出する最強相関縮小面参照ブロック検出手段と、
前記最強相関縮小面参照ブロック検出手段で検出された前記最強相関縮小面参照ブロックおよび当該最強相関縮小面参照ブロックの近傍位置の複数個の近傍縮小面参照ブロックについての前記第1の相関値を用いて、前記縮小参照画面における補間処理を行い、前記縮小参照画面の画素ピッチよりも小さい高精度で、前記縮小面ターゲットブロックとの相関が最も強い高精細最強相関縮小面参照ブロックの位置を検出し、前記高精細最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれとして縮小面動きベクトルを算出する縮小面補間処理手段と、
前記縮小前の基底参照画面において、前記縮小面補間処理手段で算出された前記縮小面動きベクトルを前記縮小率の逆数倍したベクトルが指し示す画素の周辺にサーチ範囲を設定するサーチ範囲設定手段と、
前記サーチ範囲設定手段で設定された前記サーチ範囲において、前記基底ターゲット画面に設定される基底面ターゲットブロック内の複数の画素の画素値と、前記縮小前の参照画面に設定される複数個の基底面参照ブロックのそれぞれ内で対応する位置の複数の画素の画素値とを用いて、前記複数個の基底面参照ブロックのそれぞれと前記基底面ターゲットブロックとの間の第2の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関基底面参照ブロックの位置を検出し、前記最強相関基底面参照ブロックの前記基底面ターゲットブロックからの位置ずれとして基底面動きベクトルを算出する基底面動きベクトル検出手段と、
を備えることを特徴とする画像処理装置を提供する。
この請求項7の発明においても、請求項1の発明と同様に、縮小画面においてブロックマッチングを行い、その結果を用いて基底画面におけるブロックマッチングを行うようにする階層化マッチング処理を行う。ただし、この請求項7の発明においては、縮小画面において、最強相関縮小面参照ブロックの位置を検出し、その検出結果に基づき、縮小面補間処理を行う。
すなわち、最強相関縮小面参照ブロックおよび当該最強相関縮小面参照ブロックの近傍位置の複数個の近傍縮小面参照ブロックについての前記第1の相関値を用いて、前記縮小参照画面における補間処理を行い、前記縮小参照画面の画素ピッチよりも小さい高精度で、高精細最強相関縮小面参照ブロックの位置を検出し、その検出した高精細最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれとして縮小面動きベクトルを算出する。
そして、基底参照画面において、算出した縮小面動きベクトルを縮小率の逆数倍したベクトルが指し示す画素の周辺にサーチ範囲を設定する。そして、その設定したサーチ範囲において、基底参照画面において、ブロックマッチングを行い、基底参照画面における画素精度の動きベクトルを検出する。
したがって、この請求項7によれば、階層化したマッチング処理をすると共に、縮小面において補間処理をすることにより、マッチング処理回数を非常に少なくすることができ、基底参照画面における画素精度の動きベクトルを、処理の高速化、およびバス帯域削減などを実用上問題の無い程度に実現しながら、検出することができる。
また、請求項12の発明は、
ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれ量に基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置において、
前記ターゲット画面および前記参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、前記ターゲットブロックおよび前記参照ブロックを前記所定の縮小率で縮小した縮小面ターゲットブロックおよび縮小面参照ブロックを設定する手段と、
前記縮小面参照ブロック内の複数の画素の画素値と、前記縮小面ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記複数個の縮小面参照ブロックのそれぞれと前記縮小面ターゲットブロックとの間の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関縮小面参照ブロックの位置を検出する最強相関縮小面参照ブロック検出手段と、
前記最強相関縮小面参照ブロック検出手段で検出された前記最強相関縮小面参照ブロックおよび当該最強相関縮小面参照ブロックの近傍位置の複数個の近傍縮小面参照ブロックについての前記相関値を用いて、前記縮小参照画面における補間処理を行い、前記縮小参照画面の画素ピッチよりも小さい高精度で、前記縮小面ターゲットブロックとの相関が最も強い高精細最強相関縮小面参照ブロックの位置を検出し、前記高精細最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれとして縮小面動きベクトルを算出する縮小面補間処理手段と、
前記縮小面補間処理手段で算出された前記縮小面動きベクトルを前記縮小率の逆数倍したベクトルを、縮小前のターゲットブロックに対する前記動きベクトルとして算出する動きベクトル算出手段と、
を備えることを特徴とする画像処理装置を提供する。
この請求項12の発明においては、縮小画面においてブロックマッチングを行うことで、少ないマッチング処理回数で、縮小画面における画素精度の最強相関縮小面参照ブロックの位置を検出することができる。
そして、検出した最強相関縮小面参照ブロックについての相関値と、検出した最強相関縮小面参照ブロック位置の近傍の近傍縮小面参照ブロックについての相関値とを用いて、縮小画面において補間処理を行い、その補間処理から、求める基底面における動きベクトルを算出するようにする。
すなわち、この請求項12の発明の場合には、縮小面ブロックマッチングを行った後、補間処理を行い、その補間処理結果から、基底面におけるブロックマッチングを行うことなく、目的とする動きベクトルを算出するようにするので、処理の高速化およびバス帯域の削減を実現することができる。
この発明によれば、縮小画面および基底画面における階層化したブロックマッチングを行うと共に、補間処理を伴うようにすることで、充分な精度の動きベクトルを、処理の高速化およびバス帯域の削減を実現しながら、検出することができる。
また、縮小画面におけるブロックマッチングと、補間処理とから、動きベクトルを算出することで、充分な精度の動きベクトルを、処理の高速化およびバス帯域の削減を実現しながら、検出することができる。
以下、この発明による画像処理方法を用いた画像処理装置の実施形態として、撮像装置の場合を例にとって、図を参照しながら説明する。また、検出した動きベクトルを用いて行う処理として、複数枚の画像を重ね合わせてノイズ低減を行う場合の例について説明する。
[この発明による画像処理装置の第1の実施形態]
以下に説明する実施の形態の撮像装置では、図2に示すように、連続して撮影された複数枚の画像、例えばP1,P2,P3を、動き検出および動き補償を用いて位置合わせをした後、重ね合わせすることで、ノイズが低減された画像Pmixを得ることができるようにしている。すなわち、複数枚の画像のそれぞれにおけるノイズはランダムなものであるので、同一内容の画像を重ね合わせることで、画像に対してノイズが低減されるものである。
以下の説明において、動き検出および動き補償を用いて複数枚の画像を重ね合わせて、ノイズを低減するシステムをNR(Noise Reduction)システムと呼び、NRシステムによりノイズ低減された画像をNR画像と称することとする。
この明細書では、ノイズ低減を施したい画面(画像)をターゲット画面(ターゲットフレーム)、重ね合わせたい画面を参照画面(参照フレーム)と定義する。連続して撮影された画像は、撮影者の手ブレなどにより、画像の位置がずれており、両画像の重ね合わせを行うには、位置合わせが重要となる。ここで、考慮しなければならないのは、手ブレのような画面全体のブレと共に、画面内における被写体の動きも存在することである。
このため、被写体に対してもノイズ低減効果を高めるためには、図3に示すように、ターゲットフレーム100を分割して生成される複数個のターゲットブロック102のそれぞれ単位での位置合わせが必要になる。
したがって、この実施の形態では、複数個のターゲットブロック102の全てについて、ブロック単位の動きベクトル(以下、ブロック動きベクトルという)121を検出し、それぞれのターゲットブロック102について、対応するブロック動きベクトル104Bを用いて位置合わせを行い、画像を重ね合わせるようにする。
この実施の形態の撮像装置において、静止画撮影時は、図4に示すように、高速で複数枚の画像の撮影を行い、1枚目の撮影画像をターゲットフレーム100とし、2枚目以降、所定枚数の撮影画像を参照フレーム101とし、重ね合わせを行い、その重ね合わせたものを静止画撮影画像として記録するようにする。すなわち、撮影者が撮像装置のシャッターボタンを押下操作すると、高速で前記所定枚数の画像が撮影され、その1枚目に撮影した画像(フレーム)に対して、時間的に後で撮影された複数枚の画像(フレーム)が、重ね合わされることになる。
また、動画撮影時は、図5のように、撮像素子から出力されている現フレームの画像をターゲットフレーム100の画像とし、その前フレームの画像を参照フレーム101の画像とする。したがって、現フレームの画像のノイズ低減を行うために、現フレームの前フレームの画像を現フレームに重ね合わせるということになる。
なお、上述の図4および図5の画像の重ね合わせの方法の説明の場合は、記録する動画画像のフレームレートを60fps(flame/second)としたときに、撮像素子から当該60fpsのフレームレートの2枚の画像フレームを重ね合わせて、その結果としてノイズの低減された60fpsのフレームレートで撮像画像信号が得られる場合である。
しかし、撮像素子から、より高速の、例えば240fpsの高フレームレートで、撮像画像が出力されるように構成されている場合において、動画撮影時においても、4枚ずつの画像を重ねて1枚の動画フレームを生成することで、60fpsのフレームレートの撮像画像信号を得るようにすることもできる。もちろん、240fpsの撮像画像を、この例と同様にして、2枚の画像フレームを重ね合わせて、その結果として240fpsのフレームレートのノイズ低減された撮像画像信号を得るようにすることもできる。
次に、この第1の実施の形態においては、さらに、より高精度で画像の重ね合わせができるように、処理対象画像の画素ピッチの精度(ピクセル精度という)よりも高精度、つまり、元の画面(ターゲットフレーム)の画素ピッチよりも小さいピッチの高精度(この高精度をサブピクセル精度と呼ぶことにする)で、ブロック動きベクトルを検出するようにする。このサブピクセル精度での動きベクトル算出のために、後述するように、この実施の形態の撮像装置においては、ピクセル精度で求めた動きベクトルと、その近傍の参照ベクトルとを用いて補間処理をするようにする。
図1は、この発明の画像処理装置の実施形態としての撮像装置の一例のブロック図を示すものである。
この図1に示すように、この実施形態の撮像装置は、システムバス2にCPU(Central Processing Unit)1が接続されると共に、システムバス2に、撮像信号処理系10や、ユーザ操作入力部3、画像メモリ部4、記録再生装置部5などが接続されて構成されている。なお、この明細書においては、CPU1は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するROM(Read Only Memory)やワークエリア用RAM(Random Access Memory)などを含むものとしている。
ユーザ操作入力部3を通じた撮像記録開始操作を受けて、図1の撮像装置は、後述するような撮像画像データの記録処理を行なう。また、ユーザ操作入力部3を通じた撮像記録画像の再生開始操作を受けて、図1の撮像装置は、記録再生装置部5の記録媒体に記録された撮像画像データの再生処理を行なう。
図1に示すように、撮像レンズ10Lを備えるカメラ光学系(図示は省略)を通じた被写体からの入射光は、撮像素子11に照射されて撮像される。この例では、撮像素子11は、CCD(Charge Coupled Device)イメージャで構成されている。なお、撮像素子12は、CMOS(Complementary Metal Oxide Semiconductor)イメージャで構成してもよい。
この例の撮像装置においては、撮像記録開始操作がなされると、レンズ10Lを通じて入力された映像が、撮像素子11により撮像画像信号に変換され、タイミング信号発生部12からのタイミング信号に同期した信号として、赤(R)、緑(G)、青(B)の3原色から構成されるベイヤー配列のRAW信号(生の信号)であるアナログ撮像信号が出力される。出力されたアナログ撮像信号は、前処理部13に供給され、欠陥補正やγ補正等の前処理が施され、データ変換部14に供給される。
データ変換部14は、これに入力されたRAW信号であるアナログ撮像信号を、輝度信号成分Yと、色差信号成分Cb/Crとにより構成されるデジタル撮像信号(YCデータ)に変換し、そのデジタル撮像信号を解像度変換部15に供給する。解像度変換部15では、ユーザ操作入力部3を通じて指定された解像度に、デジタル撮像信号を変換し、システムバスを介して、画像メモリ部4に供給する。
ユーザ操作入力部3を通じた撮影指示が、シャッターボタンの押下による静止画撮影指示であったときには、解像度変換部15で解像度変換されたデジタル撮像信号は、前述した複数フレーム分が画像メモリ部4に書き込まれる。そして、複数フレーム分の画像が画像メモリ部4に書き込まれた後、ターゲットフレームの画像データと参照フレームの画像データが、動き検出・動き補償部16によって読み込まれ、画像重ね合わせ部17を経て、コーデック部18においてコーデック変換され、システムバス2を通じて記録再生装置部5の例えばDVD(Digital Versatile Disc)やハードディスクなどの記録媒体に記録される。
この静止画撮影時、シャッターボタンが押下操作される前においては、画像重ね合わせ部17からの画像データは、NTSC(National Television System Committee)エンコーダ19によりNTSC方式の標準カラー映像信号に変換され、例えばLCD(Liquid Crystal Display;液晶ディスプレイ)からなるモニターディスプレイ6に供給され、静止画撮影時のモニター画像がその表示画面にモニター表示される。
また、ユーザ操作入力部3を通じた撮影指示が、動画記録ボタンの押下による動画撮影指示であったときには、解像度変換された画像データは、画像メモリ部4に書き込まれると共に、リアルタイムに動き検出・動き補償部16へ送られ、画像重ね合わせ部17を経て、NTSCエンコーダ部19を通じてモニターディスプレイ6の表示画面に出力されながら、コーデック部18でコーデック変換され、システムバス2を通じて記録再生装置部5に供給され、DVDやハードディスクなどの記録媒体に記録される。
この記録再生装置部5の記録媒体に記録された撮像画像データは、ユーザ操作入力部3を通じた再生開始操作に応じて読み出され、コーデック部18に供給されて、再生デコードされる。そして、再生デコードされた画像データはNTSCエンコーダ19を通じてモニターディスプレイ6に供給され、再生画像がその表示画面に表示される。なお、図1では、図示を省略したが、NTSCエンコーダ19からの出力映像信号は、映像出力端子を通じて外部に導出することが可能とされている。
上述した動き検出・動き補償部16は、ハードウエアにより構成することできるし、また、DSP(Digital Signal Processor)を用いて構成することもできる。さらには、CPU1によりソフトウエア処理とすることもできる。
[動き検出・動き補償部16の説明]
動き検出・動き補償部16では、この第1の実施の形態では、基本的には、図39〜図44を用いて説明した、SAD値を用いてブロックマッチング処理を行うことで、動きベクトル検出を行うようにする。ただし、この実施の形態では、動き検出・動き補償部16は、後述するようなハードウエアで構成され、共通のハードウエアで階層化したブロックマッチング処理を行うようにする。また、後述するように、共通のハードウエアで、静止画についてのノイズ低減処理と、動画についてのノイズ低減処理とが実現できるように構成している。
そして、この実施の形態では、ターゲットブロックに対して、サーチ範囲を移動させる複数個の参照ブロックについてのSAD値を記憶するSADテーブルTBLを小規模のものとし、あるいは、SADテーブルは用いないようにすることで、ハードウエア規模の削減を図るようにしている。そのことに関しても、後で詳述する。
[動き検出・動き補償部16の説明]
<第1の実施の形態の階層化ブロックマッチング処理の概要>
一般的な従来のブロックマッチングにおける動きベクトル検出処理は、ピクセル単位で参照ブロックを移動させて、各移動位置における参照ブロックについてのSAD値を算出し、その算出したSAD値の中から最小値を示すSAD値を検出し、当該最小SAD値を呈する参照ブロック位置に基づいて動きベクトルを検出するようにする。
しかし、このような従来の動きベクトル検出処理では、サーチ範囲内をピクセル単位で参照ブロックを移動させるようにするので、検索するサーチ範囲に比例して、SAD値を算出するマッチング処理回数が多くなって、マッチング処理時間が大きくなると共に、SADテーブルの容量も大きくなるという問題があった。
そこで、この第1の実施の形態では、ターゲット画像(ターゲットフレーム)に対して縮小画像を作成し、作成した縮小画像でブロックマッチングを行い、縮小画像での動き検出結果を基に、もとのターゲット画像でのブロックマッチングを行う。ここで、縮小画像のことを縮小面、縮小化をしていない元の画像のことを基底面と呼ぶことにする。したがって、この第2の実施の形態では、縮小面でのブロックマッチングを行ったあと、そのマッチング結果を用いて基底面でのブロックマッチングを行う。
図6および図7に、ターゲットフレーム(画像)および参照フレーム(画像)の画像縮小化のイメージを示す。すなわち、この第1の実施の形態においては、例えば図6に示すように、基底面ターゲットフレーム130は、水平方向および垂直方向のそれぞれを、1/n(nは正の数)に縮小して、縮小面ターゲットフレーム132とする。したがって、基底面ターゲットフレーム130を複数個に分割して生成した基底面ターゲットブロック131は、縮小面ターゲットフレームでは、水平方向および垂直方向のそれぞれが1/n×1/nに縮小された縮小面ターゲットブロック133となる。
そして、ターゲットフレームの画像縮小倍率1/nに合わせて、参照フレームを縮小する。すなわち、図7に示すように、基底面参照フレーム134は、水平方向および垂直方向のそれぞれを、1/nに縮小して、縮小面参照フレーム135とする。そして、基底面参照フレーム134上で検出された動き補償ブロック103についての動きベクトル104は、縮小面参照フレーム135では、1/n×1/nに縮小された縮小面動きベクトル136として検出される。
なお、上記の例では、ターゲットフレームと参照フレームとの画像縮小倍率は同じとしたが、演算量削減のため、ターゲットフレーム(画像)と参照フレーム(画像)とで異なる画像縮小倍率を用い、画素補間等の処理で、両フレームの画素数を合わせて、マッチングを行うようにしてもよい。
また、水平方向および垂直方向のそれぞれの縮小倍率を同一としたが、水平方向と垂直方向とで、縮小倍率を異ならせるようにしても良い。例えば水平方向は1/nに縮小し、垂直方向は、1/m(mは正の数で、n≠m)に縮小する場合には、縮小画面は、元の画面の1/n×1/mの大きさになる。
図8に、縮小面参照ベクトルと基底面参照ベクトルの関係を示す。基底面参照フレーム134において、動き検出原点105と、サーチ範囲106が、図8(A)に示すように決定されたとすると、1/n×1/nに画像縮小された縮小面参照フレーム135上では、図8(B)に示すように、サーチ範囲は、1/n×1/nに縮小された縮小面サーチ範囲37とされる。
そして、この第1の実施の形態では、縮小面サーチ範囲137内において、縮小面参照フレーム135での動き検出原点105からの位置ズレ量を表す縮小面参照ベクトル138を設定し、それぞれの縮小面参照ベクトル138が指し示す位置にある縮小面参照ブロック139と、縮小面ターゲットブロック131との相関性を評価する。
この場合、縮小画像において、ブロックマッチングを行うので、縮小面参照フレーム135においてSAD値を算出すべき縮小面参照ブロック位置(縮小面参照ベクトル)の数を少なくすることができ、SAD値の算出回数(マッチング処理回数)が少なくなる分だけ、処理を高速化することができると共に、SADテーブルを小規模とすることができる。
図9に示すように、縮小面サーチ範囲137に応じて定まる縮小面マッチング処理範囲143内に設定される複数個の縮小面参照ブロック139と縮小面ターゲットブロック131とのブロックマッチングによる相関性評価により、縮小面参照フレーム135における縮小面動きベクトル136が算出される。この縮小面動きベクトル136の精度は、画像が1/n×1/nに縮小されているので、1ピクセルのn倍の低精度となっている。そこで、この算出された縮小面動きベクトル136をn倍しても、基底面参照フレーム134において、1ピクセル精度の動きベクトル104は得られない。
しかし、基底面参照フレーム134においては、縮小面動きベクトル136をn倍した動きベクトルの近傍に、1ピクセル精度の基底面動きベクトル104が存在することは明らかである。
そこで、この第1の実施の形態では、図8(C)および図9に示すように、基底面参照フレーム134において、縮小面動きベクトル136をn倍した動きベクトル(基底面参照ベクトル141)が指し示す位置を中心として、基底面動きベクトル104が存在するであろうと考えられる狭い範囲に、基底面サーチ範囲140を設定し、設定された基底面サーチ範囲140に応じて基底面マッチング処理範囲144を設定する。
そして、図8(C)に示すように、この基底面サーチ範囲140内の位置を示すものとして、基底面参照フレーム134における基底面参照ベクトル141を設定し、各基底面参照ベクトル141が指し示す位置に基底面参照ブロック142を設定して、基底面参照フレーム134におけるブロックマッチングを行うようにする。
ここで設定された基底面サーチ範囲140および基底面マッチング処理範囲144は、図9に示すように、縮小面サーチ範囲137および縮小面マッチング処理範囲143を縮小率の逆数倍であるn倍したサーチ範囲137´およびマッチング処理範囲143´に比較して非常に狭い範囲でよい。
したがって、階層化マッチングを行わずに、基底面においてのみブロックマッチング処理をした場合には、基底面においては、サーチ範囲137´およびマッチング処理範囲143´において、複数個の参照ブロックを設定して、ターゲットブロックとの相関値を求める演算をする必要があるが、階層化マッチング処理においては、図9のように、非常に狭い範囲においてのみマッチング処理を行えばよい。
このため、当該狭い範囲である、基底面サーチ範囲140および基底面マッチング処理範囲144に設定される基底面参照ブロックの数は非常に少なくなり、マッチング処理回数(相関値演算回数)および保持するSAD値を非常に小さくすることができ、処理を高速化することができると共に、SADテーブルを小規模化することができるという効果を得ることができる。
こうして、基底面参照フレーム134において、ピクセル精度の基底面動きベクトル136が検出できたら、この第1の実施の形態においては、基底面動きベクトル136が指し示す参照ブロックのSAD値、すなわち、最小SAD値と、その近傍の近傍SAD値とを用いて、この例においても二次曲線近似補間処理を行って、サブピクセル精度の高精度動きベクトルを算出するようにする。
サブピクセル精度の高精度動きベクトルについて説明する。前述したブロックマッチング手法では、ピクセル単位でブロックマッチングを行っているため、動きベクトルはピクセル精度でしか算出されない。図44に示したように、マッチング処理を行った点、つまり、参照ブロックの位置は、ピクセル精度で存在し、より精度の高い動きベクトルを算出するには、サブピクセル単位でのマッチング処理が必要になる。
N倍のピクセル精度(画素ピッチは、1/N)の動きベクトルを算出するために、N倍のピクセル単位でマッチング処理を行うと、SADテーブルは約N倍の大きさになり、膨大なメモリが必要になる。また、ブロックマッチング処理のために、N倍にアッパーサンプルした画像を生成しなくてはならず、ハードウエアの規模は飛躍的に増大する。
そこで、二次曲線を用いて、SADテーブルを補間することで、ピクセル単位でマッチング処理を行ったSADテーブルから、サブピクセル精度の動きベクトルを算出することを考える。この場合において、二次曲線近似補間ではなく、線形補間や、3次以上の高次の近似曲線補間を用いても良いが、精度とハードウエア化との兼ね合いから、この例では、二次曲線近似補間を用いている。
この二次曲線近似補間においては、図10に示すように、ピクセル精度の動きベクトル104が指し示すSADテーブルのSAD値の最小値Smin(図10の参照符号113参照)と、当該最小値Sminの位置の近傍位置の複数個のSAD値(近傍SAD値という)、この例では、最小値Sminの位置のX方向およびY方向に隣接する4個の近傍SAD値Sx1、Sx2およびSy1、Sy2(図10の参照符号114,115,116,117参照)を使用する。
図11に示すように、SAD値の最小値Sminと、X方向(水平方向)の近傍2点の近傍SAD値Sx1、Sx2を使って、二次の近似曲線118を当てはめ、この二次曲線118の極小を取る座標が、サブピクセル精度のSAD値の最小値SXminとなる動きベクトル(高精度動きベクトル)のX座標Vxとなる。このときの二次曲線近似補間の式を、次式(1)に示す。
SXmin=1/2×(Sx2−Sx1)/(Sx2−2Smin+Sx1)…式(1)
この計算式(1)で求めたサブピクセル精度のSAD値の最小値SXminがSADテーブル上で取るX座標が、サブピクセル精度のSAD値の最小値となるX座標Vxとなる。
この計算式(1)の割り算は、複数回の引き算で実現可能である。求めたいサブピクセル精度が、例えば元の画素ピッチの1/4の画素ピッチの精度であれば、僅か2回の引き算でも求められるため、回路規模、演算時間、共に小さく、二次の近時曲線補間よりもかなり複雑な三次曲線補間と殆ど変わらない性能が実現できる。
同様に、SAD値の最小値Sminと、Y方向(垂直方向)の近傍2点の近傍SAD値Sy1、Sy2を使って、二次の近似曲線を当て嵌め、この二次曲線の極小値SYminを取るY座標が、サブピクセル精度のSAD値の最小値となるY座標Vyとなる。このときの二次曲線近似補間の式を、次式(2)に示す。
SYmin=1/2×(Sy2−Sy1)/(Sy2−2Smin+Sy1)…式(2)
以上のようにして、二次曲線の近似を、X方向およびY方向の2回、行うことで、サブピクセル精度の高精度の動きベクトル(Vx、Vy)が求まる。
以上の説明では、SAD値の最小値と、そのX方向(水平方向)およびY方向(垂直方向)の近傍2点のSAD値を使用したが、各方向の近傍のSAD値は2点以上であってもよい。また、二次曲線をX方向、Y方向に代えて、例えば、斜め方向に近似曲線を当て嵌めてもかまわない。さらに、X方向、Y方向に、斜め方向を加えて近似曲線を当て嵌めてもかまわない。
以上のような手段、手順を用いることにより、ピクセル単位の精度のSADテーブルの値から、サブピクセル精度のベクトル検出結果が得られることを図12に示す。図12の横軸は、補間倍率であり、1次元方向に分解能を何倍にするかを表している。SADテーブルは2次元のため、テーブル面積は、この2乗の割合で削減されるのに対し、補間による誤差は、線形程度にしか増加しないことから、上述の補間手法の有用性が分かる。
<動き検出・動き補償部16の構成例>
図13に、動き検出・動き補償部16の構成例のブロック図を示す。この例では、動き検出・動き補償部16は、ターゲットブロック102の画素データを保持するターゲットブロックバッファ部161と、参照ブロック108の画素データを保持する参照ブロックバッファ部162と、ターゲットブロック102と参照ブロック108との対応する画素についてのSAD値を計算するマッチング処理部163と、マッチング処理部163から出力されるSAD値情報から動きベクトルを算出する動きベクトル算出部164と、それぞれのブロックを制御するコントロール部165と、を備える。
静止画撮像時においては、ターゲットブロックバッファ部161には、画像メモリ4に記憶されている縮小面ターゲット画像または基底面ターゲット画像の画像フレームからの縮小面ターゲットブロックまたは基底面ターゲットブロックが書き込まれる。縮小面ターゲット画像または基底面ターゲット画像は、1枚目は、シャッターボタン押下後の最初の撮像フレームの画像がターゲットフレーム102として書き込まれ、参照画像とのブロックマッチングに基づき画像の重ね合わせがなされると、当該画像の重ね合わせ後のNR画像に書き換えられてゆく。
参照ブロックバッファ部162には、画像メモリ4に記憶されている縮小面参照画像または基底面参照画像の画像フレームからの縮小面参照ブロックまたは基底面参照ブロックが書き込まれる。縮小面参照画像または基底面参照画像は、前記最初の撮像フレームの後の撮像フレームが、参照フレーム108として書き込まれる。
この場合、連続して撮影された複数枚の撮像画像を取り込みながら画像の重ね合わせ処理を行う場合(これを撮影中加算と呼ぶことにする)には、基底面参照画像および縮小面参照画像としては、前記最初の撮像フレームの後の撮像フレームが、1枚ずつ順次に取り込まれる。したがって、基底面参照画像および縮小面参照画像としては、1枚ずつを保持すればよい。
しかし、連続して撮影された複数枚の撮像画像を取り込んだ後、動き検出・動き補償部16および画像重ね合わせ部17で、動きベクトル検出を行い、画像の重ね合わせを実行するようにする場合(これを撮影後加算と呼ぶことにする)には、基底面参照画像および縮小面参照画像としては、前記最初の撮像フレームの後の複数枚の撮像フレームの全てを格納保持しておく必要がある。
撮像装置としては、撮影中加算および撮影後加算のいずれも用いることができるが、この実施形態では、例えば、撮影後加算の処理を採用するものとする。
また、動画撮影時においては、動き検出・動き補償部16には、解像度変換部15からの撮像フレームがターゲットフレーム102として入力される。ターゲットブロックバッファ部161には、この解像度変換部15からの、ターゲットフレームから抽出されたターゲットブロックが書き込まれる。また、参照ブロックバッファ部162には、前記ターゲットフレームよりも1枚前の、画像メモリ4に記憶されている撮像フレームが、参照フレーム108とされ、この参照フレームからの参照ブロックが書き込まれる。
マッチング処理部163では、前述の図39〜図44を用いて説明したブロックマッチング処理を、ターゲットブロックバッファ部161に記憶されたターゲットブロックと、参照ブロックバッファ部162に記憶された参照ブロックとについて行う。
ここで、ブロックマッチングにおけるターゲットブロックと、参照ブロックとの相関の強さを検出するためには、この実施の形態においても、画像データの輝度情報を用いてSAD値算出を行い、その最小SAD値を検出して、当該最小SAD値を呈する参照ブロックを最強相関参照ブロックとして検出するようにする。
なお、SAD値の算出は、輝度情報ではなく、色差信号や、3原色信号R,G,Bの情報を使用しても良いことは言うまでもない。また、SAD値の算出に当たっては、通常は、ブロック内の全画素を用いるようにするが、演算量削減のため、間引き等により、飛び飛びの位置の限られた画素の画素値のみを使用するようにしてもよい。
動きベクトル算出部164は、マッチング処理部163のマッチング処理結果からターゲットブロックに対する参照ブロックの動きベクトルを検出する。この第1の実施形態では、サブピクセル精度の高精度動きベクトルを検出するようにする。
コントロール部165は、CPU1による制御を受けながら、この動き検出・動き補償部16における階層化ブロックマッチング処理の処理動作を制御するようにする。
[撮像画像のノイズ低減処理]
<静止画撮影時>
上述の構成の実施の形態の撮像装置において、静止画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図14に示す。この図14のフローチャートの各ステップは、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されるものである。
まず、シャッターボタンが押下されると、この例の撮像装置においては、CPU1による制御によって、高速で複数枚の画像の撮影が行われる。この例では、静止画撮影時に重ね合わすべきM枚(Mフレーム;Mは2以上の整数)の撮像画像データを取り込み、画像メモリ部4に貼っておく(ステップS1)。
次に、参照フレームは、画像メモリ部4に蓄積されているM枚の画像フレームのうちの時間的にN番目(Nは2以上の整数で、最大値はM)とするのであるが、コントロール部165は、その何番目とする値Nの初期値を、N=2とする(ステップS2)。そして、次に、コントロール部165は、1枚目の画像フレームをターゲット画像(ターゲットフレーム)とし、N枚目の画像を参照画像(参照フレーム)に設定する(ステップS3)。
次に、コントロール部165は、ターゲットフレームにターゲットブロックを設定し(ステップS4)、動き検出・動き補償部16において、画像メモリ部4から、ターゲットブロックバッファ部161へターゲットブロックを読み込み(ステップS5)、参照ブロックバッファ部162へマッチング処理範囲の画素データを読み込む(ステップS6)。
次に、コントロール部165は、参照ブロックバッファ部162から、サーチ範囲内において参照ブロックを読み出し、マッチング処理部163で、後述するような階層化マッチング処理を行う。なお、この例では、後述するように、マッチング処理部163で算出されたSAD値のうち、後述するSAD値は、SAD値の最小値およびその近傍のSAD値を保持して、二次曲線近似補間処理を行うために、動きベクトル算出部164へ送られる。これをサーチ範囲内のすべての参照ベクトルで繰り返した後、二次曲線近似補間処理部で、前述した補間処理を行い、高精度の動きベクトルを出力する(ステップS7)。
次に、コントロール部165は、以上のようにして検出された高精度の動きベクトルにしたがって、参照ブロックバッファ部162から動き補償画ブロックを読み出し((ステップS8)、ターゲットブロックと同期して、後段の画像重ね合わせ部17へ送る(ステップS9)。
次に、CPU1の制御に従って、画像重ね合わせ部17は、ターゲットブロックと動き補償画ブロックの重ね合わせを行い、重ね合わせたブロックの画像データを画像メモリ部4に貼る。すなわち、画像重ね合わせ部17は、重ね合わせたブロックの画像データを画像メモリ部4に書き込む(ステップS10)。
次に、コントロール部165は、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したか否か判別し(ステップS11)、すべてのターゲットブロックについては未だブロックマッチングの処理が終了していないと判別したときには、ステップS4に戻って、次のターゲットブロックを設定して、ステップS4〜ステップS11までの処理を繰り返す。
また、コントロール部165は、ステップS11で、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したと判別したときには、重ね合わすべきすべての参照フレームについての処理が終了したか否か、つまり、M=Nであるか否か判別する(ステップS12)。
ステップS12で、M=Nではないと判別したときには、N=N+1とし(ステップS13)、ステップS3に戻って、このステップS3以降の処理を繰り返す。つまり、Mが3以上の場合は、全てのターゲットブロックにおいて重ね合わせを行った画像を次のターゲット画像とし、3枚目以降の画像を参照フレームとして、上記の処理を繰り返して行く。これをM枚目の重ね合わせが終わるまで繰り返す。そして、ステップS12で、M=Nであると判別したときには、この処理ルーチンを終了する。
なお、M枚の撮影画像が重ね合わされた結果のNR画像の画像データは、静止画コーデック部18により圧縮エンコードされて、記録再生装置部5に供給されて、その記録媒体に記録されるものである。
なお、以上の静止画のノイズ低減処理方法は、M枚の画像データを画像メモリ部4に貼っておく手法であるが、1枚撮影するたびに重ね合わせを行っても良い。その場合には、画像メモリ部4に記憶する画像フレームは、1枚でよいので、図14の処理ルーチンのノイズ低減処理方法に比べて、撮影間隔は長くなるが、メモリコストを最小にすることが可能である。
<動画撮影時>
次に、この実施の形態の撮像装置において、動画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図15に示す。この図15のフローチャートの各ステップも、CPU1およびこのCPU1により制御される動き検出・動き補償部16のコントロール部165の制御の下に実行されるものである。動画記録ボタンがユーザにより操作されると、CPU1は、図15の処理をスタートから開始するように指示する。
この実施の形態では、動き検出・動き補償部16は、ターゲットブロック単位でマッチング処理をするのに適した構成とされている。そこで、解像度変換部15は、CPU1の制御に従って、フレーム画像を保持し、ターゲットブロック単位で、動き検出・動き補償部16へ画像データを送る(ステップS21)。
動き検出・動き補償部16に送られたターゲットブロックの画像データは、ターゲットブロックバッファ部161に格納される。次に、コントロール部165は、ターゲットブロックに対応した参照ベクトルを設定し(ステップS22)、画像メモリ部4から、マッチング処理範囲の画像データを参照ブロックバッファ部162へ読み込む(ステップS23)。
次に、マッチング処理部163および動きベクトル算出部164は、後述するような階層化ブロックマッチングによる動き検出処理を行う(ステップS24)。すなわち、マッチング処理部163は、先ず、縮小面において、縮小面ターゲットブロックの画素値と縮小面参照ブロックの画素値との間のSAD値を算出し、算出したSAD値を動きベクトル算出部164へ送る。マッチング処理部163は、この処理をサーチ範囲内のすべての縮小面参照ブロックで繰り返す。サーチ範囲内のすべての縮小面参照ブロックについてのSAD値の算出が終了した後、動きベクトル算出部164は、最小のSAD値を特定して、縮小面動きベクトルを検出する。
コントロール部165は、動きベクトル算出部164で検出された縮小面動きベクトルを縮小率の逆数倍して、基底面上における動きベクトルに変換し、その変換したベクトルが、基底面において指し示す位置を中心した領域を、基底面におけるサーチ範囲とする。そして、コントロール部165は、マッチング処理部163に、当該サーチ範囲において、基底面におけるブロックマッチング処理を行わせるように制御する。マッチング処理部163は、基底面ターゲットブロックの画素値と基底面参照ブロックの画素値との間のSAD値を算出し、算出したSAD値を動きベクトル算出部164へ送る。
サーチ範囲内のすべての縮小面参照ブロックについてのSAD値の算出が終了した後、動きベクトル算出部164は、最小のSAD値を特定して、縮小面動きベクトルを検出すると共に、その近傍のSAD値を特定し、それらのSAD値を用いて、前述した二次曲線近似補間処理を行い、サブピクセル精度の高精度の動きベクトルを出力する。
次に、コントロール部165は、ステップS24で算出された高精度の動きベクトルにしたがって、参照ブロックバッファ部162から動き補償画ブロックの画像データを読み出し(ステップS25)、ターゲットブロックと同期して、後段の画像重ね合わせ部17へ送る(ステップS26)。
画像重ね合わせ部17においては、ターゲットブロックと動き補償画ブロックの重ね合わせを行う。そして、画像重ね合わせ部17は、その重ね合わせた結果のNR画像の画像データを、NTSCエンコーダ19を通じてモニターディスプレイ6に出力することで、動画記録モニターをすると共に、コーデック部18を通じて記録再生装置部6に送り、記録媒体に記録するようにする(ステップS27)。
画像重ね合わせ部17で重ね合わせされた画像は、また、画像メモリ部4に格納し、次のフレーム(ターゲットフレーム)での参照フレームとなるようにする(ステップS28)。
そして、CPU1は、動画記録停止操作がユーザによりなされたか否か判別し(ステップS29)、当該動画記録停止操作がユーザによりなされていないと判別したときには、ステップS21に戻って、このステップS21以降の処理を繰り返すように指示する。また、ステップS29で、動画記録停止操作がユーザによりなされたと判別したときには、CPU1は、この処理ルーチンを終了するようにする。
以上の動画のノイズ低減処理の処理ルーチンにおいては、1フレーム前の画像フレームを参照フレームとするようにしたが、1フレームよりもさらに過去のフレームの画像を参照フレームとして用いるようにしても良い。また、1フレーム前と2フレーム前の画像を、画像メモリ部4に格納しておき、それらの2枚の画像情報の内容から、どちらの画像フレームを参照フレームにするかを選択しても良い。
上記のような手段、手順、システム構成を用いることで、一つの共通したブロックマッチング処理のハードウエアで、静止画ノイズ低減処理および動画ノイズ低減処理を行うことが可能になる。
[動きベクトル算出部164について]
次に、動きベクトル算出部164の幾つかの構成例およびその動作について説明する。まず、この発明の実施形態における動きベクトル算出部164の構成例およびその動作を説明する前に、従来と同様に、SADテーブルを用いる第1の例について説明する。
<第1の例>
図16に、動きベクトル算出部164の第1の例の構成図を示す。この第1の例の動きベクトル算出部164は、SAD値書き込み部1641と、SADテーブルTBLと、SAD値比較部1642と、SAD値保持部1643と、X方向(水平方向)近傍値抽出部1644と、Y方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とからなる。
この第1の例の動きベクトル算出部164においては、SAD値書き込み部1641は、マッチング処理部163から送られてくる、参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値をSADテーブルTBLに格納する。マッチング処理部163でサーチ範囲の全てのマッチング処理が終わったら、SAD値比較部1642は、SADテーブルTBLのすべてのSAD値について比較処理を行って、最小のSAD値を探索し、検出した最小のSAD値およびそのSAD値を呈する参照ブロックの位置情報(参照ベクトル)をSAD値保持部1643に保持する。
この第1の実施の形態では、縮小面におけるブロックマッチング処理においては、縮小面動きベクトルを検出すればよいので、SAD値保持部1643には、最小のSAD値Sminおよび、当該最小のSAD値Sminを呈する参照ブロックの位置情報(参照ベクトル)を保持するだけでよい。この場合、保持された最小のSAD値Sminに対応する参照ベクトルの情報、すなわち、縮小面動きベクトルの情報は、動きベクトル算出部164からコントロール部165に供給され、基底面におけるブロックマッチングの際のサーチ範囲を設定するために用いられる。
しかしながら、この実施の形態では、動きベクトル算出部164では、ブロックマッチング処理結果としての動きベクトルを算出するだけでなく、前述したように、補間処理をも実行するようにする。すなわち、この第1の実施の形態においては、縮小面におけるブロックマッチング処理の後の基底面における処理においては、最小のSAD値を呈する参照ブロックの位置の近傍の複数個のSAD値を用いて、サブピクセル精度の動きベクトルを算出するための補間処理を行う。
そこで、この実施の形態では、動きベクトル算出部164は、補間処理を行うための構成も備える。すなわち、SAD値保持部1643と、X方向(水平方向)近傍値抽出部1644と、Y方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とは、補間処理のための構成部分である。
この例の動きベクトル算出部164では、検出した最小のSAD値Sminの近傍の複数個、この例では、近傍4個のSAD値およびそれぞれのSAD値を呈する参照ブロックの位置情報(参照ベクトル)をSADテーブルTBLから読み出して、SAD値保持部1643に保持するように構成している。
次に、X方向(水平方向)近傍値抽出部1644は、SAD値保持部1643に保持された、前記検出した最小のSAD値とそのX方向(水平方向)の近傍値とを、それぞれの参照ブロックの位置情報(参照ブロック)と共に読み出し、二次曲線近似補間処理部1646に送る。二次曲線近似補間処理部1646は、二次曲線による補間処理を、X方向(水平方向)について、前述したようにして実行する。
次に、Y方向(垂直方向)近傍値抽出部1645は、SAD値保持部1643に保持された、前記検出した最小のSAD値とそのY方向(垂直方向)の近傍値とを、それぞれの参照ブロックの位置情報(参照ブロック)と共に読み出し、二次曲線近似補間処理部1646に送る。二次曲線近似補間処理部1646は、二次曲線による補間処理を、Y方向(垂直方向)について、前述したようにして実行する。
こうして、二次曲線近似補間処理部1646は、二次曲線による補間処理を、X方向およびY方向の2回行い、サブピクセル精度の高精度の動きベクトルを算出する。
この第1の例における縮小面でのブロックマッチング処理時の流れの例を図17のフローチャートに、基底面でのブロックマッチング処理時の流れの例を図18のフローチャートに、それぞれ示す。この第1の例のフローチャートの各ステップは、マッチング処理部163および動きベクトル算出部164においてなされるものである。
先ず、縮小面におけるブロックマッチング処理時の流れの例である図17のフローチャートについて説明する。
先ず、マッチング処理部163は、縮小面における参照ベクトル(Vx,Vy)を設定して、SAD値を計算する縮小面参照ブロック位置を設定し(ステップS31)、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS32)と共に、ターゲットブロックバッファ部161の縮小面ターゲットブロックの画素データを読み込んで、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め(ステップS33)、求めたSAD値を動きベクトル算出部164に送出する。動きベクトル算出部164では、SAD値書き込み部1641が、受け取ったSAD値を、対応する縮小面参照ブロックの位置、つまり、縮小面参照ベクトルに対応する位置に格納する(ステップS34)。
次に、マッチング処理部163は、サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別し(ステップS35)、未だ、サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップS31に戻り、前述したステップS31以降の処理を繰り返す。
また、マッチング処理部163は、ステップS35で、サーチ範囲の全ての縮小面参照ブロックの位置(参照ベクトル)でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部164に伝える。
動きベクトル算出部164では、これに応じて、SAD値比較部1642が、SADテーブルTBLの各SAD値を比較して、SADテーブルTBLにおいて最小となるSAD値Sminを検出し、検出したSAD値の最小値Sminに対応する縮小面参照ブロックの位置の情報(縮小面動きベクトルの情報)を、コントロール部165に送出する(ステップS36)。以上で、縮小面におけるブロックマッチング処理は終了となる。
次に、基底面におけるブロックマッチング処理時の流れの例である図18のフローチャートについて説明する。
先ず、マッチング処理部163は、基底面における参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定し(ステップS41)、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS42)と共に、ターゲットブロックバッファ部161の基底面ターゲットブロックの画素データを読み込んで、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め(ステップS43)、求めたSAD値を動きベクトル算出部164に送出する。動きベクトル算出部164では、SAD値書き込み部1641が、受け取ったSAD値を、対応する基底面参照ブロックの位置、つまり、基底面参照ベクトルに対応する位置に格納する(ステップS44)。
次に、マッチング処理部163は、サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したか否か判別し(ステップS45)、未だ、サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップS41に戻り、前述したステップS41以降の処理を繰り返す。
また、マッチング処理部163は、ステップS45で、サーチ範囲の全ての基底面参照ブロックの位置(参照ベクトル)でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部164に伝える。
動きベクトル算出部164では、これに応じて、SAD値比較部1642が、SADテーブルTBLの各SAD値を比較して、SADテーブルTBLにおいて最小となるSAD値Sminを検出し、検出したSAD値の最小値Sminに対応する基底面参照ブロックの位置の情報(基底面動きベクトルの情報)と共にSAD値保持部1643の最小値格納部に保持する。そして、SAD値保持部1643は、検出された最小のSAD値Sminの位置の近傍位置の近傍SAD値Sx1、Sx2、Sy1、Sy2を、SADテーブルTBLから取得して、それぞれの格納部に保持する(ステップS46)。
次に、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する(ステップS47)。以上で、1枚の参照フレームについての基底面におけるブロックマッチング処理を終了する。
以上説明した第1の例は、算出したSAD値を全て記憶するSADテーブルTBLを生成し、当該生成したSADテーブルTBLから二次曲線近似補間用の最小のSAD値と、その近傍の4個のSAD値を抽出するようにするので、SADテーブルTBLの分だけ、大規模なメモリを必要とする。
以下に説明する他の例では、算出したSAD値を全て記憶するSADテーブルTBLを生成しないことにより、より回路規模を削減するとともに、処理時間も削減することができるようにする。
<第1の実施形態の動きベクトル算出部164の第2の例>
上述したように、ブロックマッチング処理は、参照ベクトルの示す位置を参照ブロックの位置とし、各参照ブロックの各画素とターゲットブロックの各画素のSAD値を計算し、その計算処理を、サーチ範囲内のすべての参照ベクトルの示す位置の参照ブロックについて行う。
ここで、サーチ範囲内において参照ブロックの位置を変えて、動き補償ブロックをサーチする場合に、サーチを画面(フレーム)の端から順番に行う、画面(フレーム)の中心から外側に向かって行う、などいろいろな方法が考えられるが、この実施の形態では、サーチ方向は、図19(A)で矢印120に示すように設定され、サーチ範囲の左上端から水平方向にサーチを開始し、1ライン分のサーチが終わった後、垂直方向に1ライン下のラインを、左端から水平方向にサーチする、という手順を繰り返すサーチ方法を採用する。
すなわち、図19(B)に示すように、サーチ範囲106において、当該サーチ範囲106の左上から水平方向に参照ブロック108を順次に設定してサーチして、各参照ブロック108についてのSAD値の計算を行う。すると、図19(C)に示すように、対応するSADテーブルも左上から水平方向に埋まっていく。このとき、実際にマッチング処理に使用される画素データの範囲は、参照ブロック108の大きさに応じたマッチング処理範囲110となるのは、前述した通りである。
図9に示したように、この例のサブピクセル精度の二次曲線近似補間処理を行うためには、SAD値の最小値Smin、およびその近傍のSAD値Sx1、Sx2、Sy1、Sy2が求まれば良い。
各参照ブロックについてのSAD値を算出した際に、その算出したSAD値と、その時点までのSAD値の最小値とを比較して、算出したSAD値がその時までのSAD値の最小値よりも小さければ、算出したSAD値を最小値として保持すると共に、そのSAD値とそのときの参照ベクトルを保持することにより、SAD値の最小値および当該最小値を取る参照ブロックの位置情報(参照ベクトルの情報)とを、SADテーブルを生成することなく、求めることができる。
そして、検出したSAD値の最小値を保持すると共に、その最小SAD値となる参照ブロック位置の近傍の参照ブロックのSAD値を、近傍SAD値として保持するようにすれば、近傍SAD値をも、SADテーブルを生成することなく、保持することができる。
このとき、この例では、図20(A)に示すように、上述の図19(A)に示したようなサーチ方法を採用しているので、従来のSADテーブルTBLにおいて水平方向の1ライン分のSAD値を記憶する容量のメモリ(以下、ラインメモリという)を設ければ、新たに参照ブロックのSAD値が算出されたときには、SADテーブルTBL上では、図20(B)で斜線を付して示すように、当該新たに算出されたSAD値121に対して、それより前に算出されたSADテーブルTBLの1ライン分の複数個の参照ブロックのSAD値が、格納データ122として前記ラインメモリに格納されていることになる。
そこで、新たに算出された参照ブロックのSAD値が、最小のSAD値として検出されたときには、SADテーブルTBL上において、前記最小SAD値121を呈する参照ブロックの位置の1ライン上の位置の参照ブロックのSAD値123(近傍SAD値(Sy1))と、前記最小SAD値121を呈する参照ブロックの位置の左横の位置の参照ブロックのSAD値124(近傍SAD値(Sx1))は、前記ラインメモリから取得することができる。
そして、SADテーブルTBL上において、最小SAD値の参照ブロックの位置の右横の位置の参照ブロックのSAD値である近傍SAD値(Sx2)(図20(C)の符号125参照)は、後で、その参照ブロック位置で算出されたSAD値を保持すればよい。同様に、SADテーブルTBL上において、新たに算出された最小SAD値の参照ブロックの位置の1ライン下の位置の参照ブロックのSAD値である近傍SAD値(Sy2)(図20(C)の符号126参照)も、後で、その参照ブロック位置で算出されたSAD値を保持すればよい。
以上のことを考慮して、この動きベクトル算出部164の第2の例は、図21に示すようなハードウエア構成とする。
すなわち、この動きベクトル算出部164の第2の例においては、図16に示した第1の例の場合のように、算出された全てのSAD値を保持するSADテーブルTBLは備えず、SAD値書き込み部1641と、SAD値比較部1642と、SAD値保持部1643と、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646と、SADテーブルTBLの1ライン分のメモリ(ラインメモリという)1647とを備えてなる。
そして、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とは、前述した第1の例と同様の動作を行うが、SAD値書き込み部1641、SAD値比較部1642、SAD値保持部1643およびラインメモリ1647の部分は、前述の第1の例とは、異なる動作を行う。
SAD値保持部1643は、図16の第1の例と同様に、最小SAD値Sminおよび近傍SAD値Sx1、Sx2、Sy1、Sy2の保持部(メモリ)を備える。そして、この第2の例においては、SAD値保持部1643は、その最小SAD値保持部からの最小SAD値SminをSAD値比較部1642に供給する共に、保持している近傍SAD値のうち、最小SAD値Sminの右側の近傍SAD値Sx2の参照ブロックの位置情報(参照ベクトル)と、最小SAD値Sminの下側の近傍SAD値Sy2の参照ブロックの位置情報(参照ベクトル)とを、SAD値書き込み部1641に供給する。
SAD値比較部1642は、この第2の例においては、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを受けると共に、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminとを受ける。
そして、SAD値比較部1642は、マッチング処理部163からの当該時点で算出されたSAD値Sinと、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminとの両者を比較し、マッチング処理部163からの当該時点で算出されたSAD値Sinの方が小さいときには、当該時点で、そのSAD値を最小SAD値であるとして検出し、また、SAD値Sinの方が小さいときには、当該時点では、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminが未だ最小値であると検出する。そして、SAD値比較部1642は、その検出結果の情報DETをSAD値書き込み部1641およびSAD値保持部1643に供給する。
SAD値書き込み部1641は、マッチング処理部163からの算出されたSAD値Sinおよびその位置情報(参照ベクトル)を一時保持するための1画素分のバッファメモリを備え、この第2の例においては、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、ラインメモリ1647に書き込む。この場合、ラインメモリ1647は、シフトレジスタと同様の動作を行い、空きスペースが無いときには、新規の位置情報およびSAD値が記憶されると、ラインメモリ1647において最も古い前記位置情報およびSAD値が廃棄される。
また、SAD値書き込み部1641は、算出されたSAD値Sinおよびその位置情報をラインメモリ1647に書き込む前に、この第1の例においては、次のような処理を行う。
すなわち、SAD値書き込み部1641は、SAD値比較部1642からの比較検出結果の情報DETが、SAD値Sinが最小値であることを示しているときには、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、SAD値保持部1643に送る。
SAD値保持部1643は、SAD値比較部1642からの比較検出結果の情報DETにより、SAD値Sinが最小値であることを検知し、SAD値書き込み部1641から送られてくる参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、最小SAD値保持部に格納する。
また、SAD値書き込み部1641は、この第2の例においては、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)が、SAD値保持部1643から受け取った近傍SAD値Sx2またはSy2の位置情報と一致したときにも、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、SAD値保持部1643に送る。
SAD値保持部1643は、受け取った参照ブロックの位置情報(参照ベクトル)から、いずれの近傍SAD値に関する情報かを認識して、対応する近傍SAD値保持部に格納する。
以上の処理をサーチ範囲における全ての参照ブロックについて終了すると、SAD値保持部1643には、前述したように、最小SAD値およびその位置情報ならびに4個の近傍SAD値およびその位置情報が保持される。
そこで、前述した第1の例と同様にして、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する。
以上のようにして、第2の例においては、SADテーブルTBLの代わりに、SADテーブルTBLの1ライン分のラインメモリを用いることにより、サブピクセル精度の動きベクトルの検出ができる。
この第2の例における縮小面でのブロックマッチング処理時の流れの例を図22のフローチャートに、基底面でのブロックマッチング処理時の流れの例を図23および図24のフローチャートに、それぞれ示す。これらの第2の例のフローチャートの各ステップも、マッチング処理部163および動きベクトル算出部164においてなされるものである。
先ず、縮小面におけるブロックマッチング処理時の流れの例である図22のフローチャートについて説明する。
はじめに、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値を設定する(ステップS51)。この最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、縮小面の参照ベクトル(Vx,Vy)を設定して、SAD値を計算する縮小面参照ブロック位置を設定し(ステップS52)、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS53)。
そして、ターゲットブロックバッファ部161から縮小面ターゲットブロックの画素データを読み込んで、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め、求めたSAD値を動きベクトル算出部164に送出する(ステップS54)。
動きベクトル算出部164では、SAD値書き込み部1641により、そのSAD値をラインメモリ1647に書き込む(ステップS55)。
また、動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出されたSAD値Sinと、SAD値保持部1643に保持されている最小SAD値Sminとを比較して、算出されたSAD値Sinが、それまで保持されている最小SAD値Sminよりも小さいか否か判別する(ステップS56)。
このステップS56で、算出されたSAD値Sinが最小SAD値Sminより小さいと判別したときには、ステップS57に進み、SAD値保持部1643に保持される最小SAD値Sminの情報およびその位置情報(縮小面参照ベクトル)の更新がなされる。
また、ステップS56で、算出されたSAD値Sinが最小SAD値Sminより大きいと判別したときには、ステップS57の保持情報の更新処理は行わずにステップS58に進み、マッチング処理部163は、サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、サーチ範囲においては、未処理の参照ブロックがあると判別したときには、ステップS52に戻り、前述したステップS52以降の処理を繰り返す。
また、マッチング処理部163は、ステップS58で、サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部164に伝える。動きベクトル算出部164では、これを受けて、SAD値保持部1643に保持される最小SAD値Sminの位置情報(縮小面参照ベクトル)を、コントロール部165に出力する(ステップS59)。
以上で、この例における縮小面におけるブロックマッチング処理を終了する。
次に、基底面におけるブロックマッチング処理時の流れの例である図23および図24のフローチャートについて説明する。
はじめに、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値を設定する(ステップS61)。この最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、基底面における参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定し(ステップS62)、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS63)と共に、ターゲットブロックバッファ部161から基底面ターゲットブロックの画素データを読み込んで、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め、求めたSAD値を動きベクトル算出部164に送出する(ステップS64)。
動きベクトル算出部164では、SAD値書き込み部1641により、そのSAD値をラインメモリ1647に書き込む(ステップS65)。また、動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出されたSAD値Sinと、SAD値保持部1643に保持されている最小SAD値Sminとを比較して、算出されたSAD値Sinが、それまで保持されている最小SAD値Sminよりも小さいか否か判別する(ステップS66)。
このステップS66で、算出されたSAD値Sinが最小SAD値Sminより小さいと判別したときには、ステップS67に進み、SAD値保持部1643に保持される最小SAD値Sminの情報および当該最小SAD値Sminを呈する参照ブロック位置の1ピクセル上および1ピクセル左の位置の参照ブロックのSAD値およびその位置情報(基底面参照ベクトル)の更新がなされる。
すなわち、SAD値比較部1642は、算出されたSAD値Sinが最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出されたSAD値Sinおよびその位置情報(基底面参照ベクトル)を、新たな最小SAD値Sminの情報としてSAD値保持部1643に送ると共に、図20(B)から分かるように、ラインメモリ1647の最も古いSAD値およびその位置情報(基底面参照ベクトル)と、最も新しいSAD値およびその位置情報(基底面参照ベクトル)とを、最小SAD値の位置の1ピクセル上の位置の基底面参照ブロックのSAD値Sy1の情報および1ピクセル左の位置の基底面参照ブロックのSAD値Sx1の情報として、SAD値保持部1643に送る。SAD値保持部1643は、受け取った新たな最小SAD値Sminの情報および1ピクセル上の位置の基底面参照ブロックのSAD値Sy1の情報および1ピクセル左の位置の基底面参照ブロックのSAD値Sx1の情報により、それぞれ対応する保持情報を更新する。
そして、ステップ67の次には、図24のステップS71に進む。また、ステップS66で、算出されたSAD値Sinが最小SAD値Sminより大きいと判別したときには、ステップS67の保持情報の更新処理は行わずにステップS71に進む。
ステップS71では、SAD値書き込み部1641は、算出されたSAD値Sinについての位置情報(参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル下の基底面参照ブロックの位置であるか否か判別し、1ピクセル下の基底面参照ブロックの位置であると判別したときには、算出されたSAD値Sinおよびその位置情報(参照ベクトル)をSAD値保持部1643に送る。SAD値保持部1643は、受け取ったSAD値およびその位置情報により、前記1ピクセル下の位置の基底面参照ブロックについての近傍SAD値Sy2の保持情報を更新する(ステップS72)。
ステップS71で、算出されたSAD値Sinについての位置情報(基底面参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル下の基底面参照ブロックの位置でないと判別したときには、SAD値書き込み部1641は、算出されたSAD値Sinについての位置情報(基底面参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル下の基底面参照ブロックの位置であるか否か判別する(ステップS73)。
このステップS73で、算出されたSAD値Sinについての位置情報(基底面参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル右の基底面参照ブロックの位置であると判別したときには、SAD値書き込み部1641は、算出されたSAD値Sinおよびその位置情報(基底面参照ベクトル)をSAD値保持部1643に送る。SAD値保持部1643は、受け取ったSAD値およびその位置情報により、前記1ピクセル右の位置の基底面参照ブロックについての近傍SAD値Sx2の保持情報を更新する(ステップS74)。
ステップS73で、算出されたSAD値Sinについての位置情報(基底面参照ベクトル)の指す位置が、最小SAD値Sminとして保持されている基底面参照ブロックの位置の1ピクセル右の基底面参照ブロックの位置でないと判別したときには、SAD値書き込み部1641は、算出されたSAD値Sinおよびその位置情報(基底面参照ベクトル)は、ラインメモリ1647にのみ書き込み(前述のステップS65)、SAD値保持部1643に送らない。
そして、マッチング処理部163は、サーチ範囲の全ての基底面参照ブロックの位置(参照ベクトル)でマッチング処理を終了したか否か判別し(ステップS75)、未だ、サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、図23のステップS62に戻り、前述したステップS62以降の処理を繰り返す。
また、マッチング処理部163は、ステップS75で、サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部164に伝える。
動きベクトル算出部164では、これを受けて、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する(ステップS76)。以上で、1枚の基底面参照フレームについての第2の例のブロックマッチング処理を終了する。
以上のように、この第2の例においては、算出された全てのSAD値を保持するSADテーブルを保持することなく、SADテーブルの1ライン分を設けると共に、SAD値書き込み部1641に1画素分のSAD値を保持しておくだけで、補間処理によるサブピクセル精度の動きベクトル検出を行うことができる。
この第2の例の方法は、前述の第1の例のSADテーブルを保持する手法と比べて、ブロックマッチング回数は同じであるため、処理時間は変わらず、ハードウエア規模を削減できるという効果を奏する。
なお、上述した第2の例の説明においては、SAD値比較部1642は、マッチング処理部163からの算出されたSAD値Sinと、SAD値保持部163に保持されている最小SAD値Sminとを比較するようにしたが、SAD値比較部1642が最小SAD値の保持部を備え、その保持した最小SAD値と、算出されたSAD値Sinとを比較し、算出されたSinの方が小さいときには、保持した最小SAD値を更新すると共に、その位置情報と共に、SAD値書き込み部1641を通じてSAD値保持部1643に送って、SAD値保持部1643の最小SAD値保持部に保持させるようにしても良い。
<第1の実施形態の動きベクトル算出部164の第3の例>
この動きベクトル算出部164の第3の例においては、前記第2の例の場合のラインメモリ1647も省略して、より、ハードウエア規模の削減を図るようにした例である。
この第3の例においては、サーチ範囲における参照ブロックのSAD値の最小値Sminおよびその位置情報(参照ベクトル)の検出および保持は、上述した第2の例と全く同様に行う。しかし、近傍SAD値およびその位置情報の取得および保持に関しては、第2の例のように、SAD値Sminの検出時と同時には行わず、検出された最小SAD値Sminの位置情報を、マッチング処理部163に返して、マッチング処理部163で、最小SAD値Sminの近傍4点位置の参照ブロックについてのSAD値を再度、算出して、動きベクトル算出部164に供給するようにする。
動きベクトル算出部164では、当該マッチング処理部163からの再度のブロックマッチング処理により算出された前記近傍4点位置のSAD値およびその位置情報(参照ベクトル)を受け取って、SAD値保持部1643のそれぞれの保持部に格納するようにする。
この動きベクトル算出部164の第3の例のハードウエア構成例を、図25に示す。すなわち、この動きベクトル算出部164の第3の例においては、第1の例のSADテーブルTBLやラインメモリ1647は備えずに、図25に示すように、SAD値書き込み部1641と、SAD値比較部1642と、SAD値保持部1643と、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とを備えてなる。
この第3の例においても、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645と、二次曲線近似補間処理部1646とは、前述した第1の例と同様の動作を行うが、SAD値書き込み部1641、SAD値比較部1642、SAD値保持部1643およびラインメモリ1647の部分は、前述の第2の例とは、異なる動作を行う。
SAD値保持部1643は、第2の例と同様に、最小SAD値Sminおよび近傍SAD値Sx1、Sx2、Sy1、Sy2の保持部(メモリ)を備える。そして、この第3の例においても、SAD値保持部1643は、その最小SAD値保持部からの最小SAD値SminをSAD値比較部1642に供給する。しかし、この第3の例においては、SAD値保持部1643は、第2の例とは異なり、近傍SAD値の位置情報を、SAD値書き込み部1641に供給することしない。
SAD値比較部1642は、この第3の例においても、マッチング処理部163からの当該時点で算出されたSAD値Sinと、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminとの両者を比較し、マッチング処理部163からの当該時点で算出されたSAD値Sinの方が小さいときには、当該時点で、そのSAD値を最小SAD値であるとして検出し、また、SAD値Sinの方が小さいときには、当該時点では、SAD値保持部1643の最小SAD値保持部からの最小SAD値Sminが未だ最小値であると検出する。そして、SAD値比較部1642は、その検出結果の情報DETをSAD値書き込み部1641およびSAD値保持部1643に供給する。
SAD値書き込み部1641は、前述例と同様に、マッチング処理部163からの算出されたSAD値Sinおよびその位置情報(参照ベクトル)を一時保持するための1画素分のバッファメモリを備える。そして、この第3の例においては、SAD値書き込み部1641は、SAD値比較部1642からの比較検出結果の情報DETが、SAD値Sinが最小値であることを示しているときには、マッチング処理部163からの参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、SAD値保持部1643に送る。
SAD値保持部1643は、SAD値比較部1642からの比較検出結果の情報DETにより、SAD値Sinが最小値であることを知り、SAD値書き込み部1641から送られてくる参照ブロックの位置情報(参照ベクトル)と、当該参照ブロックのSAD値Sinとを、最小SAD値保持部に格納する。
以上の処理を、サーチ範囲内の全ての参照ブロックについてマッチング処理部163で算出されたSAD値について、行う。そして、この第3の例においては、サーチ範囲内の全ての参照ブロックについてのSAD値の算出が終了したときに、SAD値保持部1643は、保持している最小SAD値Sminの位置情報(参照ベクトル)Vminを、マッチング処理部163に供給して、当該位置情報の近傍の4点の参照ブロックについてのSAD値の再算出を依頼する。
マッチング処理部163では、SAD値保持部1643から最小SAD値Sminの位置情報(参照ベクトル)Vminを含む近傍参照ブロックについてのSAD値の再算出の依頼を受け取ると、前記最小SAD値Sminの位置情報(参照ベクトル)Vminから、その近傍4点の近傍参照ブロックの位置を検出し、検出した位置の参照ブロックについて、SAD値の算出を行う。そして、算出したSAD値を、その位置情報(参照ベクトル)と共に、SAD値書き込み部1641に順次に供給する。
この場合、マッチング処理部163は、サーチ方向の順にブロックマッチング処理を行うので、近傍SAD値は、SAD値Sy1、Sx1、Sx2、Sy2の順に算出される。SAD値書き込み部1641は、受け取った再算出されたSAD値およびその位置情報(参照ベクトル)を、順次にSAD値保持部1643に供給する。
SAD値保持部1643は、この再算出されたSAD値およびその位置情報(参照ベクトル)を、順次に、対応する格納部に書き込んで保持する。
こうして、近傍参照ブロックについてのSAD値の再算出が終了すると、前述の第2の例と同様にして、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する。
以上のようにして、第3の例においては、SADテーブルTBLやラインメモリを用いずに、サブピクセル精度の動きベクトルの検出ができる。
この第3の例における縮小面でのブロックマッチング処理時の流れの例は、ラインメモリ1647への書き込みを行わない点を除いて、図22に示した第2の例の場合と同様であるので、ここでは、説明を省略する。そして、この第3の例における基底面でのブロックマッチング処理時の流れの例を、図26のフローチャートを参照しながら説明する。
はじめに、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値を設定する(ステップS81)。この最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、基底面での参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定し(ステップS82)、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込む(ステップS83)と共に、ターゲットブロックバッファ部161から基底面ターゲットブロックの画素データを読み込んで、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、SAD値を求め、求めたSAD値を動きベクトル算出部164に送出する(ステップS84)。
動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出されたSAD値Sinと、SAD値保持部1643に保持されている最小SAD値Sminとを比較して、算出されたSAD値Sinが、それまで保持されている最小SAD値Sminよりも小さいか否か判別する(ステップS85)。
このステップS85で、算出されたSAD値Sinが最小SAD値Sminより小さいと判別したときには、ステップS86に進み、SAD値保持部1643に保持される最小SAD値Sminおよびその位置情報の更新がなされる。
すなわち、SAD値比較部1642は、算出されたSAD値Sinが最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出されたSAD値Sinおよびその位置情報(基底面参照ベクトル)を、新たな最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき最小SAD値Sminおよびその位置情報を、受け取った新たなSAD値Sinおよびその位置情報に更新する。
ステップS86の後には、ステップS87に進む。また、ステップS85で、算出されたSAD値Sinが最小SAD値Sminより大きいと判別したときには、ステップS86の保持情報の更新処理は行わずにステップS87に進む。
ステップS87では、マッチング処理部163は、サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップS82に戻り、前述したステップS82以降の処理を繰り返す。
また、マッチング処理部163は、ステップS87で、サーチ範囲の全ての基底面参照ブロックの位置(参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの最小SAD値Sminの位置情報を受け取り、その近傍4点の位置の基底面参照ブロックについてのSAD値の再算出を行い、再算出した近傍SAD値をSAD値書き込み部1641を通じてSAD値保持部1643に供給し、保持させるようにする(ステップS88)。
次に、動きベクトル算出部164では、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小のSAD値Sminとその近傍SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する(ステップS89)。以上で、1枚の参照フレームについての第3の例の基底面でのブロックマッチング処理を終了する。
この第3の例においては、上述した第2の例に比較して、SAD値を再算出する分だけ、処理時間が増加するが、ラインメモリをも必要としないので、回路規模を、第2の例よりも削減することができる。しかも、SAD値の再算出は、近傍SAD値のみであるので、上述の例では、高々4回であるので、処理時間の増加は少ない。
なお、上述した第3の例の説明では、最小SAD値は、検出しながらSAD値保持部1643に保持するようにしたが、SAD値比較部1642において、最小SAD値を呈する参照ブロックの位置情報(参照ベクトル)を検出して保持するように構成し、1回目のブロックマッチングが終了したら、SAD値比較部1642から、当該最小SAD値の位置情報をマッチング処理部163に供給するようにしてもよい。
その場合には、マッチング処理部163でのSAD値の再算出においては、近傍4点のSAD値に加えて、最小SAD値をも再算出するようにする。この場合には、SAD値の再算出回数が5回となり、1回増加するが、1回目のブロックマッチングでは、SAD値比較部1642のみが動作すればよく、SAD値書き込み部1641およびSAD値保持部1643は、再算出されたSAD値を保持するように動作すればよいので、処理動作が簡略化されるというメリットがある。
また、動き検出および動き補償部16での処理は、ターゲットフレームにおいて設定された複数個のターゲットブロックについて、並列および並行して、実行することができる。その場合には、以上説明した動き検出および動き補償部16のハードウエアの系を、当該並列・並行処理するターゲットブロック数に応じた数だけ、設ける必要がある。
比較例のように、SADテーブルを生成する方法の場合には、当該ターゲットブロック数分だけのSADテーブルを生成する必要があり、非常に大きなメモリが必要となってしまう。しかし、第2の例では、1ターゲットブロック当たりについて、SADテーブルの1ライン分でよく、メモリ容量を非常に少なくすることができる。さらに、第3の例の場合には、ラインメモリをも必要としないので、メモリ容量の大幅な削減をすることができる。
[階層化ブロックマッチング処理の流れの例]
次に、図27および図28に、この第1の実施の形態における動き検出・動き補償部16での階層化ブロックマッチング処理の動作例のフローチャートを示す。この動作例は、動きベクトル算出部164の構成例として、前述した第3の例を用いた場合である。動きベクトル算出部164の構成例として、前述した第1の例や第2の例をも用いることができることは言うまでもない。なお、この図27および図28に示す処理の流れは、前述したマッチング処理部163、動き算出部164の処理例の流れとしての説明と、一部重複するものとなるが、この第1の実施の形態の動作を、より理解し易くするために、説明するものである。
はじめに、動き検出・動き補償部16において、ターゲットブロックバッファ部161から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む(図27のステップS91)。次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、縮小面最小SAD値の初期値を設定する(ステップS92)。この縮小面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、縮小面サーチ範囲を設定すると共に、設定した縮小サーチ範囲において、縮小面参照ベクトル(Vx/n,Vy/n:1/nは縮小倍率)を設定して、SAD値を計算する縮小面参照ブロック位置を設定する(ステップS93)。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS94)、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面SAD値を求め、求めた縮小面SAD値を動きベクトル算出部164に送出する(ステップS95)。
動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された縮小面SAD値Sinと、SAD値保持部1643に保持されている縮小面最小SAD値Sminとを比較して、算出された縮小面SAD値Sinが、それまで保持されている縮小面最小SAD値Sminよりも小さいか否か判別する(ステップS96)。
このステップS96で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さいと判別したときには、ステップS97に進み、SAD値保持部1643に保持される縮小面最小SAD値Sminおよびその位置情報の更新がなされる。
すなわち、SAD値比較部1642は、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された縮小面SAD値Sinおよびその位置情報(縮小面参照ベクトル)を、新たな縮小面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき縮小面最小SAD値Sminおよびその位置情報を、受け取った新たな縮小面SAD値Sinおよびその位置情報に更新する。
ステップS97の後には、ステップS98に進む。また、ステップS96で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより大きいと判別したときには、ステップS97の保持情報の更新処理は行わずにステップS98に進む。
ステップS98では、マッチング処理部163は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップS93に戻り、前述したステップS93以降の処理を繰り返す。
また、マッチング処理部163は、ステップS98で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの縮小面最小SAD値Sminの位置情報(縮小面動きベクトル)を受け取り、受け取った縮小面動きベクトルを、縮小倍率の逆数倍、すなわち、n倍したベクトルが、基底面ターゲットフレームにおいて指し示す位置座標を中心とした位置に基底面ターゲットブロックを設定するとともに、前記n倍したベクトルが指し示す位置座標を中心とした比較的狭い範囲として、基底面サーチ範囲を、基底面ターゲットフレームに設定し(ステップS99)、ターゲットブロックバッファ部161から、基底面ターゲットブロックの画素データを読み込む(ステップS100)。
そして、次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、基底面最小SAD値の初期値を設定する(図28のステップS101)。この基底面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、ステップS99で設定した基底面縮小サーチ範囲において、基底面参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定する(ステップS102)。そして、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS103)、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、基底面SAD値を求め、求めた基底面SAD値を動きベクトル算出部164に送出する(ステップS104)。
動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された基底面SAD値Sinと、SAD値保持部1643に保持されている基底面最小SAD値Sminとを比較して、算出された基底面SAD値Sinが、それまで保持されている基底面最小SAD値Sminよりも小さいか否か判別する(ステップS105)。
このステップS105で、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さいと判別したときには、ステップS106に進み、SAD値保持部1643に保持される基底面最小SAD値Sminおよびその位置情報の更新がなされる。
すなわち、SAD値比較部1642は、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された基底面SAD値Sinおよびその位置情報(参照ベクトル)を、新たな基底面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき基底面最小SAD値Sminおよびその位置情報を、受け取った新たな基底面SAD値Sinおよびその位置情報に更新する。
ステップS106の後には、ステップS107に進む。また、ステップS105で、算出された基底面SAD値Sinが基底面最小SAD値Sminより大きいと判別したときには、ステップS106の保持情報の更新処理は行わずにステップS107に進む。
ステップS107では、マッチング処理部163は、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、基底面サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップS102に戻り、前述したステップS102以降の処理を繰り返す。
また、マッチング処理部163は、ステップS107で、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの基底面最小SAD値Sminの位置情報(基底面動きベクトル)を受け取り、その近傍4点の位置の基底面参照ブロックについての基底面SAD値の再算出を行い、再算出した近傍基底面SAD値をSAD値書き込み部1641を通じてSAD値保持部1643に供給し、保持させるようにする(ステップS108)。
次に、動きベクトル算出部164では、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小の基底面SAD値Sminとその近傍基底面SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の基底面動きベクトルを算出する(ステップS109)。以上で、1枚の参照フレームについてのこの例のブロックマッチング処理を終了する。
次に、この第1の実施の形態による画像処理方法の効果を、具体例を挙げて説明する。
図29に、上述の実施の形態の説明で用いた基底面、縮小面での、参照ブロック、サーチ範囲、マッチング処理範囲の具体例を示す。図29の例は、水平方向および垂直方向の縮小倍率1/nは、n=4に設定した場合である。
比較例として、図29(A)および(B)に示すように、例えば、縮小画像を用いない参照ブロック108は、横(水平)×縦(垂直)=32×32ピクセルとし、また、サーチ範囲106は、横(水平)×縦(垂直)=144×64ピクセル、マッチング処理範囲110は、横(水平)×縦(垂直)=176×96ピクセルとする。
すると、上述した第1の実施の形態において、水平方向および垂直方向に、1/n=1/4に縮小された縮小面では、図29(C)および(D)に示すように、縮小面参照ブロック139は、横(水平)×縦(垂直)=8×8ピクセル、縮小面サーチ範囲137は、横(水平)×縦(垂直)=36×16ピクセル、縮小面マッチング処理範囲143は、横(水平)×縦(垂直)=44×24ピクセルとなる。
水平方向および垂直方向に、1/4に縮小された縮小面で、ブロックマッチングを行った場合、縮小面動きベクトルは、4ピクセル精度の動きベクトルであり、単純に4倍しただけでは、1ピクセル精度の動きベクトルに対して誤差が生じる。すなわち、基底面での画素が図30に示すようなものとした場合、基底面でのマッチング処理点148は、当該基底面の全ての画素が対象となるが、1/4に縮小された縮小面で、ブロックマッチングを行う場合のマッチング処理点は、図30において、黒丸で示す4ピクセル単位のマッチング処理点147となっているからである。
しかし、少なくとも、1ピクセル精度の動きベクトルは、縮小面動きベクトルが指し示す縮小面でのマッチング処理点の周囲、4ピクセル範囲以内に存在するであろうことは予測できる。
そこで、この第1の実施の形態では、算出された縮小面動きベクトルを元に基底面サーチ範囲を定める基底面マッチングでは、縮小面動きベクトルを縮小倍率の逆数である4倍した参照ベクトルが指し示すピクセル位置を中心に、基底面ターゲットブロックを設定するとともに、4ピクセル分のサーチ範囲(基底面サーチ範囲140)を決定して、基底面ブロックマッチングを行い、再度動きベクトルを算出する。
したがって、図29(E)および(F)に示すように、基底面参照ブロック142は、横(水平)×縦(垂直)=32×32ピクセル、基底面サーチ範囲140は、横(水平)×縦(垂直)=4×4ピクセル、基底面マッチング処理範囲144は、横(水平)×縦(垂直)=40×40ピクセルとなる。
図31に、この第1の実施の形態のように、縮小面マッチングと、基底面マッチングの2階層マッチングを行う場合において、SADテーブルを使用すると仮定した場合における、基底面、縮小面での、SADテーブルのサイズを示す。なお、図31の例は、図29に示した具体例に対応したものである。
縮小する前の144×64のサーチ範囲(図29(B)参照)の場合におけるSADテーブルTBLは、図31(A)に示すように、145×65点である。
これに対して、36×16の縮小面サーチ範囲(図29(D)参照)の場合における縮小面SADテーブルは、図31(B)に示すように、37点×17点となる。
また、4×4の基底面サーチ範囲(図29(F)参照)の場合における基底面SADテーブルは5点×5点となる。
したがって、階層マッチングを施さない場合のマッチング処理回数は145×65=9425回であるのに対し、階層マッチングを適用した場合のマッチング回数は37×17+5×5=654回となり、処理時間を大幅に短縮できることが分かる。
そして、前述した動きベクトル検出方法の第1の例の場合におけるラインメモリは、縮小面SADテーブルの1ライン分でよいので、37個のSAD値およびその位置情報を格納できるものでよく、SADテーブルTBLの場合の、9425個のSAD値およびその位置情報を格納するメモリに対して非常に小さいメモリでよくなる。
また、前述した動きベクトル算出部164の構成例の第3の例の場合には、37個のSAD値およびその位置情報を格納する縮小面SADテーブルさえも不要となるので、さらに回路規模を小さくすることができる。
以上のようにして、上記の第1の実施の形態によれば、階層化したマッチング処理を行った後、基底面において補間処理をすることにより、広いサーチ範囲で、サブピクセル精度の動きベクトル検出を行うことが可能になる。
[第2の実施の形態]
動画のNRシステムでは、精度とともにリアルタイム性、すなわちスピードが要求される。また、図1に示したような、システムバス2に各種処理部が接続されていて、様々な処理を並列に行うシステムでは、バス帯域も重要視される。ここで、バス帯域とは、システムバス上で、輻輳を回避して転送することができるデータレートである。
スピードおよびバス帯域と、動き検出の精度とは、トレードオフの関係にあり、動き検出の精度も求めながら、処理の高速化またはバス帯域の削減を図ろうとすれば、コスト対効果の問題も考えなくてはいけない。
上述の第1の実施の形態では、広いサーチ範囲で、サブピクセル以下の動きベクトル検出を行う例を示したが、この第2の実施の形態では、動き検出の精度を落として、処理の高速化およびバス帯域の削減を行う方法について説明する。
上述した第1の実施の形態では、基底面でのピクセル精度のブロックマッチングをした後、補間処理により、サブピクセル精度の動きベクトル検出をした。これに対して、この第2の実施の形態では、縮小面でブロックマッチングをした後、算出された縮小面動きベクトルで指し示される縮小面参照ブロック位置の近傍の縮小面参照ブロックのSAD値およびその位置情報を用いて、補間処理を行い、ピクセル精度の縮小面動きベクトル検出を行うようにする。
図30に示したように、縦および横、ともに1/4に縮小された縮小面でブロックマッチングを行った場合、縮小面動きベクトルは、4ピクセル精度の動きベクトルである。したがって、図32に示すように、縮小面での最小SAD値149が求まった場合、その近傍のSAD値150,151,152,153を用いて補間処理を行い、ピクセル精度の動きベクトルの検出をしようとする場合には、補間倍率は4倍必要ということになる。
例えば、補間処理として、図33に示すように、二次曲線118による近似補間処理を行う場合には、補間倍率の4倍は、前述した式(1)および式(2)において、割り算(減算)を2ビット分行うことと等価である。図33において、二次曲線118上の極小値(SAD値)154は、縮小面における補間処理により求められたピクセル精度の最小SAD値を示している。
なお、上述の説明では、ピクセル精度の動きベクトルを算出するために、縮小倍率1/nのnと補間倍率とは同じにしているが、両者が同じでなくても良い。補間倍率を縮小倍率1/nのnよりも大きくすれば、ピクセル精度よりも高精度の動きベクトルを算出することができる。
図34に、この第2の実施の形態を、上述した第1の実施の形態で説明した撮像装置の場合における動き検出・動き補償部16に適用した場合のブロックマッチングおよび動きベクトル検出処理の一例のフローチャートを示す。
はじめに、動き検出・動き補償部16において、ターゲットブロックバッファ部161から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む(図34のステップS111)。次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、縮小面最小SAD値の初期値を設定する(ステップS112)。この縮小面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、縮小面サーチ範囲を設定すると共に、設定した縮小サーチ範囲において、縮小面参照ベクトル(Vx/n,Vy/n:1/nは縮小倍率)を設定して、SAD値を計算する縮小面参照ブロック位置を設定する(ステップS113)。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS114)、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面SAD値を求め、求めた縮小面SAD値を動きベクトル算出部164に送出する(ステップS115)。
動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された縮小面SAD値Sinと、SAD値保持部1643に保持されている縮小面最小SAD値Sminとを比較して、算出された縮小面SAD値Sinが、それまで保持されている縮小面最小SAD値Sminよりも小さいか否か判別する(ステップS116)。
このステップS116で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さいと判別したときには、ステップS117に進み、SAD値保持部1643に保持される縮小面最小SAD値Sminおよびその位置情報の更新がなされる。
すなわち、SAD値比較部1642は、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された縮小面SAD値Sinおよびその位置情報(参照ベクトル)を、新たな縮小面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき縮小面最小SAD値Sminおよびその位置情報を、受け取った新たな縮小面SAD値Sinおよびその位置情報に更新する。
ステップS117の後には、ステップS118に進む。また、ステップS116で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより大きいと判別したときには、ステップS117の保持情報の更新処理は行わずにステップS118に進む。
ステップS118では、マッチング処理部163は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップS113に戻り、前述したステップS113以降の処理を繰り返す。
また、マッチング処理部163は、ステップS118で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの縮小面最小SAD値Sminの位置情報(縮小面動きベクトル)を受け取り、その近傍4点の位置の縮小面参照ブロックについての縮小面SAD値の再算出を行い、再算出した近傍縮小面SAD値をSAD値書き込み部1641を通じてSAD値保持部1643に供給し、保持させるようにする(ステップS119)。
次に、動きベクトル算出部164では、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小の縮小面SAD値Sminとその近傍縮小面SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、縮小面において、X方向およびY方向の2回行い、前述したようにして、ピクセル精度の動きベクトルを算出する(ステップS120)。以上で、1枚の参照フレームについてのこの例のブロックマッチング処理を終了する。
前述の第1の実施の形態と、この第2の実施の形態で、処理速度とバス帯域の比較を行う。この第3の実施の形態の画像処理方法によれば、処理速度とバス帯域において、下記の3つの利点がある。
第1に、第3の実施の形態では、縮小面でのみ、SAD値の計算を行い、基底面でのSAD値の計算は行わないので、SAD値の計算回数が削減されるため、処理速度が速くなる。
すなわち、図31に示したように、第1の実施の形態のように、階層マッチングと、基底面での補間処理を用いた動きベクトル検出方法を適用した場合のSAD値計算回数は37×17+5×5=654回となるのに対して、第2の実施の形態のように、縮小面での補間処理を適用した場合のSAD値計算回数は629回となり、25回削減することができる。
第2に、この第2の実施の形態では、基底面でのブロックマッチングを行っていないため、基底面ターゲットブロックと、基底面マッチング処理範囲を、画像メモリから読み込まなくて済む。したがって、上記の25回のSAD値の計算だけではなく、基底面のターゲットブロックの読み込み時間と、基底面マッチング処理範囲の全画素分の転送時間が短縮されている。同時に、基底面25回分のバス帯域も削減されている。
第3に、基底面ブロックマッチングと縮小面ブロックマッチングは、SAD値の計算にかかる時間は同じだが、ターゲットブロックバッファ部161および参照ブロックバッファ部162から、マッチング処理部163へ転送する画素の数が異なる。
例えば、前述の例の比較では、図29に示したように、縮小面参照ブロック139は、8×8ピクセル、基底面参照ブロック142は、32×32ピクセルで、転送画素数は16倍になるため、基底面ブロックマッチングの有無は、処理時間に大きな影響を与えている。
また、縮小面ブロックマッチングで、複数ブロックについて並列にSAD値を計算することにより、処理の高速化を図ることができる。並列処理を行うと、参照ブロックバッファ部162に取り込むマッチング処理範囲が大きくなるが、図35(A)に示すように、隣り合う縮小面参照ブロック171,172を並列処理すれば、大半のマッチング処理範囲は共有することができる。このため、バス帯域も削減することができる。
図35(B),(C)は、図29(D)の場合と同じサイズの縮小面参照ブロック、縮小面サーチ範囲で、2個の縮小面参照ブロック171,172のブロックマッチングを並列に処理したときの縮小面サーチ範囲およびマッチング処理範囲の例である。
図29(D)に示したように、並列処理しない場合の縮小面サーチ範囲137は、36×16ピクセル、縮小面マッチング処理範囲143は、44×24ピクセルであったのに対して、図35(B),(C)に示すように、縮小面参照ブロック171の縮小面サーチ範囲173は、40×16ピクセル、縮小面参照ブロック172の縮小面サーチ範囲174は、40×16ピクセル、そして、縮小面参照ブロック171,172の両方に対応した縮小面マッチング処理範囲175は、52×24ピクセルとなっている。
前述したように、第1の実施の形態で行う基底面ブロックマッチングは、縮小面動きベクトルの値によって基底面マッチング処理範囲が決まるため、並列処理時にマッチング処理範囲を共有することができない。したがって、第2の実施の形態の場合において、SAD値の計算の並列化による高速化を図った場合、基底面マッチング処理にかかる処理時間、バス帯域が支配的になる。
これに対して、この第2の実施の形態によれば、上記のように、階層化したマッチング処理において、縮小面ブロックマッチングを行った後、基底面ブロックマッチングを行わずに、縮小面における補間処理をすることにより、処理の高速化およびバス帯域の削減を実現することができる。
[第3の実施の形態]
第2の実施の形態で求められる縮小面動きベクトルは、第1の実施の形態で求められた縮小面動きベクトルよりも、高精度の動きベクトルとなっている。そこで、この高精度縮小面動きベクトルを用いて、基底面におけるサーチ範囲を定めることにより、第1の実施の形態の場合よりも、より狭いサーチ範囲を設定することができる。したがって、基底面でのブロックマッチング処理回数を、第1の実施の形態の場合よりも、少なくすることが可能である。この第3の実施の形態は、このことを利用した実施の形態である。
図36および図37に、この第3の実施の形態を、上述した第1の実施の形態で説明した撮像装置の場合における動き検出・動き補償部16に適用した場合のブロックマッチングおよび動きベクトル検出処理の一例のフローチャートを示す。
はじめに、動き検出・動き補償部16において、ターゲットブロックバッファ部161から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む(図36のステップS131)。次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、縮小面最小SAD値の初期値を設定する(ステップS132)。この縮小面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、縮小面サーチ範囲を設定すると共に、設定した縮小サーチ範囲において、縮小面参照ベクトル(Vx/n,Vy/n:1/nは縮小倍率)を設定して、SAD値を計算する縮小面参照ブロック位置を設定する(ステップS133)。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS134)、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面SAD値を求め、求めた縮小面SAD値を動きベクトル算出部164に送出する(ステップS135)。
動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された縮小面SAD値Sinと、SAD値保持部1643に保持されている縮小面最小SAD値Sminとを比較して、算出された縮小面SAD値Sinが、それまで保持されている縮小面最小SAD値Sminよりも小さいか否か判別する(ステップS136)。
このステップS136で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さいと判別したときには、ステップS137に進み、SAD値保持部1643に保持される縮小面最小SAD値Sminおよびその位置情報の更新がなされる。
すなわち、SAD値比較部1642は、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された縮小面SAD値Sinおよびその位置情報(参照ベクトル)を、新たな縮小面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき縮小面最小SAD値Sminおよびその位置情報を、受け取った新たな縮小面SAD値Sinおよびその位置情報に更新する。
ステップS137の後には、ステップS138に進む。また、ステップS136で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより大きいと判別したときには、ステップS137の保持情報の更新処理は行わずにステップS138に進む。
ステップS138では、マッチング処理部163は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップS133に戻り、前述したステップS133以降の処理を繰り返す。
また、マッチング処理部163は、ステップS138で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置(縮小面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの縮小面最小SAD値Sminの位置情報(縮小面動きベクトル)を受け取り、受け取った縮小面動きベクトルを、縮小倍率の逆数倍、すなわち、n倍したベクトルが、基底面ターゲットフレームにおいて指し示す位置座標を中心とした位置に基底面ターゲットブロックを設定するとともに、前記n倍したベクトルが指し示す位置座標を中心とした比較的狭い範囲として、基底面サーチ範囲を、基底面ターゲットフレームに設定し(ステップS139)、ターゲットブロックバッファ部161から、基底面ターゲットブロックの画素データを読み込む(ステップS140)。
そして、次に、動きベクトル算出部164のSAD値保持部1643の最小SAD値Sminの初期値として、基底面最小SAD値の初期値を設定する(図37のステップS141)。この基底面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。
次に、マッチング処理部163では、ステップS139で設定した基底面縮小サーチ範囲において、基底面参照ベクトル(Vx,Vy)を設定して、SAD値を計算する基底面参照ブロック位置を設定する(ステップS142)。そして、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込み(ステップS143)、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、基底面SAD値を求め、求めた基底面SAD値を動きベクトル算出部164に送出する(ステップS144)。
動きベクトル算出部164では、SAD値比較部1642が、マッチング処理部163で算出された基底面SAD値Sinと、SAD値保持部1643に保持されている基底面最小SAD値Sminとを比較して、算出された基底面SAD値Sinが、それまで保持されている基底面最小SAD値Sminよりも小さいか否か判別する(ステップS145)。
このステップS145で、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さいと判別したときには、ステップS146に進み、SAD値保持部1643に保持される基底面最小SAD値Sminおよびその位置情報の更新がなされる。
すなわち、SAD値比較部1642は、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さい旨の比較結果の情報DETをSAD値書き込み部1641に送る。すると、SAD値書き込み部1641は、当該算出された基底面SAD値Sinおよびその位置情報(参照ベクトル)を、新たな基底面最小SAD値Sminの情報としてSAD値保持部1643に送る。SAD値保持部1643は、保持すべき基底面最小SAD値Sminおよびその位置情報を、受け取った新たな基底面SAD値Sinおよびその位置情報に更新する。
ステップS146の後には、ステップS147に進む。また、ステップS145で、算出された基底面SAD値Sinが基底面最小SAD値Sminより大きいと判別したときには、ステップS146の保持情報の更新処理は行わずにステップS147に進む。
ステップS147では、マッチング処理部163は、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したか否か判別し、未だ、基底面サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップS142に戻り、前述したステップS142以降の処理を繰り返す。
また、マッチング処理部163は、ステップS147で、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したと判別したときには、SAD値保持部1643からの基底面最小SAD値Sminの位置情報(基底面動きベクトル)を受け取り、その近傍4点の位置の基底面参照ブロックについての基底面SAD値の再算出を行い、再算出した近傍基底面SAD値をSAD値書き込み部1641を通じてSAD値保持部1643に供給し、保持させるようにする(ステップS148)。
次に、動きベクトル算出部164では、X方向(水平方向)近傍値抽出部1644およびY方向(垂直方向)近傍値抽出部1645が、SAD値保持部1643に保持された、前記検出した最小の基底面SAD値Sminとその近傍基底面SAD値Sx1、Sx2、Sy1、Sy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部1646に送る。これを受けた二次曲線近似補間処理部1646は、二次曲線による補間を、X方向およびY方向の2回行い、前述したようにして、サブピクセル精度の高精度の基底面動きベクトルを算出する(ステップS149)。以上で、1枚の参照フレームについてのこの例のブロックマッチング処理を終了する。
なお、最終的に求める動きベクトルが、基底面参照フレームのピクセル精度でよい場合には、図37のステップS147で、基底面サーチ範囲の全ての基底面参照ブロックの位置(基底面参照ベクトル)でマッチング処理を終了したと判別したときには、補間処理を行わずに、SAD値保持部1643からの基底面最小SAD値Sminの位置情報(基底面動きベクトル)を受け取り、当該基底面動きベクトルを、出力するようにしてもよい。
[第4の実施の形態]
テレビや監視カメラなどの分野で、連続して撮影された画像を用いて、パン、チルト動作や、手ブレなどの画面全体の動きを、1画面全体についての動きを表わすグローバル動きベクトルとして検出し、動き補償する技術がある。
例えば、図38(A)示すターゲット画像100に対して、参照画像101が図38(B)に示すようなものであるとき、グローバル動きベクトル170は、図38(A)の矢印で示すようなものとすることができる。このグローバル動きベクトルは、図38(C)に示すような、ターゲットブロックごとのローカルな動きベクトル171の集合であるとすることができる。
グローバル動きベクトルを求める方法として、ブロックマッチング等の手法によりローカル動きベクトルを求め、複数のローカル動きベクトルから、グローバル動きベクトルを算出するものがある。しかし、この方法を行うためには、大規模なマッチング回路を実装し、処理時間、バス帯域も消費してしまい、コスト対効果が悪い。
これに対して、上述した第1〜第3の実施の形態では、動き検出・動き補償部16において、ターゲットブロック毎に、求められた複数個の動きベクトルを用いて、グローバル動きベクトルの算出ができる。この例の場合、動き検出・動き補償部16で検出されたブロック毎動きベクトルは、図示を省略したメモリに一度格納される。そして、このメモリに一度格納されたブロック毎動きベクトルを、CPU1は読み出して、グローバル動きベクトルを計算するようにしている。
以上のように、この第4の実施の形態では、画像重ね合わせ部17の動き検出回路と、グローバル動きベクトル算出手段の前処理部(ブロック毎動きベクトル検出回路)を共有化することができ、システム全体として、ハードウエア規模を小さくすることが可能である。
また、高画素数、高フレームレートなどシステム負荷が高い状況であっても、第1〜第3の実施の形態で算出された動きベクトルを使って、画像重ね合わせによるノイズ低減処理を行いながら、グローバル動きベクトルを算出することが可能である。
[実施の形態の効果]
上述した実施の形態のように、階層化ブロックマッチングと補間処理とを用いることで、ピクセル単位のブロックマッチングによって、サブピクセル精度の動きベクトル検出結果が得ることができ、ハードウエア規模と処理速度を削減することができる。
また、上述の実施の形態で説明したようなハードウエア構成を取りことにより、SADテーブルを削減することができ、ハードウエア規模をさらに削減することができる。また、MPEGなどのコーデックや、手ぶれ補正、画像のノイズ低減など、動き検出が必要となる画像処理のすべてに適用できる。
さらに、補間処理と階層化マッチング方式を組み合わせることで、広いサーチ範囲で、サブピクセル精度の動きベクトル検出を行うことが可能になる。小規模なハードウエア構成で動き検出、動き補償行うことができるため、ハイビジョン動画や、高画素の静止画などの、高解像度画像の動き検出を、モバイル製品へ展開することも可能となる。
また、コスト対効果の点から、処理時間、バス帯域を優先して、縮小面でのブロックマッチングと、縮小面での補間処理により、高速でピクセル精度の動きベクトル検出を行う構成を取ることもできる。
[その他の実施の形態および変形例]
上述の実施の形態において、動きベクトル算出部の第2の例においては、サーチ範囲におけるサーチ方向を水平ライン方向に取り、例えばサーチ範囲の左上から順に参照ブロックを移動させるようにしてサーチを行うようにすると共に、SADテーブルの1ライン分のメモリを設けるようにしたが、サーチ範囲におけるサーチ方向を垂直方向に取り、例えばサーチ範囲の左上端から垂直方向にサーチを開始し、垂直方向の1列分のサーチが終わった後、水平方向に、参照ブロックの位置を1つ分、例えば1画素分右の垂直方向の列に移動し、その列の上端から垂直方向にサーチする、という手順を繰り返すサーチ方法を採用するようにしても良い。このようにサーチ範囲の左上端から順に、垂直方向に参照ブロックを移動させるようにしてサーチを行うようにする場合には、SADテーブルの垂直方向の一列分のメモリを設けるようにすれば良い。
ここで、水平方向にサーチ方向を取るか、垂直方向にサーチ方向を取るかは、マッチング処理部、動きベクトル算出部の回路規模を考慮して、より回路規模が小さくなる方を採用するのが好ましい。
なお、前述もしたように、参照ブロックの移動は、1画素毎、また、1ライン毎ではなく、複数画素毎、また、複数ライン毎でもよい。したがって、前者の場合の水平方向の1ライン分メモリは、水平方向における参照ブロックの移動位置分だけでよく、また、後者の場合の垂直方向の一列分のメモリは、垂直方向における参照ブロックの移動位置分だけでよい。つまり、参照ブロックの移動を1画素毎、また、1ライン毎に行う場合には、1ライン分メモリは、1ラインの画素数分の容量のメモリが必要であり、また、垂直方向の一列分メモリは、ライン数分の容量のメモリが必要である。しかし、複数画素毎、また、複数ライン毎に、参照ブロックを移動させる場合には、1画素毎、また、1ライン毎に参照ブロックを移動させる場合よりも、1ライン分メモリおよび1列分メモリの容量は少なくなる。
また、補間処理の方法は、上述した二次曲線近似補間処理に限られるものではなく、前述もしたように、3次曲線や、より高次の曲線を用いた補間処理を行っても良い。
また、上述の実施の形態は、この発明による画像処理装置を撮像装置に適用した場合であるが、この発明は、撮像装置に限られるわけではなく、画像フレーム間の動きを検出する場合に、ブロックマッチングを使用する場合の全てに適用可能である。
また、上述の実施の形態は、画像の重ね合わせによるノイズ低減処理のために、ブロック単位に動きベクトルを検出する場合に、この発明を適用した場合であるが、撮像時の手ぶれによる動きベクトルを検出するためにも用いることができることは言うまでもない。手ぶれによる動きベクトルは、例えば、複数のブロック動きベクトルの平均値として求めることができる。
この発明による画像処理装置の一実施の形態である撮像装置の構成例を示すブロック図である。 実施の形態の図1の撮像装置における撮像画像のノイズ低減処理を説明するための図である。 実施の形態の図1の撮像装置におけるブロックマッチング処理の説明のために用いる図である。 実施の形態の図1の撮像装置における撮像画像のノイズ低減処理を説明するための図である。 実施の形態の図1の撮像装置における撮像画像のノイズ低減処理を説明するための図である。 この発明の第1の実施の形態の画像処理方法を説明するために用いる図である。 この発明の第1の実施の形態の画像処理方法を説明するために用いる図である。 この発明の第1の実施の形態の画像処理方法を説明するために用いる図である。 実施の形態の図1の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。 実施の形態の図1の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。 実施の形態の図1の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。 実施の形態の図1の撮像装置における動き検出・動き補償部における処理による効果を説明するための図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の構成例を示すブロック図である。 この発明による画像処理方法の第1の実施の形態を説明するためのフローチャートを示す図である。 この発明による画像処理方法の第1の実施の形態を説明するためのフローチャートを示す図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第1の例の構成を示すブロック図である。 図16の第1の例の処理動作を説明するためのフローチャートを示す図である。 図16の第1の例の処理動作を説明するためのフローチャートを示す図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第2の例を説明するために用いる図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第2の例を説明するために用いる図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第2の例の構成例を示すブロック図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第2の例における処理動作を説明するためのフローチャートを示す図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第2の例における処理動作を説明するためのフローチャートの一部を示す図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第2の例における処理動作を説明するためのフローチャートの一部を示す図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第3の例の構成例を示すブロック図である。 実施の形態の図1の撮像装置における動き検出・動き補償部の動きベクトル算出部の第3の例における処理動作を説明するためのフローチャートを示す図である。 この発明の第1の実施の形態の画像処理方法を説明するためのフローチャートの一部を示す図である。 この発明の第1の実施の形態の画像処理方法を説明するためのフローチャートの一部を示す図である。 この発明の第1の実施の形態の画像処理方法における具体例を説明するために用いる図である。 この発明の第1の実施の形態の画像処理方法における具体例を説明するために用いる図である。 この発明の第1の実施の形態の画像処理方法の効果を説明するために用いる図である。 この発明の第2の実施の形態の画像処理方法の説明のために用いる図である。 この発明の第2の実施の形態の画像処理方法の説明のために用いる図である。 この発明の第2の実施の形態の画像処理方法を説明するためのフローチャートを示す図である。 この発明の第2の実施の形態の画像処理方法の説明のために用いる図である。 この発明の第3の実施の形態の画像処理方法を説明するためのフローチャートの一部を示す図である。ブロックマッチング処理を説明するために用いる図である。 この発明の第3の実施の形態の画像処理方法を説明するためのフローチャートの一部を示す図である。ブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の第5の実施の形態を説明するために用いる図である。 ブロックマッチング処理を説明するために用いる図である。 ブロックマッチング処理を説明するために用いる図である。 ブロックマッチング処理を説明するために用いる図である。 ブロックマッチング処理を説明するために用いる図である。 ブロックマッチング処理を説明するために用いる図である。 ブロックマッチング処理を説明するために用いる図である。
符号の説明
16…動き検出・動き補償部、17…画像重ね合わせ部、100…ターゲット画像(ターゲットフレーム)、101…参照画像(参照フレーム)、102…ターゲットブロック、104…動きベクトル106…サーチ範囲、107…参照ベクトル、108…参照ブロック、163…マッチング処理部、164…動きベクトル算出部、1643…SAD値保持部、1646…二次曲線近似補間処理部

Claims (17)

  1. ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれに基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置において、
    前記ターゲット画面および前記参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、前記ターゲットブロックおよび前記参照ブロックを前記所定の縮小率で縮小した縮小面ターゲットブロックおよび縮小面参照ブロックを設定する手段と、
    前記縮小面参照ブロック内の複数の画素の画素値と、前記縮小面ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記複数個の縮小面参照ブロックのそれぞれと前記縮小面ターゲットブロックとの間の第1の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関縮小面参照ブロックの位置を検出し、前記最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれに対応する縮小面動きベクトルを算出する縮小面動きベクトル算出手段と、
    縮小前の基底参照画面において、前記縮小面動きベクトル算出手段で算出された前記縮小面動きベクトルを前記縮小率の逆数倍したベクトルが指し示す画素の周辺にサーチ範囲を設定するサーチ範囲設定手段と、
    前記サーチ範囲設定手段で設定された前記サーチ範囲において、前記基底ターゲット画面に設定される基底面ターゲットブロック内の複数の画素の画素値と、前記縮小前の参照画面に設定される複数個の基底面参照ブロックのそれぞれ内で対応する位置の複数の画素の画素値とを用いて、前記複数個の基底面参照ブロックのそれぞれと前記基底面ターゲットブロックとの間の第2の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関基底面参照ブロックの位置を検出する最強相関基底面参照ブロック検出手段と、
    前記最強相関基底面参照ブロック検出手段で検出した前記最強相関基底面参照ブロックの前記第2の相関値と、前記最強相関基底面参照ブロックの近傍の複数個の近傍基底面参照ブロックの前記第2の相関値を用いて補間処理を行い、前記基底参照画面の画素ピッチよりも小さい精度で前記基底面ターゲットブロックとの相関が最も強い高精細最強相関基底面参照ブロックの位置を検出する補間処理手段と、
    前記補間処理手段で検出された前記高精細最強相関基底面参照ブロックの位置から、前記動きベクトルを検出する動きベクトル検出手段と、
    を備えることを特徴とする画像処理装置。
  2. 請求項1に記載の画像処理装置において、
    前記最強相関基底面参照ブロック検出手段は、
    前記基底面参照ブロックの位置を、前記サーチ範囲設定手段で設定された前記サーチ範囲において、画面の水平方向(または垂直方向)に順次に異なる位置に移動させ、前記サーチ範囲における水平方向(または垂直方向)の最後の位置に移動したら、垂直方向(または水平方向)の位置を一つずらし、再度、前記水平方向(または垂直方向)に順次に異なる位置に移動させるようにして、前記第2の相関値を算出するものであって、
    前記サーチ範囲の水平方向(または垂直方向)の前記基底面参照ブロックの数分の前記基底面参照ブロックであって、新たに前記第2の相関値を算出する前記基底面参照ブロックよりも前の位置の前記基底面参照ブロックのそれぞれについての前記第2の相関値および前記基底面参照ブロックのそれぞれ位置に関する情報を記憶する第1の記憶部を備えると共に、
    前記最強相関基底面参照ブロックについての前記最強相関値および前記最強相関基底面参照ブロックの位置に関する情報を保持すると共に、前記最強相関基底面参照ブロックの位置の近傍の複数個の近傍基底面参照ブロックについての前記第2の相関値およびそれぞれの位置に関する情報を保持する第2の記憶部を備え、
    新たに算出された前記基底面参照ブロックの前記基底面ターゲットブロックに対する新相関値と、前記第2の記憶部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記第2の記憶部の前記最強相関値およびその位置に関する情報を前記新相関値およびその位置に関する情報に更新し、
    前記最強相関値を前記新相関値に更新したときに、前記複数の近傍基底面参照ブロックのうち、前記第1の記憶部に記憶されている前記近傍基底面参照ブロックの相関値およびその位置に関する情報を、前記第2の記憶部の前記複数個の近傍基底面参照ブロックについての前記相関値およびそれぞれの位置に関する情報として更新すると共に、前記第1の記憶部に記憶されていない前記近傍基底面参照ブロックの前記相関値およびその位置に関する情報は、それぞれの位置の前記近傍基底面参照ブロックについての前記相関値を算出したときに、前記第2の記憶部に記憶し、
    前記補間処理手段は、前記第2の記憶部に記憶されている前記最強相関参照ブロックおよび前記複数個の近傍参照ブロックについて前記相関値およびそれぞれの位置に関する情報を用いて前記補間処理をする
    ことを特徴とする画像処理装置。
  3. 請求項1に記載の画像処理装置において、
    前記縮小面動きベクトル算出手段においては、前記複数個の縮小面参照ブロックと前記縮小面ターゲットブロックとの第1の相関値を順次に比較して、相関が強い方の前記第1の相関値と、当該相関が強い方の前記第1の相関値を呈する縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれに対応する縮小面参照ベクトルの情報とを保持することにより、前記縮小面ターゲットブロックについての最強相関値を検出し、当該最強相関値を呈する前記縮小面参照ブロックに対応する前記縮小面参照ベクトルを、前記縮小面動きベクトルとして算出する
    ことを特徴とする画像処理装置。
  4. 請求項1に記載の画像処理装置において、
    前記最強相関基底面参照ブロック検出手段は、
    前記最強相関基底面参照ブロックについての前記最強相関値およびその位置に関する情報を保持する保持部を備え、
    新たに算出された前記基底面参照ブロックの前記基底面ターゲットブロックに対する新相関値と、前記保持部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記保持部の前記最強相関値およびその位置に関する情報を、前記新相関値およびその位置に関する情報に更新し、
    前記補間処理手段は、
    少なくとも、前記保持部に保持されている前記最強相関基底面参照ブロックの近傍の複数個の前記複数個の近傍基底面参照ブロックについて、前記第2の相関値を再算出し、
    前記再算出した前記複数個の近傍基底面参照ブロックについての前記第2の相関値および前記最強相関値を用いて前記補間処理を行う
    ことを特徴とする画像処理装置。
  5. 請求項4に記載の画像処理装置において、
    前記縮小面動きベクトル算出手段においては、前記複数個の縮小面参照ブロックと前記縮小面ターゲットブロックとの第1の相関値を順次に比較して、相関が強い方の前記第1の相関値と、当該相関が強い方の前記第1の相関値を呈する縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれに対応する縮小面参照ベクトルの情報とを保持することにより、前記縮小面ターゲットブロックについての最強相関値を検出し、当該最強相関値を呈する前記縮小面参照ブロックに対応する前記縮小面参照ベクトルを、前記縮小面動きベクトルとして算出する
    ことを特徴とする画像処理装置。
  6. 請求項1に記載の画像処理装置において、
    前記ターゲット画面を複数個に分割して、前記ターゲットブロックを複数個設定し、
    前記複数個のターゲットブロックのそれぞれについて、前記動きベクトルを検出し、検出した前記複数個のターゲットブロックについての動きベクトルをそれぞれ用いて、複数枚の画像を重ね合わせることで、低ノイズの画像情報を得る
    ことを特徴とする画像処理装置。
  7. ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれ量に基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置において、
    前記ターゲット画面および前記参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、前記ターゲットブロックおよび前記参照ブロックを前記所定の縮小率で縮小した縮小面ターゲットブロックおよび縮小面参照ブロックを設定する手段と、
    前記縮小面参照ブロック内の複数の画素の画素値と、前記縮小面ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記複数個の縮小面参照ブロックのそれぞれと前記縮小面ターゲットブロックとの間の第1の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関縮小面参照ブロックの位置を検出する最強相関縮小面参照ブロック検出手段と、
    前記最強相関縮小面参照ブロック検出手段で検出された前記最強相関縮小面参照ブロックおよび当該最強相関縮小面参照ブロックの近傍位置の複数個の近傍縮小面参照ブロックについての前記第1の相関値を用いて、前記縮小参照画面における補間処理を行い、前記縮小参照画面の画素ピッチよりも小さい高精度で、前記縮小面ターゲットブロックとの相関が最も強い高精細最強相関縮小面参照ブロックの位置を検出し、前記高精細最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれとして縮小面動きベクトルを算出する縮小面補間処理手段と、
    前記縮小前の基底参照画面において、前記縮小面補間処理手段で算出された前記縮小面動きベクトルを前記縮小率の逆数倍したベクトルが指し示す画素の周辺にサーチ範囲を設定するサーチ範囲設定手段と、
    前記サーチ範囲設定手段で設定された前記サーチ範囲において、前記基底ターゲット画面に設定される基底面ターゲットブロック内の複数の画素の画素値と、前記縮小前の参照画面に設定される複数個の基底面参照ブロックのそれぞれ内で対応する位置の複数の画素の画素値とを用いて、前記複数個の基底面参照ブロックのそれぞれと前記基底面ターゲットブロックとの間の第2の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関基底面参照ブロックの位置を検出し、前記最強相関基底面参照ブロックの前記基底面ターゲットブロックからの位置ずれとして基底面動きベクトルを算出する基底面動きベクトル検出手段と、
    を備えることを特徴とする画像処理装置。
  8. 請求項7に記載の画像処理装置において、
    前記最強相関縮小面参照ブロック検出手段は、
    前記縮小面参照ブロックの位置を、設定された前記サーチ範囲において、画面の水平方向(または垂直方向)に順次に異なる位置に移動させ、前記サーチ範囲における水平方向(または垂直方向)の最後の位置に移動したら、垂直方向(または水平方向)の位置を一つずらし、再度、前記水平方向(または垂直方向)に順次に異なる位置に移動させるようにして、前記第1の相関値を算出するものであって、
    前記サーチ範囲の水平方向(または垂直方向)の前記縮小面参照ブロックの数分の前記第1の相関値および前記縮小面参照ブロックであって、新たに相関値を算出する前記縮小面参照ブロックよりも前の位置の前記縮小面参照ブロックのそれぞれについての相関値および前記縮小面参照ブロックのそれぞれ位置に関する情報を記憶する第1の記憶部を備えると共に、
    前記最強相関縮小面参照ブロックについての前記最強相関値および前記最強相関縮小面参照ブロックの位置に関する情報を保持すると共に、前記最強相関縮小面参照ブロックの位置の近傍の複数個の近傍縮小面参照ブロックについての前記第1の相関値およびそれぞれの位置に関する情報を保持する第2の記憶部を備え、
    新たに算出された前記縮小面参照ブロックの前記縮小面ターゲットブロックに対する新相関値と、前記第2の記憶部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記第2の記憶部の前記最強相関値およびその位置に関する情報を前記新相関値およびその位置に関する情報に更新し、
    前記最強相関値を前記新相関値に更新したときに、前記複数の近傍縮小面参照ブロックのうち、前記第1の記憶部に記憶されている前記近傍縮小面参照ブロックについての前記第1の相関値およびその位置に関する情報を、前記第2の記憶部の前記複数個の近傍基底面参照ブロックについての前記第1の相関値およびそれぞれの位置に関する情報として更新すると共に、前記第1の記憶部に記憶されていない前記近傍縮小面参照ブロックについての前記第1の相関値およびその位置に関する情報は、それぞれの位置の前記近傍縮小面参照ブロックについての前記第1の相関値を算出したときに、前記第2の記憶部に記憶し、
    前記縮小面補間処理手段は、前記第2の記憶部に記憶されている前記最強相関縮小面参照ブロックおよび前記複数個の近傍縮小面参照ブロックについて前記第1の相関値およびそれぞれの位置に関する情報を用いて前記補間処理をする
    ことを特徴とする画像処理装置。
  9. 請求項7に記載の画像処理装置において、
    前記最強相関縮小面参照ブロック検出手段は、
    前記最強相関縮小面参照ブロックについての前記最強相関値およびその位置に関する情報を保持する保持部を備え、
    新たに算出された前記縮小面参照ブロックの前記縮小面ターゲットブロックに対する新相関値と、前記保持部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記保持部の前記最強相関値およびその位置に関する情報を、前記新相関値およびその位置に関する情報に更新し、
    前記縮小面補間処理手段は、
    少なくとも、前記保持部に保持されている前記最強相関縮小面参照ブロックの近傍の複数個の前記複数個の近傍縮小面参照ブロックについて、前記第2の相関値を再算出し、
    前記再算出した前記複数個の近傍縮小面参照ブロックについての前記第2の相関値および前記最強相関値を用いて前記補間処理を行う
    ことを特徴とする画像処理装置。
  10. 請求項7に記載の画像処理装置において、
    前記基底面動きベクトル検出手段で検出された前記最強相関基底面参照ブロックについての前記第2の相関値と、前記最強相関基底面参照ブロックの位置の近傍の複数個の近傍基底面参照ブロックについての前記第2の相関値を用いて補間処理を行い、前記基底参照画面の画素ピッチよりも小さい精度で前記基底面ターゲットブロックとの相関が最も強い高精細最強相関基底面参照ブロックの位置を検出する基底面補間処理手段と、
    前記基底面補間処理手段で検出された、前記高精細最強相関基底面参照ブロックの位置から、高精細動きベクトルを検出する高精細動きベクトル検出手段と、
    を備えることを特徴とする画像処理装置。
  11. 請求項7に記載の画像処理装置において、
    前記ターゲット画面を複数個に分割して、前記ターゲットブロックを複数個設定し、
    前記複数個のターゲットブロックのそれぞれについて、前記動きベクトルを検出し、検出した前記複数個のターゲットブロックについての動きベクトルをそれぞれ用いて、複数枚の画像を重ね合わせることで、低ノイズの画像情報を得る
    ことを特徴とする画像処理装置。
  12. ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれ量に基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置において、
    前記ターゲット画面および前記参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、前記ターゲットブロックおよび前記参照ブロックを前記所定の縮小率で縮小した縮小面ターゲットブロックおよび縮小面参照ブロックを設定する手段と、
    前記縮小面参照ブロック内の複数の画素の画素値と、前記縮小面ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記複数個の縮小面参照ブロックのそれぞれと前記縮小面ターゲットブロックとの間の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関縮小面参照ブロックの位置を検出する最強相関縮小面参照ブロック検出手段と、
    前記最強相関縮小面参照ブロック検出手段で検出された前記最強相関縮小面参照ブロックおよび当該最強相関縮小面参照ブロックの近傍位置の複数個の近傍縮小面参照ブロックについての前記相関値を用いて、前記縮小参照画面における補間処理を行い、前記縮小参照画面の画素ピッチよりも小さい高精度で、前記縮小面ターゲットブロックとの相関が最も強い高精細最強相関縮小面参照ブロックの位置を検出し、前記高精細最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれとして縮小面動きベクトルを算出する縮小面補間処理手段と、
    前記縮小面補間処理手段で算出された前記縮小面動きベクトルを前記縮小率の逆数倍したベクトルを、縮小前のターゲットブロックに対する前記動きベクトルとして算出する動きベクトル算出手段と、
    を備えることを特徴とする画像処理装置。
  13. 請求項12に記載の画像処理装置において、
    前記最強相関縮小面参照ブロック検出手段は、
    前記縮小面参照ブロックの位置を、設定された前記サーチ範囲において、画面の水平方向(または垂直方向)に順次に異なる位置に移動させ、前記サーチ範囲における水平方向(または垂直方向)の最後の位置に移動したら、垂直方向(または水平方向)の位置を一つずらし、再度、前記水平方向(または垂直方向)に順次に異なる位置に移動させるようにして、前記第1の相関値を算出するものであって、
    前記サーチ範囲の水平方向(または垂直方向)の前記縮小面参照ブロックの数分の前記第1の相関値および前記縮小面参照ブロックであって、新たに相関値を算出する前記縮小面参照ブロックよりも前の位置の前記縮小面参照ブロックのそれぞれについての相関値および前記縮小面参照ブロックのそれぞれ位置に関する情報を記憶する第1の記憶部を備えると共に、
    前記最強相関縮小面参照ブロックについての前記最強相関値および前記最強相関縮小面参照ブロックの位置に関する情報を保持すると共に、前記最強相関縮小面参照ブロックの位置の近傍の複数個の近傍縮小面参照ブロックについての前記第1の相関値およびそれぞれの位置に関する情報を保持する第2の記憶部を備え、
    新たに算出された前記縮小面参照ブロックの前記縮小面ターゲットブロックに対する新相関値と、前記第2の記憶部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記第2の記憶部の前記最強相関値およびその位置に関する情報を前記新相関値およびその位置に関する情報に更新し、
    前記最強相関値を前記新相関値に更新したときに、前記複数の近傍縮小面参照ブロックのうち、前記第1の記憶部に記憶されている前記近傍縮小面参照ブロックについての前記第1の相関値およびその位置に関する情報を、前記第2の記憶部の前記複数個の近傍基底面参照ブロックについての前記第1の相関値およびそれぞれの位置に関する情報として更新すると共に、前記第1の記憶部に記憶されていない前記近傍縮小面参照ブロックについての前記第1の相関値およびその位置に関する情報は、それぞれの位置の前記近傍縮小面参照ブロックについての前記第1の相関値を算出したときに、前記第2の記憶部に記憶し、
    前記縮小面補間処理手段は、前記第2の記憶部に記憶されている前記最強相関縮小面参照ブロックおよび前記複数個の近傍縮小面参照ブロックについて前記第1の相関値およびそれぞれの位置に関する情報を用いて前記補間処理をする
    ことを特徴とする画像処理装置。
  14. 請求項13に記載の画像処理装置において、
    前記最強相関縮小面参照ブロック検出手段は、
    前記最強相関縮小面参照ブロックについての前記最強相関値およびその位置に関する情報を保持する保持部を備え、
    新たに算出された前記縮小面参照ブロックの前記縮小面ターゲットブロックに対する新相関値と、前記保持部の前記最強相関値とを比較して、前記新相関値の方が相関が強いと判別されたときに、前記保持部の前記最強相関値およびその位置に関する情報を、前記新相関値およびその位置に関する情報に更新し、
    前記縮小面補間処理手段は、
    少なくとも、前記保持部に保持されている前記最強相関縮小面参照ブロックの近傍の複数個の前記複数個の近傍縮小面参照ブロックについて、前記第2の相関値を再算出し、
    前記再算出した前記複数個の近傍縮小面参照ブロックについての前記第2の相関値および前記最強相関値を用いて前記補間処理を行う
    ことを特徴とする画像処理装置。
  15. ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれに基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置による画像処理方法において、
    前記画像処理装置の縮小ブロック設定手段が、前記ターゲット画面および前記参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、前記ターゲットブロックおよび前記参照ブロックを前記所定の縮小率で縮小した縮小面ターゲットブロックおよび縮小面参照ブロックを設定する工程と、
    前記画像処理装置の縮小面動きベクトル算出手段が、前記縮小面参照ブロック内の複数の画素の画素値と、前記縮小面ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記複数個の縮小面参照ブロックのそれぞれと前記縮小面ターゲットブロックとの間の第1の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関縮小面参照ブロックの位置を検出し、前記最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれに対応する縮小面動きベクトルを算出する縮小面動きベクトル算出工程と、
    前記画像処理装置のサーチ範囲設定手段が、縮小前の基底参照画面において、前記縮小面動きベクトル算出手段で算出された前記縮小面動きベクトルを前記縮小率の逆数倍したベクトルが指し示す画素の周辺にサーチ範囲を設定するサーチ範囲設定工程と、
    前記画像処理装置の最強相関基底面参照ブロック検出手段が、前記サーチ範囲設定工程で設定された前記サーチ範囲において、前記基底ターゲット画面に設定される基底面ターゲットブロック内の複数の画素の画素値と、前記縮小前の参照画面に設定される複数個の基底面参照ブロックのそれぞれ内で対応する位置の複数の画素の画素値とを用いて、前記複数個の基底面参照ブロックのそれぞれと前記基底面ターゲットブロックとの間の第2の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関基底面参照ブロックの位置を検出する最強相関基底面参照ブロック検出工程と、
    前記画像処理装置の補間処理手段が、前記最強相関基底面参照ブロック検出工程で検出した前記最強相関基底面参照ブロックの前記第2の相関値と、前記最強相関基底面参照ブロックの近傍の複数個の近傍基底面参照ブロックの前記第2の相関値を用いて補間処理を行い、前記基底参照画面の画素ピッチよりも小さい精度で前記基底面ターゲットブロックとの相関が最も強い高精細最強相関基底面参照ブロックの位置を検出する補間処理工程と、
    前記画像処理装置の動きベクトル検出手段が、前記補間処理工程で検出された前記高精細最強相関基底面参照ブロックの位置から、前記動きベクトルを検出する動きベクトル検出工程と、
    を備えることを特徴とする画像処理方法。
  16. ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれ量に基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置による画像処理方法において、
    前記画像処理装置の縮小ブロック設定手段が、前記ターゲット画面および前記参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、前記ターゲットブロックおよび前記参照ブロックを前記所定の縮小率で縮小した縮小面ターゲットブロックおよび縮小面参照ブロックを設定する工程と、
    前記画像処理装置の最強相関縮小面参照ブロック検出手段が、前記縮小面参照ブロック内の複数の画素の画素値と、前記縮小面ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記複数個の縮小面参照ブロックのそれぞれと前記縮小面ターゲットブロックとの間の第1の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関縮小面参照ブロックの位置を検出する最強相関縮小面参照ブロック検出工程と、
    前記画像処理装置の縮小面補間処理手段が、前記最強相関縮小面参照ブロック検出工程で検出された前記最強相関縮小面参照ブロックおよび当該最強相関縮小面参照ブロックの近傍位置の複数個の近傍縮小面参照ブロックについての前記第1の相関値を用いて、前記縮小参照画面における補間処理を行い、前記縮小参照画面の画素ピッチよりも小さい高精度で、前記縮小面ターゲットブロックとの相関が最も強い高精細最強相関縮小面参照ブロックの位置を検出し、前記高精細最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれとして縮小面動きベクトルを算出する縮小面補間処理工程と、
    前記画像処理装置のサーチ範囲設定手段が、前記縮小前の基底参照画面において、前記縮小面補間処理手段で算出された前記縮小面動きベクトルを前記縮小率の逆数倍したベクトルが指し示す画素の周辺にサーチ範囲を設定するサーチ範囲設定工程と、
    前記画像処理装置の基底面動きベクトル検出手段が、前記サーチ範囲設定工程で設定された前記サーチ範囲において、前記基底ターゲット画面に設定される基底面ターゲットブロック内の複数の画素の画素値と、前記縮小前の参照画面に設定される複数個の基底面参照ブロックのそれぞれ内で対応する位置の複数の画素の画素値とを用いて、前記複数個の基底面参照ブロックのそれぞれと前記基底面ターゲットブロックとの間の第2の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関基底面参照ブロックの位置を検出し、前記最強相関基底面参照ブロックの前記基底面ターゲットブロックからの位置ずれとして基底面動きベクトルを算出する基底面動きベクトル検出工程と、
    を備えることを特徴とする画像処理方法。
  17. ターゲット画面中において設定された複数の画素からなる所定の大きさのターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記複数個の参照ブロックのうちで、前記ターゲットブロックと相関が最も強い参照ブロックの、前記ターゲットブロックに対する画面上の位置ずれ量に基づいて、前記ターゲットブロックについての動きベクトルを検出する画像処理装置による画像処理方法において、
    前記画像処理装置の縮小ブロック設定手段が、前記ターゲット画面および前記参照画面のそれぞれを所定の縮小率で縮小した縮小ターゲット画面および縮小参照画面において、前記ターゲットブロックおよび前記参照ブロックを前記所定の縮小率で縮小した縮小面ターゲットブロックおよび縮小面参照ブロックを設定する工程と、
    前記画像処理装置の最強相関縮小面参照ブロック検出手段が、前記縮小面参照ブロック内の複数の画素の画素値と、前記縮小面ターゲットブロック内で対応する位置の複数の画素の画素値とを用いて、前記複数個の縮小面参照ブロックのそれぞれと前記縮小面ターゲットブロックとの間の第1の相関値を算出し、前記ターゲットブロックとの相関が最も強い最強相関縮小面参照ブロックの位置を検出する最強相関縮小面参照ブロック検出工程と、
    前記画像処理装置の縮小面補間処理手段が、前記最強相関縮小面参照ブロック検出工程で検出された前記最強相関縮小面参照ブロックおよび当該最強相関縮小面参照ブロックの近傍位置の複数個の近傍縮小面参照ブロックについての前記第1の相関値を用いて、前記縮小参照画面における補間処理を行い、前記縮小参照画面の画素ピッチよりも小さい高精度で、前記縮小面ターゲットブロックとの相関が最も強い高精細最強相関縮小面参照ブロックの位置を検出し、前記高精細最強相関縮小面参照ブロックの前記縮小面ターゲットブロックからの位置ずれとして縮小面動きベクトルを算出する縮小面補間処理工程と、
    前記画像処理装置の動きベクトル算出手段が、前記縮小面補間処理手段で算出された前記縮小面動きベクトルを前記縮小率の逆数倍したベクトルを、縮小前のターゲットブロックに対する前記動きベクトルとして算出する動きベクトル算出工程と、
    を備えることを特徴とする画像処理方法。
JP2007220972A 2007-08-28 2007-08-28 画像処理装置および画像処理方法 Pending JP2009055410A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007220972A JP2009055410A (ja) 2007-08-28 2007-08-28 画像処理装置および画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007220972A JP2009055410A (ja) 2007-08-28 2007-08-28 画像処理装置および画像処理方法

Publications (1)

Publication Number Publication Date
JP2009055410A true JP2009055410A (ja) 2009-03-12

Family

ID=40506056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007220972A Pending JP2009055410A (ja) 2007-08-28 2007-08-28 画像処理装置および画像処理方法

Country Status (1)

Country Link
JP (1) JP2009055410A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010288110A (ja) * 2009-06-12 2010-12-24 Sony Corp 画像処理装置および画像処理方法
JP2012019465A (ja) * 2010-07-09 2012-01-26 Canon Inc 画像処理装置および画像処理方法
JP2012160886A (ja) * 2011-01-31 2012-08-23 Canon Inc 撮像装置、その制御方法及びプログラム
JP2014183408A (ja) * 2013-03-18 2014-09-29 Fujitsu Ltd 動画処理装置、動画処理方法および動画処理プログラム
JP2015012548A (ja) * 2013-07-01 2015-01-19 富士通株式会社 画像処理装置、補正方法および補正プログラム
JP2015231124A (ja) * 2014-06-04 2015-12-21 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2016010014A (ja) * 2014-06-24 2016-01-18 キヤノン株式会社 撮像装置及びその制御方法、プログラム、記憶媒体
US9716831B2 (en) 2010-07-05 2017-07-25 Sony Corporation Imaging control apparatus, imaging control method, and program
US10785484B2 (en) 2017-10-02 2020-09-22 Fujitsu Limited Motion vector calculation method, information processing apparatus, recording medium recording motion vector calculation program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06233282A (ja) * 1993-02-05 1994-08-19 Nippon Telegr & Teleph Corp <Ntt> 動き補償予測方法
JPH06319136A (ja) * 1993-03-05 1994-11-15 Matsushita Electric Ind Co Ltd マルチフレーム動き推定、異常値排除及び軌道補正を用いたノイズ低減システム
JPH09182080A (ja) * 1995-12-22 1997-07-11 Sony Corp 動きベクトル検出方法および動きベクトル検出装置
JP2003087795A (ja) * 2001-09-10 2003-03-20 Matsushita Electric Ind Co Ltd 映像符号化方法および動き検出方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06233282A (ja) * 1993-02-05 1994-08-19 Nippon Telegr & Teleph Corp <Ntt> 動き補償予測方法
JPH06319136A (ja) * 1993-03-05 1994-11-15 Matsushita Electric Ind Co Ltd マルチフレーム動き推定、異常値排除及び軌道補正を用いたノイズ低減システム
JPH09182080A (ja) * 1995-12-22 1997-07-11 Sony Corp 動きベクトル検出方法および動きベクトル検出装置
JP2003087795A (ja) * 2001-09-10 2003-03-20 Matsushita Electric Ind Co Ltd 映像符号化方法および動き検出方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8542741B2 (en) 2009-06-12 2013-09-24 Sony Corporation Image processing device and image processing method
JP2010288110A (ja) * 2009-06-12 2010-12-24 Sony Corp 画像処理装置および画像処理方法
US9716831B2 (en) 2010-07-05 2017-07-25 Sony Corporation Imaging control apparatus, imaging control method, and program
JP2012019465A (ja) * 2010-07-09 2012-01-26 Canon Inc 画像処理装置および画像処理方法
US8761522B2 (en) 2010-07-09 2014-06-24 Canon Kabushiki Kaisha Image processing apparatus and image processing method
JP2012160886A (ja) * 2011-01-31 2012-08-23 Canon Inc 撮像装置、その制御方法及びプログラム
US9185271B2 (en) 2011-01-31 2015-11-10 Canon Kabushiki Kaisha Imaging device detecting motion vector
US9471992B2 (en) 2013-03-18 2016-10-18 Fujitsu Limited Moving image processing apparatus, moving image processing method, and computer product
JP2014183408A (ja) * 2013-03-18 2014-09-29 Fujitsu Ltd 動画処理装置、動画処理方法および動画処理プログラム
JP2015012548A (ja) * 2013-07-01 2015-01-19 富士通株式会社 画像処理装置、補正方法および補正プログラム
JP2015231124A (ja) * 2014-06-04 2015-12-21 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2016010014A (ja) * 2014-06-24 2016-01-18 キヤノン株式会社 撮像装置及びその制御方法、プログラム、記憶媒体
US10785484B2 (en) 2017-10-02 2020-09-22 Fujitsu Limited Motion vector calculation method, information processing apparatus, recording medium recording motion vector calculation program

Similar Documents

Publication Publication Date Title
JP4882956B2 (ja) 画像処理装置および画像処理方法
JP2009071689A (ja) 画像処理装置、画像処理方法および撮像装置
JP4340915B2 (ja) 撮像画像信号の歪み補正方法、撮像画像信号の歪み補正装置、撮像方法および撮像装置
JP2009055410A (ja) 画像処理装置および画像処理方法
JP4544334B2 (ja) 画像処理装置および画像処理方法
JP4655957B2 (ja) 撮像画像の歪み補正方法、撮像画像の歪み補正装置、撮像方法および撮像装置
JP4623111B2 (ja) 画像処理装置、画像処理方法及びプログラム
TWI387330B (zh) 具有用於拍攝平移圖像之平移模式的攝像裝置
US8031232B2 (en) Image pickup apparatus including a first image formation system and a second image formation system, method for capturing image, and method for designing image pickup apparatus
JP2009105533A (ja) 画像処理装置、撮像装置、画像処理方法および撮像画像処理方法
JP2007215114A (ja) 撮像画像の歪み補正方法、撮像画像の歪み補正装置および撮像装置
JP2012142865A (ja) 画像処理装置及び画像処理方法
JP2004336106A (ja) 画像処理装置、画像処理方法ならびに撮像装置
JP2011097246A (ja) 画像処理装置および方法、並びにプログラム
JP2004056789A (ja) 小型イメージセンサの解像度及び画質改善方法
JP2012142829A (ja) 画像処理装置および画像処理方法
JP2015049402A (ja) 焦点ずれ量検出装置およびその制御方法、撮像装置
KR100639164B1 (ko) 영상 장치의 흔들림에 의한 영상 블러링 제거 방법
JP2012142827A (ja) 画像処理装置および画像処理方法
JP4998134B2 (ja) 画像処理装置および画像処理方法
JP4670630B2 (ja) 画像処理装置、画像処理方法、撮像装置および撮像方法
JP2009116763A (ja) 画像処理装置および画像データのメモリアクセス方法
JP4888306B2 (ja) 画像処理装置および画像処理方法
JP2009130489A (ja) 撮像装置、撮像記録方法、撮像画像記録再生装置および撮像画像記録再生方法
JP2009065323A (ja) 画像処理装置、画像処理方法、撮像装置および撮像方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090807

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091005

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120626