(57)【要約】【課題】画像歪みが大きくなって、１処理単位周期内で処理を完了できなくなって画像データ処理システムが破綻するのを防止する。【解決手段】メモリ制御手段５４は、画像メモリ６に対して、水平方向の複数画素単位で、書き込みアクセスまたは読み出しアクセスの１サイクルを行うと共に、複数サイクルを処理単位周期として、複数個の処理手段のそれぞれからの要求に応じた書き込みまたは読み出しのアクセス処理を、処理単位周期内に１サイクル単位ですべて割り当てて実行する。処理手段からの要求に基づいて指定されたアクセス処理が完了できるか否かを判別し、アクセス処理が完了できないと判別したときに、要求を出した処理手段に対して、新たな前記要求の送出を一時停止させると共に、当該アクセス処理を行うべき処理単位周期に続く１または複数の処理単位周期においても当該アクセス処理を行う。【選択図】図１
2008065722.tif 000002
【特許請求の範囲】
【請求項１】
画像データを格納する画像メモリと、
前記画像メモリに書き込む画像データを出力する、または、前記画像メモリから読み出した画像データを受けて所定の処理を行う複数個の処理手段と、
前記複数個の処理手段からの書き込みまたは読み出しの要求を受けて、前記画像メモリに対する画像データの書き込みアクセスまたは画像データの読み出しアクセスを制御するメモリ制御手段と、
を備え、
前記メモリ制御手段は、
前記画像メモリに対して、１ライン分の有効画素数の１／Ｎ（Ｎは２以上の正の整数）からなる水平方向の複数画素単位で、前記書き込みアクセスの１サイクルまたは前記読み出しアクセスの１サイクルを行なうと共に、
複数サイクルを処理単位周期として、前記複数個の処理手段のそれぞれからの前記要求に応じた書き込みまたは読み出しのアクセス処理を、前記処理単位周期内に１サイクル単位ですべて割り当てて実行し、かつ、前記処理単位周期を繰り返すようにするものであり、
さらに、前記メモリ制御手段は、
前記処理単位周期の１周期内に割り当てられた前記処理手段のそれぞれに対応して割り当てられた前記サイクル内で、それぞれの前記処理手段からの前記要求に基づいて指定された前記アクセス処理が完了できるか否かを判別する判別手段と、
前記判別手段で前記アクセス処理が完了できないと判別したときに、前記要求を出した前記処理手段に対して、前記処理単位周期の待機指示信号を送って、新たな前記要求の送出を一時停止させるようにすると共に、前記処理単位周期の１周期内でできないとされた前記アクセス処理を、当該アクセス処理を行うべき前記処理単位周期に続く１または複数の処理単位周期において前記処理手段に対応して割り当てた前記サイクルにおいても実行するようにするアクセス実行手段と、
を備えることを特徴とする画像データ処理装置。
【請求項２】
請求項１に記載の画像データ処理装置において、
前記処理手段の一つは、前記メモリ制御手段に対して、前記画像メモリからの画像データの読み出し要求を、注目画素を指定して行い、前記画像メモリから読み出された画像データに対して、垂直方向の画像歪みを除去するようにする垂直方向処理を行なう垂直方向処理手段であり、
前記メモリ制御手段の前記判別手段は、
前記垂直方向処理手段からの前記要求信号に基づいて、前記処理単位周期の１周期内に割り当てられた、前記垂直方向処理手段からの前記読み出し要求に対応するサイクルで、前記水平方向の複数画素単位分の前記指定された注目画素のすべてについての前記垂直方向処理に必要な前記画像データを読み出すことができるか否かを判別し、
前記メモリ制御手段の前記アクセス実行手段は、
前記判別手段で前記垂直方向処理に必要な前記画像データのすべての読み出しができないと判別したときに、前記垂直方向処理手段に対して、前記処理単位周期の待機指示信号を送って、前記要求信号の送出を待機させるようにすると共に、前記処理単位周期の１周期内でできないとされた前記画像メモリ部からの画像データの読み出し処理を、当該画像データの読み出し処理を行うべき前記処理単位周期に続く１または複数の処理単位周期において割り当てた前記垂直方向処理手段からの前記読み出し要求に対応するサイクルにおいて実行するようにする
ことを特徴とする画像データ処理装置。
【請求項３】
請求項１に記載の画像データ処理装置において、
前記書き込みアクセスおよび読み出しアクセスを行なう前記水平方向の複数画素単位は、水平方向の８画素単位である
ことを特徴とする画像データ処理装置。
【請求項４】
請求項２に記載の画像データ処理装置において、
前記垂直方向処理は、画像データに対する所定の画像処理を水平方向処理と垂直方向処理とに分けたときの垂直方向処理であり、前記水平方向処理の処理結果の画像データを前記垂直方向処理対象の画像データとして前記画像メモリに書き込む
ことを特徴とする画像データ処理装置。
【請求項５】
請求項１に記載の画像データ処理装置において、
前記画像メモリは、複数のバンクに分割されており、前記画像データの前記画像メモリへの書き込みは、所定のデータ長ごとに、前記バンクを順次に切り換えて行ない、前記画像データの前記画像メモリからの読み出しは、前記所定のデータ長ごとについて、複数の前記バンクから同時に行なう
ことを特徴とする画像データ処理装置。
【請求項６】
請求項５に記載の画像データ処理装置において、
前記画像データの輝度成分と２個の色差成分との標本化周波数比は、４：１：１であって、前記複数のバンクの数は、４の倍数である
ことを特徴とする画像データ処理装置。
【請求項７】
請求項５または請求項６に記載の画像データ処理装置において、
前記所定のデータ長は、１ラインまたは複数ライン分である
ことを特徴とする画像データ処理装置。
【請求項８】
請求項２に記載の画像データ処理装置において、
前記処理単位周期内において、前記垂直方向処理手段からの要求に対応する読み出しアクセスについて複数サイクルを割り当てる
ことを特徴とする画像データ処理装置。
【請求項９】
請求項２に記載の画像データ処理装置において、
前記メモリ制御手段の前記アクセス実行手段は、
前記判別手段で前記垂直方向処理に必要な前記画像データのすべての読み出しができないと判別したときに、前記垂直方向処理手段に対して、前記処理単位周期の待機指示信号を送って、前記要求信号の送出を一時停止させるようにすると共に、前記処理単位周期の１周期内でできないとされた前記画像メモリ部からの画像データの読み出し処理を、当該画像データの読み出し処理を行うべき前記処理単位周期に続く１処理単位周期において割り当てた前記垂直方向処理手段からの前記要求信号に対応するサイクルのみにおいて実行するようにし、
かつ、前記垂直方向処理手段からの前記読み出し要求において指定される前記注目画素について必要とされる画像データが、前記処理単位周期に続く１処理単位周期において割り当てた前記垂直方向処理手段からの前記要求信号に対応するサイクルで読み出し可能な画像データ範囲よりも逸脱するときには、前記要求信号に対応するサイクルで読み出し可能な画像データ範囲内の、前記注目画素に近い画素データを読み出すようにする
ことを特徴とする画像データ処理装置。
【請求項１０】
請求項４に記載の画像データ処理装置において、
前記画像データは、撮像素子からの撮像画像データであると共に、前記画像データに対する所定の画像処理は、撮像に用いたレンズに基づく画像歪みを補正するレンズ歪み補正処理である
ことを特徴とする画像データ処理装置。
【請求項１１】
画像データを格納する画像メモリと、前記画像メモリに書き込む画像データを出力する、または、前記画像メモリから読み出した画像データを受けて所定の処理を行う複数個の処理手段と、前記複数個の処理手段からの書き込みまたは読み出しの要求を受けて、前記画像メモリに対する画像データの書き込みアクセスまたは画像データの読み出しアクセスを制御するメモリ制御手段とを備える画像データ処理装置における画像データ処理方法であって、
前記メモリ制御手段により、前記画像メモリに対して、１ライン分の有効画素数の１／Ｎ（Ｎは２以上の正の整数）からなる水平方向の複数画素単位で、前記書き込みアクセスの１サイクルまたは前記読み出しアクセスの１サイクルを行なうようにすると共に、複数サイクルを処理単位周期として、前記複数個の処理手段のそれぞれからの前記要求に応じた書き込みまたは読み出しのアクセス処理を、前記処理単位周期内に１サイクル単位ですべて割り当てて実行し、かつ、前記処理単位周期を繰り返すようにし、かつ、
前記メモリ制御手段は、
前記処理単位周期の１周期内に割り当てられた前記処理手段のそれぞれに対応して割り当てられた前記サイクル内で、それぞれの前記処理手段からの前記要求に基づいて指定された前記アクセス処理が完了できるか否かを判別する判別工程と、
前記判別工程で前記アクセス処理が完了できないと判別したときに、前記要求を出した前記処理手段に対して、前記処理単位周期の待機指示信号を送って、新たな前記要求の送出を一時停止させるようにすると共に、前記処理単位周期の１周期内でできないとされた前記アクセス処理を、当該アクセス処理を行うべき前記処理単位周期に続く１または複数の処理単位周期において前記処理手段に対応して割り当てた前記サイクルにおいても実行するようにするアクセス実行工程と、
を行うことを特徴とする画像データ処理方法。
【請求項１２】
垂直方向の画像歪みを有する画像の画像データである第１の画像データを格納する第１の画像メモリ領域と、
前記第１の画像メモリ領域から読み出された画像データに対して、前記垂直方向の画像歪みを除去するようにする垂直方向処理を行なう垂直方向処理手段と、
前記垂直方向処理手段で前記垂直方向の画像歪みが除去された画像の画像データである第２の画像データを格納する第２の画像メモリ領域と、
前記第１および第２の画像メモリ領域と、前記垂直方向処理手段との間に設けられ、前記第１および第２の画像メモリ領域に対する前記第１および第２の画像データの読み出し、書き込みを制御するためのメモリ制御手段と、
を備え、
前記メモリ制御手段は、少なくとも、
前記垂直方向処理手段からの要求信号を受けて、前記第１の画像メモリ領域から、前記要求信号により指定された注目画素についての前記垂直方向処理に必要な前記第１の画像データを読み出して前記垂直方向処理手段に供給するようにする第１のアクセスと、
前記垂直方向処理手段からの前記第２の画像データを第２の画像メモリ領域に書き込む第２のアクセスと、
を実行するものであり、
前記第１および第２の画像メモリ領域に対して、１ライン分の有効画素数の１／Ｎ（Ｎは２以上の正の整数）からなる水平方向の複数画素単位で、前記書き込みおよび読み出しのアクセスの１サイクルを行なうと共に、
複数メモリアクセスサイクルを処理単位周期として、当該処理単位周期内に、前記第１および第２のアクセスをそれぞれ割り当てて、前記処理単位周期で繰り返すようにする画像処理装置であって、
前記メモリ制御手段は、
前記垂直方向処理手段からの前記要求信号に基づいて、前記処理単位周期の１周期内に割り当てられた前記第１のアクセスのサイクルで、前記要求信号により指定された前記水平方向の複数画素単位分の注目画素のすべてについての前記垂直方向処理に必要な前記第１の画像データを読み出すことができるか否かを判別する判別手段と、
前記判別手段で前記垂直方向処理に必要な前記第１の画像データのすべての読み出しができないと判別したときに、前記垂直方向処理手段に対して、前記処理単位周期の待機指示信号を送って、前記要求信号の送出を一時停止させるようにすると共に、前記処理単位周期の１周期内でできないとされた前記水平方向の複数画素単位についての前記第１の画像メモリ部からの画像データの読み出し処理を、当該画像データの読み出し処理を行うべき前記処理単位周期に続く１または複数の処理単位周期において割り当てた前記第１のアクセスのサイクルにおいて実行するようにする手段と、
を備えることを特徴とする画像データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばデジタルビデオカメラの撮像画像についての画像処理に適用して好適な画像データ処理装置および画像データ処理方法に関する。
【背景技術】
【０００２】
例えばビデオカメラなどの撮像装置には、撮影画像を一時的に記憶する画像メモリを備え、この画像メモリを用いることにより、撮像画像データを所望の解像度の出力画像データとしたり、撮像画像データに対して、電子手ぶれ補正処理をしたり、いわゆる電子ズームなどの効果処理を施したりする画像処理機能を備えているものが多い。
【０００３】
従来、この種の画像メモリを用いる画像データ処理の方法の一例として、特許文献１（特許第２９５６５２７号公報）に記載された画像データ処理方法がある。この特許文献１に記載の画像データ処理方法は、画像処理を水平方向処理と、垂直方向処理とに分けて実行するものである。図５４を参照して、この特許文献１に記載の画像処理方法を説明する。
【０００４】
すなわち、図５４に示すように、撮像素子からの入力撮像画像データ（Ａ／Ｄ変換されたデジタル画像信号であるとする）は、制御部３０１からの書き込み／読み出し制御信号Ｗ／Ｒによる書き込み制御により、１画面分の撮像画像データが保存可能な容量を有する画像メモリ３０２に書き込まれる。
【０００５】
そして、この画像メモリ３０２に書き込まれた撮像画像データは、制御部３０１からの書き込み／読み出し制御信号Ｗ／Ｒによる読み出し制御により、１垂直周期遅れて読み出されて、水平解像度変換や水平方向手ぶれ補正などの水平方向処理部３０３に供給される。水平方向処理部３０３では、水平方向の解像度が指定されたものとなるようにするため、あるいは、水平方向の手ぶれを補正するために、画像データに対して画素間引きや画素補間を行なう。
【０００６】
水平方向処理部３０３で水平方向処理された撮像画像データは、垂直方向処理部３０４に供給される。垂直方向処理部３０４では、垂直方向の解像度が指定されたものとなるようにするため、あるいは、垂直方向の手ぶれを補正するために、画像データに対してライン間引きやライン補間を行なって垂直方向処理を行ない、例えば手ぶれ補正がなされた所望の解像度の出力撮像画像信号を出力する。
【０００７】
ここで、画像メモリ３０２の記憶容量は、撮像画像データの１画面分（１垂直周期分）以上の容量とされており、この画像メモリ３０２には、図５５において実線で示すようにして、撮像画像データの書き込みがなされる。そして、図５５において破線で示すように、書き込みに対して１垂直周期遅れて、当該書き込まれた撮像画像データが順次に読み出される。
【０００８】
画像メモリ３０２の記憶容量として、１画面分以上必要であるのは、この例では、１垂直周期遅れて画像データの読み出しが行なわれるためである。すなわち、画像メモリ３０２の画像データは、１垂直周期経過すると、次の垂直周期分の画像データにより上書きされてしまうので、それを回避するべく、画像データの読み出しが行なわれる前に、次の１画面分の画像データにより前の画像データが上書きされてしまわないようにするため、記憶容量として１画面分を越える分のマージンを必要とするからである。
【０００９】
このようにすることにより、画像メモリ３０２においては、書き込みに対して読み出しが追い越すことなく、撮像画像データの書き込みおよび読み出しがなされて、解像度変換処理等が行なわれ、所望の解像度の画像データ等が出力される。
【００１０】
しかし、この特許文献１の画像データ処理方法では、画像メモリ３０２としては、撮像素子の最高解像度分の画素数（＝水平方向の画素数×ライン数）に対応したメモリ容量が必要となる。例えば、ＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ；高精細度）画像のデータが処理対象であって、当該ＨＤ画像データの１フィールド分の輝度信号および色差信号を、８ビット／画素で記憶すると、画像メモリ３０２として必要な記憶容量は約１２Ｍビットとなる。このため、非常に大容量のメモリが必要になり、画像メモリが大型化すると共に、高価格となる。
【００１１】
また、撮像素子として、より多い画素数のものを用いた場合には、それに対応して、画像メモリ３０２の記憶容量を大きくする必要があるという問題もある。
【００１２】
これに対して、図５６に示すように、水平方向処理部３０３を、画像メモリ３０１の前段に設け、撮像素子からの撮像画像データを、そのまま画像メモリ３０２に書き込むのではなく、水平方向処理部３０３により水平解像度変換などの水平方向の画像処理を画像データに施して、水平方向の画像データ量を小さくした後、画像メモリ３０１に、１画面分の撮像画像データを書き込むようにする方法も考えられる。この場合も、画像メモリ３０１からは、１垂直周期分遅れたタイミングで画像データが読み出されて、垂直方向処理部３０４に供給され、垂直解像度変換などの垂直方向の画像処理がなされて、出力画像信号とされる。
【００１３】
この図５６の例の場合には、画像メモリ３０２には、水平方向処理部３０３で水平方向の画像処理を行なって画素数が少なくなった１画面分の画像データが書き込まれることになる。このため、画像メモリ３０２の記憶容量は、水平方向の画像処理後の１画面分の画像データ量でよいので、図５４の例の構成の場合よりも画像メモリ３０２の記憶容量を少なくすることができる。
【００１４】
ところで、図５６のように、水平方向処理をした画像データを画像メモリに書き込み、当該画像メモリから、垂直方向処理のために画像データを読み出すとき、画像処理内容によって、次のような問題が発生する。
【００１５】
図５６の構成の垂直方向処理においては、処理結果として得ようとするラインの要求ＲＥＱを制御部３０１に対して送る。すると、制御部３０１は、要求されたラインの画像データを垂直補間などにより得るための複数のラインを計算し、その画像メモリ３０２上のアドレスを求める。そして、求めたアドレスを用いて、要求されたラインの垂直方向処理に必要な複数ラインのデータを画像メモリ３０２から読み出すようにする。
【００１６】
この場合に、例えば、一般的に、電子手ぶれ補正、電子ズーム、解像度変換などの画像処理においては、図５７に示すように、垂直方向処理部３０４が処理しようとするラインが決まると、当該ラインの垂直方向処理に必要な複数ラインのそれぞれのアドレス（垂直方向アドレス）は、水平方向には変化することはない。
【００１７】
したがって、ラインの要求ＲＥＱが制御部３０１に到来したとき、制御部３０１では、１ライン分の画像データの処理に、同じ垂直方向アドレスを指定することにより、画像データの読み出しが可能となる。
【００１８】
ところが、画像処理の中には、ラインの要求ＲＥＱが制御部３０１に到来したとき、制御部３０１では、１ライン分の画像データの読み出し処理の際に、同じ垂直方向アドレスを指定するだけではなく、水平方向の画素位置に応じて垂直方向アドレスを変更しなければならない場合がある。この場合の一例を、次に示す。
【００１９】
一般に撮像レンズは歪曲収差特性を有しており、このため、撮像画像には、例えば図５８に示すような歪みが生じる。高精度で高性能な撮像レンズを用いた場合には、この撮像画像歪みは目立たないが、低価格の撮像レンズを使用する場合や光学ズームレンズを使用する場合には、無視できない程度の画像歪みが生じる。
【００２０】
すなわち、例えば図５８（Ａ）に示すような格子縞の被写体を、歪曲収差が大きい撮像レンズを用いて撮像したときには、その撮像画像は、図５８（Ｂ）に示すように、格子縞を構成する縦横の直線が、湾曲するような画像歪みを生じる。この撮像レンズによる画像歪みは、撮像素子の各画素位置に応じたものであり、かつ、撮像レンズごとに特有のものであり、また、撮像素子に対する撮像レンズの位置が変化すると、その位置に応じたものとなる。
【００２１】
このような撮像レンズによる画像歪みを補正する画像処理を行なう場合においても、水平方向の画像歪みと、垂直方向の画像歪みとに分けて、水平方向の画像歪みを水平方向処理部３０３で補正した後、画像メモリ３０２に書き込み、垂直方向処理部３０４からのライン要求ＲＥＱに応じて、制御部３０１が、垂直方向処理に必要な複数ラインを計算して、画像メモリ３０２から読み出すようにすることが考えられる。
【００２２】
しかし、この場合の１つの要求ラインに対して、垂直方向処理に必要なラインは、図５９に示すように、水平方向の画素位置に応じて垂直アドレスを変更するような処理が必要になる。すなわち、垂直処理後に１ラインとなるべき要求ラインの画素データは、図５９の左側に示すように、垂直方向処理前の画像においては、垂直方向にずれた位置にある。
【００２３】
垂直方向処理は、要求ラインに対して、その上下複数ラインを用いて補間処理を行なうようにするものであるので、この場合には、垂直方向処理前の画像における要求ラインの画素の上下複数ラインに含まれる画素の垂直方向アドレスは、要求ラインの画素位置の水平方向位置が変化する毎に変化することになる。つまり、垂直方向処理のための画像メモリ３０２に対する垂直方向アドレスは、１ラインの処理について固定ではなく、水平方向の画素毎にランダムに変化するものとなる。
【００２４】
この結果、撮像レンズによる画像歪みを補正する画像処理の垂直方向処理においては、画像メモリ３０２からの画像データの読み出しは、水平方向の画素位置に応じて、ランダムなライン位置からの読み出し、つまり、ランダムアクセスが必要となる。
【００２５】
画像メモリ３０２からの読み出しについて、ランダムアクセスを回避する最も容易な方法は、図６０に示すように、処理要求されたラインに注目し、その１ラインについての垂直方向処理で必要とする複数ラインの最上位ラインと最下位ラインを検索し、当該最上位ラインと最下位ラインの間の範囲の複数ラインの全てを読み出す方法である。
【００２６】
この方法は、画像メモリから読み出すラインのアドレス計算は容易であるが、垂直方向処理には不必要な画素（図６０において塗りを付していない空白により示す）を多数読み出すことになり、その分、消費電力が大きくなるだけでなく、最悪はリアルタイム処理を可能とするために、クロック周波数を高くしなければならなくおそれがある。
【００２７】
これに対して、図６１に示すように、処理要求されたラインの各画素毎に、垂直方向処理で必要とする複数ラインアドレスを計算し、当該画素毎の複数ラインアドレスにより垂直方向処理に必要な画素データを読み出すようにすれば、垂直方向処理には不必要な画素は一切読み出さないので、図６０の場合のような問題は生じない。
【００２８】
しかしながら、図６１の方法の場合には、処理要求されたラインの各画素毎に、垂直方向処理で必要とする複数ラインアドレスを計算する必要がある上、その都度、読み出しコマンドを発行する必要があり、やはり消費電力の点で実用的ではない。
【００２９】
以上の点にかんがみ、出願人は、上記の消費電力の問題および処理効率の問題を改善することができる画像データ処理方法および装置を、特許文献２（特開２００６−２２２８２７号公報）として提供した。
【００３０】
この特許文献２の処理方法は、図６０のように、処理要求されたラインについての１ライン全体について垂直方向処理で必要とする複数ラインの最上位ラインと最下位ラインを検索するのではなく、１ライン分の有効画素数の１／Ｎ（Ｎは２以上の正の整数）からなる水平方向の複数画素単位で、処理要求されたラインについて垂直方向処理で必要とする複数ラインの最上位ラインと最下位ラインとを検索する。
【００３１】
図６２に、例えば水平方向の８画素単位で、処理要求されたラインについて垂直方向処理で必要とする複数ラインの最上位ラインと最下位ラインとを検索した場合の例を示す。
【００３２】
この特許文献２の方法によれば、画像メモリ領域に対する画像データの書き込みおよび読み出しは、複数画素単位であるので、上述の図６０の方法のように複数ライン分を読み出す場合に比べて、画像メモリ領域から読み出される垂直方向処理に不必要な画素の数を少なくすることができ、処理効率が向上する。
【００３３】
すなわち、水平８画素内の垂直方向の歪みの変動をチェックした後、そのアクセス範囲を決定することで、垂直方向のメモリアクセスは、水平８画素内で最低限必要な範囲だけのアクセスが可能となり、不必要なデータの読み出しは削減できる。図６０の場合と比べると、図６２に示すように、不必要なデータの読み出しは削減できていることがわかる。
【００３４】
また、特許文献２の方法においては、画像メモリに対する画像データの読み出しは、複数画素単位例えば８画素単位で行なうようにしているので、読み出しコマンドの発行回数は当該複数画素単位となり、上述の図６１の方法のように画素単位にコマンドを発生する場合に比べて少なくなり、低消費電力化することができる。
【００３５】
以上のことから、先に提供した特許文献２の手法によれば、図６０の場合および図６１の場合に存在する問題を解決して、低消費電力化と、高処理効率化を実現することができる。
【００３６】
上記の特許文献および非特許文献は、次の通りである。
【特許文献１】特許第２９５６５２７号公報
【特許文献２】特開２００６−２２２８２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００３７】
ところで、上述の図５６の処理構成において、画像メモリ３０２を、水平方向処理部３０３の処理結果を格納する第１メモリ領域と、第２メモリ領域に分け、それらの第１メモリ領域と第２メモリ領域に対する書き込みアクセスおよび読み出しアクセスを詳細に示すと、図６３に示すように表すことができる。
【００３８】
すなわち、水平方向処理部３０３の水平方向処理結果の画像データを画像メモリ３０２の第１メモリ領域３０２１に書き込む処理は書き込みアクセスＷ１、この第１メモリ領域３０２１から、前記水平方向処理結果の画像データを読み出して垂直方向処理部３０４に供給する処理は読み出しアクセスＲ１、垂直方向処理部３０４の垂直方向処理結果の画像データを画像メモリ３０２の第２メモリ領域３０２２に書き込む処理は書き込みアクセスＷ２、この第２メモリ領域３０２２から、前記垂直方向処理結果の画像データを読み出して出力画像データとする処理は読み出しアクセスＲ２とすることができる。
【００３９】
そして、例えば動作撮像データの記録時や再生時のように、入力撮像画像データを、前記水平方向処理および前記垂直方向処理をして、出力画像データを得るまでの処理を、リアルタイム処理する必要がある場合には、上述の４つのアクセスＷ１，Ｗ２，Ｒ１，Ｒ２を、特許文献２の場合には、アクセス単位である水平方向の８画素単位で行う必要がある。
【００４０】
特許文献２では、１画素当たりを１メモリアクセスサイクル（以下、メモリアクセスサイクルを単にサイクルという）とし、したがって、書き込み／読み出しの単位である水平方向の８画素単位では８サイクルを１処理単位周期とする。そして、１処理単位周期内に前記４つのアクセスＷ１，Ｗ２，Ｒ１，Ｒ２を１サイクル単位で割り当てて、それぞれのアクセスＷ１，Ｗ２，Ｒ１，Ｒ２を当該割り当てられたサイクルにおいて実行することとする。
【００４１】
この場合に、４つのアクセスＷ１，Ｗ２，Ｒ１，Ｒ２のうち、読み出しアクセスＲ１は、前述したように、水平方向の８画素のみを読み出すのではなく、各画素について垂直方向の８画素も読み出す必要があるので、１サイクルでは不足する。一方、その他の３つのアクセスＷ１，Ｗ２，Ｒ２は、それぞれ１サイクルを割り当てることで、そのアクセスを実行することができる。
【００４２】
そこで、特許文献２においては、図６４に示すように、１処理単位周期の８サイクルのうちの３サイクルは、アクセスＷ１，Ｗ２，Ｒ２にそれぞれ１サイクルずつ割り当て、読み出しサイクルＲ１には、最高で５サイクルを割り当てることができるようにしている。
【００４３】
そして、画像メモリ３０２は、４バンクの構成として、制御部３０１が、それぞれのバンクにライン単位で画像データの書き込みおよび読み出しができるようにすると共に、読み出しサイクルＲ１においては、４バンクから同時に４ラインを読み出すことができるようにしている。
【００４４】
このように、制御部３０１による垂直方向処理用の画像データの読み出しアクセスＲ１には、１処理単位周期区間で、最大５回のアクセス権を与えているおり、画像メモリ３０２は４バンク構成で４ラインを同時に読み出すことができるので、
４ライン×５回＝２０ライン
分のデータを、１処理単位周期区間で取得可能となる。
【００４５】
このため、１処理単位周期区間、すなわち、８サイクル内（リアルタイム処理可能な範囲内）では、図６５に示すように、垂直方向の画像歪みが、水平方向の８画素単位で、変動１２（垂直方向に１２画素の変動）までの歪みの「変動」の範囲内であれば、リアルタイム処理対応可能となる。
【００４６】
つまり、この実施形態の撮像装置では、水平８画素内での垂直方向の変動が１２であるならば、その補正処理をリアルタイム処理可能となる。なお、図６５において、スロット１〜５のそれぞれは、それぞれ１回のアクセスを示している。
【００４７】
以上のように、レンズ歪みが所定値以下、上述の例の場合には変動１２以内の変動である場合には、高画質な画像歪み補正と解像度変換とが実現できる。一般のデジタルカメラやデジタルビデオカメラに使用されているレンズの場合には、画像歪みによる変動は変動１２以内であるので、これで十分に対応可能である。
【００４８】
しかしながら、例えば、自動車の後方に撮像装置を付けて、その撮像画像を車庫入れの際に参照するようにする場合などにおいては、魚眼レンズなどの超広角レンズが使用されるようになっている。この魚眼レンズのような特殊レンズを使用する場合には、垂直方向の画像歪みの変動が１２画素を超えることが生じるので、１処理単位周期区間周期では、水平方向の８画素単位で必要とする複数ラインからの画像データを読み出すことができなくなるという問題がある。
【００４９】
この発明は、このように画像メモリに対して要求されたアクセスが、１処理単位周期区間内でできなくなったときにも、当該アクセスを完了することができるようにすることを目的とする。
【課題を解決するための手段】
【００５０】
上記の課題を解決するために、請求項１の発明は、
画像データを格納する画像メモリと、
前記画像メモリに書き込む画像データを出力する、または、前記画像メモリから読み出した画像データを受けて所定の処理を行う複数個の処理手段と、
前記複数個の処理手段からの書き込みまたは読み出しの要求を受けて、前記画像メモリに対する画像データの書き込みアクセスまたは画像データの読み出しアクセスを制御するメモリ制御手段と、
を備え、
前記メモリ制御手段は、
前記画像メモリに対して、１ライン分の有効画素数の１／Ｎ（Ｎは２以上の正の整数）からなる水平方向の複数画素単位で、前記書き込みアクセスの１サイクルまたは前記読み出しアクセスの１サイクルを行なうと共に、
複数サイクルを処理単位周期として、前記複数個の処理手段のそれぞれからの前記要求に応じた書き込みまたは読み出しのアクセス処理を、前記処理単位周期内に１サイクル単位ですべて割り当てて実行し、かつ、前記処理単位周期を繰り返すようにするものであり、
さらに、前記メモリ制御手段は、
前記処理単位周期の１周期内に割り当てられた前記処理手段のそれぞれに対応して割り当てられた前記サイクル内で、それぞれの前記処理手段からの前記要求に基づいて指定された前記アクセス処理が完了できるか否かを判別する判別手段と、
前記判別手段で前記アクセス処理が完了できないと判別したときに、前記要求を出した前記処理手段に対して、前記処理単位周期の待機指示信号を送って、新たな前記要求の送出を一時停止させるようにすると共に、前記処理単位周期の１周期内でできないとされた前記アクセス処理を、当該アクセス処理を行うべき前記処理単位周期に続く１または複数の処理単位周期において前記処理手段に対応して割り当てた前記サイクルにおいても実行するようにするアクセス実行手段と、
を備えることを特徴とする画像データ処理装置を提供することを特徴とする。
【００５１】
上述の構成の請求項１の発明においては、判別手段で、処理手段のそれぞれに対応して割り当てられたサイクル内で、それぞれの処理手段からの要求に基づいて指定されたアクセス処理が完了できるか否かが判別される。
【００５２】
そして、アクセス実行手段は、判別手段でアクセス処理が完了できないと判別したときに、要求を出した処理手段に対して、処理単位周期の待機指示信号を送って、新たな要求の送出を一時停止させるようにすると共に、処理単位周期の１周期内でできないとされたアクセス処理を、当該アクセス処理を行うべき処理単位周期に続く１または複数の処理単位周期において前記処理手段に対応して割り当てたサイクルにおいても実行するようにする。
【００５３】
これにより、処理手段からの要求に応じた処理ができなくなることが無くなり、前述した課題を解決することができる。
【発明の効果】
【００５４】
この発明によれば、画像メモリに対するアクセスを、１処理単位周期区間内でできなくなったときにも、当該アクセスの処理を完了することができる。
【発明を実施するための最良の形態】
【００５５】
［この発明の実施形態］
以下に説明するこの発明による画像データ処理装置の実施形態は、撮像素子としてＸ−Ｙアドレス型の固体撮像素子の代表例であるＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージャ（ＣＭＯＳ型の固体撮像素子）を用いる撮像装置の場合の例である。そして、この撮像装置において、画像処理として、撮像した撮像画像について、手ぶれによる撮像画像歪みと、撮像レンズの歪曲収差特性による撮像画像歪みとを、併せて補正すると共に、電子ズーム処理および所望の解像度の出力画像データを得る解像度変換処理を行なうことができる場合である。
【００５６】
なお、この実施形態の撮像装置は、動画像および静止画像の両方を撮像可能であり、動画像の撮像画像データを処理する場合と、静止画像の撮像画像データを処理する場合の、何れの場合にも、上述の画像処理を適用することができるものである。
【００５７】
この発明の実施の形態の撮像装置を説明する前に、ＣＭＯＳイメージャなどのＸ−Ｙアドレス型の固体撮像素子に特有の手ぶれによる画像ひずみについて説明する。
【００５８】
例えば従来一般的に用いられているＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）を用いた固体撮像素子（以下、ＣＣＤを用いた固定撮像素子をＣＣＤイメージャという）の場合には、全画素を同時期に露光し、１フレーム（または１フィールド。以下同じ）の画像データについては、データ取り出しタイミングが全く同一であるので、手ぶれ変位量としては、図２において矢印で示すように、１フレーム分の全画素について、１つの手ぶれ変位量Ｖｃｓを考えればよい。
【００５９】
つまり、図２において、本来、被写体は実線で示す領域ＦＬａに蓄積されるものであったのに、手ぶれにより点線で示す領域ＦＬｂに移動した場合には、当該フレームで１つの手ぶれ変位量Ｖｃｓを検出し、当該手ぶれ変位量Ｖｃｓ分だけ、読み出し画素位置（サンプリング画素位置）を補正することにより、手ぶれに起因する撮像画像歪を補正することができる。
【００６０】
なお、図２に示すように、一般に、撮像素子では、その全画素を有効画素として扱うのではなく、全画素からなる領域（以下、実効画像領域という）ＡＦＬのうちの、周辺の領域を除く、水平有効領域および垂直有効領域で定まる中央部を有効画像領域ＥＦＬとして用いているものが多い。
【００６１】
このようなイメージャを用いた場合、手ぶれ補正により読み出し画素位置が変化しても、手ぶれ量が、実効画像領域ＡＦＬと有効画像領域ＥＦＬとの差分よりも小さい範囲では、イメージャが元々有している画素のデータを用いて歪み補正をすることができるので、補間処理などにより、手ぶれ補正に必要なデータを生成する場合に比べて、画像の劣化は少なくなる。
【００６２】
これに対して、ＣＭＯＳ型イメージャのようなＸ−Ｙアドレス型の固体撮像素子の場合には、画面の水平方向（Ｘ方向）の位置と、垂直方向（Ｙ方向）位置とを指定することにより、画素単位で撮像データを読み出すことが可能である。ただし、ＣＭＯＳイメージャなどのＸ−Ｙアドレス型の固体撮像素子においては、実用上は、１水平ライン分の画素群単位で読み出し（サンプリング）して、撮像画像データを出力するものが一般的である。
【００６３】
このように、ＣＭＯＳイメージャから撮像データを水平ライン単位で読み出す場合には、図３に示すように、各水平ラインのついての露光期間は、水平ライン単位の読み出し時間差に応じたΔｔだけ、時間的なずれを生じる。なお、１画素単位で撮像画像データの読み出しがなされる場合であっても、ライン間の読み出し時間差に比べて、画素間の読み出し時間差は無視できるほど小さい。そこで、１画素単位で撮像画像データの読み出しがなされる場合であっても、同様な露光期間の時間的なずれを生じるものとすることができる。
【００６４】
このため、ＣＭＯＳイメージャを用いた撮像装置により、例えば走る電車の中から外の景色を撮影すると、本来は図４（Ａ）のような画像が得られるべきものであるのに、図４（Ｂ）に示すように、本来鉛直に立っている家や木が傾いた画像が出力撮像画像となってしまう。これがＣＭＯＳイメージャ特有のフォーカルプレーン現象である。
【００６５】
図４（Ｂ）の画像例は、水平方向に移動しながら撮影したものであるため、被写体が傾いて撮像されるが、例えば垂直方向に移動しながら撮影した場合には、図示は省略するが、被写体が垂直方向に縮んだり、伸びたりするような画像となる。
【００６６】
この現象が発現するのは、ＣＭＯＳイメージャを使用する撮像装置を持つ撮影者が高速に移動しながら撮影したり、逆に、固定位置にいる撮影者が高速に移動する被写体を撮影したりした場合であり、撮像装置と被写体の相対速度が速い場合に顕著となる。ただし、一般的な撮影において、このような状況は稀であるといえる。
【００６７】
しかしながら、撮影者が撮像装置を手で持って撮影している場合に、撮像装置を持っている撮影者の手が、微小かつ高速に振動した場合、すなわち、手ぶれが発生した場合、上述したフォーカルプレーン現象が発現することになる。
【００６８】
なぜなら、ＣＭＯＳイメージャの場合の手ぶれ（以下、ＣＭＯＳ手ぶれという）の値は、ＣＣＤイメージャのように１フレーム内で１個の値ではなく、前述したように、１フレーム内における画素やライン毎のサンプリング時刻の違いにより、画素や水平ラインごとに異なるものとなる。このため、ＣＭＯＳイメージャを用いた撮像装置においては、単に、１フレーム単位での手ぶれ量を用いた補正を行っても、前述したフォーカルプレーン現象による歪みは、補正されずに残ってしまう。
【００６９】
この際、手ぶれの方向、大きさ、速度が、１フレーム内（１枚の撮像画像内）で一律でないことが原因となって、ＣＭＯＳイメージャを用いた撮像装置で、ＣＭＯＳ手ぶれが生じた時の被写体の撮像画像出力は、図４（Ｃ）に示すように、グニャグニャした奇妙な画像歪みが生じたものとなる。
【００７０】
そこで、この実施の形態では、１水平ライン単位で撮像画像データがＣＭＯＳイメージャから読み出されるとき、各水平ラインについての手ぶれによる位置変位量（以下、手ぶれ量という）を検出し、当該検出した手ぶれ量分だけ、発生した手ぶれとは逆方向にずれた位置から当該水平ラインのデータを読み出すように補正するものである。
【００７１】
しかし、手ぶれ量を各水平ラインについて得ることは、手ぶれを検出するセンサのサンプリング周波数などの条件から困難であることに鑑み、この実施形態においては、画面の垂直方向の複数ライン分置きの位置での手ぶれ量を、離散的に検出する。そして、手ぶれ検出を行なうライン以外の、手ぶれ量を直接的には検出しないラインに対する手ぶれ量は、検出された手ぶれ量を用いるようにする。
【００７２】
先ず、図５を用いて、この発明による撮像画像信号の歪み補正方法の実施形態における手ぶれなどによる撮像素子の位置的変化に基づくフォーカルプレーン現象を含む撮像画像歪みの補正処理の概要を説明する。
【００７３】
図５の概要説明図においては、図５（Ａ）に示すように、画像に生じるＣＭＯＳ手ぶれによる歪みを判りやすく示すために、歪みの無いオリジナルの画像として多数個の長方形からなる格子縞模様の画像を想定している。したがって、ＣＭＯＳ手ぶれによる画像歪みは、当該格子縞模様を構成する長方形の変形歪みとして現れるものとなる。
【００７４】
なお、この実施形態においても、ＣＭＯＳイメージャは、図２に示したような１画面とする水平有効領域および垂直有効領域で定まる有効画像領域ＥＦＬ（１垂直周期分）よりも広い範囲の実効画像領域ＡＦＬを有するものが用いられるものである。なお、図５（Ａ）〜（Ｄ）に示した１画面分の画像は、図２の有効画像領域ＥＦＬの大きさの画像である。
【００７５】
この実施形態では、水平方向の画素クロックの速度は、手ぶれの速度よりも十分に早いとし、また、撮像画像データの読み出しは、１水平ライン単位で順次に行なうものとして、手ぶれ補正は、１水平ライン単位で行なうようにする。
【００７６】
また、この実施形態では、図５（Ｂ），（Ｃ），（Ｄ）に示すように、ＣＭＯＳイメージャの有効画像領域ＥＦＬ分の画像区間は、垂直方向に複数に等分割し、各分割画像区間Ｐｄｉｖでは、同じ手ぶれ速度の手ぶれ変位を受けるものと仮定している。ここで、分割数は、手ぶれ補正したときに、必要十分な補正効果が得られる分割画像区間Ｐｄｉｖの大きさを考慮して定められる。以下に説明する例では、有効画像領域ＥＦＬの画像区間を垂直方向に８分割するようにする。すなわち、この例では、分割画像区間Ｐｄｉｖは、垂直同期信号の１周期を１／８に分割した区間となる。
【００７７】
１つの分割画像区間Ｐｄｉｖは、複数水平ライン分からなるが、この実施形態では、同じ分割画像区間Ｐｄｉｖに含まれる複数水平ラインは同じ手ぶれ速度の手ぶれ変位を受けるものと仮定して手ぶれ補正処理を行なうものである。
【００７８】
そして、この実施形態では、８個の分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７のそれぞれの先頭の水平ラインに対する手ぶれ速度ベクトルを、図５（Ｂ）の左側の矢印に示すようなものとして、手ぶれ速度検出手段により検出する。すなわち、この例では、手ぶれ速度ベクトルは、１画面分の撮像画像について、８箇所において、離散的に検出するようにする。
【００７９】
図５（Ｂ）の画像は、手ぶれ速度ベクトルが、各分割画像区間Ｐｄｉｖで、左側の矢印のようなものとした時に生じる手ぶれによる撮像画像の歪みを示している。この実施形態では、この手ぶれによる撮像画像の歪みを、水平方向処理と垂直方向処理とに分けて、それぞれの方向の歪みを別々に補正するようにする。
【００８０】
補正処理の詳細については後述するが、この実施形態では、先ず、水平方向の歪みについて補正処理を行ない、次いで、垂直方向の歪みについての補正処理を行なう。この場合に、１画面分の撮像画像のすべてのデータについての水平方向の歪み補正処理が完了する前であっても、垂直方向の歪み補正処理が可能になった段階で、垂直方向の歪み補正処理を開始して、水平方向の歪み補正処理と並行して行なうようにすることにより、効率良く歪み補正処理を行なうようにする。
【００８１】
そこで、この実施形態では、先ず、手ぶれによる水平方向の画像歪みを補正するために、図５（Ｃ）の左側の矢印および図６の左側の矢印で示すように、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７について検出した手ぶれ速度ベクトルＶｅｃ（Ｖｅｃ＿０〜Ｖｅｃ＿７）の水平方向成分の逆符号成分（以下、この手ぶれ速度ベクトルの水平方向成分の逆符号成分を、水平補正速度成分という）Ｘ＿ＳＴＢ（Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７）を求める。
【００８２】
そして、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７内においては、各水平ラインのそれぞれについての水平方向の手ぶれ量を補正するための補正量として、上述のようにして求めた水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７を、それぞれの水平ラインについて時間積分（各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の先頭の水平ライン時点を基準点とした時間で積分）して算出する。図６の右側に、その積分結果の値としての水平方向の手ぶれ補正量（以下、水平手ぶれ補正量という）ＳＸ＿ＡＤＤを示す。
【００８３】
この図６から判るように、各水平ラインのそれぞれについての水平手ぶれ補正量ＳＸ＿ＡＤＤは、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７においては、一定の傾きで変化し、かつ、積分であるので、分割画像区間の境目では折れ線とはなるが、連続的なものとなり、ずれは生じない。
【００８４】
水平方向の歪み補正処理においては、以上のようにして求められた各ラインについての手ぶれ水平補正量ＳＸ＿ＡＤＤを用いて、ＣＭＯＳイメージャ上での各水平ラインの水平方向の読み出し開始位置を補正することにより、撮像画像を補正処理する。すなわち、各水平ラインの読み出し開始位置を、図５（Ｂ）における手ぶれに応じて水平方向にずれた位置からとすることにより、図５（Ｃ）の画像に示すように、水平方向の歪みが補正されることになる。
【００８５】
この図５（Ｃ）の画像は、図５（Ｂ）の画像歪みの内の水平方向の歪みは補正されて除去されているが、垂直方向の歪みが残っている。
【００８６】
そこで、この実施形態では、手ぶれによる垂直方向の画像歪みを補正するため、図５（Ｄ）の左側の矢印に示すように、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７について検出した手ぶれ速度ベクトルの垂直方向成分の逆符号成分（以下、この手ぶれ速度ベクトルの垂直方向成分の逆符号成分を、垂直補正速度成分という）Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７を求める。
【００８７】
そして、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７内においては、各水平ラインのそれぞれについての垂直方向の手ぶれ量を補正するための補正量として、上述のようにして求めた垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７を、それぞれの水平ラインについて時間積分（各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の先頭の水平ライン時点を基準点とした時間で積分）して算出する。
【００８８】
この積分結果としての垂直方向の手ぶれ補正量（以下、垂直手ぶれ補正量という）ＳＹ＿ＡＤＤは、ここでは、図示を省略するが、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７においては、一定の傾きで変化し、かつ、積分であるので、分割画像区間の境目では折れ線とはなるが、連続的なものとなり、ずれは生じない。
【００８９】
垂直方向の歪み補正処理においては、以上のようにして求められた各ラインについての垂直手ぶれ補正量ＳＹ＿ＡＤＤを用いて、ＣＭＯＳイメージャ上での各水平ラインの垂直方向の読み出し開始位置を補正することにより、撮像画像を補正処理する。これにより、図５（Ｄ）の画像に示すように、水平方向の場合と同様にして垂直方向の歪みが補正され、歪みの除去された撮像画像データ出力が得られる。
【００９０】
なお、上述の説明では、手ぶれ速度ベクトルから水平成分および垂直成分を抽出するときに、その逆符号成分を算出して、補正速度成分とするようにしたが、速度成分あるいは手ぶれ量を逆符号として、補正速度成分あるいは手ぶれ補正量とするのは、撮像画像データに対する手ぶれ補正処理の実行開始前であれば、どの時点であっても良い。
【００９１】
次に、撮像レンズの歪曲収差特性による撮像画像歪みの補正について説明する。
【００９２】
前述したように、一般に撮像レンズは歪曲収差特性を有しており、このため、例えば図５８（Ａ）に示すような格子縞の被写体を、歪曲収差が大きい撮像レンズを用いて撮像したときには、その撮像画像は、図５８（Ｂ）に示すように、格子縞を構成する縦横の直線が、湾曲するような画像歪みを生じる。この撮像レンズによる画像歪みは、撮像素子の各画素位置に応じたものであり、かつ、撮像レンズごとに特有のものであり、また、撮像素子に対する撮像レンズの位置が変化すると、その位置に応じたものとなる。
【００９３】
したがって、ＣＭＯＳイメージャのようなＸ−Ｙアドレス型の撮像素子を用いて撮像する装置においては、手ぶれによる画像歪みを補正しただけでは、撮像レンズの歪曲収差特性に基づく画像歪みが残ってしまう。
【００９４】
そこで、この実施形態では、Ｘ−Ｙアドレス型の撮像素子を用いた撮像装置において、手ぶれ等が原因で生じる撮像画像の歪みと共に、撮像レンズの歪曲収差特性に基づく画像歪みを併せて軽減するようにしている。
【００９５】
この実施形態では、水平手ぶれ補正量および垂直手ぶれ補正量に、撮像レンズの歪曲収差特性に基づく画像歪み（以下、レンズ歪みという）の補正量を加算し、その加算した補正量により撮像画像データを補正処理することにより、手ぶれによる画像歪みと撮像レンズによる画像歪みの両方を同時に補正するようにするものである。
【００９６】
この実施形態では、以上のように、手ぶれ補正を水平処理と垂直処理に分けるのに合わせて、レンズ歪みの補正も水平処理と垂直処理に分けるようにする。前述もしたように、レンズ歪みは、撮像レンズに固有のものである。そこで、撮像素子上における各画素位置におけるレンズ歪みの補正量は、予め用意することができる。
【００９７】
この実施形態では、撮像素子上における各画素位置におけるレンズ歪みの補正量は、各画素位置に対する補正ベクトルとしてエンコードされて、撮像装置に設けられる補正量デコード部に与えられる。補正量デコード部は、各画素位置の座標（撮像素子上における絶対座標）を引数として、当該画素位置における前記補正ベクトルを得ると共に、その補正ベクトルをデコードして、当該画素位置におけるレンズ歪みの補正量の水平方向補正成分と垂直方向補正成分とを得る。
【００９８】
そして、撮像素子からの撮像画像データの各水平ラインの画素データは、上述のようにして求められた水平手ぶれ補正量ＳＸ＿ＡＤＤにより、水平方向に手ぶれ速度の水平方向成分に応じた分だけシフトされた座標位置のものとされるが、当該座標位置（画素位置）におけるレンズ歪みの補正量の水平方向補正成分の分だけ、当該画素データの座標位置をさらに水平方向にシフトするように補正する。ここで、レンズ歪みの補正量の水平方向補正成分は、前記水平方向手ぶれ補正量ＳＸ＿ＡＤＤにより補正された画素座標位置を引数として、上述のようにして取得される。
【００９９】
また、垂直方向についても、撮像素子からの撮像画像データの各水平ラインの画素データは、上述のようにして求められた垂直手ぶれ補正量ＳＹ＿ＡＤＤにより、垂直方向に手ぶれ速度の垂直方向成分に応じた分だけシフトされた座標位置のものとされるが、当該座標位置（画素位置）におけるレンズ歪みの補正量の垂直方向補正成分の分だけ、当該画素データの座標位置をさらに垂直方向にシフトするように補正する。ここで、レンズ歪みの補正量の垂直方向補正成分は、前記垂直方向手ぶれ補正量ＳＹ＿ＡＤＤにより補正された画素座標位置を引数として、上述のようにして取得される。
【０１００】
なお、レンズ歪みは、光学ズームにより撮像レンズの光軸上の位置が変更されるときには、その光軸上の位置に応じたものとなる。このため、光学ズームを用いる場合には、撮像レンズの光軸上の位置に応じた補正ベクトルが、前記補正量デコード部に供給されるように構成される。
【０１０１】
さらに、この実施形態の撮像装置では、画像処理として、上述のような手ぶれ補正や撮像レンズの歪曲収差特性に基づく画像歪みの補正のみではなく、電子ズームによる画像の拡大・縮小処理および出力撮像画像の解像度を、例えばユーザが指定した所望のものとするようにするための画像処理も行なうようにする。
【０１０２】
［この発明の実施形態の構成］
次に、この発明による画像データ処理方法および装置の実施形態を、図を参照しながら説明する。図１は、この発明による画像データ処理装置の実施形態が適用された撮像装置のブロック図を示すものである。
【０１０３】
図１に示すように、撮像レンズ１Ｌを備えるカメラ光学系１を通じた被写体からの入射光は、撮像素子２に照射されて撮像される。この例では、撮像素子２は、前述したようにＸ−Ｙアドレス型の固体撮像素子の一例であるＣＭＯＳイメージャで構成されている。
【０１０４】
この例では、撮像素子２からは、タイミング信号発生部４からのタイミング信号により１ライン単位が同時に取り出される（サンプリングされる）ことによりアナログ撮像信号とされて出力される。そして、出力されたアナログ撮像信号は、データ変換部３に供給される。
【０１０５】
データ変換部３は、これに入力されたアナログ撮像信号に必要な補正処理を加えた後、タイミング信号発生部４からのクロック信号に同期してデジタル撮像信号に変換する。そして、データ変換部３は、デジタル撮像信号を輝度信号成分と色差信号成分とからなる撮像画像データＤｉｎに変換し、その撮像画像データＤｉｎを信号処理部５に供給する。
【０１０６】
信号処理部５は、データ変換部３からの撮像画像データＤｉｎについて、これに接続されている画像メモリ６への書き込み／読み出しを制御しながら、手ぶれ補正およびレンズ歪み補正の補正処理や、撮像画像の電子ズーム処理（電子的拡大・縮小処理）を行なうとともに、指定された解像度の出力画像データＤｏｕｔを生成して出力する。
【０１０７】
画像メモリ６は、１個のメモリで構成されるが、４つのバンクＢＡＮＫ０，ＢＡＮＫ１，ＢＡＮＫ２，ＢＡＮＫ３に分割されている。また、この実施形態では、画像メモリ６は、信号処理部５に含まれるメモリ制御部によるアドレス管理および書き込み／読み出し制御により、第１メモリ領域６１と第２メモリ領域６２との２つのメモリ領域に分割されて使用される。つまり、画像メモリの４つのバンクＢＡＮＫ０，ＢＡＮＫ１，ＢＡＮＫ２，ＢＡＮＫ３は、それぞれ第１メモリ領域６１と、第２メモリ領域６２とに分割されて使用される。
【０１０８】
そして、この実施形態では、図７に示すように、第１メモリ領域６１と第２メモリ領域６２との分割点のアドレス（セパレートアドレス）ＳｅｐＡｄｒは、４つのバンクＢＡＮＫ０，ＢＡＮＫ１，ＢＡＮＫ２，ＢＡＮＫ３について同一とされ、かつ、このセパレートアドレスＳｅｐＡｄｒは、対象となる画像処理に応じて、後述するように、変更されるようにされている。
【０１０９】
このセパレートアドレスＳｅｐＡｄｒは、後述するように、制御部１０から信号処理部５に与えられて、設定される。制御部１０には、ユーザインターフェース９を通じて、ユーザによる出力解像度の選択入力、電子ズーム率の入力、手ぶれ補正の有無の入力、レンズ歪み補正の有無の入力などが供給されており、制御部１０は、当該入力情報に基づいて、セパレートアドレスＳｅｐＡｄｒを決定する。その決定方法については後述する。
【０１１０】
後述もするように、この実施形態では、第１メモリ領域６１には、水平方向の画像処理結果の撮像画像データが書き込まれる。そして、この第１メモリ領域６１に、垂直方向の画像処理が開始できるだけの容量の撮像画像データが書き込まれると、当該書き込まれた撮像画像データが、その先頭から読み出される。そして、第１メモリ領域６１から読み出された撮像画像データは、垂直方向の画像処理がなされた後、その垂直方向の画像処理結果の撮像画像データが第２メモリ領域６２に書き込まれる。
【０１１１】
そして、この実施形態においては、画像データの画像メモリ６に対する書き込みおよび読み出しは、複数画素単位でなされる。ここで、書き込み及び読み出しの単位とされる複数画素の画素数は、１ラインの有効画素数の１／Ｎ（Ｎは２以上の正の整数）であることが好ましく、この例では、８画素単位でなされる。
【０１１２】
そして、後述するように、画像メモリ６の４個のバンクＢＡＮＫ０，ＢＡＮＫ１，ＢＡＮＫ２，ＢＡＮＫ３に対する画像データの書き込みは、所定のデータ長、例えば１ライン分ごとに、バンクを順次に切り換えて行ない、また、画像データの画像メモリ領域からの読み出しは、前記所定のデータ長分について、複数の前記バンクから同時に行なう。
【０１１３】
すなわち、例えば、１つのバンクに、例えば１ライン分を書き込むと、次のバンクに次の１ライン分を書き込むというようにして、４個全てのバンクにそれぞれ１ライン分を書き込んだら、最初のバンクに戻って次の１ライン分を書き込むようにする。以降、同じ動作を続けることにより、画像の書き込みを行なう。
【０１１４】
また、画像メモリ６からの画像データの読み出しは、例えば、連続する２ライン分を、２個のバンクから同時に読み出す、あるいは、連続する４ライン分を、４個のバンクから同時に読み出すようにする。
【０１１５】
画像メモリ６の４個のバンクＢＡＮＫ０，ＢＡＮＫ１，ＢＡＮＫ２，ＢＡＮＫ３の第１メモリ領域６１および第２メモリ領域６２は、後述するように、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）動作により書き込みながら読み出しを行なうように制御されて、遅延は、あるものの、撮像画像データのリアルタイム処理がなされる。この場合に、この実施形態では、各バンクＢＡＮＫ０，ＢＡＮＫ１，ＢＡＮＫ２，ＢＡＮＫ３の第１メモリ領域６１および第２メモリ領域は、それぞれリングメモリバッファとして用いるようにアドレス制御される。
【０１１６】
そして、第１メモリ領域６１の記憶容量（４バンクの第１メモリ領域の合計の容量）は、垂直方向の画像処理が開始できるだけの容量に所定のマージン分を加えたものでよいので、１画面分（１フィールドあるいは１フレーム）以下とされる。この実施形態では、第１メモリ領域６１の記憶容量（４バンクの第１メモリ領域の合計の容量）は、少なくとも垂直解像度変換用のデジタルフィルタのタップ数に応じた画像ライン数分の容量を必要とする。
【０１１７】
一方、第２メモリ領域６２（４バンクの第２メモリ領域の合計の容量）には、この実施形態では、少なくとも解像度変換後の出力画像データＤｏｕｔの１画面分を記憶する記憶容量が必要である。つまり、第２メモリ領域６２の記憶容量（４バンクの第２メモリ領域の合計の容量）は、出力画像データＤｏｕｔの１画面分（１フィールド分または１フレーム分）以上である必要がある。
【０１１８】
しかし、第１メモリ領域６１（４バンクの第１メモリ領域の合計の容量）および第２メモリ領域６２の記憶容量（４バンクの第２メモリ領域の合計の容量）は、水平方向の処理結果のデータ量および出力画像データＤｏｕｔのデータ量に依存するので、撮像素子２の画素数が変化しても、変化させる必要はない。もっとも、画像メモリ６全体の記憶容量は、選択できる解像度のうちで、最も高解像度の場合を想定して、決定される。当該画像メモリ６を用いた画像処理については、後でさらに詳述する。
【０１１９】
さらに、後述するように、各バンクの第１メモリ領域６１および第２メモリ領域６２では、画像データの書き込みが、その前に書き込まれた画像データの読み出しを追い越さないように、信号処理部５のメモリ制御部により、アドレス制御されるものである。
【０１２０】
なお、この画像メモリ６に対する画像データの書き込みおよび読み出しアクセス方法の詳細については、後で詳述する。
【０１２１】
信号処理部５には、タイミング信号発生部４から、出力画像データの水平周期に同期する信号、すなわち、水平同期信号Ｈ−ＳＹＮＣと、出力画像データの垂直周期に同期する信号、すなわち、垂直同期信号Ｖ−ＳＹＮＣと、１画素周期のクロック信号ＣＬＫと、それらに同期するクロックが、処理タイミング信号として供給される（図１では、これらの信号の図示は省略）。
【０１２２】
また、撮影時に撮像装置を保持している撮影者による手ぶれ速度を検出する手ぶれ速度検出部７が設けられる。この手ぶれ速度検出部７は、撮像素子２の、撮像画像の水平方向および／または垂直方向の、所定速度以上の比較的高速の位置的変化を手ぶれとして、その速度ベクトルを検出する。ここで、比較的高速の位置的変化としたのは、撮影者による撮像装置のパンニング操作（左右方向への移動）や、チルティング操作（上下方向の移動）を、手ぶれとして検出しないためである。
【０１２３】
この手ぶれ速度検出部７は、例えば撮像装置の筐体に取付けられた角速度センサにより構成される。この手ぶれ速度検出部７の検出出力は、手ぶれ速度ベクトルである。この手ぶれ速度検出部７は、角速度センサの代わりに加速度センサを用いて構成しても良い。加速度センサを用いる場合には、加速度センサ値（方向成分も含む）を積分することで、手ぶれ速度（手ぶれ速度ベクトル）を検出し、手ぶれ速度検出部７の検出出力とするようにする。
【０１２４】
この手ぶれ速度検出部７の検出出力は、手ぶれ速度検出処理部８に供給される。この手ぶれ速度検出処理部８には、タイミング信号発生部４からサンプリング信号Ｓｐが供給され、このサンプリングＳｐにより前記手ぶれ速度検出部７の検出出力（手ぶれ速度ベクトル）がサンプリングされて、前述した各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７についての８個の手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７が求められる。
【０１２５】
そして、手ぶれ速度検出処理部８では、８個の手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７を、その水平方向成分と、垂直方向成分とに分離し、それら水平方向成分および垂直方向成分の逆符号成分を水平補正速度成分および垂直補正速度成分として生成する。そして、生成した水平補正速度成分および垂直補正速度成分を信号処理部５に供給する。
【０１２６】
また、この例の撮像装置は、全体を制御するためのマイクロコンピュータを搭載する制御部１０を備える。この制御部１０には、ユーザインターフェース９が接続されている。そして、このユーザインターフェース９を通じて、ユーザからの画像拡大・縮小指示入力や、解像度指示入力、また、ズーム倍率の値の指示入力などが制御部１０に与えられる。制御部１０は、それらの指示入力に応じた制御信号を形成し、タイミング信号発生部４や信号処理部５に供給する。
【０１２７】
また、この実施形態では、制御部１０は、ユーザインターフェース９を通じた前述の画像処理に関する入力に応じて、画像メモリ６の第１メモリ領域６１と第２メモリ領域との分割点アドレスとしてのセパレートアドレスＳｅｐＡｄｒを設定し、信号処理部５に供給するようにする。信号処理部５のメモリ制御部は、このセパレートアドレスＳｅｐＡｄｒにより、第１メモリ領域６１と第２メモリ領域６２とを認識して、これらのメモリ領域に対する画像データの書き込みおよび読み出しを実行する。
【０１２８】
また、レンズ歪み補正用データ導出・エンコード部１１が設けられる。この補正用データ導出・エンコード部１１は、ユーザインターフェース９を通じて入力されたレンズ１Ｌの歪曲収差に関するデータおよび制御部１０からの光学ズームの操作情報に応じた撮像レンズの光軸位置に関する情報などから、撮像素子２の全画素の撮像素子２上の各位置に応じたレンズ歪み補正ベクトルを予め計算する。そして、補正用データ導出・エンコード部１１は、求めた補正ベクトルを圧縮するなどしてエンコードし、レンズ歪み補正用データデコード部１２に供給する。
【０１２９】
この補正用データ導出・エンコード部１１は、非常に負荷の大きな演算が必要となるので、専用のマイクロコンピュータやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）が用いられて構成される。
【０１３０】
レンズ歪み補正用データデコード部１２は、レンズ歪み水平補正量データデコード部１２１と、レンズ歪み垂直補正量データデコード部１２２とを備える。そして、補正用データ導出・エンコード部１１からのレンズ歪み補正ベクトルから、レンズ歪み水平補正量データデコード部１２１は、レンズ歪み水平補正量データを生成し、レンズ歪み垂直補正量データデコード部１２２は、レンズ歪み垂直補正量データを生成する。
【０１３１】
そして、レンズ歪み水平補正量データデコード部１２１、レンズ歪み垂直補正量データデコード部１２２のそれぞれは、信号処理部５からの歪み補正対象部位としての画素位置の情報を引数として受けて、当該画素位置における水平レンズ歪み補正量データ、垂直レンズ歪み補正量データをそれぞれ信号処理部５に返す。
【０１３２】
信号処理部５では、画像メモリ６への画像データの書き込み／読み出しを制御しながら、後で詳述するようにして、手ぶれ速度検出処理部８からの水平補正速度成分と垂直補正速度成分とから、各水平ラインの水平補正変位量ＳＸ＿ＡＤＤおよび垂直補正変位量ＳＹ＿ＡＤＤを算出する。
【０１３３】
そして、信号処理部５では、これら算出した水平補正変位量ＳＸ＿ＡＤＤおよび垂直補正変位量ＳＹ＿ＡＤＤと、前記レンズ歪み補正データデコード部１２からのレンズ歪み水平補正量データおよびレンズ歪み垂直補正量データとを用いて、データ変換部３からの撮像画像データＤｉｎについての手ぶれによる画像歪み補正処理およびレンズ歪みを補正処理し、出力画像データＤｏｕｔを得る。
【０１３４】
なお、前述したように、信号処理部５では、上述の歪み補正処理の他、電子ズーム（画像拡大・縮小）処理を行なうと共に、標準精細度、高精細度などに応じた解像度変換処理なども行なう。
【０１３５】
信号処理部５からの出力画像データＤｏｕｔは、記録処理部１３により例えばデータ圧縮されると共に、記録メディア１４への記録に適した変調が施された後、記録メディア１０に記録される。記録メディア１４としては、磁気テープや磁気ディスクなどの磁気記録媒体、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの光ディスク媒体、ハードディスク、カード型メモリなどを用いることができる。なお、出力撮像画像データをインターネットやワイヤレス通信手段を介して記録メディア１４に記憶するようにすることもできる。
【０１３６】
信号処理部５からの出力画像データＤｏｕｔは、また、表示系処理部１５を通じて表示モニターとしての、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などのディスプレイに供給され、画像表示される。記録メディア１４に記録された撮像画像データも、再生処理部１６により再生され、表示系処理部１５を通じて表示モニターに供給され、再生画像表示される。
【０１３７】
次に、図１の信号処理部５、画像メモリ６、手ぶれ速度処理部８の部分の、より詳細な構成ブロック図を図８に示す。
【０１３８】
すなわち、手ぶれ補正およびレンズ歪み補正処理や電子ズーム処理、解像度変換処理、出力データ生成処理のために、信号処理部５は、水平処理ブロック５１と、垂直処理ブロック５２と、レジスタブロック５３と、メモリ制御部の機能を備えるメモリインタフェース５４とを含んでいる。そして、水平処理ブロック５１は、水平処理用手ぶれ補正量積分部５１１と水平画像処理部５１２とを備え、また、垂直処理ブロック５２は、垂直処理用手ぶれ補正量積分部５２１と垂直画像処理部５２２とを備える。
【０１３９】
また、水平画像処理部５１２に対して、レンズ歪み水平補正量データデコード部１２１が接続され、垂直画像処理部５２２に対して、レンズ歪み垂直補正量データデコード部１２２が接続される。
【０１４０】
水平処理ブロック５１は、データ変換部３からの撮像画像データＤｉｎに対して水平方向の処理を施す。この水平方向の処理には、水平方向の手ぶれ補正およびレンズ歪み補正処理、水平方向の画像拡大・縮小処理、水平方向の解像度変換を含む。垂直処理ブロック５２は、撮像画像データＤｉｎに対して垂直方向の処理を施す。この垂直方向の処理には、垂直方向の手ぶれ補正およびレンズ歪み補正処理、垂直方向の画像拡大・縮小処理、垂直方向の解像度変換を含む。
【０１４１】
また、レジスタブロック５３は、手ぶれ速度検出処理部８で検出された手ぶれ速度の情報を、水平処理ブロック５１および垂直処理ブロック５２に受け渡す処理を行なう。レジスタブロック５３は、また、画像メモリ６のセパレートアドレスＳｅｐＡｄｒを、メモリインタフェース５４に受け渡す処理も行なう。
【０１４２】
手ぶれ速度検出部８は、サンプリング部８１と、水平補正速度成分検出部８２と、垂直補正速度成分検出部８３とからなる。
【０１４３】
サンプリング部８１では、手ぶれ検出部７からの手ぶれ速度検出出力（図９（Ａ）参照）を、タイミング信号発生部４からのサンプリング信号Ｓｐによりサンプリングすることにより、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７についての手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７（図９（Ｂ）参照）を取得する。この例では、サンプリング部８１では、前述したように、手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７は、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の先頭ラインに対するものが、垂直周期の１／８の周期でサンプリングされる。
【０１４４】
ここで、取得すべき各手ぶれ速度ベクトルの値は、撮像素子２からの撮像画像データの対応する水平ラインのサンプリング時刻の値ではない。なぜなら、前述したように、撮像素子２上の各画素には露光時間があり、撮像素子２から取り出された撮像信号（色フィルタを通過した後の輝度値）は、各ラインのサンプリング時刻から露光時間分遡った時刻までの平均値であるからである。
【０１４５】
このため、この実施形態では、手ぶれ速度ベクトルの値の検出点は、図１０に示すように、各水平ラインの画像データのサンプリング時刻ｔｓと、当該サンプリング時刻ｔｓから露光時間分遡った時刻ｔｂとの間の中央時刻となるように、サンプリング信号Ｓｐによるサンプリングタイミングが設定されている。
【０１４６】
露光時間が短くなければ、水平ラインの画像データの先頭のタイミングでは、手ぶれ速度ベクトルの値を確定することができるが、露光時間が短くなった場合には、水平ラインの画像データの先頭のタイミングでは、手ぶれ速度ベクトルの値を確定することができない場合が生じる。そのような場合には、サンプリング部８１では、過去の手ぶれ速度ベクトルを参照して、手ぶれ速度ベクトルの値を予測するようにする。
【０１４７】
このサンプリング部８１でサンプリングされて得られる、１フレーム（１垂直周期）について、８個の手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７は、水平補正速度成分検出部８２および垂直補正速度成分検出部８３に供給される。
【０１４８】
水平補正速度成分検出部８２では、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７における手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７の水平方向成分を抽出し、その逆符号成分として、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７（図９（Ｃ）参照）を求める。
【０１４９】
また、垂直補正速度成分検出部９では、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７における手ぶれ速度ベクトルＶｅｃ＿０〜Ｖｅｃ＿７の垂直方向成分を抽出し、その逆符号成分として、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７（図９（Ｄ）参照）を求める。
【０１５０】
この場合に、この実施形態では、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のそれぞれの値は、１水平ライン区間の時間長当たりの手ぶれ補正量として求められる。
【０１５１】
すなわち、水平補正速度成分Ｘ＿ＳＴＢ（Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７）は、
Ｘ＿ＳＴＢ＝（水平手ぶれ補正量／１水平ライン区間の時間長）
とされる。
【０１５２】
また、垂直補正速度成分Ｙ＿ＳＴＢ（Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７）は、
Ｙ＿ＳＴＢ＝（水平手ぶれ補正量／１水平ライン区間の時間長）
とされる。
【０１５３】
そして、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７は、水平方向の画素ピッチ（画素の間隔）ｄｘの倍数値（小数点以下の値を取り得る。以下同じ）、換言すれば、水平方向の画素数（小数点以下を取り得る）で表わされる。また、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７は、垂直方向の画素ピッチ（画素の間隔）ｄｙの倍数値（小数点以下を取り得る）、換言すれば、垂直方向の画素数（小数点以下を取り得る。以下同じ）で表わされる。
【０１５４】
これは、サンプリング部８１からの手ぶれ速度出力の水平方向成分と、垂直方向成分のそれぞれに対して、「速度成分の値→画素数（小数点以下の値を取り得る。以下同じ）の値」の対応テーブルを用意し、速度成分の値を入力値として、画素数の値を得るようにすることで実現される。そして、得られた画素数の値について、手ぶれの速度成分の方向とは逆方向に対応する符号を付加して、それぞれ、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７とするものである。
【０１５５】
この実施形態では、このように水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７の値を定めることにより、後述するライン単位の時間積分計算による水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤを、水平補正速度成分および垂直補正速度成分の単純加算により行なえるようにしている。
【０１５６】
そして、これら水平補正速度成分検出部８２および垂直補正速度成分検出部８３で算出された水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７は、タイミング信号発生部４からのタイミング信号Ｓｔに応じたタイミングで、信号処理部５のレジスタブロック５３のＩＦ（インターフェース）レジスタ（図示は省略）に、順次取り込まれる。
【０１５７】
そして、取り込まれた水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７は、水平処理ブロック５１および垂直処理ブロック５２での処理タイミングに対応して、レジスタブロック５３内の水平処理ブロック用レジスタおよび垂直処理ブロック用レジスタ（何れも図示は省略）に、前記ＩＦレジスタから、前記取り込まれたタイミングとは別のタイミングで、転送される。
【０１５８】
水平処理ブロック５１および垂直処理ブロック５２の水平処理用手ぶれ補正量積分部５１１および垂直処理用手ぶれ補正量積分部５２１は、レジスタブロック５３の水平処理ブロック用レジスタおよび垂直処理ブロック用レジスタに取り込まれている各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７を積分することにより、各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７における各水平ラインに対する水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤを算出する。
【０１５９】
水平処理ブロック５１の水平画像処理部５１２では、水平処理用手ぶれ補正量積分部５１１で算出された水平手ぶれ補正量ＳＸ＿ＡＤＤを用いて、水平方向の手ぶれ成分を補正するように、各水平ラインの画素データのｘ座標を、水平方向にシフトする。また、水平方向のレンズ歪みを補正するために当該画素のｙ座標が必要になることを考慮して、垂直処理用手ぶれ補正量積分部５２１で算出された垂直手ぶれ補正量ＳＹ＿ＡＤＤを用いて、当該補正対象部位の画素データのｙ座標を、垂直方向の手ぶれ成分を補正するようにシフトしたものとして求める。
【０１６０】
そして、水平画像処理部５１２は、当該手ぶれに応じて水平方向および垂直方向にシフトした各画素データのｘ座標と、ｙ座標とを、引数としてレンズ歪み水平補正量データデコード部１２１に供給し、このレンズ歪み水平補正量データデコード部１２１から、当該ｘ座標およびｙ座標位置の画素位置に対するレンズ歪み水平補正量データ（水平方向の座標シフト量）を得る。
【０１６１】
そして、水平画像処理部５１２は、水平手ぶれ補正量ＳＸ＿ＡＤＤを用いて補正したｘ座標データに、取得したレンズ歪み水平補正量データを加算して、さらにシフトする。そして、当該シフトされたｘ座標データを用いて、水平方向の手ぶれ成分およびレンズ歪みの水平方向成分を補正する。
【０１６２】
また、垂直処理ブロック５２の垂直画像処理部５２２では、垂直処理用手ぶれ補正量積分部５２１で算出された垂直手ぶれ補正量ＳＹ＿ＡＤＤを用いて、垂直方向の手ぶれ成分を補正するように、各水平ラインの画素データのｙ座標を、垂直方向にシフトする。また、垂直方向のレンズ歪みを補正するために当該画素のｘ座標が必要になることを考慮して、水平処理用手ぶれ補正量積分部５１１で算出された水平手ぶれ補正量ＳＸ＿ＡＤＤを用いて、当該補正対象部位の画素データのｘ座標を、水平方向の手ぶれ成分を補正するようにシフトしたものとして求める。
【０１６３】
そして、垂直画像処理部５２２は、当該手ぶれに応じて水平方向および垂直方向にシフトした各画素データのｘ座標とｙ座標とを、引数としてレンズ歪み垂直補正量データデコード部１２２に供給し、このレンズ歪み垂直補正量データデコード部１２２から、当該ｘ座標およびｙ座標位置の画素位置に対するレンズ歪み垂直補正量データ（垂直方向の座標シフト量）を得る。
【０１６４】
そして、垂直画像処理部５２２は、垂直手ぶれ補正量ＳＹ＿ＡＤＤを用いて補正したｙ座標データに、取得したレンズ歪み垂直補正量データを加算して、さらにシフトする。そして、当該シフトされたｙ座標データを用いて、垂直方向の手ぶれ成分およびレンズ歪みの垂直方向成分を補正する。
【０１６５】
以上の補正処理においては、水平処理ブロック５１の水平画像処理部５１２および垂直処理ブロック５２の垂直画像処理部５２２では、それぞれ画像メモリ６に対して画像データの読み書きをしながら補正処理を実行するようにする。
【０１６６】
この実施形態では、画像メモリ６は、前述したように、メモリインタフェース５４によるアドレス管理に基づいて、第１メモリ領域６１と第２のメモリ領域６２とに論理的に分割されており、第１メモリ領域６１には、水平処理ブロック５１の水平画像処理部５１２で処理された結果の撮像画像データが書き込まれる。
【０１６７】
この例では、第１メモリ領域６１は、後述する垂直方向の補間処理用のＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタのタップ数以上のライン数分の容量を有する。この垂直方向の補間処理用のＦＩＲフィルタは、垂直方向の手ぶれ補正用フィルタ、垂直方向のレンズ歪み補正用フィルタおよび垂直解像度変換フィルタを構成しているものである。
【０１６８】
そして、この第１メモリ領域６１に必要な記憶容量は、上記の垂直処理用のＦＩＲフィルタのタップ数のみではなく、電子ズーム率、レンズ歪み補正率、手ぶれ補正率にしたがって変化する。
【０１６９】
第１メモリ領域６１に垂直画像処理を開始することができる画像データが書き込まれると、この第１メモリ領域６１から画像データが読み出されて、垂直ブロック５２の垂直画像処理部５２２で垂直方向の画像処理がなされ、その処理結果が第２メモリ領域６２に書き込まれる。そして、この第２メモリ領域６２から出力画像データＤｏｕｔが読み出される。
【０１７０】
したがって、この第２メモリ領域の記憶容量としては、出力画像データＤｏｕｔの１画面分（１フィールドまたは１フレーム）の容量が最低必要とされる。
【０１７１】
水平処理ブロック５１の水平画像処理部５１２には、後述するように、１ライン分の容量の水平処理用ＦＩＦＯラインメモリが設けられ、この水平処理用ＦＩＦＯラインメモリへの画像データの書き込み、読み出しを制御するＦＩＦＯメモリコントローラ（図８では図示を省略）が設けられていると共に、算出した水平手ぶれ補正量ＳＸ＿ＡＤＤが小数点以下（補正後の画素位置が、水平方向の画素位置よりオフセットされた位置となる）の場合を想定し、補間処理を行なう水平方向補間処理部（図８では図示を省略）が設けられている。この水平方向補間処理部は、後述するように、この実施形態では、水平方向のデジタルＦＩＲフィルタ（以下、水平ＦＩＲフィルタという）が用いられる。
【０１７２】
なお、１ライン分の容量の水平処理用ＦＩＦＯラインメモリも、画像メモリ６の一部のメモリ領域として設定しておき、ＦＩＦＯメモリコントローラを、メモリインタフェース５４により構成するようにしても良い。
【０１７３】
そして、メモリインタフェース５４は、第１メモリ領域６１への水平画像処理後の画像データの書き込みを制御すると共に、第１メモリ領域６１からの画像データの読み出しを制御して、垂直処理ブロック５２の画像処理部５２２に供給する。また、メモリインタフェース５４は、画像処理部５２２で垂直方向処理がなされた画像データの、第２のメモリ領域６２への書き込み、読み出しを制御する。
【０１７４】
第２メモリ領域６２から読み出された画像データは、画像データ出力部５２３に供給され、この画像データ出力部５２３から出力画像データＤｏｕｔが導出される。
【０１７５】
また、垂直処理ブロック５２の垂直画像処理部５２２には、算出した垂直手ぶれ補正量ＳＹ＿ＡＤＤが小数点以下（補正後の画素位置が、垂直方向の画素位置よりオフセットされた位置となる）の場合を想定し、補間処理を行なう垂直方向補間処理部（図８では図示を省略）が設けられている。この垂直方向補間処理部は、後述するように、この実施形態では、垂直方向のデジタルＦＩＲフィルタ（以下、垂直ＦＩＲフィルタという）が用いられるが、レンズ歪み補正のために必要なライン数および垂直解像度変換を考慮したタップ数とされる。
【０１７６】
ここで、算出した水平手ぶれ補正量ＳＸ＿ＡＤＤとレンズ歪み水平補正量との加算量および垂直手ぶれ補正量ＳＹ＿ＡＤＤとレンズ歪み垂直補正量との加算量が小数点以下の値を持つ場合の補間処理について説明する。
【０１７７】
まず、手ぶれ補正について説明する。例えば、手ぶれの水平方向の速度成分により、水平方向に図１１に示すような画像歪みが生じた場合を想定する。すなわち、図１１の例は、手ぶれが無ければ破線で示す直線上にあるべき画素Ｇ１１，Ｇ２１，Ｇ３１・・・、Ｇ１２，Ｇ２２，Ｇ３２・・・、Ｇ１３，Ｇ２３，Ｇ３３・・・、が、手ぶれの水平方向の速度成分のために実線で示すような斜め位置となっている場合である。
【０１７８】
この手ぶれを補正するためには、ずれている画素位置を本来の位置にあるようにずらせばよく、そのずれ量が、図１１に示すように、前述した水平手ぶれ補正量ＳＸ＿ＡＤＤに相当する。この水平手ぶれ補正量ＳＸ＿ＡＤＤが、画素ピッチｄｘの整数倍であれば、画素データを当該水平手ぶれ補正量ＳＸ＿ＡＤＤに応じた画素ピッチ分だけずらして読み出すようにすることで補正することができる。
【０１７９】
しかしながら、水平手ぶれ補正量ＳＸ＿ＡＤＤが、画素ピッチｄｘの整数倍ではなく、小数点以下のずれ量を含む場合には、そのずれ量に対応する位置は、画素データが存在する位置ではないので、その位置の近傍の複数個の画素データを用いた補間処理により、対応する画素位置の画素データを生成する必要がある。
【０１８０】
図１２は、その補間方法の一例を示すもので、求める画素データが、画素Ｇ１と画素Ｇ２との間の補間画素Ｇｓである場合に、この補間画素Ｇｓの位置と画素Ｇ１，Ｇ２の位置との距離ｋ１，ｋ２に応じた割合で、画素Ｇ１のデータと画素Ｇ２のデータとを加算することにより、補間画素Ｇｓの画素データを生成するものである。この場合、ｋ１：ｋ２＝Ｗ：（１−Ｗ）としたとき、
補間画素Ｇｓ＝Ｇ１×Ｗ＋Ｇ２×（Ｗ−１）
なる補間演算により、補間画素Ｇｓの画素データを得る。
【０１８１】
また、図１２の例のような２個の画素データを用いるのではなく、図１３の例のように２個以上（図１３の例では４個）の近傍画素データを用いて、補間演算をして補間画素を求めることもできる。この場合、補間画素Ｇｓの位置に対する画素Ｇ０，Ｇ１，Ｇ２，Ｇ３の位置との距離ｋ０，ｋ１，ｋ２，ｋ３に応じた割合となる乗算係数Ｗ０，Ｗ１，Ｗ２，Ｗ３を定めて、画素Ｇ０，Ｇ１，Ｇ２，Ｇ３のデータを加算することにより、補間画素Ｇｓの画素データを得る。
【０１８２】
すなわち、
補間画素Ｇｓ＝Ｇ０×Ｗ０＋Ｇ１×Ｗ１＋Ｇ２×Ｗ２＋Ｇ３×Ｗ３
なる補間演算により、補間画素Ｇｓの画素データを得るようにする。
【０１８３】
この図１３の例の場合、乗算係数Ｗ０，Ｗ１，Ｗ２，Ｗ３の値の組は、画素Ｇ１または画素Ｇ２と補間画素Ｇｓとの距離ｄｓに対応するものとして関連付けられたテーブルを用意しておき、距離ｄｓを検索子として、上記乗算係数Ｗ０，Ｗ１，Ｗ２，Ｗ３の組をテーブルから読み出すようにすることで得ることができる。なお、距離ｄｓは、水平手ぶれ補正量ＳＸ＿ＡＤＤの小数部に相当するものである。
【０１８４】
この補間処理は、この実施形態では、水平ＦＩＲフィルタを用いて行なうようにする。すなわち、水平手ぶれ補正量ＳＸ＿ＡＤＤの小数部に対応する前記乗算係数の組をテーブルから読み出し、その乗算係数を水平ＦＩＲフィルタに対して供給することで上記補間処理を行なうことができる。
【０１８５】
以上は、水平方向の手ぶれ補正の場合の補間処理であるが、垂直方向の手ぶれ補正の場合の補間処理についても、補間方向が垂直方向になるだけで、全く同様である。
【０１８６】
この手ぶれ補正の場合の補間処理動作は、この実施形態では、レンズ歪みが全く無いとした場合にのみ行なわれることになる。この実施形態では、手ぶれ補正のための補正量とレンズ歪み補正のための補正量との加算量により補正された座標位置の画素データを得るように補間処理を行なうものである。この補間処理も基本的な考え方は、上述の図１２、図１３の場合と全く同様である。
【０１８７】
このレンズ歪みを含む場合における補間処理を、図１４を参照して説明する。なお、図１４においては、ｘ方向およびｙ方向にそれぞれ４つ並んだ４×４＝１６個からなる画素データを用いて出力画像の画素データを決定する場合の例示である。なお、このレンズ歪み補正についての補間処理の方法は、特開２００４−８０５４５公報に詳細に記載されているものを適用したものであり、詳細な説明は、上記公報に譲り、ここでは要点のみを説明する。
【０１８８】
図１４（Ａ）は、歪みを伴う画像データを構成する点Ｂ１〜Ｂ４が、水平方向の補間により、それぞれ点Ｂ１０〜Ｂ４０の画像データに変換された様子を示す図である。また、図１４（Ｂ）は、さらに垂直方向の補間により、点Ｂ１０〜Ｂ４０が、それぞれｂ１〜ｂ４の画素データに変換された様子を示している。
【０１８９】
この場合、この実施形態では、図１４（Ａ）の左側の歪みを伴う画像データを構成する点Ｂ１〜Ｂ４は、水平方向の手ぶれ補正量が含まれたものと考えることができる。図１４（Ａ）の場合の水平方向の補間は、各点Ｂ１〜Ｂ４のそれぞれに対して、前述した例えば図の場合を適用することで行なうことができる。つまり、水平ＦＩＲフィルタを用いる１次元補間演算でよい。
【０１９０】
また、図１４（Ｂ）の垂直方向の場合にも同様に、図１４（Ｂ）で、例えば点Ｂ３０に対しては、垂直方向に連続した当該点Ｂ３０を跨ぐ、破線内の４つの格子点（点Ｋ２０〜Ｋ２３）における画像データに、前述した図１２または図１３と同様の考え方による乗算係数を用いて補間処理を実行することにより、点ｂ３の画素データが算出される。したがって、垂直方向についても、垂直ＦＩＲフィルタによる１次元補間演算でよい。
【０１９１】
［水平処理ブロック５１における処理動作］
［水平処理用手ぶれ補正量積分部５１１の積分処理］
図１５に、水平処理用手ぶれ補正量積分部５１１における積分処理動作のフローチャートを示す。
【０１９２】
まず、初期ｙ座標（水平ライン位置に対応）ＳＹに、水平同期信号Ｈ−ＳＹＮＣ（ここでは、水平同期信号Ｈ−ＳＹＮＣは、一般的な水平走査信号のうち、有効画像領域以外をマスクしたタイミング信号を意味するものとする）毎に「ｓｔｅｐ」という値を加算して行く（ステップＳ１）。
【０１９３】
初期ｙ座標ＳＹは、出力画像の最初の1水平ライン目が、ＣＭＯＳイメージャ上の総画素の座標系（以後絶対座標系と呼ぶ）のどこに位置するかを表しており、一般的には「０」ではない。
【０１９４】
これは、動画時には、通常、ＣＭＯＳイメージャ上の全画素が、信号処理部５に入力されるのではなく、ＣＭＯＳイメージャ内で垂直方向に平均加算されてから、後段の信号処理部５に入力されるからである。また、信号処理部５に入力されてからでも、幾つかの処理を経るため、1水平ライン目の絶対座標は「０」でないことの方が多いからである。更に、入力画像データに対して、垂直方向の部分拡大処理を行なう場合には、初期ｙ座標ＳＹは、画面の中ほどの水平ライン位置となるので、非常に大きい値をとることもあり得るからである。
【０１９５】
ステップＳ１で、１水平同期信号Ｈ−ＳＹＮＣ毎に加算する「ｓｔｅｐ」という値は、ライン間隔の絶対座標系における垂直座標の増量を表わすが、上述したＣＭＯＳイメージャ内もしくは水平処理ブロックの前段における、垂直方向の複数ラインの画像データの平均加算により、１以外に２や４といった値をとる可能性がある。
【０１９６】
さて、ステップＳ１で、初期ｙ座標値をＳＹとして、１水平同期信号Ｈ−ＳＹＮＣ毎に、値ｓｔｅｐを加算することにより、現在処理している水平ラインの絶対座標が求まり、当該絶対座標の整数成分ｖｐ＿ｉ（ステップＳ２）が、水平補正速度成分Ｘ＿ＳＴＢ＿＊（＊は０〜７のいずれかである。すなわち、水平補正速度成分Ｘ＿ＳＴＢ＿＊は、Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のいずれかを意味する。以下、同じ。）を、現時点までに積分すべき積分回数に対応する。ここで、この積分回数は、１画面内における積算値である。
【０１９７】
次に、現在処理している水平ライン（以下、現処理ラインという）の絶対座標の整数成分ｖｐ＿ｉと、現処理ラインの1水平ライン前までに積分した回数（積分回数ｈｓｔｂ＿ｃｎｔ）とを比較する。これにより、現処理ラインにおいて、あと何回積分すれば良いかが分かり、その回数分だけ、処理単位サイクル（１水平周期よりも十分に短い）毎にトリガＴＧ１が発生する（ステップＳ３）。
【０１９８】
このトリガＴＧ１が発生する毎に、積分回数ｈｓｔｂ＿ｃｎｔは１づつインクリメントする（ステップＳ４、ステップＳ５）。
【０１９９】
そして、このトリガＴＧ１ごとに、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のうちの、現処理ラインが所在する分割画像区間についての水平補正速度成分を加算することにより、積分処理を行ない、水平手ぶれ補正量ＳＸ＿ＡＤＤを得る（ステップＳ６）。ここで、図１５のステップＳ６における「ｓｔｂ＿ｘ」は、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のいずれかの値である。すなわち、「ｓｔｂ＿ｘ」は、現処理ラインが所在する分割画像区間についての水平補正速度成分の値である。
【０２００】
また、水平レンズ歪み水平補正量データを、水平レンズ歪み水平補正量データデコード部１２１から取得するためには、補正対象部位の画素のｘ座標だけではなくｙ座標も必要であり、かつ、当該ｙ座標は、ＣＭＯＳ手ぶれの影響を受けているため、この水平処理用手ぶれ補正量積分部５１１においても、垂直手ぶれ補正量ＳＹ＿ＡＤＤを積分して得るようにする。
【０２０１】
すなわち、ステップＳ３で発生するトリガＴＧ１ごとに、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のうちの、現処理ラインが所在する分割画像区間についての垂直補正速度成分を加算することにより、積分処理を行ない、垂直手ぶれ補正量ＳＹ＿ＡＤＤを得る（ステップＳ７）。ここで、図１５のステップＳ７における「ｓｔｂ＿ｙ」は、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のいずれかの値である。すなわち、「ｓｔｂ＿ｙ」は、現処理ラインが所在する分割画像区間についての垂直補正速度成分の値である。
【０２０２】
ステップＳ１で、１水平同期信号Ｈ−ＳＹＮＣ毎に加算される値「ｓｔｅｐ」＝１であって、画像の拡大などではない通常の画像出力の場合には、トリガＴＧ１は、１水平同期信号Ｈ−ＳＹＮＣ毎に発生するため、ステップＳ６では、１水平ライン毎に「ｓｔｂ＿ｘ」を加算（積分）し、ステップＳ７では１水平ライン毎に「ｓｔｂ＿ｙ」を加算（積分）するものである。
【０２０３】
こうして得られる水平手ぶれ補正量ＳＸ＿ＡＤＤは、前述もしたように、ＣＭＯＳイメージャ上での各水平ラインの水平方向の読み出し開始位置の補正量、すなわち、水平処理ブロック５１における水平方向画像歪み補正処理における各ラインの水平初期位置（水平オフセット）そのものとなる。補正対象部位としての水平ラインの各画素のｘ座標は、この水平手ぶれ補正量ＳＸ＿ＡＤＤだけ、水平方向にシフトされたものとなる。
【０２０４】
また、垂直手ぶれ補正量ＳＹ＿ＡＤＤは、ＣＭＯＳイメージャ上での各水平ラインの垂直方向の座標シフト量となる。この値は、同一水平ライン内では同じであり、したがって、補正対象部位としての水平ラインの各画素のｙ座標は、当該垂直手ぶれ補正量ＳＹ＿ＡＤＤだけ、垂直方向にシフトされたものとなる。
【０２０５】
このように、水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤにより、ＣＭＯＳ手ぶれに応じて補正された画素位置の情報は、後述するように、当該画素位置における水平方向のレンズ歪みを取得するための情報として用いられる。
【０２０６】
上述したように、ステップＳ６およびステップＳ７では、現処理ラインが、１画面分（１フレーム＝１垂直同期周期）を垂直方向に8分割した分割画像区間のどこに属するかによって、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のうちのいずれか１つ、および垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のうちのいずれか１つを選択しなければならない。そのための仕組みが、図１５の残りの部分の処理である。
【０２０７】
この例では、分割画像区間分のライン数の加算値ｓｔｂ＿ｇｒｉｄが定義される（ステップＳ８）。この加算値ｓｔｂ＿ｇｒｉｄの初期値は、１分割画像区間のライン数ＤＩＶである。
【０２０８】
そして、この加算値ｓｔｂ＿ｇｒｉｄと、積分回数ｈｓｔｂ＿ｃｎｔとを比較し、積分回数ｈｓｔｂ＿ｃｎｔが加算値ｓｔｂ＿ｇｒｉｄを超える毎に、トリガＴＧ２を発生する（ステップＳ９）。そして、トリガＴＧ２が発生するごとに、加算値ｈｓｔｂ＿ｃｎｔに、１分割画像区間のライン数ＤＩＶを加算する（ステップＳ１０）。
【０２０９】
以上の処理により、現処理ラインが次の分割画像区間に移る毎に、トリガＴＧ２が発生する。したがって、現処理ラインが各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の何れに存在するかの分割区間値ＨＤＩＶ＿ＣＮＴを定義し（ステップＳ１１）、この分割区間値ＨＤＩＶ＿ＣＮＴを、トリガＴＧ２が発生する毎に、１づつインクリメントする（ステップＳ１２）。すると、分割区間値ＨＤＩＶ＿ＣＮＴは、現処理ラインが所在する各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７のそれぞれに対応して「０」〜「７」の値を取る。すなわち、分割区間値ＨＤＩＶ＿ＣＮＴは、水平処理の進捗度合いを示すものとなる。
【０２１０】
ステップＳ６、ステップＳ７では、この分割区間値ＨＤＩＶ＿ＣＮＴを参照して、「ｓｔｂ＿ｘ」、「ｓｔｂ＿ｙ」を決定する。
【０２１１】
なお、この例では、分割区間値ＨＤＩＶ＿ＣＮＴ＝８のときには、１フレーム分の画像データについての処理が終了したことを意味する。そして、分割区間値ＨＤＩＶ＿ＣＮＴ＝８に、「１」が加わると、分割区間値ＨＤＩＶ＿ＣＮＴ＝０となるように計算される。
【０２１２】
この分割区間値ＨＤＩＶ＿ＣＮＴは、また、垂直処理ブロック５２およびレジスタブロック５３に、水平処理ブロック５１での現処理ラインが何れの分割画像区間に所在しているかを示すために、すなわち、水平処理の進捗状況を報知するために供給される。
【０２１３】
［水平画像処理部５１２の処理動作］
図１６は、水平画像処理部５１２の構成例を示すものである。この図１６の例では、前述の図１５のフローチャートにおける水平同期信号Ｈ−ＳＹＮＣ毎に値「ｓｔｅｐ」を初期ｙ座標ＳＹに加算する加算部１０１が、この水平画像処理部５１２に含まれるものとしており、このため、この水平画像処理部５１２に初期ｙ座標ＳＹが入力される。さらに、この水平画像処理部５１２には初期ｘ座標ＳＸが入力される。これら初期ｙ座標ＳＹおよび初期ｘ座標ＳＸは、１フレームの先頭で、例えば制御部１０で設定されて入力される。
【０２１４】
そして、加算部１０１からの、水平同期信号Ｈ−ＳＹＮＣ毎に値「ｓｔｅｐ」が加算されたｙ座標値ＳＹ´は、水平処理用手ぶれ補正量積分部５１１に供給される。すると、この水平処理用手ぶれ補正量積分部５１１からは、現処理ラインの先頭のｘ座標のオフセット値として、水平手ぶれ補正量ＳＸ＿ＡＤＤが返ってくると共に、現処理ラインのｙ座標のオフセット値ＳＹ＿ＡＤＤが返ってくる。
【０２１５】
水平画像処理部５１２では、加算部１０２において、各水平ラインの先頭で一回だけ、水平処理用手ぶれ補正量積分部５１１からの水平手ぶれ補正量ＳＸ＿ＡＤＤを、初期ｘ座標ＳＸに加算する。また、加算部１０３において、各水平ラインの先頭で一回だけ、水平処理用手ぶれ補正量積分部５１１からの垂直手ぶれ補正量ＳＹ＿ＡＤＤを、初期ｙ座標ＳＹに加算する。
【０２１６】
そして、加算部１０２の出力値に対して、画素処理クロックＣＬＫごとに、水平拡大・縮小のパラメータ並びに水平方向の解像度変換のパラメータである値「ｈｍａｇ」を、加算部１０４により加算する。この加算部１０４の出力値ｈｘ＿ａｄｄは、レンズ歪み水平補正量データデコード部１２１に対する引数としての座標（ｘ、ｙ）データのうちのｘ座標として供給する。
【０２１７】
また、加算部１０３の出力値ｈｙ＿ａｄｄは、レンズ歪み水平補正量データデコード部１２１に対する引数としての座標（ｘ，ｙ）データのうちのｙ座標として供給する。
【０２１８】
レンズ歪み水平補正量データデコード部１２１からは、これに入力された座標（ｘ，ｙ）の撮像素子上のレンズ歪み水平補正量データＣＯＲＲ＿Ｘが出力される。このレンズ歪み水平補正量ＣＯＲＲ＿Ｘは、加算部１０４の出力値ｈｘ＿ａｄｄに、画素処理クロックＣＬＫごとに加算部１０６で加算される。
【０２１９】
なお、加算部１０４からの水平座標の補正出力値ｈｘ＿ａｄｄは、レンズ歪み水平補正量データデコード部１２１からレンズ歪み水平補正量データＣＯＲＲ＿Ｘを得るときの遅延量分の遅延部１０５を介して加算部１０６に供給される。
【０２２０】
そして、加算部１０６からの出力値Ｘ＿ＡＤＤは、比較部１０７および１０８、また、小数部抽出部１０９および整数部抽出部１１０に供給される。
【０２２１】
比較部１０７は、加算部１０６からの出力値Ｘ＿ＡＤＤを、１画素処理クロックＣＬＫだけ前の出力値Ｘ＿ＡＤＤの整数成分と比較し、差が１以上であるとき、すなわち、画素位置が１画素分以上ジャンプしたときに、そのジャンプを示す信号ＳＫＩＰを出力する。この例では、このジャンプを示す信号ＳＫＩＰを参照することで、次に画素処理クロックＣＬＫのタイミングで処理すべきジャンプした画素位置を知ることができる。この信号ＳＫＩＰは、ＦＩＦＯメモリコントローラ１１１に供給される。
【０２２２】
また、比較部１０８は、加算部１０６からの出力値Ｘ＿ＡＤＤを、１画素処理クロックＣＬＫだけ前の出力値Ｘ＿ＡＤＤの整数成分と比較し、差が１より小さいときに、その旨を示す信号ＨＯＬＤを出力する。したがって、この信号ＨＯＬＤを参照することで、読み出し画素を、１画素処理クロックＣＬＫだけ前と同じであることを知ることができる。この信号ＨＯＬＤは、１ライン分の容量のＦＩＦＯラインメモリ１１２への書き込み及び読み出しを制御するＦＩＦＯメモリコントローラ１１１に供給される。ＦＩＦＯラインメモリ１１２は、前述したが、画像メモリ６のメモリ領域の一部を用いても良い。その場合には、ＦＩＦＯメモリコントローラ１１１は、メモリインタフェース５４内に設けられる。
【０２２３】
小数部抽出部１０９は、加算部１０６からの出力値Ｘ＿ＡＤＤの小数部を、画素処理クロックＣＬＫ毎に抽出し、抽出した小数部の値Ｘ＿ＰＨＡＳＥを出力する。この少数部の値Ｘ＿ＰＨＡＳＥは、水平ＦＩＲフィルタ１１３を備える水平補間処理部１１４に供給される。水平補間処理部１１４では、この小数部の値Ｘ＿ＰＨＡＳＥに基づいて乗算係数テーブルを検索し、水平ＦＩＲフィルタ１１３に供給する乗算係数を得るようにする。
【０２２４】
整数部抽出部１１０は、加算部１０６からの出力値Ｘ＿ＡＤＤの整数部を、水平同期信号Ｈ−ＳＹＮＣにより各水平ラインの先頭で抽出し、抽出した整数部の値ＳＴ＿ＰＯＳを出力する。この整数部の値ＳＴ＿ＰＯＳは、現処理ラインの初期ｘ座標としてＦＩＦＯメモリコントローラ１１１に供給される。
【０２２５】
ＦＩＦＯメモリコントローラ１１１は、入力画像データＤｉｎについて、水平処理用ＦＩＦＯラインメモリ１１２を用いて、水平手ぶれ補正量ＳＸ＿ＡＤＤとレンズ歪み水平補正量ＣＯＲＲ＿Ｘとの加算量の整数部に基づいた補正処理を行なうと共に、水平拡大・縮小処理および水平方向の解像度変換を行なう。ここで、水平処理用ＦＩＦＯラインメモリ１１２が、実際に１水平ライン分相当のサイズを必要とするのは、後述するように、画像の部分拡大処理をサポートすることを考慮する場合のみである。
【０２２６】
すなわち、ＦＩＦＯメモリコントローラ１１１は、入力画像データＤｉｎについて、前記整数部の値ＳＴ＿ＰＯＳを用いて、出力画像データとして読み出す各水平ラインの画素データの初期ｘ座標を決める。また、ＦＩＦＯメモリコントローラ１１１は、信号ＳＫＩＰおよび信号ＨＯＬＤを画素処理クロックＣＬＫごとに参照し、水平処理用ＦＩＦＯラインメモリ１１２から読み出す画素データを決定するようにする。
【０２２７】
そして、ＦＩＦＯメモリコントローラ１１１は、以上のようにして読み出した水平ラインの画素データを出力画像データＤＨｉｍｄとして、データイネーブル信号ＥＮと共に、水平補間処理部１１４に供給する。
【０２２８】
水平補間処理部１１４は、データイネーブル信号ＥＮがイネーブル状態となっているときに入力される画像データを有効データとして、水平ＦＩＲフィルタ１１３を用いて前述したような水平方向の補間処理を実行する。前述したように、このときに水平補間処理部１１４に入力される小数部の値Ｘ＿ＰＨＡＳＥを用いて、水平ＦＩＲフィルタ１１３に供給する乗算係数が決定されている。
【０２２９】
こうして、水平補間処理部１１４からは、水平手ぶれ補正量ＳＸ＿ＡＤＤとレンズ歪み水平補正量ＣＯＲＲ＿Ｘとの加算量に応じて水平方向補正処理がなされると共に、水平方向の拡大・縮小処理および水平方向の解像度変換がなされた画像データＤＨｏｕｔが得られる。このＤＨｏｕｔは、データイネーブル信号ＥＮと共に、メモリインタフェース５４を通じて画像メモリ６の第１メモリ領域６１に書き込まれる。
【０２３０】
ところで、上述の説明では、水平処理用手ぶれ補正量積分部５１１の水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤの積分処理と、水平画像処理部５１１の水平拡大・縮小画像処理、水平解像度変換処理の、互いの処理タイミングについて特に触れなかったが、水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤの積分処理を、遅延無しで、水平拡大・縮小画像処理、水平解像度変換処理との単純なシーケンス処理で行なうことが好都合なのは、図１７の上側の図１７（Ａ）に示すように、垂直方向の部分切り出し及び部分拡大をサポートしない場合にほぼ限られる。図１７で、Ｖ−ＳＹＮＣは垂直同期信号を示し、また、ＳＴ＿ＴＧは、有効走査ラインの開始時点を示している。また、図１７で、網掛けを付して示した四角で囲まれた区間は、それぞれの処理区間を示している。
【０２３１】
一方、垂直方向の部分切り出し、もしくは部分拡大をサポートする場合、初期ｙ座標ＳＹが非常に大きな値を取り得るため、フレーム先頭の積分処理に、相当長いサイクル数（画素処理サイクル数）を要してしまう可能性がある。図１７下側の（Ｂ）のシーケンスにおける期間ｔｍがそのための積分期間である。
【０２３２】
このようになると、図１７上側の（Ａ）のシーケンスでは、最初の拡大・縮小処理が水平同期信号Ｈ−ＳＹＮＣの１周期期間をオーバーしてしまうため、次の水平同期信号Ｈ−ＳＹＮＣで入力されて来る２ライン目の画像データを保持しておくためのラインメモリが必要となる。
【０２３３】
そこで、この実施形態では、図１７下側の（Ｂ）のシーケンスに示すように、水平拡大・縮小画像処理が開始される１水平周期前から積分処理の起動を行ない、常に画像処理に対して、１水平周期だけ先行して積分処理を行なうタイミングおよびシーケンスを採用する。このため、水平処理用ＦＩＦＯラインメモリ６１は、１水平周期分のサイズのものがこの実施形態では用いられている。
【０２３４】
上述した問題は、画像の部分拡大等に関わらず、水平処理は常に全入力ラインに対して処理を施す、というアーキテクチャにすれば避けられる。しかし、いずれにしても、図１８上側のシーケンスを実現しようとすると、積分処理の終了信号を新たに設け、それを受けて画像処理の起動をかけなければならず、やや煩雑である。つまり、換言すれば、上述したこの実施形態で採用した手法は、既存の画像処理の回路に新たな手を加えないで済む、というメリットがあるのである。
【０２３５】
なお、上述した実施形態で採用した手法は、水平同期信号Ｈ−ＳＹＮＣの１周期期間内の画素処理サイクル数よりも、絶対座標系の垂直サイズが大きい場合には採用できない。その場合には、水平処理は常に全入力ラインに対して処理を施すという、上述したアーキテクチャにすれば良い。
【０２３６】
［垂直処理ブロック５２における処理動作］
［垂直処理用手ぶれ補正量積分部５２１の積分処理］
次に、垂直処理用手ぶれ補正量積分部５２１における積分処理動作について説明する。図１８は、この垂直手ぶれ補正量ＳＹ＿ＡＤＤを得るための積分処理動作のフローチャートを示すものである。
【０２３７】
この垂直処理用手ぶれ補正量積分部５２１の積分処理動作は、図１５を用いて上述した水平処理用手ぶれ補正量積分部５１１の積分処理動作と類似しているが、次の点が異なる。
【０２３８】
すなわち、水平同期信号Ｈ−ＳＹＮＣ毎に初期ｙ座標に加算する値が「ｖｍａｇ」であることと、水平処理の進捗度合いを表すＨＤＩＶ＿ＣＮＴを見て、ウエイト（ＷＡＩＴ）をかけることと、各ラインの積分処理が終了したことを表わす積分完了信号ＳＴＢ＿ＲＤＹを生成して、垂直信号処理モジュールへ伝達すること、の以上３点である。
【０２３９】
この実施形態では、垂直画像処理において垂直方向の拡大・縮小を想定しており、また、垂直解像度の変換を行なうことを想定しているので、値「ｖｍａｇ」は垂直拡大・縮小の倍率パラメータおよび垂直解像度変換に応じたパラメータを表わしている。したがって、垂直処理ブロック５２では、水平処理ブロック５１から出力される画像データを全て処理するのではなく、拡大・縮小処理および垂直解像度変換処理後に出力するラインの垂直座標を基準として処理を行なう。
【０２４０】
そのため、この垂直方向の積分処理においても、実際に、この垂直方向の積分処理後の垂直画像処理の対象となる座標における積分値を出力することが求められることから、垂直方向の座標増分パラメータを水平同期信号Ｈ−ＳＹＮＣ毎に加算するのである。なお、画像の拡大・縮小や垂直解像度変換を伴わずに、ＣＭＯＳ手ぶれの補正のみを行なうのであれば、ｖｍａｇ = 1として良い。
【０２４１】
水平方向の積分処理とは異なる二つ目の、分割区間値ＨＤＩＶ＿ＣＮＴを見て、水平処理の進捗度合いを観測する必要性は、水平処理を垂直処理が追い越すことがあってはならないからである。一般的な画像の垂直拡大・縮小処理、解像度変換処理においては、垂直処理が水平処理を追い越す、というのは、まだ生成されていない画像に対して処理を施すことであるため、自ずとウエイトをかける仕組みが必要となる。同様に、この垂直方向の積分処理においても、画像を直接扱う訳ではないが、水平処理を追い越さない仕掛けが必要なのである。
【０２４２】
もう少し詳細に説明する。水平および垂直方向の積分パラメータである水平補正速度成分Ｘ＿ＳＴＢ＿＊（＊は０〜７のいずれかであり、Ｘ＿ＳＴＢ＿＊は、Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のいずれかを意味する。以下同じ）と、垂直補正速度成分Ｙ＿ＳＴＢ＿＊（＊は０〜７のいずれかであり、Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のいずれかを意味する。以下、同じ）は、処理を行っている水平ラインのサンプリング時刻（厳密に言うと露光期間の中心時点であることは既に説明）付近の手ぶれ速度ベクトル（手ぶれの速度と方向）の、それぞれ水平成分、垂直成分の逆符号である。したがって、露光時間が極めて短い時間の場合まで考慮すると、水平補正速度成分Ｘ＿ＳＴＢ＿＊と垂直補正速度成分Ｙ＿ＳＴＢ＿＊は、対応する水平ラインの画像データが入力される直前まで確定できない場合がある。
【０２４３】
後で詳述するレジスタブロック５３では、この事情を考慮し、水平方向の積分処理において現在処理しているラインが属する分割画像区間を意味する分割区間値ＨＤＩＶ＿ＣＮＴの値を見て、水平補正速度成分Ｘ＿ＳＴＢ＿＊と垂直補正速度成分Ｙ＿ＳＴＢ＿＊を、水平処理ブロック用レジスタと、垂直処理ブロック用レジスタにラッチする。したがって、水平処理ブロック５１では、特別な仕組みを設けなくとも、入力された画像を順次処理して行けば良いのである。
【０２４４】
一方、垂直処理ブロック５２での積分処理では、当該積分処理を行なった結果を、後段の垂直方向画像処理の初期オフセット座標とするため、水平処理からの画像が未だ入って来ていないことに後から気付いても、その時点では既にそのラインの積分処理は終わってしまっている。つまり、そのときには、未確定の垂直補正速度成分が用いられて積分がなされてしまったことになる。
【０２４５】
そのため、積分処理の段階で、処理しようとするラインに対応した積分パラメータである垂直補正速度成分Ｙ＿ＳＴＢ＿＊が、まだ確定前であることを、水平処理の進捗度合いから判断する必要があるのである。
【０２４６】
そのための仕組みとして、図１８のように、垂直処理の進捗度合いを表わす分割区間値ＶＤＩＶ＿ＣＮＴが、水平処理の進捗度合いを表わす分割区間値ＨＤＩＶ＿ＣＮＴを超えてしまっていれば、ウエイトを発行し、図１８の左下で、垂直処理における現処理ラインが所在する分割画像区間についての垂直補正速度成分の値である「ｓｔｂ＿ｙ」が未確定のままの垂直補正速度成分Ｙ＿ＳＴＢ＿＊が選択された状態で、垂直手ぶれ補正量ＳＹ＿ＡＤＤに加算されるのを防ぐ。
【０２４７】
垂直方向の積分処理（図１８）が水平方向の積分（図１５）と異なる、３つ目の点は、各ラインでの垂直積分が完了したことを表す積分完了信号ＳＴＢ＿ＲＤＹの生成である。各ライン内で積分を繰り返して行なった結果、そのラインの絶対座標の整数成分ｖｐ＿ｉと、そのフレーム内での累積積分回数ｖｓｔｂ＿ｃｎｔとが一致したときに、後段の垂直画像処理モジュールに渡すべき垂直オフセットＳＹ＿ＡＤＤが求められ、それと同時に、後段の垂直画像処理の起動をかけるのが目的である。
【０２４８】
既に説明した水平方向の積分処理においては、有効画像が入力されるタイミングよりも１水平同期信号Ｈ−ＳＹＮＣ（１水平周期）前から積分処理を開始しておけば、有効画像に対する水平画像処理が始まるまでに積分処理を完了できることが、殆どの場合、システム的に保証可能であるが、垂直方向の積分処理では、前述のウエイトが発生する可能性があるために、直前１水平周期の時間で積分が完了することを、全ての場合において保証するのは不可能だからである。すなわち、ウエイトが発生したときには、垂直積分が完了したことを表す積分完了信号ＳＴＢ＿ＲＤＹが発生したときに、垂直手ぶれ補正および垂直拡大・縮小処理を含む垂直画像処理を実行するようにする。
【０２４９】
以上の機能を有する、この垂直方向の積分回路を適用した垂直方向の積分処理を図１８のフローチャートを参照しながら説明する。
【０２５０】
まず、初期ｙ座標（水平ライン位置に対応）ＳＹに、水平同期信号Ｈ−ＳＹＮＣ毎に前述した値「ｖｍａｇ」を加算して行く（ステップＳ２１）。
【０２５１】
ステップＳ２１で、初期ｙ座標値をＳＹとして、１水平同期信号Ｈ−ＳＹＮＣ毎に、値ｖｍａｇを加算することにより、現在処理している水平ラインの絶対座標が求まり、当該絶対座標の整数成分ｖｐ＿ｉ（ステップＳ２２）が、垂直補正速度成分Ｙ＿ＳＴＢ＿＊（Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のいずれか）を、現時点までに積分すべき積分回数に対応する。ここで、この積分回数は、１画面内における積算値である。
【０２５２】
次に、現在処理している水平ライン、すなわち、現処理ラインの絶対座標の整数成分ｖｐ＿ｉと、現処理ラインの1水平ライン前までに積分した回数（積分回数ｖｓｔｂ＿ｃｎｔ）とを比較する。これにより、現処理ラインにおいて、あと何回積分すれば良いかが分かり、その回数分だけ、処理単位サイクル（１水平周期よりも十分に短い）毎にトリガＴＧ３が発生する（ステップＳ２３）。
【０２５３】
このトリガＴＧ３が発生する毎に、積分回数ｖｓｔｂ＿ｃｎｔは１づつインクリメントする（ステップＳ２４、ステップＳ２５）。
【０２５４】
そして、このトリガＴＧ３ごとに、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のうちの、現処理ラインが所在する分割画像区間についての垂直補正速度成分を加算することにより、積分処理を行ない、垂直手ぶれ補正量ＳＹ＿ＡＤＤを得る（ステップＳ２６）。ここで、図１８のステップＳ２６における「ｓｔｂ＿ｙ」は、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のいずれかの値である。すなわち、「ｓｔｂ＿ｙ」は、現処理ラインが所在する分割画像区間についての垂直補正速度成分の値である。
【０２５５】
また、垂直レンズ歪み水平補正量データを、垂直レンズ歪み水平補正量データデコード部１２２から取得するためには、補正対象部位の画素のｙ座標だけではなくｘ座標も必要であり、かつ、当該ｘ座標は、ＣＭＯＳ手ぶれの影響を受けているため、この垂直処理用手ぶれ補正量積分部５２１においても、水平手ぶれ補正量ＳＸ＿ＡＤＤを積分して得るようにする。
【０２５６】
すなわち、ステップＳ２３で発生するトリガＴＧ３ごとに、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のうちの、現処理ラインが所在する分割画像区間についての水平補正速度成分を加算することにより、積分処理を行ない、水平手ぶれ補正量ＳＸ＿ＡＤＤを得る（ステップＳ２７）。ここで、図１８のステップＳ２７における「ｓｔｂ＿ｘ」は、水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のいずれかの値である。すなわち、「ｓｔｂ＿ｘ」は、現処理ラインが所在する分割画像区間についての水平補正速度成分の値である。
【０２５７】
ステップＳ２１で、１水平同期信号Ｈ−ＳＹＮＣ毎に加算される値「ｖｍａｇ」＝１であって、画像の拡大などではない通常の画像出力の場合には、トリガＴＧ３は、１水平同期信号Ｈ−ＳＹＮＣ毎に発生するため、ステップＳ２６では、１水平ライン毎に「ｓｔｂ＿ｙ」を加算（積分）し、ステップＳ２７では１水平ライン毎に「ｓｔｂ＿ｘ」を加算（積分）するものである。
【０２５８】
こうして得られる垂直手ぶれ補正量ＳＹ＿ＡＤＤは、前述もしたように、ＣＭＯＳイメージャ上での各水平ラインの垂直方向の読み出し開始位置の補正量、すなわち、垂直処理ブロック５２における垂直方向画像歪み補正処理における各ラインの垂直位置（垂直オフセット）そのものとなる。補正対象部位としての水平ラインの各画素のｙ座標は、この垂直手ぶれ補正量ＳＹ＿ＡＤＤだけ、垂直方向にシフトされたものとなる。
【０２５９】
また、水平手ぶれ補正量ＳＸ＿ＡＤＤは、ＣＭＯＳイメージャ上での各水平ラインの水平方向の座標シフト量となる。したがって、補正対象部位としての水平ラインの各画素のｘ座標は、当該水平手ぶれ補正量ＳＸ＿ＡＤＤだけ、水平方向にシフトされたものとなる。
【０２６０】
このように、水平手ぶれ補正量ＳＸ＿ＡＤＤおよび垂直手ぶれ補正量ＳＹ＿ＡＤＤにより、ＣＭＯＳ手ぶれに応じて補正された画素位置の情報は、後述するように、当該画素位置における垂直方向のレンズ歪みを取得するための情報として用いられる。
【０２６１】
上述したように、ステップＳ２６およびステップＳ２７では、現処理ラインが、１画面分（１フレーム＝１垂直同期周期）を垂直方向に8分割した分割画像区間のどこに属するかによって、垂直補正速度成分Ｙ＿ＳＴＢ＿０〜Ｙ＿ＳＴＢ＿７のうちのいずれか１つ、および水平補正速度成分Ｘ＿ＳＴＢ＿０〜Ｘ＿ＳＴＢ＿７のうちのいずれか１つを選択しなければならない。
【０２６２】
この例では、分割画像区間分のライン数の加算値ｖｓｔｂ＿ｇｒｉｄが定義される（ステップＳ２８）。この加算値ｖｓｔｂ＿ｇｒｉｄの初期値は、１分割画像区間のライン数ＤＩＶである。
【０２６３】
そして、この加算値ｖｓｔｂ＿ｇｒｉｄと、積分回数ｖｓｔｂ＿ｃｎｔとを比較し、積分回数ｖｓｔｂ＿ｃｎｔが加算値ｖｓｔｂ＿ｇｒｉｄを超える毎に、トリガＴＧ４を発生する（ステップＳ２９）。そして、トリガＴＧ４が発生するごとに、加算値ｖｓｔｂ＿ｃｎｔに、１分割画像区間のライン数ＤＩＶを加算する（ステップＳ３０）。
【０２６４】
以上の処理により、現処理ラインが次の分割画像区間に移る毎に、トリガＴＧ４が発生する。したがって、現処理ラインが各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７の何れに存在するかの分割区間値ＶＤＩＶ＿ＣＮＴを定義し（ステップＳ３１）、この分割区間値ＶＤＩＶ＿ＣＮＴを、トリガＴＧ４が発生する毎に、１づつインクリメントする（ステップＳ３２）。すると、分割区間値ＶＤＩＶ＿ＣＮＴは、現処理ラインが所在する各分割画像区間Ｐｄｉｖ＿０〜Ｐｄｉｖ＿７のそれぞれに対応して「０」〜「７」の値を取る。すなわち、分割区間値ＶＤＩＶ＿ＣＮＴは、垂直処理の進捗度合いを示すものとなる。
【０２６５】
ステップＳ６、ステップＳ７では、この分割区間値ＨＤＩＶ＿ＣＮＴを参照して、「ｓｔｂ＿ｘ」、「ｓｔｂ＿ｙ」を決定する。
【０２６６】
なお、この例では、分割区間値ＶＤＩＶ＿ＣＮＴ＝８のときには、１フレーム分の画像データについての処理が終了したことを意味する。そして、分割区間値ＶＤＩＶ＿ＣＮＴ＝８に、「１」が加わると、分割区間値ＶＤＩＶ＿ＣＮＴ＝０となるように計算される。
【０２６７】
この分割区間値ＶＤＩＶ＿ＣＮＴは、水平処理ブロック５１からの、水平処理の進捗度合いを示す分割区間値ＨＤＩＶ＿ＣＮＴと比較され、分割区間値ＶＤＩＶ＿ＣＮＴが分割区間値ＨＤＩＶ＿ＣＮＴよりも大きくなったときには、水平処理を垂直処理が追い越してしまう状態を意味するので、ウエイト（ＷＡＩＴ）を発生して、トリガＴＧ３の発生を待機させる。すなわち、トリガＴＧ３は、ウエイトが解除された後に発生するように遅延させる（ステップＳ３３）。
【０２６８】
そして、この実施形態では、ステップＳ２２で得られるｙ座標の整数成分ｖｐ＿ｉと、積分回数ｖｓｔｂ＿ｃｎｔとが等しいかどうかをチェックし、等しければ現処理ラインについての垂直方向の積分が完了したことを示す積分完了信号ＳＴＢ＿ＲＤＹを生成して出力する（ステップＳ３４）。
【０２６９】
この積分完了信号ＳＴＢ＿ＲＤＹは、垂直画像処理部５２２に供給される。垂直画像処理部５２２では、現処理ラインについての垂直方向の手ぶれ補正処理のみを行なうのであれば、この積分完了信号ＳＴＢ＿ＲＤＹにより、現処理ラインについての垂直方向の手ぶれ補正処理を開始してよいことを認識し、次の水平同期信号Ｈ−ＳＹＮＣのタイミングで垂直画像処理を再開することができる。
【０２７０】
しかし、この実施形態では、垂直方向の手ぶれと同時に垂直方向のレンズ歪みを補正するようにしているので、ライン単位のレンズ歪み補正完了信号ＤＩＳＴ＿ＲＤＹ（図示せず）を、垂直画像処理部５２２が発生するようにしており、積分完了信号ＳＴＢ＿ＲＤＹと、レンズ歪み補正完了信号ＤＩＳＴ＿ＲＤＹとの両方がアクティブになった後の、次の水平同期信号Ｈ−ＳＹＮＣのタイミングで垂直画像処理を再開するようにする。
【０２７１】
ＤＩＳＴ＿ＲＤＹ信号の遅延は、レンズ歪み補正処理が扱う画像データが、水平処理ブロック５１の処理ラインの画像と連動しておらず、場合によっては水平処理ブロックが数１０ライン以上先行しないと生成されない画像データであるため、この水平処理の処理待ちのために発生する。
【０２７２】
［垂直画像処理部５２２の処理動作］
図１９は、垂直画像処理部５２２の構成例を示すものである。この図１９の例では、前述の図１８のフローチャートにおける水平同期信号Ｈ−ＳＹＮＣ毎に値「ｖｍａｇ」を加算する加算部２０１が、この垂直画像処理部５２２に含まれるものとしており、この垂直画像処理部５２２に初期ｙ座標ＳＹが入力される。
【０２７３】
そして、加算部２０１からの、垂直同期信号Ｈ−ＳＹＮＣ毎に値「ｖｍａｇ」が加算されたｙ座標値ＳＹ´は、垂直処理用手ぶれ補正量積分部５２１に供給される。すると、この垂直処理用手ぶれ補正量積分部５２１からは、現処理ラインの先頭のｙ座標のオフセット値として、垂直手ぶれ補正量ＳＹ＿ＡＤＤが返ってくると共に、現処理ラインのｘ座標のオフセット値ＳＸ＿ＡＤＤが返ってくる。
【０２７４】
垂直画像処理部５２２では、加算部２０２において、各水平ラインの先頭で一回だけ、垂直処理用手ぶれ補正量積分部５２１からの垂直手ぶれ補正量ＳＹ＿ＡＤＤを、ｙ座標ＳＹ´に加算する。また、加算部２０３において、各水平ラインの先頭で一回だけ、垂直処理用手ぶれ補正量積分部５２１からの水平手ぶれ補正量ＳＸ＿ＡＤＤを、初期ｘ座標ＳＸに加算する。
【０２７５】
そして、加算部２０３の出力値に対して、画素処理クロックＣＬＫごとに、水平拡大・縮小のパラメータである値「ｈｍａｇ」を、加算部２０４により加算する。この加算部２０４の出力値ｖｘ＿ａｄｄは、レンズ歪み垂直補正量データデコード部１２２に対する引数としての座標（ｘ、ｙ）データのうちのｘ座標として供給する。
【０２７６】
また、加算部２０２の出力値ｖｙ＿ａｄｄは、レンズ歪み垂直補正量データデコード部１２２に対する引数としての座標（ｘ，ｙ）データのうちのｙ座標として供給する。
【０２７７】
レンズ歪み垂直補正量データデコード部１２２からは、これに入力された座標（ｘ，ｙ）の撮像素子上のレンズ歪み垂直補正量データＣＯＲＲ＿Ｙが出力される。このレンズ歪み垂直補正量ＣＯＲＲ＿Ｙは、加算部２０２の出力値ｖｙ＿ａｄｄに、画素処理クロックＣＬＫごとに加算部２０６で加算される。
【０２７８】
なお、加算部２０２からの垂直座標の補正出力値ｖｙ＿ａｄｄは、レンズ歪み垂直補正量データデコード部１２２からレンズ歪み垂直補正量データＣＯＲＲ＿Ｙを得るときの遅延量分の遅延部２０５を介して加算部２０６に供給される。
【０２７９】
そして、加算部２０６からの出力値Ｙ＿ＡＤＤは、小数部抽出部２０７および整数部抽出部２０８に供給される。
【０２８０】
小数部抽出部２０７は、加算部２０６からの出力値Ｙ＿ＡＤＤの小数部を、画素処理クロックＣＬＫ毎に抽出し、抽出した小数部の値Ｙ＿ＰＨＡＳＥを出力する。この少数部の値Ｙ＿ＰＨＡＳＥは、垂直ＦＩＲフィルタ２１０を備える垂直補間処理部２０９に供給される。
【０２８１】
垂直ＦＩＲフィルタ２１０は、垂直方向に並ぶ複数ラインの画素データを用いて補間処理を行なうもので、垂直補間処理部２０９では、この小数部の値Ｙ＿ＰＨＡＳＥに基づいて乗算係数テーブルを検索し、垂直ＦＩＲフィルタ２１０に供給する乗算係数を得るようにする。これは、補間方向が垂直方向になるだけで、図１１〜図１３を用いて説明した水平ＦＩＲフィルタを用いる水平方向の補間処理とほぼ同様である。
【０２８２】
整数部抽出部２０８は、加算部２０６からの出力値Ｙ＿ＡＤＤの整数部を、画素処理クロックＣＬＫ毎に抽出し、抽出した整数部の値Ｙ＿ＰＯＳを出力する。この整数部の値Ｙ＿ＰＯＳは、現処理ラインの画素処理クロックＣＬＫ毎のｙ座標としてメモリインタフェース５４に供給される。
【０２８３】
メモリインタフェース５４は、レジスタブロック５３に保持されているセパレートアドレスＳｅｐＡｄｒを取り込み、第１メモリ領域６１と、第２メモリ領域６２との分割点アドレスを認識して、第１メモリ領域６１のアドレス範囲（書き込み、読み出し領域）を認識し、第１メモリ領域６１に対する書き込みおよび読み出しを制御する。
【０２８４】
メモリインタフェース５４は、水平処理ブロック５１からの画像データＤＨｏｕｔを、一旦、画像メモリ６の第１メモリ領域６１に書き込む。そして、メモリインタフェース５４は、垂直手ぶれ補正量ＳＹ＿ＡＤＤとレンズ歪み垂直補正量ＣＯＲＲ＿Ｙとの加算量Ｙ＿ＡＤＤの整数部Ｙ＿ＰＯＳに基づいて、出力画像データＤＨｏｕｔ＿０〜ＤＨｏｕｔ＿ｎとして出力する複数の水平ラインの画像データを決める。
【０２８５】
そして、メモリインタフェース５４は、垂直方向の画像処理を開始することができるデータ量の画像データが第１メモリ領域６１に書き込まれたら、垂直補間処理部２０９からの要求信号（ライン要求）ＲＥＱに応じて、この第１メモリ領域６１から、前記整数部Ｙ＿ＰＯＳに基づいて決定された出力画像データＤＨｏｕｔ＿０〜ＤＨｏｕｔ＿ｎを読み出して、垂直補間処理部２０９に送出する。
【０２８６】
垂直補間処理部２０９では、これに入力された画像データＤＨｏｕｔ＿０〜ＤＨｏｕｔ＿ｎについて、垂直手ぶれ補正量ＳＹ＿ＡＤＤとレンズ歪み垂直補正量ＣＯＲＲ＿Ｙとの加算量Ｙ＿ＡＤＤの少数部Ｙ＿ＰＨＡＳＥに基づいて、垂直ＦＩＲフィルタ２１０を用いて垂直方向の補間処理を行なって、垂直方向の手ぶれ補正およびレンズ歪み補正処理を行なうと共に、垂直拡大・縮小処理、垂直解像度変換処理を行なう。前述したように、このときに垂直補間処理部２０９に入力される小数部の値Ｙ＿ＰＨＡＳＥを用いて、垂直ＦＩＲフィルタ２１０に供給する乗算係数が決定されている。
【０２８７】
こうして、垂直補間処理部２０９からは、垂直手ぶれ補正量ＳＹ＿ＡＤＤとレンズ歪み垂直補正量ＣＯＲＲ＿Ｙとの加算量に応じて垂直方向補正処理がなされると共に、垂直方向の拡大・縮小処理、垂直方向の解像度変換がなされた画像データＤＹｏｕｔが得られる。
【０２８８】
この画像データＤＹｏｕｔは、データイネーブル信号ＥＮと共に、メモリインタフェース５４に送られる。メモリインタフェース５４は、この画像データＤＹｏｕｔを第２メモリ領域６２に書き込む。
【０２８９】
そして、メモリインタフェース５４は、画像データ出力処理部５２３からの要求信号ＲＥＱに応じて、例えば、元の画像データのタイミングからみると、１垂直周期遅れたタイミングで、第２メモリ領域６２から画像データを読み出して、画像データ出力処理部５２３に出力画像データＤｏｕｔとして出力する。
【０２９０】
次に、図２０に、上説明した垂直方向の積分処理と、その後段の垂直画像処理のタイミング関係を示す。
【０２９１】
垂直方向の部分切り出し、垂直方向の部分拡大・縮小のいずれもサポートしない場合には、前述したウエイト（ＷＡＩＴ）は発生せず、現処理ラインについての垂直方向の積分回数の上限は高々数回である。このため、同一のラインに対する積分処理と画像処理の両方を、同じ１水平同期信号Ｈ−ＳＹＮＣ期間内でシーケンス化可能である。したがって、この場合には、わざわざ積分完了信号ＳＴＢ＿ＲＤＹを導入する必要はない。
【０２９２】
一方、垂直方向の部分切り出し、もしくは垂直方向の部分拡大をサポートする場合には、1ライン目の積分処理の途中でウエイトが発生する可能性があり、縮小をサポートする場合には、どこか途中の水平ラインでウエイトが発生する可能性がある。そこで、積分完了信号ＳＴＢ＿ＲＤＹがアクティブ（図２０の例ではハイレベル）になるのを待つ必要がある。さらに、この実施形態の垂直処理ブロックでは、レンズ歪み補正も同時に行うので、レンズ歪み垂直補正完了信号ＤＩＳＴ＿ＲＤＹも、アクティブ（図２０の例ではハイレベル）になるのを待って、次の水平ラインの処理のトリガとして、垂直処理用の水平同期信号Ｈ−ＳＹＮＣが生成される。
【０２９３】
すなわち、図２０に示すように、垂直方向の部分切り出し、もしくは垂直方向の部分拡大のいずれの場合でも、同一ラインの積分処理が、ウエイトによって数水平同期信号Ｈ−ＳＹＮＣ区間もしくはそれ以上に渡って中断されるため、積分処理が終了したことを後段に知らせるための積分完了信号ＳＴＢ＿ＲＤＹが必要となる。
【０２９４】
そして、図２０に示すように、レンズ歪み垂直補正処理が終了しないと次のラインの処理に移行できないため、レンズ歪み垂直補正完了信号ＤＩＳＴ＿ＲＤＹが、積分完了信号ＳＴＢ＿ＲＤＹがアクティブになるのに加えて、アクティブになったときに、垂直処理終了信号を出し、その後の水平同期信号Ｈ−ＳＹＮＣのタイミングから、垂直画像処理を次のラインの画像データの処理を行なうようにする。
【０２９５】
また、同時に、あるラインの垂直画像処理が完了していない場合には、次の水平同期信号Ｈ−ＳＹＮＣを、図２０において点線で示すように、マスクするようにする。すなわち、垂直処理終了信号が立たない限り、水平ライン開始処理トリガとしての水平同期信号Ｈ−ＳＹＮＣは、マスクされる。
【０２９６】
［画像メモリ６のメモリアクセス制御および容量］
次に、以上説明した画像処理における画像メモリ６に対する書き込み、読み出しのアクセス制御および画像メモリ６の第１メモリ領域６１および第２メモリ領域６２として必要な容量について、さらに説明する。
【０２９７】
この実施形態の撮像装置は、動作モードとして、
（ａ）動画撮影モード
（ｂ）モニタリングモード（静止画記録の画枠を決定する際などに、モニター用表示画面に表示される映像を生成するモード）
（ｃ）静止画記録モード
（ｄ）静止画再生モード
などがある。
【０２９８】
動画撮影モードには、ＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ；高精細度）動画撮影モードと、ＳＤ（Ｓｔａｎｄａｒｄ  Ｄｅｆｉｎｉｔｉｏｎ）動画撮影モードとがある。
【０２９９】
静止画記録モードやＨＤ動画撮影モードの場合には、出力画像解像度が大容量となるので、画像メモリ６は、１つのメモリ領域として動作させるようにする。一方、ＳＤ動画撮影モードやモニタリングモード、さらに静止画再生モードの場合には、出力画像解像度が比較的小さくなるので、上述したように、画像メモリ６を論理的に２分割して使用するようにする。
【０３００】
図２１は、画像メモリ６を論理的に２分割して使用するようにした上述の画像処理の全体の流れを示す図である。
【０３０１】
すなわち、入力撮像画像信号は、水平画像処理部５１２で上述したような水平方向の画像処理がなされ、その水平方向画像処理結果が、画像メモリ６の第１メモリ領域６１の４つのバンクＢＡＮＫ０〜ＢＡＮＫ３に書き込まれる。この水平方向画像処理結果の、画像メモリ６の４つのバンクＢＡＮＫ０〜ＢＡＮＫ３への書き込みは、メモリインタフェース５４の制御部５４１が制御する。
【０３０２】
この第１メモリ領域６１に書き込まれた水平方向画像処理結果は、垂直画像処理部５２２からの要求に応じて、メモリインタフェース５４の制御部５４２の制御にしたがい読み出されて、垂直画像処理部５２２に供給され、垂直画像処理が実行される。
【０３０３】
そして、垂直画像処理部５２２で上述したような垂直方向の画像処理がなされ、その垂直方向画像処理結果が、画像メモリ６の第２メモリ領域６２の４つのバンクＢＡＮＫ０〜ＢＡＮＫ３に書き込まれる。この垂直方向画像処理結果の、画像メモリ６の４つのバンクＢＡＮＫ０〜ＢＡＮＫ３への書き込みは、メモリインタフェース５４の制御部５４３が制御する。
【０３０４】
そして、この第２メモリ領域６２に書き込まれた垂直方向画像処理結果は、画像データ出力処理部５２３からの要求に応じて、メモリインタフェース５４の制御部５４４の制御にしたがい読み出されて、画像データ出力処理部５２３に供給され、出力撮像画像信号が生成されて出力される。
【０３０５】
以上のように、この実施形態では、メモリインタフェース５４は、水平方向処理後の画像データの書き込み制御部５４１と、垂直方向処理のための画像データの読み出し制御部５４２と、垂直方向処理後の画像データの書き込み制御部５４３と、画像データ出力のための読み出し制御部５４４を備える。
【０３０６】
したがって、メモリインタフェース５４では４個の制御部５４１〜５４４による画像メモリに対するアクセスを調停する必要がある。また、上述のように、この実施形態では、画像メモリ６は、４個のバンクＢＡＮＫ０〜ＢＡＮＫ３からなっているので、メモリインタフェース５４では、この４個のバンクＢＡＮＫ０〜ＢＡＮＫ３に対する書き込みおよび読み出し制御も必要である。そこで、画像メモリ６に対する画像の書き込みおよび読み出しについて、さらに、図２２を参照しながら詳細に説明する。
【０３０７】
図２２に示すように、メモリインタフェース５４は、機能的には、前述した４個の制御部５４１〜５４４を備えると共に、これら制御部５４１〜５４４からの要求（リクエスト）ＲＥＱを調停するための調停部５４５を備える。
【０３０８】
この調停部５４５は、制御部５４１〜５４４からのリクエストＲＥＱを受けたとき、それがいずれの制御部５４１〜５４４からのリクエストＲＥＱであるかを判別する。そして、調停部５４５は、４個の制御部５４１〜５４４からのリクエストＲＥＱについて予め定めた優先順位にしたがって、各制御部５４１〜５４４からのリクエストＲＥＱに対応するアクセス処理の実行を調停するように構成されている。
【０３０９】
この実施形態では、この優先順位の決定においては、画像データの書き込みよりも読み出しを優先し、さらに、それぞれの書き込み／読み出し処理が複雑であればあるほど優先するものとする。
【０３１０】
したがって、この実施形態では、調停部５４５では、
優先度第１位；垂直方向処理のための画像データの読み出し（制御部５４２）
優先度第２位；画像データ出力のための読み出し（制御部５４４）
優先度第３位；水平方向処理後の画像データの書き込み（制御部５４１）
優先度第４位；垂直方向処理後の画像データの書き込み（制御部５４３）
というように優先順序付けをしている。
【０３１１】
そして、この実施形態では、画像データの画像メモリ６への読み書き単位は、１画素分単位や１ライン単位ではなく、水平方向の複数画素分単位、この例では、水平方向の８画素分単位とする。すなわち、メモリインタフェース５４は、水平方向の８画素を、１メモリサイクルでアクセスするメモリ・アーキテクチャーを有する。
【０３１２】
この実施形態では、画像データの輝度成分Ｙ、色差成分ＣｒおよびＣｂとは標本化周波数比が、４：１：１とされているので、８画素分が最適である。もっとも、画像データの輝度成分Ｙ、色差成分ＣｒおよびＣｂとは標本化周波数比が、４：１：１でない場合であっても、水平方向の８画素分を読み書き単位としても、勿論良い。
【０３１３】
なお、この実施形態では、輝度成分Ｙは８ビット、色差成分ＣｒおよびＣｂはそれぞれ２ビットとされ、１画素は１２ビットとなる。したがって、８画素分単位では、９６ビット単位で書き込みがなされることになる。
【０３１４】
したがって、この実施形態では、各制御部５４１〜５４４は、８画素分の画像データが取得（パッキング）できるまで画像データのバッファリングを行なう。
【０３１５】
図２２は、水平処理ブロック５１および垂直処理ブロック５２からのメモリインタフェース５４を通じた画像メモリ６に対する書き込みおよび読み出しのアクセスを、より詳細に説明するための図である。
【０３１６】
この図２２に示すように、水平処理ブロック５１は、機能的に、水平方向処理後の画像データを画像メモリ５に書き込むように要求する水平処理後データ書き込み要求部５１３を備える。
【０３１７】
また、垂直処理ブロック５２は、機能的に、垂直方向処理を行うための画像データを画像メモリ５から読み出すように要求する垂直処理用データ取得要求部５２４と、垂直方向処理後の画像データを画像メモリ５に書き込むように要求する垂直処理後データ書き込み要求部５２５と、垂直方向処理後の画像データを画像メモリ５から出力画像データとして読出すように要求する出力データ読み出し要求部５２６とを備える。
【０３１８】
まず、メモリインタフェース５４による画像データの画像メモリ６への書き込み処理制御について説明する。  
水平処理ブロック５１の水平方向処理後の画像データの書き込みにおいては、水平処理ブロック５１の水平処理データ書き込み要求部５１３からは、有効画素データであることを示すデータイネーブル信号ＥＮと共に、当該有効画素データＤａｔａ（１２ビット／画素）が、画素クロックＣＬＫに同期して、メモリインタフェース５４の制御部５４１に、要求信号として出力される。
【０３１９】
同様に、垂直処理ブロック５２の垂直方向処理後の画像データの書き込みにおいては、垂直処理ブロック５２の水平処理データ書き込み要求部５２５からは、有効画素データであることを示すデータイネーブル信号ＥＮと共に、当該有効画素データＤａｔａ（１２ビット／画素）が、画素クロックＣＬＫに同期して制御部５４３に、要求信号として出力される。
【０３２０】
例えば、水平処理ブロック５１の水平方向処理の書き込みあるいは垂直処理ブロックの垂直方向処理の書き込みにおいて、画素クロックＣＬＫ（図２３（Ａ）参照）に同期して、データイネーブル信号ＥＮ（図２３（Ｂ）参照；ハイレベルがアクティブ）と、画像データの輝度成分Ｙｉ（ｉ＝０，１，２・・・）（図２３（Ｃ）参照）および色差成分（図２３（Ｄ）参照）が出力されたときには、制御部５４１あるいは制御部５４３は、破線で囲んで示す８画素分を取得するまで待って、８画素分取得したら書き込みのリクエストＲＥＱ（図２３（Ｅ）参照）を、調停部５４５を通じて画像メモリ６に送出する。
【０３２１】
したがって、画像メモリ６の第１メモリ領域６１あるいは第２メモリ領域６２には、画像データは、８画素分（９６ビット）単位で書き込みがなされる。
【０３２２】
また、書き込み制御部５４１および５４３は、画像データの書き込みを、１バンクごとに行なう。そして、書き込み制御部５４１および５４３は、所定データ長単位、この例では、１ライン単位で、バンクを順次に切り換えて画像データを書き込むようにする。
【０３２３】
例えば図２４の左側に示すように、水平方向処理後の画像空間のうちの垂直方向処理対象領域の画像データを、画像メモリ６の第１メモリ領域６１の４個のバンクＢＡＮＫ０〜ＢＡＮＫ３に書き込む場合、その書き込みは、図２４の右側に示すようになる。
【０３２４】
すなわち、書き込み制御部５４１は、先ず、最初の１ラインの画像データを、８画素分単位で、バンクＢＡＮＫ０に書き込む。次に、当該最初の１ラインの画像データのバンクＢＡＮＫ０への書き込みが終了すると、２番目のラインの画像データは、バンクＢＡＮＫ１に、８画素分単位で書き込む。そして、この２番目の１ラインの画像データのバンクＢＡＮＫ１への書き込みが終了すると、３番目のラインの画像データは、バンクＢＡＮＫ２に、８画素分単位で書き込む。さらに、この３番目の１ラインの画像データのバンクＢＡＮＫ２への書き込みが終了すると、４番目のラインの画像データは、バンクＢＡＮＫ３に、８画素分単位で書き込む。
【０３２５】
そして、この４番目の１ラインの画像データのバンクＢＡＮＫ３への書き込みが終了すると、次の５番目のラインの画像データは、バンクＢＡＮＫ０に戻って、８画素分単位で書き込む。以下、同様にして、１ライン毎に、バンクを切り換えながら、画像データの書き込みを行なう。
【０３２６】
そして、この場合に、図２４にも示したように、４バンク構成の画像メモリ６の各バンクＢＡＮＫ０〜４では、上述のようなラインメモリ動作をしながら、ＦＩＦＯメモリ（リングメモリ）動作を行なう。
【０３２７】
次に、メモリインタフェース５４による画像データの画像メモリ６からの読み出し処理制御について説明する。  
この実施形態では、画像メモリ６からの画像データの読み出しは、複数バンクごとに行なう。つまり、複数のバンクからの画像データを同時に読み出すようにする。
【０３２８】
この場合に、この実施形態では、垂直処理ブロック５２の垂直処理用データ取得要求部５２４からの読み出し要求に基づいて、読み出し制御部５４２が、垂直方向処理のための画像データを画像メモリ６から読み出す場合には、図２５（Ａ）に示すように、画像メモリ６の４バンクＢＡＮＫ０〜３のすべてから、合計４ライン分を同時に読み出すようにする。つまり、制御部５４２は、画素クロックＣＬＫの１周期に対応する１メモリサイクルで、垂直方向の４ラインの４画素を読み出し、１処理単位周期（８サイクル）で、４×８＝３２画素、１ライン分の読み出し区間で、４ラインの画素データのすべてを読み出すようにする。次の１ライン分の読み出し区間では、次の４ラインの画素データを読み出すようにする。
【０３２９】
また、垂直処理ブロック５２の出力データ読み出し要求部５２６からの読み出し要求に基づいて、読み出し制御部５４６が、出力画像データを画像メモリ６から読み出す場合には、図２５（Ｂ）に示すように、画像メモリ６の４バンクＢＡＮＫ０〜３のうちの、２個ずつから、それぞれ１ライン分、合計２ライン分を同時に読み出すようにする。つまり、制御部５４４は、画素クロックＣＬＫの１周期に対応する１メモリサイクルで、垂直方向の２ラインの２画素を読み出し、１処理単位周期（８サイクル）で、２×８＝１６画素、１ライン分の読み出し区間で、２ライン分の画素データを読み出すようにする。
【０３３０】
そして、図２５（Ｂ）に示すように、この例では、制御部５４４は、バンクＢＡＮＫ０，１の組と、バンクＢＡＮＫ２，３の組とを、順次に、１ライン分の読み出し区間毎に切り換えて読み出しを実行する。
【０３３１】
また、この実施の形態では、上述したように、画素クロックＣＬＫの１サイクルが、１メモリアクセスサイクルとなるが、４個の制御部５４１〜５４４による書き込みアクセスおよび読み出しアクセスを１セットとして、その１セットを実行する区間を処理単位周期の区間（以下、処理単位周期の区間をアクセス権周期区間と呼ぶ）としたとき、メモリインタフェース５４では、このアクセス権周期区間は、複数メモリサイクル（書き込み、読み出しの制御部の数以上のサイクル数）からなるものとし、このアクセス権周期区間を繰り返すことにより、画像メモリ６に対する書き込み／読み出しを行って、画像データをリアルタイム処理するようにしている。
【０３３２】
この実施形態では、アクセス権周期区間は、８メモリサイクル（８クロックサイクル）を１周期としている。そして、各制御部５４１〜５４４のメモリアクセス権は、前述した各制御部についてのアクセスについての優先順位と同様の考えから、１処理アクセス周期内で、
制御部５４１のアクセス権は、１回
制御部５４２のアクセス権は、最低２回、最大５回
制御部５４３のアクセス権は、１回
制御部５４４のアクセス権は、１回
を割り当てるようにしている。
【０３３３】
この場合に、アクセス権周期区間である８クロックサイクル区間の各々の１クロックサイクル区間で、制御部５４１〜５４４のいずれかから、必ず、リクエストＲＥＱが発生するわけではなく、リクエストＲＥＱが発生しない場合もある。
【０３３４】
また、同じ１クロックサイクル区間で、複数の制御部からのリクエストＲＥＱが重なる場合もある。その場合には、前述した各制御部５４１〜５４４に割り当てられた優先順位したがって、調停部５４５が、その１サイクル区間のアクセス権を、どの制御部からのリクエストＲＥＱに応じたアクセスに割り付けるかを決定して調停するようにする。
【０３３５】
図２６に、１アクセス権周期区間における制御部５４１〜５４４からのリクエストに対する各１サイクル区間についてのアクセス件の割り当ての例を示す。なお、この図２６において、各制御部５４１〜５４４からのリクエストはハイレベルのときアクティブ（リクエスト発生）とされている。
【０３３６】
図２６の例では、１アクセス権周期区間において、始めの２クロックサイクル区間では、制御部５４２からの読み出しリクエストのみが発生しているので、調停部５４５は、アクセス権を制御部５４２に渡し、垂直方向処理のための画像データの読み出し制御が実行されるようにする。
【０３３７】
次の、３番目のクロックサイクル区間では、制御部５４２からの読み出しリクエストと、制御部５４４からの読み出しリクエストとが重なって発生するが、優先順位に従い、調停部５４５は、この３番目のクロックサイクル区間も、アクセス権を制御部５４２に渡し、垂直方向処理のための画像データの読み出し制御が実行されるようにする。
【０３３８】
そして、次の４番目のクロックサイクル区間では、制御部５４３からの書き込みリクエストが発生するが、３番目のクロックサイクル区間で実行できなかった制御部５４４からの読み出しリクエストの方が優先順位が高いので、調停部５４５は、アクセス権を制御部５４４に渡し、出力画像データの読み出し処理が実行されるようにする。
【０３３９】
次の５番目のクロックサイクル区間では、制御部５４１からの書き込みリクエストが発生するが、この制御部５４１の方が制御部５４３よりも優先順位が高いので、調停部５４５は、アクセス権を制御部５４１に渡し、水平方向処理後の画像データの書き込みを実行させるようにする。
【０３４０】
次の６番目および７番目のクロックサイクル区間では、最先優先順位である制御部５４２のリクエストが発生するので、調停部５４５は、この６，７番目のクロックサイクル区間は、アクセス権を制御部５４２に渡し、垂直方向処理のための画像データの読み出し制御が実行されるようにする。
【０３４１】
最後の８番目のクロックサイクル区間では、何れの制御部からもリクエストが発生していないので、実行されずに残っている制御部５４３のリクエストに対する要求に答えるために、調停部５４５は、アクセス権を制御部５４３に渡し、垂直方向処理後の画像データの書き込みを実行させるようにする。
【０３４２】
ここで、制御部５４１，５４２，５４３，５４４のそれぞれは、水平処理後データ書き込み要求部５１３、垂直処理用データ取得要求部５２４、垂直処理後データ書き込み要求部５２５、出力データ読み出し要求部５２６から、アクセス処理を実行しようとするアクセス権周期区間よりも例えば１アクセス権周期区間前の１アクセス権周期区間において受け取った、前述の図２２に示したような要求信号に基づいて、図２６に示したようなリクエストをそれぞれ発生する。
【０３４３】
この場合、垂直処理用データ取得要求部５２４および出力データ読み出し要求部５２６からの要求信号には、読み出し要求する画素（以下、これを注目画素という）の画素位置（垂直方向および水平方向の位置）を示す情報が含まれている。
【０３４４】
出力データ読み出し要求部５２６からの要求信号に含まれる、出力する画素データの画素位置（垂直方向および水平方向の位置）の情報は、垂直方向の位置、つまりライン番号は、１アクセス権周期区間では常に同一となるので、制御部５２６は、例えば図２６に示したように、１アクセス権周期区間内の１サイクル区間において、リクエストＲＥＱをハイレベルとして、１サイクル区間分のリクエストを発生する。
【０３４５】
一方、垂直処理用データ取得要求部５２４からの要求信号に含まれる、読み出し要求する注目画素の画素位置（垂直方向および水平方向の位置）を示す情報は、手ぶれおよびレンズ歪みに応じて垂直方向の位置が変動するものとなる。
【０３４６】
制御部５４２は、垂直処理用データ取得要求部５２４からの、水平方向の処理単位である１アドレス権取得周期分の８個の注目画素についての位置情報を受け取ると、当該８個の注目画素についての垂直方向の画像歪みに応じた変動分を求め、求めたその変動分に応じた必要なすべての画素データを読み出すために必要なサイクル区間数を求める。そして、制御部５４２は、求めたサイクル数のサイクル区間についてリクエストＲＥＱを発生する。
【０３４７】
画像歪みに応じた変動分と、１アドレス権取得周期区間内に割り当てるべきサイクル区間数との関係を、画像処理としてレンズ歪みの補正処理の場合について、説明する。
【０３４８】
まず、レンズ歪み画像の歪みの「変動」について述べる。この実施形態の撮像装置では、図５８に示した樽型の歪みの他に、それと逆方向に歪む糸巻き歪みにも対応している。まず、「歪み変動の勾配」について定義する。
【０３４９】
ここで、「歪み変動の勾配」とは、ある一定の水平方向サイズの中で、画像が垂直方向にどれくらい歪んでいるかを示す数値であり、その水平方向サイズ内で最も下側に歪んでいる箇所から最も上側に歪んでいる箇所までの差（変動の最大値＝変動値）を言うものとする。そして、この「歪み変動の勾配」の値である変動値は、正の値であり、０から定義する。ただし、変動０とは「歪み変動無し」とする。
【０３５０】
この実施形態の撮像装置では、８画素単位で画像メモリ６に対して読み書きする処理を前提としている。そこで、水平方向８画素内の変動０〜４の一部を、例として図２７〜図３０に示す。これらの図は、注目画素位置として要求されるラインと、当該注目画素について垂直方向の補間処理を処理するために必要なラインの画素として上下８ラインの画素を考えた場合の図である。
【０３５１】
すなわち、図２７（Ａ），（Ｂ）は、水平方向８画素単位の変動１の場合の変動パターンを示している。図２８（Ａ），（Ｂ），（Ｃ）は、水平方向８画素単位の変動２の場合の変動パターンを示している。図２９（Ａ），（Ｂ），（Ｃ），（Ｄ）は、水平方向８画素単位の変動３の場合の変動パターンを示している。図３０（Ａ），（Ｂ），（Ｃ），（Ｄ）は、水平方向８画素単位の変動４の場合の変動パターンを示している。
【０３５２】
これらの図２７〜図３０において、変動パターン［−１］、［−１，１］、［−２，１］などは、水平方向の８画素単位の最初の注目画素に対して、右上がりに変動する変動値の最大値（負の値とする）と、右下がりに変動する変動値の最大値（正の値とする）とを表している。すなわち、変動パターン［−１］は、８画素単位の最初の注目画素に対して右上がりに１画素分が変動の最大値であるパターンを示している。また、［−１，１］は、８画素単位の最初の注目画素に対して、右上がりには１画素分が変動の最大値であり、右下がりには１画素分が変動の最大値であるパターンを示している。また、［−２，１］８画素単位の最初の注目画素に対して、右上がりには２画素分が変動の最大値であり、右下がりには１画素分が変動の最大値であるパターンを示している。
【０３５３】
前述したように、この実施形態では、画像メモリ６は、４バンク構成であることから一度に４ラインのメモリアクセスが可能である。そこで、図２７〜図３０に示した水平方向８画素単位の変動４においては、４ライン分ずつを３回、読み出すようにすれば、必要なすべての画素データを読み出すことが分かる。
【０３５４】
したがって、制御部５４２は、水平方向８画素単位の画像歪みの勾配が変動４までの範囲においては、いずれの変動の場合も、読み出しアクセスの必要なサイクル数を３として、３サイクルを１アクセス権周期区間内に割り当てるように要求するリクエストＲＥＱを、調停部５４５に対して供給するようにする。
【０３５５】
以上のようにして、制御部５４２は、垂直処理用データ取得要求部５２４から送られてくる、水平方向の処理単位である１アドレス権取得周期分の８個の注目画素についての位置情報から水平方向の８画素単位の画像歪みの勾配を算出し、その画像歪みの変動の勾配から、水平方向の８画素単位についての垂直方向処理に必要なライン数を算出する。
【０３５６】
そして、制御部５４２は、算出された必要なライン数を読み出すのみ必要なメモリアクセスのサイクル数を算出する。さらに、制御部５４２は、その算出したサイクル数分を、１アクセス権周期区間内に割り当てるように要求するリクエストＲＥＱを、調停部５４５に対して供給するようにする。
【０３５７】
なお、実際的には、水平方向の処理単位である１アドレス権取得周期分の水平方向の８個の注目画素についての画像歪みの勾配が算出されると、図２７〜図３０に示したように、垂直方向処理に必要なライン数が分かる。
【０３５８】
そこで、この実施形態では、制御部５４２では、算出した画像歪みの変動の勾配から水平方向の８画素単位についての垂直方向処理に必要なライン数を算出するのではなく、その算出した画像歪みの変動の勾配から、１アクセス権周期区間内に割り当てるサイクル数を直接的に求め、リクエストＲＥＱを調停部５４５に供給するようにしている。
【０３５９】
ところで、この実施形態では、制御部５４２による垂直方向処理用の画像データの読み出しには、アクセス権周期区間で、最大５回のアクセス権を与えている。そして、垂直方向処理用の画像データは、４バンクからライン単位で同時読み出しが可能であるため、
４ライン×５回＝２０ライン
分の画像データを、１アクセス権周期区間内で読み出して取得可能となる。
【０３６０】
このため、アクセス権周期区間、すなわち、クロックＣＬＫの８サイクル内（リアルタイム処理可能な範囲内）では、画像歪み補正と解像度変換を行った場合、前述の図６５に示すように、変動１２までの画像歪み変動の勾配の範囲内であれば、リアルタイム処理対応可能となる。
【０３６１】
この変動１２は、通常のデジタルカメラやビデオカメラで使用されている撮像レンズの場合には、殆どの画像歪み変動が収まってしまう値である。しかしながら、課題の欄でも述べたように、魚眼レンズのような特殊レンズを使用する場合には、垂直方向の画像歪み変動の勾配が、変動１２を超えることがある。このように垂直方向の画像歪み変動の勾配が変動１２を超えた場合には、１処理単位周期の区間、すなわち、１アクセス権周期区間内では、垂直方向処理のために、水平方向の８画素単位で必要とする複数ラインからの画像データを読み出すことができなくなるという問題がある。
【０３６２】
そこで、この実施形態では、制御部５４２で、水平方向８画素単位の画像歪みの勾配が変動１２を超えた場合には、１アクセス権周期区間を超えて、画像データの読み出しを行う必要がある。
【０３６３】
そのため、この実施形態では、制御部５４２は、垂直処理用データ取得要求部５２３に対して、図２２に示すように、待機指示信号ｗａｉｔを送る構成とし、当該待機指示信号ｗａｉｔがアクティブ（アサート（ａｓｓｅｒｔ））になっている間は、垂直処理用データの取得要求のそれ以降の発生を一時停止させて、待機の状態（ストール（ｓｔａｌｌ）の状態）とさせるようにする。そして、水平方向の８画素単位で必要とする垂直方向処理のために必要な画像データの読み出しが完了したら、待機指示信号ｗａｉｔを、非アクティブ状態（デアサート（ｄｅａｓｓｅｒｔ））に戻し、垂直処理用データ取得要求部５２３からの垂直処理用データの取得要求の発生を再開させるようにする。
【０３６４】
以上説明した制御部５４２の処理動作のフローチャートを図３１および図３２に示す。また、図３３および図３４に、垂直処理用データ取得要求部５２４からの垂直処理用データ取得要求の要求ＲＥＱと、１アクセス権周期区間におけるアクセス権割り当ての例を示すタイミングチャートを示す。この場合、図３３は、垂直処理用データ取得要求から求められた水平方向８画素単位の画像歪みの勾配が変動１２を超えない場合であり、図３４は、垂直処理用データ取得要求から求められた水平方向８画素単位の画像歪みの勾配が変動１２を超える場合のタイミングチャートである。
【０３６５】
図３１、図３２のフローチャートおよび図３３，図３４のタイミングチャートを参照しながら、制御部５４２の処理動作の流れを説明する。なお、図３１および図３２のフローチャートは、１画面分の画像データについての処理として示したものである。
【０３６６】
まず、図３１に示すように、制御部５４２では、垂直処理用データ取得要求部５２４からの１画素単位の垂直処理用データ取得要求ｒｅｑｋ（ｋ＝０，１，２，・・・，７）を受けたか否か判別する（ステップＳ４１）。垂直処理用データ取得要求ｒｅｑｋを受けていないと判別したときには、垂直処理用データ取得要求ｒｅｑｋの到来を待つ。そして、ステップＳ１で、垂直処理用データ取得要求ｒｅｑｋを受けたと判別したときには、制御部５４２は、画像歪み変動の勾配の計算を行う（ステップＳ４２）。
【０３６７】
そして、制御部５４２は、１処理単位である水平方向の８画素分の垂直処理用データ取得要求ｒｅｑｋのすべてを受けたか否か判別し（ステップＳ４３）、未だ水平方向の８画素分の垂直処理用データ取得要求ｒｅｑｋのすべては受けていないと判別したときには、ステップＳ１に戻り、このステップＳ４１以降の処理を繰り返す。
【０３６８】
すなわち、図３３および図３４に示すように、垂直処理用データ取得要求部５２４からは、各１アクセス権周期区間の８画素区間において、１画素毎に、注目画素位置を指定する情報を含む１画素単位の垂直処理用データ取得要求ｒｅｑ０〜ｒｅｑ７が制御部５４２に供給される。
【０３６９】
制御部５４２は、垂直処理用データ取得要求ｒｅｑ０〜ｒｅｑ７のそれぞれを受け取る毎に、画像歪み変動の勾配を計算する。したがって、８画素分の垂直処理用データ取得要求ｒｅｑ０〜ｒｅｑ７の最後の垂直処理用データ取得要求ｒｅｑ７を受け取って、ステップＳ２の処理を行うと、制御部５４２では、１処理単位の水平方向の８画素分についての最終的な画像歪み変動の勾配が求められることになる。
【０３７０】
そして、制御部５４２は、ステップＳ３で、１処理単位の水平方向の８画素分の垂直処理用データ取得要求ｒｅｑｋのすべてを受けたと判別したときには、ステップＳ２で計算した１処理単位の水平方向の８画素分についての画像歪み変動の勾配が、変動１２を超えているか否か判別する（ステップＳ４４）。
【０３７１】
ステップＳ４で、画像歪み変動の勾配が変動１２を超えていないと判別したときには、制御部５４２は、待機指示信号ｗａｉｔを非アクティブの状態（例えばｗａｉｔ＝０）とする（ステップＳ４５）。そして、ステップＳ２で求められた、１処理単位の水平方向の８画素分についての最終的な画像歪み変動の勾配に応じて定まる、垂直処理に必要な画像データを読み出すために必要なアクセスサイクル数のリクエストＲＥＱ（図３３参照）を、調停部５４５に供給し、画像メモリ６に対するメモリアクセスを開始するようにする（ステップＳ４６）。なお、図３３のリクエストＲＥＱは、最大数の５サイクルのリクエストとなっているが、これは、画像歪み変動の勾配に応じて、２サイクル以上、５サイクル以下のサイクル数のリクエストＲＥＱとなる。
【０３７２】
次に、ステップＳ４で、画像歪み変動の勾配が変動１２を超えていると判別したときには、制御部５４２は、待機指示信号ｗａｉｔを、図３４に示すように、アクティブの状態（例えばｗａｉｔ＝１）とする（ステップＳ４７）。待機指示信号ｗａｉｔは、図３４からも分かるように、１アクセス権周期区間に同期した、アクセス権周期区間単位の信号である。そして、制御部５４２は、垂直処理用データの読み出しアクセスに割り当てられたサイクル数の最大数を要求するリクエストＲＥＱ（図３４参照）を、調停部５４５に供給し、画像メモリ６に対するメモリアクセスを開始するようにする（ステップＳ４８）。
【０３７３】
図３４では、待機指示信号ｗａｉｔがアクティブになったので、垂直処理用データ取得要求部５２４は、最初の１画素についての垂直処理用データ取得要求ｒｅｑ０はメモリインタフェース５４の制御部５４２に出力するが、それ以降の垂直処理用データ取得要求は出力を一時停止して、待機する状態を示している。
【０３７４】
なお、垂直処理用データ取得要求部５２４は、待機指示信号ｗａｉｔが、非アクティブの状態に戻ったら、２番目の垂直処理用データ取得要求ｒｅｑ１から出力を再開するようにする。
【０３７５】
ステップＳ８の次には、制御部５４２は、図３２のステップＳ１１に進み、１アクセス権周期区間が経過するのを待つ。そして、ステップＳ５１で、１アクセス権周期区間が経過したことを判別したときには、制御部５４２は、次の１アクセス権周期区間において、前の１アクセス権周期区間で読み出しができなかった画像データを読み出すのに必要なサイクル数の再割り当てを行い、その割り当てられたサイクル数のリクエストＲＥＱ（図３４参照）を、調停部５４５に供給し、画像メモリ６に対するメモリアクセスを開始するようにする（ステップＳ５２）。
【０３７６】
そして、制御部５４２は、再割り当てされた読み出しアクセスサイクルによって、前の１アクセス権周期区間で読み出しができなかった必要な画像データの読み出しが完了するか否かを判別する（ステップＳ５３）。
【０３７７】
ステップＳ５３で、必要な画像データの読み出しが完了しないと判別したときには、制御部５４２は、ステップＳ５１に戻って、次の１アクセス権周期区間において、前の１アクセス権周期区間で読み出しができなかった画像データを読み出すのに必要なサイクル数を求めて再割り当てを行い、その割り当てられたサイクル数のリクエストＲＥＱ（図３４参照）を、調停部５４５に供給し、画像メモリ６に対するメモリアクセスを開始するようにする。このとき、待機指示信号ｗａｉｔは、アクティブの状態（この例ではｗａｉｔ＝１）の状態であり、垂直処理用データ取得要求部５２４は、垂直処理用データ取得要求ｒｅｑｋの送出は、未だ一時停止の状態にある。
【０３７８】
そして、ステップＳ５３で、必要な画像データの読み出しが完了すると判別したときには、制御部５４２は、待機指示信号ｗａｉｔを、非アクティブの状態（この例ではｗａｉｔ＝０）に戻す（ステップＳ１４）。このように、待機指示信号ｗａｉｔを、非アクティブの状態に戻すタイミングは、必要な画像データの読み出しについての最後の再割り当て時である。したがって、後述するように、２アクセス権周期区間で必要な画像データのすべての読み出しが可能なときには、図３４に示すように、１回目の再割り当て時に、待機指示信号ｗａｉｔは、非アクティブの状態に戻る。
【０３７９】
待機指示信号ｗａｉｔが非アクティブの状態に戻ると、図３４に示すように、垂直処理用データ取得要求部５２４は、垂直処理用データ取得要求の送出を再開する。この時点から制御部５４２が新たな水平方向８画素分の垂直処理用データ取得要求ｒｅｑ０〜ｒｅｑ７を受け取るまでに、垂直処理用の必要な画像データの読み出しが完了するから、待機指示信号ｗａｉｔは、水平方向８画素分の垂直処理用データ取得要求ｒｅｑ０〜ｒｅｑ７に対応する読み出しアクセスが開始する１アクセス権周期区間前に非アクティブの状態に戻されるのである。これにより、連続的な処理が可能となる。
【０３８０】
制御部５４２は、次に、１画面分の画像データの処理が終了したか否かを判別し（ステップＳ５５）、終了していないと判別したときには、ステップＳ４１に戻り、ステップＳ４１以降の処理を繰り返し、終了していると判別したときには、この処理ルーチンを終了する。
【０３８１】
以上の例では、画像歪み変動の勾配に応じて、ステップＳ５１〜ステップＳ５３の処理を再帰的に行うことにより、画像歪み変動の勾配の変動の大きさに対して制限の無い読み出しアクセス処理、延いては、画像歪み補正処理が可能となる。
【０３８２】
処理対象となる撮像画像が、静止画である場合には、リアルタイム処理を必要としないので、上述の読み出しアクセスのアクセス権周期区間内への再割り当ての回数は、何回であっても、つまり、何個のアクセス権周期区間において再割り当ても行っても、問題とはならない。
【０３８３】
これに対して、動画処理（ビデオ信号処理）においては、リアルタイム性が必要になるので、上記の再割り当て回数が多くなると、結果的にシステム破綻を引き起こすおそれがある。このため、上述のように、再割り当てを再帰的に多数回、無限に可能とするように構成するのは、好ましくない。
【０３８４】
ところで、この場合、１アクセス権周期区間内に、制御部５４２からのリクエストＲＥＱに基づく読み出しアクセスに対しては５サイクルが最大割り当て可能であり、画像メモリ６が４バンクメモリの構成であるので、図３５に示すように、待機指示信号ｗａｉｔを、１アクセス権周期区間のみアクティブにして、１回だけ、垂直処理用画像データの読み出しアクセスの再割り当てを行うことで、画像歪み変動の勾配が変動３２までの大きさの歪みに対応することができる。すなわち、１アクセス権周期区間では、２０ラインに渡る画像データの読み出しが可能であるので、２アクセス権周期区間では、４０ラインに渡る画像データの読み出しが可能となり、画像歪み変動の勾配が変動３２までの大きさの歪みに対応することができる。
【０３８５】
前述したように、魚眼レンズを用いた場合には、図５８（Ｂ）に示したような樽型歪みや、糸巻き歪みの画像歪みが生じるが、一般的な魚眼レンズを用いた場合の画像歪みの補正においては、撮像画像の殆どの位置において、水平方向の８画素単位での画像歪み変動の勾配は、変動３２以内で収まっている。再割り当て回数が多くなるのは、水平方向の８画素での歪み変動が大きくなる場合であり、一般的には、図５８（Ｂ）に示した樽型歪みや、糸巻き歪みの画像の４隅付近である。
【０３８６】
つまり、垂直処理用画像データの読み出しアクセスの再割り当ては、１画像内のすべての位置において実行されることはなく、画像の４隅付近を処理する際に、実行される可能性が高い。そして、一般に、画像の４隅付近では、画像歪みに対して厳正な補正をしなくても、画質的に問題が無いことが分かっている。
【０３８７】
以上のことを踏まえて、次に説明する第２の実施形態においては、動画データのリアルタイム処理を実現するために、上述の実施形態のように垂直処理用画像データの読み出しアクセスのアクセス権周期区間内への再割り当てを再帰的に多数回、無限に可能とするのではなく、上記再割り当ては、１回のみに制限することとする。
【０３８８】
そして、再割り当てによる読み出しアクセスサイクルにおける読み出し処理は、上述した図３５に示した、画像歪み変動の勾配が変動３２内の場合における４０ラインに渡る画像データのみを用いて行うようにする。
【０３８９】
水平方向の画素単位についての垂直処理用画像データの画像歪み変動の勾配が、例えば図３６に示すように、変動３２を超えてしまうような場合を想定する。この図３６においては、垂直処理用画像データ取得要求ｒｅｑ４〜ｒｅｑ６で示される注目画素を処理するために必要な画素データは、変動３２に対応する４０ライン分の範囲を超えた位置のものとなる。
【０３９０】
そこで、この第２の実施形態のメモリインタフェース５４の制御部５４２では、当該垂直処理用画像データ取得要求ｒｅｑ４〜ｒｅｑ６で示される注目画素の位置を、変動３２に対応する４０ライン分の範囲内において、当該要求ｒｅｑ４〜ｒｅｑ６で指定された注目画素位置に最も近く、かつ、垂直処理用を行うための画像データを読み出し可能となる画素位置ｒｅｑ４＊〜ｒｅｑ６＊に強制的に置き換え変更するようにする。
【０３９１】
そして、メモリインタフェース５４の制御部５４２では、この変更した注目画素位置ｒｅｑ４＊〜ｒｅｑ６＊の画素の垂直方向処理に必要な垂直方向の８画素（変動３２に対応する４０ライン分の範囲内）を、元の要求ｒｅｑ４〜ｒｅｑ６で指定された注目画素の垂直方向処理に必要な垂直方向の８画素として読み出すようにする。
【０３９２】
したがって、このような注目画素の置き換え変更により、補正後の画像は、歪みが残留するものとなるが、前述したように、このような処理が行われる画像位置が４隅であり、目立たないことから、画質的には大きな問題とならない。
【０３９３】
この第２の実施形態の場合における制御部５４２の処理のフローチャートの要部を、図３７に示す。この図３７のフローチャートは、図３１に続く部分の処理に関するもので、上述の実施形態における図３２の処理部分に対応する。
【０３９４】
すなわち、第２の実施形態においても、図３１に示した、画像歪み変動の勾配が変動１２以下であって、垂直処理用画像データの読み出しアクセスに対するメモリサイクル割り当てについて再割り当てが必要でない範囲での処理部分については、上述の実施形態と全く同様である。
【０３９５】
この第２の実施形態においては、画像歪み変動の勾配が変動１２を超える場合の処理が上述の実施形態の場合と異なる。
【０３９６】
すなわち、この第２の実施形態においても、図３１のステップＳ４で、水平方向の８画素についての画像歪み変動の勾配が変動１２を超えていると判別したときには、制御部５４２は、図３１のステップＳ８で、垂直処理用データの読み出しアクセスに割り当てられたサイクル数の最大数を要求するリクエストＲＥＱ（図３４参照）を、調停部５４５に供給し、画像メモリ６に対するメモリアクセスを開始する。
【０３９７】
そして、その後、制御部５４２は、図３７に示すように、１アクセス権周期区間が経過するのを待ち（ステップＳ５１）、１アクセス権周期区間が経過したことを判別したときには、次の１アクセス権周期区間において、前の１アクセス権周期区間で読み出しができなかった画像データを読み出すのに必要なサイクル数の再割り当てを行い、その割り当てられたサイクル数のリクエストＲＥＱを、調停部５４５に供給し、画像メモリ６に対するメモリアクセスを開始するようにする（ステップＳ６１）。
【０３９８】
この場合に、ステップＳ６１では、ステップＳ４２で計算した画像歪み変動の勾配が、変動３２を超えていない場合には、５サイクル数以下のサイクルを再割り当てすることで、前の１アクセス権周期区間で読み出しができなかった画像データを読み出すことができる。
【０３９９】
また、ステップＳ４２で計算した画像歪み変動の勾配が、変動３２を超えている場合には、図３６を用いて説明したように、必要な画素データの位置が変動３２に対応する４０ライン分の範囲外となる注目画素の位置（ｒｅｑ４〜ｒｅｑ６で指定される注目画素位置）を、変動３２に対応する４０ライン分の範囲内において、当該注目画素位置に最も近く、かつ、垂直処理用を行うための画像データを読み出し可能となる画素位置（ｒｅｑ４＊〜ｒｅｑ６＊の位置）に強制的に置き換え変更するようにして、読み出す画像データ範囲を、変動３２に対応する４０ライン分の範囲内となるようにしてメモリアクセス（読み出しアクセス）処理を実行するようにする。
【０４００】
そして、この第２の実施形態では、制御部５４２は、再割り当て後のメモリアクセス開始を行うと同時に、待機指示信号ｗａｉｔを非アクティブの状態（ｗａｉｔ＝０）に戻し（ステップＳ６２）、垂直処理用画像データ取得要求部５２４を、垂直処理用画像データ要求ｒｅｑｋを出力する状態に復帰させる。
【０４０１】
そして、制御部５４２は、１画面分の画像データの処理が終了したか否かを判別し（ステップＳ６３）、終了していないと判別したときには、図３１のステップＳ４１に戻り、ステップＳ４１以降の処理を繰り返し、終了していると判別したときには、この処理ルーチンを終了する。
【０４０２】
この第２の実施形態によれば、垂直処理用画像データの読み出しアクセスの再割り当て回数をシステムが破綻しない範囲に制限するので、動画データの場合に、リアルタイム処理を確実に行うことができるものである。
【０４０３】
なお、第２の実施形態において、垂直処理用画像データの読み出しアクセスのアクセス権周期区間内への再割り当て回数は、１回に制限するようにしたが、システムが破綻しない範囲であれば、複数回であってもよい。
【０４０４】
以上のようにして、上述の実施形態の撮像装置では、水平８画素内での垂直方向の画像歪み変動の勾配が、変動１２以内であるならば、その垂直方向の画像歪み補正処理を１アクセス権周期区間内において処理可能となる。一般の撮像レンズによる画像歪み変動の勾配は、通常、変動１２以内の変動であるので、通常の画像歪みを十分カバーすることができ、高画質な画像歪み補正処理と解像度変換処理とがリアルタイムで実現できる。
【０４０５】
また、魚眼レンズを撮像レンズとして用いる場合のような画像歪み変動の勾配が変動１２を超えるような場合においては、垂直処理用画像データ取得要求部５２４に待機指示信号ｗａｉｔを供給して、垂直処理用画像データ取得要求の出力を一時停止させると共に、複数のアクセス権周期区間において、対応する画像データ読み出しアクセス処理を行うようにしたことにより、補正が不能になるという事態を防ぐことができる。
【０４０６】
そして、画像歪み変動の勾配が変動１２を超えるような場合において、画像データ読み出しアクセス処理を行う複数のアクセス権周期区間を制限することにより、リアルタイム処理を確保することもできる。
【０４０７】
さらに、制御部５４２は、水平８画素内の垂直方向の歪みの変動をチェックした後、そのアクセス範囲を決定することで、垂直方向のメモリアクセスは、水平８画素内で最低限必要な範囲だけのアクセスが可能となり、不必要なデータの読み出しは削減できる。
【０４０８】
すなわち、この実施形態の手法では、図６１に示したような綿密なアクセスは困難であるが、図６０の場合と比べると、図６２に示すように不必要なデータの読み出しは削減できていることがわかる。
【０４０９】
また、図６１の手法では、垂直１画素用ごとに常にアドレス計算、メモリアクセスを行なう必要あるため、垂直方向処理を８画素分行なうためには、８画素×８画素＝６４画素のデータが必要であるため、６４回のアドレス計算およびコマンド発行が必要となる。
【０４１０】
一方、この実施形態の手法では、一度のアクセスで水平方向８画素のデータを取得できるため、最大２０ラインのアクセスの場合でも２０回のアドレス計算およびコマンド発行で、垂直方向８画素分のデータを取得できる。
【０４１１】
以上のことから、この実施形態の手法によれば、図６０の場合および図６１の場合に存在する問題を解決して、低消費電力化と、高処理効率化を実現することができる。
【０４１２】
以上のように、アクセス権周期区間において、上述のようなアクセス権調停を行なうと共に、上述のような、複数バンクに対する書き込み、読み出しを制御することにより、リアルタイムで、手ぶれ補正、レンズ歪み補正および解像度変換などの画像処理が可能となる。各制御部５４１〜５４４では、データはパイプライン処理されており、図２６に示したような８サイクルで、全ての制御部５４１〜５４４の８画素分のアクセスを実現することにより、リアルタイムで歪み補正かつ解像度変換が可能となる。
【０４１３】
例えば、画像処理として図３８に示すように、撮像素子２の全有効画素領域ＡＦＬのうちの、解像度変換用の有効画素領域ＦＬｋから、横×縦＝７２０画素×２４０画素の出力画像に解像度変換する場合を想定し、この場合における、画像メモリ６の第１メモリ領域６１および第２メモリ領域６２における画像データの書き込み、読み出しの様子を図２８に示す。
【０４１４】
すなわち、撮像素子２からの入力撮像画像信号は、水平画像処理部５１２において、上述のような水平方向の画像処理がなされた後、画像メモリ６の第１メモリ領域６１に書き込まれる。
【０４１５】
このとき、第１メモリ領域６１は、前述したように、垂直画像処理が開始できるだけの容量＋マージン分の記憶容量を備えるもので、１画面分（１フィールド分または１フレーム分）よりも少なくてよく、垂直ＦＩＲフィルタのタップ数に応じた複数ライン分以上であれば良い。
【０４１６】
したがって、入力撮像画像信号（図３９（Ｃ））の１画面分は、水平方向の画像処理がなされた後、第１メモリ領域６１に対して、図３９（Ａ）において実線で示すようにして、１垂直周期の間で複数回書き込まれることになる。第１メモリ領域６１に書き込まれた水平処理後の画像信号は、図３９（Ｄ）のように入力撮像画像信号よりも遅延したものとなる。この実施形態では、この遅延は、上述したように、１ライン分ＦＩＦＯメモリ１１２によるものとされている。
【０４１７】
そして、１画面分の画像データの第１メモリ領域６１への初回の書き込みが終了してから、垂直方向の画像処理が開始可能なデータ量が第１メモリ領域６１に書き込まれると、次の第１メモリ領域６１への書き込みが始まる前に、図３９（Ａ）において太い点線で示すように、この第１メモリ領域６１から、先に書き込まれた画像データの読み出しが開始される。
【０４１８】
そして、第１メモリ領域６１から読み出された撮像画像データは、垂直画像処理部５２２で、垂直方向の画像処理がなされた後、図３９（Ａ）において、１点鎖線で示すようにして、第２メモリ領域６２に書き込まれる。したがって、第２メモリ領域６２に書き込まれた垂直処理後の画像信号は、図３９（Ｅ）のように遅延したものとなる。この実施形態では、この遅延は、上述したように、垂直ＦＩＲフィルタのタップ数に応じてものとされている。
【０４１９】
こうして、入力撮像画像信号の１画面分は、第１メモリ領域６１に対して複数回読み書きされながら、垂直方向の画像処理がなされ、その垂直方向画像処理結果が、第２メモリ領域６２に書き込まれてゆく。そして、１垂直周期経過すると、図３９（Ａ）において、２点鎖線で示すようにして、次の垂直同期信号（図３９（Ｂ）参照）の時点から、第２メモリ領域６２から前記垂直方向画像処理結果が、次の画像データの第２メモリ領域６２への書き込みに先立ち、読み出される。すなわち、読み出された出力画像データは、図３９（Ｆ）に示すようなタイミングで出力される。
【０４２０】
以下、上述の処理が、撮像画像データの１画面分単位で、順次に繰り返され、入力撮像画像データは、上述のような画像処理が施された後、１垂直周期遅れで、垂直同期信号および水平同期信号に同期した状態で出力画像データとされる。
【０４２１】
この場合、第１メモリ領域６１は、リングバッファメモリとしてＦＩＦＯ動作により読み書きがなされる。図３９の例では、１画面分の画像データは、第１メモリ領域６１において、２回、折り返されて書き込まれ、また、読み出されるようにされている。
【０４２２】
以上の説明は、垂直同期信号を跨ぐことなく、垂直同期信号区間で、画像メモリ６への書き込み、読み出しが行なわれる場合であるが、画像の部分拡大を行なう場合には、その処理区間が垂直同期信号を跨ぐことがある。しかし、出力画像信号は、１垂直周期遅れで出力されるので、出力画像信号としては同期規格を満たしており、問題とはならない。
【０４２３】
すなわち、例えば画像処理として図４０に示すように、撮像素子２の解像度変換用の有効画素領域ＦＬｋのうちの、例えばユーザにより指定された部分拡大領域を、電子ズーム処理により拡大して、横×縦＝７２０画素×２４０画素の出力画像に解像度変換する場合を想定し、この場合における、画像メモリ６の第１メモリ領域６１および第２メモリ領域６２における画像データの書き込み、読み出しの様子を図４１に示す。
【０４２４】
この場合、撮像素子２からの入力撮像画像信号（図４１（Ｃ））のうちの部分拡大領域に対応する部分の信号は、水平画像処理部５１２において処理された後、図４１（Ａ）において実線で示すようにして、第１メモリ領域６１に書き込まれる。図４１（Ｄ）の水平処理後画像信号においては、当該書き込まれた画像部分は、網点を付して示している。
【０４２５】
第１メモリ領域６１に、部分拡大領域の画像データが、垂直画像処理が可能なデータ量分以上書き込まれると、当該書き込まれた部分拡大領域の画像データが、図４１（Ａ）において太い点線で示すように、第１メモリ領域６１から読み出されて、垂直画像処理がなされる。そして、垂直画像処理後の画像データは、図４１（Ａ）において、１点鎖線で示すようにして、第２メモリ領域６２に書き込まれる。したがって、垂直処理後の画像信号は、図４１（Ｅ）のように、垂直同期信号を跨いだ区間で、第２メモリ領域６２に書き込まれる。
【０４２６】
そして、図４１（Ａ）において、２点鎖線で示すようにして、当該跨いだ垂直同期信号（図４１（Ｂ）参照）の時点から、第２メモリ領域６２から前記垂直方向画像処理結果が、次の画像データの第２メモリ領域６２への書き込みに先立ち、読み出される。すなわち、読み出された出力画像データは、図４１（Ｆ）に示すようなタイミングで出力される。
【０４２７】
次に、画像メモリ６の第１メモリ領域に必要な容量について説明する。前述したように、第１メモリ領域６１として必要な容量は、垂直解像度変換や補間処理のための垂直ＦＩＲフィルタのタップ数、電子ズーム率、レンズ歪み補正率、手ぶれ補正率に応じて変化する。
【０４２８】
第１メモリ領域６１の容量の決定方法を、図４２のフローチャートを参照しながら説明する。この実施形態の撮像装置は、手ぶれ補正の有無、電子ズームの有無、レンズ歪み補正の有無を、ユーザが選択設定できるようにしており、それらのユーザ選択設定に応じて、第１メモリ領域６１の容量が変更決定される。このフローチャートの処理は、制御部１０で、ユーザインターフェース９を通じたユーザ入力された選択設定情報に基づいてなされる。
【０４２９】
図４２においては、先ず、手ぶれ補正無しに設定されているかどうか判別する（ステップＳ１０１）。手ぶれ補正無しではなく、手ぶれ補正有りに設定されているときには、電子ズーム無しに設定されているかどうか判別する（ステップＳ１０２）。そして、このステップＳ１０２で、電子ズーム有りに設定されていると判別したときには、制御部１０は、電子ズーム率（最大電子ズーム倍率）と、手ぶれ補正率（どの程度の大きさの手ぶれ補正までを補正することが可能であるかの率）とを考慮した容量ＭＡに、第１メモリ領域６１の記憶容量を設定する（ステップＳ１０３）。すなわち、第１メモリ領域６１の記憶容量が、メモリ容量ＭＡに設定されるように、セパレートアドレスＳｅｐＡｄｒを決定し、レジスタブロック５３のセパレートアドレスＳｅｐＡｄｒを設定すべきレジスタに設定する。
【０４３０】
このステップＳ１０３では、電子ズーム率と手ぶれ補正率とを考慮した場合において、最も容量を必要とする条件での容量を設定容量ＭＡとすればよい。手ぶれ補正有り、電子ズーム有りというモードにおいて、最も容量を必要とする条件は、図４３に示すように、「（ｎ−１）フィールドで、手ぶれ補正範囲を含む入力画像最下段を拡大」を行ない、続いて「ｎフィールドで入力画像最上段を含む、第１メモリ領域６１の容量を超えるライン数からの拡大」を行なうときである。
【０４３１】
（ｎ−１）フィールドで、手ぶれ補正を含む入力画像最下段を、出力画像信号として拡大すると、入力垂直同期Ｖを跨いで垂直方向処理用のデータ読み出しが行なわれ、さらに入力画像の最下段の処理であることから、読み出し開始が最も遅れる。そのとき、ｎフィールドの垂直方向読み出し処理は待ち状態となるが、ｎフィールドの最上段の処理を行なう場合は、その待ち時間分の入力画像を保存しておく必要があり、必要ラインメモリが増加する。また、水平方向処理結果の画像データの書き込みが、垂直方向処理のための画像データの読み出しを追い越してはならないため、必要とされる電子ズーム率、手ぶれ補正率を満足するようにラインメモリ数に、第１メモリ領域６１の容量を設定する必要があるのである。
【０４３２】
この場合における、画像メモリ６の第１メモリ領域６１および第２メモリ領域６２における画像データの書き込み、読み出しの様子を図４４に示す。
【０４３３】
この場合、撮像素子２からの入力撮像画像信号（図４４（Ｃ））のうちの部分拡大領域に対応する部分の信号は、水平画像処理部５１２において処理された後、図４４（Ａ）において実線で示すようにして、第１メモリ領域６１に書き込まれる。図４４（Ｄ）の水平処理後画像信号においては、当該書き込まれた画像部分は、網点を付して示している。
【０４３４】
第１メモリ領域６１に、（ｎ−１）フィールドの部分拡大領域の画像データが、垂直画像処理が可能なデータ量分以上書き込まれると、当該書き込まれた部分拡大領域の画像データが、図４４（Ａ）において太い点線で示すように、第１メモリ領域６１から読み出されて、垂直画像処理がなされる。そして、垂直画像処理後の画像データは、図４４（Ａ）において、１点鎖線で示すようにして、第２メモリ領域６２に書き込まれてゆく。したがって、垂直処理後の画像信号は、図４４（Ｅ）のように、垂直同期信号を跨いだ区間で、第２メモリ領域６２に書き込まれる。
【０４３５】
このため、ｎフィールドの部分拡大領域の画像データ部分になると、図４４（Ａ）において、実線で示すように、当該画像データの水平方向画像処理がなされ、その処理結果の第１メモリ領域６１への書き込みが開始される。そして、セパレートアドレスＳｅｐＡｄｒのところで、折り返されて、ｎフィールドの部分拡大領域の画像データの全てが第１メモリ領域６１に書き込まれる。
【０４３６】
このｎフィールドの画像データの水平処理結果の書き込み時にも、（ｎ−１）フィールドの部分拡大領域の水平処理結果の画像データの読み出しが行なわれるので、この読み出しを、ｎフィールドの部分拡大領域の水平処理結果の画像データの書き込みが追い越してしまわないようにしなければならず、そのようにするために、第１メモリ領域６１の容量が設定されるものである。
【０４３７】
そして、第２メモリ領域への垂直処理結果の画像データの書き込みが完了すると、図４４（Ａ）において、２点鎖線で示すようにして、第２メモリ領域６２から前記垂直方向画像処理結果が、次の画像データの第２メモリ領域６２への書き込みに先立ち、読み出される。すなわち、読み出された出力画像データは、図４４（Ｆ）に示すようなタイミングで出力される。
【０４３８】
以上のように、（ｎ−１）フィールドで、手ぶれ補正を含む入力画像最下段を、拡大画像の出力信号にしようとすると、入力同期Ｖを跨いで垂直方向処理用のデータ読み出しが行われ、さらに入力画像の最下段の処理であることから、読み出し開始が最も遅れる。
【０４３９】
その時、次フィールドであるｎフィールドの垂直方向読み出し処理は、待ち状態となるが、ｎフィールドの最上段の処理を行なう場合は、その待ち時間分の入力画像を保存しておく必要があり、必要ラインメモリが増加する。また、図４４に示したように、水平方向処理結果の画像データの第１メモリ領域６１への書き込みが、当該第１メモリ領域６１からの垂直方向処理のための画像データの読み出しを追い越してはならないため、必要とされる電子ズーム率、手ぶれ補正率を満足するようなラインメモリ数分の記憶容量ＭＡを設定する必要がある。
【０４４０】
次に、ステップＳ１０１で、手ぶれ補正なしであると判別したときには、制御部１０では、電子ズームなしであるかどうか判別し（ステップＳ１０４）、電子ズーム有りであると判別したときには、手ぶれ補正無しであるので、電子ズーム率のみを考慮した容量ＭＢを、第１メモリ領域６１の容量として設定する（ステップＳ１０５）。すなわち、第１メモリ領域６１の記憶容量が、メモリ容量ＭＢに設定されるように、セパレートアドレスＳｅｐＡｄｒを決定し、レジスタブロック５３のセパレートアドレスＳｅｐＡｄｒを設定すべきレジスタに設定する。
【０４４１】
この場合の容量ＭＢは、図４５に示すように、「（ｎ−１）フィールドの中心部分の拡大電子ズーム処理」を行ない、続いて「ｎフィールドで、通常の解像度変換処理」を行なうときを考慮して設定すればよい。この場合は、手ぶれ補正が行なわれないため、その分、垂直方向処理の読み出しを早く実行でき、垂直方向処理の入力垂直同期Ｖを跨いで処理する時間が短くなる。そのため、上述のステップＳ１０３の場合と比べて、第１メモリ領域６１の容量を小さくできる。
【０４４２】
この場合における、画像メモリ６の第１メモリ領域６１および第２メモリ領域６２における画像データの書き込み、読み出しの様子を図４６に示す。
【０４４３】
この場合、撮像素子２からの入力撮像画像信号（図４６（Ｃ））のうちの部分拡大領域に対応する部分の信号は、水平画像処理部５１２において処理された後、図４６（Ａ）において実線で示すようにして、第１メモリ領域６１に書き込まれる。図４６（Ｄ）の水平処理後画像信号においては、当該書き込まれた画像部分は、網点を付して示している。
【０４４４】
第１メモリ領域６１に、（ｎ−１）フィールドの部分拡大領域の画像データが、垂直画像処理が可能なデータ量分以上書き込まれると、当該書き込まれた部分拡大領域の画像データが、図４６（Ａ）において太い点線で示すように、第１メモリ領域６１から読み出されて、垂直画像処理がなされる。そして、垂直画像処理後の画像データは、図４６（Ａ）において、１点鎖線で示すようにして、第２メモリ領域６２に書き込まれてゆく。したがって、垂直処理後の画像信号は、図４６（Ｅ）のように、垂直同期信号を跨いだ区間で、第２メモリ領域６２に書き込まれる。
【０４４５】
このため、次フィールドであるｎフィールドの画像データ部分になると、図４６（Ａ）において、実線で示すように、当該画像データの水平方向画像処理がなされ、その処理結果の第１メモリ領域６１への書き込みが開始される。そして、セパレートアドレスＳｅｐＡｄｒのところで、折り返されて、ｎフィールドの部分拡大領域の画像データの全てが第１メモリ領域６１に書き込まれる。
【０４４６】
このｎフィールドの画像データの水平処理結果の書き込み時にも、（ｎ−１）フィールドの部分拡大領域の水平処理結果の画像データの読み出しが行なわれるので、この読み出しを、ｎフィールドの部分拡大領域の水平処理結果の画像データの書き込みが追い越してしまわないようにしなければならず、そのようにするために、第１メモリ領域６１の容量が設定されるものである。
【０４４７】
そして、第２メモリ領域への垂直処理結果の画像データの書き込みが完了すると、図４６（Ａ）において、２点鎖線で示すようにして、第２メモリ領域６２から前記垂直方向画像処理結果が、次の画像データの第２メモリ領域６２への書き込みに先立ち、読み出される。すなわち、読み出された出力画像データは、図４６（Ｆ）に示すようなタイミングで出力される。
【０４４８】
次に、ステップＳ１０４で、電子ズーム有りであると判別したときには、制御部１０では、レンズ歪み補正無しかどうか判別する（ステップＳ１０６）。ステップＳ１０２で、電子ズーム有りであると判別したときにも、このステップＳ１０６に進み、レンズ歪み補正無しかどうか判別する。
【０４４９】
ステップＳ１０６で、レンズ歪み補正有りと判別したときには、制御部１０は、図４７に示すようなレンズ歪みの最大歪み量を見込んだライン数に対応できるメモリ容量ＭＣに、第１メモリ領域６１の記憶容量が設定されるように、セパレートアドレスＳｅｐＡｄｒを決定し、レジスタブロック５３のセパレートアドレスＳｅｐＡｄｒを設定すべきレジスタに設定する（ステップＳ１０７）。
【０４５０】
すなわち、レンズ歪みの補正をするときには、注目するラインを処理するためには、最大歪み分のライン数のデータが確保されている必要があるからである。このステップＳ１０７では、手ぶれ補正、電子ズームを行なわないため、垂直方向処理が入力垂直同期Ｖを跨ぐことがないことから、上書きを考慮する必要はない。よって、最大歪み分のラインメモリで対応できる。
【０４５１】
最後に、ステップＳ１０６で、レンズ歪み補正無しであると判別したときには、制御部１０は、解像度変換のみを考慮して、垂直解像度変換フィルタとしての垂直ＦＩＲフィルタのタップ数分のラインメモリ容量として、第１メモリ領域６１の記憶容量ＭＤを設定する（ステップＳ１０８）。すなわち、第１メモリ領域６１の記憶容量が、メモリ容量ＭＤに設定されるように、セパレートアドレスＳｅｐＡｄｒを決定し、レジスタブロック５３のセパレートアドレスＳｅｐＡｄｒを設定すべきレジスタに設定する。
【０４５２】
この場合、垂直解像度変換は、図５７に示したように、垂直解像度変換処理前の画像の複数ラインから、垂直ＦＩＲフィルタを用いて、垂直解像度変換後の画像の１ラインの画像データを得るようにするものである。垂直解像度変換処理前の画像についての、ある要求ラインに対して、垂直解像度変換結果の１ラインを得るために垂直ＦＩＲフィルタで用いる垂直解像度変換処理前の画像の複数ラインは、垂直ＦＩＲフィルタのタップ数分である。よって、この複数ライン数分が、第１メモリ領域６１に蓄積されると、垂直解像度変換を行なうことできるので、第１メモリ領域６１の容量は、垂直ＦＩＲフィルタのタップ数分のライン数分である容量ＭＤでよい。実際には、容量ＭＤは、垂直ＦＩＲフィルタのタップ数分のライン数分の容量に、マージン分を付加した容量とする。
【０４５３】
以上のようにして、第１メモリ領域６１の容量が決定されるが、この図４２のフローチャートの処理と同様にして、各モードや、手ぶれ補正の有無、レンズ歪み補正の有無、電子ズームの有無などの条件に応じて、予め、レジスタに容量ＭＡ，ＭＢ，ＭＣ，ＭＤを記憶しておき、前記条件を制御部１０が判断して、その判断結果に基づいて、適切なレジスタから第１メモリ領域６１の容量を読み出して、セパレートアドレスを設定するようにしても良い。レジスタに容量ＭＡ，ＭＢ，ＭＣ，ＭＤを記憶しておくのではなく、セパレートアドレスＳｅｐＡｄｒの値をレジスタブロック５３に予め設定しておき、それを必要に応じて読み出して、画像メモリ６のメモリ領域を分割するようにしても良い。
【０４５４】
なお、この実施形態では、撮像装置の制御部１０がユーザの入力選択設定情報に応じて、画像メモリ６の第１メモリ領域の大きさをダイナミックに変更するようにしたが、撮像装置の設計に当たって、電子ズームを設けるか、設けるとしたらどの程度のズーム率にするか、手ぶれ補正をつけるか、つけるとしたらどのくらいの大きさの手ぶれ補正を可能とするか、レンズ歪み補正を付けるか、付けるとしたらどの程度の補正率とするか、などを考慮して、固定的にセパレートアドレスＳｅｐＡｄｒを設定する場合にも、図４２のフローチャートと同様の手順により、メモリ領域６１，６２の大きさを決定するようにするものである。
【０４５５】
次に、この実施形態の撮像装置における画像メモリ６として必要となるメモリ容量について、全画面縮小を例に挙げて説明する。ここで、全画面縮小とは、入力画像を部分切り出しするのではなく、入力画像全範囲から、必要な解像度の出力画像信号に変換する処理である。
【０４５６】
この場合、画像の水平方向サイズをＸピクセル（pixel＝画素）、垂直サイズをＹピクセル（pixel＝画素）、１画素あたりの情報量を、Ｚビットとした時、保存するために必要となるメモリ容量は、
ＳＵＭｍｅｍ＝Ｘ×Ｙ×Ｚ（ビット）
となり、出力画像信号を、４：１：１の輝度信号、色差信号を持つＮＴＳＣ（Ｎａｔｉｏｎａｌ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍ  Ｃｏｍｍｉｔｔｅｅ）方式のＳＤ画像とした場合、第２メモリ領域６２で必要とする容量は、
ＳＵＭｍｅｍ２＝７２０×２４０×１２＝約２．０（メガビット）
となる。
【０４５７】
次に、第１メモリ領域６１において必要となる容量は、上で述べたように、垂直解像度変換のタップ数、手ぶれ補正範囲、電子ズーム率、電子歪み補正率などによって変化する。最もその容量を必要とする条件は、手ぶれ補正範囲を撮像素子の全有効画素領域に指定、電子ズーム率の限界として垂直タップ数の垂直サイズから出力画像信号サイズへの拡大を網羅、電子手ぶれ補正あり、とした場合であり、この場合に、第１メモリ領域６１に必要な容量は、
ＳＵＭｍｅｍ１＝約２．０（メガビット）（実績値）
となる。
【０４５８】
したがって、必要メモリ容量の合計は
ＳＵＭａｌｌ＝ＳＵＭｍｅｍ１＋ＳＵＭｍｅｍ２＝２．０＋２．０＝約４．０（メガビット）
となる。第２メモリ領域６２には、解像度変換後の全データを書き込むため、入力画像サイズに関わらず、２.０（メガビット）となる。
【０４５９】
一方、冒頭で説明した図５４、図５６の従来手法の場合は、入力画像サイズを、１１５２ピクセル×８６４ピクセル（１メガサイズ）とすると、ＳＤ画像は、それぞれ、
ＳＵＭａｌｌ＝１１５２×８６４×１２＝約１１．０（メガビット）
ＳＵＭａｌｌ＝７２０×８６４×１２＝約７．０（メガビット）
となる。
【０４６０】
したがって、上述したこの実施形態の場合には、従来手法に対して、画像メモリの必要メモリ容量を、それぞれ ４０％、６０％に削減できる。ここでは、１メガサイズの画像についてその効果を述べたが、入力サイズが増加しても、この実施形態では、必要メモリ容量が増加しないことから、入力サイズが増大するにつれて、その効果がより顕著となる。
【０４６１】
［画像メモリ６の読み書きタイミング制御］
上述したように、この実施形態では、第１メモリ領域６１には、水平方向の画像処理結果の画像データは１画面分の全てを書き込むのではなく、第１メモリ領域６１の容量を１画面分よりも少ない容量としつつ、上書きにより消去される前に、書き込んだ画像データの読み出しを開始するようにしている。すなわち、水平方向の画像処理結果の画像データに対する垂直方向の画像処理は、１垂直周期待たずに処理を開始することが可能である。このことを可能にした画像メモリ６の第１メモリ領域６１に対する読み出し開始タイミング制御の方法を、以下に説明する。
【０４６２】
この実施形態では、前述した４種の撮像モードに応じて、２種類の読み出し開始タイミング制御方法を用いるようにしている。
【０４６３】
方法１．読み出し開始タイミングを予め計算しておき、有効入力画像データの開始を示す水平および垂直同期信号などに基づいて、当該読み出し開始タイミングを検出して、読み出しを開始する。
【０４６４】
方法２．メモリインタフェース５４の内部で自ら開始タイミングを生成し、垂直方向処理の制御を行なう。
【０４６５】
方法１では、手ぶれ補正、電子ズーム、電子歪み補正率などの条件により、第１メモリ領域６１からの水平処理結果の画像データの読み出し開始タイミングを、予め詳細に決定しておくことは困難であるため、詳細な制御はできないが、メモリコントローラなどで詳細な制御する必要がなく、容易にタイミング制御を実現できる点と、読み出し開始タイミングの設定値によっては、処理開始以降は、回路が待ち状態になることがないような特殊な制御が可能となる点に長所がある。
【０４６６】
この実施形態では、ＨＤ動画撮影モードおよび静止画記録モードでは、この方法１を用いるようにしている。
【０４６７】
一方、方法２では、メモリインタフェース５４自身が、読み出し開始タイミングを生成するため、それに必要な情報を管理・更新する必要があるが、画像メモリ６上の画像データをリアルタイムで管理可能となり、読み出し開始タイミングの詳細な制御ができるという長所がある。そして、この方法２は、メモリ容量の制限などで、詳細な制御を行ないたい場合に効果を発揮する。この実施形態では、ＳＤ動画撮影モードおよびモニタリングモードでは、方法２を用いるようにしている。
【０４６８】
以上の方法１および方法２の適用例は、一例であり、これに限定されるものではない。
【０４６９】
次に、上記の方法２について、その詳細を述べる。方法２を実現するための重要ポイントは、第１メモリ領域６１上に存在する当該フィールド（フレーム）の画像管理情報（メモリ領域上に存在する１フィールド（１フレーム）中での画像範囲およびその開始アドレス、終了アドレス）を常に更新、管理することである。
【０４７０】
一例として、図３８、図３９の例の場合における第１メモリ領域６１についてのデータ書き込み／読み出しの挙動図をクローズアップしたものを図４８に示す。また、１画面分の画像データが、そのときに、第１メモリ領域６１にどのように書き込まれるかを、図４９に示す。図４９は、入力画像データについて水平方向の処理を全て行なった後、有効画像データ部分のみを第１メモリ領域６１に書き込む場合を示している。
【０４７１】
まず、図４８において実線４０１で示すように、水平方向処理後の有効画像の書き込みが開始される。その時の書き込み開始アドレスは任意である。書き込み続けると、アドレスが第１メモリ領域６１のメモリ上限に達し、折り返しが発生する。
【０４７２】
そして、この折り返しが発生した状態で、さらに画像データを書き込み続けると、書き込みアドレスは、前に設定した書き込み開始アドレスに戻って、当該書き込み開始アドレスから、図４８において実線４０２で示すように、第１メモリ領域６１上で画像データの上書きが発生する。さらに、書き込み続けると、アドレスが、再度、第１メモリ領域６１のメモリ上限に達し、折り返しが発生する。
【０４７３】
この折り返しが発生した状態で、さらに画像データを書き込み続けると、書き込みアドレスは、再度、前に設定した書き込み開始アドレスに戻って、当該書き込み開始アドレスから、図４８において実線４０３で示すように、第１メモリ領域６１上で画像データの上書きが発生し、１画面分の残りの画像データが書き込まれる。
【０４７４】
図４８における実線４０１，４０２，４０３で示した書き込み区間の画像データは、１画面分の画像データとしては、図４９に示すようになる。
【０４７５】
図５０（Ａ）および（Ｂ）に、このときに、第１メモリメモリ６１の１個のバンク上に存在する画像範囲の遷移を示す。なお、図３９（Ｂ）では、第１メモリ領域６１の１個のバンクの容量を、説明の便宜上、１００ライン分として示している。
【０４７６】
書き込みを始めてから第１メモリ領域６１の１個のバンクの記憶容量分の書き込みがなされると、図５０（Ｂ）に示すように、画像データの上書きが初めて発生する。その時、保存されていた書き込み開始ラインの画像データが上書きされ、消去されるが、存在終了ラインが増加する。したがって、存在開始ラインと存在終了ラインの相対的な差分は、上書きが開始された時点から常に一定となっている。この存在開始ラインと存在終了ラインのそれぞれのライン情報およびアドレス情報を、メモリインタフェース５４で常に更新管理して、垂直方向読み出しタイミングを自動生成する。
【０４７７】
すなわち、この実施形態では、第１メモリ領域６１上に存在する画像範囲およびその開始アドレス、終了アドレスを管理することで、垂直方向処理のための読み出し開始タイミングを早めることができ、データの上書きが発生する前に所望のデータを読み出すことで、図５４、図５５の従来手法よりも少ないメモリ容量でかつ任意の入力画像サイズからのビデオ信号変換を可能とする。
【０４７８】
さらに、この実施形態では、上述した存在開始ラインの情報をもとに、所望のラインの読み出しアドレス計算を行なうことで、従来では複雑になり得たアドレス計算を簡素化するようにしている。
【０４７９】
すなわち、図５４、図５５に示した従来手法では、画像の読み出しアドレス計算には、図４９に示した書き込み開始ラインおよびその開始アドレスをもとに計算している。つまり、従来手法では、書き込み開始ラインに対する相対アドレスを画像の読み出しのアドレス計算に利用している。その書き込み開始ラインおよびアドレス情報は、垂直ブランキング期間中に一度更新される。
【０４８０】
図５１に、従来方法の場合における垂直方向処理のための画像データの読み出し開始タイミングの計算方法を示す。すなわち、図５１に示すように、垂直方向処理対象のラインが指定されて、その要求が垂直画像処理部で発生したとき、メモリコントローラは、要求されたラインを処理するために必要な画像範囲の複数ラインのアドレスを、書き込み開始ラインからの相対差分を利用して計算し、それらの必要な画像範囲の複数ラインの書き込みが終了していて、その読み出しが開始できるかどうかを判断するようにする。
【０４８１】
しかし、この図５１に示した垂直方向処理のための画像データの読み出し開始タイミングの計算方法として、書き込み開始アドレスを利用したアドレス計算を、この実施形態の撮像装置へ適用すると、次のような問題がある。すなわち、
１．任意の折り返しアドレスに対応するためには除算器が必要となる。
【０４８２】
２．折り返しアドレスが２のべき乗の場合、シフト演算などを用いることで代用できるが、汎用性に欠け、また、動的に折り返しアドレスを変化させることが困難である。
【０４８３】
という問題がある。
【０４８４】
そこで、この実施形態では、アドレス計算には図５０に示した存在開始ラインおよびそのアドレスを利用することでこれらの問題を解決するようにしている。
【０４８５】
図５２に、この実施形態における垂直方向処理のための画像データの読み出し開始タイミングの計算方法を示す。すなわち、図５２に示すように、垂直方向処理対象のラインが指定されて、その要求が垂直画像処理部で発生したとき、メモリインタフェース５４は、要求されたラインを処理するために必要な画像範囲の複数ラインの、その存在開始ラインからの相対差分を利用して計算し、それらの必要な画像範囲の複数ラインの書き込みが終了していて、垂直方向処理が開始できるかどうかを判断するようにする。
【０４８６】
この実施形態では、存在開始ラインに対する相対アドレスを、垂直方向処理のための画像データの読み出し開始タイミングを決定する際のアドレス計算に利用することで、アドレス計算の際の折り返しは高々一回となる。このことより、除算器ではなく減算器などで実現することができ、計算の簡素化できる。
【０４８７】
また、任意の折り返しアドレスに対応可能となる。そして、どのような入力画像サイズの場合でも、アドレス計算の際の折り返し回数は高々一回となるため、任意の入力画像サイズの画像データからの出力画像データへの変換が容易に実現できる。
【０４８８】
この例におけるメモリインタフェース５４の制御部５４２の、垂直処理のための画像データの読み出し制御動作のフローチャートを図５３に示す。ただし、図５３のフローチャートは、１画面分の画像データについての処理を示したもので、動画の画像データの場合には、この図５３の処理が繰り返されることになる。
【０４８９】
すなわち、この場合、図１９に示したように、垂直補間処理部２０９は、前のラインについての垂直補間処理が終了すると、次のラインの垂直補間処理のために、メモリインタフェース５４の制御部５４２（図１９では制御部５４２は省略）に新たな要求ラインの情報を送る。
【０４９０】
メモリインタフェース５４の制御部５４２は、この要求ラインの情報を受け取ると（ステップＳ２０１）、要求ラインを垂直方向処理するために必要な複数ラインを認識し、それら複数ラインの、存在開始ラインに対する相対アドレスに関する計算を、上述したようにして行なう（ステップＳ２０２）。
【０４９１】
このとき、レジスタブロック５３には、制御部１０から手ぶれ補正の有無、レンズ歪み補正の有無、電子ズームの有無などのモードに関する情報が保持されており、メモリインタフェース５４の制御部５４２は、このレジスタブロック５３のモードの情報から、そのときのモードにおいて、要求ラインを垂直方向処理するために必要な複数ラインを認識し、そのアドレス計算を行なう。
【０４９２】
そして、メモリインタフェース５４の制御部５４２は、必要な複数ラインの画像データの読み出しが可能になったか否か判別し（ステップＳ２０３）、未だ、それらの画像データの書き込みが終了していない場合には、垂直補間処理部２０９に供給するウエイト信号ＷＲｗａｉｔ＝１として、その画像データの書き込みが終了していない旨を垂直補間処理部２０９に通知する（ステップＳ２０４）。そして、ステップＳ２０３に戻る。
【０４９３】
また、ステップＳ２０３で、必要な複数ラインの画像データの読み出しが可能になったと判別したときには、メモリインタフェース５４の制御部５４２は、垂直補間処理部２０９に供給するウエイト信号ＷＲｗａｉｔ＝０に戻すと共に、上記必要な複数ラインの画像データを読み出す（ステップＳ２０６）。このステップＳ２０６での読み出しアクセスは、前述したように、アクセス権周期区間（８メモリサイクル区間）において、レンズ歪みの大きさに応じて、最大５回なされ、画像データは、８画素単位で、４ライン分同時に読み出される。
【０４９４】
そして、メモリインタフェース５４の制御部５４２は、一回の読み出しで得た８画素のうち、垂直補間処理に必要な画素データのみを垂直補間処理部２０９に転送する（ステップＳ２０７）。したがって、垂直補間処理部２０９は、要求ラインについての垂直補間処理を開始する。
【０４９５】
次に、メモリインタフェース５４の制御部５４２は、垂直補間処理部２０９から要求されたラインについての垂直補間処理がすべて終了したか否か判別し（ステップＳ２０８）、終了していないと判別したときには、ステップＳ２０６に戻り、ステップＳ２０６，２０７、２０８を繰り返す。
【０４９６】
また、ステップＳ２０８で、垂直補間処理部２０９から要求されたラインについての垂直補間処理がすべて終了したと判別したときには、メモリインタフェース５４の制御部５４２は、１画面分の画像データの全てについての上記処理が終了したか否か判別し、終了してはいないと判別したときには、ステップＳ２０１に戻って、上述の処理を繰り返す。また、１画面分の画像データの全てについての上記処理が終了したと判別したときには、この処理ルーチンを終了する。
【０４９７】
なお、上述の実施形態の説明では、主に動画記録モードのときの撮像画像信号の場合について述べたが、静止画記録、静止画再生などの際にも、上述と同様のアドレス計算方法を適用できることは勿論である。
【０４９８】
以上説明したように、この実施形態によれば、１フィールド（１フレーム）分のメモリ容量に、垂直解像度変換などの垂直方向画像処理を開始するのに必要なメモリ容量を加えるだけで、任意データサイズの入力画像信号から、出力画像信号への変換が可能となり、入力画像分のメモリ容量相当を必要とする従来システムより少ない容量で、解像度変換などの画像処理をリアルタイム処理として実現できる。
【０４９９】
そして、そのリアルタイム画像処理において、この実施の形態では、８画素単位で画像メモリに対する読み書きのアクセスを行なうようにすることにより、画像処理について、低消費電力化と、高処理効率化を実現することができる。
【０５００】
さらに、この実施の形態では、画像メモリを複数バンクの構成とすると共に、画像データの当該複数バンクに対する読み書きを工夫することにより、リアルタイム画像処理を容易に実現することができるようにしている。
【０５０１】
また、水平方向処理および垂直方向処理のための画像データの、画像メモリ６に対する読み書きについて、４個のメモリ書き込みあるいは読み出し制御部５４１〜５４４を設けて、それぞれ独立に制御すると共に、それら４個の制御部によるアクセスを、調停部５４５によって調停するようにしたので、この点でも、リアルタイム画像処理を容易に実現することができる。
【０５０２】
また、この実施形態では、レジスタ設定のセパレートアドレスによるメモリ分割を行なうことで、動的に回路構成を変化させることができ、その結果、さまざまな処理モードに対応することが可能であり、シームレスなモード遷移が可能となる。
【０５０３】
また、メモリ上の画像管理情報をリアルタイムで管理・更新することで、読み出しの際のアドレス計算も簡素化でき、さらに、任意の折り返しアドレスに対応可能となる。
【０５０４】
また、入力画像サイズによらず一定のメモリ容量にて解像度変換などの画像処理を実現できるため、入力画像サイズが大きくなればなるほど、従来システムに対して、その効果を、より発揮できる。さらに、動画像処理だけでなく、静止画処理に対しても適用できるため、より広い分野での利用が期待できる。
【０５０５】
また、画像処理モードに応じてメモリ構成を動的に変化させることと、垂直処理の開始タイミングを２種類の方法を用いて柔軟に設定できることから、汎用性が高く、撮像装置だけでなく、さまざまな画像処理システムに組み込むことが期待できる。
【０５０６】
［他の実施形態および変形例］
なお、上述の実施形態は、垂直方向処理のために画像データを読み出す場合において、１処理単位周期区間内で、メモリアクセス処理が完了しない場合について説明したが、この発明は、このような場合に限らない。
【０５０７】
例えば、図２２において、水平処理ブロック５１の水平処理後データ書き込み要求部５１３、垂直処理ブロック５２の垂直処理用データ取得要求部５２４、垂直処理後データ書き込み要求部５２５、出力データ読み出し要求部５２６のそれぞれは、画像メモリ６に対して、メモリインタフェース５４を通じてメモリアクセスを要求するクライアントとなるが、それらクライアントの一つからの要求に対する処理として、この発明は適用可能である。
【０５０８】
なお、上述の実施形態の説明は、撮像装置を操作するユーザにより生起される手ぶれによる画像歪みを補正する場合であったが、ユーザにより生起される手ぶれのみではなく、撮影時に、撮像素子に対して、その撮像画像の水平方向および／または垂直方向の位置的変化を生じるように加わった振動などの偏倚力に起因して生じる画像歪みをも補正することができることは言うまでもない。
【０５０９】
また、上述の実施形態では、レンズの交換や光学ズームによるレンズの光軸上の移動を考慮するために、レンズ歪み補正用データ導出・エンコード部１１を設けたが、レンズ交換を行なわず、光学ズームの機能を有しない撮像装置の場合であれば、レンズ歪み補正用ベクトルは、撮像素子の各画素位置に対して一意に定まるので、レンズ歪み補正用データデコード部の代わりに、レンズ歪み補正用データの格納部を設け、画素座標データを引数として、レンズ歪み水平方向補正量データやレンズ歪み垂直方向補正量データを読み出すようにすれば良い。
【０５１０】
また、上述の実施形態は、Ｘ−Ｙアドレス型の固体撮像素子としてＣＭＯＳイメージャを用いた場合であるが、撮像素子としてはＣＭＯＳイメージャに限定されるものでないことは勿論である。また、撮像素子は、Ｘ−Ｙアドレス型のものに限定されるものではなく、ＣＣＤ固体撮像素子であってもよい。
【０５１１】
また、この発明は、撮像装置（カメラ）にのみ適用されるものではなく、例えば携帯電話端末、情報携帯端末などに撮像素子が取付けられて、画像を撮影する場合にも適用できるものである。
【０５１２】
また、上述の実施の形態では、撮像画像データに対する画像処理について説明したが、この発明が対象とする画像データは、撮像画像データに限られるものではないことは言うまでもない。
【０５１３】
なお、メモリインタフェース５４の制御部５４１〜５４４および調停部５４５は、上述の実施形態では、ハードウエアとして実現するようにしたが、ソフトウエアにより実現するようにしても良い。
【０５１４】
また、上述の実施形態では、水平方向の画素列の画像データを先に読み出して、１ライン分を読み出したら、次のラインを読み出すようにしたので、水平方向処理を先に行ない、その処理結果を第１メモリ領域に書き込み、垂直方向処理のためには、この第１メモリ領域から水平方向処理結果を読み出すようにしたが、垂直方向の画素列を先に読み出し、垂直方向の１列を読み出したら、次の１列を読み出すようにして、垂直方向処理を先に行ない、その処理結果を第１メモリ領域に書き込み、水平方向処理のために、この第１メモリ領域から水平方向処理結果を読み出すようにしても良い。
【図面の簡単な説明】
【０５１５】
【図１】この発明による画像データ処理装置の実施形態の構成例を示すブロック図である。
【図２】手ぶれ補正を説明するために用いる図である。
【図３】ＣＭＯＳイメージャにおける、手ぶれによるフレーム内画像歪みの原因を説明するための図である。
【図４】ＣＭＯＳイメージャにおける、手ぶれによるフレーム内画像歪みを説明するために用いる図である。
【図５】この発明による画像データ処理装置の実施形態における手ぶれ補正の概要を説明するための図である。
【図６】この発明による画像データ処理装置の実施形態における手ぶれ補正動作を説明するための図である。
【図７】この発明による画像データ処理装置の実施形態における画像メモリのメモリ領域を説明するための図である。
【図８】図１の一部の詳細構成例を示す図である。
【図９】この発明による画像データ処理装置の実施形態における手ぶれ補正動作を説明するための図である。
【図１０】この発明による画像データ処理装置の実施形態における手ぶれ補正動作を説明するための図である。
【図１１】この発明による画像データ処理装置の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。
【図１２】この発明による画像データ処理装置の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。
【図１３】この発明による画像データ処理装置の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。
【図１４】この発明による画像データ処理装置の実施形態において、画像歪みを補正するために用いる補間処理を説明するための図である。
【図１５】図１の実施形態の装置における水平処理用手ぶれ補正量積分部の動作の流れを説明のためのフローチャートである。
【図１６】図１の実施形態の装置における水平画像処理部の詳細構成例を示すブロック図である。
【図１７】図１６の水平画像処理部の動作タイミングを説明するための図である。
【図１８】図１の実施形態の装置における垂直処理用手ぶれ補正量積分部の動作の流れを説明のためのフローチャートである。
【図１９】図１の実施形態の装置における垂直画像処理部の詳細構成例を示すブロック図である。
【図２０】図２０の垂直画像処理部の動作タイミングを説明するための図である。
【図２１】この発明による画像データ処理装置の実施形態における画像データの処理の流れを説明するためのブロック図である。
【図２２】この発明による画像データ処理装置の実施形態における画像メモリに対するメモリアクセス制御の一例を説明するために用いるブロック図である。
【図２３】この発明による画像データ処理装置の実施形態における画像メモリに対するメモリアクセス制御の一例を説明するために用いる図である。
【図２４】この発明による画像データ処理装置の実施形態における画像メモリへの画像データの書き込み動作例を説明するための図である。
【図２５】この発明による画像データ処理装置の実施形態における画像メモリからの画像データの読み出し動作例を説明するための図である。
【図２６】この発明による画像データ処理装置の実施形態における画像メモリに対するメモリアクセス制御の一例を説明するために用いる図である。
【図２７】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの画像メモリからの読み出し制御の説明に用いる図である。
【図２８】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの画像メモリからの読み出し制御の説明に用いる図である。
【図２９】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの画像メモリからの読み出し制御の説明に用いる図である。
【図３０】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの画像メモリからの読み出し制御の説明に用いる図である。
【図３１】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの読み出し処理の例を説明するためのフローチャートの一部を示す図である。
【図３２】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの読み出し処理の例を説明するためのフローチャートの一部を示す図である。
【図３３】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの読み出し処理の例を説明するために用いるタイミングチャートを示す図である。
【図３４】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの読み出し処理の例を説明するために用いるタイミングチャートを示す図である。
【図３５】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの読み出し処理の例を説明するために用いる図である。
【図３６】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの読み出し処理の他の例を説明するために用いる図である。
【図３７】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの読み出し処理の他の例を説明するためのフローチャートの一部を示す図である。
【図３８】この発明による画像データ処理装置の実施形態における画像データの処理の一例を説明するために用いる図である。
【図３９】この発明による画像データ処理装置の実施形態における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図４０】この発明による画像データ処理装置の実施形態における画像データの処理の一例を説明するために用いる図である。
【図４１】この発明による画像データ処理装置の実施形態における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図４２】この発明による画像データ処理装置の実施形態における画像メモリのうちの第１メモリ領域の容量の設定方法を説明するためのフローチャートである。
【図４３】この発明による画像データ処理装置の実施形態における画像データの処理の一例を説明するために用いる図である。
【図４４】この発明による画像データ処理装置の実施形態における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図４５】この発明による画像データ処理装置の実施形態における画像データの処理の一例を説明するために用いる図である。
【図４６】図４５の例における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図４７】この発明による画像データ処理装置の実施形態における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図４８】この発明による画像データ処理装置の実施形態における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図４９】この発明による画像データ処理装置の実施形態における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図５０】この発明による画像データ処理装置の実施形態における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図５１】この発明による画像データ処理装置の実施形態における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図５２】この発明による画像データ処理装置の実施形態における画像メモリへの書き込み／読み出し動作例を説明するための図である。
【図５３】この発明による画像データ処理装置の実施形態における垂直処理のための画像データの画像メモリからの読み出し制御を説明するためのフローチャートである。
【図５４】従来の画像データ処理装置を説明するためのブロック図である。
【図５５】図５４の例の画像データ処理装置における画像メモリへの書き込み／読み出し動作を説明するための図である。
【図５６】画像データ処理装置の他の例を説明するためのブロック図である。
【図５７】垂直方向処理のための画像データの読み出しを説明するための図である。
【図５８】撮像レンズの歪曲収差特性に基づく画像歪みを説明するための図である。
【図５９】撮像レンズの歪曲収差特性に基づく画像歪みの垂直方向補正処理をするための画像データの読み出しの例を説明するための図である。
【図６０】撮像レンズの歪曲収差特性に基づく画像歪みの垂直方向補正処理をするための画像データの読み出しの例を説明するための図である。
【図６１】撮像レンズの歪曲収差特性に基づく画像歪みの垂直方向補正処理をするための画像データの読み出しの他の例を説明するための図である。
【図６２】先に提案した発明による画像データ処理装置の実施形態における垂直処理のための画像データの画像メモリからの読み出し制御の説明に用いる図である。
【図６３】先に提案した発明による画像データ処理装置の実施形態における画像メモリからの画像データの書き込み／読み出し制御の説明に用いるブロック図である。
【図６４】先に提案した発明による画像データ処理装置におけるメモリアクセス処理を説明するための図である。
【図６５】先に提案した発明による画像データ処理装置の実施形態における垂直処理のための画像データの画像メモリからの読み出し制御の説明に用いる図である。
【符号の説明】
【０５１６】
２…撮像素子、５…信号処理部、６…画像メモリ、７…手ぶれ検出部、８…手ぶれ速度検出処理部、１０…制御部、１２…レンズ歪み補正データデコード部、５１…水平処理ブロック、５２…垂直処理ブロック、５３…レジスタブロック、５４…メモリインタフェース、６１…第１メモリ領域、６２…第２のメモリ領域、２０９…垂直補間処理部、５４１〜５４４…制御部、５４５…調停部、ＢＡＮＫ０〜ＢＡＮＫ３…画像メモリ６を構成するバンク
【図１】
2008065722.tif 000003
【図２】
2008065722.tif 000004
【図３】
2008065722.tif 000005
【図４】
2008065722.tif 000006
【図５】
2008065722.tif 000007
【図６】
2008065722.tif 000008
【図７】
2008065722.tif 000009
【図８】
2008065722.tif 000010
【図９】
2008065722.tif 000011
【図１０】
2008065722.tif 000012
【図１１】
2008065722.tif 000013
【図１２】
2008065722.tif 000014
【図１３】
2008065722.tif 000015
【図１４】
2008065722.tif 000016
【図１５】
2008065722.tif 000017
【図１６】
2008065722.tif 000018
【図１７】
2008065722.tif 000019
【図１８】
2008065722.tif 000020
【図１９】
2008065722.tif 000021
【図２０】
2008065722.tif 000022
【図２１】
2008065722.tif 000023
【図２２】
2008065722.tif 000024
【図２３】
2008065722.tif 000025
【図２４】
2008065722.tif 000026
【図２５】
2008065722.tif 000027
【図２６】
2008065722.tif 000028
【図２７】
2008065722.tif 000029
【図２８】
2008065722.tif 000030
【図２９】
2008065722.tif 000031
【図３０】
2008065722.tif 000032
【図３１】
2008065722.tif 000033
【図３２】
2008065722.tif 000034
【図３３】
2008065722.tif 000035
【図３４】
2008065722.tif 000036
【図３５】
2008065722.tif 000037
【図３６】
2008065722.tif 000038
【図３７】
2008065722.tif 000039
【図３８】
2008065722.tif 000040
【図３９】
2008065722.tif 000041
【図４０】
2008065722.tif 000042
【図４１】
2008065722.tif 000043
【図４２】
2008065722.tif 000044
【図４３】
2008065722.tif 000045
【図４４】
2008065722.tif 000046
【図４５】
2008065722.tif 000047
【図４６】
2008065722.tif 000048
【図４７】
2008065722.tif 000049
【図４８】
2008065722.tif 000050
【図４９】
2008065722.tif 000051
【図５０】
2008065722.tif 000052
【図５１】
2008065722.tif 000053
【図５２】
2008065722.tif 000054
【図５３】
2008065722.tif 000055
【図５４】
2008065722.tif 000056
【図５５】
2008065722.tif 000057
【図５６】
2008065722.tif 000058
【図５７】
2008065722.tif 000059
【図５８】
2008065722.tif 000060
【図５９】
2008065722.tif 000061
【図６０】
2008065722.tif 000062
【図６１】
2008065722.tif 000063
【図６２】
2008065722.tif 000064
【図６３】
2008065722.tif 000065
【図６４】
2008065722.tif 000066
【図６５】
2008065722.tif 000067