(57)【要約】【課題】動きベクトルの検出精度を効果的に向上させる。【解決手段】複数フレーム間の画像信号の動きベクトルを算出する第１の画像処理部１６を備える。その第１の画像処理部１６で、画像信号を構成する輝度信号と色差信号のそれぞれに対して、複数フレーム間の相関値を計算させることにより動きベクトル検出を実行させるようにした。このようにしたことで、輝度信号成分で相関値が計算されると共に、色差信号成分でも相関値が計算され、それぞれの相関値を使用した精度の高い動きベクトル検出が可能になる。【選択図】図１
2012142866.tif 000002
【特許請求の範囲】
【請求項１】
複数フレーム間の画像信号の動きベクトルを算出する第１の画像処理部と、
前記第１の画像処理部で、前記画像信号を構成する輝度信号と色差信号のそれぞれに対して、複数フレーム間の相関値を計算させることにより前記動きベクトル検出を実行させる制御部とを備えた
画像処理装置。
【請求項２】
前記制御部の制御による前記第１の画像処理部での動きベクトル検出は、色差信号の解像度を拡張することなく、輝度信号とその輝度信号より解像度が低い色差信号の双方を考慮した動きベクトル検出である
請求項１記載の画像処理装置。
【請求項３】
前記輝度信号より解像度が低い前記色差信号は、第１色差信号と第２色差信号とで構成され、
前記第１色差信号と前記第２色差信号とを、時間的にずらした画素位置として、相関値の計算を実行させる
請求項２記載の画像処理装置。
【請求項４】
前記第１色差信号による相関値の計算と、前記第２色差信号による相関値の計算とを、同一の計算部で実行する
請求項３記載の画像処理装置。
【請求項５】
前記第１の画像処理部で動きベクトルを算出する画像信号は、撮像部で撮像して得た画像信号であり、前記撮像部で撮像を行うモードに応じて、輝度信号の相関値と色差信号の相関値とを重みづけ加算した相関値に基づいて、動きベクトルを検出する
請求項２記載の画像処理装置。
【請求項６】
前記動きベクトル検出を、１フレームを分割したブロック単位で行い、そのブロック単位で検出された動きベクトルに基づいて、動き補償された画像信号を生成する第２の画像処理部と、
前記動きベクトルを検出する際に基準となるフレームの画像信号に対して、前記動き補償された画像信号を重ね合わせる処理を行う第３の画像処理部とを備えた
請求項２記載の画像処理装置。
【請求項７】
複数フレーム間の画像信号の動きベクトルを算出する第１の画像処理と、
前記第１の画像処理を行う際に、前記画像信号を構成する輝度信号と色差信号のそれぞれに対して、複数フレーム間の相関値を計算させることにより前記動きベクトル検出を実行させる制御処理とを行う
画像処理方法。
【請求項８】
前記第１の画像処理での動きベクトル検出は、色差信号の解像度を拡張することなく、輝度信号とその輝度信号より解像度が低い色差信号の双方を考慮した動きベクトル検出である
請求項７記載の画像処理方法。
【請求項９】
前記輝度信号より解像度が低い前記色差信号は、第１色差信号と第２色差信号とで構成され、
前記第１色差信号と前記第２色差信号とを、時間的にずらした画素位置として、相関値の計算を実行させる
請求項８記載の画像処理方法。
【請求項１０】
前記第１色差信号による相関値の計算と、前記第２色差信号による相関値の計算とを、同一の計算処理部を使用して実行させる
請求項８記載の画像処理方法。
【請求項１１】
前記第１の画像処理で動きベクトルを算出する画像信号は、撮像して得た画像信号であり、撮像を行うモードに応じて、輝度信号の相関値と色差信号の相関値とを重みづけ加算した相関値に基づいて、動きベクトルを検出する
請求項８記載の画像処理方法。
【請求項１２】
前記動きベクトル検出を、１フレームを分割したブロック単位で行い、そのブロック単位で検出された動きベクトルに基づいて、動き補償された画像信号を生成する第２の画像処理と、
前記動きベクトルを検出する際に基準となるフレームの画像信号に対して、前記動き補償された画像信号を重ね合わせる処理を行う第３の画像処理とを行う
請求項８記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数フレームの画像信号の相関を検出して、その複数フレーム間の動きベクトルを検出する画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
２つの画面間の動きベクトルを、画像情報自身から求めるブロックマッチング手法は、歴史の古い技術である。テレビジョンカメラのパン・チルト検出や被写体追尾、ＭＰＥＧ（Ｍｏｖｉｎｇ Ｐｉｃｔｕｒｅ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ）方式の動画符号化などを中心に開発が進んだ。また、９０年代に入ってからは、画像の重ね合わせによる、センサレス手ブレ補正や低照度撮影時のノイズ除去（Ｎｏｉｓｅ Ｒｅｄｕｃｔｉｏｎ：以降、ＮＲと表記する）など多岐に渡って応用が進められている。
【０００３】
ブロックマッチングは、注目画面である参照画面と、当該参照画面の動きの元となる元画面（ターゲット画面と称する）との間の２画面間の動きベクトルを算出する方法である。この２画面間の動きベクトルの算出時に、所定の大きさの矩形領域のブロックについて、参照画面と元画面との間での相関を算出することにより算出する。元画面が時間的に参照画面よりも前の画面とされる場合（例えば、ＭＰＥＧにおける動き検出の場合）と、参照画面が時間的に元画面よりも前の画面とされる場合（例えば、後述する画像フレームの重ね合わせによるノイズ低減の場合）の両方がある。
【０００４】
なお、この明細書で、画面とは、１フレームまたは１フィールドの画像データからなり、１枚分としてディスプレイに表示される画像を意味しているものとしている。但し、この明細書における以下の説明の便宜上、画面は１フレームからなるものとして、画面をフレームと称する場合もある。例えば、参照画面は参照フレーム、元画面は元フレームと称する場合もある。
【０００５】
ブロックマッチング手法は、ターゲットフレームを、複数個のターゲットブロックに分割し、各ターゲットブロックに対して、参照フレームに検索範囲を設定する。そして、画像メモリから、ターゲットフレームのターゲットブロックと参照フレームの検索範囲内の参照ブロックを読み出し、各画素の差分値絶対和を計算する。以下の説明では、差分値絶対和をＳＡＤ値と称する。ＳＡＤ値を計算すると、検索範囲の広さ分のＳＡＤ値テーブルを形成する。そして、そのＳＡＤ値テーブル内のＳＡＤ値の最小値の座標値をターゲットブロックについての動きベクトルとしている。
【０００６】
ブロックマッチングを行う際に画像データを記憶する画像メモリと、動きベクトル検出部などとは、システムバスを通じて接続され、メモリコントローラにより、画像メモリに対する書き込みおよび読み出しが制御される。
【０００７】
ところで、画像信号から動きベクトルを検出する際には、画像信号を構成する輝度信号と色差信号のうちの輝度信号だけを使用して、ターゲットフレームと参照フレームとの相関であるＳＡＤ値を計算して、動きベクトルを検出するようにしてある。輝度信号は、例えば被写体の輪郭部などで比較的大きな輝度変化が生じることが多く、そのような輝度変化がある箇所が比較的多い画像の場合には、精度の高い相関値検出が行える。
特許文献１には、この動きベクトルを検出する処理例についての記載がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−４１９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
從來の動きベクトル検出を行う際には、入力された画像信号のうち、輝度成分だけで動きベクトル検出を行っている。ここで、符号化しようとする画像にほとんど動きがない場合は、輝度成分によるベクトル探索結果にもとづく予測に対して、色差成分が大きくずれることはない。しかし、符号化しようとする画像に動きがある場合には、原画像の色差成分と、輝度成分から得られた動きベクトルによって対応する参照画像の色差成分とにミスマッチングが生じる可能性がある。
【００１０】
色差成分のミスマッチングが生じると、動き補償時に、予測画像と原画像との差分を計算した際、予測誤差が大きくなり、この結果、符号化データの情報量が増えるか、または一定データ量に伝送量を抑える場合には、画質劣化が生じてしまうといった問題があった。
【００１１】
特許文献１には、動きベクトル検出時に、色差成分を使用することが記載されているが、色差成分は、輝度成分から検出された動きベクトルの真偽判定に使用しているだけであり、色差成分そのものを、ピクセル単位で動きベクトル検出していない。このため、それなりには動きベクトルの検出精度向上が図れるが、条件が良くない画像信号の場合には、必ずしも動きベクトルの検出精度が向上しているとは言えない。特に、動きベクトルを使用する用途によっても、十分では言えない。例えば、動きベクトルの検出に基づいて、複数フレームの画像を重ねあわせて、ノイズ除去などを行うような用途の場合には、色差成分を使った真偽判定だけでは、精度が不十分であった。
【００１２】
例えば、圧縮符号化を行うビデオコーデック用の動きベクトル検出であれば、動きベクトル検出結果に謝りがあっても、圧縮符号化された画像信号のデータ量が増えるだけであり、それほど問題にはならない。これに対して、加算画像を生成させるような場合には、動きベクトルの検出に誤りがあると、重ね合わせる位置が、検出された動きベクトルから設定されるため、処理後の画像の画質が劣化したものになってしまう。
【００１３】
特に、画像データ自体が暗いとき、たとえば低照度のシーンではこの問題は大きく発生する。低照度シーンでは、輝度信号Ｙの値は小さい。一方で、色差信号Ｃｂ／Ｃｒの値には差があり、人間が識別できる程度だとすると、輝度信号Ｙのダイナミックレンジが低いために、間違ったベクトルを算出する可能性は飛躍的に増加するためである。
【００１４】
本発明は、以上の点に鑑み、動きベクトルの検出精度を効果的に向上させることを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、複数フレーム間の画像信号の動きベクトルを算出する第１の画像処理部を備える。そして、その第１の画像処理部で、画像信号を構成する輝度信号と色差信号のそれぞれに対して、複数フレーム間の相関値を計算させることにより動きベクトル検出を実行させるようにしたものである。
【００１６】
本発明によると、輝度信号成分で相関値が計算されると共に、色差信号成分でも相関値が計算され、それぞれの相関値を使用した精度の高い動きベクトル検出が可能になる。
【発明の効果】
【００１７】
本発明によると、輝度信号成分と色差信号成分の双方を使用した精度の高い動きベクトルが検出できるようになり、画像信号が持つ情報を生かした良好な高い動きベクトル検出が可能になる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態による画像処理装置としての撮像装置の構成例を示すブロック図である。
【図２】本発明の一実施の形態の撮像装置における撮像画像のノイズ低減処理例を示す説明図である。
【図３】本発明の一実施の形態の撮像装置における撮像画像のノイズ低減処理例を示す説明図である。
【図４】基底面と縮小面の例を示す説明図である。
【図５】基底面と縮小面の例を示す説明図である。
【図６】基底面と縮小面での処理例を示す説明図である。
【図７】本発明の一実施の形態の撮像装置における動き検出・動き補償部における動作例を示す説明図である。
【図８】本発明の一実施の形態の撮像装置における動き検出・動き補償部の構成例を示すブロック図である。
【図９】本発明の一実施の形態の動き検出・動き補償部の一部の詳細構成例のブロック図である。
【図１０】本発明の一実施の形態の動き検出・動き補償部の一部の詳細構成例のブロック図である。
【図１１】本発明の一実施の形態の動き検出・動き補償部の一部の詳細構成例のブロック図である。
【図１２】本発明の一実施の形態による画素データ選択処理例を示す説明図である。
【図１３】本発明の一実施の形態の撮像装置における画像重ね合わせ部の構成例を示すブロック図である。
【図１４】縮小面と基底面のサイズ及びマッチング処理範囲の例を示す説明図である。
【図１５】マッチング処理例を示す説明図である。
【図１６】本発明の一実施の形態の画像処理例を説明するためのフローチャートである。
【図１７】本発明の一実施の形態の画像処理例を説明するためのフローチャートである。
【図１８】本発明の一実施の形態の画像処理例を説明するためのフローチャートである。
【図１９】本発明の一実施の形態の階層化マッチング処理例を説明するためのフローチャートである。
【図２０】本発明の一実施の形態の階層化マッチング処理例を説明するためのフローチャートである。
【図２１】本発明の一実施の形態の一方向サーチの縮小面ブロックマッチング処理例を示すフローチャートである。
【図２２】本発明の一実施の形態のジグザグサーチの縮小面ブロックマッチング処理例を示すフローチャートである。
【図２３】輝度信号と色差信号の配置フォーマットの例を示す説明図である。
【図２４】１画素ごとの輝度信号と色差信号の配置状態の例を示す説明図である。
【図２５】図２４の状態から色差信号Ｃｒを１画素ずらした状態の例を示す説明図である。
【図２６】ラインサーチ時のコピー処理例を示す説明図である。
【図２７】ジグザグサーチ時のコピー処理例を示す説明図である。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施の形態の例を、以下の順序で説明する。
１．撮像装置の構成（図１〜図３）
２．動き検出・動き補償部の説明（図４〜図１５）
３．撮像画像のノイズ低減処理の概要の流れ（図１６〜図１８）
４．階層化ブロックマッチング処理の流れの例（図１９〜図２２）
５．輝度信号と色差信号との関係の説明（図２３〜図２６）
【００２０】
［１．撮像装置の構成］
この発明による画像処理装置の実施の形態として、撮像装置の場合を例にとって、図を参照しながら説明する。
ここでの撮像装置は、ブロックマッチングにより２画面間の動きベクトルを検出し、検出した動きベクトルを用いて動き補償画像を生成し、生成した動き補償画像とノイズ低減対象の画像を重ね合わせてノイズ低減を行う画像処理を行う画像処理部を備える。まず、この画像処理の概要について説明する。
【００２１】
ここでは、連続して撮影された複数枚の画像を、動き検出および動き補償を用いて位置合わせをした後、重ね合わせ（加算）することで、ノイズが低減された画像を得ることができるようにしている。すなわち、複数枚の画像のそれぞれにおけるノイズはランダムなものであるので、同一内容の画像を重ね合わせることで、画像に対してノイズが低減されるものである。
【００２２】
以下の説明において、動き検出および動き補償を用いて複数枚の画像を重ね合わせて、ノイズを低減することをＮＲ（Ｎｏｉｓｅ Ｒｅｄｕｃｔｉｏｎ）と呼び、ＮＲによりノイズ低減された画像をＮＲ画像と称することとする。
【００２３】
また、この明細書では、ノイズ低減を施したい画面（画像）をターゲット画面（ターゲットフレーム）、重ね合わせたい画面を参照画面（参照フレーム）と定義する。連続して撮影された画像は、撮影者の手ブレなどにより、画像の位置がずれており、両画像の重ね合わせを行うには、位置合わせが重要となる。ここで、考慮しなければならないのは、手ブレのような画面全体のブレと共に、画面内における被写体の動きも存在することである。
【００２４】
この例の撮像装置において、静止画撮影時は、図２に示すように、高速で複数枚の画像の撮影を行い、１枚目の撮影画像をターゲットフレーム１００とする。そして、２枚目以降、所定枚数の撮影画像を参照フレーム１０１とし、ターゲットフレーム１００と参照フレーム１０１との重ね合わせを行い、その重ね合わせたものを静止画撮影画像として記録するようにする。すなわち、撮影者が撮像装置のシャッターボタンを押下操作すると、高速で前記所定枚数の画像が撮影され、その１枚目に撮影した画像（フレーム）に対して、時間的に後で撮影された複数枚の画像（フレーム）が、重ね合わされることになる。
【００２５】
また、動画撮影時は、図３のように、撮像素子から出力されている現フレームの画像をターゲットフレーム１００の画像とし、その前フレームの過去の画像を参照フレーム１０１の画像とする。したがって、現フレームの画像のノイズ低減を行うために、現フレームの前フレームの画像を現フレームに重ね合わせるということになる。
【００２６】
このような動き検出及び動き補償を行う撮像装置の構成について、図１を参照して説明する。
図１に示す撮像装置は、システムバス２にＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）１が接続されると共に、システムバス２に、撮像信号処理系や、ユーザ操作入力部３、大容量メモリ４０、記録再生装置部５などが接続されて構成されている。なお、ＣＰＵ１は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）やワークエリア用ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）などを含むものとしている。本明細書で説明するＣＰＵ１以外のＣＰＵについても同様である。
大容量メモリ４０は、ＤＲＡＭなどの比較的大容量のメモリとそのコントローラとで構成され、１フレーム又は複数フレームの画像データを記憶する容量の画像メモリである。メモリのコントローラは、メモリ４０の外部に設けて、システムバス２などを介して書き込み及び読み出しが制御される構成でもよい。なお、以下の説明では、大容量メモリ４０は画像メモリ４０と称する。
【００２７】
ユーザ操作入力部３を通じた撮像記録開始操作を受けて、図１の撮像装置の撮像信号処理系は、後述するような撮像画像データの記録処理を行なう。また、ユーザ操作入力部３を通じた撮像記録画像の再生開始操作を受けて、図１の撮像装置の撮像信号処理系は、記録再生装置部５の記録媒体に記録された撮像画像データの再生処理を行なう。
【００２８】
図１に示すように、撮像信号処理系として、撮像レンズ１０Ｌを備えるカメラ光学系（図示は省略）を通じた被写体からの入射光は、撮像素子１１に照射されて撮像される。この例では、撮像素子１１は、ＣＣＤ（Ｃｈａｒｇｅ Ｃｏｕｐｌｅｄ Ｄｅｖｉｃｅ）イメージャで構成されている。なお、撮像素子１１は、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ Ｍｅｔａｌ Ｏｘｉｄｅ Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージャなどの他のイメージャで構成してもよい。
【００２９】
この例の撮像装置においては、撮像記録開始操作がなされると、レンズ１０Ｌを通じて入力された映像が、撮像素子１１により撮像画像信号に変換される。この撮像画像信号は、タイミング信号発生部１２からのタイミング信号に同期した信号として、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の３原色から構成されるベイヤー配列のＲＡＷ信号（生の信号）であるアナログ撮像信号として出力される。出力されたアナログ撮像信号は、前処理部１３に供給され、欠陥補正やγ補正等の前処理が施され、データ変換部１４に供給される。
【００３０】
データ変換部１４は、これに入力されたＲＡＷ信号であるアナログ撮像信号を、輝度信号成分Ｙと、色差信号成分Ｃｂ／Ｃｒとにより構成されるデジタル画像データ（ＹＣデータ）に変換し、そのデジタル画像データを、ターゲット画像として、動き検出・動き補償部１６に供給する。動き検出・動き補償部１６内では、バッファメモリ１６ａのターゲット画像用の領域に記憶させる。
【００３１】
また、動き検出・動き補償部１６では、既に画像メモリ４０に書き込まれた以前のフレームの画像信号を、参照画像として取得する。その取得した参照画像の画像データは、動き検出・動き補償部１６のバッファメモリ１６ａの参照画像用の領域に記憶させる。バッファメモリ１６ａの具体的な構成例については後述する。
【００３２】
動き検出・動き補償部１６では、ターゲットフレームの画像データと参照フレームの画像データを使用して、後述するブロックマッチング処理がなされて、ターゲットブロック単位での動きベクトルが検出される。動きベクトルを検出する際には、縮小面のサーチと、基底面のサーチとが行われる。動きベクトルを検出する際には、その動きベクトルの検出精度を示すヒット率βが算出されて出力される。
【００３３】
そして、動き検出・動き補償部１６内で、検出された動きベクトルに基づいて、ブロック単位で動き補償が行われた動き補償画像が生成される。生成された動き補償画像と、元のターゲット画像のデータは、画像重ね合わせ部１７を構成する加算率計算部１７１及び加算部１７２に供給する。
加算率計算部１７１では、ヒット率βに基づいて、ターゲット画像と動き補償画像との加算率αが算出され、算出された加算率αを加算部１７２に供給する。
【００３４】
加算部１７２では、加算率αで、ターゲット画像のデータと、動き補償画像のデータとの加算処理を行って、画像重ね合わせ処理を行い、ノイズ低減された加算画像を得る。なお、以下の説明では、ノイズ低減された加算画像をＮＲ画像と称する。
加算部１７２が出力する重ね合わせ結果としての、ノイズ低減された加算画像の画像データは画像メモリ４０に記憶させる。
【００３５】
画像メモリ４０は、ＮＲ画像のデータを、１フレーム分、画像メモリ４０内の１Ｖ前フレーム記憶部４１に記憶させ保持させる。画像メモリ４０は、１Ｖ前フレーム記憶部４１の他に、２Ｖ前フレーム記憶部４２を備え、１フレーム周期ごとに、１Ｖ前フレーム記憶部４１から２Ｖ前フレーム記憶部４２に記憶データが移される。この１Ｖ前フレーム記憶部４１から２Ｖ前フレーム記憶部４２への記憶データの移動に連動して、２Ｖ前フレーム記憶部４２に記憶されていたデータが、解像度変換部３７に読み出される。
なお、図１の構成では２フレームの画像データを記憶させる構成としたが、動き検出・補償部１６などでより多くの過去の画像データが必要な場合には、より多くのフレーム数の過去の画像データを記憶させて、参照フレームとして使用する構成としても良い。
【００３６】
解像度変換部３７では、表示用や出力用の解像度の画像データに変換され、変換された画像データを記録再生装置部５で記録する場合には、動画コーデック部１９で変換される。動画コーデック部１９で変換された画像データは、記録再生装置部５で記録媒体に記録され、必要な際に記録再生装置部５で記録媒体から読み出される。
【００３７】
そして、解像度変換部３７が出力する画像データ、または記録再生装置部５で再生された画像データは、ＮＴＳＣ（Ｎａｔｉｏｎａｌ Ｔｅｌｅｖｉｓｉｏｎ Ｓｙｓｔｅｍ Ｃｏｍｍｉｔｔｅｅ）エンコーダ２０に供給される。このＮＴＳＣエンコーダ２０でＮＴＳＣ方式の標準カラー映像信号に変換され、例えば液晶表示パネルからなるモニターディスプレイ６に供給される。このようにモニターディスプレイ６に供給されることで、モニター画像がモニターディスプレイ６の表示画面に表示される。なお、図１では、図示を省略したが、ＮＴＳＣエンコーダ２０からの出力映像信号は、映像出力端子を通じて外部に導出することが可能とされている。
【００３８】
［２．動き検出・動き補償部の説明］
動き検出・動き補償部１６では、絶対値差分和であるＳＡＤ値を用いてブロックマッチング処理を行うことで、動きベクトル検出を行う。
【００３９】
＜階層化ブロックマッチング処理の概要＞
一般的な従来のブロックマッチングにおける動きベクトル検出処理は、ピクセル（画素）単位（１ピクセル単位または複数ピクセル単位）で参照ブロックを移動させて、各移動位置における参照ブロックについてのＳＡＤ値を算出する。そして、その算出したＳＡＤ値の中から最小値を示すＳＡＤ値を検出し、当該最小ＳＡＤ値を呈する参照ブロック位置に基づいて動きベクトルを検出するようにする。
【００４０】
しかし、このような従来の動きベクトル検出処理では、サーチ範囲内をピクセル単位で参照ブロックを移動させるようにするので、検索するサーチ範囲に比例して、ＳＡＤ値を算出するマッチング処理回数が多くなって、マッチング処理時間が大きくなると共に、ＳＡＤテーブルの容量も大きくなるという問題があった。
【００４１】
そこで、ここでは、ターゲット画像（ターゲットフレーム）および参照画像（参照フレーム）に対して縮小画像を作成し、作成した縮小画像でブロックマッチングを行い、縮小画像での動き検出結果を基に、もとのターゲット画像でのブロックマッチングを行う。ここで、縮小画像のことを縮小面、縮小化をしていない元の画像のことを基底面と呼ぶことにする。したがって、この例では、縮小面でのブロックマッチングを行ったあと、そのマッチング結果を用いて基底面でのブロックマッチングを行う。
【００４２】
図４および図５に、ターゲットフレーム（画像）および参照フレーム（画像）の画像縮小化のイメージを示す。すなわち、この例においては、例えば図４に示すように、基底面ターゲットフレーム１３０は、水平方向および垂直方向のそれぞれを、１／ｎ（ｎは正の数）に縮小して、縮小面ターゲットフレーム１３２とする。したがって、基底面ターゲットフレーム１３０を複数個に分割して生成した基底面ターゲットブロック１３１は、縮小面ターゲットフレームでは、水平方向および垂直方向のそれぞれが１／ｎ×１／ｎに縮小された縮小面ターゲットブロック１３３となる。
【００４３】
そして、ターゲットフレームの画像縮小倍率１／ｎに合わせて、参照フレームを縮小する。すなわち、図５に示すように、基底面参照フレーム１３４は、水平方向および垂直方向のそれぞれを、１／ｎに縮小して、縮小面参照フレーム１３５とする。そして、基底面参照フレーム１３４上で検出された動き補償ブロック１０３についての動きベクトル１０４は、縮小面参照フレーム１３５では、１／ｎ×１／ｎに縮小された縮小面動きベクトル１３６として検出される。
【００４４】
なお、上記の例では、ターゲットフレームと参照フレームとの画像縮小倍率は同じとした。これに対して演算量削減のため、ターゲットフレーム（画像）と参照フレーム（画像）とで異なる画像縮小倍率を用い、画素補間等の処理で、両フレームの画素数を合わせて、マッチングを行うようにしてもよい。
【００４５】
また、水平方向および垂直方向のそれぞれの縮小倍率を同一としたが、水平方向と垂直方向とで、縮小倍率を異ならせるようにしても良い。例えば水平方向は１／ｎに縮小し、垂直方向は、１／ｍ（ｍは正の数で、ｎ≠ｍ）に縮小する場合には、縮小画面は、元の画面の１／ｎ×１／ｍの大きさになる。
【００４６】
図６に、縮小面参照ベクトルと基底面参照ベクトルの関係を示す。基底面参照フレーム１３４において、動き検出原点１０５と、サーチ範囲１０６が、図６（Ａ）に示すように決定されたとする。このとき、１／ｎ×１／ｎに画像縮小された縮小面参照フレーム１３５上では、図６（Ｂ）に示すように、サーチ範囲は、１／ｎ×１／ｎに縮小された縮小面サーチ範囲１３７とされる。
【００４７】
そして、この例では、縮小面サーチ範囲１３７内において、縮小面参照フレーム１３５での動き検出原点１０５からの位置ズレ量を表す縮小面参照ベクトル１３８を設定する。そして、それぞれの縮小面参照ベクトル１３８が指し示す位置にある縮小面参照ブロック１３９と、縮小面ターゲットブロック１３１（図６では図示は省略）との相関性を評価する。
【００４８】
この場合、縮小画像において、ブロックマッチングを行うので、縮小面参照フレーム１３５においてＳＡＤ値を算出すべき縮小面参照ブロック位置（縮小面参照ベクトル）の数を少なくすることができる。このようにＳＡＤ値の算出回数（マッチング処理回数）が少なくなる分だけ、処理を高速化することができると共に、ＳＡＤテーブルを小規模とすることができる。
【００４９】
図７に示すように、縮小面サーチ範囲１３７に応じて定まる縮小面マッチング処理範囲１４３内に設定される複数個の縮小面参照ブロック１３９と縮小面ターゲットブロック１３１とのブロックマッチングによる相関性評価が得られる。その相関性評価により、縮小面参照フレーム１３５における縮小面動きベクトル１３６が算出される。この縮小面動きベクトル１３６の精度は、画像が１／ｎ×１／ｎに縮小されているので、１ピクセルのｎ倍の低精度となっている。そこで、この算出された縮小面動きベクトル１３６をｎ倍しても、基底面参照フレーム１３４において、１ピクセル精度の動きベクトル１０４は得られない。
【００５０】
しかし、基底面参照フレーム１３４においては、縮小面動きベクトル１３６をｎ倍した動きベクトルの近傍に、１ピクセル精度の基底面動きベクトル１０４が存在することは明らかである。
【００５１】
そこで、この例では、図６（Ｃ）および図７に示すように、基底面参照フレーム１３４において、縮小面動きベクトル１３６をｎ倍した動きベクトル（基底面参照ベクトル１４１）が指し示す位置を中心として考える。この位置を中心として、基底面動きベクトル１０４が存在するであろうと考えられる狭い範囲に、基底面サーチ範囲１４０を設定し、設定された基底面サーチ範囲１４０に応じて基底面マッチング処理範囲１４４を設定する。
【００５２】
そして、図６（Ｃ）に示すように、この基底面サーチ範囲１４０内の位置を示すものとして、基底面参照フレーム１３４における基底面参照ベクトル１４１を設定し、各基底面参照ベクトル１４１が指し示す位置に基底面参照ブロック１４２を設定する。これらの設定で、基底面参照フレーム１３４におけるブロックマッチングを行うようにする。
【００５３】
ここで設定された基底面サーチ範囲１４０および基底面マッチング処理範囲１４４は、非常に狭い範囲でよい。すなわち、図７に示すように、縮小面サーチ範囲１３７および縮小面マッチング処理範囲１４３を縮小率の逆数倍であるｎ倍したサーチ範囲１３７´およびマッチング処理範囲１４３´に比較して非常に狭い範囲でよい。
【００５４】
したがって、階層化マッチングを行わずに、基底面においてのみブロックマッチング処理をした場合には、基底面においては、サーチ範囲１３７´およびマッチング処理範囲１４３´において、複数個の参照ブロックを設定して、ターゲットブロックとの相関値を求める演算をする必要がある。これに対して、階層化マッチング処理においては、図７のように、非常に狭い範囲においてのみマッチング処理を行えばよい。
【００５５】
このため、当該狭い範囲である、基底面サーチ範囲１４０および基底面マッチング処理範囲１４４に設定される基底面参照ブロックの数は非常に少なくなり、マッチング処理回数（相関値演算回数）および保持するＳＡＤ値を非常に小さくすることができる。このため、処理を高速化することができると共に、ＳＡＤテーブルを小規模化することができるという効果を得ることができる。
【００５６】
＜動き検出・動き補償部の構成例＞
図８に、動き検出・動き補償部１６の構成例のブロック図を示す。この例では、動き検出・動き補償部１６は、ターゲットブロック１０２の画素データを保持するターゲットブロックバッファ部１６１と、参照ブロック１０８の画素データを保持する参照ブロックバッファ部１６２を備える。これらのバッファ部１６１，１６２が、図１に示したバッファ（１次メモリ）１６ａに相当する。
【００５７】
さらに、動き検出・動き補償部１６は、ターゲットブロック１０２と参照ブロック１０８とで対応する画素についてのＳＡＤ値を計算するマッチング処理部１６３を備える。さらにまた、マッチング処理部１６３から出力されるＳＡＤ値情報から動きベクトルを算出する動きベクトル算出部１６４と、それぞれのブロックを制御するコントロール部１６５とを備える。
【００５８】
そして、画像メモリ４０に記憶された画像データは、動き検出・動き補償部１６内のターゲットブロックバッファ部１６１及び参照ブロックバッファ部１６２に供給される。
【００５９】
静止画撮像時においては、ターゲットブロックバッファ部１６１には、メモリコントローラ８による読み出し制御にしたがって、以下の画像が画像メモリ４０から読み出されて、書き込まれる。すなわち、画像メモリ４０に記憶されている縮小面ターゲット画像Ｐrtまたは基底面ターゲット画像Ｐbtの画像フレームからの縮小面ターゲットブロックまたは基底面ターゲットブロックが、画像メモリ４０から読み出されて、書き込まれる。
【００６０】
縮小面ターゲット画像Ｐrtまたは基底面ターゲット画像Ｐbtは、１枚目は、シャッターボタン押下後の最初の撮像フレームの画像が画像メモリ４０から読み出されて、ターゲットフレーム１０２として、ターゲットブロックバッファ部１６１に書き込まれる。参照画像とのブロックマッチングに基づき画像の重ね合わせがなされると、画像メモリ４０に当該画像の重ね合わせ後のＮＲ画像が書き込まれ、ターゲットブロックバッファ部１６１のターゲットフレーム１０２が、当該ＮＲ画像に書き換えられてゆく。
【００６１】
参照ブロックバッファ部１６２には、画像メモリ４０に記憶されている縮小面参照画像Ｐrrまたは基底面参照画像Ｐbrの画像フレームからの縮小面マッチング処理範囲または基底面マッチング処理範囲の画像データが、書き込まれる。縮小面参照画像Ｐrrまたは基底面参照画像Ｐbrは、最初の撮像フレームの後の撮像フレームが、参照フレーム１０８として画像メモリ４０に書き込まれる。
【００６２】
この場合、連続して撮影された複数枚の撮像画像を取り込みながら画像の重ね合わせ処理を行う場合には、基底面参照画像および縮小面参照画像としては、最初の撮像フレームの後の撮像フレームが、１枚ずつ順次に画像メモリ４０に取り込まれる。
【００６３】
連続して撮影された複数枚の撮像画像を画像メモリ４０に取り込んだ後、動き検出・動き補償部１６および画像重ね合わせ部１７で、動きベクトル検出を行い、画像の重ね合わせを実行するようにする場合には、複数枚の撮像フレームを保持する必要がある。この連続して撮影された複数枚の撮像画像を画像メモリ４０に取り込んだ後の処理を、撮影後加算と呼ぶ。すなわち、この撮影後加算時には、基底面参照画像および縮小面参照画像としては、最初の撮像フレームの後の複数枚の撮像フレームの全てを画像メモリ４０に格納保持しておく必要がある。
【００６４】
撮像装置としては、撮影中加算および撮影後加算のいずれも用いることができるが、この実施形態では、静止画ＮＲ処理は、多少処理時間がかかっても、ノイズが低減された綺麗な画像が要求されることを考慮して、撮影後加算の処理を採用している。
【００６５】
一方、動画撮影時においては、動き検出・動き補償部１６には、画像補正・解像度変換部１５からの撮像フレームがターゲットフレーム１０２として入力される。ターゲットブロックバッファ部１６１には、この画像補正・解像度変換部１５からの、ターゲットフレームから抽出されたターゲットブロックが書き込まれる。また、ターゲットフレームよりも１枚前の、画像メモリ４０に記憶されている撮像フレームが、参照フレーム１０８とされる。参照ブロックバッファ部１６２には、この参照フレーム（基底面参照画像Ｐbrまたは縮小面参照画像Ｐrr）からの基底面マッチング処理範囲または縮小面マッチング処理範囲が書き込まれる。
【００６６】
この動画撮影時には、画像メモリ４０には、画像補正・解像度変換部１６からのターゲットフレームとの間でブロックマッチングをすべき、少なくとも１枚前の撮像画像フレームを基底面参照画像Ｐbrおよび縮小面参照画像Ｐrrとして保持する。
【００６７】
マッチング処理部１６３では、縮小面でのマッチング処理および基底面でのマッチング処理を、ターゲットブロックバッファ部１６１に記憶されたターゲットブロックと、参照ブロックバッファ部１６２に記憶された参照ブロックとについて行う。
【００６８】
ここで、ターゲットブロックバッファ部１６１に記憶されたものが縮小面ターゲットブロックの画像データであり、参照ブロックバッファ１６２に記憶されたものが縮小面参照画面から抽出された縮小面マッチング処理範囲の画像データである場合を考える。この場合には、マッチング処理部１６３では、縮小面マッチング処理が実行される。また、ターゲットブロックバッファ部１６１に記憶されたものが基底面ターゲットブロックの画像データとなる。参照ブロックバッファ１６２に記憶されたものが基底面参照画面から抽出された基底面マッチング処理範囲の画像データである場合には、マッチング処理部１６３では、基底面マッチング処理が実行されることになる。
【００６９】
マッチング処理部１６３で、ブロックマッチングにおけるターゲットブロックと、参照ブロックとの相関の強さを検出するためには、画像データの輝度情報を用いてＳＡＤ値算出を行う。そして、その最小ＳＡＤ値を検出して、当該最小ＳＡＤ値を呈する参照ブロックを最強相関参照ブロックとして検出するようにする。
【００７０】
なお、本実施の形態の例の場合、ＳＡＤ値の算出は、輝度信号と色差信号のそれぞれについて行い、輝度信号のＳＡＤ値と色差信号のＳＡＤ値とを重み付け加算して、最終的なＳＡＤ値を得るようにしてある。この輝度信号と色差信号との処理の詳細については後述する。輝度信号のＳＡＤ値と色差信号のＳＡＤ値とは、マッチング処理部１６３内のそれぞれ別の計算処理部で検出してもよいが、例えば同一の計算処理部を、輝度信号の計算と色差信号の計算とで時分割で行う処理構成としてもよい。
【００７１】
動きベクトル算出部１６４は、マッチング処理部１６３のマッチング処理結果からターゲットブロックに対する参照ブロックの動きベクトルを検出する。この例では、動きベクトル算出部１６４は、ＳＡＤ値の最小値を検出保持する。
【００７２】
コントロール部１６５は、ＣＰＵ１による制御を受けながら、この動き検出・動き補償部１６における階層化ブロックマッチング処理の処理動作を制御するようにする。
【００７３】
＜ターゲットブロックバッファの構成例＞
ターゲットブロックバッファの構成例のブロック図を、図９に示す。この図９に示すように、ターゲットブロックバッファ１６１は、基底面バッファ部１６１１と、縮小面バッファ部１６１２と、縮小化処理部１６１３と、セレクタ１６１４，１６１５および１６１６とを備えている。セレクタ１６１４，１６１５および１６１６は、図９では、図示は省略したが、コントロール部１６５からの選択制御信号によりそれぞれ選択制御される。
【００７４】
基底面バッファ部１６１１は、基底面ターゲットブロックを一時格納するためのものである。この基底面バッファ部１６１１は、基底面ターゲットブロックを、画像重ね合わせ部１７に送ると共に、セレクタ１６１６に供給する。
【００７５】
縮小面バッファ部１６１２は、縮小面ターゲットブロックを一時格納するためのものである。縮小面バッファ部１６１２は、縮小面ターゲットブロックを、セレクタ１６１６に供給する。
【００７６】
縮小化処理部１６１３は、動画撮影時には上述したように、ターゲットブロックは、画像補正・解像度変換部１５から送られてくるので、この縮小化処理部１６１３で縮小面ターゲットブロックを生成するために設けられている。縮小化処理部１６１３からの縮小面ターゲットブロックは、セレクタ１６１５に供給される。
【００７７】
セレクタ１６１４は、動画撮影時にはデータ変換部１４からのターゲットブロック（基底面ターゲットブロック）を出力する。静止画撮影時には画像メモリ４０から読み出された基底面ターゲットブロックまたは縮小面ターゲットブロックを出力する。これらの出力は、コントロール部１６５からの選択制御信号により選択されて出力され、その出力を基底面バッファ部１６１１と、縮小化処理部１６１３と、セレクタ１６１５とに供給する。
【００７８】
セレクタ１６１５は、動画撮影時には縮小化処理部１５からの縮小面ターゲットブロックを、静止画撮影時には画像メモリ４０からの縮小面ターゲットブロックを、コントロール部１６５からの選択制御信号により選択して出力する。その出力を縮小面バッファ部１６１２に供給する。
【００７９】
セレクタ１６１６は、コントロール部１６１５からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部１６１２からの縮小面ターゲットブロックを出力する。基底面でのブロックマッチング時には、基底面バッファ部１６１１からの基底面ターゲットブロックを出力する。出力した縮小面ターゲットブロックまたは基底面ターゲットブロックをマッチング処理部１６３に送る。
【００８０】
＜参照ブロックバッファの構成例＞
参照ブロックバッファ部１６２の構成例のブロック図を、図１０に示す。この図１０に示すように、参照ブロックバッファ部１６２は、基底面バッファ部１６２１と、縮小面バッファ部１６２２と、セレクタ１６２３とを備えている。セレクタ１６２３は、図１０では、図示は省略したが、コントロール部１６５からの選択制御信号により選択制御される。
【００８１】
基底面バッファ部１６２１は、画像メモリ４０からの基底面参照ブロックを一時格納し、その基底面参照ブロックを、セレクタ１６２３に供給すると共に、画像重ね合わせ部１７に、動き補償ブロックとして送る。
【００８２】
縮小面バッファ部１６２２は、画像メモリ４０からの縮小面参照ブロックを一時格納するためのものである。縮小面バッファ部１６２２は、縮小面参照ブロックを、セレクタ１６２３に供給する。
【００８３】
セレクタ１６２３は、コントロール部１６１５からの選択制御信号に応じて、縮小面でのブロックマッチング時には、縮小面バッファ部１６１２からの縮小面参照ブロックを出力する。基底面でのブロックマッチング時には、基底面バッファ部１６１１からの基底面参照ブロックを出力する。出力した縮小面参照ブロックまたは基底面参照ブロックを、マッチング処理部１６３に送る。
【００８４】
＜マッチング処理部の構成例＞
次に、マッチング処理部１６３の構成例のブロック図を、図１１に示す。
マッチング処理部１６３は、図１１に示すように、ターゲットブロックバッファ部１６１からターゲットフレームのターゲットブロックのデータが供給され、参照ブロックバッファ部１６２から、参照フレームのブロック（参照ブロック）のデータが供給される。この例では、上述した４２２フォーマットのデジタル画像信号よりなる、ターゲットブロックのデータと参照ブロックのデータとしてある。そして、その画像信号のそれぞれの種別ごとにマッチング処理部が行われる。即ち、輝度信号成分Ｙは、輝度信号どうしで相関が検出され、第１色差信号成分Ｃｂは、第１色差信号成分どうしで相関が検出され、第２色差信号成分Ｃｒは、第２色差信号成分どうしで相関が検出される。
【００８５】
なお、４２２フォーマットのデジタル画像信号の場合、第１色差信号成分Ｃｂと第２色差信号成分Ｃｒは、それぞれ輝度信号成分Ｙの半分の解像度（画素数）のデータであり、輝度信号成分Ｙの画素に対して、１画素ごとに第１色差信号成分Ｃｂがある画素と、第２色差信号成分Ｃｒがある画素とが設定してある。
【００８６】
ターゲットブロックのデータは、ターゲットブロックレジスタ１６３８に、３２画素×３２画素のデータとして記憶されるが、そのターゲットブロックレジスタとして、輝度信号成分Ｙ用の領域と、色差信号成分Ｃｂ，Ｃｒ用の領域とが確保されている。そのターゲットブロックレジスタのデータが、ブロック間引き部１６３５で間引き処理された後、差分絶対値計算部１６３２に供給される。
【００８７】
参照ブロックのデータは、サーチ範囲内の８画素×４画素のブロックの集合として、マッチング処理範囲のデータが、参照ブロックレジスタ群１６３９に記憶される。参照ブロックレジスタ群１６３９についても、輝度信号成分Ｙ用の領域と、色差信号成分Ｃｂ，Ｃｒ用の領域とが確保されている。このレジスタ群に記憶された参照ブロックのデータは、セレクタ部１６３１で選択されて、差分絶対値計算部１６３２に供給される。
なお、参照ブロックレジスタ群は、ターゲットブロックレジスタ群に比べて、サーチ範囲の大きさに応じて大きくなる。そのため、参照ブロックバッファ部から参照ブロックレジスタ群にマッチング処理範囲のデータが書き込まれる際に、データを１／２に間引いている。これは水平ないし垂直に１／２に間引いてしまうと１画素精度のマッチングができないため、図２３のように間引くとする。この間引き方を千鳥格子または千鳥間引きと呼ぶことにする。
【００８８】
ところで、図２３の例では、色差信号成分Ｃｂと色差信号成分Ｃｒとが同じひとまとめのデータとして管理されている。これは図２６のように色差信号成分Ｃｒを仮想的に水平１画素ずらして管理することを意味している。つまり、輝度信号成分Ｙのデータを書くのに必要なバッファと２つの色差信号成分Ｃｂ，Ｃｒに必要なバッファが同じサイズになり、都合が良い。以降のマッチング処理部１６３でも２つの色差信号成分Ｃｂ，Ｃｒはまとめて処理する。
参照ブロックを図２３のように千鳥格子に間引いた場合、水平および垂直に偶数画素シフトした場合は位相がそろうが、水平および垂直に奇数画素シフトした場合は位相がそろわない。そのため、ターゲットブロックの間引き部では、図２３に示した正相での千鳥間引きでの偶数画素シフトの他に、奇数画素シフト用に、位相が逆（逆相）での千鳥間引き処理もできるように構成する。
このようにな処理を行うことで、データを間引いたとしても、輝度信号成分Ｙが１画素、色差信号成分Ｃｂ，Ｃｒが水平２画素、垂直１画素のマッチングを行うことができる。
【００８９】
そして、差分絶対値計算部１６３２で、ターゲットブロックのデータと、参照ブロックのデータとで、差分絶対値が計算される。このときには、同じ種類の信号成分ごとで差分絶対値が計算される。即ち、差分絶対値計算部１６３２で、輝度信号成分Ｙの差分絶対値が計算され、その輝度信号成分Ｙの差分絶対値が、輝度信号用加算部１６３３で加算されて、輝度信号の差分値絶対値和、すなわちＳＡＤ値が得られる。また、差分絶対値計算部１６３２で、色差信号成分Ｃｂ，Ｃｒの差分絶対値が計算され、その色差信号成分Ｃｂ，Ｃｒの差分絶対値が、色差信号用加算部１６３４で加算されて、色差信号の差分値絶対値和、すなわちＳＡＤ値が得られる。
【００９０】
そして、輝度信号用加算部１６３３で得られた輝度信号のＳＡＤ値と、色差信号用加算部１６３４で得られた色差信号のＳＡＤ値とが、重み付け加算部１６３６で所定の重み付けを持った加算処理される。即ち、色差信号の加算比率をｋとすると、重み付け加算部１６３６が出力するＳＡＤ値は、以下のように示される。
ＳＡＤ値＝輝度信号ＹのＳＡＤ値×（１−ｋ）＋色差信号成分Ｃｂ，ＣｒのＳＡＤ値×ｋ
【００９１】
なお、加算比率ｋは、外部から可変できるようにするのが好ましい。この加算比率ｋは、例えば撮影を行うモードに応じて、可変させるのが好ましい。
このようにして得られた、輝度と色差の双方から算出されたＳＡＤ値が、マッチング処理部１６３から出力される。コントロール部１６３７は、そのＳＡＤ値に対応した座標である参照ベクトル座標を出力する。
【００９２】
１ラインのＳＡＤ値算出が終わると、次に、一番上の１ライン分のマッチング処理範囲のデータを捨て、残りのマッチング処理範囲を上にシフトし、参照ブロックバッファ部１６２から、下の１ライン分のマッチング処理範囲のデータを供給させて、更新させる。
これをマッチング処理範囲の一番下までサーチができるまで繰り返す。このようにすることで、マッチング処理部のバッファサイズを削減することができる。また、参照ブロックバッファ部１６２から、マッチング処理部１６３へのデータ転送時間も、並列化されて短縮することができる。サーチを行う具体的な例については後述する。
なお、ここでは水平方向に１ラインずつサーチを行うようにしたが、垂直方向に１ラインずつサーチを行うようにしてもよい。
【００９３】
図１２は、上述した参照ブロックバッファ部１６２から、レジスタ群１６３９に保持された後、セレクタ１６３１で選択されて差分絶対値計算部１６３２に供給される状態の概要を示したものである。
図１２（Ａ）に示したように、参照ブロックバッファ部１６２からのデータは、レジスタに順に転送されて、そのレジスタから出力されて、差分絶対値計算部１６３２側に水平１ラインずつ転送する構成としてある。ここで、後述するラインサーチ時には、１つの水平ラインのデータが保持されたレジスタのデータを、順に移動させる周回シフト処理を行うようにしてある。そして、その水平ラインのデータの転送が完了すると、一番上のラインのデータが捨てられ、下から順に１ラインシフトさせて、以後、同じ処理が繰り返される。
１参照ブロックが８画素×８画素のブロックであるとすると、図１２（Ｂ）に示すように、下レジスタブロックから順に転送されて、上レジスタブロックに転送されることになる。また、水平方向の移動は、図１２（Ｃ）に示すように、例えば左レジスタブロックよりデータが転送されて、右レジスタブロックにデータが転送されることになる。この図１２（Ｃ）の例は、左から右への移動で、ラインサーチの例であるが、後述するジグザグサーチの場合には、右から左への移動も行われる。
【００９４】
マッチング処理範囲は、１ラインごとにサーチを行う。このサーチ方法としては、ラインサーチとジグザグサーチとがある。ラインサーチとは、常に右から左、または左から右に一定にサーチを行うことである。ジグザグサーチとは、偶数ラインが右から左にサーチしたとすると、奇数ラインは左から右にサーチすることである。
【００９５】
ところで、色差信号の解像度が、水平方向で輝度信号の１／２であることを考えると、何も対処をしない場合には、被写体によっては常に１画素間違った色差を参照してしまう可能性がある。この問題を解決するために、色差信号については、ローパスフィルタなどの各種フィルタを通過させるなどの処理を行って、水平１画素のデータが存在する平面を作ることも可能である。
しかしながら、この場合、もともとの画像が持つ解像度は増えないものの、色差信号の見かけ上のデータ量だけが２倍になることになる。すなわち、画素数が増えるだけで、本来の解像度が輝度信号に対応したものになるわけでない。また、画素数が増えることで、色差信号をブロックマッチングするためのリソースが２倍になり、輝度信号と色差信号を処理するために、合計で、輝度信号だけで処理する場合に比べて３倍のリソースを消費することになる。
【００９６】
ここで本実施の形態の例の場合には、色差信号の解像度を拡張することなく、そのままで処理するようにしてあり、色差信号をブロックマッチングするためのリソースが２倍に増えることがなく、適切なリソースで輝度成分と色差成分を処理できることになる。
また、本実施の形態の例の場合、輝度信号のＳＡＤ値と色差信号のＳＡＤ値を重みづけ加算するため、色差信号の解像度が低いことによる誤差はある程度小さくすることができる。その上で、誤差が集中しないように分散処理するのが好ましい。誤差が集中しないように分散処理する方法としては、例えば、上述した１ラインごとのサーチで、ジグザグサーチを適用する。ジグザグサーチを行うことで、第１色差信号成分Ｃｂと第２色差信号成分Ｃｒの関係が入れ替わるので、１ラインの誤差を分散させることができる。
【００９７】
但し、既に説明したように、マッチング処理部１６３では、縮小面での相関値検出と、基底面での相関値検出との、階層構造化された相関値検出を行うようにしてある。ここで、輝度信号の相関値検出と色差信号の相関値検出とを、各階層で行うようにしても良いが、縮小面だけで輝度信号の相関値検出と色差信号の相関値検出とを行い、基底面では、輝度信号の相関値検出だけを行うようにしてもよい。
【００９８】
また、輝度信号のＳＡＤ値を計算する回路と、色差信号のＳＡＤ値を計算する回路とは同じ回路で良い。このため、例えば縮小面を処理する際には、輝度信号を処理する回路と、色差信号を処理する回路に分けて処理を行う。そして、基底面を処理する際には、全ての回路を、輝度信号を処理する回路とすることができる。
また、色差信号の動き検出を縮小面だけで行えば、基底面で誤差が拡大することがなく、大きな誤差が生じることを効果的に阻止できる。
【００９９】
＜画像重ね合わせ部の構成例＞
画像重ね合わせ部１７の構成例のブロック図を、図１３に示す。この図１３に示すように、画像重ね合わせ部１７は、加算率計算部１７１と、加算部１７２と、基底面出力バッファ部１７３と、縮小面生成部１７４と、縮小面出力バッファ部１７５とを備えて構成されている。
【０１００】
そして、画像重ね合わせ部１７の出力画像データが、データ圧縮部３５で圧縮された後、画像メモリ４０に記憶される。
【０１０１】
加算率計算部１７１は、動き検出・動き補償部１６からのターゲットブロックおよび動き補償ブロックを受けて、両者の加算率を、採用する加算方式が単純加算方式であるか、または平均加算方式であるかに応じて定める。定めた加算率を、ターゲットブロックおよび動き補償ブロックと共に加算部１７２に供給する。
【０１０２】
加算部１７２での加算結果の基底面ＮＲ画像は、圧縮された後、画像メモリ４０に書き込まれる。また、加算部１７２での加算結果の基底面ＮＲ画像は、縮小面生成部１７４にて縮小面ＮＲ画像に変換され、縮小面生成部１７４からの縮小面ＮＲ画像が、画像メモリ４０に書き込まれる。
【０１０３】
＜縮小面ターゲットブロックと基底面ターゲットブロックとの関係＞
図１４は、縮小面ターゲットブロックと基底面ターゲットブロックとの関係の例を示した図である。
例えば、マッチング処理部１６３が備えるターゲットブロックレジスタとして、図１４（Ａ）に示すように、３２×３２の画素数のデータがセットできるレジスタとしたとする。ここで、図１４（Ｂ）に示すように、縮小面ターゲットブロックを８×８のサイズとしたとする。このとき、基底面ターゲットブロックを１６×１６のサイズとすると、縮小面の縮小倍率は１／２となる。また、基底面ターゲットブロックを３２×３２のサイズとすると、縮小面の縮小倍率は１／４となる。
図１４（Ｃ）に示した例は、各ターゲットブロックに対するマッチング処理範囲を示したものである。即ち、縮小面マッチング処理範囲と、縮小倍率１／２での基底面マッチング処理範囲と、縮小倍率１／４での基底面マッチング処理範囲を示す。
【０１０４】
＜サーチ例＞
上述したように、ブロックマッチング処理は、参照ベクトルの示す位置を参照ブロックの位置とし、各参照ブロックの各画素とターゲットブロックの各画素のＳＡＤ値を計算し、その計算処理を、サーチ範囲内のすべての参照ベクトルの示す位置の参照ブロックについて行う。
【０１０５】
ここで、サーチ範囲内において参照ブロックの位置を変えて、動き補償ブロックをサーチする場合に、サーチを画面（フレーム）の端から順番に行う、画面（フレーム）の中心から外側に向かって行う、などいろいろな方法が考えられる。ここでは、ラインサーチを行う例と、ジグザグサーチを行う例を示す。ラインサーチでは、図１５（Ａ）で矢印１２０に示すように設定され、サーチ範囲の左上端から水平方向にサーチを開始する。１ライン分のサーチが終わった後、垂直方向に１ライン下のラインを、左端から水平方向にサーチする、という手順を繰り返す。
【０１０６】
すなわち、図１５（Ｂ）に示すように、サーチ範囲１０６において、当該サーチ範囲１０６の左上から水平方向に参照ブロック１０８を順次に設定してサーチして、各参照ブロック１０８についてのＳＡＤ値の計算を行う。すると、図１５（Ｃ）に示すように、対応するＳＡＤテーブルも左上から水平方向に埋まっていく。このとき、実際にマッチング処理に使用される画素データの範囲は、参照ブロック１０８の大きさに応じたマッチング処理範囲１１０となる。
なお、後述するように、ＳＡＤテーブルは、図１５（Ｃ）に示すように、輝度成分のＳＡＤテーブルＹ−ＴＢＬと色差成分のＳＡＤテーブルＣ−ＴＢＬとがある。図１５（Ｃ）では、説明のために両テーブルがずれて示されているが、輝度成分のＳＡＤテーブルＹ−ＴＢＬと色差成分のＳＡＤテーブルＣ−ＴＢＬは同じサイズのテーブルである。その上で、色差信号成分のＳＡＤテーブルについては、色差信号成分Ｃｂ，Ｃｒが水平２画素、垂直１画素のマッチングをする都合、水平方向に２サーチに１回、色差信号成分のＳＡＤ値が求まらない箇所ＳＡＤ−ＣＯＰＹがある。このＳＡＤ−ＣＯＰＹの個所では、色差信号成分のＳＡＤ値のコピーが行われる。
【０１０７】
図１５（Ｄ）は、ジグザグサーチの例を示したものである。この場合には、サーチ範囲１０６内で、矢印１２０で示すサーチ方向が、１ラインごとに、左端から水平方向にサーチ、右端から水平方向にサーチとなる。従って、図示はしないが、ジグザグサーチの場合には、ＳＡＤテーブルもジグザグに埋まっていくことになる。
【０１０８】
［３．撮像画像のノイズ低減処理の流れ］
＜静止画撮影時＞
上述の構成の実施の形態の撮像装置において、静止画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図１６および図１７に示す。この図１６および図１７のフローチャートの各ステップは、ＣＰＵ１およびこのＣＰＵ１により制御される動き検出・動き補償部１６のコントロール部１６５の制御の下に実行されると共に、画像重ね合わせ部１７により実行されるものである。
【０１０９】
まず、シャッターボタンが押下されると、この例の撮像装置においては、ＣＰＵ１による制御によって、高速で複数枚の画像の高速撮影が行われる。この例では、静止画撮影時に重ね合わすべきＭ枚（Ｍフレーム；Ｍは２以上の整数）の撮像画像データを高速で取り込み、画像メモリ４０に貼っておく（ステップＳ１）。
【０１１０】
次に、参照フレームは、画像メモリ４０に蓄積されているＭ枚の画像フレームのうちの時間的にＮ番目（Ｎは２以上の整数で、最大値はＭ）とするのであるが、コントロール部１６５は、その何番目とする値Ｎの初期値を、Ｎ＝２とする（ステップＳ２）。そして、次に、コントロール部１６５は、１枚目の画像フレームをターゲット画像（ターゲットフレーム）に設定し、Ｎ＝２枚目の画像を参照画像(参照フレーム)に設定する（ステップＳ３）。
【０１１１】
次に、コントロール部１６５は、ターゲットフレームにターゲットブロックを設定し（ステップＳ４）、動き検出・動き補償部１６において、画像メモリ部４から、ターゲットブロックバッファ部１６１へターゲットブロックを読み込み（ステップＳ５）、また、画像メモリ４０から、参照ブロックバッファ部１６２へマッチング処理範囲の画素データを読み込む（ステップＳ６）。
【０１１２】
次に、コントロール部１６５は、参照ブロックバッファ部１６２から、サーチ範囲内において参照ブロックを読み出し、マッチング処理部１６３で、階層化マッチング処理を行う。以上の処理をサーチ範囲内のすべての参照ベクトルで繰り返した後、高精度の基底面動きベクトルを出力する（ステップＳ７）。
【０１１３】
次に、コントロール部１６５は、以上のようにして検出された高精度の基底面動きベクトルにしたがって、参照ブロックバッファ部１６２から、検出した動きベクトル分の動きを補償した動き補償ブロックを読み出す（ステップＳ８）。そして、ターゲットブロックと同期して、後段の画像重ね合わせ部１７へ送る（ステップＳ９）。
【０１１４】
次に、ＣＰＵ１の制御に従って、画像重ね合わせ部１７は、ターゲットブロックと動き補償ブロックの重ね合わせを行い、重ね合わせたブロックのＮＲ画像データを画像メモリ部４に貼る。すなわち、画像重ね合わせ部１７は、重ね合わせたブロックのＮＲ画像データを画像メモリ４０に出力させて書き込ませる（ステップＳ１０）。
【０１１５】
次に、コントロール部１６５は、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したか否か判別する（ステップＳ１１）。この判別で、すべてのターゲットブロックについてブロックマッチングの処理が終了していないと判別したときには、ステップＳ４に戻って、ターゲットフレーム内の次のターゲットブロックを設定して、ステップＳ４〜ステップＳ１１までの処理を繰り返す。
【０１１６】
また、コントロール部１６５は、ステップＳ１１で、ターゲットフレーム内のすべてのターゲットブロックについてのブロックマッチングを終了したと判別したときには、ステップＳ１２に移る。ステップＳ１２では、重ね合わすべきすべての参照フレームについての処理が終了したか否か、つまり、Ｍ＝Ｎであるか否か判別する。
【０１１７】
ステップＳ１２で、Ｍ＝Ｎではないと判別したときには、Ｎ＝Ｎ＋１とする（ステップＳ１３）。次に、ステップＳ１０での重ね合わせにより生成されたＮＲ画像をターゲット画像（ターゲットフレーム）とし、また、Ｎ＝Ｎ＋１枚目の画像を参照画像（参照フレーム）とする（ステップＳ１４）。その後、ステップＳ４に戻って、このステップＳ４以降の処理を繰り返す。つまり、Ｍが３以上の場合は、全てのターゲットブロックにおいて重ね合わせを行った画像を次のターゲット画像とし、３枚目以降の画像を参照フレームとして、上記の処理を繰り返して行く。これをＭ枚目の重ね合わせが終わるまで繰り返す。そして、ステップＳ１２で、Ｍ＝Ｎであると判別したときには、この処理ルーチンを終了する。
【０１１８】
＜動画撮影時＞
次に、この実施の形態の撮像装置において、動画撮影時における画像の重ね合わせによるノイズ低減処理のフローチャートを、図１８に示す。この図１８のフローチャートの各ステップも、ＣＰＵ１およびこのＣＰＵ１により制御される動き検出・動き補償部１６のコントロール部１６５の制御の下に実行されるものである。動画記録ボタンがユーザにより操作されると、ＣＰＵ１は、図１８の処理をスタートから開始するように指示する。
【０１１９】
この例では、動き検出・動き補償部１６は、ターゲットブロック単位でマッチング処理をするのに適した構成とされている。そこで、画像補正・解像度変換部１６は、ＣＰＵ１の制御に従って、フレーム画像を保持し、ターゲットブロック単位で、動き検出・動き補償部１６へ画像データを送る（ステップＳ２１）。
【０１２０】
動き検出・動き補償部１６に送られたターゲットブロックの画像データは、ターゲットブロックバッファ部１６１に格納される。次に、コントロール部１６５は、ターゲットブロックの座標をもとに、画像メモリ４０から参照ブロックを読み出す（ステップＳ２２）。読み出したデータは、参照ブロックバッファ部１６２に供給され書き込まれる（ステップＳ２３）。
【０１２１】
次に、マッチング処理部１６３および動きベクトル算出部１６４は、この例における階層化ブロックマッチングによる動き検出処理を行う（ステップＳ２４）。すなわち、マッチング処理部１６３は、先ず、縮小面において、縮小面ターゲットブロックの画素値と縮小面参照ブロックの画素値との間のＳＡＤ値を算出し、算出したＳＡＤ値を動きベクトル算出部１６４へ送る。マッチング処理部１６３は、この処理をサーチ範囲内のすべての縮小面参照ブロックで繰り返す。サーチ範囲内のすべての縮小面参照ブロックについてのＳＡＤ値の算出が終了した後、動きベクトル算出部１６４は、最小のＳＡＤ値を特定して、縮小面動きベクトルを検出する。
【０１２２】
コントロール部１６５は、動きベクトル算出部１６４で検出された縮小面動きベクトルを縮小率の逆数倍して、基底面上における動きベクトルに変換する。そして、その変換したベクトルが、基底面において指し示す位置を中心した領域を、基底面におけるサーチ範囲とする。そして、コントロール部１６５は、マッチング処理部１６３に、当該サーチ範囲において、基底面におけるブロックマッチング処理を行わせるように制御する。マッチング処理部１６３は、基底面ターゲットブロックの画素値と基底面参照ブロックの画素値との間のＳＡＤ値を算出し、算出したＳＡＤ値を動きベクトル算出部１６４へ送る。
【０１２３】
サーチ範囲内のすべての縮小面参照ブロックについてのＳＡＤ値の算出が終了した後、動きベクトル算出部１６４は、最小のＳＡＤ値を特定して、縮小面動きベクトルを検出すると共に、その近傍のＳＡＤ値を特定する。
【０１２４】
次に、コントロール部１６５は、ステップＳ２４で算出された高精度の動きベクトルにしたがって、参照ブロックバッファ部１６２から動き補償ブロックの画像データを読み出す（ステップＳ２５）。そして、ターゲットブロックと同期して、後段の画像重ね合わせ部１７へ送る（ステップＳ２６）。
【０１２５】
画像重ね合わせ部１７においては、ターゲットブロックと動き補償ブロックの重ね合わせを行い、その重ね合わせた結果のＮＲ画像の画像データを、画像メモリ４０側に出力させて書き込ませる（ステップＳ２７）。そして、ＮＲ画像の画像データを、次のターゲットフレームに対する参照フレームとして、画像メモリ４０に格納させる（ステップＳ２８）。
【０１２６】
そして、ＣＰＵ１は、動画記録停止操作がユーザによりなされたか否か判別し（ステップＳ２９）、当該動画記録停止操作がユーザによりなされていないと判別したときには、ステップＳ２１に戻って、このステップＳ２１以降の処理を繰り返すように指示する。また、ステップＳ２９で、動画記録停止操作がユーザによりなされたと判別したときには、ＣＰＵ１は、この処理ルーチンを終了するようにする。
【０１２７】
以上の動画のノイズ低減処理の処理ルーチンにおいては、１フレーム前の画像フレームを参照フレームとするようにしたが、１フレームよりもさらに過去のフレームの画像を参照フレームとして用いるようにしても良い。また、１フレーム前と２フレーム前の画像を、画像メモリ４０に格納しておき、それらの２枚の画像情報の内容から、どちらの画像フレームを参照フレームにするかを選択しても良い。
【０１２８】
上記のような手段、手順、システム構成を用いることで、一つの共通したブロックマッチング処理のハードウエアで、静止画ノイズ低減処理および動画ノイズ低減処理を行うことが可能になる。
【０１２９】
［４．階層化ブロックマッチング処理の流れの例］
次に、図１９および図２０に、動き検出・動き補償部１６での階層化ブロックマッチング処理の動作例のフローチャートを示す。
【０１３０】
なお、この図１９および図２０に示す処理の流れは、前述したマッチング処理部１６３、動き算出部１６４の処理例の流れとしての説明と、一部重複するものとなるが、この例の動作を、より理解し易くするために、説明するものである。
【０１３１】
はじめに、動き検出・動き補償部１６において、ターゲットブロックバッファ部１６１から、ターゲットブロックの縮小画、つまり、縮小面ターゲットブロックを読み込む（図１９のステップＳ７１）。次に、動きベクトル算出部１６４内で保持する、最小ＳＡＤ値Ｓminの初期値として、縮小面最小ＳＡＤ値の初期値を設定する（ステップＳ７２）。この縮小面最小ＳＡＤ値Ｓminの初期値としては、例えば、画素の差分の最大値が設定される。
【０１３２】
次に、マッチング処理部１６３では、縮小面サーチ範囲を設定する。設定した縮小サーチ範囲において、縮小面参照ベクトル（Ｖｘ／ｎ，Ｖｙ／ｎ：１／ｎは縮小倍率）を設定して、ＳＡＤ値を計算する縮小面参照ブロック位置を設定する（ステップＳ７３）。そして、設定した縮小面参照ブロックの画素データを、参照ブロックバッファ部１６２から読み込み（ステップＳ７４）、縮小面ターゲットブロックおよび縮小面参照ブロックの各画素データの差分の絶対値の総和、つまり、縮小面ＳＡＤ値を求める。求めた縮小面ＳＡＤ値を動きベクトル算出部１６４に送出する（ステップＳ７５）。
【０１３３】
動きベクトル算出部１６４では、マッチング処理部１６３で算出された縮小面ＳＡＤ値Ｓinと、保持されている縮小面最小ＳＡＤ値Ｓminとを比較する。そして、算出された縮小面ＳＡＤ値Ｓinが、それまで保持されている縮小面最小ＳＡＤ値Ｓminよりも小さいか否か判別する（ステップＳ７６）。
【０１３４】
このステップＳ７６で、算出された縮小面ＳＡＤ値Ｓinが縮小面最小ＳＡＤ値Ｓminより小さいと判別したときには、ステップＳ７７に進み、に保持される縮小面最小ＳＡＤ値Ｓminおよびその位置情報の更新がなされる。
【０１３５】
すなわち、ＳＡＤ値比較処理では、算出された縮小面ＳＡＤ値Ｓinが縮小面最小ＳＡＤ値Ｓminより小さい旨の比較結果の情報を出力する。すると、当該算出された縮小面ＳＡＤ値Ｓinおよびその位置情報（縮小面参照ベクトル）を、新たな縮小面最小ＳＡＤ値Ｓminの情報として、更新させる。
【０１３６】
ステップＳ７７の後には、ステップＳ７８に進む。また、ステップＳ７６で、算出された縮小面ＳＡＤ値Ｓinが縮小面最小ＳＡＤ値Ｓminより大きいと判別したときには、ステップＳ７７の保持情報の更新処理は行わずにステップＳ７８に進む。
【０１３７】
ステップＳ７８では、マッチング処理部１６３は、縮小面サーチ範囲の全ての縮小面参照ブロックの位置（縮小面参照ベクトル）でマッチング処理を終了したか否か判別する。その判別で、未だ、縮小面サーチ範囲においては、未処理の縮小面参照ブロックがあると判別したときには、ステップＳ７３に戻り、前述したステップＳ７３以降の処理を繰り返す。
【０１３８】
また、マッチング処理部１６３は、ステップＳ７８で、縮小面サーチ範囲の全ての縮小面参照ブロックの位置（縮小面参照ベクトル）でマッチング処理を終了したと判別したときには、次の処理が行われる。すなわち、縮小面最小ＳＡＤ値Ｓminの位置情報（縮小面動きベクトル）を受け取る。そして、受け取った縮小面動きベクトルを、縮小倍率の逆数倍、すなわち、ｎ倍したベクトルが、基底面ターゲットフレームにおいて指し示す位置座標を中心とした位置に基底面ターゲットブロックを設定する。さらに、ｎ倍したベクトルが指し示す位置座標を中心とした比較的狭い範囲として、基底面サーチ範囲を、基底面ターゲットフレームに設定する（ステップＳ７９）。そして、ターゲットブロックバッファ部１６１から、基底面ターゲットブロックの画素データを読み込む（ステップＳ８０）。
【０１３９】
そして、次に、動きベクトル算出部１６４に保持された最小ＳＡＤ値Ｓminの初期値として、基底面最小ＳＡＤ値の初期値を設定する（図２０のステップＳ８１）。この基底面最小ＳＡＤ値Ｓminの初期値としては、例えば、画素の差分の最大値が設定される。
【０１４０】
次に、マッチング処理部１６３では、ステップＳ７９で設定した基底面縮小サーチ範囲において、基底面参照ベクトル（Ｖｘ，Ｖｙ）を設定して、ＳＡＤ値を計算する基底面参照ブロック位置を設定する（ステップＳ８２）。そして、設定した基底面参照ブロックの画素データを、参照ブロックバッファ部１６２から読み込む（ステップＳ８３）。そして、基底面ターゲットブロックおよび基底面参照ブロックの各画素データの差分の絶対値の総和、つまり、基底面ＳＡＤ値を求め、求めた基底面ＳＡＤ値を動きベクトル算出部１６４に送出する（ステップＳ８４）。
【０１４１】
動きベクトル算出部１６４では、マッチング処理部１６３で算出された基底面ＳＡＤ値Ｓinと、保持されている基底面最小ＳＡＤ値Ｓminとを比較する。その比較で、算出された基底面ＳＡＤ値Ｓinが、それまで保持されている基底面最小ＳＡＤ値Ｓminよりも小さいか否か判別する（ステップＳ８５）。
【０１４２】
このステップＳ８５で、算出された基底面ＳＡＤ値Ｓinが基底面最小ＳＡＤ値Ｓminより小さいと判別したときには、ステップＳ８６に進み、保持される基底面最小ＳＡＤ値Ｓminおよびその位置情報の更新がなされる。
【０１４３】
すなわち、算出された基底面ＳＡＤ値Ｓinが基底面最小ＳＡＤ値Ｓminより小さい旨の比較結果の情報を出力する。すると、当該算出された基底面ＳＡＤ値Ｓinおよびその位置情報（参照ベクトル）を、新たな基底面最小ＳＡＤ値Ｓminの情報とし、新たな基底面ＳＡＤ値Ｓinおよびその位置情報に更新する。
【０１４４】
ステップＳ８６の後には、ステップＳ８７に進む。また、ステップＳ８５で、算出された基底面ＳＡＤ値Ｓinが基底面最小ＳＡＤ値Ｓminより大きいと判別したときには、ステップＳ８６の保持情報の更新処理は行わずにステップＳ８７に進む。
【０１４５】
ステップＳ８７では、マッチング処理部１６３は、基底面サーチ範囲の全ての基底面参照ブロックの位置（基底面参照ベクトル）でマッチング処理を終了したか否か判別する。その判別で、未だ、基底面サーチ範囲においては、未処理の基底面参照ブロックがあると判別したときには、ステップＳ８２に戻り、前述したステップＳ８２以降の処理を繰り返す。
【０１４６】
また、マッチング処理部１６３は、ステップＳ８７で、基底面サーチ範囲の全ての基底面参照ブロックの位置（基底面参照ベクトル）でマッチング処理を終了したと判別したときには、次の処理が行われる。すなわち、基底面最小ＳＡＤ値Ｓminの位置情報（基底面動きベクトル）を受け取り、基底面ＳＡＤ値を保持させるようにする（ステップＳ８８）。
以上で、１枚の参照フレームについてのこの例のブロックマッチング処理を終了する。
【０１４７】
次に、図２１及び図２２を参照して、縮小面ブロックマッチング処理時の例を説明する。
図２１は、図１５（Ａ）に示した一方向のラインサーチ時における、縮小面ブロックマッチング処理を示したものである。
図２１に従って説明すると、偶数ラインについて、色差信号成分の値を、右方向に１画素分シフトさせる（ステップＳ１１１）。そして、各水平ラインの左から右にマッチング処理を行う（ステップＳ１１２）。そのマッチング処理で得られた輝度信号成分ＹのＳＡＤ値と色差信号成分Ｃｂ，ＣｒのＳＡＤ値を加算した結果を、ラインメモリに格納し（ステップＳ１１３）、最小となるＳＡＤ値を更新させる（ステップＳ１１４）。なお、色差信号成分Ｃｂ，ＣｒのＳＡＤ値はシフト２回につき１回しか算出されない。これはもともと輝度信号と色差信号とが水平２画素、垂直１画素のマッチングしかできないためである。そこで、求まらない場合は一つ前（つまり左）のＳＡＤ値を使用する。
そして、横方向のループが必要か否か判断し（ステップＳ１１５）、ループが必要な場合に、図１２（Ａ）に示した横方向のループによるシフト処理を行った後、ステップＳ１１２のマッチング処理に戻る。
なお、色差信号成分Ｃｂ，ＣｒのＳＡＤ値は、例えば左右の色差信号成分Ｃｂ，ＣｒのＳＡＤ値から補間して生成させてもよい。
【０１４８】
そして、ステップＳ１１５で横方向のループが必要でない場合には、ライン方向のループが必要か否か判断し（ステップＳ１１６）、ライン方向のループが必要な場合、各ラインのデータを上方向にシフトさせ、ステップＳ１１１に戻る。
ステップＳ１１６でライン方向のループも終了したと判断した場合、算出された最小となるＳＡＤ値から、縮小面動きベクトルを算出し、コントロール部１６５に出力する（ステップＳ１１７）、この縮小面のブロックマッチングを終了する。
【０１４９】
また色差信号成分Ｃｂ，ＣｒのＳＡＤ値を左右から補間せずに、1つ前の色差信号成分Ｃｂ，ＣｒのＳＡＤ値を使用する場合は、常にサーチの方向に相関値のコピーがなされることになる。そこで、以下に説明するような１ラインの誤差を分散させることができる、ジグザグサーチ方式を取ったほうが良い。
図２２は、図１５（Ｄ）に示したジグザグサーチ時における、縮小面ブロックマッチング処理を示したものである。
図２１に従って説明すると、まず処理ラインが偶数ラインか奇数ラインか判断する（ステップＳ１２１）。ここで、奇数ラインである場合には、右から左にマッチング処理を行い（ステップＳ１２２）、その結果得られた輝度信号成分ＹのＳＡＤ値と色差信号成分Ｃｂ，ＣｒのＳＡＤ値を加算した結果をラインメモリに格納する（ステップＳ１２４）。なお、色差信号成分Ｃｂ，ＣｒのＳＡＤ値はシフト２回につき1回しか算出されないので、求まらない場合は、ステップＳ１２３において、一つ前（つまり右）のＳＡＤ値を取得して、ステップＳ１２４の処理を行う。そして、最小となるＳＡＤ値を更新させ（ステップＳ１２５）、データの水平方向（横方向）のループを行うか否か判断し（ステップＳ１２６）、横方向のループを行う場合には、該当するデータのシフトを行った後、ステップＳ１２３のマッチング処理に戻る。ステップＳ１２６で横方向のシフトが全て行われたと判断した場合には、ステップＳ１３２に移る。
【０１５０】
また、ステップＳ１２１で、処理ラインが偶数ラインであると判断した場合には、左から右にマッチング処理を行い（ステップＳ１２８）、その結果得られた輝度信号成分ＹのＳＡＤ値と色差信号成分Ｃｂ，ＣｒのＳＡＤ値を加算した結果をラインメモリに格納する（ステップＳ１２９）。なお、色差信号成分Ｃｂ，ＣｒのＳＡＤ値はシフト２回につき1回しか算出されないので、求まらない場合は、ステップＳ１２８において、一つ前（つまり右）のＳＡＤ値を取得して、ステップＳ１２９の処理を行う。そして、最小となるＳＡＤ値を更新させ（ステップＳ１３０）、データの水平方向（横方向）のループを行うか否か判断し（ステップＳ１３１）、横方向のループを行う場合には、該当するデータのシフトを行った後、ステップＳ１２８のマッチング処理に戻る。ステップＳ１３１で横方向のシフトが全て行われたと判断した場合には、ステップＳ１３２に移る。
【０１５１】
ステップＳ１３２では、ライン方向のループが行われるか否か判断し、ライン方向のループが必要な場合、該当するライン方向のデータのシフトを行い、ステップＳ１２１の判断に戻る。
【０１５２】
そして、ステップＳ１３２でライン方向のループが必要ない場合には、ここまでの最小となるＳＡＤ値から、縮小面動きベクトルを算出し、コントロール部１６３４（図４７）へ出力させる（ステップＳ１３３）。
なお、図２３などに図示した画素配列では、１ライン目を０ラインとしてあるので、一番上のラインが偶数ラインとなる。
この図２１又は図２２のフローチャートの処理が行われることで、縮小面でのＳＡＤ値が算出されて、縮小面での動きベクトルが算出される。ここで算出されるＳＡＤ値は、既に説明したように、輝度信号のＳＡＤ値と色差信号のＳＡＤ値を重み付け加算したＳＡＤ値である。
【０１５３】
［５．輝度信号と色差信号との関係の説明］
図２３は、４２２フォーマットのデジタル画像データの、輝度信号成分Ｙと色差信号成分Ｃｂ，Ｃｒとの対応の例を示した図である。図２３の上段は、輝度信号Ｙを半分に間引いて、千鳥状に配置する例を示す。この例では、Ｙ＝１のラインの画素と、Ｙ＝０のラインの画素とを、それぞれ１画素ごと配置した千鳥状配置とした例を示している。
図２３の下段は、色差信号成分Ｃｂ，Ｃｒを千鳥状に配置する例を示す。この例では、色差信号成分Ｃｂのラインの画素と、色差信号成分Ｃｒのラインの画素とを、それぞれ１画素ごと配置した千鳥状配置として、それぞれの色差信号成分ごとに分解して示した例である。
【０１５４】
図２４〜図２７は、各水平ラインの画素位置での輝度信号と色差信号との関係を示したものである。
図２４に示すように、供給される４２２フォーマットのデジタル画像データでは、輝度信号Ｙについては、各ラインで１画素ごとに存在している。一方、色差信号については、色差信号成分Ｃｂと、色差信号成分Ｃｒのそれぞれで、図２４に示すように、輝度信号Ｙの２画素に１つずつの信号配列となっている。
この図２４に示す配列の信号は、例えば図２５に示すように、色差信号成分Ｃｒを右に１画素シフトさせて、色差信号成分Ｃｂと色差信号成分Ｃｒとが、１画素ごとに水平方向に交互に配置されるようにする。
ところで、このように説明すると、色差信号成分Ｃｒの画素について、１画素となりにコピーしているように感じるかもしれないが、実際はそうではない。図２３（Ｃ）に示したように、マッチングに使われる画素が異なるだけで、マッチング結果の位相には影響は無い。図２３（Ｃ）では、斜線を付与して示した画素が、マッチングに使われる画素である。
【０１５５】
以上説明したように、ブロック単位での動きベクトルを検出する場合に、輝度信号によるＳＡＤ値と色差信号によるＳＡＤ値を算出して、それぞれのＳＡＤ値を重み付け加算して、ＳＡＤ値を得るようにしたことで、適切な動きベクトル検出が可能なる。即ち、例えば低照度で撮像した画像のように、輝度変化が比較的少ない画像の場合でも、色成分に変化がある場合には、良好に動きベクトルを検出できるようになる。
従って、動き補償された画像信号を重ね合わせる処理を行う画像処理を行う場合に、正しい画像信号の重ね合わせが行え、重ね合わせによるノイズ低減を、画質劣化なく効果的に行える。
【０１５６】
また、本実施の形態の例の場合、画像データは４２２フォーマットのデジタル画像データであり、色差信号成分Ｃｂと色差信号成分Ｃｒは、水平２画素に１回しか存在しない。ここで、各色差信号を補間により拡大するのではなく、色差信号のＳＡＤ結果をコピー又は補間してあり、回路規模を大きくすることなく、色差信号成分を考慮した適切な動きベクトル検出が可能なる。また、マッチング処理時に、上述したジグザグサーチ処理を行うことで、色差信号の誤差が蓄積するのを効果的に防止できる。
【０１５７】
なお、上述の実施の形態は、この発明による画像処理装置を撮像装置に適用した場合であるが、この発明は、撮像装置に限られるわけではなく、種々の画像処理装置に適用可能である。
【０１５８】
また、上述の実施の形態は、ブロックマッチング手法を用いて、画像の重ね合わせによるノイズ低減処理をする場合に、この発明を適用した場合であるが、これに限られるものではない。入力した画像データに対して動きベクトルを検出して、各種画像処理を行う画像処理装置の全てに適用可能である。
【０１５９】
また、上述した実施の形態では、輝度信号と色差信号とで、マッチング処理時に、それぞれ個別にＳＡＤ値を求めて、その求めたＳＡＤ値を重み付け加算して、最終的なＳＡＤ値を得るようにしたが、別の処理を行うようにしてもよい。例えば、輝度信号のＳＡＤ値から動きベクトルを検出すると共に、色差信号のＳＡＤ値から動きベクトルを検出し、それぞれの動きベクトルを比較して、正しい動きベクトルを判断するようにしてもよい。
【符号の説明】
【０１６０】
１６…動き検出・動き補償部、１７…画像重ね合わせ部、３１…動き検出・動き補償部、１６ａ…内部メモリ（バッファ）、３７…解像度変換部、４０…画像メモリ（大容量メモリ）、４１…１Ｖ前フレーム記憶部、４２…２Ｖ前フレーム記憶部、１００…ターゲット画像（ターゲットフレーム）、１０１…参照画像（参照フレーム）、１０２…ターゲットブロック、１０４…動きベクトル１０６…サーチ範囲、１０７…参照ベクトル、１０８…参照ブロック、１６１…ターゲットブロックバッファ部、１６２…参照ブロックバッファ部、１６３…マッチング処理部、１６４…動きベクトル算出部、１６５…コントロール部、１７１…加算率計算部、１７２…加算部、１６３１…セレクタ部、１６３２…差分絶対値計算部、１６３３…輝度加算部、１６３４…色差加算部、１６３５…ブロック間引き部、１６３６…重み付け加算部、１６３７…コントロール部
【図１】
2012142866.tif 000003
【図２】
2012142866.tif 000004
【図３】
2012142866.tif 000005
【図４】
2012142866.tif 000006
【図５】
2012142866.tif 000007
【図６】
2012142866.tif 000008
【図７】
2012142866.tif 000009
【図８】
2012142866.tif 000010
【図９】
2012142866.tif 000011
【図１０】
2012142866.tif 000012
【図１１】
2012142866.tif 000013
【図１２】
2012142866.tif 000014
【図１３】
2012142866.tif 000015
【図１４】
2012142866.tif 000016
【図１５】
2012142866.tif 000017
【図１６】
2012142866.tif 000018
【図１７】
2012142866.tif 000019
【図１８】
2012142866.tif 000020
【図１９】
2012142866.tif 000021
【図２０】
2012142866.tif 000022
【図２１】
2012142866.tif 000023
【図２２】
2012142866.tif 000024
【図２３】
2012142866.tif 000025
【図２４】
2012142866.tif 000026
【図２５】
2012142866.tif 000027
【図２６】
2012142866.tif 000028
【図２７】
2012142866.tif 000029