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