"複数フレーム間の画像信号の動きベクトルを算出する第1の画像処理部と、前記第1の画像処理部をプログラマブルに制御して、動き検出を実行させる第1の制御部と、前記第1の画像処理部を、予め決められた処理状態で制御して、動き検出を実行させる第2の制御部とを備えた画像処理装置。前記第2の制御部は、ハードウェア実装とした請求項1記載の画像処理装置。前記第1の制御部は、静止画の画像信号を処理する際の制御部であり、前記第2の制御部は、動画像の画像信号を処理する際の制御部である請求項2記載の画像処理装置。複数フレーム間の画像信号の動きベクトルを算出する第1の画像処理と、前記第1の画像処理の実行をプログラマブルに制御して、動き検出を実行させる第1の制御処理と、前記第1の画像処理を、予め決められた処理状態で制御して、動き検出を実行させる第2の制御処理とを行う画像処理方法。前記第2の制御処理は、ハードウェア実装とした請求項4記載の画像処理方法。前記第1の制御処理は、静止画像の画像信号を処理する際の制御処理であり、前記第2の制御処理は、動画像の画像信号を処理する際の制御処理である請求項5記載の画像処理方法。ブロックマッチング処理は膨大なハードウェアリソースを消費する回路であり、以前からそのリソースを削減する方法がいろいろと提案されてきた。一方で、ブロックマッチング処理は時間のかかる処理であり、回路全体のスループットを決める部分でもある。そのため、リソースと処理時間は常にトレードオフの関係にあり、そのバランスは一意に決まるものではない。たとえば、階層化してブロックマッチング処理を行う例に取ると、VGA640x480程度の画像であれば2階層、12M4000×3000程度の画像であれば3階層のように、階層数のバリエーションが必要になる。また、静止画の連写加算のように、手ブレによる画面全体のブレに対応する必要があるアプリケーションでは、一般的に、サーチ範囲が広い方が大きな手ブレにまで対応できるものである。一方で、ブロックマッチング処理部を、ベクトル検出器として使用する場合、そのサーチ範囲や求められる処理速度は、想定するアプリケーションによって様々であり、一概にサーチ範囲が広く取れれば良い、と言うことはできない。つまり、動き検出エンジンを有するシステムを構成する際、動き検出部のコントロール部は、サーチ範囲や階層数など階層ブロックマッチングの構成をプログラマブルに変更できることが望ましい。たとえば、CPUCentralProcessingUnitないしDSPDigitalSignalProcessorのようなプログラムで動作するものが良い。また、MPEGなどのコーデック処理に関する分野では、古くからプロセッサペースの動き検出エンジンやDCT処理エンジンが提案されている。たとえば、SAD演算器と複数のプロセッサを並列化してプログラマブルな動き検出処理を実現したものが既に提案されている。しかしながら、MPEGコーデックや動画フレームNRなど、リアルタイム性が求められる処理では、プログラマブルな構成を求めている一方で、高速に処理を行わなくてはいけないという要望もある。たとえば、特許文献1では、階層化してブロックマッチング処理を行う場合における処理時間の問題について言及している。ここでは、縮小面の動きベクトル検出から基底面の動きベクトル検出へ遷移する際に、縮小面の動きベクトル検出の結果が分からないと基底面の動きベクトル検出の参照ブロックのアクセスが出来ない問題に対して、パイプラインを組むことによって解決している。しかしながら、このような複雑なパイプラインをプログラムするためには、内部処理の様々な状態を見る必要があるため、CPU構成が複雑になってしまっていた。本発明は、複数フレーム間の画像信号の動きベクトルを算出する第1の画像処理部を備える。そして、その第1の画像処理部での動きベクトル算出を制御する制御部として、第1の制御部と第2の制御部とを備える。第1の制御部は、第1の画像処理部をプログラマブルに制御して、動き検出を実行させる。第2の制御部は、第1の画像処理部を、予め決められた処理状態で制御して、動き検出を実行させる。本発明によると、第1の画像処理部での動きベクトルの算出処理として、プログラマブルに制御される処理状態と、予め決められた処理状態とを適切に組み合わせ又は選択して、画像信号の状態に応じた適切な動きベクトル算出が行えるようにすることが可能になる。本発明によると、適切な制御形態で動きベクトル算出が行えるようになる。例えば、ブロックマッチング処理を行う場合に、階層数、マッチング並列数およびサーチ範囲のバリエーションに対応したプログラマブルな制御部を持つことができる。また、リアルタイム処理については専用のモード毎などに用意された制御部を持ち、自動でブロックマッチング処理を行うことができるようになる。以下、本発明の一実施の形態の例を、以下の順序で説明する。1.撮像装置の構成図1~図32.動き検出動き補償部の処理構成図4~図113.動き検出動き補償部の制御構成図12~図20、図254.撮像画像のノイズ低減処理の概要の流れ図21~図225.階層化ブロックマッチング処理の流れの例図23~図24[1.撮像装置の構成]この発明による画像処理装置の実施の形態として、撮像装置の場合を例にとって、図を参照しながら説明する。ここでの撮像装置は、ブロックマッチングにより2画面間の動きベクトルを検出し、検出した動きベクトルを用いて動き補償画像を生成し、生成した動き補償画像とノイズ低減対象の画像を重ね合わせてノイズ低減を行う画像処理を行う画像処理部を備える。まず、この画像処理の概要について説明する。ここでは、連続して撮影された複数枚の画像を、動き検出および動き補償を用いて位置合わせをした後、重ね合わせ加算することで、ノイズが低減された画像を得ることができるようにしている。すなわち、複数枚の画像のそれぞれにおけるノイズはランダムなものであるので、同一内容の画像を重ね合わせることで、画像に対してノイズが低減されるものである。以下の説明において、動き検出および動き補償を用いて複数枚の画像を重ね合わせて、ノイズを低減することをNRNoiseReductionと呼び、NRによりノイズ低減された画像をNR画像と称することとする。また、この明細書では、ノイズ低減を施したい画面画像をターゲット画面ターゲットフレーム、重ね合わせたい画面を参照画面参照フレームと定義する。連続して撮影された画像は、撮影者の手ブレなどにより、画像の位置がずれており、両画像の重ね合わせを行うには、位置合わせが重要となる。ここで、考慮しなければならないのは、手ブレのような画面全体のブレと共に、画面内における被写体の動きも存在することである。この例の撮像装置において、静止画撮影時は、図2に示すように、高速で複数枚の画像の撮影を行い、1枚目の撮影画像をターゲットフレーム100とする。そして、2枚目以降、所定枚数の撮影画像を参照フレーム101とし、ターゲットフレーム100と参照フレーム101との重ね合わせを行い、その重ね合わせたものを静止画撮影画像として記録するようにする。すなわち、撮影者が撮像装置のシャッターボタンを押下操作すると、高速で前記所定枚数の画像が撮影され、その1枚目に撮影した画像フレームに対して、時間的に後で撮影された複数枚の画像フレームが、重ね合わされることになる。また、動画撮影時は、図3のように、撮像素子から出力されている現フレームの画像をターゲットフレーム100の画像とし、その前フレームの過去の画像を参照フレーム101の画像とする。したがって、現フレームの画像のノイズ低減を行うために、現フレームの前フレームの画像を現フレームに重ね合わせるということになる。このような動き検出及び動き補償を行う撮像装置の構成について、図1を参照して説明する。図1に示す撮像装置は、システムバス2にCPUCentralProcessingUnit1が接続されると共に、システムバス2に、撮像信号処理系や、ユーザ操作入力部3、大容量メモリ40、記録再生装置部5などが接続されて構成されている。なお、CPU1は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するROMReadOnlyMemoryやワークエリア用RAMRandomAccessMemoryなどを含むものとしている。本明細書で説明するCPU1以外のCPUについても同様である。また、CPU1は、後述する他のCPUと区別するために、システムCPU1と称する場合もある。大容量メモリ40は、DRAMなどの比較的大容量のメモリとそのコントローラとで構成され、1フレーム又は複数フレームの画像データを記憶する容量の画像メモリである。メモリのコントローラは、メモリ40の外部に設けて、システムバス2などを介して書き込み及び読み出しが制御される構成でもよい。なお、以下の説明では、大容量メモリ40は画像メモリ40と称する。ユーザ操作入力部3を通じた撮像記録開始操作を受けて、図1の撮像装置の撮像信号処理系は、後述するような撮像画像データの記録処理を行なう。また、ユーザ操作入力部3を通じた撮像記録画像の再生開始操作を受けて、図1の撮像装置の撮像信号処理系は、記録再生装置部5の記録媒体に記録された撮像画像データの再生処理を行なう。図1に示すように、撮像信号処理系として、撮像レンズ10Lを備えるカメラ光学系図示は省略を通じた被写体からの入射光は、撮像素子11に照射されて撮像される。この例では、撮像素子11は、CCDChargeCoupledDeviceイメージャで構成されている。なお、撮像素子11は、CMOSComplementaryMetalOxideSemiconductorイメージャなどの他のイメージャで構成してもよい。この例の撮像装置においては、撮像記録開始操作がなされると、レンズ10Lを通じて入力された映像が、撮像素子11により撮像画像信号に変換される。この撮像画像信号は、タイミング信号発生部12からのタイミング信号に同期した信号として、赤R、緑G、青Bの3原色から構成されるベイヤー配列のRAW信号生の信号であるアナログ撮像信号として出力される。出力されたアナログ撮像信号は、前処理部13に供給され、欠陥補正やγ補正等の前処理が施され、データ変換部14に供給される。データ変換部14は、これに入力されたRAW信号であるアナログ撮像信号を、輝度信号成分Yと、色差信号成分Cb/Crとにより構成されるデジタル画像データYCデータに変換し、そのデジタル画像データを、ターゲット画像として、動き検出動き補償部16に供給する。動き検出動き補償部16内では、バッファメモリ16aのターゲット画像用の領域に記憶させる。また、動き検出動き補償部16では、既に画像メモリ40に書き込まれた以前のフレームの画像信号を、参照画像として取得する。その取得した参照画像の画像データは、動き検出動き補償部16のバッファメモリ16aの参照画像用の領域に記憶させる。バッファメモリ16aの具体的な構成例については後述する。動き検出動き補償部16では、ターゲットフレームの画像データと参照フレームの画像データを使用して、後述するブロックマッチング処理がなされて、ターゲットブロック単位での動きベクトルが検出される。動きベクトルを検出する際には、縮小面のサーチと、基底面のサーチとが行われる。動きベクトルを検出する際には、その動きベクトルの検出精度を示すヒット率βが算出されて出力される。そして、動き検出動き補償部16内で、検出された動きベクトルに基づいて、ブロック単位で動き補償が行われた動き補償画像が生成される。生成された動き補償画像と、元のターゲット画像のデータは、画像重ね合わせ部17を構成する加算率計算部171及び加算部172に供給する。加算率計算部171では、ヒット率βに基づいて、ターゲット画像と動き補償画像との加算率αが算出され、算出された加算率αを加算部172に供給する。加算部172では、加算率αで、ターゲット画像のデータと、動き補償画像のデータとの加算処理を行って、画像重ね合わせ処理を行い、ノイズ低減された加算画像を得る。なお、以下の説明では、ノイズ低減された加算画像をNR画像と称する。加算部172が出力する重ね合わせ結果としての、ノイズ低減された加算画像の画像データは画像メモリ40に記憶させる。画像メモリ40は、NR画像のデータを、1フレーム分、画像メモリ40内の1V前フレーム記憶部41に記憶させ保持させる。画像メモリ40は、1V前フレーム記憶部41の他に、2V前フレーム記憶部42を備え、1フレーム周期ごとに、1V前フレーム記憶部41から2V前フレーム記憶部42に記憶データが移される。この1V前フレーム記憶部41から2V前フレーム記憶部42への記憶データの移動に連動して、2V前フレーム記憶部42に記憶されていたデータが、解像度変換部37に読み出される。なお、図1の構成では2フレームの画像データを記憶させる構成としたが、動き検出補償部16などでより多くの過去の画像データが必要な場合には、より多くのフレーム数の過去の画像データを記憶させて、参照フレームとして使用する構成としても良い。解像度変換部37では、表示用や出力用の解像度の画像データに変換され、変換された画像データを記録再生装置部5で記録する場合には、動画コーデック部19で変換される。動画コーデック部19で変換された画像データは、記録再生装置部5で記録媒体に記録され、必要な際に記録再生装置部5で記録媒体から読み出される。そして、解像度変換部37が出力する画像データ、または記録再生装置部5で再生された画像データは、NTSCNationalTelevisionSystemCommitteeエンコーダ20に供給される。このNTSCエンコーダ20でNTSC方式の標準カラー映像信号に変換され、例えば液晶表示パネルからなるモニターディスプレイ6に供給される。このようにモニターディスプレイ6に供給されることで、モニター画像がモニターディスプレイ6の表示画面に表示される。なお、図1では、図示を省略したが、NTSCエンコーダ20からの出力映像信号は、映像出力端子を通じて外部に導出することが可能とされている。[2.動き検出動き補償部の説明]動き検出動き補償部16では、絶対値差分和であるSAD値を用いてブロックマッチング処理を行うことで、動きベクトル検出を行う。<階層化ブロックマッチング処理の概要>一般的な従来のブロックマッチングにおける動きベクトル検出処理は、ピクセル画素単位1ピクセル単位または複数ピクセル単位で参照ブロックを移動させて、各移動位置における参照ブロックについてのSAD値を算出する。そして、その算出したSAD値の中から最小値を示すSAD値を検出し、当該最小SAD値を呈する参照ブロック位置に基づいて動きベクトルを検出するようにする。しかし、このような従来の動きベクトル検出処理では、サーチ範囲内をピクセル単位で参照ブロックを移動させるようにするので、検索するサーチ範囲に比例して、SAD値を算出するマッチング処理回数が多くなって、マッチング処理時間が大きくなると共に、SADテーブルの容量も大きくなるという問題があった。そこで、ここでは、ターゲット画像ターゲットフレームおよび参照画像参照フレームに対して縮小画像を作成し、作成した縮小画像でブロックマッチングを行い、縮小画像での動き検出結果を基に、もとのターゲット画像でのブロックマッチングを行う。ここで、縮小画像のことを縮小面、縮小化をしていない元の画像のことを基底面と呼ぶことにする。したがって、この例では、縮小面でのブロックマッチングを行ったあと、そのマッチング結果を用いて基底面でのブロックマッチングを行う。図4および図5に、ターゲットフレーム画像および参照フレーム画像の画像縮小化のイメージを示す。すなわち、この例においては、例えば図4に示すように、基底面ターゲットフレーム130は、水平方向および垂直方向のそれぞれを、1/nnは正の数に縮小して、縮小面ターゲットフレーム132とする。したがって、基底面ターゲットフレーム130を複数個に分割して生成した基底面ターゲットブロック131は、縮小面ターゲットフレームでは、水平方向および垂直方向のそれぞれが1/n×1/nに縮小された縮小面ターゲットブロック133となる。そして、ターゲットフレームの画像縮小倍率1/nに合わせて、参照フレームを縮小する。すなわち、図5に示すように、基底面参照フレーム134は、水平方向および垂直方向のそれぞれを、1/nに縮小して、縮小面参照フレーム135とする。そして、基底面参照フレーム134上で検出された動き補償ブロック103についての動きベクトル104は、縮小面参照フレーム135では、1/n×1/nに縮小された縮小面動きベクトル136として検出される。なお、上記の例では、ターゲットフレームと参照フレームとの画像縮小倍率は同じとした。これに対して演算量削減のため、ターゲットフレーム画像と参照フレーム画像とで異なる画像縮小倍率を用い、画素補間等の処理で、両フレームの画素数を合わせて、マッチングを行うようにしてもよい。また、水平方向および垂直方向のそれぞれの縮小倍率を同一としたが、水平方向と垂直方向とで、縮小倍率を異ならせるようにしても良い。例えば水平方向は1/nに縮小し、垂直方向は、1/mmは正の数で、n≠mに縮小する場合には、縮小画面は、元の画面の1/n×1/mの大きさになる。図6に、縮小面参照ベクトルと基底面参照ベクトルの関係を示す。基底面参照フレーム134において、動き検出原点105と、サーチ範囲106が、図6Aに示すように決定されたとする。このとき、1/n×1/nに画像縮小された縮小面参照フレーム135上では、図6Bに示すように、サーチ範囲は、1/n×1/nに縮小された縮小面サーチ範囲137とされる。そして、この例では、縮小面サーチ範囲137内において、縮小面参照フレーム135での動き検出原点105からの位置ズレ量を表す縮小面参照ベクトル138を設定する。そして、それぞれの縮小面参照ベクトル138が指し示す位置にある縮小面参照ブロック139と、縮小面ターゲットブロック131図6では図示は省略との相関性を評価する。この場合、縮小画像において、ブロックマッチングを行うので、縮小面参照フレーム135においてSAD値を算出すべき縮小面参照ブロック位置縮小面参照ベクトルの数を少なくすることができる。このようにSAD値の算出回数マッチング処理回数が少なくなる分だけ、処理を高速化することができると共に、SADテーブルを小規模とすることができる。図7に示すように、縮小面サーチ範囲137に応じて定まる縮小面マッチング処理範囲143内に設定される複数個の縮小面参照ブロック139と縮小面ターゲットブロック131とのブロックマッチングによる相関性評価が得られる。その相関性評価により、縮小面参照フレーム135における縮小面動きベクトル136が算出される。この縮小面動きベクトル136の精度は、画像が1/n×1/nに縮小されているので、1ピクセルのn倍の低精度となっている。そこで、この算出された縮小面動きベクトル136をn倍しても、基底面参照フレーム134において、1ピクセル精度の動きベクトル104は得られない。しかし、基底面参照フレーム134においては、縮小面動きベクトル136をn倍した動きベクトルの近傍に、1ピクセル精度の基底面動きベクトル104が存在することは明らかである。そこで、この例では、図6Cおよび図7に示すように、基底面参照フレーム134において、縮小面動きベクトル136をn倍した動きベクトル基底面参照ベクトル141が指し示す位置を中心として考える。この位置を中心として、基底面動きベクトル104が存在するであろうと考えられる狭い範囲に、基底面サーチ範囲140を設定し、設定された基底面サーチ範囲140に応じて基底面マッチング処理範囲144を設定する。そして、図6Cに示すように、この基底面サーチ範囲140内の位置を示すものとして、基底面参照フレーム134における基底面参照ベクトル141を設定し、各基底面参照ベクトル141が指し示す位置に基底面参照ブロック142を設定する。これらの設定で、基底面参照フレーム134におけるブロックマッチングを行うようにする。ここで設定された基底面サーチ範囲140および基底面マッチング処理範囲144は、非常に狭い範囲でよい。すなわち、図7に示すように、縮小面サーチ範囲137および縮小面マッチング処理範囲143を縮小率の逆数倍であるn倍したサーチ範囲137 ́およびマッチング処理範囲143 ́に比較して非常に狭い範囲でよい。したがって、階層化マッチングを行わずに、基底面においてのみブロックマッチング処理をした場合には、基底面においては、サーチ範囲137 ́およびマッチング処理範囲143 ́において、複数個の参照ブロックを設定して、ターゲットブロックとの相関値を求める演算をする必要がある。これに対して、階層化マッチング処理においては、図7のように、非常に狭い範囲においてのみマッチング処理を行えばよい。このため、当該狭い範囲である、基底面サーチ範囲140および基底面マッチング処理範囲144に設定される基底面参照ブロックの数は非常に少なくなり、マッチング処理回数相関値演算回数および保持するSAD値を非常に小さくすることができる。このため、処理を高速化することができると共に、SADテーブルを小規模化することができるという効果を得ることができる。<動き検出動き補償部の構成例>図8に、動き検出動き補償部16の構成例のブロック図を示す。この例では、動き検出動き補償部16は、ターゲットブロック102の画素データを保持するターゲットブロックバッファ部161と、参照ブロック108の画素データを保持する参照ブロックバッファ部162を備える。これらのバッファ部161,162が、図1に示したバッファ16aに相当する。さらに、動き検出動き補償部16は、ターゲットブロック102と参照ブロック108とで対応する画素についてのSAD値を計算するマッチング処理部163を備える。さらにまた、マッチング処理部163から出力されるSAD値情報から動きベクトルを算出する動きベクトル算出部164と、それぞれのブロックを制御するコントロール部165とを備える。そして、画像メモリ40に記憶された画像データは、動き検出動き補償部16内のターゲットブロックバッファ部161及び参照ブロックバッファ部162に供給される。静止画撮像時においては、ターゲットブロックバッファ部161には、メモリコントローラ8による読み出し制御にしたがって、以下の画像が画像メモリ40から読み出されて、書き込まれる。すなわち、画像メモリ40に記憶されている縮小面ターゲット画像Prtまたは基底面ターゲット画像Pbtの画像フレームからの縮小面ターゲットブロックまたは基底面ターゲットブロックが、画像メモリ40から読み出されて、書き込まれる。縮小面ターゲット画像Prtまたは基底面ターゲット画像Pbtは、1枚目は、シャッターボタン押下後の最初の撮像フレームの画像が画像メモリ40から読み出されて、ターゲットフレーム102として、ターゲットブロックバッファ部161に書き込まれる。参照画像とのブロックマッチングに基づき画像の重ね合わせがなされると、画像メモリ40に当該画像の重ね合わせ後のNR画像が書き込まれ、ターゲットブロックバッファ部161のターゲットフレーム102が、当該NR画像に書き換えられてゆく。参照ブロックバッファ部162には、画像メモリ40に記憶されている縮小面参照画像Prrまたは基底面参照画像Pbrの画像フレームからの縮小面マッチング処理範囲または基底面マッチング処理範囲の画像データが、書き込まれる。縮小面参照画像Prrまたは基底面参照画像Pbrは、最初の撮像フレームの後の撮像フレームが、参照フレーム108として画像メモリ40に書き込まれる。この場合、連続して撮影された複数枚の撮像画像を取り込みながら画像の重ね合わせ処理を行う場合には、基底面参照画像および縮小面参照画像としては、最初の撮像フレームの後の撮像フレームが、1枚ずつ順次に画像メモリ40に取り込まれる。連続して撮影された複数枚の撮像画像を画像メモリ40に取り込んだ後、動き検出動き補償部16および画像重ね合わせ部17で、動きベクトル検出を行い、画像の重ね合わせを実行するようにする場合には、複数枚の撮像フレームを保持する必要がある。この連続して撮影された複数枚の撮像画像を画像メモリ40に取り込んだ後の処理を、撮影後加算と呼ぶ。すなわち、この撮影後加算時には、基底面参照画像および縮小面参照画像としては、最初の撮像フレームの後の複数枚の撮像フレームの全てを画像メモリ40に格納保持しておく必要がある。撮像装置としては、撮影中加算および撮影後加算のいずれも用いることができるが、この実施形態では、静止画NR処理は、多少処理時間がかかっても、ノイズが低減された綺麗な画像が要求されることを考慮して、撮影後加算の処理を採用している。一方、動画撮影時においては、動き検出動き補償部16には、画像補正解像度変換部15からの撮像フレームがターゲットフレーム102として入力される。ターゲットブロックバッファ部161には、この画像補正解像度変換部15からの、ターゲットフレームから抽出されたターゲットブロックが書き込まれる。また、ターゲットフレームよりも1枚前の、画像メモリ40に記憶されている撮像フレームが、参照フレーム108とされる。参照ブロックバッファ部162には、この参照フレーム基底面参照画像Pbrまたは縮小面参照画像Prrからの基底面マッチング処理範囲または縮小面マッチング処理範囲が書き込まれる。この動画撮影時には、画像メモリ40には、画像補正解像度変換部16からのターゲットフレームとの間でブロックマッチングをすべき、少なくとも1枚前の撮像画像フレームを基底面参照画像Pbrおよび縮小面参照画像Prrとして保持する。マッチング処理部163では、縮小面でのマッチング処理および基底面でのマッチング処理を、ターゲットブロックバッファ部161に記憶されたターゲットブロックと、参照ブロックバッファ部162に記憶された参照ブロックとについて行う。ここで、ターゲットブロックバッファ部161に記憶されたものが縮小面ターゲットブロックの画像データであり、参照ブロックバッファ162に記憶されたものが縮小面参照画面から抽出された縮小面マッチング処理範囲の画像データである場合を考える。この場合には、マッチング処理部163では、縮小面マッチング処理が実行される。また、ターゲットブロックバッファ部161に記憶されたものが基底面ターゲットブロックの画像データとなる。参照ブロックバッファ162に記憶されたものが基底面参照画面から抽出された基底面マッチング処理範囲の画像データである場合には、マッチング処理部163では、基底面マッチング処理が実行されることになる。マッチング処理部163で、ブロックマッチングにおけるターゲットブロックと、参照ブロックとの相関の強さを検出するためには、画像データの輝度情報を用いてSAD値算出を行う。そして、その最小SAD値を検出して、当該最小SAD値を呈する参照ブロックを最強相関参照ブロックとして検出するようにする。なお、本実施の形態の例の場合、SAD値の算出は、輝度信号と色差信号のそれぞれについて行い、輝度信号のSAD値と色差信号のSAD値とを重み付け加算して、最終的なSAD値を得るようにしてある。この輝度信号と色差信号との処理の例については後述する。動きベクトル算出部164は、マッチング処理部163のマッチング処理結果からターゲットブロックに対する参照ブロックの動きベクトルを検出する。この例では、動きベクトル算出部164は、SAD値の最小値を検出保持する。コントロール部165は、CPU1による制御を受けながら、この動き検出動き補償部16における階層化ブロックマッチング処理の処理動作を制御するようにする。コントロール部165による制御動作の例については後述する。<ターゲットブロックバッファの構成例>ターゲットブロックバッファの構成例のブロック図を、図9に示す。この図9に示すように、ターゲットブロックバッファ161は、基底面バッファ部1611と、縮小面バッファ部1612と、縮小化処理部1613と、セレクタ1614,1615および1616とを備えている。セレクタ1614,1615および1616は、図9では、図示は省略したが、コントロール部165からの選択制御信号によりそれぞれ選択制御される。基底面バッファ部1611は、基底面ターゲットブロックを一時格納するためのものである。この基底面バッファ部1611は、基底面ターゲットブロックを、画像重ね合わせ部17に送ると共に、セレクタ1616に供給する。縮小面バッファ部1612は、縮小面ターゲットブロックを一時格納するためのものである。縮小面バッファ部1612は、縮小面ターゲットブロックを、セレクタ1616に供給する。縮小化処理部1613は、動画撮影時には上述したように、ターゲットブロックは、画像補正解像度変換部15から送られてくるので、この縮小化処理部1613で縮小面ターゲットブロックを生成するために設けられている。縮小化処理部1613からの縮小面ターゲットブロックは、セレクタ1615に供給される。セレクタ1614は、動画撮影時にはデータ変換部14からのターゲットブロック基底面ターゲットブロックを出力する。静止画撮影時には画像メモリ40から読み出された基底面ターゲットブロックまたは縮小面ターゲットブロックを出力する。これらの出力は、コントロール部165からの選択制御信号により選択されて出力され、その出力を基底面バッファ部1611と、縮小化処理部1613と、セレクタ1615とに供給する。セレクタ1615は、動画撮影時には縮小化処理部15からの縮小面ターゲットブロックを、静止画撮影時には画像メモリ40からの縮小面ターゲットブロックを、コントロール部165からの選択制御信号により選択して出力する。その出力を縮小面バッファ部1612に供給する。セレクタ1616は、コントロール部1615からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部1612からの縮小面ターゲットブロックを出力する。基底面でのブロックマッチング時には、基底面バッファ部1611からの基底面ターゲットブロックを出力する。出力した縮小面ターゲットブロックまたは基底面ターゲットブロックをマッチング処理部163に送る。<参照ブロックバッファの構成例>参照ブロックバッファ部162の構成例のブロック図を、図10に示す。この図10に示すように、参照ブロックバッファ部162は、基底面バッファ部1621と、縮小面バッファ部1622と、セレクタ1623とを備えている。セレクタ1623は、図10では、図示は省略したが、コントロール部165からの選択制御信号により選択制御される。基底面バッファ部1621は、画像メモリ40からの基底面参照ブロックを一時格納し、その基底面参照ブロックを、セレクタ1623に供給すると共に、画像重ね合わせ部17に、動き補償ブロックとして送る。縮小面バッファ部1622は、画像メモリ40からの縮小面参照ブロックを一時格納するためのものである。縮小面バッファ部1622は、縮小面参照ブロックを、セレクタ1623に供給する。セレクタ1623は、コントロール部1615からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部1612からの縮小面参照ブロックを出力する。基底面でのブロックマッチング時には、基底面バッファ部1611からの基底面参照ブロックを出力する。出力した縮小面参照ブロックまたは基底面参照ブロックを、マッチング処理部163に送る。<画像重ね合わせ部の構成例>画像重ね合わせ部17の構成例のブロック図を、図11に示す。この図11に示すように、画像重ね合わせ部17は、加算率計算部171と、加算部172と、基底面出力バッファ部173と、縮小面生成部174と、縮小面出力バッファ部175とを備えて構成されている。そして、画像重ね合わせ部17の出力画像データが、データ圧縮部35で圧縮された後、画像メモリ40に記憶される。加算率計算部171は、動き検出動き補償部16からのターゲットブロックおよび動き補償ブロックを受けて、両者の加算率を、採用する加算方式が単純加算方式であるか、または平均加算方式であるかに応じて定める。定めた加算率を、ターゲットブロックおよび動き補償ブロックと共に加算部172に供給する。加算部172での加算結果の基底面NR画像は、圧縮された後、画像メモリ40に書き込まれる。また、加算部172での加算結果の基底面NR画像は、縮小面生成部174にて縮小面NR画像に変換され、縮小面生成部174からの縮小面NR画像が、画像メモリ40に書き込まれる。[3.動き検出動き補償部の制御構成]次に、動き検出動き補償部16内での動き検出動作及び動き補償動作の制御処理例について説明する。図12及び図13は、動き検出動き補償部16のコントロール部165の構成を示したものである。図12は、本実施の形態の第1の構成であり、パイプライン化等による高速化が必要な動画NR処理のために専用のサブCPUをもち、その他の処理についてはCPUからすべてのスレーブにアクセスする構成である。図13は第1の構成を発展させた第2の構成であり、CPUにスレーブ間とのインターフェースがなく、ブロック単位の処理からパイプラインまで処理の粒度に応じてサブCPUが存在し、CPUの構成がシンプルになっている。リアルタイム制御と矩形制御について説明すると、コントロール部を構成させる考え方として、高速性を生かした制御が行える構成と、汎用性を有した制御が行える構成という2つの観点がある。ここでの汎用性とは、全てのブロックに対して命令を行うことができるもので、ハードウェアリソースを十分に使用することができる一方、CPUで複雑な処理を行う必要があり、CPUと各処理部とのインターフェースが複雑になる。汎用性が高ければ高いほど、CPUで制御できる内容は増え、インターフェースが複雑化する。高速性とは、汎用性の反対と考えることができる。制御できることを限定することで、ある程度決まった処理をまとめて行うことができ、CPUの処理負担は軽くなる。一方で、インターフェースが少ないため、出来る処理内容は限られてくる。本実施の形態のコントロール部165は、この汎用性と高速性のバランスを取るものである。このため、汎用性と高速性のバランスを取った構成を、コントロール部165として複数種類用意しておくものである。具体的には、動き検出をプログラマブルに制御して動き検出を実現する汎用的なプログラマブルCPU1651と、動き検出処理部に対して予め決められた制御を実装した高速性に特化したリアルタイムコントロール部1652とを備えるものである。図12のリアルタイム制御を行うための構成について説明する。コントロール部165は、第1の制御部であるプログラマブルCPU1651と、第2の制御部サブCPUであるリアルタイムコントロール部1652とを備える。そして、プログラマブルCPU1651からの指令で、リアルタイムコントロール部1652から、動き検出動き補償部16内の各画像処理部での処理動作を制御する。リアルタイムコントロール部1652は、ハードウェア実装された制御部であり、指示の入力で、予め決められた処理状態で各部を制御して、動き検出を実行させる。即ち、リアルタイムコントロール部1652は、動作モードと、画像のサイズ画素数を設定することができ、プログラマブルCPU1651からの指示があると、その設定された動作モードと画像サイズで、1フレーム分の処理を自動で行う。このとき、リアルタイムコントロール部1652の内部では、ターゲットブロックバッファ部161と参照ブロックバッファ部162とマッチング処理部163と動きベクトル算出部164とへ開始命令を出し、終了通知を待っている。プログラマブルCPU1651は、システムバス2を介して、プログラム用メモリに格納されたプログラムが読み出される。そのプログラマブルCPU1651に読み出されたプログラムに従った手順で制御処理が実行される。図12では、第1プログラム1aと、第2プログラム1bと、第3プログラム1cとが、選択的にプログラマブルCPU311に実装される構成としてある。どのプログラムが実装されるかは、例えば、撮像装置の動作モードにより、システムCPU1により制御される。リアルタイム制御時には、リアルタイム制御を行うプログラムが実装される。本実施の形態においては、このリアルタイム制御を、動画像の画像信号から動きベクトルを検出処理する際に実行する。即ち、撮像装置として、動画像の撮像を行う際の動きベクトル検出とその検出に基づいた処理を行うモードである場合に、プログラマブルCPU1651とリアルタイムコントロール部1652を使用した制御が行われる。一方、静止画像の画像信号から動きベクトルを検出処理する際には、後述する図13に示した汎用命令セット部1653,1654を使用した汎用制御が行われる。なお、プログラマブルCPU1651から、動き検出動き補償部16内の各画像処理部に対して直接、制御指示を送ることも可能である。実装されるプログラムによっては、プログラマブルCPU1651からの直接の指示で、動き検出動作及び動き補償動作を実行させることもできる。プログラマブルCPU1651からの直接の指示で、動き検出動作及び動き補償動作を実行させる場合を、ここでは汎用制御状態と称する。図13の構成について説明する。図13の構成では、図12に示したプログラマブルCPU1651とリアルタイムコントロール部312の他に、さらに、汎用命令セット部1653,1654を備える。汎用命令セット部1653は、プログラマブルCPU1651からの指示で、1ブロックの処理を行うための命令を生成させるように構成された制御部である。汎用命令セット部1654は、プログラマブルCPU1651からの指示で、画像データの矩形処理を行うための命令を生成させるように構成された制御部である。プログラマブルCPU1651から各処理部161~164へは、直接は命令を行わない構成であり、そのため、CPUの構成が非常に簡易になっている。各汎用命令セット部1653,1654は、ターゲットブロックバッファ部161と参照ブロックバッファ部162とマッチング処理部163と動きベクトル算出部164とに制御指示を送り、動き検出動作及び動き補償動作を実行させる。従って、矩形処理制御時には、プログラマブルCPU1651は、矩形処理部である汎用命令セット部1653,1654を介して各処理部にアクセスする。例えば、1フレームの画面を横方向に分割した矩形を指定し、命令すると、汎用命令セット部1653,1654は、このサイズの動きベクトルをブロック単位で検出する。この矩形処理時は、動きベクトルを検出するブロックサイズ、及び階層数を可変にすることが容易であり、動きベクトル検出処理を並列化できないが、プログラムの自由度が高い。一方で、リアルタイム処理時は、動きベクトルを検出するブロックサイズ、及び階層数が固定である代わりに、縮小面での動きベクトル検出と、基底面での動きベクトル検出を並列化でき、高速動作が可能である。図14は、リアルタイム動作制御状態の概要を、汎用制御状態と比較して示す図である。ここでの汎用制御状態とは、プログラマブルCPU1651が直接制御する状態である。図14Aは、リアルタイム動作制御状態を示したものであり、図14Bは、汎用動作制御状態を示したものである。リアルタイム動作制御状態の場合には、システムCPU1から動作を開始させる指示があると、プログラマブルCPU1651は、画像メモリ40に保持された画像データを参照フレームとして動き検出及び動き補償を開始させる指令を行う。ここでのリアルタイム動作制御では、1フレームの画像サイズとして、1440画素×1080画素に固定させてあり、また縮小面として、1/4縮小面で処理するようにしてある。指令を受けたリアルタイムコントロール部1652は、マッチング処理で必要な画像ブロックである64画素×32画素のブロックのデータごとに、参照ブロックバッファ部162に読み出す処理を、並列で実行させる。また、1/4縮小面のデータを読み出す処理も、リアルタイムコントロール部1652で実行させる。これに対して図14Bに示した汎用動作時には、すべてプログラマブルCPU1651から順に各処理部に指令を送って、必要なブロック数分の処理が実行される。従って、汎用動作時には、プログラマブルCPU1651の負担が大きいと共に、処理の並列化が困難である。図15は、リアルタイム動作制御状態図15Aの概要と、汎用制御を最適化した制御状態である、矩形処理状態図15Bの概要とを比較して示す図である。リアルタイム動作制御状態は図14と同じである。図15Bに示した矩形処理動作時には、プログラマブルCPU1651は、縮小面の処理を行うために1回指令を出力すると共に、基底面の処理を行うために1回指令を出力する。それぞれの指令を受けた矩形処理部である、汎用命令セット部1653,1654は、予め決められた手順で基底面と縮小面の処理をブロック数分行う。矩形処理時には、画像サイズ及び階層数を指示することができる。例えば、画像サイズによって動き検出を行う階層数が変わるような場合に、対処が容易である。例えば、3階層時には、縮小面での動き検出処理→中間面での動き判別処理→基底面での動き判別処理とすればよい。図16は、リアルタイム動作制御での制御部からの指令の出力状態と、汎用制御状態での制御部からの指令の出力状態を示した図である。図16の右側がリアルタイム動作制御での制御部からの指令の出力状態を示したものである。このときには、プログラマブルCPU1651は、リアルタイム動作を開始させる1命令をリアルタイムコントロール部1652に出力する。その指令を受けたリアルタイムコントロール部1652は、8命令を各部に出力する。8命令で行われる処理としては、以下の8つである。ターゲットブロックのターゲットブロックバッファ部への書き込みステップS211マッチング処理範囲の参照ブロックバッファ部への書き込みステップS212ターゲットブロックのマッチング処理部への転送ステップS213マッチング処理範囲のマッチング処理部への転送ステップS214マッチング処理SAD値の計算の開始ステップS215最小SAD値から動きベクトルの算出ステップS216ターゲットブロックの画像重ね合わせ部への転送ステップS217動き補償画の画像重ね合わせ部への転送ステップS218これら8つのステップの処理が、それぞれの命令で適切なタイミングに実行される。一方、図16の左側に示した汎用制御状態の場合には、プログラマブルCPU1651が、これら8つのステップの処理を行う8つの命令を順に出力することになる。図17は、リアルタイムコントロール部1652からの8命令で、それぞれの処理が行われる流れを示した図である。ステップS211のターゲットブロックのターゲットブロックバッファ部161への書き込みと、ステップS212のマッチング処理範囲の参照ブロックバッファ部162への書き込みとが並行して行われる。そして、ステップS213及びS214でのマッチング処理部163への各データの転送についても、並行して行われ、マッチング処理部163での計算の開始ステップS215が行われる。そして、SAD値の計算が完了することで、動きベクトル算出部164で、動きベクトルの算出ステップS216が行われる。その動きベクトルの算出が完了することで、ターゲットブロックの画像重ね合わせ部への転送ステップS217と、動き補償画の画像重ね合わせ部への転送ステップS218とが行われる。リアルタイムコントロール部1652からの命令で転送されるターゲットブロックと参照ブロックは、階層化して管理する必要がある。即ち、図18に示すように、1フレームの画像データのブロック化と、ターゲットブロック座標が計算された後、縮小面と基底面を設定して、階層化の管理を行う必要がある。そして、縮小面と基底面のデータから、動き検出又は動き補償が行われる。動き検出だけを行う場合には、上述したステップS211~S216の処理が行われる。動き補償画を得る場合には、上述したステップS211~S218の処理が行われる。その上で、各ブロックへの命令と、終了割り込みで、図17に示した流れで処理が実行される。<矩形処理の例>図19は、矩形処理による、階層化ブロックマッチングを説明するための図である。図19の例においては、基底面ターゲットフレーム201および基底面参照フレーム301を、1/a1/b1/a、1/bは、縮小倍率であって、a>1、b>1であるに縮小して、縮小面ターゲットフレーム211および縮小面参照フレーム311を生成する。また、基底面ターゲットフレーム201および基底面参照フレーム301を、1/bに縮小して、中間面ターゲットフレーム221および中間面参照フレーム321を生成しておく。縮小面や中間面の基底面に対する倍率は任意であるが、1/2~1/8倍画素数換算で1/4~1/64倍の範囲が適当である。なお、図19の例では、中間面に対する縮小面の縮小倍率は1/4すなわち、a=4、また、基底面に対する中間面の縮小倍率は1/4すなわち、b=4の場合として示している。縮小面や中間面の作成にあたっても、その方法は任意である。しかし、単に、原画像の画素を、縮小倍率に応じて間引くだけで縮小面や中間面を作成する方法では、折り返し成分が発生し、1階層目縮小面で検出される動きベクトルが、正しいものから外れやすくなる。このため、通常、縮小倍率に応じたカットオフ周波数帯域を持つローパスフィルタを原画に対して施したのち、縮小倍率に応じたサブサンプリングを行う。この例では、倍率に応じたサブサンプリングにより消失する画素を含んだ、輝度平均値を生成し、それを縮小面画素や中間面画素としている。つまり、1/a縮小なら、a×a画素の正方領域の輝度平均値を算出し、これを縮小面画素や中間面画素の輝度値とする。この手法の場合、まず中間面を生成しておいてから、中間面から縮小面を生成しても、原画から直接縮小面を生成する場合と同じ結果が得られるため、より効率的である。なお、縮小画像を得るに当たっては、水平方向の縮小率と垂直方向の縮小率は、上記のように同じであってよいし、また、異ならせても良い。以上のようにして、縮小面および中間面を作成したら、先ず、縮小面ターゲットフレーム211に縮小面ターゲットブロック212を設定すると共に、縮小面参照フレーム311に縮小面サーチ範囲313を設定する。そして、当該縮小面サーチ範囲313内の複数個の縮小面参照ブロック312について、縮小面の動きベクトル検出装置401で、上述したブロックマッチング処理を行い、最小SAD値を呈する縮小面参照ブロック位置を検出する。この縮小面参照ブロック位置の検出に基づき、縮小面動きベクトルMVsを検出する。この例では、動きベクトル検出装置401は、縮小面ターゲットブロック212の大きさ水平方向の画素数×垂直方向のライン数のブロックをブロックマッチング処理単位として処理を実行する。縮小面動きベクトルMVsの算出が終了したら、次に、縮小面ターゲットフレーム211をa倍したものに等しい中間面ターゲットフレーム221において、中間面ターゲットブロック222を設定する。図19の例では、中間面の動きベクトル検出装置402は、縮小面の動きベクトル検出装置401におけるブロックマッチング処理単位と同じ大きさのブロックを中間面ターゲットブロックとしてブロックマッチング処理を行うようにしている。ここで、同じ大きさのブロックとは、同じピクセル数であって、同じ水平方向の画素数×同じ垂直方向のライン数からなるものである。この例の場合、縮小面は中間面の1/aであるので、縮小面ターゲットブロック212に対応する中間面ターゲットフレームにおける領域には、中間面ターゲットブロック222が、a個含まれることなる。したがって、その中間面ターゲットブロック222のa個の全てが中間面の動きベクトル検出装置402におけるブロックマッチング処理対象として設定される。そして、縮小面参照フレーム311をa倍したものに等しい中間面参照フレーム321において、縮小面動きベクトルMVsを中心とした中間面サーチ範囲323を設定する。この中間面サーチ範囲323内の複数個の中間面参照ブロック322について、動きベクトル検出装置402でブロックマッチング処理を行い、最小SAD値を呈する中間面参照ブロック位置を検出することにより、中間面動きベクトルMVmを検出する。中間面の動きベクトル検出装置402では、a個の中間面ターゲットブロックのそれぞれについて、中間面サーチ範囲323内に設定したそれぞれの当該中間面ターゲットブロック用のサーチ範囲において、ブロックマッチング処理を実行する。これにより、それぞれの中間面ターゲットブロックについての動きベクトルの検出を行う。そして、それら複数個の動きベクトルのうち、最小のSAD値を呈する動きベクトルを、中間面における動きベクトル中間面動きベクトルMVmとして検出する。縮小面動きベクトルMVsの算出が終了したら、次に、中間面ターゲットフレーム221をb倍したものに等しい基底面ターゲットフレーム201において、基底面ターゲットブロック202を設定する。図19の例では、基底面の動きベクトル検出装置403も、動きベクトル検出装置401および402と同じ大きさのブロックを処理単位ブロックとしてブロックマッチング処理を行うようにしている。動きベクトル検出装置401および402と同じ大きさとは、[同じピクセル数=同じ水平方向の画素数×同じ垂直方向のライン数]である。そして、前述したように、中間面動きベクトルMVmは、処理単位ブロックの単位で得られる。従って、動きベクトル検出装置403で対象となる基底面ターゲットフレーム201における基底面ターゲットブロック202は、図19に斜線で示すように、縮小面ターゲットブロックと同じ大きさのブロックのb倍の個数からなるものとして設定される。一方、中間面参照フレーム321をb倍したものに等しい基底面参照フレーム301において、縮小面動きベクトルMVsと中間面動きベクトルMVmとの合成ベクトルを中心とした基底面サーチ範囲303を設定する。当該基底面サーチ範囲303内の複数個の基底面参照ブロック302について、動きベクトル検出装置403で、上述したブロックマッチング処理を行い、最小SAD値を呈する基底面参照ブロック位置を検出することにより、基底面動きベクトルMVbを検出する。縮小面動きベクトルMVsおよび中間面動きベクトルMVmは、同じ大きさの処理単位ブロックの単位で得られる。このため、縮小面動きベクトルMVsと中間面動きベクトルMVmとの合成ベクトルを中心とした設定された基底面サーチ範囲303は、b個の基底面ターゲットブロック202を含む領域よりも若干広い領域とされる。動きベクトル検出装置403では、b個の基底面ターゲットブロック202について、基底面サーチ範囲303内に設定したそれぞれの基底面ターゲットブロックについてのサーチ範囲において、ブロックマッチング処理を実行する。これにより、それぞれの基底面ターゲットブロックについての動きベクトルの検出を行う。そして、それら複数個の動きベクトルのうち、最小のSAD値を呈する動きベクトルを、基底面における動きベクトル基底面動きベクトルMVbとして検出する。そして、求められた縮小面動きベクトルMVsと、中間面動きベクトルVMmと、基底面動きベクトルVMbとの合成ベクトルとして、ローカル動きベクトルLMVが検出される。このローカル動きベクトルLMVは、基底面ターゲットフレーム201と基底面参照フレーム301との間における基底面ターゲットブロックについてのローカル動きベクトルである。以上のような階層化ブロックマッチング処理を、ターゲットブロックおよび参照ブロックを順次切り替えながら、ターゲットフレームおよび参照フレームの全領域において、順番に実行される。これにより、矩形処理で、ターゲットフレーム内に設定した複数個のターゲットブロック単位の複数個のローカル動きベクトルLMVの全てが算出される。図25は、本実施の形態の例で、矩形処理を実行する場合の、画像サイズに応じて、階層化ブロックマッチング処理を行う際の階層数と、縮小面の縮小倍率の設定の一例を示したものである。例えば、1フレームが320画素×240画素までの画像データの場合には、1階層つまり縮小面を使用しないでブロックマッチング処理を行う。1フレームが640画素×480画素の画像データの場合には、2階層でブロックマッチング処理を行い、縮小倍率として1/2を設定する。1フレームが1.2Mピクセルまでの画素数の画像データの場合には、2階層でブロックマッチング処理を行い、縮小倍率として1/4を設定する。1フレームが4.7Mピクセルまでの画素数の画像データの場合には、3階層でブロックマッチング処理を行い、縮小倍率として1/4と1/2を設定する。1フレームが19Mピクセルまでの画素数の画像データの場合には、3階層でブロックマッチング処理を行い、縮小倍率として1/4と1/4を設定する。1フレームが75Mピクセルまでの画素数の画像データの場合には、4階層でブロックマッチング処理を行い、縮小倍率として1/4と1/4と1/2を設定する。さらに大きなサイズの画像データの場合には、4階層でブロックマッチング処理を行い、縮小倍率として1/4と1/4と1/4を設定する。この図25に示したような画像サイズに基づいた設定の変更が、矩形処理の場合には容易に行え、撮影する画像サイズに適した好適な動き検出及び動き補償が行える。なお、図25に示した例は、一例であり、これらの例に限定されるものではない。<リアルタイム処理の例>図20は、リアルタイム処理が行われる状態を、時系列に示した図である。図20において横軸は時間の経過である。この図20に示したリアルタイム処理は、動画像の画像信号が1フレームずつ次々に供給される、動画像の画像信号の処理例である。この例では、図20に示すように、ターゲットブロックバッファ部161の基底面バッファ部におけるターゲットブロックを保持する4バンクのバッファBKTO-A~BKTO-Dのうちの少なくとも3バンクを使用する。また、縮小面マッチング処理、基底面マッチング処理、動き補償ブロック転送、の3つの処理を時間方向に分割し、3個のマッチング処理時間3ターゲットブロック分のマッチング処理時間にわたってパイプライン化を行っている。この図20に示す処理手法では、基底面バッファ部が備える4個のバンクバッファBKTO-A~BKTO-Dのうちの、3個のバンクバッファBKTO-A~BKTO-Cを用いるものとして説明する。この例においては、動画NR処理におけるブロックマッチング処理のパイプライン化においては、3個のマッチング処理時間MA,MB,MCを設定する。これら3個のマッチング処理時間MA,MB,MCのそれぞれは、1ターゲットブロックについて全てのマッチング処理内容を含み、3個のマッチング処理時間MA,MB,MCは、3ターゲットブロック分のマッチング処理時間である。即ち、これらマッチング処理時間MA,MB,MCのそれぞれ内における処理内容には、以下の処理の全てを含む。すなわち、画像メモリ40からの縮小面ターゲットブロックおよび基底面ターゲットブロックの読み込み処理が行われる。また、画像メモリ40からの縮小面マッチング処理範囲および基底面マッチング処理範囲の読み込みが行われる。また、縮小面マッチング処理、基底面マッチング処理、基底面ターゲットブロックおよび動き補償ブロックの画像重ね合わせ部17への転送出力処理の各処理も行われる。信号処理内容としては、3個のマッチング処理時間MA,MB,MCは全く同じものを備えている。この例では、3個のマッチング処理時間MA,MB,MCのそれぞれ内における各処理による転送出力処理が、何番目のターゲットブロックについてのものであるかを、次のように制御する。即ち、この例においては、1つのターゲットブロックについての縮小面マッチング処理、基底面マッチング処理、動き補償ブロック転送処理、の3つの処理を、この3個のマッチング処理時間MA,MB,MCに分散させて、順次に実行するようにする。そして、この3個のマッチング処理時間MA,MB,MCを、ひとつの単位として繰り返し実行するようにする。例えば、ある一つのターゲットブロックTGBについての縮小面マッチング処理は、マッチング処理時間MAで行い、そのターゲットブロックTGBについての基底面マッチング処理は、次のマッチング処理時間MBで行う。そして、そのターゲットブロックTGBについての動き補償ブロックの出力転送は、さらにその次のマッチング処理時間MCで行う。そして、あるターゲットブロックについての縮小面マッチング処理を行っている間に、並行してひとつ前のターゲットブロックの基底面マッチング処理範囲の読み出しを行なう。また、あるターゲットブロックについての縮小面マッチング処理範囲の画像メモリ40からの読み出しを行っている間に、ひとつ前のマッチング処理時間における基底面マッチング処理で求められた最終的な動きベクトルに基づいて生成された、2つ前のターゲットブロックについて動き補償ブロックの出力転送処理を行う。これにより、階層化ブロックマッチング処理のパイプライン処理化を実現している。図20に斜線及び網掛けで示し矢印で接続して示した処理が、1フレームの画像データについての処理である。即ち、3つのマッチング処理時間を利用して、2つ前の処理時間MAで書き込んだターゲットブロックについての動き補償ブロックと、基底面ターゲットブロックとが、重ね合わせ部に転送される。但し、図20の例は、動きベクトルの算出としては、縮小面でのマッチング処理結果から動きベクトルを算出して、基底面でのマッチング処理で使用するケースと、基底面でのマッチング処理結果から動きベクトルを算出して、動き補償ブロックを使用するケースの2つの流れが示されている。[3.撮像画像のノイズ低減処理の流れ]<静止画撮影時>上述の構成の実施の形態の撮像装置において、静止画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図21および図22に示す。この図21および図22のフローチャートの各ステップは、CPU1およびこのCPU1により制御される動き検出動き補償部16のコントロール部165の制御の下に実行されると共に、画像重ね合わせ部17により実行されるものである。まず、シャッターボタンが押下されると、この例の撮像装置においては、CPU1による制御によって、高速で複数枚の画像の高速撮影が行われる。この例では、静止画撮影時に重ね合わすべきM枚Mフレーム;Mは2以上の整数の撮像画像データを高速で取り込み、画像メモリ40に貼っておくステップS1。次に、参照フレームは、画像メモリ40に蓄積されているM枚の画像フレームのうちの時間的にN番目Nは2以上の整数で、最大値はMとするのであるが、コントロール部165は、その何番目とする値Nの初期値を、N=2とするステップS2。そして、次に、コントロール部165は、1枚目の画像フレームをターゲット画像ターゲットフレームに設定し、N=2枚目の画像を参照画像に設定するステップS3。次に、コントロール部165は、ターゲットフレームにターゲットブロックを設定しステップS4、動き検出動き補償部16において、画像メモリ部4から、ターゲットブロックバッファ部161へターゲットブロックを読み込みステップS5、また、画像メモリ40から、参照ブロックバッファ部162へマッチング処理範囲の画素データを読み込むステップS6。次に、コントロール部165は、参照ブロックバッファ部162から、サーチ範囲内において参照ブロックを読み出し、マッチング処理部163で、階層化マッチング処理を行う。以上の処理をサーチ範囲内のすべての参照ベクトルで繰り返した後、高精度の基底面動きベクトルを出力するステップS7。次に、コントロール部165は、以上のようにして検出された高精度の基底面動きベクトルにしたがって、参照ブロックバッファ部162から、検出した動きベクトル分の動きを補償した動き補償ブロックを読み出すステップS8。そして、ターゲットブロックと同期して、後段の画像重ね合わせ部17へ送るステップS9。次に、CPU1の制御に従って、画像重ね合わせ部17は、ターゲットブロックと動き補償ブロックの重ね合わせを行い、重ね合わせたブロックのNR画像データを画像メモリ部4に貼る。すなわち、画像重ね合わせ部17は、重ね合わせたブロックのNR画像データを画像メモリ40に出力させて書き込ませるステップS10。次に、コントロール部165は、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したか否か判別するステップS11。この判別で、すべてのターゲットブロックについてブロックマッチングの処理が終了していないと判別したときには、ステップS4に戻って、ターゲットフレーム内の次のターゲットブロックを設定して、ステップS4~ステップS11までの処理を繰り返す。また、コントロール部165は、ステップS11で、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したと判別したときには、ステップS12に移る。ステップS12では、重ね合わすべきすべての参照フレームについての処理が終了したか否か、つまり、M=Nであるか否か判別する。ステップS12で、M=Nではないと判別したときには、N=N1とするステップS13。次に、ステップS10での重ね合わせにより生成されたNR画像をターゲット画像ターゲットフレームとし、また、N=N1枚目の画像を参照画像参照フレームとするステップS14。その後、ステップS4に戻って、このステップS4以降の処理を繰り返す。つまり、Mが3以上の場合は、全てのターゲットブロックにおいて重ね合わせを行った画像を次のターゲット画像とし、3枚目以降の画像を参照フレームとして、上記の処理を繰り返して行く。これをM枚目の重ね合わせが終わるまで繰り返す。そして、ステップS12で、M=Nであると判別したときには、この処理ルーチンを終了する。[5.階層化ブロックマッチング処理の流れの例]次に、図19および図20に、動き検出動き補償部16での階層化ブロックマッチング処理の動作例のフローチャートを示す。なお、この図23および図24に示す処理の流れは、前述したマッチング処理部163、動き算出部164の処理例の流れとしての説明と、一部重複するものとなるが、この例の動作を、より理解し易くするために、説明するものである。はじめに、動き検出動き補償部16において、ターゲットブロックバッファ部161から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む図23のステップS71。次に、動きベクトル算出部164内で保持する、最小SAD値Sminの初期値として、縮小面最小SAD値の初期値を設定するステップS72。この縮小面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。次に、マッチング処理部163では、縮小面サーチ範囲を設定する。設定した縮小サーチ範囲において、縮小面参照ベクトルVx/n,Vy/n:1/nは縮小倍率を設定して、SAD値を計算する縮小面参照ブロック位置を設定するステップS73。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部162から読み込みステップS74、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面SAD値を求める。求めた縮小面SAD値を動きベクトル算出部164に送出するステップS75。動きベクトル算出部164では、マッチング処理部163で算出された縮小面SAD値Sinと、保持されている縮小面最小SAD値Sminとを比較する。そして、算出された縮小面SAD値Sinが、それまで保持されている縮小面最小SAD値Sminよりも小さいか否か判別するステップS76。このステップS76で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さいと判別したときには、ステップS77に進み、に保持される縮小面最小SAD値Sminおよびその位置情報の更新がなされる。すなわち、SAD値比較処理では、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより小さい旨の比較結果の情報を出力する。すると、当該算出された縮小面SAD値Sinおよびその位置情報縮小面参照ベクトルを、新たな縮小面最小SAD値Sminの情報として、更新させる。ステップS77の後には、ステップS78に進む。また、ステップS76で、算出された縮小面SAD値Sinが縮小面最小SAD値Sminより大きいと判別したときには、ステップS77の保持情報の更新処理は行わずにステップS78に進む。ステップS78では、マッチング処理部163は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置縮小面参照ベクトルでマッチング処理を終了したか否か判別する。その判別で、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップS73に戻り、前述したステップS73以降の処理を繰り返す。また、マッチング処理部163は、ステップS78で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置縮小面参照ベクトルでマッチング処理を終了したと判別したときには、次の処理が行われる。すなわち、縮小面最小SAD値Sminの位置情報縮小面動きベクトルを受け取る。そして、受け取った縮小面動きベクトルを、縮小倍率の逆数倍、すなわち、n倍したベクトルが、基底面ターゲットフレームにおいて指し示す位置座標を中心とした位置に基底面ターゲットブロックを設定する。さらに、n倍したベクトルが指し示す位置座標を中心とした比較的狭い範囲として、基底面サーチ範囲を、基底面ターゲットフレームに設定するステップS79。そして、ターゲットブロックバッファ部161から、基底面ターゲットブロックの画素データを読み込むステップS80。そして、次に、動きベクトル算出部164に保持された最小SAD値Sminの初期値として、基底面最小SAD値の初期値を設定する図20のステップS81。この基底面最小SAD値Sminの初期値としては、例えば、画素の差分の最大値が設定される。次に、マッチング処理部163では、ステップS79で設定した基底面縮小サーチ範囲において、基底面参照ベクトルVx,Vyを設定して、SAD値を計算する基底面参照ブロック位置を設定するステップS82。そして、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部162から読み込むステップS83。そして、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、基底面SAD値を求め、求めた基底面SAD値を動きベクトル算出部164に送出するステップS84。動きベクトル算出部164では、マッチング処理部163で算出された基底面SAD値Sinと、保持されている基底面最小SAD値Sminとを比較する。その比較で、算出された基底面SAD値Sinが、それまで保持されている基底面最小SAD値Sminよりも小さいか否か判別するステップS85。このステップS85で、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さいと判別したときには、ステップS86に進み、保持される基底面最小SAD値Sminおよびその位置情報の更新がなされる。すなわち、算出された基底面SAD値Sinが基底面最小SAD値Sminより小さい旨の比較結果の情報を出力する。すると、当該算出された基底面SAD値Sinおよびその位置情報参照ベクトルを、新たな基底面最小SAD値Sminの情報とし、新たな基底面SAD値Sinおよびその位置情報に更新する。ステップS86の後には、ステップS87に進む。また、ステップS85で、算出された基底面SAD値Sinが基底面最小SAD値Sminより大きいと判別したときには、ステップS86の保持情報の更新処理は行わずにステップS87に進む。ステップS87では、マッチング処理部163は、基底面サーチ範囲の全ての基底面参照ブロックの位置基底面参照ベクトルでマッチング処理を終了したか否か判別する。その判別で、未だ、基底面サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップS82に戻り、前述したステップS82以降の処理を繰り返す。また、マッチング処理部163は、ステップS87で、基底面サーチ範囲の全ての基底面参照ブロックの位置基底面参照ベクトルでマッチング処理を終了したと判別したときには、次の処理が行われる。すなわち、基底面最小SAD値Sminの位置情報基底面動きベクトルを受け取り、基底面SAD値を保持させるようにするステップS88。以上で、1枚の参照フレームについてのこの例のブロックマッチング処理を終了する。なお、上述の実施の形態は、この発明による画像処理装置を撮像装置に適用した場合であるが、この発明は、撮像装置に限られるわけではなく、種々の画像処理装置に適用可能である。また、上述の実施の形態は、ブロックマッチング手法を用いて、画像の重ね合わせによるノイズ低減処理をする場合に、この発明を適用した場合であるが、これに限られるものではない。即ち。画像メモリに書き込まれた画像データを読み出して、動き検出などを行う画像処理装置の全てに適用可能である。"