(57)【要約】【課題】画像メモリに対してシステムバスを介して画像データ処理部からメモリアクセスする際の画像データフォーマットとして、状況に応じた適切なフォーマットを選択使用可能とする。【解決手段】画像メモリ部への書き込み、読み出し時の画像データのフォーマットとして複数のフォーマットを備え、当該複数のフォーマットのうちから選択したフォーマットを用いて、前記画像メモリ部に対する画像データの書き込み、読み出しを実行するメモリコントローラを設ける。バスに対して、画像メモリ部がメモリコントローラを介して接続されると共に、画像処理部が接続され、画像メモリに書き込まれる画像データおよび画像メモリから読み出された画像データがバスを通じて伝送される。制御手段は、メモリコントローラに対して、画像データのフォーマットを選択するように制御指示する。【選択図】図６１
2009140046.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は、１枚目は、メモリコントローラ８による読み出し制御にしたがってシャッターボタン押下後の最初の撮像フレームの画像が画像メモリ部４から読み出されて、ターゲットフレーム１０２として、ターゲットブロックバッファ部１６１に書き込まれる。参照画像とのブロックマッチングに基づき画像の重ね合わせがなされると、画像メモリ部４に当該画像の重ね合わせ後のＮＲ画像が書き込まれ、ターゲットブロックバッファ部１６１のターゲットフレーム１０２が、当該ＮＲ画像に書き換えられてゆく。
【０１０４】
参照ブロックバッファ部１６２には、画像メモリ部４に記憶されている縮小面参照画像Ｐ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から、設定された基底面ターゲットブロックを短冊アクセス形式で読み出してターゲットブロックバッファ１６１に格納すると共に、設定された基底面サーチ範囲に対応する基底面マッチング処理範囲を画像メモリ部４の基底面参照画像Ｐbrから短冊アクセス形式で読み出し、参照ブロックバッファ部１６２に格納する。
【０３２３】
そして、それぞれのバッファ部１６１および１６２から、基底面ターゲットブロックおよび基底面参照ブロックの画素データを読み出して、マッチング処理部１６３で、基底面ブロックマッチング処理を行い、動きベクトル算出部１６４で、設定された基底面ターゲットブロックについてのサブピクセル精度の基底面動きベクトルの検出を行う。
【０３２４】
そして、動き検出・動き補償部１６は、検出された基底面動きベクトルに基づいて、動き補償ブロックを参照ブロックバッファ部１６２の基底面参照画像から読み出し、基底面ターゲットブロックと共に、画像重ね合わせ部１７に供給する。画像重ね合わせ部１７では、ブロック単位の画像の重ね合わせを行い、その結果のブロック単位の基底面ＮＲ画像Ｐbnrを、短冊アクセス形式で画像メモリ部４に貼る。また、画像重ね合わせ部１７は、その縮小面生成部１７４で生成した縮小面ＮＲ画像Ｐrnrも、画像メモリ部４に貼る。
【０３２５】
以上の動作を、ターゲット画像の全てのターゲットブロックについて繰り返し行い、全てのターゲットブロックについてのブロックマッチングが終了したら、３枚目の画像を参照画像とすると共に、基底面ＮＲ画像Ｐbnrおよび縮小面ＮＲ画像Ｐrnrを、ターゲット画像として（図１８のステップＳ１４）、上述と同様のブロックマッチング処理を繰り返し行う（図１７のステップＳ４〜図１８のステップＳ１４）。そして、取り込んだ全ての画像についての処理が終了すると、最終的に得られる基底面ＮＲ画像Ｐbnrを、静止画コーデック部１８で圧縮符号化して、記録再生装置部５の記録媒体に記録するようにする。
【０３２６】
上述したように、この実施形態では、ターゲット画像と参照画像を重ね合わせたＮＲ画像は、次の重ね合わせを行うときのターゲット画像になる。また、基底面ターゲットブロックは、ブロックマッチング処理が終わった後は、必要のないデータになる。
【０３２７】
以上の特徴から、この実施形態において、画像重ね合わせ部１７では、基底面ターゲットブロックと動き補償ブロックを重ね合わせたＮＲ済みのブロックを、もとの基底面ターゲットブロックのあったアドレスに上書きしている。
【０３２８】
例えば、図４１（Ａ），（Ｂ）に示すように、今、短冊Ｔ５のブロックＢ４をターゲットブロックとしたブロックマッチング処理をしているときは、短冊Ｔ０から短冊Ｔ４、および、ブロックＢ０からブロックＢ３は、全て、ＮＲ済みのブロックということになる。
【０３２９】
以上のようにして、画像補正・解像度変換部１５で短冊アクセス形式のメモリアクセスを行い、静止画についての圧縮符号化の処理も短冊アクセス形式でアクセスすることで、画像補正・解像度変換部１５から静止画コーデック部１８に、画像メモリ部４を介さず、直接、画像データを転送することができ、高速連写画像を効率よく圧縮符号化して、画像メモリ部４に格納することができる。
【０３３０】
＜画像メモリ容量の削減＞
次に、静止画撮影モード時における参照画像の伸長復号化時の、画像メモリ容量の削減について説明する。
【０３３１】
この実施形態における静止画撮影モード時の静止画ＮＲ処理時においては、画像メモリ部４に圧縮符号化して取り込んだ画像について、ターゲット画像は全て伸長復号化するが、図４２の画像データフローに示すように、参照画像については、マッチング処理に使用する短冊単位の画像データだけを伸長復号化することで、画像メモリ容量を削減している。すなわち、画像メモリ部４における伸長復号化された参照画像（基底面および縮小面）を格納する画像メモリの容量を、短冊単位に画像データを伸長復号化することにより、削減している。
【０３３２】
このことについて、例を挙げて説明する。例えば、基底面ターゲット画像は、図４３（Ａ）に示すように、水平方向が６４画素の短冊Ｔ０から短冊Ｔ９にまで分割されており、基底面参照画像は、図４３（Ｂ）に示すように、同様に水平方向が６４画素の短冊Ｒ０から短冊Ｒ９にまで分割されているとする。
【０３３３】
今、短冊Ｔ４の中のターゲットブロックについてブロックマッチングを行っているとすると、基底面参照画像の短冊Ｒ０〜Ｒ９のうち、マッチング処理範囲としてアクセスする可能性のある短冊は、短冊Ｒ４を中心として、いくつかに限定することができる。
【０３３４】
例えば、縮小倍率が１／４の場合を例にとると、縮小化して水平方向に４４画素のマッチング処理範囲（図３３（Ｂ）参照）を取るためには、基底面参照画像において、水平方向に１７６画素の画像データが必要である。したがって、図４３（Ｃ）から分かるように、基底面参照画像は、図４３（Ｂ）において塗りを付して示すように、短冊Ｒ４を中心に左右に、左右それぞれ２つずつの短冊Ｒ１，Ｒ２および短冊Ｒ３，Ｒ４が必要であり、この短冊Ｒ２〜Ｒ６の５つ分だけを伸長復号化すれば良いことになる。
【０３３５】
次に、短冊Ｔ４に含まれるターゲットブロックのマッチング処理が全て終わり、図４４（Ａ）に示すように、短冊Ｔ５に含まれるターゲットブロックのマッチング処理に入った場合について考える。このとき、マッチング処理範囲を取るためには、図４４（Ｂ）に示すように、短冊Ｒ５を中心に左右に２つずつの短冊Ｒ３〜Ｒ７が必要である。すなわち、短冊Ｒ３〜Ｒ６は、短冊Ｔ４に含まれるターゲットブロックのマッチング処理時に画像メモリ部４に既に格納されているので、新たに短冊Ｒ７だけを伸長復号化すれば良いことになる。また、同時に、短冊Ｒ２は不要になる。
【０３３６】
そこで、この実施形態では、短冊Ｒ７を伸長復号化したとき、画像メモリ部４の参照画像用メモリ上で、短冊Ｒ２があったアドレスに、伸長復号化した短冊Ｒ７を上書きするようにする。これにより、画像メモリ部４の参照画像用メモリ上で、伸長復号化されている参照画像データは、常に短冊５つ分だけになり、画像メモリ部４の参照画像用メモリ、つまり、画像メモリ部４のワーク領域を効果的に節約することが可能である。
【０３３７】
上記方法で参照画像データの復号化を行った場合、図４５（Ａ）および（Ｂ）に示すように、画像メモリ部４の参照画像用メモリ上のアドレスの並びが変わることになる。すなわち、短冊Ｔ４内のターゲットブロックに対するものとして、参照画像用メモリの参照画像が、図４５（Ａ）に示すように、短冊Ｒ４が中心だったときは、画像データは、短冊Ｒ２から順番に画像メモリ部の参照画像用メモリに格納されているため、短冊Ｒ４の基準座標Ｓｃ４から左方向の画素を参照する場合は、基準座標Ｓｃ４のアドレスから所望の値を引き算し、基準座標Ｓｃ４から右方向の画素を参照する場合は、基準座標Ｓｃ４のアドレスに所望の値を足し算することになる。
【０３３８】
一方、短冊Ｔ５内のターゲットブロックに対するものとして、参照画像用メモリの参照画像が、図４５（Ｂ）に示すように、短冊Ｒ５が中心のときは、右方向に１２８画素以内の画素を参照する場合は、短冊Ｒ５の基準座標Ｓｃ５のアドレスに所望の値を足し算し、右方向に１２９画素以上の画素を参照する場合は、基準座標Ｓｃ５のアドレスに所望の値を足し算した後で、合計短冊幅分のアドレス値を引き算する必要がある。
【０３３９】
なお、短冊Ｒ０〜Ｒ９のそれぞれの基準座標Ｓｃ０〜Ｓｃ９は、参照画像用メモリをアクセスする際のメモリアドレスポインターの例である。メモリアドレスポインターは、図４５の例のようなアドレス位置に限られるものではない。
【０３４０】
以上のように、静止画についての圧縮符号化の単位も短冊形式にすることで、ブロックマッチング処理に必要な範囲だけ復号化することができ、画像メモリ部４のワーク領域を節約することができる。さらに、画像メモリ上の不要な参照画像の短冊のアドレスに、次に使用する参照画像の短冊を復号化して上書きすることで、ワーク領域上の復号化された参照画像のサイズを、常に一定にすることができる。
【０３４１】
なお、図４３および図４４を用いて説明した例は、参照画像において設定されるマッチング処理範囲の水平方向のサイズＳＡが、圧縮単位である短冊の水平方向のサイズＳＢ以上（ＳＡ＞ＳＢ）である場合である。
【０３４２】
そして、マッチング処理範囲の水平方向のサイズが、短冊の水平方向のサイズの整数倍で、かつ、マッチング処理範囲と短冊の区切り位置とが一致していれば、無駄なデータアクセスがなくなり、効率はさらに上がる。
【０３４３】
もしも、参照画像において設定されるマッチング処理範囲の水平方向のサイズが、圧縮単位である短冊の水平方向のサイズよりも小さい場合には、マッチング処理範囲が、１つの短冊に含まれる大きさであって、１つの短冊に含まれていれば、復号化するのは当該１つの短冊でよく、また、マッチング処理範囲が２つの短冊に跨る場合には、その２つの短冊を復号化すればよい。
【０３４４】
その場合でも、ターゲットブロックの位置が変化して、マッチング処理範囲の位置が変わったときであって、マッチング処理範囲が２つの短冊に跨る場合になったときには、新たにマッチング処理範囲が跨ることになった短冊のみを復号化すればよいのは、上述の例と同様である。
【０３４５】
［動画ＮＲ処理時における効率的なメモリアクセス］
前述したように、静止画ＮＲ処理は多少処理時間がかかっても、ノイズの取れた綺麗な画像が求められるのに対して、動画ＮＲ処理では、精度よりもリアルタイム性、すなわちスピードが要求される。
【０３４６】
動画ＮＲ処理動作の流れは、前述した図１９に示した通りであるが、この動画ＮＲ処理時における画像データの流れは、図４６および図４７に示す通りとなる。この図４６および図４７を参照しながら、動画ＮＲ処理時における画像データの流れを説明する。
【０３４７】
動画ＮＲ処理時においても、ターゲットブロックは短冊アクセス形式で処理される。すなわち、動画ＮＲ処理の場合、データ変換部１４からのＹＣ画像データは、画像補正・解像度変換部１５で水平方向の補正がなされた後、画像メモリ部４に、ターゲットフレームの画像データとして、短冊アクセス形式で書き込まれる。そして、画像補正・解像度変換部１５は、水平方向の補正画像を画像メモリ部４から短冊アクセス形式で読み出し、垂直方向の補正処理をした後、短冊アクセス形式で、動き検出・動き補償部１６へ、リアルタイムにターゲットブロックを送る（図１９のステップＳ２１）。
【０３４８】
動き検出・動き補償部１６は、画像補正・解像度変換部１５から送られてきたターゲットブロックをターゲットブロックバッファ部１６１に格納すると共に、図４７に示すように、このターゲットブロックに応じて、ブロックマッチング処理範囲を画像メモリ部４に格納されている参照画像（最初は重ね合わせ無しの画像であるが、２枚目以降は、ＮＲ画像）から読み出して、参照ブロックバッファ部１６２に格納する（図１９のステップＳ２３）。
【０３４９】
このとき、参照画像を画像メモリ部４から読み出す際の画像データのフォーマットは、メモリコントローラ８がＣＰＵ１により制御されることにより、短冊アクセス形式ではなく、動画のリアルタイム処理に対応することができるように、バス帯域を削減できて、高速処理が可能な後述するようなブロックアクセス形式とされる。
【０３５０】
そして、動き検出・動き補償部１６は、ターゲットブロックバッファ部１６１からのターゲットブロックと、当該ブロックマッチング処理範囲から参照ブロックとを読み出して、前述した階層化ブロックマッチング処理をして、動きベクトル検出および動き補償ブロックの生成を行い、動き補償ブロックおよびターゲットブロックは、画像重ね合わせ部１７に供給する（図１９のステップＳ２４〜ステップＳ２６）。
【０３５１】
画像重ね合わせ部１７は、受け取ったターゲットブロックと動き補償ブロックとを重ね合わせてゆく（図１９のステップＳ２７）。そして、画像重ね合わせ部１７は、図４６に示すように、画像重ね合わせをしたＮＲ済みの画像を画像メモリ部４に貼る（図１９のステップＳ２８）。このときの画像データのフォーマットについては、後で詳述する。
【０３５２】
図４７に示すように、画像メモリ部４に貼られたＮＲ画像は、次のフレーム（１フレーム前のＮＲ画像となっている）で、動画コーデック部１９に読み込まれ、圧縮された後、記録再生装置部５の記録媒体に保存されると共に、前記次のフレームでの参照画像として用いられる。また、画像メモリ部４に貼られたＮＲ画像（１フレーム前のＮＲ画像）は、同時に、ＮＴＳＣエンコーダ２０からも読み込まれ、モニターディスプレイ６に対するモニター出力も行われる。
【０３５３】
動画ＮＲ処理時においては、以上の処理が、撮影画像毎に繰り返される。
【０３５４】
なお、ここでは、参照画像は１フレーム分としたが、図４７に示すように、参照画像を複数フレーム保持しておき、より相関性の高い画像を使用しても良い。
【０３５５】
また、動画ＮＲ処理では、リアルタイム性が重視されるため、静止画ＮＲ処理のように、縮小面ターゲット画像を作って画像メモリ部４に格納することはせずに、図１４に示したターゲットブロックバッファ部１６１内の縮小化処理部１６１３で、縮小面ターゲットブロックを生成して、そのまま縮小面バッファ１６１２に格納している。
【０３５６】
＜動画ＮＲ処理時のメモリアクセス時のデータフォーマット＞
静止画ＮＲ処理時においては、前述したように、画像メモリ部４に対するメモリアクセス時のデータフォーマットは、すべて、６４×１フォーマットを垂直方向に連続して行う短冊アクセス形式を採用している。
【０３５７】
しかしながら、短冊アクセス形式は、短冊の水平方向の幅（水平方向の画素数）より少ない水平方向の画素数のブロックを読み出すときは、バースト長が１６バースト未満になり、この実施形態の撮像装置で最も効率の良いデータ転送（１６バースト）を使うことができなくなり、効率が悪化する。
【０３５８】
また、短冊の水平方向の幅より大きい水平方向の画素数のブロックを読み出すときは、水平方向に隣り合う２個の短冊の境界の左右で、二つの転送に分けなくてはならず、さらに、２個の短冊の境界の左右で大きく離れたアドレスになってしまうので、かえってアドレス処理が複雑になるという問題がある。
【０３５９】
さらに、階層化マッチング処理における基底面マッチング処理範囲は、縮小面マッチングで検出された縮小面動きベクトルに基づいて定まるものであって、固定の領域ではないため、複数個の短冊に跨った範囲となることがある。
【０３６０】
このため、基底面マッチング処理範囲を画像メモリ部４に記憶されている参照画像（ＮＲ画像）から読み出すときに、上述と同様に、当該基底面マッチング処理範囲が跨る隣り合う２個の短冊の境界の左右で、二つの転送に分けなくてはならず、さらに、２個の短冊の境界の左右で大きく離れたアドレスになってしまうので、かえってアドレス処理が複雑になるという問題がある。
【０３６１】
そして、二つに分けた短冊のそれぞれに含まれる画素ブロックの大きさが、短冊の水平方向の幅よりも少なくなり、アクセス効率が悪くなり、処理速度が低下する。したがって、動画撮影モード（動画ＮＲモード）時のように、リアルタイムの高速処理が要求される用途においては、画像メモリ部４に対するメモリアクセスに関して短冊アクセス形式を用いるのは不向きであるという問題がある。
【０３６２】
以上のような問題に対して、この実施形態では、動画ＮＲ処理時の画像メモリ部４に対する参照画像アクセス用のために、複数ライン×複数画素からなる矩形領域のブロック単位の画素データのメモリアクセス方式（ブロックアクセス形式）を用意している。
【０３６３】
この実施形態では、動画ＮＲ処理時の参照画像アクセス用の１つとして、上述したバースト転送可能な画素数である６４画素を考慮して、図４８（Ａ）に示すように、画像（画面）を最大バースト転送（６４画素）単位である、横×縦＝８画素×８ラインのブロックに分割して、画像メモリ部４に書き込み／読み出しするブロックアクセス形式を用いるようにしている。この８ライン×８画素からなるブロック単位のブロックアクセス形式を、以下、８×８フォーマットと称することとする。
【０３６４】
この８×８フォーマットは、図４８（Ｂ）に示すように、水平方向の４画素を１バースト転送の単位とし、水平方向の８画素を２回のバースト転送（２バースト）で転送し、当該水平方向の８画素のバースト転送が終了すると、次のラインの８画素を、同様にして、２バーストで、転送する。そして、最大バースト長である１６バーストで、６４画素が１回で転送される。
【０３６５】
この８×８フォーマットのブロックアクセス形式の先頭アドレスをＡＤ１を初期アドレスとすると、図４８（Ｂ）に示すように、４画素単位のアドレスＡＤ２〜ＡＤ１６が自動的に定まり、連続した１６バーストで、８×８フォーマットのメモリアクセスができる。メモリコントローラ８は、この８×８フォーマットのメモリアクセスのためのアドレス生成部を備えている。
【０３６６】
画像メモリ部４のフレームメモリ上で、８×８フォーマットの先頭アドレスＡＤ１が指定されると、メモリコントローラ８は、前記アドレス生成部を用いて、８×８フォーマットのメモリアクセスのためのアドレスＡＤ１〜ＡＤ１６を計算し、８×８フォーマットのメモリアクセスを実行する。
【０３６７】
８×８フォーマットは、図４８（Ｂ）に示すように、基本的には、６４画素（１６バースト）単位でのアクセスとなり、この実施形態の撮像装置としては、最も効率がよい。しかし、後述するように、１６バーストは、最長バースト長であり、それよりも少ないバースト長とすることもできる。その場合には、実質的には、８×８フォーマットとはならないが、例えば、８画素×４ラインの場合には、半分の８バーストで画像データの転送ができる。
【０３６８】
なお、水平方向および垂直方向の画像データが８画素で割り切れない場合は、図４８で、影線を付して示すように、水平方向の右端と垂直方向の下端に、ダミー領域１５２を設けて、このダミー領域１５２に、例えば黒や白の画素データをダミーデータとして付加し、水平方向および垂直方向の画サイズが、８の倍数になるようにしている。
【０３６９】
８×８フォーマットのメモリアクセスにより、メモリアクセスが８×８画素でアクセスできるということは、縮小面マッチング処理範囲および基底面マッチング処理範囲は、画像メモリ部４から、すべて、８×８の画素ブロック単位で読み込むことができる。したがって、この実施形態の撮像装置で、最も効率の良いデータ転送（１６バースト）のみでバスアクセスすることが可能になり、バス効率は最大になる。
【０３７０】
なお、この８×８フォーマットは、１６×１６画素、１６×８画素、など、８×８画素の倍数にすれば、それらの複数画素単位でのアクセスにも適用できる。
【０３７１】
また、バスの最も効率の良いデータ転送単位（最大バースト長の単位）は、上述の例では６４画素であるが、最も効率の良いデータ転送単位は、１バーストで転送可能な画素数ｐと、最大バースト長（最大連続バースト回数）ｑとにより決まるｐ×ｑ画素となる。そして、その画素数（ｐ×ｑ）により、画像メモリ部４に書き込むブロックアクセス形式のフォーマットを決定すればよい。そして、縮小面マッチング処理範囲、基底面マッチング処理範囲が、そのブロックフォーマットの水平方向および垂直方向の倍数に近いサイズになる場合が、最もバス転送効率が良い。
【０３７２】
図３３に示した縮小面マッチング処理範囲および縮小倍率が１／２のときの基底面マッチング処理範囲を例に、６４×１フォーマットの短冊アクセス形式の場合と比較を行う。
【０３７３】
縮小面マッチング処理範囲１４３は、図３３（Ｂ）に示すように、この例では、４４画素×２４ラインとされる。この縮小面マッチング処理範囲１４３を、６４×１フォーマットでアクセスした場合、図４９の上側に示すように、４画素×１１バーストを、垂直方向に２４回繰り返す転送のアクセスが必要になる。
【０３７４】
これに対して、同じ縮小面マッチング処理範囲１４３を、８×８フォーマットでアクセスする場合は、図５０に示すように、縮小面参照ベクトル（０，０）の縮小面参照ブロックを中心に、４４画素×２４ラインの縮小面マッチング処理範囲１４３が決定される。縮小面参照ベクトル（０，０）の縮小面参照ブロックとは、縮小面ターゲットブロックと同じ座標の縮小面参照ブロックということである。この場合、図３３（Ａ）に示したように、縮小面ターゲットブロックは、必ず、８画素単位、８ライン単位ずつしか設定されない。
【０３７５】
縮小面マッチング処理範囲１４３の垂直方向は、２４ラインであるので、図５０に示すように、垂直方向のサーチ範囲を、８×８のブロックサイズの倍数にすれば、垂直方向は８×８フォーマットで無駄なくアクセスすることができる。一方、縮小面マッチング処理範囲１４３の水平方向は４４画素であるので、８の倍数とはならず、このため、図５０に示した例では、水平方向を５６画素として、８×８フォーマットでは、水平方向の両側に６画素ずつ、黒または白などからなるダミーの画像データ１５３を挿入するようにする。
【０３７６】
この図５０から、ダミーの画像データ１５３が左右6画素分あるものの、６４×１フォーマットでは２４回転送が必要であるのに対して、８×８フォーマットであれば、２１回の転送で読み込むことができることが分かる。さらに、８×８フォーマットであれば、すべての転送が、この実施形態の撮像装置で最も効率の良いデータ転送（１６バースト）になっており、バス効率も向上している。
【０３７７】
また、縮小倍率が１／２の場合の基底面マッチング処理範囲１４４は、図３３（Ｃ）に示すように、２０画素×２０ラインとなるが、この基底面マッチング処理範囲１４４をアクセスする場合には、図４９の下側に示すように、６４×１フォーマットの場合、４画素×５バーストを、垂直方向に２０回繰り返す転送のアクセスが必要になる。
【０３７８】
これに対して、８×８フォーマットの場合は、基底面マッチング処理範囲１４４としては、基底面参照ベクトル（０，０）の基底面参照ブロック１４２を中心に、２０画素×２０ラインのマッチング処理範囲が決定される。基底面マッチング処理範囲１４４は、縮小面マッチングで算出された縮小面動きベクトルによって決まるため、１画素単位でいろいろな組み合わせが考えられる。
【０３７９】
例えば、最も効率の良いのは、２０画素×２０ラインの基底面マッチング処理範囲１４４が、８×８のブロックに対して、図５１に示すように９ブロック分に割り当てられる場合である。この場合、図５１に示すように、２０画素×２０ラインの基底面マッチング処理範囲１４４には、水平方向の端部および垂直方向の端部に８画素および８ラインに満たない領域が存在するので、そこにダミー画素データ１５３を挿入し、８×８フォーマットの４画素×１６バーストを、９回繰り返す転送のアクセスをすることで、当該２０画素×２０ラインの基底面マッチング処理範囲１４４の画像データのアクセスができる。
【０３８０】
しかし、図５２に示すように、２０画素×２０ラインの基底面マッチング処理範囲１４４の垂直方向の端部にはダミー画像データ１５３を挿入せずに、当該垂直方向の端部においては、バースト回数を転送すべきデータ（４ライン分）に合わせたものとして、４画素×８バーストを、３繰り返す転送のアクセスとすることもできる。この場合には、図５２に示す例においては、８×８フォーマットの４画素×１６バーストを６回繰り返す転送と、４画素×８バーストを３回繰り返す転送との、合計９回の転送で、２０画素×２０ラインの基底面マッチング処理範囲１４４の画像データのアクセスができる。
【０３８１】
逆に、最も効率の悪い例は、２０画素×２０ラインの基底面マッチング処理範囲１４４が、図５３に示すように、８×８のブロックの１６ブロック分に亘る場合である。この場合、図５３に示すように、２０画素×２０ラインの基底面マッチング処理範囲１４４には、水平方向の端部および垂直方向の端部に８画素および８ラインに満たない領域が存在するので、そこにダミー画素データ１５３を挿入し、８×８フォーマットの４画素×１６バーストを、１６回繰り返す転送のアクセスをすることで、当該２０画素×２０ラインの基底面マッチング処理範囲１４４の画像データのアクセスができる。
【０３８２】
しかし、図５４に示すように、２０画素×２０ラインの基底面マッチング処理範囲１４４の垂直方向の端部にはダミー画像データ１５３を挿入せずに、当該垂直方向の上下端部においては、バースト回数を転送すべきデータ（それぞれ２ライン分）に合わせたものとして、４画素×４バーストを、合計８繰り返す転送のアクセスとすることもできる。この場合には、図５４に示す例においては、８×８フォーマットの４画素×１６バーストを８回繰り返す転送と、４画素×４バーストを８回繰り返す転送との、合計１６回の転送で、基底面マッチング処理範囲１４４の画像データのアクセスができる。
【０３８３】
したがって、２０画素×２０ラインの基底面マッチング処理範囲１４４の画像データの画像メモリ部４に対するアクセスは、６４×１フォーマットでは２０回転送が必要であるのに対して、８×８フォーマットであれば、最短で９転送、最長で１６転送で良い。さらに、８×８フォーマットであれば、転送の半分以上が、この例の撮像装置システムで最も効率の良いデータ転送（１６バースト）になっており、バス効率も向上している。
【０３８４】
また、この実施形態では、更にバス帯域を改善することができる、動画ＮＲ処理時の参照画像アクセス用の他の１つ画像データのフォーマットとして、図５５（Ａ）に示すように、画像（画面）を最大バースト転送（６４画素）の１／４単位である４画素×４ラインのブロックに分割して、画像メモリ部に書き込み／読み出しするブロックアクセス形式を選択することもできるように構成されている。この４ライン×４画素からなるブロック単位のブロックアクセス形式を、以下、４×４フォーマットと称することとする。
【０３８５】
この４×４フォーマットは、図５５（Ｂ）に示すように、水平方向の４画素を１バースト転送の単位とし、水平方向の４画素を１回のバースト転送（１バースト）で転送し、当該水平方向の４画素のバースト転送が終了すると、次のラインの４画素を、同様にして、１バーストで転送し、４バーストで４×４フォーマットの画像データが転送できる。そして、４×４フォーマットの場合、図５５（Ｂ）に示すように、４画素×４ライン＝１６画素分からなるブロックを水平方向に４回（４ブロック分）連続でアクセスすることで、６４画素が１回で転送される。
【０３８６】
つまり、４×４フォーマットの画像データは、４バーストで転送可能であるので、最大バースト長である１６バーストで、４画素×４ラインのブロックの水平方向の４個を連続してアクセスすることができ、この４個の４画素×４ラインのブロック分の６４画素が１回で転送される。
【０３８７】
この４×４フォーマットによって６４画素（最大バースト長である１６バースト）を１回で転送する場合、図５５（Ｂ）に示すように、４画素×４ラインのブロックの先頭アドレスをＡＤ１を初期アドレスとすると、４画素単位のアドレスＡＤ２〜ＡＤ１６が、図示のように定まり、連続した１６バーストで、４×４フォーマットによる６４画素単位のメモリアクセスができる。
【０３８８】
４×４フォーマットは、図５５（Ｂ）に示すように、６４画素（１６バースト）単位でアクセスするときが、最も効率がよい。しかし、水平方向の４ブロック以下の単位でアクセスする必要がある場合もある。例えば水平方向の２ブロック（３２画素）単位でのアクセスでは、図５５（Ｂ）において、４画素単位のアドレスＡＤ１〜ＡＤ８が定められて、連続した８バーストで３２画素単位のアクセスができる。４画素×４ラインのブロックの１ブロック（１６画素）単位、３ブロック（２４画素）単位なども同様にしてアクセスができる。メモリコントローラ８は、この４×４フォーマットのメモリアクセスのためのアドレス生成部を備えている。
【０３８９】
画像メモリ部４のフレームメモリ上で、４×４フォーマットの先頭アドレスＡＤ１と、水平方向の４画素×４ラインのブロック数が指定されると、メモリコントローラ８は、前記アドレス生成部を用いて、４×４フォーマットのメモリアクセスのためのアドレスＡＤ２以降を計算し、４×４フォーマットによるメモリアクセスを実行することができる。
【０３９０】
なお、前述の８×８フォーマットの場合と同様に、画像データが４画素で割り切れない場合は、図５５（Ａ）に示すように、水平方向の右端および垂直方向の下端にダミー領域１５４を設けて、水平方向および垂直方向のサイズが、４の倍数になるようにしている。
【０３９１】
この４×４フォーマットであれば、前述した、基底面マッチング処理範囲（２０画素×２０ライン）１４４のバスアクセスは、８×８フォーマットよりもさらに改善する。
【０３９２】
４画素×４ラインのブロック単位に対して、最も効率の良いのは、縮小倍率が１／２の場合における２０画素×２０ライン（図３３参照）の基底面マッチング処理範囲１４４が、図５６に示すように、丁度、水平方向の５ブロック×垂直方向の５ブロック＝２５ブロック分に割り当てられる場合である。
【０３９３】
この２５ブロックをアクセスするには、水平方向の４ブロックの５ライン分と、水平方向の１ブロックの５ライン分とに分けることができ、図５５（Ｂ）の最大バースト長による４ブロック単位の４画素×１６バーストが５転送、１ブロック単位の４画素×４バーストが５転送、の合計１０転送でよい。
【０３９４】
逆に、最も効率の悪い例は、２０画素×２０ラインの基底面マッチング処理範囲１４４が、図５７に示すように、４画素×４ラインのブロックの水平方向の６ブロック×垂直方向の６ブロック＝３６ブロック分に亘る場合である。この場合、図５７に示すように、２０画素×２０ラインの基底面マッチング処理範囲１４４には、水平方向の左右端部および垂直方向の上下端部に４画素および４ラインに満たない領域が存在するので、そこにダミー画素データ１５４を挿入している。
【０３９５】
この３６ブロックを４×４フォーマットでアクセスするには、水平方向の４ブロックの６ライン分と、水平方向の２ブロックの６ライン分とに分けることができ、図５５（Ｂ）の最大バースト長による４ブロック単位の４画素×１６バーストが６転送、２ブロック単位の４画素×８バーストが６転送、の合計１２転送でよい。
【０３９６】
したがって、図５４に示した８×８フォーマットの場合の１６転送よりも、更に転送アクセス数が少なく、また、この実施形態の撮像装置で最も効率の良いデータ転送である１６バーストを使用する割合が増え、バス効率はさらに向上している。
【０３９７】
しかし、基底面マッチング処理範囲１４４が、縮小倍率１／４の場合の４０画素×４０ラインの場合には、例えば図５８の場合には、８×８フォーマットでは４画素×１６バーストが２５転送、４×４フォーマットでは４画素×１６バーストが２０転送、かつ、４画素×８バーストが１０転送の合計３０転送となり、８×８フォーマットの方がバス効率が向上している。
【０３９８】
また、縮小面マッチング処理範囲１４３の場合も、図５０に示したように、８×８フォーマットの場合には４画素×１６バーストが２１転送であったのに対して、図５９に示すように、４×４フォーマットの場合には４画素×１６バーストが１８転送で可能となり、４×４フォーマットの方がバス効率が向上している。
【０３９９】
つまり、縮小面および基底面マッチング処理範囲についての画像データの読み出しメモリアクセスは、対象となるマッチング処理範囲のサイズに応じて、８×８フォーマットの方がバス効率が良かったり、４×４フォーマットの方がバス効率が良かったりする。
【０４００】
そこで、この実施形態では、ＣＰＵ１は、マッチング処理範囲のサイズを認識して、そのサイズに応じて、８×８フォーマットと、４×４フォーマットとのいずれかを選択するように、メモリコントローラ８に選択指示を送るようにする。
【０４０１】
縮小面および基底面マッチング処理範囲の、縮小倍率に応じたサイズに応じて、予め、８×８フォーマットと４×４フォーマットとのいずれのフォーマットを使用するかを定めて、メモリコントローラ８の制御用ソフトウエアプログラムがＣＰＵ１に搭載されており、このプログラムにしたがって、ＣＰＵ１は、メモリコントローラ８に用意されている複数個の画像データのフォーマットのいずれを使用するかを、メモリコントローラ８に選択指示するようにする。
【０４０２】
上述したように、動画ＮＲ処理時には、動き検出・動き補償部１６が、マッチング処理範囲を画像メモリ部４から読み出す際には、６４×１フォーマットおよび短冊アクセス形式ではなく、ブロックフォーマット、この例では８×８フォーマットや４×４フォーマットによるブロックアクセス形式の方が、メモリアクセスとして適している。
【０４０３】
そこで、重ね合わせ結果の動画ＮＲ画像は、上述のようなブロックアクセス形式のブロックフォーマットで画像メモリ部４に書き込むと良い。
【０４０４】
しかしながら、画像メモリ部４に対してシステムバス２およびメモリコントローラ８を通じてアクセスするのは、動き検出・動き補償部１６や画像重ね合わせ部１７、動画コーデック部だけでなく、他の処理部も存在するが、上記のブロックフォーマットによるメモリアクセスが、それらの他の処理部の全てにも適しているとは限らない。
【０４０５】
例えば、この実施形態の撮像装置では、動画ＮＲ処理時には、ＮＲ処理した後の画像を、ＮＴＳＣエンコーダ２０で表示画像データに変換して、モニターディスプレイ６において画像モニター表示を行うようにしている。ＮＴＳＣエンコーダ２０では、基本的に、ラスタースキャン形式の画像データの処理を行うものであるので、８×８フォーマットや４×４フォーマットなどのブロックフォーマットによるブロックアクセス形式で画像メモリ部４から画像データをアクセスした場合には、転送効率が悪くなるという問題がある。
【０４０６】
そこで、この実施形態では、前述した図１９のステップＳ２８においては、画像重ね合わせ部１７からの動画ＮＲ処理結果のＮＲ画像は、図６０に示すように、８×８フォーマットや４×４フォーマットなどのブロックフォーマットで、画像メモリ部４のＮＲ画像についての第１のメモリ領域４１ＮＲに書き込まれると共に、６４×１フォーマットで、画像メモリ部４のＮＲ画像についての第２のメモリ領域４２ＮＲに書き込まれる。なお、図６０に示すように、第１のメモリ領域４１ＮＲには、ＮＲ画像は、縮小面画像が併せて書き込まれる。
【０４０７】
動き検出・動き補償部１６は、ターゲットブロックは、画像補正・解像度変換部１５から、短冊アクセス形式で取得しており、動き検出・動き補償部１６および画像重ね合わせ部１７は、短冊アクセス形式で、６４×１フォーマットの６４画素ずつ処理を行っている。このため、画像重ね合わせ部１７からの画像重ね合わせ結果のＮＲ画像を画像メモリ部４に６４×１フォーマットで書き込む際には、ラスタースキャン形式としてはアドレスが飛ばされる状態で、短冊アクセス形式で書き込みを行うようにすることで行われる。
【０４０８】
そして、この実施形態においては、画像メモリ部４のＮＲ画像についての第１のメモリ領域４１ＮＲに１フレーム前の時点でブロックフォーマットで書き込まれているＮＲ画像が参照画像とされ、メモリコントローラ８により、マッチング処理範囲が当該参照画像から、８×８フォーマットあるいは４×４フォーマットなどのブロックフォーマットで読み出されて、動き検出・動き補償部１６に転送される。
【０４０９】
また、この実施形態では、画像メモリ部４のＮＲ画像についての第２のメモリ領域４２ＮＲに１フレーム前の時点で６４×１フォーマットで書き込まれているＮＲ画像が、６４×１フォーマットで、かつ、ラスタースキャン形式で読み出されて、動画コーデック部１９に転送され、この例では、ＭＰＥＧ方式により動画圧縮エンコードされて、記録再生装置部５に記録される。また、第２のメモリ領域４２ＮＲに１フレーム前の時点で６４×１フォーマットで書き込まれているＮＲ画像は、６４×１フォーマットで、かつ、ラスタースキャン形式で読み出されて、ＮＴＳＣエンコーダ２０に供給されてＮＴＳＣ信号にされ、モニターディスプレイ６に供給されて、記録モニター画像として表示される。
【０４１０】
上述のように、この実施形態では、ＮＲ画像は、画像メモリ部４には、第１のメモリ領域４１ＮＲと、第２のメモリ領域４２ＮＲとの両方に、２重に書き込まれることとなるため、画像メモリ部４の容量、画像メモリ部４およびメモリコントローラ８の消費電力は大きくなるが、動き検出・動き補償部１６に対する画像メモリ部４からの画像データのバスアクセスの効率が良く、バス帯域を大きく削減できるというメリットがある。
【０４１１】
以上のように、この実施形態の撮像装置では、画像メモリ部４に、６４×１フォーマットで短冊アクセス形式で書き込むか、ブロックフォーマットによるブロックアクセス形式で書き込むか、のいずれかを選択することができる。消費電力を少なくする、またはメモリ容量の削減が必要なときは短冊アクセス方式を用いることを選択し、バス帯域を削減したい場合はブロックアクセス形式を用いることを選択するのが望ましい。
【０４１２】
そして、上述の実施形態の動画撮影モード時のように、バス帯域を削減してリアルタイム動画ＮＲ処理を実現するために、ブロックアクセス形式の８×８フォーマットまたは４×４フォーマットを採用する場合において、短冊アクセス形式を併用することで、記録モニター画像をディスプレイ６に良好に表示することができる。
【０４１３】
以上説明した各種状況に応じたＣＰＵ１による画像データのフォーマットの切り替え変更処理は、図６１および図６２の例のフローチャートに示すようなものとなる。
【０４１４】
先ず、この実施形態では、ＣＰＵ１は、撮影モードが静止画撮影モード（静止画ＮＲモード）か、動画撮影モード（動画ＮＲモード）かを判別し（ステップＳ１０１）、静止画撮影モードであると判別したときには、メモリコントローラ８に対して、画像メモリ部４についてのメモリアクセス時の画像データのフォーマットとして、短冊アクセス形式の６４×１フォーマットを用いるように選択指示する（ステップＳ１０２）。
【０４１５】
そして、静止画撮影モードが終了するのを待ち（ステップＳ１０３）、静止画撮影モードが終了したと判別したときには、この処理ルーチンを終了する。
【０４１６】
次に、ステップＳ１０１で、動画撮影モードであると判別したときには、ＣＰＵ１は、処理対象の画像データは、ターゲットフレーム（ターゲット画像）であるか、参照フレーム（参照画像）であるかを判別する（ステップＳ１０４）。この判別は、例えば、ＣＰＵ１が、動き検出・動き補償部１６のコントロール部１６５に問い合わせを行い、その問い合わせに対する回答をコントロール部１６５より取得して行う。
【０４１７】
処理対象の画像データがターゲットフレームであると判別したときには、ＣＰＵ１は、メモリコントローラ８に、画像メモリ部４についてのメモリアクセス時の画像データのフォーマットとして、短冊アクセス形式の６４×１フォーマットを用いるように選択指示する（ステップＳ１０５）。
【０４１８】
なお、この動画撮影モードにおいては、動き検出・動き補償部１６のコントロール部１６５は、ターゲットブロックバッファ部１６１に、画像補正・解像度変換部１５からの短冊アクセス形式の画像データを取得して、書き込むように指示制御する。一方、静止画撮影モードにおいては、ＣＰＵ１がメモリコントローラ８に、短冊アクセス形式のアクセスを選択指示する結果、メモリコントローラ８を通じて短冊アクセス形式の画像データが送られてくるので、コントロール部１６５は、ターゲットブロックバッファ部１６１に、メモリコントローラ８を通じて画像メモリ部４から送られてくる短冊アクセス形式の画像データを取得して、書き込むように指示制御する。
【０４１９】
ステップＳ１０５の次には、ステップＳ１０４に戻る。
【０４２０】
ステップＳ１０４で、処理対象の画像データが参照フレームであると判別したときには、ＣＰＵ１は、処理対象が階層化マッチングの縮小面であるか、基底面であるかを判別する（ステップＳ１０６）。この判別は、例えば、ＣＰＵ１が、動き検出・動き補償部１６のコントロール部１６５に問い合わせを行い、その問い合わせに対する回答をコントロール部１６５より取得して行う。
【０４２１】
ステップＳ１０６で、処理対象が階層化マッチングの縮小面であると判別したときには、ＣＰＵ１は、画像の縮小率に応じて予め設定されている縮小面マッチング処理範囲のサイズを判断し（ステップＳ１０７）、メモリコントローラ８に対して、ブロックアクセス形式の８×８フォーマットと４×４フォーマットとのうち、判断したサイズに応じて、よりバス帯域が削減できるものとして予め定められている方のブロックフォーマットを用いるように選択指示する（ステップＳ１０８）。そして、ＣＰＵ１は、縮小面マッチング処理が終了するのを待って、ステップＳ１０６に戻る。
【０４２２】
ステップＳ１０６で、処理対象が階層化マッチングの基底面であると判別したときには、ＣＰＵ１は、画像の縮小率に応じて予め設定されている基底面マッチング処理範囲のサイズを判断し（ステップＳ１１０）、メモリコントローラ８に対して、ブロックアクセス形式の８×８フォーマットと４×４フォーマットとのうち、判断したサイズに応じて、よりバス帯域が削減できるものとして予め定められている方のブロックフォーマットを用いるように選択指示する（ステップＳ１１１）。
【０４２３】
そして、ＣＰＵ１は、基底面マッチング処理が終了、つまり、ブロックマッチング処理の終了を待って、次のステップＳ１２１（図６２）に進む。ステップＳ１２１では、画像重ね合わせ部１７で画像重ね合わせ処理が終了して、ＮＲ画像データの書き込み時になったか否か判別し、ＮＲ画像データの書き込み時になったと判別したときには、短冊アクセス形式でＮＲ画像を画像メモリ４に書き込むと共に、ブロックアクセス形式でも、ＮＲ画像画像を画像メモリ４に書き込むように、メモリコントローラ８を指示制御するようにする（ステップＳ１２２）。
【０４２４】
そして、動画撮影モードが終了するのを待ち（ステップＳ１２３）、動画撮影モードが終了したと判別したときには、この処理ルーチンを終了する。
【０４２５】
以上のことから、この実施形態において、画像メモリ部４に対する画像データのメモリアクセス時の画像データフォーマットの変更要因と、その変更要因に対応する各画像データフォーマットとの関係をまとめると、次のようになる。
【０４２６】
すなわち、先ず、画像メモリ部４に対するメモリアクセス時の画像データフォーマットは、静止画ＮＲモード（静止画撮影モード）時と、動画ＮＲモード（動画撮影モード）時とで変更され、図６３に示すように、静止画ＮＲモード時には、短冊アクセス形式のみが用いられるように制御され、また、動画ＮＲモード時には、上述したように、ブロックフォーマットと短冊アクセス形式の両方が用いられるように制御される。つまり、画像が静止画であるか、動画であるかの種類に応じて、用いられれる画像データフォーマットが変更される。また、見方を変えると、処理モードが静止画撮影モードか、動画撮影モードかで、用いられる画像データフォーマットを変更していることになる。
【０４２７】
また、処理対象画像フレームが、ターゲットフレームか参照フレームかにより、画像メモリ部４に対するメモリアクセス時の画像データフォーマットは変更され、図６４に示すように、ターゲットフレームの画像データについては、短冊アクセス形式のみが用いられ、参照フレームの画像データについては、参照フレームの画像データについては、前述したように、８×８フォーマットまたは４×４フォーマットのブロックフォーマットが用いられるように制御される。
【０４２８】
また、階層化マッチング処理の縮小面と基底面とで、画像メモリ部４に対するメモリアクセス時の画像データフォーマットは変更される。すなわち、図６５に示すように、縮小面においては、静止画ＮＲモード時には、短冊アクセス形式（６４×１フォーマット）を用いるように制御され、動画ＮＲモード時には、縮小面マッチング処理範囲のサイズに応じて８×８フォーマットと、４×４フォーマットとのいずれかが用いられるように制御される。
【０４２９】
また、基底面においては、静止画ＮＲモード時には、短冊アクセス形式（６４×１フォーマット）を用いるように制御され、動画ＮＲモード時には、基底面マッチング処理範囲のサイズに応じて８×８フォーマットと、４×４フォーマットとのいずれかが用いられるように制御される。
【０４３０】
また、画像重ね合わせ部１７における画像重ね合わせ結果としてのＮＲ画像の書き込み時には、図６６に示すように、静止画ＮＲモードでは、短冊アクセス形式（６４×１フォーマット）のみで画像メモリ部４に、ＮＲ画像データが書き込まれ、動画ＮＲモードでは、短冊アクセス形式（６４×１フォーマット）と、例えば８×８フォーマットによるブロックフォーマットで，ＮＲ画像データが画像メモリ部４に書き込まれる。
【０４３１】
なお、上述した画像メモリ部４に対する画像データのメモリアクセス時の画像データフォーマットの変更要因と、その変更要因に対応する各画像データフォーマットとの関係は、上述の例に限られるわけではなく、その他、バス帯域を削減するのを主眼とするか、消費電力を小さくするのを主眼とするのか、メモリ容量を削減するのを主眼とするのかなど、種々の状況に応じて、画像データフォーマットを切り替えるようにするものである。
【０４３２】
例えば、８×８フォーマットよりも４×４フォーマットの方が、バス帯域の削減を図ることができ、より高速処理が可能であるので、図６７に示すように、ＳＤ（Ｓｔａｎｄａｒｄ  Ｄｉｆｉｎｉｔｉｏｎ；通常精細度）画像データについては、８×８フォーマットを採用し、ＨＤ（Ｈｉｇｈ  Ｄｉｆｉｎｉｔｉｏｎ；高精細度）画像データについては、４×４フォーマットを用いるように、画像メモリ部４に対するメモリアクセス時の画像データフォーマットを切り替え制御するようにしても良い。
【０４３３】
［撮像装置の第２の実施形態］
上述した実施形態の撮像装置は、図１に示したように、画像重ね合わせ結果のＮＲ画像を、そのまま記録するようにしている。これに対して、図６８に示すように、画像重ね合わせ部１７の後段に、後処理・エフェクト部３０を設け、この後処理・エフェクト部３０で、画面合成、グラフィック合成、セピア処理などの画像についての後処理あるいはエフェクト処理を行った後、記録することができる撮像装置を構成することもできる。
【０４３４】
この場合、後処理・エフェクト部３０は、ユーザ操作入力部３を通じたユーザ操作入力により、その処理動作がオン・オフされる。つまり、使用者が、ユーザ操作入力部３を通じて、画面合成、グラフィック合成、セピア処理などの画像についての後処理あるいはエフェクト処理を指示したときに、ＣＰＵ１により、後処理・エフェクト部３０は、動作オンとされ、後処理あるいはエフェクト処理が指定されないときには、この後処理・エフェクト部３０は、ＣＰＵ１により、動作オフとされる。
【０４３５】
そして、後処理・エフェクト部３０が動作オフとされるときには、この第２の実施形態の撮像装置では、図６０に示した前述の実施形態の撮像装置の場合と同様に、画像重ね合わせ部１７からの動画ＮＲ処理結果のＮＲ画像が、図６９に示すように、８×８フォーマットや４×４フォーマットなどのブロックフォーマットで、画像メモリ部４のＮＲ画像についての第１のメモリ領域４１ＮＲに書き込まれると共に、６４×１フォーマットで、画像メモリ部４のＮＲ画像についての第２のメモリ領域４２ＮＲに書き込まれる。なお、図６９に示すように、第１のメモリ領域４１ＮＲには、ＮＲ画像は、縮小面画像が併せて書き込まれる。
【０４３６】
また、後処理・エフェクト部３０が動作オンとされるときには、この第２の実施形態の撮像装置では、画像重ね合わせ部１７からの動画ＮＲ処理結果のＮＲ画像は、図７０に示すように、８×８フォーマットや４×４フォーマットなどのブロックフォーマットで、画像メモリ部４のＮＲ画像についての第１のメモリ領域４１ＮＲにのみ書き込まれる。
【０４３７】
そして、この後処理・エフェクト部３０が動作オンとされる場合には、後処理・エフェクト部３０で、画面合成、グラフィック合成、セピア処理などの画像についての後処理あるいはエフェクト処理がなされたＮＲ画像が、６４×１フォーマットで、画像メモリ部４のＮＲ画像についての第２のメモリ領域４２ＮＲに書き込まれる。この後処理あるいはエフェクト処理がなされたＮＲ画像は、次のフレームにおける参照画像としては用いることができない。
【０４３８】
そして、この第２の実施形態の撮像装置では、画像メモリ部４のＮＲ画像についての第２のメモリ領域４２ＮＲに１フレーム前の時点で６４×１フォーマットで書き込まれている後処理等がなされたＮＲ画像が、６４×１フォーマットで、かつ、ラスタースキャン形式で読み出されて、動画コーデック部１９に転送され、動画圧縮エンコードされて、記録再生装置部５に記録される。また、第２のメモリ領域４２ＮＲに１フレーム前の時点で６４×１フォーマットで書き込まれている後処理等がなされたＮＲ画像は、６４×１フォーマットで、かつ、ラスタースキャン形式で読み出されて、ＮＴＳＣエンコーダ２０に供給されてＮＴＳＣ信号にされ、モニターディスプレイ６に供給されて、記録モニター画像として表示される。
【０４３９】
以上のように、この第２の実施形態の撮像装置において、後処理・エフェクト部３０が動作オンとされる場合には、次のフレームでの参照画像として用いられる後処理等がなされていないＮＲ画像と、記録用また記録モニター表示用として用いられる後処理等がなされたＮＲ画像とを、画像メモリ部４に書き込む必要がある。そして、後処理等がなされていないＮＲ画像は、その参照画像としての用途から、ブロックフォーマットで画像メモリ部４に書き込まれ、また、後処理等がなされているＮＲ画像は、記録用および記録モニター表示用などの用途から、ラスタースキャン形式で読み出し易い６４×１フォーマットで書き込まれる。
【０４４０】
［動画ＮＲ処理時における基底面と縮小面とでのメモリアクセスの変更について］
上述した第１および第２の実施形態の撮像装置においては、動き検出・動き補償部１６におけるブロックマッチング手法として、縮小面マッチング処理と基底面マッチング処理とからなる階層化ブロックマッチング手法を採用している。
【０４４１】
動画ＮＲ処理時の基底面マッチング処理においては、画像メモリ部４に書き込まれている基底面ターゲット画像および基底面参照画像は、図６０に示したように、動き検出・動き補償部１６のみではなく、システムバス２に接続されている他の処理部がアクセスすることがあるため、上述したように、メモリアクセスのフォーマットに制約が発生する。しかしながら、縮小面マッチングにおける縮小面画像であれば、動き検出・動き補償部１６でしかアクセスしないため、メモリアクセスのフォーマットの制約は発生しない。
【０４４２】
そこで、基底面マッチング処理時と縮小面マッチング処理時とで、画像メモリ部４の画像データに対するメモリアクセスのフォーマットを変えることで、バス帯域をさらに削減することが可能である。
【０４４３】
バス帯域の削減を可能にする例として、ここでは、縮小面マッチング処理時における画像データの削減を行う。すなわち、上述したように、この発明による実施形態においては、ブロックマッチング手法におけるＳＡＤ値の算出では、輝度情報Ｙのみしか使用していない。
【０４４４】
しかし、ＮＲ処理して、画像データを記録するためには、輝度情報Ｙのみではなく、クロマ信号情報Ｃ（Ｃｒ，Ｃｂ）をも必要である。このため、上述の説明では、システムバス２のバス幅が６４ビット、最大バースト長は１６バーストとしたとき、最大効率の転送時のデータ量、すなわち、６４ビット×１６バースト＝１２８バイトは、Ｙ：Ｃｒ：Ｃｂ＝４：２：２のフォーマットの輝度信号Ｙ（８ビット）、クロマ信号Ｃ（８ビット）は、４画素分に相当するとした。
【０４４５】
ところで、縮小面画像は、記録対象ではないので、クロマ信号Ｃを用いる必要は無い。そこで、図７１（Ａ）に示すような、８×８フォーマットのＹＣ画像データから、輝度情報Ｙ（８ビット）のみを抽出して、図７１（Ｂ）に示すような８×８フォーマットのＹ画像データとし、縮小面マッチング処理用とすることができるが、その場合のＹＣ画像データのデータ量は、上述の場合の半分になる。
【０４４６】
そこで、上述の実施形態における最大効率の転送時のデータ量、すなわち、６４ビット×１６バースト＝１２８バイトは、図７１（Ｃ）に示すように、８ライン×８画素＝６４画素のブロックの２ブロック分である１２８画素分となる。したがって、縮小面マッチング処理時には、画像メモリ部４に対するメモリアクセスにおいて、この１２８画素分を、１転送でアクセスすることができる。
【０４４７】
すなわち、縮小面マッチング処理時においては、８×８フォーマットのＹＣ情報のうち、Ｙ情報のみ抽出することで、上述の例の場合よりも、最大効率の１アクセス（１２８バイト）で、最大、８画素×８ライン×２ブロックのデータを転送することが可能になり、マッチング精度は変わらずに、バス帯域を１／２に削減することができる。
【０４４８】
また、縮小面マッチング処理時においては、図７１（Ｂ）のＹ画像データを、図７２（Ａ）および（Ｂ）に示すように、千鳥格子状に間引きし、垂直方向に詰めて画像メモリ部４に書き込むようにすることで、さらにバス帯域を削減することができる。
【０４４９】
このとき、図７２（Ｃ）に示すように、１アクセス（１２８バイト）で、最大、４画素×８ライン×４ブロックのデータを転送可能になり、マッチング精度は落ちるものの、バス帯域は１／４に削減することが可能である。
【０４５０】
［実施形態の効果］
以上のように、実施形態の撮像装置で最も効率の良いデータ転送サイズのブロック単位で、画像メモリ部４に対するメモリアクセスのデータフォーマットを決定し、静止画ＮＲ処理、動画ＮＲ処理に応じて、画像メモリ部４に対するメモリアクセスのデータフォーマットを選択することで、バス帯域を削減し、バスアクセスの効率も向上させることができる。
【０４５１】
また、基底面マッチング処理時と縮小面マッチング処理時とで画像メモリ部４に対するメモリアクセスのデータフォーマットを変更し、縮小面マッチング処理時は、動き検出・動き補償部１６以外の他の処理部の画像メモリ部４のアクセスが無いことを利用して、動き検出に適したデータフォーマットにすることで、バス帯域をさらに削減することが可能である。
【０４５２】
また、画像重ね合わせ後に、後処理やエフェクト処理を施す場合、複数フォーマットで画像メモリ部４に画像データを貼る必要があるが、マッチング処理のための参照画像を、画像メモリ部４に対して、ブロックフォーマットで書き込みおよび読み出しアクセスするようにすることで、バス帯域を削減することができる。
【０４５３】
また、上述した実施形態によれば、画像補正・解像度変換部１５で、画像を、短冊状に分割したフォーマットでメモリアクセスを行い、静止画コーデック部１８での圧縮符号化の単位も同じく短冊形式にすることで、画像補正・解像度変換部１５から静止画コーデック部１８に、メモリを介さず、直接データを転送することができ、高速連写画像を効率よく圧縮符号化し、画像メモリ部４に格納することができる。
【０４５４】
また、画像メモリ部４に格納された、圧縮符号化された画像を参照画像として用いるときに、画像を分割した短冊単位で伸長復号化することで、ブロックマッチング処理に必要な範囲だけ復号化することができ、画像メモリ部４のワーク領域を節約することができる。さらに、画像メモリ部４上の不要な参照画像短冊のアドレスに、次に使用する参照画像短冊を復号化して上書きすることで、ワーク領域上の復号化された参照画像のサイズを、常に一定にすることができる。
【０４５５】
また、前述したように、この実施形態によれば、設定情報などによって、ターゲット画像と参照画像の選択方法、重ね合わせの順序、重ね合わせの計算方法を変更することによって、所望のＮＲ画像を得ることが可能である。
【０４５６】
［その他の実施の形態および変形例］
上述の実施形態においては、静止画コーデック部１８における圧縮符号化方式としては、ＪＰＥＧ方式を用い、また、動画コーデック部１９における圧縮符号化方式としてはＭＰＥＧ方式を用いるようにしたが、これは一例であって、この発明は、どのような画像圧縮符号化方式であっても適用可能であることは言うまでもない。
【０４５７】
また、上述の実施形態では、静止画撮影時の記録画像を圧縮符号化するための圧縮符号化処理部で、ブロックマッチング時における撮像画像の圧縮符号化を行うようにしたが、記録処理のための圧縮方式と、ブロックマッチング時における撮像画像の圧縮方式とで、異なる方式を用いるようにしても良い。
【０４５８】
また、上述の実施形態では、動画ＮＲ処理において、画像メモリ部４に対する複数のメモリアクセスのデータフォーマットを用いるようにしたが、静止画ＮＲ処理にも用いても良い。特に、撮影中加算方式で静止画ＮＲ処理をする場合には、処理速度も重要になるので、上述のようなバス帯域を削減するブロックフォーマットを採用する方が良い。
【０４５９】
また、画像を、水平方向の複数画素毎に分割して、短冊単位のデータとしてメモリアクセスするようにしたが、これは、画像メモリからの画像データの読み出し、書き込み方向が、水平ライン方向を基準にしたからである。画像メモリからの画像データの読み出し、書き込み方向が垂直方向である場合には、画像を垂直方向の複数ライン単位で分割した帯状単位のデータとしてデータアクセスするようにすれば、上述と同様の作用効果が得られることは言うまでもない。その場合には、例えば６４×１フォーマットは、垂直方向の６４ライン×１画素というフォーマットになる。
【０４６０】
また、上述の実施の形態において、動きベクトル算出部の第１の例においては、サーチ範囲におけるサーチ方向を水平ライン方向に取り、例えばサーチ範囲の左上から順に参照ブロックを移動させるようにしてサーチを行うようにすると共に、ＳＡＤテーブルの１ライン分のメモリを設けるようにしたが、サーチ範囲におけるサーチ方向を垂直方向に取り、例えばサーチ範囲の左上端から垂直方向にサーチを開始し、垂直方向の１列分のサーチが終わった後、水平方向に、参照ブロックの位置を１つ分、例えば１画素分右の垂直方向の列に移動し、その列の上端から垂直方向にサーチする、という手順を繰り返すサーチ方法を採用するようにしても良い。このようにサーチ範囲の左上端から順に、垂直方向に参照ブロックを移動させるようにしてサーチを行うようにする場合には、ＳＡＤテーブルの垂直方向の一列分のメモリを設けるようにすれば良い。
【０４６１】
ここで、水平方向にサーチ方向を取るか、垂直方向にサーチ方向を取るかは、マッチング処理部、動きベクトル算出部の回路規模を考慮して、より回路規模が小さくなる方を採用するのが好ましい。
【０４６２】
なお、前述もしたように、参照ブロックの移動は、１画素毎、また、１ライン毎ではなく、複数画素毎、また、複数ライン毎でもよい。したがって、前者の場合の水平方向の１ライン分メモリは、水平方向における参照ブロックの移動位置分だけでよく、また、後者の場合の垂直方向の一列分のメモリは、垂直方向における参照ブロックの移動位置分だけでよい。つまり、参照ブロックの移動を１画素毎、また、１ライン毎に行う場合には、１ライン分メモリは、１ラインの画素数分の容量のメモリが必要であり、また、垂直方向の一列分メモリは、ライン数分の容量のメモリが必要である。しかし、複数画素毎、また、複数ライン毎に、参照ブロックを移動させる場合には、１画素毎、また、１ライン毎に参照ブロックを移動させる場合よりも、１ライン分メモリおよび１列分メモリの容量は少なくなる。
【０４６３】
また、補間処理の方法は、上述した二次曲線近似補間処理に限られるものではなく、前述もしたように、３次曲線や、より高次の曲線を用いた補間処理を行っても良い。
【０４６４】
また、上述の実施の形態は、この発明による画像処理装置を撮像装置に適用した場合であるが、この発明は、撮像装置に限られるわけではなく、種々の画像処理装置に適用可能である。
【０４６５】
また、上述の実施の形態は、ブロックマッチング手法を用いて、画像の重ね合わせによるノイズ低減処理をする場合に、この発明を適用した場合であるが、これに限られるものではなく、画像メモリ部に書き込まれた画像データを、所定の処理部がアクセスするような画像処理装置の全てに適用可能である。
【図面の簡単な説明】
【０４６６】
【図１】この発明による画像処理装置の一実施の形態である撮像装置の構成例を示すブロック図である。
【図２】実施の形態の図１の撮像装置における撮像画像のノイズ低減処理を説明するための図である。
【図３】実施の形態の図１の撮像装置におけるブロックマッチング処理の説明のために用いる図である。
【図４】実施の形態の図１の撮像装置における撮像画像のノイズ低減処理を説明するための図である。
【図５】実施の形態の図１の撮像装置における撮像画像のノイズ低減処理を説明するための図である。
【図６】この発明の実施の形態の画像処理方法を説明するために用いる図である。
【図７】この発明の実施の形態の画像処理方法を説明するために用いる図である。
【図８】この発明の実施の形態の画像処理方法を説明するために用いる図である。
【図９】実施の形態の図１の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。
【図１０】実施の形態の図１の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。
【図１１】実施の形態の図１の撮像装置における動き検出・動き補償部における動作を説明するために用いる図である。
【図１２】実施の形態の図１の撮像装置における動き検出・動き補償部における処理による効果を説明するための図である。
【図１３】実施の形態の図１の撮像装置における動き検出・動き補償部の構成例を示すブロック図である。
【図１４】図１３の動き検出・動き補償部の一部の詳細構成例のブロック図である。
【図１５】図１３の動き検出・動き補償部の一部の詳細構成例のブロック図である。
【図１６】実施の形態の図１の撮像装置における画像重ね合わせ部の構成例を示すブロック図である。
【図１７】この発明による画像処理方法の実施の形態を説明するためのフローチャートの一部を示す図である。
【図１８】この発明による画像処理方法の実施の形態を説明するためのフローチャートの一部を示す図である。
【図１９】この発明による画像処理方法の実施の形態を説明するためのフローチャートの一部を示す図である。
【図２０】実施の形態の撮像装置における動き検出・動き補償部の動きベクトル算出部の第１の例を説明するために用いる図である。
【図２１】実施の形態の撮像装置における動き検出・動き補償部の動きベクトル算出部の第１の例を説明するために用いる図である。
【図２２】実施の形態の撮像装置における動き検出・動き補償部の動きベクトル算出部の第１の例の構成を示すブロック図である。
【図２３】図２２の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図２４】図２２の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図２５】図２２の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図２６】実施の形態の撮像装置における動き検出・動き補償部の動きベクトル算出部の第２の例の構成を示すブロック図である。
【図２７】図２６の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図２８】図２６の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図２９】図２６の動きベクトル算出部の処理動作例を説明するためのフローチャートを示す図である。
【図３０】この発明の実施の形態の画像処理方法における具体例を説明するために用いる図である。
【図３１】この発明の実施の形態の画像処理方法における具体例を説明するために用いる図である。
【図３２】この発明の実施の形態の画像処理方法における具体例を説明するために用いる図である。
【図３３】この発明の実施の形態の画像処理方法における具体例を説明するために用いる図である。
【図３４】この発明の実施の形態の画像処理方法における短冊アクセス形式を説明するための図である。
【図３５】この発明の実施の形態の画像処理方法における画像データのメモリアクセス方式を説明するための図である。
【図３６】この発明の実施の形態の画像処理方法における画像の処理単位の例を説明するための図である。
【図３７】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図３８】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図３９】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４０】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４１】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図４２】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４３】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図４４】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図４５】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図４６】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４７】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図４８】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図４９】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５０】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５１】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５２】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５３】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５４】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５５】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５６】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５７】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５８】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図５９】この発明の実施の形態の画像処理方法における画像データのメモリアクセス動作を説明するための図である。
【図６０】この発明の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図６１】この発明の実施形態の画像処理方法の要部を説明するためのフローチャートの一部を示す図である。
【図６２】この発明の実施形態の画像処理方法の要部を説明するためのフローチャートの一部を示す図である。
【図６３】この発明の実施形態の画像処理方法の要部を説明するために用いる図である。
【図６４】この発明の実施形態の画像処理方法の要部を説明するために用いる図である。
【図６５】この発明の実施形態の画像処理方法の要部を説明するために用いる図である。
【図６６】この発明の実施形態の画像処理方法の要部を説明するために用いる図である。
【図６７】この発明の実施形態の画像処理方法の要部を説明するために用いる図である。
【図６８】この発明による画像処理装置の他の実施の形態である撮像装置の構成例を示すブロック図である。
【図６９】この発明の他の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図７０】この発明の他の実施の形態の画像処理方法における画像データの流れを説明するための図である。
【図７１】この発明の実施の形態の画像処理方法におけるメモリアクセス時の画像データの構成例を説明するための図である。
【図７２】この発明の実施の形態の画像処理方法におけるメモリアクセス時の画像データの構成例を説明するための図である。
【図７３】ブロックマッチング処理を説明するために用いる図である。
【図７４】ブロックマッチング処理を説明するために用いる図である。
【図７５】ブロックマッチング処理を説明するために用いる図である。
【図７６】ブロックマッチング処理を説明するために用いる図である。
【図７７】ブロックマッチング処理を説明するために用いる図である。
【図７８】ブロックマッチング処理を説明するために用いる図である。
【符号の説明】
【０４６７】
４…画像メモリ部、８…メモリコントローラ、１６…動き検出・動き補償部、１７…画像重ね合わせ部、１８…静止画コーデック部、１００…ターゲット画像（ターゲットフレーム）、１０１…参照画像（参照フレーム）、１０２…ターゲットブロック、１０４…動きベクトル１０６…サーチ範囲、１０７…参照ベクトル、１０８…参照ブロック、１６３…マッチング処理部、１６４…動きベクトル算出部
【図１】
2009140046.tif 000003
【図２】
2009140046.tif 000004
【図３】
2009140046.tif 000005
【図４】
2009140046.tif 000006
【図５】
2009140046.tif 000007
【図６】
2009140046.tif 000008
【図７】
2009140046.tif 000009
【図８】
2009140046.tif 000010
【図９】
2009140046.tif 000011
【図１０】
2009140046.tif 000012
【図１１】
2009140046.tif 000013
【図１２】
2009140046.tif 000014
【図１３】
2009140046.tif 000015
【図１４】
2009140046.tif 000016
【図１５】
2009140046.tif 000017
【図１６】
2009140046.tif 000018
【図１７】
2009140046.tif 000019
【図１８】
2009140046.tif 000020
【図１９】
2009140046.tif 000021
【図２０】
2009140046.tif 000022
【図２１】
2009140046.tif 000023
【図２２】
2009140046.tif 000024
【図２３】
2009140046.tif 000025
【図２４】
2009140046.tif 000026
【図２５】
2009140046.tif 000027
【図２６】
2009140046.tif 000028
【図２７】
2009140046.tif 000029
【図２８】
2009140046.tif 000030
【図２９】
2009140046.tif 000031
【図３０】
2009140046.tif 000032
【図３１】
2009140046.tif 000033
【図３２】
2009140046.tif 000034
【図３３】
2009140046.tif 000035
【図３４】
2009140046.tif 000036
【図３５】
2009140046.tif 000037
【図３６】
2009140046.tif 000038
【図３７】
2009140046.tif 000039
【図３８】
2009140046.tif 000040
【図３９】
2009140046.tif 000041
【図４０】
2009140046.tif 000042
【図４１】
2009140046.tif 000043
【図４２】
2009140046.tif 000044
【図４３】
2009140046.tif 000045
【図４４】
2009140046.tif 000046
【図４５】
2009140046.tif 000047
【図４６】
2009140046.tif 000048
【図４７】
2009140046.tif 000049
【図４８】
2009140046.tif 000050
【図４９】
2009140046.tif 000051
【図５０】
2009140046.tif 000052
【図５１】
2009140046.tif 000053
【図５２】
2009140046.tif 000054
【図５３】
2009140046.tif 000055
【図５４】
2009140046.tif 000056
【図５５】
2009140046.tif 000057
【図５６】
2009140046.tif 000058
【図５７】
2009140046.tif 000059
【図５８】
2009140046.tif 000060
【図５９】
2009140046.tif 000061
【図６０】
2009140046.tif 000062
【図６１】
2009140046.tif 000063
【図６２】
2009140046.tif 000064
【図６３】
2009140046.tif 000065
【図６４】
2009140046.tif 000066
【図６５】
2009140046.tif 000067
【図６６】
2009140046.tif 000068
【図６７】
2009140046.tif 000069
【図６８】
2009140046.tif 000070
【図６９】
2009140046.tif 000071
【図７０】
2009140046.tif 000072
【図７１】
2009140046.tif 000073
【図７２】
2009140046.tif 000074
【図７３】
2009140046.tif 000075
【図７４】
2009140046.tif 000076
【図７５】
2009140046.tif 000077
【図７６】
2009140046.tif 000078
【図７７】
2009140046.tif 000079
【図７８】
2009140046.tif 000080