(57)【要約】【課題】動き画像として特徴的な画像部分の開始点および終了点を検出する。【解決手段】動きベクトル検出手段で、連続して入力される画像の２画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する。動きベクトル検出手段で検出されたブロック単位の複数個の動きベクトルから、設定された画像の動き特徴に応じた動き特徴パラメータを抽出する。抽出手段で抽出された動き特徴パラメータの情報を基に、設定された画像の動き特徴を呈する画像部分の開始点を検出する。【選択図】図５３
2009065323.tif 000002
【特許請求の範囲】
【請求項１】
連続して入力される画像の２画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出手段と、
前記動きベクトル検出手段で検出された前記ブロック単位の複数個の動きベクトルから、設定された画像の動き特徴に応じた動き特徴パラメータを抽出する抽出手段と、
前記抽出手段で抽出された前記動き特徴パラメータの情報を基に、前記設定された画像の動き特徴を呈する画像部分の開始点を検出する手段と
を備える画像処理装置。
【請求項２】
連続して入力される画像の２画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出手段と、
前記動きベクトル検出手段で検出された前記ブロック単位の複数個の動きベクトルから、設定された画像の動き特徴に応じた動き特徴パラメータを抽出する抽出手段と、
前記抽出手段で抽出された前記動き特徴パラメータの情報を基に、前記設定された画像の動き特徴を呈する画像部分の終了点を検出する手段と
を備える画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置において、
前記動き特徴パラメータは、前記複数個の動きベクトルの最大値である
ことを特徴とする画像処理装置。
【請求項４】
請求項１または請求項２に記載の画像処理装置において、
前記動き特徴パラメータは、前記複数個の動きベクトルから求められる画面単位のグローバル動きベクトルである
ことを特徴とする画像処理装置。
【請求項５】
請求項１または請求項２に記載の画像処理装置において、
前記動き特徴パラメータは、前記複数個の動きベクトルのうち、設定された条件を満たすベクトル数である
ことを特徴とする画像処理装置。
【請求項６】
請求項１または請求項２に記載の画像処理装置において、
前記動き特徴パラメータは、前記複数個の動きベクトルの総和である
ことを特徴とする画像処理装置。
【請求項７】
撮像素子と、
使用者の操作を受け付ける操作入力部と、
前記操作入力部における所定の入力操作がなされた後の前記撮像素子からの撮像画像の画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出手段と、
前記動きベクトル検出手段で検出された前記ブロック単位の複数個の動きベクトルから、前記使用者により設定された画像の動き特徴に応じた被写体画像の動き特徴パラメータを抽出する抽出手段と、
前記抽出手段で抽出された前記被写体画像の動き特徴パラメータの情報を基に、前記所定の入力操作がなされた後の前記撮像素子からの撮像画像について、前記使用者により設定された画像の動き特徴を呈する画像部分の開始点を検出する開始点検出手段と、
前記開始点検出手段で検出された前記開始点に基づいて定められた記録開始点の前記撮像画像から、記録媒体への画像の記録を行う記録手段と、
を備える撮像装置。
【請求項８】
請求項７に記載の撮像装置において、
前記記録開始点は、前記開始点検出手段で検出された前記開始点より以前の画像の時点とされる
ことを特徴とする撮像装置。
【請求項９】
請求項７または請求項８に記載の撮像装置において、
前記開始点検出手段で検出された前記開始点と前記記録開始点との差は、変更可能とされてなる
ことを特徴とする撮像装置。
【請求項１０】
請求項７に記載の撮像装置において、
前記抽出手段で抽出された前記被写体画像の動き特徴パラメータの情報を基に、前記記録が開始された前記撮像画像について、前記動き特徴パラメータを呈する画像部分の終了点を検出する終了点検出手段を備え、
前記記録手段は、前記終了点検出手段で検出された前記終了点に基づいて定められた記録終了点の前記撮像画像までを、前記記録媒体に記録する
ことを特徴とする撮像装置。
【請求項１１】
請求項１０に記載の撮像装置において、
前記記録開始点から前記記録終了点までの前記撮像画像の画像データを記憶する画像メモリ手段と、
前記動きベクトル検出手段で検出された前記２画面間の前記ブロック単位の動きベクトルを用いて動き補償して、前記２画面の画像を、ブロック単位で重ね合わせるようにする画像重ね合わせ手段と、
を備え、
前記記録終了点までの複数の前記撮像画像を前記画像メモリ部に取り込んだ後、前記画像メモリ部から前記複数の前記撮像画像を読み出し、当該読み出した撮像画像のそれぞれについて、一つ前の撮像画像との間の動きベクトルを前記動きベクトル検出手段で検出し、当該動きベクトル検出手段で検出された動きベクトルを用いて前記画像重ね合わせ手段で、前記動きベクトルを検出した２枚の撮像画像の重ね合わせを行い、当該重ね合わせを行って得られた画像を記録媒体に記録するようにする
ことを特徴とする撮像装置。
【請求項１２】
撮像素子と、
使用者の操作を受け付ける操作入力部と、
前記操作入力部における所定の入力操作に基づき、前記撮像素子からの撮像画像を記録するための処理を開始する記録用処理開始手段と、
前記撮像素子からの撮像画像の画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出手段と、
前記動きベクトル検出手段で検出された前記ブロック単位の複数個の動きベクトルから、前記使用者により設定された画像の動き特徴に応じた被写体画像の動き特徴パラメータを抽出する抽出手段と、
前記抽出手段で抽出された前記被写体画像の動き特徴パラメータの情報を基に、前記記録用処理が開始された前記撮像画像について、前記使用者により設定された画像の動き特徴を呈する画像部分の終了点を検出する終了点検出手段と、
前記終了点検出手段で検出された前記終了点に基づいて定められた記録終了点までの前記撮像画像を記録媒体に記録するようにする記録実行手段と、
を備える撮像装置。
【請求項１３】
請求項１２に記載の撮像装置において、
前記記録終了点は、前記終了点検出手段で検出された前記終了点より以後の画像とされる
ことを特徴とする撮像装置。
【請求項１４】
請求項１２に記載の撮像装置において、
前記動きベクトル検出手段で検出された前記ブロック単位の動きベクトルを用いて、前記撮像素子からの複数枚の画像をブロック単位に重ね合わせてノイズ低減した画像を生成する画像重ね合わせ手段を備え、
前記記録される撮像画像は、前記ノイズ低減した画像であることを特徴とする撮像装置。
【請求項１５】
連続して入力される画像の２画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出工程と、
前記動きベクトル検出工程で検出された前記ブロック単位の複数個の動きベクトルから、設定された画像の動き特徴に応じた動き特徴パラメータを抽出する抽出工程と、
前記抽出工程で抽出された前記動き特徴パラメータの情報を基に、前記設定された画像の動き特徴を呈する画像部分の開始点を検出する工程と
を備える画像処理方法。
【請求項１６】
連続して入力される画像の２画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出工程と、
前記動きベクトル検出工程で検出された前記ブロック単位の複数個の動きベクトルから、設定された画像の動き特徴に応じた動き特徴パラメータを抽出する抽出工程と、
前記抽出工程で抽出された前記動き特徴パラメータの情報を基に、前記設定された画像の動き特徴を呈する画像部分の終了点を検出する工程と
を備える画像処理方法。
【請求項１７】
撮像素子と、操作入力部と、動きベクトル検出手段と、抽出手段と、開始点検出手段と、記録開始手段とを備える撮像装置が実行する撮像方法であって、
前記操作入力部を通じた使用者の所定の入力操作を受け付ける操作入力受け付け工程と、
前記動きベクトル検出手段が、前記操作入力受け付け工程で受け付けられた前記所定の入力操作がなされた後の前記撮像素子からの撮像画像の画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出工程と、
前記抽出手段が、前記動きベクトル検出工程で検出された前記ブロック単位の複数個の動きベクトルから、前記使用者により設定された画像の動き特徴に応じた被写体画像の動き特徴パラメータを抽出する抽出工程と、
前記開始点検出手段が、前記抽出工程で抽出された前記被写体画像の動き特徴パラメータの情報を基に、前記所定の入力操作がなされた後の前記撮像素子からの撮像画像について、前記使用者により設定された画像の動き特徴を呈する画像部分の開始点を検出する開始点検出工程と、
前記記録開始手段が、前記開始点検出工程で検出された前記開始点に基づいて定められた記録開始点から、前記撮像画像の記録媒体への記録を開始する記録開始工程と、
を備える撮像方法。
【請求項１８】
撮像素子と、操作入力部と、記録開始手段と、動きベクトル検出手段と、抽出手段と、終了点検出手段と、記録終了手段とを備える撮像装置が実行する撮像方法であって、
前記操作入力部を通じた使用者の所定の入力操作を受け付ける操作入力受け付け工程と、
前記記録開始手段が、前記操作入力受け付け工程で受け付けられた前記所定の入力操作に基づき、前記撮像素子からの撮像画像の記録を開始する記録開始工程と、
前記動きベクトル検出手段が、前記撮像素子からの撮像画像の画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出工程と、
前記抽出手段が、前記動きベクトル検出工程で検出された前記ブロック単位の複数個の動きベクトルから、前記使用者により設定された画像の動き特徴に応じた被写体画像の動き特徴パラメータを抽出する抽出工程と、
前記終了点検出手段が、前記抽出工程で抽出された前記被写体画像の動き特徴パラメータの情報を基に、前記記録が開始された前記撮像画像について、前記使用者により設定された画像の動き特徴を呈する画像部分の終了点を検出する終了点検出工程と、
前記記録終了手段が、前記終了点検出工程で検出された前記終了点に基づいて定められた記録終了点から、前記撮像画像の記録媒体への記録を終了する記録終了工程と、
を備える撮像方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば撮像素子からの撮像画像などの画像の内から、所定の特徴を備える画像部分の開始点や終了点を検出する画像処理装置および画像処理方法に関する。また、この発明は、撮像素子からの撮像画像の内から、所定の特徴を備える画像部分を撮像記録するようにする撮像装置および撮像方法に関する。
【背景技術】
【０００２】
近年、高速読み出し可能な撮像素子、および高速処理できるカメラ信号処理回路の登場により、高速度撮像記録の開発が進んでいる。この高速度撮像記録の技術は、撮像速度が高くなる（フレームレートｆｐｓ（ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）が高くなる）ので、高速に動く被写体、例えば、ゴルフスウィングなどをスローモーション再生や駒送り再生して画像解析する場合に便利である。
【０００３】
ただし、高速度撮像記録においては、短時間に大量の画像データを、画像メモリに記録処理するため、画像メモリを大きく消費するという問題がある。
【０００４】
動く被写体を所定時間に渡って撮像する場合を想定すると、一度撮像記録を開始したときには、その記録中において、被写体の動きの中に、重要視する動き部分と、そうでない動き部分があっても、それらは撮像記録を開始してから終了するまでの時間内では、同じ撮像速度（同じ撮像画像レート）で撮像しなくてはならない。
【０００５】
このとき、撮像速度を予め低めに設定した場合には、撮像画像の画像データ量は少なくて済むが、重要視する動き部分の時間分解能は低くなってしまう。反対に、撮像速度を高めに設定した場合には、重要視する動き部分の時間分解能は上がるが、重要視しない動き部分も高い撮像速度の撮像になるので、画像データ量は無駄に多くなって、非常に大容量の画像メモリが必要になり、大容量の画像メモリの分、撮像装置の製造コストの上昇を招いてしまう。
【０００６】
そこで、従来から、上記の問題に対して、被写体のうち、その動きを重要視する部分は、高フレームレートで撮像するように、フレームレートを可変制御する手法が、特許文献１（特開２００４−１２０３８４号公報参照）などに提案されている。
【０００７】
しかしながら、この特許文献１などの手法は、特殊な再生装置が必要になり、民生向けの撮像装置に適した技術とは言えなかった。
【０００８】
民生向けの撮像装置として現実的で、かつ有効な手法として、特許文献２（特開平４−２７２８４号公報参照）に記載されたものがある。この特許文献２の手法は、事前に高速連写のデータを、画像メモリ上に、周期的に上書きしておき、撮影者がシャッターボタンを押した時点で、当該シャッターボタン押下時の最新の画像情報のみならず、時間的に過去に遡った複数枚の撮像画像を読み出すことが可能になるというものである。したがって、高フレームレートでありながら、撮影者の意図した時刻に近い画像のみを記録することができる。
【０００９】
上記の特許文献は、次の通りである。
【特許文献１】特開２００４−１２０３８４号公報
【特許文献２】特開平４−２７２８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記の特許文献２の手法は、撮影者がシャッターを切った時点より一定時間遡った時点から撮影した画像を記録するものであって、シャッターボタン操作時点に基づいて、撮像記録を開始する時点が定まってしまうものである。
【００１１】
このため、実際に高速度撮像記録が開始される時点が、撮影者が被写体について撮像を開始したかった時点となっているかどうかの保証はなく、記録撮像画像として、撮影者が意図したものとなっていない場合があるという問題があった。
【００１２】
また、上記の特許文献２の技術は、撮像する画像の記録を開始する時点に関するものであって、例えば動き被写体画像を所定時間に渡って撮像記録しようとする場合に、適切な撮像記録終了点については、全く考慮されていない。
【００１３】
この発明は、以上の点にかんがみ、例えば動き被写体を撮像する場合の撮像画像のような動き画像について、当該動き画像として特徴的な画像部分の開始点および終了点を検出することができるようにした画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、請求項１の発明は、
連続して入力される画像の２画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出手段と、
前記動きベクトル検出手段で検出された前記ブロック単位の複数個の動きベクトルから、設定された画像の動き特徴に応じた動き特徴パラメータを抽出する抽出手段と、
前記抽出手段で抽出された前記動き特徴パラメータの情報を基に、前記設定された画像の動き特徴を呈する画像部分の開始点を検出する手段と
を備える画像処理装置を提供する。
【００１５】
上記の構成の請求項１の発明によれば、入力画像の２画面間の動きベクトルが、ブロック単位に検出され、当該ブロック単位の動きベクトルが解析されて、抽出手段で、画像の動き特徴パラメータが抽出される。そして、抽出された画像の動き特徴パラメータに基づいて、設定された画像の特徴を呈する画像部分の開始点が検出される。
【００１６】
すなわち、請求項１の発明においては、画像の動き特徴という観点で、入力画像を解析して、設定された画像の動き特徴を呈する画像部分を自動的に抽出して、当該画像部分の開始点を検出することができる。
【００１７】
また、請求項２の発明は、
連続して入力される画像の２画面間の動きベクトルを、画面を複数に分割したブロック単位に検出する動きベクトル検出手段と、
前記動きベクトル検出手段で検出された前記ブロック単位の複数個の動きベクトルから、設定された画像の動き特徴に応じた動き特徴パラメータを抽出する抽出手段と、
前記抽出手段で抽出された前記動き特徴パラメータの情報を基に、前記設定された画像の動き特徴を呈する画像部分の終了点を検出する手段と
を備える画像処理装置を提供する。
【００１８】
上記の構成の請求項２の発明によれば、入力画像の２画面間の動きベクトルが、ブロック単位に検出され、当該ブロック単位の動きベクトルが解析されて、抽出手段で、画像の動き特徴パラメータが抽出される。そして、抽出された画像の動き特徴パラメータに基づいて、設定された画像の特徴を呈する画像部分の終了点が検出される。
【００１９】
すなわち、請求項２の発明においては、画像の動き特徴という観点で、入力画像を解析して、設定された画像の動き特徴を呈する画像部分を自動的に抽出して、当該画像部分の終了点を検出することができる。
【発明の効果】
【００２０】
この発明によれば、入力画像の２画面間の動きベクトルを、画面を複数に分割したブロック単位に検出し、検出した複数個のブロック単位の動きベクトルから、設定された画像の動き特徴を呈する画像部分を自動的に抽出して、当該画像部分の開始点および／または終了点を検出することができる。
【００２１】
したがって、例えば、この発明を撮像画像の記録に利用すれば、被写体画像のうちから、撮影者が所望する画像の動き特徴を呈する画像部分の開始点および／または終了点が検出され、当該動き特徴を呈する画像部分を確実に記録することが可能になる。
【発明を実施するための最良の形態】
【００２２】
以下、この発明による画像処理装置および画像処理方法の実施形態を、撮像装置に適用した場合について説明する。この撮像装置は、この発明による撮像装置の実施形態でもあり、この発明による撮像方法の実施形態が適用されたものでもある。
【００２３】
以下に説明する実施形態の撮像装置においては、静止画撮像および動画撮像が可能である通常撮像モードと、動き解析高速度撮像モードとを備える。
【００２４】
通常撮像モードにおいては、静止画撮像時は、シャッターボタンを操作した時点における静止画像を撮像して記録することができる。また、通常撮像モードの動画撮像時には、使用者が、例えば動画記録スタートボタンを操作すると、撮像された動画の記録を開始し、また、使用者が、例えば動画記録停止ボタンを操作すると、撮像された動画の記録を終了するようにする。
【００２５】
また、この実施形態の動き解析高速度撮像モードにおいては、使用者がシャッターボタンを操作すると、高速度で被写体画像が撮像されて撮像素子１１から高速連写画像が出力される。この実施形態では、この高速連写画像を即座に記録することはせず、先ず、高速連射画像についての動き解析を行ない、予め使用者により設定された画像の動き特徴を呈する画像部分の開始点および終了点の検出を行なう。
【００２６】
そして、使用者により設定された画像の動き特徴を備える画像部分の開始点が検出されると、当該画像部分の開始点から決定される記録開始点からの高速連写画像を、画像メモリ部に保存する。そして、使用者により設定された画像の動き特徴を備える画像部分の終了点が検出されると、当該画像部分の終了点から決定される記録終了点までの高速連写画像が画像メモリ部に保存される。そして、画像メモリ部に保存された、高速連写画像の記録開始点から記録終了点までの画像部分の画像データを、記録媒体に自動的に記録するようにする。
【００２７】
すなわち、この実施形態では、後述するように、設定された画像の動き特徴を備える画像部分の開始点および終了点に基づき、高速連写画像の記録開始点および記録終了点が決定され、当該記録開始点から記録終了点までの撮像画像が記録媒体に記録される。つまり、この実施形態では、検出した画像部分の開始点よりも、設定された複数枚の画像からなる、のりしろ画像分だけ以前の時点から、撮像画像の記録を行い、また、検出した画像部分の終了点よりも、設定されたのりしろ画像分だけ以後の時点まで、撮像画像の記録を行うようにする。
【００２８】
この動き解析高速度撮像モードにおける前記撮像画像の動き解析は、この実施形態では、ブロックマッチング手法を用いて、入力撮像画像の２画面間の動きベクトルを、画面を複数に分割したブロック単位に検出し、当該検出したブロック単位の複数個の動きベクトルを用いて行う。この動き解析高速度撮像モードについては、後で詳述する。
【００２９】
そして、この実施形態では、通常撮像モードにおいて記録する静止画および動画の画像データおよび動き解析高速度撮像モードにおいて記録する画像データは、ブロックマッチングにより検出した動きベクトルを用いて、後述するように、複数枚の画像を重ね合わせてノイズ低減を行った画像とする。
【００３０】
［ブロックマッチングの概要の説明］
ブロックマッチングは、注目画面である参照画面と、当該参照画面の動きの元となる元画面（ターゲット画面と称する）との間の２画面間の動きベクトルを、所定の大きさの矩形領域のブロックについて、参照画面と元画面との間での相関を算出することにより算出する方法である。元画面が時間的に参照画面よりも前の画面とされる場合（例えば、ＭＰＥＧにおける動き検出の場合）と、参照画面が時間的に元画面よりも前の画面とされる場合（例えば、後述する画像フレームの重ね合わせによるノイズ低減の場合）の両方がある。
【００３１】
なお、前述したように、この明細書で、画面とは、１フレームまたは１フィールドの画像データからなる画像を意味しているが、この明細書における以下の説明の便宜上、画面は１フレームからなるものとして、画面をフレームと称することとする。したがって、参照画面は参照フレーム、元画面は元フレームと称することとする。
【００３２】
図２〜図７は、従来のブロックマッチングの概要を説明するための図である。ここで説明するブロックマッチング手法においては、例えば、図２（Ａ）に示すように、元フレーム（ターゲットフレーム）１００を、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域（ブロックという）の複数個に分割する。ターゲットフレームにおけるこれらの複数個のブロック１０２のそれぞれを、ターゲットブロックという。
【００３３】
ブロックマッチングにおいては、ターゲットブロック１０２と相関性の高いブロックを、参照フレーム１０１の中から検索する。この検索の結果、相関性が最も高いとして参照フレーム１０１内に検出されたブロック１０３（図２（Ｂ）参照）を、動き補償ブロックと呼ぶ。また、ターゲットブロック１０２と動き補償ブロック１０３との間の位置ずれ量を、動きベクトル（図２（Ｂ）の符号１０４参照）と称する。
【００３４】
ターゲットブロック１０２と動き補償ブロック１０３との間の位置ずれ（位置ずれ量と位置ずれ方向を含む）に対応する動きベクトル１０４は、参照フレーム１０１において、ターゲットフレーム１００の各ターゲットブロック１０２の位置と同じ位置に、ターゲットブロック１０２の射影イメージブロック１０９を想定したとき、このターゲットブロックの射影イメージブロック１０９の位置（例えば中心位置）と、動き補償ブロック１０３の位置（例えば中心位置）との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。
【００３５】
ブロックマッチング処理の概要を説明する。図３において点線で示すように、参照フレーム１０１において、ターゲットフレーム１００の各ターゲットブロック１０２の位置と同じ位置にターゲットブロックの射影イメージブロック１０９を想定し、このターゲットブロックの射影イメージブロック１０９の中心の座標を、動き検出の原点１０５とする。そして、動きベクトル１０４が、動き検出の原点１０５から或る範囲内に存在すると仮定し、この動き検出の原点１０５を中心した所定の範囲をサーチ範囲１０６（図３の一点鎖線参照）と設定する。
【００３６】
次に、ターゲットブロック１０２と同じ大きさのブロック（参照ブロックという）１０８を参照画面において設定する。そして、この参照ブロック１０８の位置を、サーチ範囲１０６内において、例えば水平方向および垂直方向に、１画素または複数画素単位で移動させるようにする。したがって、サーチ範囲１０６においては、複数個の参照ブロック１０８が設定されることになる。
【００３７】
ここで、参照ブロック１０８を、サーチ範囲１０６内を移動させるというのは、この例では、動き検出原点１０５がターゲットブロックの中心位置であるので、参照ブロック１０８の中心位置を、サーチ範囲１０６内を移動させることを意味し、参照ブロック１０８を構成する画素は、サーチ範囲１０６よりもはみ出すことがある。したがって、参照ブロックとして画素データが読み出される範囲は、サーチ範囲１０６よりも広い。この参照ブロックとして画素データが読み出される範囲は、マッチング処理範囲と称することとする。
【００３８】
そして、サーチ範囲において、設定される各参照ブロック１０８に対して、当該各参照ブロック１０８とターゲットブロック１０２との位置ずれ量および位置ずれ方向を表すベクトル（参照ベクトルという）１０７（図３参照）を設定し、それぞれの参照ベクトル１０７が指し示す位置にある参照ブロック１０８の画像内容と、ターゲットブロック１０２の画像内容との相関性を評価する。
【００３９】
参照ベクトル１０７は、図４に示すように、参照ブロック１０８の水平方向（Ｘ方向）の位置ずれ量Ｖｘとし、垂直方向（Ｙ方向）の位置ずれ量をＶｙとしたとき、ベクトル（Ｖｘ，Ｖｙ）と表すことができ、参照ブロック１０８の位置座標（例えば中心位置座標）とターゲットブロック１０２の位置座標（例えば中心位置座標）とが同じときには、参照ベクトル１０７は、ベクトル（０，０）と表す。
【００４０】
例えば、参照ブロック１０８が、ターゲットブロック１０２の位置から、Ｘ方向に１画素ずれた位置にある場合、参照ベクトル１０７はベクトル（１，０）となる。また、図５に示すように、参照ブロック１０８が、ターゲットブロック１０２の位置から、Ｘ方向に３画素、Y方向に２画素ずれた位置にある場合には、参照ベクトル１０７はベクトル（３，２）となる。
【００４１】
つまり、参照ベクトル１０７は、図５の例に示すように、ターゲットブロック１０２および参照ブロック１０８の位置を、それぞれのブロックの中心位置とした場合、各参照ベクトル１０８は、対応する各参照ブロック１０８の中心位置とターゲットブロック１０２の中心位置との位置ずれ（位置ずれ量と位置ずれの方向を含むベクトルとなる）を意味する。
【００４２】
参照ブロック１０８は、サーチ範囲１０６において移動するものとなるが、その場合に、参照ブロック１０８の中心位置がサーチ範囲１０６内を移動する。前述もしたように、参照ブロック１０８は、水平方向および垂直方向の複数画素からなるので、ターゲットブロック１０２とブロックマッチング処理される対象となる参照ブロック１０８が移動する最大範囲は、図５に示すように、サーチ範囲１０６よりも広いマッチング処理範囲１１０となる。
【００４３】
そして、ターゲットブロック１０２の画像内容との相関が最も強いとして検出された参照ブロック１０８の位置を、ターゲットフレーム１００のターゲットブロック１０２の、参照フレーム１０１における位置（動いた後の位置）として検出し、検出した参照ブロックを、前述した動き補償ブロック１０３とする。そして、その検出した動き補償ブロック１０３の位置と、ターゲットブロック１０２の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル１０４として検出するようにする（図２（Ｂ）参照）。
【００４４】
ここで、ターゲットブロック１０２と、サーチ範囲１０６において移動する参照ブロック１０８との相関の強さを表す相関値は、基本的にはターゲットブロック１０２と参照ブロック１０８との対応する画素値を用いて算出されるが、その算出方法は、自乗平均を用いる方法やその他種々の方法が提案されている。
【００４５】
そのうち、動きベクトルを算出する際に一般的に用いられる相関値としては、例えば、ターゲットブロック１０２内の各画素の輝度値と、参照ブロック１０６内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和（この差分の絶対値の総和を差分絶対値和と呼ぶ。以下、この差分絶対値和をＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）と記載することとする）が用いられる（図６参照）。
【００４６】
相関値としてＳＡＤ値が用いられる場合には、ＳＡＤ値が小さいほど相関が強いものとされる。したがって、サーチ範囲１０６において移動する参照ブロック１０８のうち、ＳＡＤ値が最小となる位置の参照ブロック１０８が最も相関が強い最強相関参照ブロックとなり、この最強相関参照ブロックが、動き補償ブロック１０３として検出され、その検出された動き補償ブロック１０３のターゲットブロック１０２の位置に対する位置ずれ量が動きベクトルとして検出される。
【００４７】
前述したように、ブロックマッチングでは、サーチ範囲１０６において設定される複数個の参照ブロック１０８のそれぞれの、ターゲットブロック１０２の位置に対する位置ずれ量は、方向成分を含む量としての参照ベクトル１０７で表現される。各参照ブロック１０８の参照ベクトル１０７は、参照ブロック１０８の参照フレーム１０２上の位置に応じた値となる。前述したように、ブロックマッチングでは、相関値であるＳＡＤ値が最小値となる参照ブロック１０８の参照ベクトルを、動きベクトル１０４として検出する。
【００４８】
そこで、ブロックマッチングでは、一般に、図７に示すように、サーチ範囲１０６において設定される複数個の参照ブロック１０８のそれぞれとターゲットブロック１０２との間におけるＳＡＤ値（以下、説明の簡単のため参照ブロック１０８についてのＳＡＤ値という）を、それぞれの参照ブロック１０８の位置に応じた参照ベクトル１０７（以下、説明の簡単のため、参照ブロック１０６の位置に応じた参照ベクトル１０７を参照ブロック１０８の参照ベクトル１０７という）のそれぞれに対応させて、メモリに記憶しておき、そのメモリに記憶された全ての参照ブロック１０８についてのＳＡＤ値の中から、最小のＳＡＤ値の参照ブロック１０８を検出することで、動きベクトル１０４を検出するようにしている。
【００４９】
サーチ範囲１０６において設定された複数個の参照ブロック１０８の位置に応じた参照ベクトル１０７のそれぞれに対応させて、それぞれの参照ブロック１０８についての相関値（この例では、ＳＡＤ値）を記憶したものを相関値テーブルと呼ぶ。この例では、相関値として差分絶対値和であるＳＡＤ値を用いるので、この相関値テーブルを、差分絶対値和テーブル（以下ＳＡＤテーブルという）と呼ぶことにする。
【００５０】
図７のＳＡＤテーブルＴＢＬが、これを示しており、このＳＡＤテーブルＴＢＬにおいて、それぞれの参照ブロック１０８についての相関値（この例ではＳＡＤ値）を相関値テーブル要素という。図７の例では、符号１１１で指し示すＳＡＤ値は、参照ベクトルがベクトル（０，０）のときのＳＡＤ値である。そして、図７の例では、ＳＡＤ値の最小値は、参照ベクトルがベクトル（３，２）のときの「７」であるので、求める動きベクトル１０４は、当該（３，２）となる。
【００５１】
なお、上述の説明において、ターゲットブロック１０２および参照ブロック１０８の位置とは、それらのブロックの任意の特定の位置、例えば中心位置を意味するものであり、参照ベクトル１０７は、参照フレーム１０２におけるターゲットブロック１０２の射影イメージブロック１０９の位置と、参照ブロック１０８の位置との間のずれ量（方向を含む）を示すものである。
【００５２】
そして、各参照ブロック１０８に対応する参照ベクトル１０７は、参照フレーム１０１上において、ターゲットブロック１０２に対応する射影イメージブロック１０９の位置からの、各参照ブロック１０８の位置ずれとなっているので、参照ブロック１０８の位置が特定されると、その位置に対応して参照ベクトルの値も特定される。したがって、ＳＡＤテーブル１１０のメモリにおける参照ブロックの相関値テーブル要素のアドレスが特定されると、対応する参照ベクトルは特定されることになる。
【００５３】
なお、ＳＡＤ値は、同時に、２つ以上のターゲットブロックについて計算するようにしてもよい。同時に処理するターゲットブロックが増加すると、処理は高速化する。しかし、ＳＡＤ値を計算するハードウエアの規模が増大するので、処理の高速化と、回路規模の増大のトレードオフになる。
【００５４】
［画像の重ね合わせによるノイズ低減処理の概要］
以下に説明する実施の形態の撮像装置では、図８（Ａ）および（Ｂ）に示すように、連続して撮影された複数枚の画像、例えばＰ１，Ｐ２，Ｐ３を、動き検出および動き補償を用いて位置合わせをした後、重ね合わせすることで、ノイズが低減された画像Ｐｍｉｘを得ることができるようにしている。すなわち、複数枚の画像のそれぞれにおけるノイズはランダムなものであるので、同一内容の画像を重ね合わせることで、画像に対してノイズが低減されるものである。
【００５５】
以下の説明において、動き検出および動き補償を用いて複数枚の画像を重ね合わせて、ノイズ低減することをＮＲ（Ｎｏｉｓｅ Ｒｅｄｕｃｔｉｏｎ）と呼び、ＮＲによりノイズ低減された画像をＮＲ画像と称することとする。
【００５６】
この明細書では、ノイズ低減を施したい画面（画像）をターゲット画面（ターゲットフレーム）、重ね合わせたい画面を参照画面（参照フレーム）と定義する。連続して撮影された画像は、撮影者の手ブレなどにより、画像の位置がずれており、両画像の重ね合わせを行うには、位置合わせが重要となる。ここで、考慮しなければならないのは、手ブレのような画面全体のブレと共に、画面内における被写体の動きも存在することである。
【００５７】
このため、被写体に対してもノイズ低減効果を高めるためには、図９に示すように、ターゲットフレーム１００を分割して生成される複数個のターゲットブロック１０２のそれぞれ単位での位置合わせが必要になる。
【００５８】
したがって、この実施の形態では、複数個のターゲットブロック１０２の全てについて、ブロック単位の動きベクトル（以下、ブロック動きベクトルという）１０４Ｂを検出し、それぞれのターゲットブロック１０２について、対応するブロック動きベクトル１０４Ｂを用いて位置合わせを行い、画像を重ね合わせるようにする。
【００５９】
この実施の形態の撮像装置において、通常撮像モードにおける静止画撮像時は、図１０に示すように、高速で複数枚の画像の撮影を行い、１枚目の撮像画像をターゲットフレーム１００とし、２枚目以降、所定枚数の撮像画像を参照フレーム１０１とし、重ね合わせを行い、その重ね合わせたＮＲ画像を静止画撮像画像として記録するようにする。すなわち、撮影者が撮像装置のシャッターボタンを押下操作すると、高速で前記所定枚数の画像が撮影され、その１枚目に撮影した画像（フレーム）に対して、時間的に後で撮影された複数枚の画像（フレーム）が、重ね合わされることになる。
【００６０】
この場合に、静止画撮像時の高速で撮影された所定枚数の撮像画像についてのＮＲ処理は、前記所定枚数の撮像画像を画像メモリ部４に取り込んだ後、実行する方法と、取り込みながら実行する方法との両方が可能であるが、この例では、前者の方法を用いる。
【００６１】
また、通常撮像モードにおける動画撮像時は、図１１のように、撮像素子から出力されている現フレームの画像をターゲットフレーム１００の画像とし、その前フレームの過去の画像を参照フレーム１０１の画像とする。したがって、現フレームの画像のノイズ低減を行うために、現フレームの前フレームの画像を現フレームに重ね合わせるということになる。この動画撮像時のＮＲ処理は、撮像素子１１からの撮像画像についてリアルタイムに行うものである。
【００６２】
なお、上述の図１０および図１１の画像の重ね合わせの方法の説明の場合は、記録する動画画像のフレームレートを６０ｆｐｓ（ｆｌａｍｅ／ｓｅｃｏｎｄ）としたときに、撮像素子から当該６０ｆｐｓのフレームレートの２枚の画像フレームを重ね合わせて、その結果としてノイズの低減された６０ｆｐｓのフレームレートで撮像画像信号が得られる場合である。
【００６３】
しかし、撮像素子から、より高速の、例えば２４０ｆｐｓの高フレームレートで、撮像画像が出力されるように構成されている場合において、動画撮像時においても、４枚ずつの画像を重ねて１枚の動画フレームを生成することで、６０ｆｐｓのフレームレートの撮像画像信号を得るようにすることもできる。もちろん、２４０ｆｐｓの撮像動画画像を、この例と同様にして、２枚の画像フレームを重ね合わせて、その結果として２４０ｆｐｓのフレームレートのノイズ低減された撮像画像信号を得るようにすることもできる。
【００６４】
そして、動き解析高速度撮像モードにおいては、後述するように、先ず、高速で撮影された撮像画像について動き解析をしながら、撮影者が希望する動き特徴を備える画像部分の開始点および終了点（記録開始点および終了開始点）を検出して、当該開始点（記録開始点）から終了点（終了開始点）までの画像部分を画像メモリ部４に取り込む。そして、画像メモリ部４に前記画像部分を取り込んだ後、当該画像メモリ部４に取り込んだ複数枚の画像について、前記動画撮像時のＮＲ処理と同様のＮＲ処理を行う。以上の処理について、後で詳述する。
【００６５】
なお、この実施の形態においては、さらにより高精度で画像の重ね合わせができるように、処理対象画像の画素ピッチの精度（ピクセル精度という）よりも高精度、つまり、元の画面（ターゲットフレーム）の画素ピッチよりも小さいピッチの高精度（この高精度をサブピクセル精度と呼ぶことにする）で、ブロック動きベクトルを検出するようにする。このサブピクセル精度での動きベクトル算出のために、後述するように、この実施の形態の撮像装置においては、ピクセル精度で求めた動きベクトルと、その近傍の参照ベクトルとを用いて補間処理をするようにする。
【００６６】
［実施形態の撮像装置のハードウエア構成例］
図１は、この発明の画像処理装置の実施形態としての撮像装置の一例のブロック図を示すものである。
【００６７】
この図１に示すように、この実施形態の撮像装置は、システムバス２にＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１が接続されると共に、システムバス２に、撮像信号処理系１０や、ユーザ操作入力部３、画像メモリ部４、記録再生装置部５などが接続されて構成されている。なお、この明細書においては、ＣＰＵ１は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やワークエリア用ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを含むものとしている。
【００６８】
ユーザ操作入力部３を通じた撮像記録開始操作を受けて、図１の撮像装置の撮像信号処理系は、後述するような撮像画像データの記録処理を行なう。また、ユーザ操作入力部３を通じた撮像記録画像の再生開始操作を受けて、図１の撮像装置の撮像信号処理系１０は、記録再生装置部５の記録媒体に記録された撮像画像データの再生処理を行なう。なお、撮像信号処理系１０の後述する各部は、制御レジスタ部７を通じたＣＰＵ３の制御コマンドを受けて、ＣＰＵ３の制御を受けながら、それぞれの処理を実行するものである。
【００６９】
図１に示すように、撮像信号処理系１０においては、撮像レンズ１０Ｌを備えるカメラ光学系（図示は省略）を通じた被写体からの入射光は、撮像素子１１に照射されて撮像される。この例では、撮像素子１１は、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージャで構成されている。なお、撮像素子１２は、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージャで構成してもよい。
【００７０】
この例の撮像装置においては、撮像記録開始操作がなされると、レンズ１０Ｌを通じて入力された映像が、撮像素子１１により撮像画像信号に変換され、タイミング信号発生部１２からのタイミング信号に同期した信号として、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の３原色から構成されるベイヤー配列のＲＡＷ信号（生の信号）であるアナログ撮像信号が出力される。出力されたアナログ撮像信号（ＲＡＷ信号）は、前処理部１３に供給され、欠陥補正やγ補正等の前処理が施され、データ変換部１４に供給される。
【００７１】
データ変換部１４は、これに入力されたＲＡＷ信号であるアナログ撮像信号を、輝度信号成分Ｙと、色差信号成分Ｃｂ／Ｃｒとにより構成されるデジタル撮像信号（ＹＣデータ）に変換し、そのデジタル撮像信号を画像補正・解像度変換部１５に供給する。画像補正・解像度変換部１５では、ユーザ操作入力部３を通じて指定された解像度に、デジタル撮像信号を変換し、システムバスを介して、画像メモリ部４に供給する。
【００７２】
ユーザ操作入力部３を通じた撮影指示が、通常撮像モードにおけるシャッターボタンの押下による静止画撮像指示であったときには、画像補正・解像度変換部１５で解像度変換されたデジタル撮像信号は、前述した複数フレーム分が画像メモリ部４に書き込まれる。そして、複数フレーム分の画像が画像メモリ部４に書き込まれた後、ターゲットフレームの画像データと参照フレームの画像データが、動き検出・動き補償部１６によって読み込まれ、後述するようなこの実施形態におけるブロックマッチング処理がなされて、動きベクトルが検出され、当該検出された動きベクトルに基づいて、画像重ね合わせ部１７で後述するような画像の重ね合わせ処理が行われ、その重ね合わせ結果、ノイズ低減されたＮＲ画像の画像データが画像メモリ部４に格納される。
【００７３】
そして、この画像メモリ部４に格納された重ね合わせ結果のＮＲ画像の画像データは、静止画コーデック部１８においてコーデック変換され、システムバス２を通じて記録再生装置部５の例えばＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）やハードディスクなどの記録媒体に記録される。この実施形態では、静止画コーデック部１８では、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式の静止画についての画像圧縮符号化処理が行われる。
【００７４】
また、この静止画撮像時、シャッターボタンが押下操作される前においては、画像補正・解像度変換部１５からの画像データは、画像メモリ部４を通じてＮＴＳＣ（Ｎａｔｉｏｎａｌ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍ  Ｃｏｍｍｉｔｔｅｅ）エンコーダ２０に供給され、このＮＴＳＣエンコーダ２０によりＮＴＳＣ方式の標準カラー映像信号に変換され、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ；液晶ディスプレイ）からなるモニターディスプレイ６に供給され、静止画撮像時のモニター画像がその表示画面にモニター表示される。
【００７５】
また、ユーザ操作入力部３を通じた撮影指示が、動画記録ボタンの押下による動画撮像指示であったときには、解像度変換された画像データは、画像メモリ部４に書き込まれると共に、リアルタイムに動き検出・動き補償部１６へ送られ、後述するようなこの実施形態におけるブロックマッチング処理がなされて、動きベクトルが検出され、当該検出された動きベクトルに基づいて、画像重ね合わせ部１７で後述するような画像の重ね合わせ処理が行われ、その重ね合わせ結果、ノイズ低減されたＮＲ画像の画像データが画像メモリ部４に格納される。
【００７６】
そして、この画像メモリ部４に格納された重ね合わせ結果のＮＲ画像の画像データは、ＮＴＳＣエンコーダ部２０を通じてモニターディスプレイ６の表示画面に出力されながら、動画コーデック部１９でコーデック変換され、システムバス２を通じて記録再生装置部５に供給され、ＤＶＤやハードディスクなどの記録媒体に記録される。この実施形態では、動画コーデック部１８では、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式の動画についての画像圧縮符号化処理が行われる。
【００７７】
この記録再生装置部５の記録媒体に記録された撮像画像データは、ユーザ操作入力部３を通じた再生開始操作に応じて読み出され、動画コーデック部１９に供給されて、再生デコードされる。そして、再生デコードされた画像データはＮＴＳＣエンコーダ２０を通じてモニターディスプレイ６に供給され、再生画像がその表示画面に表示される。なお、図１では、図示を省略したが、ＮＴＳＣエンコーダ２０からの出力映像信号は、映像出力端子を通じて外部に導出することが可能とされている。
【００７８】
上述した動き検出・動き補償部１６は、ハードウエアにより構成することできるし、また、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）を用いて構成することもできる。さらには、ＣＰＵ１によりソフトウエア処理とすることもできる。
【００７９】
［動き検出・動き補償部１６の説明］
動き検出・動き補償部１６では、この実施の形態では、基本的には、図２〜図７を用いて説明した、ＳＡＤ値を用いてブロックマッチング処理を行うことで、動きベクトル検出を行うようにする。ただし、この実施の形態では、より処理の高速化、画像メモリの削減などを図るために、後述するような階層化したブロックマッチング処理を行うようにする。
【００８０】
そして、この実施形態では、動き検出・動き補償部１６は、後述するようなハードウエアで構成され、共通のハードウエアで階層化したブロックマッチング処理を行うようにする。また、後述するように、共通のハードウエアで、後述するような、静止画についてのノイズ低減処理と、動画についてのノイズ低減処理とが実現できるように構成している。
【００８１】
さらに、動き解析高速度撮像モードにおいては、後述するように、検出した動きベクトルを、ＣＰＵ１のソフトウエア処理により後述する動き特徴抽出を行うための情報として、システムバス２を通じてＣＰＵ１に渡すようにする。さらに、動き解析の後に実行される高速度撮像された画像をＮＲ処理して、記録する際には、動画についてのＮＲ処理と同様の処理を行う際の動きベクトル検出および動き補償画像の生成を行う。
【００８２】
＜実施の形態の階層化ブロックマッチング処理の概要＞
一般的な従来のブロックマッチングにおける動きベクトル検出処理は、ピクセル単位（１ピクセル単位または複数ピクセル単位）で参照ブロックを移動させて、各移動位置における参照ブロックについてのＳＡＤ値を算出し、その算出したＳＡＤ値の中から最小値を示すＳＡＤ値を検出し、当該最小ＳＡＤ値を呈する参照ブロック位置に基づいて動きベクトルを検出するようにする。
【００８３】
しかし、このような従来の動きベクトル検出処理では、サーチ範囲内をピクセル単位で参照ブロックを移動させるようにするので、検索するサーチ範囲に比例して、ＳＡＤ値を算出するマッチング処理回数が多くなって、マッチング処理時間が大きくなると共に、ＳＡＤテーブルの容量も大きくなるという問題があった。
【００８４】
そこで、この実施の形態では、ターゲット画像（ターゲットフレーム）に対して縮小画像を作成し、作成した縮小画像でブロックマッチングを行い、縮小画像での動き検出結果を基に、もとのターゲット画像でのブロックマッチングを行う。ここで、縮小画像のことを縮小面、縮小化をしていない元の画像のことを基底面と呼ぶことにする。したがって、この第２の実施の形態では、縮小面でのブロックマッチングを行ったあと、そのマッチング結果を用いて基底面でのブロックマッチングを行う。
【００８５】
図１２および図１３に、ターゲットフレーム（画像）および参照フレーム（画像）の画像縮小化のイメージを示す。すなわち、この実施の形態においては、例えば図１２に示すように、基底面ターゲットフレーム１３０は、水平方向および垂直方向のそれぞれを、１／ｎ（ｎは正の数）に縮小して、縮小面ターゲットフレーム１３２とする。したがって、基底面ターゲットフレーム１３０を複数個に分割して生成した基底面ターゲットブロック１３１は、縮小面ターゲットフレームでは、水平方向および垂直方向のそれぞれが１／ｎ×１／ｎに縮小された縮小面ターゲットブロック１３３となる。
【００８６】
そして、ターゲットフレームの画像縮小倍率１／ｎに合わせて、参照フレームを縮小する。すなわち、図１３に示すように、基底面参照フレーム１３４は、水平方向および垂直方向のそれぞれを、１／ｎに縮小して、縮小面参照フレーム１３５とする。そして、基底面参照フレーム１３４上で検出された動き補償ブロック１０３についての動きベクトル１０４は、縮小面参照フレーム１３５では、１／ｎ×１／ｎに縮小された縮小面動きベクトル１３６として検出される。
【００８７】
なお、上記の例では、ターゲットフレームと参照フレームとの画像縮小倍率は同じとしたが、演算量削減のため、ターゲットフレーム（画像）と参照フレーム（画像）とで異なる画像縮小倍率を用い、画素補間等の処理で、両フレームの画素数を合わせて、マッチングを行うようにしてもよい。
【００８８】
また、水平方向および垂直方向のそれぞれの縮小倍率を同一としたが、水平方向と垂直方向とで、縮小倍率を異ならせるようにしても良い。例えば水平方向は１／ｎに縮小し、垂直方向は、１／ｍ（ｍは正の数で、ｎ≠ｍ）に縮小する場合には、縮小画面は、元の画面の１／ｎ×１／ｍの大きさになる。
【００８９】
図１４に、縮小面参照ベクトルと基底面参照ベクトルの関係を示す。基底面参照フレーム１３４において、動き検出原点１０５と、サーチ範囲１０６が、図１４（Ａ）に示すように決定されたとすると、１／ｎ×１／ｎに画像縮小された縮小面参照フレーム１３５上では、図１４（Ｂ）に示すように、サーチ範囲は、１／ｎ×１／ｎに縮小された縮小面サーチ範囲１３７とされる。
【００９０】
そして、この実施の形態では、縮小面サーチ範囲１３７内において、縮小面参照フレーム１３５での動き検出原点１０５からの位置ズレ量を表す縮小面参照ベクトル１３８を設定し、それぞれの縮小面参照ベクトル１３８が指し示す位置にある縮小面参照ブロック１３９と、縮小面ターゲットブロック１３１（図１４では図示は省略）との相関性を評価する。
【００９１】
この場合、縮小画像において、ブロックマッチングを行うので、縮小面参照フレーム１３５においてＳＡＤ値を算出すべき縮小面参照ブロック位置（縮小面参照ベクトル）の数を少なくすることができ、ＳＡＤ値の算出回数（マッチング処理回数）が少なくなる分だけ、処理を高速化することができると共に、ＳＡＤテーブルを小規模とすることができる。
【００９２】
図１５に示すように、縮小面サーチ範囲１３７に応じて定まる縮小面マッチング処理範囲１４３内に設定される複数個の縮小面参照ブロック１３９と縮小面ターゲットブロック１３１とのブロックマッチングによる相関性評価により、縮小面参照フレーム１３５における縮小面動きベクトル１３６が算出される。この縮小面動きベクトル１３６の精度は、画像が１／ｎ×１／ｎに縮小されているので、１ピクセルのｎ倍の低精度となっている。そこで、この算出された縮小面動きベクトル１３６をｎ倍しても、基底面参照フレーム１３４において、１ピクセル精度の動きベクトル１０４は得られない。
【００９３】
しかし、基底面参照フレーム１３４においては、縮小面動きベクトル１３６をｎ倍した動きベクトルの近傍に、１ピクセル精度の基底面動きベクトル１０４が存在することは明らかである。
【００９４】
そこで、この第１の実施の形態では、図１４（Ｃ）および図１５に示すように、基底面参照フレーム１３４において、縮小面動きベクトル１３６をｎ倍した動きベクトル（基底面参照ベクトル１４１）が指し示す位置を中心として、基底面動きベクトル１０４が存在するであろうと考えられる狭い範囲に、基底面サーチ範囲１４０を設定し、設定された基底面サーチ範囲１４０に応じて基底面マッチング処理範囲１４４を設定する。
【００９５】
そして、図１４（Ｃ）に示すように、この基底面サーチ範囲１４０内の位置を示すものとして、基底面参照フレーム１３４における基底面参照ベクトル１４１を設定し、各基底面参照ベクトル１４１が指し示す位置に基底面参照ブロック１４２を設定して、基底面参照フレーム１３４におけるブロックマッチングを行うようにする。
【００９６】
ここで設定された基底面サーチ範囲１４０および基底面マッチング処理範囲１４４は、図９に示すように、縮小面サーチ範囲１３７および縮小面マッチング処理範囲１４３を縮小率の逆数倍であるｎ倍したサーチ範囲１３７´およびマッチング処理範囲１４３´に比較して非常に狭い範囲でよい。
【００９７】
したがって、階層化マッチングを行わずに、基底面においてのみブロックマッチング処理をした場合には、基底面においては、サーチ範囲１３７´およびマッチング処理範囲１４３´において、複数個の参照ブロックを設定して、ターゲットブロックとの相関値を求める演算をする必要があるが、階層化マッチング処理においては、図９のように、非常に狭い範囲においてのみマッチング処理を行えばよい。
【００９８】
このため、当該狭い範囲である、基底面サーチ範囲１４０および基底面マッチング処理範囲１４４に設定される基底面参照ブロックの数は非常に少なくなり、マッチング処理回数（相関値演算回数）および保持するＳＡＤ値を非常に小さくすることができ、処理を高速化することができると共に、ＳＡＤテーブルを小規模化することができるという効果を得ることができる。
【００９９】
こうして、基底面参照フレーム１３４において、ピクセル精度の基底面動きベクトル１３６が検出できたら、この実施の形態においては、基底面動きベクトル１３６が指し示す参照ブロックのＳＡＤ値、すなわち、最小ＳＡＤ値と、その近傍の近傍ＳＡＤ値とを用いて、この例においても二次曲線近似補間処理を行って、サブピクセル精度の高精度動きベクトルを算出するようにする。
【０１００】
サブピクセル精度の高精度動きベクトルについて説明する。前述したブロックマッチング手法では、ピクセル単位でブロックマッチングを行っているため、動きベクトルはピクセル精度でしか算出されない。図７に示したように、マッチング処理を行った点、つまり、参照ブロックの位置は、ピクセル精度で存在し、より精度の高い動きベクトルを算出するには、サブピクセル単位でのマッチング処理が必要になる。
【０１０１】
Ｎ倍のピクセル精度（画素ピッチは、１／Ｎ）の動きベクトルを算出するために、Ｎ倍のピクセル単位でマッチング処理を行うと、ＳＡＤテーブルは約Ｎ２倍の大きさになり、膨大なメモリが必要になる。また、ブロックマッチング処理のために、Ｎ倍にアッパーサンプルした画像を生成しなくてはならず、ハードウエアの規模は飛躍的に増大する。
【０１０２】
そこで、二次曲線を用いて、ＳＡＤテーブルを補間することで、ピクセル単位でマッチング処理を行ったＳＡＤテーブルから、サブピクセル精度の動きベクトルを算出することを考える。この場合において、二次曲線近似補間ではなく、線形補間や、３次以上の高次の近似曲線補間を用いても良いが、精度とハードウエア化との兼ね合いから、この例では、二次曲線近似補間を用いている。
【０１０３】
この二次曲線近似補間においては、図１６に示すように、ピクセル精度の動きベクトル１０４が指し示すＳＡＤテーブルのＳＡＤ値の最小値Ｓmin（図１６の参照符号１１３参照）と、当該最小値Ｓminの位置の近傍位置の複数個のＳＡＤ値（近傍ＳＡＤ値という）、この例では、最小値Ｓminの位置のＸ方向およびＹ方向に隣接する４個の近傍ＳＡＤ値Ｓx1、Ｓx2およびＳy1、Ｓy2（図１６の参照符号１１４，１１５，１１６，１１７参照）を使用する。
【０１０４】
図１７に示すように、ＳＡＤ値の最小値Ｓminと、Ｘ方向（水平方向）の近傍２点の近傍ＳＡＤ値Ｓx1、Ｓx2を使って、二次の近似曲線１１８を当て嵌め、この二次曲線１１８の極小を取る座標が、サブピクセル精度のＳＡＤ値の最小値ＳＸminとなる動きベクトル（高精度動きベクトル）のＸ座標Ｖｘとなる。このときの二次曲線近似補間の式を、次式（１）に示す。
【０１０５】
ＳＸmin＝１／２×（Ｓx2−Ｓx1）／（Ｓx2−２Ｓmin＋Ｓx1）…式（１）
この計算式（１）で求めたサブピクセル精度のＳＡＤ値の最小値ＳＸminがＳＡＤテーブル上で取るＸ座標が、サブピクセル精度のＳＡＤ値の最小値となるＸ座標Ｖｘとなる。
【０１０６】
この計算式（１）の割り算は、複数回の引き算で実現可能である。求めたいサブピクセル精度が、例えば元の画素ピッチの１／４の画素ピッチの精度であれば、僅か２回の引き算でも求められるため、回路規模、演算時間、共に小さく、二次の近時曲線補間よりもかなり複雑な三次曲線補間と殆ど変わらない性能が実現できる。
【０１０７】
同様に、ＳＡＤ値の最小値Ｓminと、Ｙ方向（垂直方向）の近傍２点の近傍ＳＡＤ値Ｓy1、Ｓy2を使って、二次の近似曲線を当て嵌め、この二次曲線の極小値ＳＹminを取るＹ座標が、サブピクセル精度のＳＡＤ値の最小値となるＹ座標Ｖｙとなる。このときの二次曲線近似補間の式を、次式（２）に示す。
【０１０８】
ＳＹmin＝１／２×（Ｓy2−Ｓy1）／（Ｓy2−２Ｓmin＋Ｓy1）…式（２）
以上のようにして、二次曲線の近似を、Ｘ方向およびＹ方向の２回、行うことで、サブピクセル精度の高精度の動きベクトル（Ｖｘ、Ｖｙ）が求まる。
【０１０９】
以上の説明では、ＳＡＤ値の最小値と、そのＸ方向（水平方向）およびＹ方向（垂直方向）の近傍２点のＳＡＤ値を使用したが、各方向の近傍のＳＡＤ値は２点以上であってもよい。また、二次曲線をＸ方向、Ｙ方向に代えて、例えば、斜め方向に近似曲線を当て嵌めてもかまわない。さらに、Ｘ方向、Ｙ方向に、斜め方向を加えて近似曲線を当て嵌めてもかまわない。
【０１１０】
以上のような手段、手順を用いることにより、ピクセル単位の精度のＳＡＤテーブルの値から、サブピクセル精度のベクトル検出結果が得られることを図１８に示す。図１８の横軸は、補間倍率であり、１次元方向に分解能を何倍にするかを表している。ＳＡＤテーブルは２次元のため、テーブル面積は、この２乗の割合で削減されるのに対し、補間による誤差は、線形程度にしか増加しないことから、上述の補間手法の有用性が分かる。
【０１１１】
＜動き検出・動き補償部１６のハードウエア構成例＞
図１９に、動き検出・動き補償部１６の構成例のブロック図を示す。この例では、動き検出・動き補償部１６は、ターゲットブロック１０２の画素データを保持するターゲットブロックバッファ部１６１と、参照ブロック１０８の画素データを保持する参照ブロックバッファ部１６２と、ターゲットブロック１０２と参照ブロック１０８とで対応する画素についてのＳＡＤ値を計算するマッチング処理部１６３と、マッチング処理部１６３から出力されるＳＡＤ値情報から動きベクトルを算出する動きベクトル算出部１６４と、それぞれのブロックを制御するコントロール部１６５と、を備える。
【０１１２】
そして、動き検出・動き補償部１６と、画像メモリ部４とは、システムバス２を通じて接続されている。すなわち、この例では、システムバス２とターゲットブロックバッファ部１６１および参照ブロックバッファ部１６２との間には、それぞれバス・インターフェース部２１およびバス・インターフェース部２２が接続されている。ここで、システムバス２でのプロトコルは、この例では、ＡＸＩインターコネクトが用いられている。
【０１１３】
通常撮像モードの静止画撮像時においては、ターゲットブロックバッファ部１６１には、画像メモリ部４に記憶されている縮小面ターゲット画像Ｐrtまたは基底面ターゲット画像Ｐbtの画像フレームからの縮小面ターゲットブロックまたは基底面ターゲットブロックが書き込まれる。縮小面ターゲット画像Ｐrtまたは基底面ターゲット画像Ｐbtは、１枚目は、シャッターボタン押下後の最初の撮像フレームの画像がターゲットフレーム１０２として書き込まれ、参照画像とのブロックマッチングに基づき画像の重ね合わせがなされると、当該画像の重ね合わせ後のＮＲ画像に書き換えられてゆく。この実施形態では、この基底面ターゲット画像Ｐbtおよび縮小面ターゲット画像Ｐcrの画像データは、圧縮符号化されない。
【０１１４】
参照ブロックバッファ部１６２には、画像メモリ部４に記憶されている縮小面参照画像Ｐrrまたは基底面参照画像Ｐbrの画像フレームからの縮小面参照ブロックまたは基底面参照ブロックが書き込まれる。縮小面参照画像Ｐrrまたは基底面参照画像Ｐbrは、前記最初の撮像フレームの後の撮像フレームが、参照フレーム１０８として書き込まれる。
【０１１５】
この場合、静止画撮像時に、連続して高速撮影された複数枚の撮像画像を取り込みながら画像の重ね合わせ処理を行う場合（これを撮影中加算と呼ぶことにする）には、基底面参照画像および縮小面参照画像としては、前記最初の撮像フレームの後の撮像フレームが、１枚ずつ順次に取り込まれる。したがって、基底面参照画像および縮小面参照画像としては、１枚ずつを保持すればよい。
【０１１６】
しかし、静止画撮像時に、連続して高速撮影された複数枚の撮像画像を取り込んだ後、動き検出・動き補償部１６および画像重ね合わせ部１７で、動きベクトル検出を行い、画像の重ね合わせを実行するようにする場合（これを撮影後加算と呼ぶことにする）には、基底面参照画像および縮小面参照画像としては、前記最初の撮像フレームの後の複数枚の撮像フレームの全てを格納保持しておく必要がある。
【０１１７】
前述したように、撮像装置としては、静止画撮像時におけるＮＲ処理として、撮影中加算および撮影後加算のいずれも用いることができるが、この実施形態では、静止画ＮＲ処理は、多少処理時間がかかっても、ノイズが低減された綺麗な画像が要求されることを考慮して、撮影後加算の処理を採用している。
【０１１８】
一方、通常撮像モードにおける動画撮像時においては、動き検出・動き補償部１６には、画像補正・解像度変換部１５からの撮像フレームがターゲットフレーム１０２として入力される。ターゲットブロックバッファ部１６１には、この画像補正・解像度変換部１５からの、ターゲットフレームから抽出されたターゲットブロックが書き込まれる。また、参照ブロックバッファ部１６２には、前記ターゲットフレームよりも１枚前の、画像メモリ部４に記憶されている撮像フレームが参照フレーム１０８とされて、この参照フレーム（基底面参照画像Ｐbrまたは縮小面参照画像Ｐrr）からの参照ブロックが書き込まれる。
【０１１９】
この動画撮像時には、画像メモリ部４には、画像補正・解像度変換部１５からのターゲットフレームとの間でブロックマッチングをすべき、１枚前の撮像画像フレームを基底面参照画像Ｐbrおよび縮小面参照画像Ｐrrとして保持するだけでよく、画像メモリ部４に保持する画像情報は、１枚分（１フレーム分）でよいので、この例では、基底面参照画像Ｐbrおよび縮小面参照画像Ｐrrとしては、画像データ圧縮していない。
【０１２０】
マッチング処理部１６３では、前述の図２〜図７を用いて説明したブロックマッチング処理を、ターゲットブロックバッファ部１６１に記憶されたターゲットブロックと、参照ブロックバッファ部１６２に記憶された参照ブロックとについて行う。
【０１２１】
ここで、ブロックマッチングにおけるターゲットブロックと、参照ブロックとの相関の強さを検出するためには、この実施の形態においても、画像データの輝度情報を用いてＳＡＤ値算出を行い、その最小ＳＡＤ値を検出して、当該最小ＳＡＤ値を呈する参照ブロックを最強相関参照ブロックとして検出するようにする。
【０１２２】
なお、ＳＡＤ値の算出は、輝度情報ではなく、色差信号や、３原色信号Ｒ，Ｇ，Ｂの情報を使用しても良いことは言うまでもない。また、ＳＡＤ値の算出に当たっては、通常は、ブロック内の全画素を用いるようにするが、演算量削減のため、間引き等により、飛び飛びの位置の限られた画素の画素値のみを使用するようにしてもよい。
【０１２３】
動きベクトル算出部１６４は、マッチング処理部１６３のマッチング処理結果からターゲットブロックに対する参照ブロックの動きベクトルを検出する。この実施形態では、動きベクトル算出部１６４は、ＳＡＤ値の最小値を検出保持すると共に、この最小ＳＡＤ値を呈する参照ベクトルの近傍の複数個の参照ベクトルのＳＡＤ値をも保持して、例えば二次曲線近似補間処理を行って、サブピクセル精度の高精度動きベクトルを検出する機能も備える。
【０１２４】
コントロール部１６５は、ＣＰＵ１による制御を受けながら、この動き検出・動き補償部１６における階層化ブロックマッチング処理の処理動作を制御するようにする。
【０１２５】
[動きベクトル算出部１６４について]
次に、動きベクトル算出部１６４の構成例およびその動作について説明する。
【０１２６】
従来から知られている動きベクトル算出部の例においては、サーチ範囲において算出したＳＡＤ値を全て記憶するＳＡＤテーブルＴＢＬを生成し、そのＳＡＤテーブルＴＢＬから最小ＳＡＤ値を検出し、当該最小ＳＡＤ値を呈する参照ブロックの位置に対応する参照ベクトルを動きベクトルとして算出する。そして、二次曲線近似補間をする場合には、生成したＳＡＤテーブルＴＢＬから、前記最小ＳＡＤ値の近傍の複数個、この例では、４個のＳＡＤ値を抽出し、これらのＳＡＤ値を用いて補間処理をする。したがって、この方法は、ＳＡＤテーブルＴＢＬの分だけ、大規模なメモリを必要とする。
【０１２７】
以下に説明する例は、サーチ範囲で算出したＳＡＤ値を全て記憶するＳＡＤテーブルＴＢＬを生成しないことにより、より回路規模を削減することができるとともに、処理時間も削減することができるようにするものである。
【０１２８】
＜実施形態の動きベクトル算出部１６４の第１の例＞
上述したように、ブロックマッチング処理は、参照ベクトルの示す位置を参照ブロックの位置とし、各参照ブロックの各画素とターゲットブロックの各画素のＳＡＤ値を計算し、その計算処理を、サーチ範囲内のすべての参照ベクトルの示す位置の参照ブロックについて行う。
【０１２９】
ここで、サーチ範囲内において参照ブロックの位置を変えて、動き補償ブロックをサーチする場合に、サーチを画面（フレーム）の端から順番に行う、画面（フレーム）の中心から外側に向かって行う、などいろいろな方法が考えられるが、この実施の形態では、サーチ方向は、図２０（Ａ）で矢印１２０に示すように設定され、サーチ範囲の左上端から水平方向にサーチを開始し、１ライン分のサーチが終わった後、垂直方向に１ライン下のラインを、左端から水平方向にサーチする、という手順を繰り返すサーチ方法を採用する。
【０１３０】
すなわち、図２０（Ｂ）に示すように、サーチ範囲１０６において、当該サーチ範囲１０６の左上から水平方向に参照ブロック１０８を順次に設定してサーチして、各参照ブロック１０８についてのＳＡＤ値の計算を行う。すると、図２０（Ｃ）に示すように、対応するＳＡＤテーブルも左上から水平方向に埋まっていく。このとき、実際にマッチング処理に使用される画素データの範囲は、参照ブロック１０８の大きさに応じたマッチング処理範囲１１０となるのは、前述した通りである。
【０１３１】
図１６および図１７に示したように、この例のサブピクセル精度の二次曲線近似補間処理を行うためには、ＳＡＤ値の最小値Ｓmin、およびその近傍のＳＡＤ値Ｓx1、Ｓx2、Ｓy1、Ｓy2が求まれば良い。
【０１３２】
各参照ブロックについてのＳＡＤ値を算出した際に、その算出したＳＡＤ値と、その時点までのＳＡＤ値の最小値とを比較して、算出したＳＡＤ値がその時までのＳＡＤ値の最小値よりも小さければ、算出したＳＡＤ値を最小値として保持すると共に、そのＳＡＤ値とそのときの参照ベクトルを保持することにより、ＳＡＤ値の最小値および当該最小値を取る参照ブロックの位置情報（参照ベクトルの情報）とを、ＳＡＤテーブルを生成することなく、求めることができる。
【０１３３】
そして、検出したＳＡＤ値の最小値を保持すると共に、その最小ＳＡＤ値となる参照ブロック位置の近傍の参照ブロックのＳＡＤ値を、近傍ＳＡＤ値として保持するようにすれば、近傍ＳＡＤ値をも、ＳＡＤテーブルを生成することなく、保持することができる。
【０１３４】
このとき、この例では、図２１（Ａ）に示すように、上述の図２０（Ａ）に示したようなサーチ方法を採用しているので、従来のＳＡＤテーブルＴＢＬにおいて水平方向の１ライン分のＳＡＤ値を記憶する容量のメモリ（以下、ラインメモリという）を設ければ、新たに参照ブロックのＳＡＤ値が算出されたときには、ＳＡＤテーブルＴＢＬ上では、図２１（Ｂ）で斜線を付して示すように、当該新たに算出されたＳＡＤ値１２１に対して、それより前に算出されたＳＡＤテーブルＴＢＬの１ライン分の複数個の参照ブロックのＳＡＤ値が、格納データ１２２として前記ラインメモリに格納されていることになる。
【０１３５】
そこで、新たに算出された参照ブロックのＳＡＤ値が、最小のＳＡＤ値として検出されたときには、ＳＡＤテーブルＴＢＬ上において、前記最小ＳＡＤ値１２１を呈する参照ブロックの位置の１ライン上の位置の参照ブロックのＳＡＤ値１２３（近傍ＳＡＤ値（Ｓy1））と、前記最小ＳＡＤ値１２１を呈する参照ブロックの位置の左横の位置の参照ブロックのＳＡＤ値１２４（近傍ＳＡＤ値（Ｓx1））は、前記ラインメモリから取得することができる。
【０１３６】
そして、ＳＡＤテーブルＴＢＬ上において、最小ＳＡＤ値の参照ブロックの位置の右横の位置の参照ブロックのＳＡＤ値である近傍ＳＡＤ値（Ｓx2）（図２１（Ｃ）の符号１２５参照）は、後で、その参照ブロック位置で算出されたＳＡＤ値を保持すればよい。同様に、ＳＡＤテーブルＴＢＬ上において、新たに算出された最小ＳＡＤ値の参照ブロックの位置の１ライン下の位置の参照ブロックのＳＡＤ値である近傍ＳＡＤ値（Ｓy2）（図２１（Ｃ）の符号１２６参照）も、後で、その参照ブロック位置で算出されたＳＡＤ値を保持すればよい。
【０１３７】
以上のことを考慮して、この動きベクトル算出部１６４の第１の例は、図２２に示すようなハードウエア構成とする。
【０１３８】
すなわち、この動きベクトル算出部１６４の第１の例においては、算出された全てのＳＡＤ値を保持するＳＡＤテーブルＴＢＬは備えず、ＳＡＤ値書き込み部１６４１と、ＳＡＤ値比較部１６４２と、ＳＡＤ値保持部１６４３と、Ｘ方向（水平方向）近傍値抽出部１６４４およびＹ方向（垂直方向）近傍値抽出部１６４５と、二次曲線近似補間処理部１６４６と、ＳＡＤテーブルＴＢＬの１ライン分のメモリ（ラインメモリという）１６４７とを備えてなる。
【０１３９】
ＳＡＤ値保持部１６４３は、最小ＳＡＤ値Ｓminおよび近傍ＳＡＤ値Ｓx1、Ｓx2、Ｓy1、Ｓy2の保持部（メモリ）を備える。そして、この第１の例においては、ＳＡＤ値保持部１６４３は、その最小ＳＡＤ値保持部からの最小ＳＡＤ値ＳminをＳＡＤ値比較部１６４２に供給する共に、保持している近傍ＳＡＤ値のうち、最小ＳＡＤ値Ｓminの右側の近傍ＳＡＤ値Ｓx2の参照ブロックの位置情報（参照ベクトル）と、最小ＳＡＤ値Ｓminの下側の近傍ＳＡＤ値Ｓy2の参照ブロックの位置情報（参照ベクトル）とを、ＳＡＤ値書き込み部１６４１に供給する。
【０１４０】
ＳＡＤ値比較部１６４２は、この第１の例においては、マッチング処理部１６３からの参照ブロックの位置情報（参照ベクトル）と、当該参照ブロックのＳＡＤ値Ｓinとを受けると共に、ＳＡＤ値保持部１６４３の最小ＳＡＤ値保持部からの最小ＳＡＤ値Ｓminとを受ける。
【０１４１】
そして、ＳＡＤ値比較部１６４２は、マッチング処理部１６３からの当該時点で算出されたＳＡＤ値Ｓinと、ＳＡＤ値保持部１６４３の最小ＳＡＤ値保持部からの最小ＳＡＤ値Ｓminとの両者を比較し、マッチング処理部１６３からの当該時点で算出されたＳＡＤ値Ｓinの方が小さいときには、当該時点で、そのＳＡＤ値を最小ＳＡＤ値であるとして検出し、また、ＳＡＤ値Ｓinの方が小さいときには、当該時点では、ＳＡＤ値保持部１６４３の最小ＳＡＤ値保持部からの最小ＳＡＤ値Ｓminが未だ最小値であると検出する。そして、ＳＡＤ値比較部１６４２は、その検出結果の情報ＤＥＴをＳＡＤ値書き込み部１６４１およびＳＡＤ値保持部１６４３に供給する。
【０１４２】
ＳＡＤ値書き込み部１６４１は、マッチング処理部１６３からの算出されたＳＡＤ値Ｓinおよびその位置情報（参照ベクトル）を一時保持するための１画素分のバッファメモリを備え、この第１の例においては、マッチング処理部１６３からの参照ブロックの位置情報（参照ベクトル）と、当該参照ブロックのＳＡＤ値Ｓinとを、ラインメモリ１６４７に書き込む。この場合、ラインメモリ１６４７は、シフトレジスタと同様の動作を行い、空きスペースが無いときには、新規の位置情報およびＳＡＤ値が記憶されると、ラインメモリ１６４７において最も古い前記位置情報およびＳＡＤ値が廃棄される。
【０１４３】
また、ＳＡＤ値書き込み部１６４１は、算出されたＳＡＤ値Ｓinおよびその位置情報をラインメモリ１６４７に書き込む前に、この第１の例においては、次のような処理を行う。
【０１４４】
すなわち、ＳＡＤ値書き込み部１６４１は、ＳＡＤ値比較部１６４２からの比較検出結果の情報ＤＥＴが、ＳＡＤ値Ｓinが最小値であることを示しているときには、マッチング処理部１６３からの参照ブロックの位置情報（参照ベクトル）と、当該参照ブロックのＳＡＤ値Ｓinとを、ＳＡＤ値保持部１６４３に送る。
【０１４５】
ＳＡＤ値保持部１６４３は、ＳＡＤ値比較部１６４２からの比較検出結果の情報ＤＥＴにより、ＳＡＤ値Ｓinが最小値であることを検知し、ＳＡＤ値書き込み部１６４１から送られてくる参照ブロックの位置情報（参照ベクトル）と、当該参照ブロックのＳＡＤ値Ｓinとを、最小ＳＡＤ値保持部に格納する。
【０１４６】
また、ＳＡＤ値書き込み部１６４１は、この第１の例においては、マッチング処理部１６３からの参照ブロックの位置情報（参照ベクトル）が、ＳＡＤ値保持部１６４３から受け取った近傍ＳＡＤ値Ｓx2またはＳy2の位置情報と一致したときにも、マッチング処理部１６３からの参照ブロックの位置情報（参照ベクトル）と、当該参照ブロックのＳＡＤ値Ｓinとを、ＳＡＤ値保持部１６４３に送る。
【０１４７】
ＳＡＤ値保持部１６４３は、受け取った参照ブロックの位置情報（参照ベクトル）から、いずれの近傍ＳＡＤ値に関する情報かを認識して、対応する近傍ＳＡＤ値保持部に格納する。
【０１４８】
以上の処理をサーチ範囲における全ての参照ブロックについて終了すると、ＳＡＤ値保持部１６４３には、前述したように、最小ＳＡＤ値およびその位置情報ならびに４個の近傍ＳＡＤ値およびその位置情報が保持される。
【０１４９】
そこで、Ｘ方向（水平方向）近傍値抽出部１６４４およびＹ方向（垂直方向）近傍値抽出部１６４５が、ＳＡＤ値保持部１６４３に保持された、前記検出した最小のＳＡＤ値Ｓminとその近傍ＳＡＤ値Ｓx1、Ｓx2、Ｓy1、Ｓy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部１６４６に送る。これを受けた二次曲線近似補間処理部１６４６は、二次曲線による補間を、Ｘ方向およびＹ方向の２回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する。
【０１５０】
以上のようにして、第１の例においては、ＳＡＤテーブルＴＢＬの代わりに、ＳＡＤテーブルＴＢＬの１ライン分のラインメモリを用いることにより、サブピクセル精度の動きベクトルの検出ができる。
【０１５１】
この第１の例における縮小面でのブロックマッチング処理時の流れの例を図２３のフローチャートに、基底面でのブロックマッチング処理時の流れの例を図２４および図２５のフローチャートに、それぞれ示す。これらの第２の例のフローチャートの各ステップも、マッチング処理部１６３および動きベクトル算出部１６４においてなされるものである。
【０１５２】
先ず、縮小面におけるブロックマッチング処理時の流れの例である図２３のフローチャートについて説明する。
【０１５３】
はじめに、動きベクトル算出部１６４のＳＡＤ値保持部１６４３の最小ＳＡＤ値Ｓminの初期値を設定する（ステップＳ１）。この最小ＳＡＤ値Ｓminの初期値としては、例えば、画素の差分の最大値が設定される。
【０１５４】
次に、マッチング処理部１６３では、縮小面の参照ベクトル（Ｖｘ，Ｖｙ）を設定して、ＳＡＤ値を計算する縮小面参照ブロック位置を設定し（ステップＳ２）、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部１６２から読み込む（ステップＳ３）と共に、ターゲットブロックバッファ部１６１から縮小面ターゲットブロックの画素データを読み込んで、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、ＳＡＤ値を求め、求めたＳＡＤ値を動きベクトル算出部１６４に送出する（ステップＳ４）。
【０１５５】
動きベクトル算出部１６４では、ＳＡＤ値書き込み部１６４１により、そのＳＡＤ値をラインメモリ１６４７に書き込む（ステップＳ５）。
【０１５６】
そして、動きベクトル算出部１６４では、ＳＡＤ値比較部１６４２が、マッチング処理部１６３で算出されたＳＡＤ値Ｓinと、ＳＡＤ値保持部１６４３に保持されている最小ＳＡＤ値Ｓminとを比較して、算出されたＳＡＤ値Ｓinが、それまで保持されている最小ＳＡＤ値Ｓminよりも小さいか否か判別する（ステップＳ６）。
【０１５７】
このステップＳ６で、算出されたＳＡＤ値Ｓinが最小ＳＡＤ値Ｓminより小さいと判別したときには、ステップＳ７に進み、ＳＡＤ値保持部１６４３に保持される最小ＳＡＤ値Ｓminの情報およびその位置情報（縮小面参照ベクトル）の更新がなされる。
【０１５８】
また、ステップＳ６で、算出されたＳＡＤ値Ｓinが最小ＳＡＤ値Ｓminより大きいと判別したときには、ステップＳ７の保持情報の更新処理は行わずにステップＳ８に進み、マッチング処理部１６３は、サーチ範囲の全ての縮小面参照ブロックの位置（縮小面参照ベクトル）でマッチング処理を終了したか否か判別し、未だ、サーチ範囲においては、未処理の参照ブロックがあると判別したときには、ステップＳ２に戻り、前述したステップＳ２以降の処理を繰り返す。
【０１５９】
また、マッチング処理部１６３は、ステップＳ８で、サーチ範囲の全ての縮小面参照ブロックの位置（縮小面参照ベクトル）でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部１６４に伝える。
【０１６０】
動きベクトル算出部１６４では、これを受けて、ＳＡＤ値保持部１６４３に保持される最小ＳＡＤ値Ｓminの位置情報（縮小面参照ベクトル）を、コントロール部１６５に出力する（ステップＳ９）。
【０１６１】
以上で、この例における縮小面におけるブロックマッチング処理を終了する。
【０１６２】
次に、基底面におけるブロックマッチング処理時の流れの例である図２４および図２５のフローチャートについて説明する。
【０１６３】
はじめに、動きベクトル算出部１６４のＳＡＤ値保持部１６４３の最小ＳＡＤ値Ｓminの初期値を設定する（ステップＳ１１）。この最小ＳＡＤ値Ｓminの初期値としては、例えば、画素の差分の最大値が設定される。
【０１６４】
次に、マッチング処理部１６３では、基底面における参照ベクトル（Ｖｘ，Ｖｙ）を設定して、ＳＡＤ値を計算する基底面参照ブロック位置を設定し（ステップＳ１２）、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部１６２から読み込む（ステップＳ１３）。
【０１６５】
そして、ターゲットブロックバッファ部１６１から基底面ターゲットブロックの画素データを読み込んで、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、ＳＡＤ値を求め、求めたＳＡＤ値を動きベクトル算出部１６４に送出する（ステップＳ１４）。
【０１６６】
動きベクトル算出部１６４では、ＳＡＤ値書き込み部１６４１により、そのＳＡＤ値をラインメモリ１６４７に書き込む（ステップＳ１５）。そして、動きベクトル算出部１６４では、ＳＡＤ値比較部１６４２が、マッチング処理部１６３で算出されたＳＡＤ値Ｓinと、ＳＡＤ値保持部１６４３に保持されている最小ＳＡＤ値Ｓminとを比較して、算出されたＳＡＤ値Ｓinが、それまで保持されている最小ＳＡＤ値Ｓminよりも小さいか否か判別する（ステップＳ１６）。
【０１６７】
このステップＳ１６で、算出されたＳＡＤ値Ｓinが最小ＳＡＤ値Ｓminより小さいと判別したときには、ステップＳ１７に進み、ＳＡＤ値保持部１６４３に保持される最小ＳＡＤ値Ｓminの情報および当該最小ＳＡＤ値Ｓminを呈する参照ブロック位置の１ピクセル上および１ピクセル左の位置の参照ブロックのＳＡＤ値およびその位置情報（基底面参照ベクトル）の更新がなされる。
【０１６８】
すなわち、ＳＡＤ値比較部１６４２は、算出されたＳＡＤ値Ｓinが最小ＳＡＤ値Ｓminより小さい旨の比較結果の情報ＤＥＴをＳＡＤ値書き込み部１６４１に送る。すると、ＳＡＤ値書き込み部１６４１は、当該算出されたＳＡＤ値Ｓinおよびその位置情報（基底面参照ベクトル）を、新たな最小ＳＡＤ値Ｓminの情報としてＳＡＤ値保持部１６４３に送ると共に、図２１（Ｂ）から分かるように、ラインメモリ１６４７の最も古いＳＡＤ値およびその位置情報（基底面参照ベクトル）と、最も新しいＳＡＤ値およびその位置情報（基底面参照ベクトル）とを、最小ＳＡＤ値の位置の１ピクセル上の位置の基底面参照ブロックのＳＡＤ値Ｓy1の情報および１ピクセル左の位置の基底面参照ブロックのＳＡＤ値Ｓx1の情報として、ＳＡＤ値保持部１６４３に送る。ＳＡＤ値保持部１６４３は、受け取った新たな最小ＳＡＤ値Ｓminの情報および１ピクセル上の位置の基底面参照ブロックのＳＡＤ値Ｓy1の情報および１ピクセル左の位置の基底面参照ブロックのＳＡＤ値Ｓx1の情報により、それぞれ対応する保持情報を更新する。
【０１６９】
そして、ステップ１７の次には、図２５のステップＳ２１に進む。また、ステップＳ１６で、算出されたＳＡＤ値Ｓinが最小ＳＡＤ値Ｓminより大きいと判別したときには、ステップＳ１７の保持情報の更新処理は行わずにステップＳ２１に進む。
【０１７０】
ステップＳ２１では、ＳＡＤ値書き込み部１６４１は、算出されたＳＡＤ値Ｓinについての位置情報（参照ベクトル）の指す位置が、最小ＳＡＤ値Ｓminとして保持されている基底面参照ブロックの位置の１ピクセル下の基底面参照ブロックの位置であるか否か判別し、１ピクセル下の基底面参照ブロックの位置であると判別したときには、算出されたＳＡＤ値Ｓinおよびその位置情報（参照ベクトル）をＳＡＤ値保持部１６４３に送る。ＳＡＤ値保持部１６４３は、受け取ったＳＡＤ値およびその位置情報により、前記１ピクセル下の位置の基底面参照ブロックについての近傍ＳＡＤ値Ｓy2の保持情報を更新する（ステップＳ２２）。
【０１７１】
ステップＳ２１で、算出されたＳＡＤ値Ｓinについての位置情報（基底面参照ベクトル）の指す位置が、最小ＳＡＤ値Ｓminとして保持されている基底面参照ブロックの位置の１ピクセル下の基底面参照ブロックの位置でないと判別したときには、ＳＡＤ値書き込み部１６４１は、算出されたＳＡＤ値Ｓinについての位置情報（基底面参照ベクトル）の指す位置が、最小ＳＡＤ値Ｓminとして保持されている基底面参照ブロックの位置の１ピクセル下の基底面参照ブロックの位置であるか否か判別する（ステップＳ２３）。
【０１７２】
このステップＳ２３で、算出されたＳＡＤ値Ｓinについての位置情報（基底面参照ベクトル）の指す位置が、最小ＳＡＤ値Ｓminとして保持されている基底面参照ブロックの位置の１ピクセル右の基底面参照ブロックの位置であると判別したときには、ＳＡＤ値書き込み部１６４１は、算出されたＳＡＤ値Ｓinおよびその位置情報（基底面参照ベクトル）をＳＡＤ値保持部１６４３に送る。ＳＡＤ値保持部１６４３は、受け取ったＳＡＤ値およびその位置情報により、前記１ピクセル右の位置の基底面参照ブロックについての近傍ＳＡＤ値Ｓx2の保持情報を更新する（ステップＳ２４）。
【０１７３】
ステップＳ２３で、算出されたＳＡＤ値Ｓinについての位置情報（基底面参照ベクトル）の指す位置が、最小ＳＡＤ値Ｓminとして保持されている基底面参照ブロックの位置の１ピクセル右の基底面参照ブロックの位置でないと判別したときには、ＳＡＤ値書き込み部１６４１は、算出されたＳＡＤ値Ｓinおよびその位置情報（基底面参照ベクトル）は、ラインメモリ１６４７にのみ書き込み（前述のステップＳ１５）、ＳＡＤ値保持部１６４３に送らない。
【０１７４】
そして、マッチング処理部１６３は、サーチ範囲の全ての基底面参照ブロックの位置（参照ベクトル）でマッチング処理を終了したか否か判別し（ステップＳ２５）、未だ、サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、図２４のステップＳ１２に戻り、前述したステップＳ１２以降の処理を繰り返す。
【０１７５】
また、マッチング処理部１６３は、ステップＳ１５で、サーチ範囲の全ての基底面参照ブロックの位置（基底面参照ベクトル）でマッチング処理を終了したと判別したときには、その旨を動きベクトル算出部１６４に伝える。
【０１７６】
動きベクトル算出部１６４では、これを受けて、Ｘ方向（水平方向）近傍値抽出部１６４４およびＹ方向（垂直方向）近傍値抽出部１６４５が、ＳＡＤ値保持部１６４３に保持された、前記検出した最小のＳＡＤ値Ｓminとその近傍ＳＡＤ値Ｓx1、Ｓx2、Ｓy1、Ｓy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部１６４６に送る。これを受けた二次曲線近似補間処理部１６４６は、二次曲線による補間を、Ｘ方向およびＹ方向の２回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する（ステップＳ２６）。以上で、１枚の基底面参照フレームについての第２の例のブロックマッチング処理を終了する。
【０１７７】
以上のように、この第１の例においては、算出された全てのＳＡＤ値を保持するＳＡＤテーブルを保持することなく、ＳＡＤテーブルの１ライン分を設けると共に、ＳＡＤ値書き込み部１６４１に１画素分のＳＡＤ値を保持しておくだけで、補間処理によるサブピクセル精度の動きベクトル検出を行うことができる。
【０１７８】
この第１の例の方法は、従来のＳＡＤテーブルＴＢＬのすべてを保持する手法と比べて、ブロックマッチング回数は同じであるため、処理時間は変わらず、ハードウエア規模を削減できるという効果を奏する。
【０１７９】
なお、上述した第１の例の説明においては、ＳＡＤ値比較部１６４２は、マッチング処理部１６３からの算出されたＳＡＤ値Ｓinと、ＳＡＤ値保持部１６３に保持されている最小ＳＡＤ値Ｓminとを比較するようにしたが、ＳＡＤ値比較部１６４２が最小ＳＡＤ値の保持部を備え、その保持した最小ＳＡＤ値と、算出されたＳＡＤ値Ｓinとを比較し、算出されたＳinの方が小さいときには、保持した最小ＳＡＤ値を更新すると共に、その位置情報と共に、ＳＡＤ値書き込み部１６４１を通じてＳＡＤ値保持部１６４３に送って、ＳＡＤ値保持部１６４３の最小ＳＡＤ値保持部に保持させるようにしても良い。
【０１８０】
＜実施形態の動きベクトル算出部１６４の第２の例＞
この動きベクトル算出部１６４の第２の例においては、前記第１の例の場合のラインメモリ１６４７も省略して、より、ハードウエア規模の削減を図るようにした例である。
【０１８１】
この第２の例においては、サーチ範囲における参照ブロックのＳＡＤ値の最小値Ｓminおよびその位置情報（参照ベクトル）の検出および保持は、上述した第１の例と全く同様に行う。しかし、近傍ＳＡＤ値およびその位置情報の取得および保持に関しては、第１の例のように、ＳＡＤ値Ｓminの検出時と同時には行わず、検出された最小ＳＡＤ値Ｓminの位置情報を、マッチング処理部１６３に返して、マッチング処理部１６３で、最小ＳＡＤ値Ｓminの近傍４点位置の参照ブロックについてのＳＡＤ値を再度、算出して、動きベクトル算出部１６４に供給するようにする。
【０１８２】
動きベクトル算出部１６４では、当該マッチング処理部１６３からの再度のブロックマッチング処理により算出された前記近傍４点位置のＳＡＤ値およびその位置情報（参照ベクトル）を受け取って、ＳＡＤ値保持部１６４３のそれぞれの保持部に格納するようにする。
【０１８３】
この動きベクトル算出部１６４の第２の例のハードウエア構成例を、図２６に示す。すなわち、この動きベクトル算出部１６４の第３の例においては、第１の例のラインメモリ１６４７は備えずに、図２６に示すように、ＳＡＤ値書き込み部１６４１と、ＳＡＤ値比較部１６４２と、ＳＡＤ値保持部１６４３と、Ｘ方向（水平方向）近傍値抽出部１６４４およびＹ方向（垂直方向）近傍値抽出部１６４５と、二次曲線近似補間処理部１６４６とを備えてなる。
【０１８４】
この第２の例においても、Ｘ方向（水平方向）近傍値抽出部１６４４およびＹ方向（垂直方向）近傍値抽出部１６４５と、二次曲線近似補間処理部１６４６とは、前述した第１の例と同様の動作を行うが、ＳＡＤ値書き込み部１６４１、ＳＡＤ値比較部１６４２、ＳＡＤ値保持部１６４３およびラインメモリ１６４７の部分は、前述の第１の例とは、異なる動作を行う。
【０１８５】
ＳＡＤ値保持部１６４３は、第１の例と同様に、最小ＳＡＤ値Ｓminおよび近傍ＳＡＤ値Ｓx1、Ｓx2、Ｓy1、Ｓy2の保持部（メモリ）を備える。そして、この第２の例においても、ＳＡＤ値保持部１６４３は、その最小ＳＡＤ値保持部からの最小ＳＡＤ値ＳminをＳＡＤ値比較部１６４２に供給する。しかし、この第２の例においては、ＳＡＤ値保持部１６４３は、第１の例とは異なり、近傍ＳＡＤ値の位置情報を、ＳＡＤ値書き込み部１６４１に供給することしない。
【０１８６】
ＳＡＤ値比較部１６４２は、この第２の例においても、マッチング処理部１６３からの当該時点で算出されたＳＡＤ値Ｓinと、ＳＡＤ値保持部１６４３の最小ＳＡＤ値保持部からの最小ＳＡＤ値Ｓminとの両者を比較し、マッチング処理部１６３からの当該時点で算出されたＳＡＤ値Ｓinの方が小さいときには、当該時点で、そのＳＡＤ値を最小ＳＡＤ値であるとして検出し、また、ＳＡＤ値Ｓinの方が小さいときには、当該時点では、ＳＡＤ値保持部１６４３の最小ＳＡＤ値保持部からの最小ＳＡＤ値Ｓminが未だ最小値であると検出する。そして、ＳＡＤ値比較部１６４２は、その検出結果の情報ＤＥＴをＳＡＤ値書き込み部１６４１およびＳＡＤ値保持部１６４３に供給する。
【０１８７】
ＳＡＤ値書き込み部１６４１は、前述例と同様に、マッチング処理部１６３からの算出されたＳＡＤ値Ｓinおよびその位置情報（参照ベクトル）を一時保持するための１画素分のバッファメモリを備える。そして、この第２の例においては、ＳＡＤ値書き込み部１６４１は、ＳＡＤ値比較部１６４２からの比較検出結果の情報ＤＥＴが、ＳＡＤ値Ｓinが最小値であることを示しているときには、マッチング処理部１６３からの参照ブロックの位置情報（参照ベクトル）と、当該参照ブロックのＳＡＤ値Ｓinとを、ＳＡＤ値保持部１６４３に送る。
【０１８８】
ＳＡＤ値保持部１６４３は、ＳＡＤ値比較部１６４２からの比較検出結果の情報ＤＥＴにより、ＳＡＤ値Ｓinが最小値であることを知り、ＳＡＤ値書き込み部１６４１から送られてくる参照ブロックの位置情報（参照ベクトル）と、当該参照ブロックのＳＡＤ値Ｓinとを、最小ＳＡＤ値保持部に格納する。
【０１８９】
以上の処理を、サーチ範囲内の全ての参照ブロックについてマッチング処理部１６３で算出されたＳＡＤ値について、行う。そして、この第２の例においては、サーチ範囲内の全ての参照ブロックについてのＳＡＤ値の算出が終了したときに、ＳＡＤ値保持部１６４３は、保持している最小ＳＡＤ値Ｓminの位置情報（参照ベクトル）Ｖminを、マッチング処理部１６３に供給して、当該位置情報の近傍の４点の参照ブロックについてのＳＡＤ値の再算出を依頼する。
【０１９０】
マッチング処理部１６３では、ＳＡＤ値保持部１６４３から最小ＳＡＤ値Ｓminの位置情報（参照ベクトル）Ｖminを含む近傍参照ブロックについてのＳＡＤ値の再算出の依頼を受け取ると、前記最小ＳＡＤ値Ｓminの位置情報（参照ベクトル）Ｖminから、その近傍４点の近傍参照ブロックの位置を検出し、検出した位置の参照ブロックについて、ＳＡＤ値の算出を行う。そして、算出したＳＡＤ値を、その位置情報（参照ベクトル）と共に、ＳＡＤ値書き込み部１６４１に順次に供給する。
【０１９１】
この場合、マッチング処理部１６３は、サーチ方向の順にブロックマッチング処理を行うので、近傍ＳＡＤ値は、ＳＡＤ値Ｓy1、Ｓx1、Ｓx2、Ｓy2の順に算出される。ＳＡＤ値書き込み部１６４１は、受け取った再算出されたＳＡＤ値およびその位置情報（参照ベクトル）を、順次にＳＡＤ値保持部１６４３に供給する。
【０１９２】
ＳＡＤ値保持部１６４３は、この再算出されたＳＡＤ値およびその位置情報（参照ベクトル）を、順次に、対応する格納部に書き込んで保持する。
【０１９３】
こうして、近傍参照ブロックについてのＳＡＤ値の再算出が終了すると、前述の第１の例と同様にして、Ｘ方向（水平方向）近傍値抽出部１６４４およびＹ方向（垂直方向）近傍値抽出部１６４５が、ＳＡＤ値保持部１６４３に保持された、前記検出した最小のＳＡＤ値Ｓminとその近傍ＳＡＤ値Ｓx1、Ｓx2、Ｓy1、Ｓy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部１６４６に送る。これを受けた二次曲線近似補間処理部１６４６は、二次曲線による補間を、Ｘ方向およびＹ方向の２回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する。
【０１９４】
以上のようにして、第２の例においては、ＳＡＤテーブルＴＢＬやラインメモリを用いずに、サブピクセル精度の動きベクトルの検出ができる。
【０１９５】
この第２の例における縮小面でのブロックマッチング処理時の流れの例は、ラインメモリ１６４７への書き込みを行わない点を除いて、図２３に示した第１の例の場合と同様であるので、ここでは、説明を省略する。そして、この第２の例における基底面でのブロックマッチング処理時の流れの例を、図２７のフローチャートを参照しながら説明する。
【０１９６】
はじめに、動きベクトル算出部１６４のＳＡＤ値保持部１６４３の最小ＳＡＤ値Ｓminの初期値を設定する（ステップＳ３１）。この最小ＳＡＤ値Ｓminの初期値としては、例えば、画素の差分の最大値が設定される。
【０１９７】
次に、マッチング処理部１６３では、基底面での参照ベクトル（Ｖｘ，Ｖｙ）を設定して、ＳＡＤ値を計算する基底面参照ブロック位置を設定し（ステップＳ３２）、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部１６２から読み込む（ステップＳ３３）と共に、ターゲットブロックバッファ部１６１から基底面ターゲットブロックの画素データを読み込んで、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、ＳＡＤ値を求め、求めたＳＡＤ値を動きベクトル算出部１６４に送出する（ステップＳ３４）。
【０１９８】
動きベクトル算出部１６４では、ＳＡＤ値比較部１６４２が、マッチング処理部１６３で算出されたＳＡＤ値Ｓinと、ＳＡＤ値保持部１６４３に保持されている最小ＳＡＤ値Ｓminとを比較して、算出されたＳＡＤ値Ｓinが、それまで保持されている最小ＳＡＤ値Ｓminよりも小さいか否か判別する（ステップＳ３５）。
【０１９９】
このステップＳ３５で、算出されたＳＡＤ値Ｓinが最小ＳＡＤ値Ｓminより小さいと判別したときには、ステップＳ３６に進み、ＳＡＤ値保持部１６４３に保持される最小ＳＡＤ値Ｓminおよびその位置情報の更新がなされる。
【０２００】
すなわち、ＳＡＤ値比較部１６４２は、算出されたＳＡＤ値Ｓinが最小ＳＡＤ値Ｓminより小さい旨の比較結果の情報ＤＥＴをＳＡＤ値書き込み部１６４１に送る。すると、ＳＡＤ値書き込み部１６４１は、当該算出されたＳＡＤ値Ｓinおよびその位置情報（基底面参照ベクトル）を、新たな最小ＳＡＤ値Ｓminの情報としてＳＡＤ値保持部１６４３に送る。ＳＡＤ値保持部１６４３は、保持すべき最小ＳＡＤ値Ｓminおよびその位置情報を、受け取った新たなＳＡＤ値Ｓinおよびその位置情報に更新する。
【０２０１】
ステップＳ３６の後には、ステップＳ３７に進む。また、ステップＳ３５で、算出されたＳＡＤ値Ｓinが最小ＳＡＤ値Ｓminより大きいと判別したときには、ステップＳ３６の保持情報の更新処理は行わずにステップＳ３７に進む。
【０２０２】
ステップＳ３７では、マッチング処理部１６３は、サーチ範囲の全ての基底面参照ブロックの位置（基底面参照ベクトル）でマッチング処理を終了したか否か判別し、未だ、サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップＳ３２に戻り、前述したステップＳ３２以降の処理を繰り返す。
【０２０３】
また、マッチング処理部１６３は、ステップＳ３７で、サーチ範囲の全ての基底面参照ブロックの位置（参照ベクトル）でマッチング処理を終了したと判別したときには、ＳＡＤ値保持部１６４３からの最小ＳＡＤ値Ｓminの位置情報を受け取り、その近傍４点の位置の基底面参照ブロックについてのＳＡＤ値の再算出を行い、再算出した近傍ＳＡＤ値をＳＡＤ値書き込み部１６４１を通じてＳＡＤ値保持部１６４３に供給し、保持させるようにする（ステップＳ３８）。
【０２０４】
次に、動きベクトル算出部１６４では、Ｘ方向（水平方向）近傍値抽出部１６４４およびＹ方向（垂直方向）近傍値抽出部１６４５が、ＳＡＤ値保持部１６４３に保持された、前記検出した最小のＳＡＤ値Ｓminとその近傍ＳＡＤ値Ｓx1、Ｓx2、Ｓy1、Ｓy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部１６４６に送る。これを受けた二次曲線近似補間処理部１６４６は、二次曲線による補間を、Ｘ方向およびＹ方向の２回行い、前述したようにして、サブピクセル精度の高精度の動きベクトルを算出する（ステップＳ３９）。以上で、１枚の参照フレームについての第３の例の基底面でのブロックマッチング処理を終了する。
【０２０５】
この第２の例においては、上述した第１の例に比較して、ＳＡＤ値を再算出する分だけ、処理時間が増加するが、ラインメモリをも必要としないので、回路規模を、第１の例よりも削減することができる。しかも、ＳＡＤ値の再算出は、近傍ＳＡＤ値のみであるので、上述の例では、高々４回であるので、処理時間の増加は少ない。
【０２０６】
なお、上述した第２の例の説明では、最小ＳＡＤ値は、検出しながらＳＡＤ値保持部１６４３に保持するようにしたが、ＳＡＤ値比較部１６４２において、最小ＳＡＤ値を呈する参照ブロックの位置情報（参照ベクトル）を検出して保持するように構成し、１回目のブロックマッチングが終了したら、ＳＡＤ値比較部１６４２から、当該最小ＳＡＤ値の位置情報をマッチング処理部１６３に供給するようにしてもよい。
【０２０７】
その場合には、マッチング処理部１６３でのＳＡＤ値の再算出においては、近傍４点のＳＡＤ値に加えて、最小ＳＡＤ値をも再算出するようにする。この場合には、ＳＡＤ値の再算出回数が５回となり、１回増加するが、１回目のブロックマッチングでは、ＳＡＤ値比較部１６４２のみが動作すればよく、ＳＡＤ値書き込み部１６４１およびＳＡＤ値保持部１６４３は、再算出されたＳＡＤ値を保持するように動作すればよいので、処理動作が簡略化されるというメリットがある。
【０２０８】
また、動き検出および動き補償部１６での処理は、ターゲットフレームにおいて設定された複数個のターゲットブロックについて、並列および並行して、実行することができる。その場合には、以上説明した動き検出および動き補償部１６のハードウエアの系を、当該並列・並行処理するターゲットブロック数に応じた数だけ、設ける必要がある。
【０２０９】
従来例のように、ＳＡＤテーブルＴＢＬを生成する方法の場合には、当該ターゲットブロック数分だけのＳＡＤテーブルを生成する必要があり、非常に大きなメモリが必要となってしまう。しかし、第１の例では、１ターゲットブロック当たりについて、ＳＡＤテーブルの１ライン分でよく、メモリ容量を非常に少なくすることができる。さらに、第２の例の場合には、ラインメモリをも必要としないので、メモリ容量の大幅な削減をすることができる。
【０２１０】
＜ターゲットブロックバッファ１６１のハードウエア構成例＞
ターゲットブロックバッファ１６１の構成例のブロック図を、図２８に示す。この図２８に示すように、ターゲットブロックバッファ１６１は、基底面バッファ部１６１１と、縮小面バッファ部１６１２と、縮小化処理部１６１３と、セレクタ１６１４，１６１５および１６１６とを備えている。セレクタ１６１４，１６１５および１６１６は、図２０では、図示は省略したが、コントロール部１６５からの選択制御信号によりそれぞれ選択制御される。
【０２１１】
基底面バッファ部１６１１は、基底面ターゲットブロックを一時格納するためのものである。この基底面バッファ部１６１１は、基底面ターゲットブロックを、画像重ね合わせ部１７に送ると共に、セレクタ１６１６に供給する。
【０２１２】
縮小面バッファ部１６１２は、縮小面ターゲットブロックを一時格納するためのものである。縮小面バッファ部１６１２は、縮小面ターゲットブロックを、セレクタ１６１６に供給する。
【０２１３】
縮小化処理部１６１３は、動画撮像時には上述したように、ターゲットブロックは、画像補正・解像度変換部１５から送られてくるので、この縮小化処理部１６１３で縮小面ターゲットブロックを生成するために設けられている。縮小化処理部１６１３からの縮小面ターゲットブロックは、セレクタ１６１５に供給される。
【０２１４】
セレクタ１６１４は、動画撮像時には画像補正・解像度変換部１５からのターゲットブロック（基底面ターゲットブロック）を、静止画撮像時には画像メモリ部４からの基底面ターゲットブロックまたは縮小面ターゲットブロックを、コントロール部１６５からの選択制御信号により選択して出力し、その出力を基底面バッファ部１６１１と、縮小化処理部１６１３と、セレクタ１６１５とに供給する。
【０２１５】
セレクタ１６１５は、動画撮像時には縮小化処理部１５からの縮小面ターゲットブロックを、静止画撮像時には画像メモリ部４からの縮小面ターゲットブロックを、コントロール部１６５からの選択制御信号により選択して出力し、その出力を縮小面バッファ部１６１２に供給する。
【０２１６】
セレクタ１６１６は、コントロール部１６１５からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部１６１２からの縮小面ターゲットブロックを、基底面でのブロックマッチング時には、基底面バッファ部１６１１からの基底面ターゲットブロックを、それぞれ選択出力し、出力した縮小面ターゲットブロックまたは基底面ターゲットブロックをマッチング処理部１６３に送る。
【０２１７】
＜参照ブロックバッファ１６２の構成例＞
参照ブロックバッファ１６２の構成例のブロック図を、図２９に示す。この図２９に示すように、参照ブロックバッファ１６２は、基底面バッファ部１６２１と、縮小面バッファ部１６２２と、セレクタ１６２３とを備えている。セレクタ１６２３は、図２９では、図示は省略したが、コントロール部１６５からの選択制御信号により選択制御される。
【０２１８】
基底面バッファ部１６２１は、画像メモリ部４からの基底面参照ブロックを一時格納し、その基底面参照ブロックを、セレクタ１６２３に供給すると共に、画像重ね合わせ部１７に、動き補償ブロックとして送る。
【０２１９】
縮小面バッファ部１６２２は、画像メモリ部４からの縮小面参照ブロックを一時格納するためのものである。縮小面バッファ部１６２２は、縮小面参照ブロックを、セレクタ１６２３に供給する。
【０２２０】
セレクタ１６２３は、コントロール部１６１５からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部１６１２からの縮小面参照ブロックを、基底面でのブロックマッチング時には、基底面バッファ部１６１１からの基底面参照ブロックを、それぞれ選択出力し、出力した縮小面参照ブロックまたは基底面参照ブロックをマッチング処理部１６３に送る。
【０２２１】
＜画像重ね合わせ部１７の構成例＞
画像重ね合わせ部１７の構成例のブロック図を、図３０に示す。この図３０に示すように、画像重ね合わせ部１７は、加算率計算部１７１と、加算部１７２と、基底面出力バッファ部１７３と、縮小面生成部１７４と、縮小面出力バッファ部１７５とを備えて構成されている。
【０２２２】
そして、画像重ね合わせ部１７と、画像メモリ部４とは、システムバス２を通じて接続されている。すなわち、この例では、システムバス２と基底面出力バッファ部１７３および縮小面出力バッファ部１６２との間には、それぞれバス・インターフェース部２３およびバス・インターフェース部２４が接続されている。
【０２２３】
加算率計算部１７１は、動き検出・動き補償部１６からのターゲットブロックおよび動き補償ブロックを受けて、両者の加算率を、採用する加算方式が単純加算方式であるか、または平均加算方式であるかに応じて定め、定めた加算率を、ターゲットブロックおよび動き補償ブロックと共に加算部１７２に供給する。
【０２２４】
加算部１７２での加算結果の基底面ＮＲ画像は、基底面出力バッファ部１７３およびバス・インターフェース２３を通じて画像メモリ部４に書き込まれる。また、加算部１７２での加算結果の基底面ＮＲ画像は、縮小面生成部１７４にて縮小面ＮＲ画像に変換され、当該縮小面生成部１７４からの縮小面ＮＲ画像が、縮小面出力バッファ部１７５およびバス・インターフェース２４を通じて画像メモリ部４に書き込まれる。
【０２２５】
［階層化ブロックマッチング処理の流れの例］
次に、図３１および図３２に、この実施の形態における動き検出・動き補償部１６での階層化ブロックマッチング処理の動作例のフローチャートを示す。
【０２２６】
なお、この図３１および図３２に示す処理の流れは、前述したマッチング処理部１６３、動き算出部１６４の処理例の流れとしての説明と、一部重複するものとなるが、この実施の形態の動作を、より理解し易くするために、説明するものである。
【０２２７】
はじめに、動き検出・動き補償部１６において、ターゲットブロックバッファ部１６１から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む（図３１のステップＳ４１）。次に、動きベクトル算出部１６４のＳＡＤ値保持部１６４３の最小ＳＡＤ値Ｓminの初期値として、縮小面最小ＳＡＤ値の初期値を設定する（ステップＳ４２）。この縮小面最小ＳＡＤ値Ｓminの初期値としては、例えば、画素の差分の最大値が設定される。
【０２２８】
次に、マッチング処理部１６３では、縮小面サーチ範囲を設定すると共に、設定した縮小サーチ範囲において、縮小面参照ベクトル（Ｖｘ／ｎ，Ｖｙ／ｎ：１／ｎは縮小倍率）を設定して、ＳＡＤ値を計算する縮小面参照ブロック位置を設定する（ステップＳ４３）。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部１６２から読み込み（ステップＳ４４）、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面ＳＡＤ値を求め、求めた縮小面ＳＡＤ値を動きベクトル算出部１６４に送出する（ステップＳ４５）。
【０２２９】
動きベクトル算出部１６４では、ＳＡＤ値比較部１６４２が、マッチング処理部１６３で算出された縮小面ＳＡＤ値Ｓinと、ＳＡＤ値保持部１６４３に保持されている縮小面最小ＳＡＤ値Ｓminとを比較して、算出された縮小面ＳＡＤ値Ｓinが、それまで保持されている縮小面最小ＳＡＤ値Ｓminよりも小さいか否か判別する（ステップＳ４６）。
【０２３０】
このステップＳ４６で、算出された縮小面ＳＡＤ値Ｓinが縮小面最小ＳＡＤ値Ｓminより小さいと判別したときには、ステップＳ４７に進み、ＳＡＤ値保持部１６４３に保持される縮小面最小ＳＡＤ値Ｓminおよびその位置情報の更新がなされる。
【０２３１】
すなわち、ＳＡＤ値比較部１６４２は、算出された縮小面ＳＡＤ値Ｓinが縮小面最小ＳＡＤ値Ｓminより小さい旨の比較結果の情報ＤＥＴをＳＡＤ値書き込み部１６４１に送る。すると、ＳＡＤ値書き込み部１６４１は、当該算出された縮小面ＳＡＤ値Ｓinおよびその位置情報（縮小面参照ベクトル）を、新たな縮小面最小ＳＡＤ値Ｓminの情報としてＳＡＤ値保持部１６４３に送る。ＳＡＤ値保持部１６４３は、保持すべき縮小面最小ＳＡＤ値Ｓminおよびその位置情報を、受け取った新たな縮小面ＳＡＤ値Ｓinおよびその位置情報に更新する。
【０２３２】
ステップＳ４７の後には、ステップＳ４８に進む。また、ステップＳ４６で、算出された縮小面ＳＡＤ値Ｓinが縮小面最小ＳＡＤ値Ｓminより大きいと判別したときには、ステップＳ７７の保持情報の更新処理は行わずにステップＳ４８に進む。
【０２３３】
ステップＳ４８では、マッチング処理部１６３は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置（縮小面参照ベクトル）でマッチング処理を終了したか否か判別し、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップＳ４３に戻り、前述したステップＳ４３以降の処理を繰り返す。
【０２３４】
また、マッチング処理部１６３は、ステップＳ４８で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置（縮小面参照ベクトル）でマッチング処理を終了したと判別したときには、ＳＡＤ値保持部１６４３からの縮小面最小ＳＡＤ値Ｓminの位置情報（縮小面動きベクトル）を受け取り、受け取った縮小面動きベクトルを、縮小倍率の逆数倍、すなわち、ｎ倍したベクトルが、基底面ターゲットフレームにおいて指し示す位置座標を中心とした位置に基底面ターゲットブロックを設定するとともに、前記ｎ倍したベクトルが指し示す位置座標を中心とした比較的狭い範囲として、基底面サーチ範囲を、基底面ターゲットフレームに設定し（ステップＳ４９）、ターゲットブロックバッファ部１６１から、基底面ターゲットブロックの画素データを読み込む（ステップＳ５０）。
【０２３５】
そして、次に、動きベクトル算出部１６４のＳＡＤ値保持部１６４３の最小ＳＡＤ値Ｓminの初期値として、基底面最小ＳＡＤ値の初期値を設定する（図３２のステップＳ５１）。この基底面最小ＳＡＤ値Ｓminの初期値としては、例えば、画素の差分の最大値が設定される。
【０２３６】
次に、マッチング処理部１６３では、ステップＳ４９で設定した基底面縮小サーチ範囲において、基底面参照ベクトル（Ｖｘ，Ｖｙ）を設定して、ＳＡＤ値を計算する基底面参照ブロック位置を設定する（ステップＳ５２）。そして、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部１６２から読み込み（ステップＳ５３）、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、基底面ＳＡＤ値を求め、求めた基底面ＳＡＤ値を動きベクトル算出部１６４に送出する（ステップＳ５４）。
【０２３７】
動きベクトル算出部１６４では、ＳＡＤ値比較部１６４２が、マッチング処理部１６３で算出された基底面ＳＡＤ値Ｓinと、ＳＡＤ値保持部１６４３に保持されている基底面最小ＳＡＤ値Ｓminとを比較して、算出された基底面ＳＡＤ値Ｓinが、それまで保持されている基底面最小ＳＡＤ値Ｓminよりも小さいか否か判別する（ステップＳ５５）。
【０２３８】
このステップＳ５５で、算出された基底面ＳＡＤ値Ｓinが基底面最小ＳＡＤ値Ｓminより小さいと判別したときには、ステップＳ５６に進み、ＳＡＤ値保持部１６４３に保持される基底面最小ＳＡＤ値Ｓminおよびその位置情報の更新がなされる。
【０２３９】
すなわち、ＳＡＤ値比較部１６４２は、算出された基底面ＳＡＤ値Ｓinが基底面最小ＳＡＤ値Ｓminより小さい旨の比較結果の情報ＤＥＴをＳＡＤ値書き込み部１６４１に送る。すると、ＳＡＤ値書き込み部１６４１は、当該算出された基底面ＳＡＤ値Ｓinおよびその位置情報（参照ベクトル）を、新たな基底面最小ＳＡＤ値Ｓminの情報としてＳＡＤ値保持部１６４３に送る。ＳＡＤ値保持部１６４３は、保持すべき基底面最小ＳＡＤ値Ｓminおよびその位置情報を、受け取った新たな基底面ＳＡＤ値Ｓinおよびその位置情報に更新する。
【０２４０】
ステップＳ５６の後には、ステップＳ５７に進む。また、ステップＳ５５で、算出された基底面ＳＡＤ値Ｓinが基底面最小ＳＡＤ値Ｓminより大きいと判別したときには、ステップＳ５６の保持情報の更新処理は行わずにステップＳ５７に進む。
【０２４１】
ステップＳ５７では、マッチング処理部１６３は、基底面サーチ範囲の全ての基底面参照ブロックの位置（基底面参照ベクトル）でマッチング処理を終了したか否か判別し、未だ、基底面サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップＳ５２に戻り、前述したステップＳ５２以降の処理を繰り返す。
【０２４２】
また、マッチング処理部１６３は、ステップＳ５７で、基底面サーチ範囲の全ての基底面参照ブロックの位置（基底面参照ベクトル）でマッチング処理を終了したと判別したときには、ＳＡＤ値保持部１６４３からの基底面最小ＳＡＤ値Ｓminの位置情報（基底面動きベクトル）を受け取り、その近傍４点の位置の基底面参照ブロックについての基底面ＳＡＤ値の再算出を行い、再算出した近傍基底面ＳＡＤ値をＳＡＤ値書き込み部１６４１を通じてＳＡＤ値保持部１６４３に供給し、保持させるようにする（ステップＳ５８）。
【０２４３】
次に、動きベクトル算出部１６４では、Ｘ方向（水平方向）近傍値抽出部１６４４およびＹ方向（垂直方向）近傍値抽出部１６４５が、ＳＡＤ値保持部１６４３に保持された、前記検出した最小の基底面ＳＡＤ値Ｓminとその近傍基底面ＳＡＤ値Ｓx1、Ｓx2、Ｓy1、Ｓy2およびそれらの位置情報を読み出し、二次曲線近似補間処理部１６４６に送る。これを受けた二次曲線近似補間処理部１６４６は、二次曲線による補間を、Ｘ方向およびＹ方向の２回行い、前述したようにして、サブピクセル精度の高精度の基底面動きベクトルを算出する（ステップＳ５９）。以上で、１枚の参照フレームについてのこの例のブロックマッチング処理を終了する。
【０２４４】
次に、この実施の形態による階層化ブロックマッチング手法を用いた画像処理方法の効果を、具体例を挙げて説明する。
【０２４５】
図３３に、上述の実施の形態の説明で用いた基底面、縮小面での、参照ブロック、サーチ範囲、マッチング処理範囲の具体例を示す。図３３の例は、水平方向および垂直方向の縮小倍率１／ｎは、ｎ＝４に設定した場合である。
【０２４６】
比較例として、図３３（Ａ）および（Ｂ）に示すように、例えば、縮小画像を用いない参照ブロック１０８は、横（水平）×縦（垂直）＝３２×３２ピクセルとし、また、サーチ範囲１０６は、横（水平）×縦（垂直）＝１４４×６４ピクセル、マッチング処理範囲１１０は、横（水平）×縦（垂直）＝１７６×９６ピクセルとする。
【０２４７】
すると、上述した実施の形態において、水平方向および垂直方向に、１／ｎ＝１／４に縮小された縮小面では、図３３（Ｃ）および（Ｄ）に示すように、縮小面参照ブロック１３９は、横（水平）×縦（垂直）＝８×８ピクセル、縮小面サーチ範囲１３７は、横（水平）×縦（垂直）＝３６×１６ピクセル、縮小面マッチング処理範囲１４３は、横（水平）×縦（垂直）＝４４×２４ピクセルとなる。
【０２４８】
水平方向および垂直方向に、１／４に縮小された縮小面で、ブロックマッチングを行った場合、縮小面動きベクトルは、４ピクセル精度の動きベクトルであり、単純に４倍しただけでは、１ピクセル精度の動きベクトルに対して誤差が生じる。すなわち、基底面での画素が図３４に示すようなものとした場合、基底面でのマッチング処理点１４８は、当該基底面の全ての画素が対象となるが、１／４に縮小された縮小面で、ブロックマッチングを行う場合のマッチング処理点は、図３４において、黒丸で示す４ピクセル単位のマッチング処理点１４７となっているからである。
【０２４９】
しかし、少なくとも、１ピクセル精度の動きベクトルは、縮小面動きベクトルが指し示す縮小面でのマッチング処理点の周囲、４ピクセル範囲以内に存在するであろうことは予測できる。
【０２５０】
そこで、この実施の形態では、算出された縮小面動きベクトルを元に基底面サーチ範囲を定める基底面マッチングでは、縮小面動きベクトルを縮小倍率の逆数である４倍した参照ベクトルが指し示すピクセル位置を中心に、基底面ターゲットブロックを設定するとともに、４ピクセル分のサーチ範囲（基底面サーチ範囲１４０）を決定して、基底面ブロックマッチングを行い、再度動きベクトルを算出する。
【０２５１】
したがって、図３３（Ｅ）および（Ｆ）に示すように、基底面参照ブロック１４２は、横（水平）×縦（垂直）＝３２×３２ピクセル、基底面サーチ範囲１４０は、横（水平）×縦（垂直）＝４×４ピクセル、基底面マッチング処理範囲１４４は、横（水平）×縦（垂直）＝４０×４０ピクセルとなる。
【０２５２】
図３５に、この実施の形態のように、縮小面マッチングと、基底面マッチングの２階層マッチングを行う場合において、ＳＡＤテーブルを使用すると仮定した場合における、基底面、縮小面での、ＳＡＤテーブルのサイズを示す。なお、図３５の例は、図３３に示した具体例に対応したものである。
【０２５３】
縮小する前の１４４×６４のサーチ範囲（図３３（Ｂ）参照）の場合におけるＳＡＤテーブルＴＢＬは、図３５（Ａ）に示すように、１４５×６５点である。
【０２５４】
これに対して、３６×１６の縮小面サーチ範囲（図３３（Ｄ）参照）の場合における縮小面ＳＡＤテーブルは、図３５（Ｂ）に示すように、３７点×１７点となる。
【０２５５】
また、４×４の基底面サーチ範囲（図３３（Ｆ）参照）の場合における基底面ＳＡＤテーブルは５点×５点となる。
【０２５６】
したがって、階層マッチングを施さない場合のマッチング処理回数は１４５×６５＝９４２５回であるのに対し、階層マッチングを適用した場合のマッチング回数は３７×１７＋５×５＝６５４回となり、処理時間を大幅に短縮できることが分かる。
【０２５７】
そして、前述した動きベクトル検出方法の第１の例の場合におけるラインメモリは、縮小面ＳＡＤテーブルの１ライン分でよいので、３７個のＳＡＤ値およびその位置情報を格納できるものでよく、ＳＡＤテーブルＴＢＬの場合の、９４２５個のＳＡＤ値およびその位置情報を格納するメモリに対して非常に小さいメモリでよくなる。
【０２５８】
また、前述した動きベクトル算出部１６４の構成例の第２の例の場合には、３７個のＳＡＤ値およびその位置情報を格納する縮小面ＳＡＤテーブルさえも不要となるので、さらに回路規模を小さくすることができる。
【０２５９】
以上のようにして、上記の実施の形態によれば、階層化したマッチング処理を行った後、基底面において補間処理をすることにより、広いサーチ範囲で、サブピクセル精度の動きベクトル検出を行うことが可能になる。
【０２６０】
なお、図３６に、この実施形態の階層化ブロックマッチング方式における、縮小面および基底面におけるターゲットブロックサイズおよびマッチング処理範囲の例を示す。この図３６の例は、縮小面ターゲットブロック１３３のサイズを、図３６（Ａ）に示すように、横×縦＝８×８画素で固定値としている。このため、縮小面マッチング処理範囲１４３は、図３６（Ｂ）に示すように、横×縦＝４４×２４画素分となる。
【０２６１】
そして、基底面ターゲットブロック１３１のサイズ、基底面マッチング処理範囲１４４のサイズおよび基底面参照ベクトル数は、図３６（Ｃ）に示すようなものとなる。この図３６（Ｃ）は、基底面に対する縮小面の縮小倍率が１／２、１／４、１／８の場合の例のそれぞれにおける基底面ターゲットブロック１３１のサイズ、基底面マッチング処理範囲１４４のサイズおよび基底面参照ベクトル数を示している。
【０２６２】
［画像メモリ４に対するメモリアクセス時の画像データフォーマット］
この実施形態においては、通常撮像モード時の静止画撮像時には、高速で複数枚の撮像画像を取り込み、当該取り込んだ画像（高速連射画像）について、画像の重ね合わせを行ってＮＲ処理するようにする。また、通常撮像モード時の動画撮像時には、リアルタイムに動けベクトルを検出しながら動画についてのＮＲ処理をする。したがって、高速で、動きベクトル検出が要求される。また、動き解析高速度撮像モード時においても、動き解析時に、高速で取り込まれた高速連写画像についての動きベクトルの検出が必要で、高速処理が要求される。
【０２６３】
この実施形態では、高速撮像時のＮＲ処理および動き解析において、高速で動きベクトル検出をすることを可能とするために、画像メモリ部４に対する画像データのメモリアクセス時のデータフォーマットを工夫している。この画像メモリ部４に対するメモリアクセス時のデータフォーマットについて説明する。
【０２６４】
図１９および図３０のブロック図に示したように、動き検出・動き補償部１６および画像重ね合わせ部１７とは、それぞれバス・インターフェース部２１，２２，２３，２４を介してシステムバス２に接続されている。
【０２６５】
この実施形態におけるシステムバス２は、バス幅は、例えば６４ビットであり、バースト長（所定の複数画素データ単位でバースト転送を連続して行える回数）は、例えば最大１６バーストとされている。
【０２６６】
動き検出・動き補償部１６のターゲットブロックバッファ部１６１および参照ブロックバッファ部１６２からの読み込み要求に応じて、バス・インターフェース部２１，２２にて、画像メモリ部４の所定のメモリに対して、スタートアドレス、バースト長、その他のバスプロトコルを生成して、システムバス２（ＡＸＩインターコネクト）にアクセスしている。
【０２６７】
この実施形態の撮像装置で使用している画像データは、１画素が、輝度ＹとクロマＣ（Ｃｒ，Ｃｂ）とからなる。そして、Ｙ：Ｃｒ：Ｃｂ＝４：２：２のフォーマットであり、輝度Ｙ、クロマＣ（Ｃｒ，Ｃｂ）は、共に符号なしの８ビット（Ｃｒ＝４ビット、Ｃｂ＝４ビット）であって、４ビットのメモリアクセス幅に、ＹＣ４画素分が並んでいるものである。システムバス２のデータ処理単位は、６４ビットであり、１画素分のＹＣ画素データが１６ビットであるので、４画素分になる。
【０２６８】
図１に示したようなグローバルなシステムバス２に、撮像装置の各処理部がつながっている場合、バス帯域と、各処理部で共有している画像メモリ部のメモリコントローラの処理単位とは、密接な関係がある。
【０２６９】
ところで、上述したように、この実施形態では、メモリコントローラ（図示は省略）が処理できる最大バースト長は１６バーストである。例えば、同じデータサイズの画像データを、画像メモリ部４のメモリに書き込む場合でも、１６バーストの転送をたくさん使える方が、バス２のアービトレーション回数も減り、メモリコントローラの処理の効率が良く、バス帯域を削減できる。
【０２７０】
したがって、この実施形態では、ＹＣ画素データの４画素分のデータ（６４ビット）を１６バーストでバスアクセスすると、効率が良い。これを画素数に換算すると、４×１６＝６４画素分のデータになる。
【０２７１】
そこで、この実施形態では、図３７に示すように、１画面分の画像の水平方向を、１バースト転送（６４画素）単位で分割して、１画面分の画像を、縦長の分割画像単位（以下、短冊と称する）の複数個からなるものとする。そして、画像データを、この短冊単位で、画像メモリ部４に書き込み、また、画像メモリ部４から読み出しするメモリアクセス方式（以下、短冊アクセス方式と称する）を採る。
【０２７２】
なお、水平方向の画像データが６４画素で割り切れない場合は、図３７で、影線を付して示すように、水平方向の右端にダミー領域を設けて、このダミー領域１５１に、例えば黒や白の画素データをダミーデータとして付加し、水平方向の画素数が、６４の倍数になるようにしている。
【０２７３】
従来のラスタースキャン方式は、画像メモリへのアクセスに対して、水平方向にアドレスが連続しているため、１ラインずつデータを読むのに適しているのに対して、短冊アクセス方式は、１バースト転送（６４画素）単位で垂直方向にアドレスがインクリメントするため、水平方向が６４画素以内であるブロック状のデータを読むのに適している。
【０２７４】
例えば、６４画素×６４ラインの短冊形式のブロックを読み込む際には、画像メモリ部４のメモリコントローラ（図示せず）は、ＹＣ画素データの４画素分のデータ（６４ビット）を１６バーストでバスアクセスすると、当該１６バーストで、４×１６＝６４画素分のデータになるので、水平方向の６４画素からなる１ライン目のアドレスの設定以降は、垂直方向にアドレスをインクリメントしていくだけで、残り６３ライン分の画素データのアドレス設定をすることが可能である。
【０２７５】
この実施形態の画像メモリ部４には、このような短冊アクセス方式を実行するためのアドレス生成部（図示は省略）を備えるメモリコントローラ（図示は省略）が設けられている。
【０２７６】
この実施形態では、動き検出・動き補償部１６が、上記の短冊アクセス方式で画像メモリ部４にアクセスできるように、その前段にある、画像補正・解像度変換部１５においても、短冊アクセス方式のアクセスに対応している。また、この実施形態では、静止画撮像時の静止画ＮＲ処理においては、高速連写撮影して得た複数枚の撮像画像を、圧縮して画像メモリ部４に記憶しておき、必要に応じて伸長デコードして読み出して、動き検出・動き補償部１６でのブロックマッチング処理ができるようにするため、静止画コーデック部１９においても、短冊アクセス方式に対応している。
【０２７７】
図３８（Ａ）は、１画面分の画像が、横×縦＝６４０×４８０画素からなる例における短冊単位の分割例である。この例においては、１画面分の画像が、水平方向の６４画素単位で分割される結果、１０個の短冊Ｔ０〜Ｔ９に分けられている。
【０２７８】
前述した図３６に示した縮小倍率１／４の場合では、１つの短冊の中には、図３８（Ｂ）に示すように、３２×３２画素の基底面ターゲットブロックが、Ｂ０〜Ｂ２９として示すように、水平方向に２個、垂直方向に１５個、合計３０個入っている。
【０２７９】
画像メモリ部４から基底面ターゲットブロックを読み込むときは、短冊アクセス方式の利点を活かすために、この実施形態では、６４画素×１ラインずつアクセスし、バス効率を上げるようにしている。
【０２８０】
したがって、図３９に示すように、縮小倍率１／２のときは、基底面ターゲットブロックは４個ずつ、縮小倍率１／４のときは、基底面ターゲットブロックは２個ずつ、縮小倍率１／８のときは、基底面ターゲットブロックは１個ずつ、バスアクセスしている。
【０２８１】
短冊アクセス方式は、バス帯域という面だけでなく、上記の回路の内部処理においても、非常に有益な手法である。第一に、垂直方向のフィルタ処理等を行うための、内部ラインメモリのサイズを削減することができる。また、解像度変換処理のような、ブロック形式で処理を行う回路にとっては、ラスタースキャン形式から任意のブロックに変換するよりも、短冊形式から任意のブロック形式に変換した方が、効率が良いという利点がある。
【０２８２】
［通常撮影モードにおけるＮＲ処理］
＜静止画撮像時＞
上述の構成の実施の形態の撮像装置において、静止画撮像時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図４０および図４１に示す。この図４０および図４１のフローチャートの各ステップは、ＣＰＵ１およびこのＣＰＵ１により制御される動き検出・動き補償部１６のコントロール部１６５の制御の下に実行されると共に、画像重ね合わせ部１７により実行されるものである。
【０２８３】
まず、シャッターボタンが押下されると、この例の撮像装置においては、ＣＰＵ１による制御によって、高速で複数枚の画像の高速撮影が行われる。この例では、静止画撮像時に重ね合わすべきＭ枚（Ｍフレーム；Ｍは２以上の整数）の撮像画像データを高速で取り込み、画像メモリ部４に貼っておく（ステップＳ６１）。
【０２８４】
次に、参照フレームは、画像メモリ部４に蓄積されているＭ枚の画像フレームのうちの時間的にＮ番目（Ｎは２以上の整数で、最大値はＭ）とするのであるが、コントロール部１６５は、その何番目とする値Ｎの初期値を、Ｎ＝２とする（ステップＳ６２）。そして、次に、コントロール部１６５は、１枚目の画像フレームをターゲット画像（ターゲットフレーム）とし、Ｎ＝２枚目の画像を参照画像(参照フレーム)に設定する（ステップＳ６３）。
【０２８５】
次に、コントロール部１６５は、ターゲットフレームにターゲットブロックを設定し（ステップＳ６４）、動き検出・動き補償部１６において、画像メモリ部４から、ターゲットブロックバッファ部１６１へターゲットブロックを読み込み（ステップＳ６５）、参照ブロックバッファ部１６２へマッチング処理範囲の画素データを読み込む（ステップＳ６６）。
【０２８６】
次に、コントロール部１６５は、参照ブロックバッファ部１６２から、サーチ範囲内において参照ブロックを読み出し、マッチング処理部１６３で、この実施形態における階層化マッチング処理を行う。なお、この例では、後述するように、マッチング処理部１６３で算出されたＳＡＤ値のうち、後述するＳＡＤ値は、ＳＡＤ値の最小値およびその近傍のＳＡＤ値を保持して、二次曲線近似補間処理を行うために、動きベクトル算出部１６４へ送られる。これをサーチ範囲内のすべての参照ベクトルで繰り返した後、二次曲線近似補間処理部で、前述した補間処理を行い、高精度の動きベクトルを出力する（ステップＳ６７）。
【０２８７】
次に、コントロール部１６５は、以上のようにして検出された高精度の動きベクトルにしたがって、参照ブロックバッファ部１６２から動き補償ブロックを読み出し（ステップＳ６８）、ターゲットブロックと同期して、後段の画像重ね合わせ部１７へ送る（ステップＳ６９）。
【０２８８】
次に、ＣＰＵ１の制御に従って、画像重ね合わせ部１７は、ターゲットブロックと動き補償ブロックの重ね合わせを行い、重ね合わせたブロックのＮＲ画像データを画像メモリ部４に貼る。すなわち、画像重ね合わせ部１７は、重ね合わせたブロックのＮＲ画像データを画像メモリ部４に書き込む（ステップＳ７０）。
【０２８９】
次に、コントロール部１６５は、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したか否か判別し（ステップＳ７１）、すべてのターゲットブロックについては未だブロックマッチングの処理が終了していないと判別したときには、ステップＳ６４に戻って、ターゲットフレーム内の次のターゲットブロックを設定して、ステップＳ６４〜ステップＳ７１までの処理を繰り返す。
【０２９０】
また、コントロール部１６５は、ステップＳ７１で、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したと判別したときには、重ね合わすべきすべての参照フレームについての処理が終了したか否か、つまり、Ｍ＝Ｎであるか否か判別する（ステップＳ７２）。
【０２９１】
ステップＳ７２で、Ｍ＝Ｎではないと判別したときには、Ｎ＝Ｎ＋１とし（ステップＳ７３）、次に、ステップＳ７０での重ね合わせにより生成されたＮＲ画像をターゲット画像（ターゲットフレーム）とし、また、Ｎ＝Ｎ＋１枚目の画像を参照画像（参照フレーム）とする（ステップＳ７４）。その後、ステップＳ４に戻って、このステップＳ６４以降の処理を繰り返す。つまり、Ｍが３以上の場合は、全てのターゲットブロックにおいて重ね合わせを行った画像を次のターゲット画像とし、３枚目以降の画像を参照フレームとして、上記の処理を繰り返して行く。これをＭ枚目の重ね合わせが終わるまで繰り返す。そして、ステップＳ７２で、Ｍ＝Ｎであると判別したときには、この処理ルーチンを終了する。
【０２９２】
なお、Ｍ枚の撮像画像が重ね合わされた結果のＮＲ画像の画像データは、静止画コーデック部１８により圧縮符号化エンコードされて、記録再生装置部５に供給されて、その記録媒体に記録されるものである。
【０２９３】
なお、以上の静止画のノイズ低減処理方法は、Ｍ枚の画像データを画像メモリ部４に貼っておく手法であるが、１枚撮影するたびに重ね合わせを行っても良い。その場合には、画像メモリ部４に記憶する画像フレームは、１枚でよいので、図４０および図４１の処理ルーチンのノイズ低減処理方法に比べて、撮影間隔は長くなるが、メモリコストを最小にすることが可能である。
【０２９４】
図４０のステップＳ６１においては、シャッターボタン操作に基づく高速連写により取り込まれた複数枚の撮像画像が画像メモリ部４に書き込まれるが、その際、取り込まれた撮像画像の画像データは、静止画コーデック部１８で圧縮符号化される。図４２に、このときの画像データの流れを、点線で示す。
【０２９５】
すなわち、撮像素子１１からの撮像画像は、前処理部１３でセンサー補正などの前処理がなされた後、ＲＡＷ信号形式（カメラ信号処理を行う前のデータ形式）で、一旦、画像メモリ部４に格納される。
【０２９６】
その後、撮像画像は、画像メモリ部４から短冊形式で読み出されてデータ変換部１４でＲＡＷ信号からＹＣ画素データに変化され、画像補正・解像度変換部１５で画像補正、解像度変換などが行われた後、画像メモリ部４を介さずに、直接、静止画コーデック部１８で、この例ではＪＰＥＧ方式で圧縮符号化されて圧縮された状態で、画像メモリ部４に書き込まれる。したがって、ここでは、画像を圧縮する単位は、画像の１枚単位ではなく、短冊単位になる。高速連写時は、以上の手順が複数枚分、繰り返して行われて、画像メモリ部４には、当該複数枚の撮像画像データの圧縮データが格納保持される。
【０２９７】
高速連写されて取り込まれた全ての撮像画像の圧縮符号化および画像メモリ部４への格納が終わったら、図４０のステップＳ６３の処理のうちのターゲット画像の設定処理を行う。図４３に、このときの画像データの流れを示す。
【０２９８】
すなわち、シャッターボタンが押下されてから最初に取り込まれた撮像画像の圧縮画像データが画像メモリ部４から短冊単位で読み出されて、静止画コーデック部１９に供給され、伸長復号化される。伸長復号化された画像データは、短冊単位で基底面ターゲット画像Ｐbtとして、画像メモリ４に書き込まれる。
【０２９９】
そして、画像メモリ部４に書き込まれた、伸長復号化された基底面ターゲット画像Ｐbtの画像データは短冊単位で読み出されて、動き検出・動き補償部１６を通じて画像重ね合わせ部１７に供給され、図３０に示した画像重ね合わせ部１７の縮小面生成部１７４で縮小化される。そして、この縮小面生成部１７４からの縮小化されたターゲット画像が、縮小面ターゲット画像Ｐrtとして、短冊単位で画像メモリ部４に書き込まれる。
【０３００】
以上のようにしてターゲット画像についての処理が終了した後、図４０のステップＳ６３の処理のうちの参照画像についての設定処理がなされる。このときの画像データの流れを、図４４に示す。
【０３０１】
すなわち、画像メモリ４に格納されている圧縮符号化された複数枚の撮像画像のうち、ブロックマッチングの参照画像となる、２枚目の撮像画像が画像メモリ部４から短冊単位で読み出されて、静止画コーデック部１８に供給され、伸長復号化される。伸長復号化された画像データは、短冊単位で基底面参照画像Ｐbrとして、画像メモリ４に書き込まれる。
【０３０２】
そして、画像メモリ部４に書き込まれた、伸長復号化された基底面参照画像Ｐbrの画像データは短冊単位で読み出されて、動き検出・動き補償部１６を通じて画像重ね合わせ部１７に供給され、図３０に示した画像重ね合わせ部１７の縮小面生成部１７４で縮小化される。そして、この縮小面生成部１７４からの縮小化された参照画像が、縮小面参照画像Ｐrrとして、短冊単位で画像メモリ部４に書き込まれる。
【０３０３】
次に、伸長復号化ターゲット画像と、伸長復号化した参照画像とで動き検出・動き補償を行う。これは、図４０のステップＳ６４〜ステップＳ６９の処理に相当する。図４５に、このときの画像データの流れを示す。
【０３０４】
先ず、縮小面ブロックマッチング処理を行う。すなわち、画像メモリ部４の縮小面ターゲット画像Ｐrtから、設定された縮小面ターゲットブロックの画像データを読み出して、動き検出・動き補償部１６のターゲットブロックバッファ部１６１に格納すると共に、縮小面参照画像Ｐrrから、縮小面ターゲットブロックについてのサーチ範囲に対応する縮小面マッチング処理範囲を読み出して、参照ブロックバッファ部１６２に格納する。
【０３０５】
そして、それぞれのバッファ部１６１および１６２から、縮小面ターゲットブロックおよび縮小面参照ブロックの画像データを読み出して、マッチング処理部１６３で、縮小面ブロックマッチング処理を行い、設定された縮小面ターゲットブロックについての縮小面動きベクトルの検出を行い、設定された縮小面ターゲットブロックについての縮小面動きベクトルを検出する。
【０３０６】
次に、縮小面動きベクトルに基づいて、前述したようにして、基底面ターゲットブロックを設定すると共に、基底面サーチ範囲を設定し、基底面ターゲット画像Ｐbtから、設定された基底面ターゲットブロックを読み出してターゲットブロックバッファ１６１に格納すると共に、設定された基底面サーチ範囲に対応する基底面マッチング処理範囲を読み出し、参照ブロックバッファ部１６２に格納する。
【０３０７】
そして、それぞれのバッファ部１６１および１６２から、基底面ターゲットブロックおよび基底面参照ブロックの画像データを読み出して、マッチング処理部１６３で、基底面ブロックマッチング処理を行い、動きベクトル算出部１６４で、設定された基底面ターゲットブロックについてのサブピクセル精度の基底面動きベクトルの検出を行う。
【０３０８】
そして、動き検出・動き補償部１６は、検出された基底面動きベクトルに基づいて、動き補償ブロックを基底面参照画像から読み出し、基底面ターゲットブロックと共に、画像重ね合わせ部１７に供給する。画像重ね合わせ部１７では、ブロック単位の画像の重ね合わせを行い、その結果のブロック単位の基底面ＮＲ画像Ｐbnrを、画像メモリ部４に貼る。また、画像重ね合わせ部１７は、その縮小面生成部１７４で生成した縮小面ＮＲ画像Ｐrnrも、画像メモリ部４に貼る。
【０３０９】
以上の動作を、ターゲット画像の全てのターゲットブロックについて繰り返し行い、全てのターゲットブロックについてのブロックマッチングが終了したら、３枚目の画像を参照画像とすると共に、基底面ＮＲ画像Ｐbnrおよび縮小面ＮＲ画像Ｐrnrを、ターゲット画像として（図４１のステップＳ７４）、上述と同様のブロックマッチング処理を繰り返し行う（図４０のステップＳ６４〜図４１のステップＳ７４）。そして、取り込んだ全ての画像についての処理が終了すると、最終的に得られる基底面ＮＲ画像Ｐbnrを、図４６の画像データのフローに示すようにして、静止画コーデック部１８で圧縮符号化して、記録再生装置部５の記録媒体に記録するようにする。
【０３１０】
以上のようにして、画像補正・解像度変換部１５で短冊アクセス方式のメモリアクセスを行い、静止画についての圧縮符号化の処理単位も短冊の形式にすることで、画像補正・解像度変換部１５から静止画コーデック部１８に、画像メモリ部４を介さず、直接、画像データを転送することができ、高速連写画像を効率よく圧縮符号化して、画像メモリ部４に格納することができる。
【０３１１】
＜動画撮像時＞
次に、この実施の形態の撮像装置において、動画撮像時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図４７に示す。この図４７のフローチャートの各ステップも、ＣＰＵ１およびこのＣＰＵ１により制御される動き検出・動き補償部１６のコントロール部１６５の制御の下に実行されるものである。動画記録ボタンがユーザにより操作されると、ＣＰＵ１は、図４７の処理をスタートから開始するように指示する。
【０３１２】
この実施の形態では、動き検出・動き補償部１６は、ターゲットブロック単位でマッチング処理をするのに適した構成とされている。そこで、画像補正・解像度変換部１５は、ＣＰＵ１の制御に従って、フレーム画像を保持し、ターゲットブロック単位で、動き検出・動き補償部１６へ画像データを送る（ステップＳ８１）。
【０３１３】
動き検出・動き補償部１６に送られたターゲットブロックの画像データは、ターゲットブロックバッファ部１６１に格納される。次に、コントロール部１６５は、ターゲットブロックに対応した参照ベクトルを設定し（ステップＳ８２）、画像メモリ部４から、マッチング処理範囲の画像データを参照ブロックバッファ部１６２へ読み込む（ステップＳ８３）。
【０３１４】
次に、マッチング処理部１６３および動きベクトル算出部１６４は、この実施形態における階層化ブロックマッチングによる動き検出処理を行う（ステップＳ８４）。すなわち、マッチング処理部１６３は、先ず、縮小面において、縮小面ターゲットブロックの画素値と縮小面参照ブロックの画素値との間のＳＡＤ値を算出し、算出したＳＡＤ値を動きベクトル算出部１６４へ送る。マッチング処理部１６３は、この処理をサーチ範囲内のすべての縮小面参照ブロックで繰り返す。サーチ範囲内のすべての縮小面参照ブロックについてのＳＡＤ値の算出が終了した後、動きベクトル算出部１６４は、最小のＳＡＤ値を特定して、縮小面動きベクトルを検出する。
【０３１５】
コントロール部１６５は、動きベクトル算出部１６４で検出された縮小面動きベクトルを縮小率の逆数倍して、基底面上における動きベクトルに変換し、その変換したベクトルが、基底面において指し示す位置を中心した領域を、基底面におけるサーチ範囲とする。そして、コントロール部１６５は、マッチング処理部１６３に、当該サーチ範囲において、基底面におけるブロックマッチング処理を行わせるように制御する。マッチング処理部１６３は、基底面ターゲットブロックの画素値と基底面参照ブロックの画素値との間のＳＡＤ値を算出し、算出したＳＡＤ値を動きベクトル算出部１６４へ送る。
【０３１６】
サーチ範囲内のすべての縮小面参照ブロックについてのＳＡＤ値の算出が終了した後、動きベクトル算出部１６４は、最小のＳＡＤ値を特定して、縮小面動きベクトルを検出すると共に、その近傍のＳＡＤ値を特定し、それらのＳＡＤ値を用いて、前述した二次曲線近似補間処理を行い、サブピクセル精度の高精度の動きベクトルを出力する。
【０３１７】
次に、コントロール部１６５は、ステップＳ８４で算出された高精度の動きベクトルにしたがって、参照ブロックバッファ部１６２から動き補償ブロックの画像データを読み出し（ステップＳ８５）、ターゲットブロックと同期して、後段の画像重ね合わせ部１７へ送る（ステップＳ８６）。
【０３１８】
画像重ね合わせ部１７においては、ターゲットブロックと動き補償ブロックの重ね合わせを行う。そして、画像重ね合わせ部１７は、その重ね合わせた結果のＮＲ画像の画像データを、ＮＴＳＣエンコーダ２０を通じてモニターディスプレイ６に出力することで、動画記録モニターをすると共に、動画コーデック部１９を通じて記録再生装置部６に送り、記録媒体に記録するようにする（ステップＳ８７）。
【０３１９】
画像重ね合わせ部１７で重ね合わせされた画像は、また、画像メモリ部４に格納し、次のフレーム（ターゲットフレーム）での参照フレームとなるようにする（ステップＳ８８）。
【０３２０】
そして、ＣＰＵ１は、動画記録停止操作がユーザによりなされたか否か判別し（ステップＳ８９）、当該動画記録停止操作がユーザによりなされていないと判別したときには、ステップＳ８１に戻って、このステップＳ８１以降の処理を繰り返すように指示する。また、ステップＳ８９で、動画記録停止操作がユーザによりなされたと判別したときには、ＣＰＵ１は、この処理ルーチンを終了するようにする。
【０３２１】
以上の動画のノイズ低減処理の処理ルーチンにおいては、１フレーム前の画像フレームを参照フレームとするようにしたが、１フレームよりもさらに過去のフレームの画像を参照フレームとして用いるようにしても良い。また、１フレーム前と２フレーム前の画像を、画像メモリ部４に格納しておき、それらの２枚の画像情報の内容から、どちらの画像フレームを参照フレームにするかを選択しても良い。
【０３２２】
上記のような手段、手順、システム構成を用いることで、一つの共通したブロックマッチング処理のハードウエアで、静止画ノイズ低減処理および動画ノイズ低減処理を行うことが可能になる。
【０３２３】
［動き解析高速度撮像モードのついての説明］
上述したように、この実施形態の撮像装置は、動き検出・動き補償部１６で算出するブロック単位の複数個の動きベクトルを用いて、静止画撮像時および動画撮像時に、ＮＲ処理を行っている。
【０３２４】
そして、この実施形態の撮像装置においては、静止画撮像モード時の高速度撮像時には、撮像画像をリアルタイムで圧縮符号化して、画像メモリ部４に保持し、撮像画像の取り込み保持後に、圧縮符号化されている撮像画像を復号化し、動き検出・動き補償を行い、ＮＲ処理を行うようにしている。そのため、高速度撮像の記録枚数は、画像メモリ部４に保持できる圧縮符号化画像の枚数に依存する。
【０３２５】
しかしながら、実際には、高速度撮像によって得られる画像は、撮影者が、記録した後、再生してスローモーションで見たい「重要な箇所」と、特に動きが無く、高速で撮像する必要の無い「重要でない箇所」に分かれる。
【０３２６】
例えば、図４８に示すように、突然現れて消える被写体を撮影したい場合、動きが無い、あるいは動きの少ない被写体の撮像画像区間は、重要でない画像区間ＵＮＩＭＰであり、動く被写体が現れ始めてから、当該動く被写体が消えるまでの撮像画像区間は、重要な画像区間ＩＭＰとなる。
【０３２７】
この場合、図４８に示すように、重要な画像区間ＩＭＰの先頭の開始トリガー画像Ｐｓは、当該重要な画像区間ＩＭＰの画像部分の開始点の画像であり、また、重要な画像区間ＩＭＰの直後の終了トリガー画像Ｐｅは、当該重要な画像区間ＩＭＰの画像部分の後の終了点の画像であり、これらが検出できれば、重要な画像区間ＩＭＰの検出が可能となる。
【０３２８】
従来は、通常は、撮影者は、動く被写体が現れ始めたのを視覚により確認した後、シャッターボタンを押すようにしているため、開始トリガー画像Ｐｓから正確に撮像画像の記録することが困難である。同様に、終了トリガー画像Ｐｅの時点も、視覚により確認した後、撮像終了操作をすることになるので、正確に定めることはできず、一般的には、終了画像時点は遅れがちになる。
【０３２９】
そこで、この実施形態の撮像装置では、動き解析高速度撮像モードを設け、この動き解析高速度撮像モードにおいて、例えばシャッターボタンが押下されるなどして撮像開始とされたときには、撮像画像をリアルタイムで符号化している間に、並行して、当該撮像画像の２画面間のブロック単位の複数個の動きベクトル検出を行う。
【０３３０】
そして、検出したブロック単位の複数個の動きベクトルを解析して、予め撮影者により設定された被写体画像の動き特徴に応じた動きベクトルの特徴を、被写体画像の動き特徴パラメータとして抽出する。
【０３３１】
そして、抽出した各被写体画像の動き特徴パラメータの値を時間方向にプロットし、図４９に示すように、動き特徴パラメータの値が、後述するようにして予め設定された動きしきい値θよりも大きくなった被写体画像を、「動き開始トリガー画像Ｐｓ」と決定し、また、動き特徴パラメータの値が、動きしきい値θよりも小さくなった被写体画像を、「動き終了トリガー画像Ｐｅ」と決定する。
【０３３２】
これにより、動き開始トリガー画像Ｐｓから、動き終了トリガー画像Ｐｅの前までの画像部分（画像区間）を、重要な画像区間ＩＭＰとして検出することができ、当該重要な画像区間ＩＭＰ以外の、重要でない画像区間ＵＮＩＭＰの圧縮符号化画像は、画像メモリ部４に保持することなく、削除することが可能である。そして、重要な画像区間ＩＭＰの圧縮符号化画像のみを画像メモリ部４に保存することができる。したがって、動き解析高速度撮像モードでは、重要な画像区間ＩＭＰの撮像画像のみを自動的に抽出して、撮像記録することが可能である。
【０３３３】
そして、この実施形態の動き解析高速度撮像モードにおいては、前記動き特徴画像部分の撮像画像の取り込み保持後に、圧縮符号化されている撮像画像を復号化し、動き検出・動き補償部１６で動きベクトルの検出および動き補償ブロックの生成を行い、画像重ね合わせ部１７でＮＲ処理を行うようにしている。そのため、高速度撮像できる記録枚数は、画像メモリ部４に保持できる圧縮符号化画像の枚数に依存する。
【０３３４】
上述した被写体の動き特徴の設定および動き特徴パラメータ、さらに、動きしきい値の設定について説明する。
【０３３５】
この実施形態の撮像装置では、撮影者は、実際の撮影に先立ち、通常撮像モードと、動き解析高速度撮像モードとの選択設定を行うと共に、動き解析高速度撮像モードにおいては、次のような設定を予め行うようにする。
【０３３６】
動き解析高速度撮像モードにおいては、当該モードにおいて撮影したい被写体の動き特徴を、被写体モードとして選定するようにする。前述した、ブロック単位の複数個の動きベクトルから抽出する動き特徴パラメータは、被写体モード、つまり、被写体の動き特徴が定められると、対応して自動的に定まるものである。この実施形態において選択設定可能な複数種の被写体モードの例と、対応する動き特徴パラメータの例を、図５０に示す。
【０３３７】
すなわち、この図５０の例においては、被写体モードとしては、高速モード、一方向モード、分散モード、トータルモードの４種類が用意され、撮影者は、動き解析高速度撮像モードにおける撮像に先立ち、当該４種類の被写体モードの中から、自分が撮影したい動き特徴の被写体モードを選択設定するようにする。
【０３３８】
図５０に示すように、高速モードは、ゴルフスウィングや野球のピッチングなど、被写体の一部分が高速で動くものを撮影する場合に選択される。この高速モードにおいて、ブロック単位の複数個の動きベクトルから抽出すべき動き特徴パラメータは、最大ベクトル量である。
【０３３９】
この最大ベクトル量を動き特徴パラメータとして抽出するための計算方法は、次の通りである。すなわち、画面上、または画面内に指定した領域内の、複数個のブロック単位の動きベクトルの中で、最大の絶対値を持つ動きベクトルを検出し、検出した最大の絶対値を持つ動きベクトルを動き特徴パラメータとする。なお、最大ベクトル量を持つ動きベクトルの計算に当たっては、動きベクトルの絶対値のみではなく、動きベクトルの方向を加味しても良い。
【０３４０】
そして、この高速モードにおいては、撮影者により、最大ベクトル量に対する動きしきい値θ１が設定されて、当該動きしきい値θ１を超えた画像を開始トリガー画像Ｐｓとして検出し、動きしきい値θ１を下回った画像を終了トリガー画像Ｐｅとして検出する。
【０３４１】
次に、一方向モードは、落下物を撮影するときや、撮影者が被写体に応じて移動するときなど、被写体画像全体が、同一方向に動くものを撮影する場合に選択設定される。この一方向モードにおいて、ブロック単位の複数個の動きベクトルから抽出すべき動き特徴パラメータは、グローバルベクトルである。
【０３４２】
このグローバルベクトルを動き特徴パラメータとして抽出するための計算方法は、次の通りである。すなわち、画面上、または画面内に指定した領域内の、複数個のブロック単位の動きベクトルから、各ブロックに共通する動きベクトル成分を算出し、算出した動きベクトル成分を動き特徴パラメータとする。この場合には、動きベクトルの強さと方向の両方について共通する動きベクトル成分が、動き特徴パラメータとして算出される。
【０３４３】
そして、この一方向モードにおいては、撮影者により、グローバルベクトルに対する動きしきい値θ２が設定されて、当該動きしきい値θ２を超えた画像を開始トリガー画像Ｐｓとして検出し、動きしきい値θ２を下回った画像を終了トリガー画像Ｐｅとして検出する。
【０３４４】
次に、分散モードは、風船を割ったときや、水滴など、破裂したり分散したりするものを被写体として撮影する場合に選択される。この分散モードにおいて、ブロック単位の複数個の動きベクトルから抽出すべき動き特徴パラメータは、ヒットブロック数である。
【０３４５】
ここで、ヒットブロック数とは、画面上、または画面内に指定した領域内の、複数個のブロックの中で、ブロック単位の動きベクトルが、設定されたしきい値Ｖθを超えたものを指す。
【０３４６】
このヒットブロック数を動き特徴パラメータとして抽出するための計算方法においては、画面上、または画面内に指定した領域内の、複数個のブロック単位の動きベクトルと、動きしきい値とをそれぞれ比較して、動きベクトルがしきい値Ｖθを超えたブロックは、ヒットブロックとして検出し、そのヒットブロック数の総和を、動き特徴パラメータとして算出する。
【０３４７】
そして、この分散モードにおいては、撮影者により、動きベクトルに対するしきい値Ｖθと、ヒットブロック数に対する動きしきい値θ３とが設定されて、当該動きしきい値θ３を超えた画像を開始トリガー画像Ｐｓとして検出し、動きしきい値θ３を下回った画像を終了トリガー画像Ｐｅとして検出する。
【０３４８】
次に、トータルモードは、人の動きや動物の動きなど、動きが予想できないものを撮影したいときに選択設定される。このトータルモードにおいて、ブロック単位の複数個の動きベクトルから抽出すべき動き特徴パラメータは、総動きベクトル量である。
【０３４９】
この総動きベクトル量を動き特徴パラメータとして抽出するための計算方法は、次の通りである。すなわち、画面上、または画面内に指定した領域内の、複数個のブロック単位の動きベクトルの総和を動きパラメータとする。総和の求め方は、方向を加味したベクトル値の総和を求めても良いし、動きベクトルの絶対値のみの総和であっても良い。
【０３５０】
そして、このトータルモードにおいては、撮影者により、総動きベクトル量に対する動きしきい値θ４が設定されて、当該動きしきい値θ４を超えた画像を開始トリガー画像Ｐｓとして検出し、動きしきい値θ４を下回った画像を終了トリガー画像Ｐｅとして検出する。
【０３５１】
ところで、開始トリガー画像Ｐｓは、被写体画像として、すでに動き特徴を呈する画像部分が開始している画像であるため、動きの開始地点を逃す可能性がある。また、再生時に、再生と同時に動きが始まることは鑑賞者に違和感を与える可能性がある。そのため、この実施形態では、実際に記録する撮像画像については、動きのりしろ画像なる概念を導入している。すなわち、開始トリガー画像Ｐｓよりも前に、１枚または複数枚の画像（重要でない画像区間ＵＮＩＭＰの画像）を付加して、撮像画像の記録を行う。つまり、記録開始点は、開始トリガー画像Ｐｓではなく、動きのりしろ画像を含む時点に決定するものである。この付加する画像を、動きのりしろ画像とこの明細書では称する。
【０３５２】
そして、この実施形態では、この動きのりしろ画像の枚数は、設定により撮影者が変更することができるようにしている。なお、動きのりしろ画像の枚数は、０枚とするようにしても良い。
【０３５３】
また、この実施形態では、動きのりしろ画像は、開始トリガー画像Ｐｓに対してのみではなく、終了トリガー画像Ｐｅに対しても設定可能とされている。すなわち、終了トリガー画像Ｐｅより後に、１枚または複数枚の画像（重要でない画像区間ＵＮＩＭＰの画像）を付加して、撮像画像の記録を行うものである。つまり、記録終了点は、終了トリガー画像Ｐｓではなく、動きのりしろ画像だけ後の時点に決定するものである。この場合も、動きのりしろ画像の枚数は、０枚とするようにしても良い。
【０３５４】
重要な画像区間ＩＭＰの開始点と異なり、重要な画像区間ＩＭＰの終わりは、撮影者が視覚により判断した時点の画像で充分であるとすることもできる。そこで、この実施形態では、所定の操作、例えばシャッターボタンが撮影者により再度押下されたとき、当該シャッターボタンの再押下をトリガーとして、当該トリガー時点を記録終了点とするようにしている。シャッターボタンの再押下があった場合には、終了トリガー画像Ｐｅに対する動きのりしろ画像の枚数設定は、無効となる。
【０３５５】
なお、シャッターボタンの再押下をトリガーとして、当該トリガー時点を記録終了点とするかどうかを、撮影者（ユーザ）の設定条件とするようにしても勿論よい。
【０３５６】
また、動きのりしろ画像の枚数をユーザが設定するのではなく、選択設定された被写体モードに応じて、動きのりしろ画像の枚数を、固定的に定めるようにしてもよい。この場合に、動きのりしろ画像の枚数は、被写体の明るさ、被写体までの距離、露出値などの撮像条件を加味して、定めるようにしても良い。
【０３５７】
また、ユーザが動きのりしろ画像の枚数を多めに設定して撮像記録し、後からユーザが、不要な画像部分を削除できるようにもしても良い。
【０３５８】
上述したような各種設定が、撮像装置において、撮影者により、実際の撮影に先立ちなされる。例えば、この実施形態の撮像装置が、デジタルカメラである場合、図５１に示すような撮像装置筐体３０に設けられた各種操作ボタンが用いられて、前記各種設定がなされる。
【０３５９】
図５１に示すように、この例の撮像装置筐体３０には、電源ボタン３１、シャッターボタン３２、ズームボタン３３、記録／再生切替ボタン３４、機能ボタン３５、上下左右方向ボタン３６、決定ボタン３７などの操作ボタンを備えると共に、液晶ディスプレイからなるモニターディスプレイ６のディスプレイ画面６Ｄが設けられている。
【０３６０】
ユーザは、上下左右方向ボタン３６用いて、ディスプレイ画面６Ｄに表示される選択可能項目の一覧中から、自分が選択したい項目を選択することができ、決定ボタン３７を押下すると、選択中の項目で選択の確定をすることができる。
【０３６１】
機能ボタン３５が押下されると、この実施形態の撮像装置が備える種々の機能の一覧がディスプレイ画面６Ｄに表示される。この機能の一覧には、「設定」の項目が含まれ、ユーザは、上下左右方向ボタン３６および決定ボタン３７を用いて、当該「設定」の項目を選択することができる。
【０３６２】
当該「設定」の項目が選択されると、ディスプレイ画面６Ｄには、撮像モードの設定を含む各種設定の項目の一覧が表示される。この各種設定の項目の一覧から、撮像モードの設定が選択されると、先ず、通常撮像モードと動き解析高速度撮像モードとのいずれかを選択する画面になる。
【０３６３】
この画面において、動き解析高速度撮像モードが選択されると、ディスプレイ画面６Ｄには、図５１に示すように、４種の被写体モードの選択画面になる。ユーザが、いずれかの被写体モードを選択すると、図５２に示すように、ディスプレイ画面６Ｄの左下に、動きしきい値設定用ウィンドウ６Ｗが表示される。
【０３６４】
この動きしきい値設定用ウィンドウ６Ｗには、動き特徴パラメータの値６Ｇに対する動きしきい値６θの関係が表示されており、ユーザが、上下左右方向ボタン３６のうちの上下方向ボタンを操作することにより、動き特徴パラメータの値６Ｇに対して、動きしきい値６θを変更して設定することができるように構成されている。
【０３６５】
同様にして、ディスプレイ画面６Ｄにおいて、開始トリガー画像Ｐｓに対する動きのりしろ画像の枚数、終了トリガー画像Ｐｅに対する動きのりしろ画像の枚数が設定される。また、シャッターボタンの再度の押下をトリガーとして、当該トリガー時点を記録終了点とする設定をする場合にも、同様にして、ディスプレイ画面６Ｄを通じてなされる。
【０３６６】
［動き解析高速度撮像モードにおける処理動作］
図５３および図５４は、この実施形態の撮像装置において、カメラモード（撮像記録可能状態）にされているときに、動き解析高速度撮像モードが実行されるときの処理動作の流れの例を示すフローチャートである。この図５３および図５４の処理ルーチンにおける各ステップは、主として、ＣＰＵ１の制御動作によりなされるものである。
【０３６７】
カメラモードにおいては、先ず、ＣＰＵ１は、撮像モードは、通常撮像モードと、動き解析高速度撮像モードのいずれに設定されているかを判別する（ステップＳ９１）。このステップＳ９１で、通常撮像モードに設定されていると判別したときには、ＣＰＵ１は、通常撮像モードの処理ルーチンを実行する（ステップＳ９２）。
【０３６８】
また、ステップＳ９１で、動き解析高速度撮像モードに設定されている判別したときには、ＣＰＵ１は、設定されている被写体モードが、前述した４種類のうちのいずれであるかを認識する（ステップＳ９３）。次に、認識した被写体モードにおける動き特徴パラメータについて設定されている動きしきい値の設定値を認識する（ステップＳ９４）。さらに、設定されている、開始トリガー画像Ｐｓに対する動きのりしろ画像の枚数、終了トリガー画像Ｐｅに対する動きのりしろ画像の枚数などを認識する（ステップＳ９５）。
【０３６９】
次に、ＣＰＵ１は、撮影者によるシャッターボタンの押下を検出したか否か判別し（ステップＳ９６）、シャッターボタンが押下されていないと判別したときには、撮像モードが通常撮像モードに変更されたか否か判別する（ステップＳ９７）。そして、ステップＳ９７で、通常撮像モードに変更されたと判別したときには、ＣＰＵ１は、ステップＳ９２に進み、通常撮像モードの処理ルーチンへ移行する。また、ステップＳ９７で、通常撮像モードへは変更されていないと判別したときには、ＣＰＵ１は、ステップＳ９６に戻り、シャッターボタンの押下を待つ。
【０３７０】
そして、ステップＳ９６で、シャッターボタンが押下されたと判別したときには、ＣＰＵ１は、ステップＳ９８に進み、撮像素子から出力される撮像画像について、リアルタイムで符号化しながら、２画面間におけるブロック毎の動きベクトルを検出して、動き解析を開始して、撮影者により設定された被写体モードに適合する重要な画像区間ＩＭＰの画像部分の自動記録を開始する。
【０３７１】
ここで、この実施形態では、画像の動き特徴が検出できればよいので、ブロック毎の動きベクトルを高精度で検出する必要はないことから、このステップＳ９８における、動き解析における動きベクトル検出においては、動き検出・動き補償部１６は、階層化ブロックマッチングのうち、縮小面におけるブロックマッチングのみにより、ブロック毎の動きベクトルを検出するようにしている。すなわち、縮小面動きベクトルを求め、それを縮小倍率の逆数倍して、ブロック毎の動きベクトルを検出するようにしている。
【０３７２】
しかしながら、処理速度、システムバス２のバス帯域、画像メモリ部４におけるメモリ容量が許容するのであれば、動き検出・動き補償部１６は、縮小面だけでなく、基底面におけるブロックマッチングを行う階層化ブロックマッチングを行って、ブロック毎の動きベクトルを検出するようにしても、もちろん良い。
【０３７３】
動き検出・動き補償部１６は、検出したブロック毎動きベクトルを、システムバス２を通じてＣＰＵ１のワークメモリに渡す。ＣＰＵ１は、ステップＳ９３で認識した被写体モードから、前述の図５０に示したように定まる動き特徴パラメータを、ソフトウエア処理により、受け取ったブロック毎動きベクトルから抽出する（ステップＳ９９）。
【０３７４】
そして、ＣＰＵ１は、抽出した動き特徴パラメータと、ステップＳ９４で認識した動きしきい値とを比較することにより、開始トリガー画像Ｐｓおよび終了トリガー画像Ｐｅを検出する処理を開始する（ステップＳ１００）。
【０３７５】
そして、ＣＰＵ１は、開始トリガー画像Ｐｓを検出したか否か判別し（ステップＳ１０１）、開始トリガー画像Ｐｓを検出したと判別したときには、ステップＳ９５で認識した動きのりしろ画像の枚数を考慮した記録開始点の決定を行い、当該記録開始点からの撮像画像を画像メモリ部４に保持するようにする（図５４のステップＳ１１１）。
【０３７６】
次に、ＣＰＵ１は、抽出した動き特徴パラメータと、ステップＳ９４で認識した動きしきい値とを比較することにより、終了トリガー画像Ｐｅを検出したか否か判別し（ステップＳ１１２）、当該終了トリガー画像Ｐｅを検出したと判別したときには、ステップＳ９５で認識した動きのりしろ画像の枚数を考慮した記録終了点の決定を行う（ステップＳ１１３）。
【０３７７】
そして、記録終了点を決定したら、ＣＰＵ１は、ステップＳ１１３からステップＳ１１６に進み、記録終了点の画像までで、画像メモリ部４への撮像画像のデータの取り込み保持を終了する（ステップＳ１１６）。
【０３７８】
そして、ＣＰＵ１は、画像メモリ部４に取り込み保存した記録開始点から記録終了点までの撮像画像について、前述した動画のときと同様のブロックマッチングおよび画像重ね合わせによるＮＲ処理を行い、当該ＮＲ処理した画像データ（圧縮画像データ）を、記録再生装置５の記録媒体に記録するようにする（ステップＳ１１７）。
【０３７９】
このステップＳ１１７での動き検出、動き補償ブロックの生成においては、画像メモリ部４に保持されている圧縮符号化されている撮像画像データを伸長デコードしながら、実行する。この画像メモリ部４からの読み出し、および伸長デコード処理については、前述の静止画についてのＮＲ処理時と同様になる。
【０３８０】
そして、このステップＳ１１７での動き検出、動き補償ブロックの生成においては、ＮＲ処理をブロック毎に精度良く行なうため、動き解析時の縮小面ブロックマッチングのみではなく、階層化ブロックマッチングを行うようにしている。
【０３８１】
そして、ＮＲ画像の記録を終了すると、ＣＰＵ１は、カメラモードが終了されたか否かを判別し（ステップＳ１１８）、カメラモードが終了されていなければ、図５３のステップＳ９７に戻り、このステップＳ９７以降の処理を繰り返す。また、ステップＳ１１８で、カメラモードが終了されていると判別したときには、ＣＰＵ１は、この処理ルーチンを終了する。
【０３８２】
また、ステップＳ１１２で、終了トリガー画像を検出しなかったと判別したときには、ＣＰＵ１は、画像メモリ部４の記憶容量に余裕があるかどうか判別し（ステップＳ１１４）、記憶容量に余裕が無いと判別したときには、ＣＰＵ１は、画像メモリ部４への撮像画像の取り込み保持を終了（中止）する（ステップＳ１１６）。そして、ＣＰＵ１は、前述したステップＳ１１６以降の処理を繰り返す。
【０３８３】
また、ステップＳ１０１で、画像メモリ部４の記憶容量には余裕があると判別したときには、ＣＰＵ１は、撮影者によりシャッターボタンが再押下されたか否か判別し（ステップＳ１１５）、再押下されていないと判別したときには、ステップＳ９８に戻り、動き解析をしながら、開始トリガー画像Ｐｓの検出および記録開始点の決定、終了トリガー画像Ｐｅの検出および記録終了点の決定、記録開始点以降の撮像画像の記録処理の実行を継続する。
【０３８４】
そして、ステップＳ１１５で、撮影者によりシャッターボタンが再押下されたと判別したときには、ＣＰＵ１は、ステップＳ１１６に進んで、画像メモリ部４への撮像画像の取り込み保持を終了する。そして、ＣＰＵ１は、前述したステップＳ１１６以降の処理を繰り返す。
【０３８５】
次に、動き解析高速度撮像モードにおける撮像処理動作が開始されたときの画像データの流れについて、図５５および図５６を参照して説明する。
【０３８６】
すなわち、図５５の破線で示すように、撮像素子１１からの撮影画像は、前処理部１３で、センサー補正などの前処理が行われた後、ＲＡＷ画像形式（カメラ信号処理を行う前のデータ形式）で、一旦、画像メモリ部４に格納される。
【０３８７】
その後、ＲＡＷ画像形式で画像メモリ部４に格納された画像データは、画像メモリ部４から短冊形式で読み出されてデータ変換部１４でＲＡＷ信号からＹＣ画素データに変化され、画像補正・解像度変換部１５で画像補正、解像度変換などが行われた後、画像メモリ部４を介さずに、直接、静止画コーデック部１８で、この例ではＪＰＥＧ方式で圧縮符号化されて圧縮された状態で、画像メモリ部４に書き込まれる。したがって、ここでは、画像を圧縮する単位は、画像の１枚単位ではなく、短冊単位になる。
【０３８８】
また、この動き解析高速度撮像モード時は、画像補正・解像度変換部１６は、静止画コーデック部１８に画像データを転送する際に、同じ画像データを動き検出・動き補償部１６へ転送する。そして、図５５において点線で示すように、１枚目の画像のときは、画像データが動き検出・動き補償部１６から画像重ね合わせ部１７に送られ、この画像重ね合わせ部１７の縮小面生成部１７４（図３０参照）で縮小画像が生成され、画像メモリ部４に貼られる。
【０３８９】
そして、２枚目以降の画像は、図５６に示すように、動き検出・動き補償部１６では、画像補正・解像度変換部１６から転送されてくる画像データを、動きベクトル検出のためのターゲット画像とする。このため、動き検出・動き補償部１６では、画像補正・解像度変換部１６から転送されてくる画像データから、ターゲットブロックバッファ部１６１の縮小化処理部１６１３（図２８参照）で、リアルタイムに縮小画像（縮小面ターゲット画像）を生成する。
【０３９０】
そして、図５６に示すように、動き検出・動き補償部１６では、画像メモリ部４から１枚前の縮小画像を縮小面参照画像として読み込み、生成した縮小面ターゲット画像との間での相関値としてのＳＡＤ値を計算し、上述したようにして、ブロック単位の動きベクトルを検出する。そして、次のフレームの撮像画像についての動きベクトル検出に際に、縮小面参照画像として用いるために、２枚目以降の画像については、画像重ね合わせ部１７の縮小面生成部１７４（図３０参照）で縮小画を生成し、画像メモリ部４に貼っておく。
【０３９１】
以上のように、動き解析高速度撮像モードにおいては、撮影者がシャッターボタンを押下すると、高速度の撮影を開始し、当該高速で撮影された画像を、リアルタイムで符号化しながら、縮小画像を用いて動きベクトル検出を行う。
【０３９２】
そして、画面（画像）毎に、検出されたブロック毎の複数個の動きベクトルから、設定された被写体モードに応じた動き特徴パラメータが算出され、算出された動き特徴パラメータと、動きしきい値とが比較されて、開始トリガー画像Ｐｓおよび終了トリガー画像Ｐｅの検出がなされる。
【０３９３】
図５７に、開始トリガー画像Ｐｓが検出されたときの動作例を示す。図５７は、シャッターボタン３２が押下されたことにより取り込まれた撮像画像Ｇ１〜Ｇ１５・・・が、前述したようにして、静止画コーデック部１８で、リアルタイムに符号化されて、圧縮符号化画像Ｊ１〜Ｊ１５・・・とされ、画像メモリ部４に格納されることを示している。
【０３９４】
今、シャッターボタン３２が押されてから、７枚目の撮像画像Ｇ７が動き開始トリガー画像Ｐｓと認識されたとする。そして、動き開始トリガー画像Ｐｓに対する動きのりしろ画像の枚数は、この例では、３枚と設定されているとする。この例の場合、７枚目の撮像画像Ｇ７よりも３枚前までの撮像画像の圧縮符号化画像Ｊ４，Ｊ５，Ｊ６が動きのりしろ画像となる。
【０３９５】
開始トリガー画像Ｐｓが検出されるまでは、圧縮符号化画像は、現在の撮像画像から過去に３枚遡った画像より古いものが順番に、画像メモリ部４から削除（廃棄）されていく。そして、開始トリガー画像Ｐｓ（Ｇ７）が検出された時点で、開始トリガー画像Ｐｓから過去に３枚遡った撮像画像Ｇ４〜Ｇ７の圧縮符号化画像Ｊ４〜Ｊ６を、動きのりしろ画像として、記録画像の記録再生装置部５の記録媒体への記録を開始し、これ以降の圧縮符号化画像Ｊ７・・・を、さらに記録画像として記録媒体に記録保存する。
【０３９６】
次に、図５８に、終了トリガー画像Ｐｅが検出されたときの動作例を示す。この例では、図５８に示すように、シャッターボタン３２が押下されてから、１６枚目の撮像画像Ｇ１６が開始トリガー画像Ｐｅと認識されたとする。また、終了トリガー画像Ｐｅに対する動きのりしろ画像の枚数は３枚と設定されているとする。したがって、この例では、３枚分の撮像画像Ｇ１６〜Ｇ１８の圧縮符号化画像Ｊ１６〜Ｊ１８が動きのりしろ画像である。
【０３９７】
すなわち、図５８に示すように、終了トリガー画像Ｐｅが検出されるまでは、圧縮符号化画像は、記録画像として記録媒体に順次に記録保存される。そして、終了トリガー画像Ｐｅ（Ｇ１６）が検出されると、当該終了トリガー画像よりも２枚分後の画像Ｇ１８が、記録終了点と決定され、動きのりしろ画像Ｊ１６〜Ｊ１８を記録画像として、記録媒体に記録した後、記録を終了する。
【０３９８】
また、図５９に、撮影者が、再度シャッターボタン３２を押したことを終了トリガーにして、動き解析高速度撮影を終了する場合の例を示す。この場合は、撮影者が、動き特徴を呈する被写体画像が終了したことを判断できるので、動きのりしろ画像は必要無い。
【０３９９】
すなわち、図５９の例は、終了トリガー画像Ｐｅが検出される前に、再度シャッターボタン３２が押下された場合である。この場合、再度のシャッターボタン３２の押下操作時点までの撮像画像の符号化画像が、記録画像として記録媒体に記録され、シャッターボタンの再押下後の撮像画像は、記録されない。
【０４００】
なお、このシャッターボタン３２の再押下を終了トリガーとする場合も、撮影者の誤操作を考慮して、動きのりしろ画像を設定しても良い。
【０４０１】
以上のような手順、手法により、高速撮像時にリアルタイムに動き検出を行うことができ、動きベクトルを動きパラメータとして抽出することにより、動き開始、および動き終了のトリガー情報を得ることができ、撮影者が高度な操作をすることなく、重要な箇所を高速撮像記録することができる。
【０４０２】
［その他の実施形態または変形例］
なお、開始トリガー画像Ｐｓおよび終了トリガー画像Ｐｅを検出するための動きしきい値は、予め、撮影者が設定するようにしたが、動き特徴パラメータに対する動きしきい値を適切に設定することは難しく、撮影者が意図する開始トリガータイミングまたは終了トリガータイミングよりも早かったり、遅かったりしてしまう。そこで、動きしきい値を、動き解析高速度撮像モードにおける撮影中に、上下左右の方向ボタン３６のうちの、上下方向ボタンを撮影者が操作することで、調整することができるようにしても良い。
【０４０３】
また、上述の実施形態では、開始トリガー画像Ｐｓだけでなく、終了トリガー画像Ｐｅも、動き特徴パラメータと動きしきい値を用いて検出し、重要な画像区間を決定するようにしたが、終了トリガー画像Ｐｅの検出は、前述のシャッターボタン３２の再押下を終了トリガーとする場合には不要である。また、例えば、開始トリガー画像Ｐｓを検出してからの撮像画像枚数を指定して、撮像記録を終了するようにすることにより、終了トリガー画像Ｐｅの検出を不要にすることもできる。
【０４０４】
また、前述もしたように、動きのりしろ画像の枚数を多めに設定しておき、撮像記録後に、動きのりしろ画像部分の一部をユーザが削除することができるように構成してもよい。
【０４０５】
また、上述の実施形態では、動き解析高速度撮像モードにおいては、一旦、画像メモリ部４に高速連写画像を符号化して取り込んだ後、画像メモリ部４に保持した画像を重ね合わせてＮＲ処理するようにしたが、処理速度が充分であれば、動き解析して高速連写画像を取り込みながら、ＮＲ処理するようにすることもできる。
【０４０６】
また、上述の実施形態では、動きベクトルからの動き特徴パラメータの抽出および開始トリガー画像および終了トリガー画像の検出は、ソフトウエア処理としたが、動き検出・動き補償部１６に、その機能を設けるようにしても良いし、別途、動きベクトルからの動き特徴パラメータの抽出および開始トリガー画像および終了トリガー画像の検出を行う処理部を設けるようにしても良い。
【０４０７】
また、上述の実施の形態は、この発明による画像処理装置を撮像装置に適用した場合であるが、この発明は、撮像装置に限られるわけではなく、所定の動き特徴を呈する画像部分を、入力画像データから抽出する場合の全てに適用可能である。
【０４０８】
また、上述の実施の形態は、画像の重ね合わせによるノイズ低減処理のために、ブロック単位に動きベクトルを検出する場合に、この発明を適用した場合であるが、撮像時の手ぶれによる動きベクトルを検出するためにも用いることができることは言うまでもない。手ぶれによる動きベクトルは、例えば、前述したグローバルベクトルについて説明したように、複数のブロック動きベクトルから同じ動きベクトル成分を抽出することで求めることができる。
【図面の簡単な説明】
【０４０９】
【図１】この発明による画像処理装置の一実施の形態である撮像装置の構成例を示すブロック図である。
【図２】ブロックマッチング処理を説明するために用いる図である。
【図３】ブロックマッチング処理を説明するために用いる図である。
【図４】ブロックマッチング処理を説明するために用いる図である。
【図５】ブロックマッチング処理を説明するために用いる図である。
【図６】ブロックマッチング処理を説明するために用いる図である。
【図７】ブロックマッチング処理を説明するために用いる図である。
【図８】実施の形態の図１の撮像装置における撮像画像のノイズ低減処理を説明するための図である。
【図９】実施の形態の図１の撮像装置におけるブロックマッチング処理の説明のために用いる図である。
【図１０】実施の形態の図１の撮像装置における撮像画像のノイズ低減処理を説明するための図である。
【図１１】実施の形態の図１の撮像装置における撮像画像のノイズ低減処理を説明するための図である。
【図１２】この発明の第１の実施の形態の画像処理方法を説明するために用いる図である。
【図１３】この発明の第１の実施の形態の画像処理方法を説明するために用いる図である。
【図１４】この発明の第１の実施の形態の画像処理方法を説明するために用いる図である。
【図１５】実施の形態の図１の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。
【図１６】実施の形態の図１の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。
【図１７】実施の形態の図１の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。
【図１８】実施の形態の図１の撮像装置における動き検出・動き補償部における処理による効果を説明するための図である。
【図１９】実施の形態の図１の撮像装置における動き検出・動き補償部の構成例を示すブロック図である。
【図２０】実施の形態の図１の撮像装置における動き検出・動き補償部の動きベクトル算出部の第１の例を説明するために用いる図である。
【図２１】実施の形態の撮像装置における動き検出・動き補償部の動きベクトル算出部の第１の例を説明するために用いる図である。
【図２２】実施の形態の撮像装置における動き検出・動き補償部の動きベクトル算出部の第１の例の構成例を示すブロック図である。
【図２３】図２２の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図２４】図２２の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図２５】図２２の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図２６】実施の形態の撮像装置における動き検出・動き補償部の動きベクトル算出部の第２の例の構成を示すブロック図である。
【図２７】図２６の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図２８】図１９の動き検出・動き補償部の一部の詳細構成例のブロック図である。
【図２９】図１９の動き検出・動き補償部の一部の詳細構成例のブロック図である。
【図３０】実施の形態の図１の撮像装置における画像重ね合わせ部の構成例を示すブロック図である。
【図３１】この発明による画像処理方法の実施の形態を説明するためのフローチャートの一部を示す図である。
【図３２】この発明による画像処理方法の実施の形態を説明するためのフローチャートの一部を示す図である。
【図３３】この発明の実施の形態の画像処理方法における具体例を説明するために用いる図である。
【図３４】この発明の実施の形態の画像処理方法における具体例を説明するために用いる図である。
【図３５】この発明の実施の形態の画像処理方法における具体例を説明するために用いる図である。
【図３６】この発明の実施の形態の画像処理方法における具体例を説明するために用いる図である。
【図３７】この発明の実施の形態の画像処理方法における短冊アクセス方式を説明するための図である。
【図３８】この発明の実施の形態の画像処理方法における画像データのメモリアクセス方式を説明するための図である。
【図３９】この発明の実施の形態の画像処理方法における画像の処理単位の例を説明するための図である。
【図４０】この発明による画像処理方法の実施の形態を説明するためのフローチャートの一部を示す図である。
【図４１】この発明による画像処理方法の実施の形態を説明するためのフローチャートの一部を示す図である。
【図４２】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４３】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４４】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４５】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４６】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４７】この発明による画像処理方法の実施の形態を説明するためのフローチャートを示す図である。
【図４８】この発明の実施の形態の画像処理方法の要部を説明するための図である。
【図４９】この発明の実施の形態の画像処理方法の要部を説明するための図である。
【図５０】この発明の実施の形態の画像処理方法の要部を説明するための図である。
【図５１】この発明の実施の形態の撮像装置の筐体の概観の一例を示す図である。
【図５２】この発明の実施の形態の画像処理方法の要部を説明するための図である。
【図５３】この発明の実施の形態の画像処理方法の要部の処理動作を説明するためのフローチャートの一部を示す図である。
【図５４】この発明の実施の形態の画像処理方法の要部の処理動作を説明するためのフローチャートの一部を示す図である。
【図５５】この発明の実施の形態の画像処理方法の要部の処理動作を説明するための画像データの流れを説明するための図である。
【図５６】この発明の実施の形態の画像処理方法の要部の処理動作を説明するための画像データの流れを説明するための図である。
【図５７】この発明の実施の形態の画像処理方法の要部の処理動作を説明するための図である。
【図５８】この発明の実施の形態の画像処理方法の要部の処理動作を説明するための図である。
【図５９】この発明の実施の形態の画像処理方法の要部の処理動作を説明するための図である。
【符号の説明】
【０４１０】
４…画像メモリ部、１６…動き検出・動き補償部、１７…画像重ね合わせ部、１８…静止画コーデック部、１００…ターゲット画像（ターゲットフレーム）、１０１…参照画像（参照フレーム）、１０２…ターゲットブロック、１０４…動きベクトル１０６…サーチ範囲、１０７…参照ベクトル、１０８…参照ブロック、１６３…マッチング処理部、１６４…動きベクトル算出部
【図１】
2009065323.tif 000003
【図２】
2009065323.tif 000004
【図３】
2009065323.tif 000005
【図４】
2009065323.tif 000006
【図５】
2009065323.tif 000007
【図６】
2009065323.tif 000008
【図７】
2009065323.tif 000009
【図８】
2009065323.tif 000010
【図９】
2009065323.tif 000011
【図１０】
2009065323.tif 000012
【図１１】
2009065323.tif 000013
【図１２】
2009065323.tif 000014
【図１３】
2009065323.tif 000015
【図１４】
2009065323.tif 000016
【図１５】
2009065323.tif 000017
【図１６】
2009065323.tif 000018
【図１７】
2009065323.tif 000019
【図１８】
2009065323.tif 000020
【図１９】
2009065323.tif 000021
【図２０】
2009065323.tif 000022
【図２１】
2009065323.tif 000023
【図２２】
2009065323.tif 000024
【図２３】
2009065323.tif 000025
【図２４】
2009065323.tif 000026
【図２５】
2009065323.tif 000027
【図２６】
2009065323.tif 000028
【図２７】
2009065323.tif 000029
【図２８】
2009065323.tif 000030
【図２９】
2009065323.tif 000031
【図３０】
2009065323.tif 000032
【図３１】
2009065323.tif 000033
【図３２】
2009065323.tif 000034
【図３３】
2009065323.tif 000035
【図３４】
2009065323.tif 000036
【図３５】
2009065323.tif 000037
【図３６】
2009065323.tif 000038
【図３７】
2009065323.tif 000039
【図３８】
2009065323.tif 000040
【図３９】
2009065323.tif 000041
【図４０】
2009065323.tif 000042
【図４１】
2009065323.tif 000043
【図４２】
2009065323.tif 000044
【図４３】
2009065323.tif 000045
【図４４】
2009065323.tif 000046
【図４５】
2009065323.tif 000047
【図４６】
2009065323.tif 000048
【図４７】
2009065323.tif 000049
【図４８】
2009065323.tif 000050
【図４９】
2009065323.tif 000051
【図５０】
2009065323.tif 000052
【図５１】
2009065323.tif 000053
【図５２】
2009065323.tif 000054
【図５３】
2009065323.tif 000055
【図５４】
2009065323.tif 000056
【図５５】
2009065323.tif 000057
【図５６】
2009065323.tif 000058
【図５７】
2009065323.tif 000059
【図５８】
2009065323.tif 000060
【図５９】
2009065323.tif 000061