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