(57)【特許請求の範囲】
【請求項１】
ＸＹ座標系の画像データに対して画像処理する画像処理装置であって、
基準点と座標点（Ｘ，Ｙ）との間の距離の二乗をＲＲ（Ｘ，Ｙ）とし、対象点を（ｎ，ｍ）とし、前記対象点の近傍の２点を（ｎ−１，ｍ）及び（ｎ−２，ｍ）とし、
ＲＲ（ｎ，ｍ）＝Ｃ×ＲＲ（ｎ−１，ｍ）＋Ｅ×ＲＲ（ｎ−２，ｍ）＋Ａ
の漸化式を演算することにより、前記基準点と前記対象点（ｎ，ｍ）との間の距離の二乗ＲＲ（ｎ，ｍ）を出力する二乗演算手段と、
前記基準点と前記対象点との間の距離の二乗ＲＲ（ｎ，ｍ）を基に前記対象点の画像データを画像処理する画像処理手段とを有し、
Ｘ軸方向の画素間隔をＰとしたとき、Ａ＝２Ｐ2、Ｃ＝２、Ｅ＝−１、であり、
前記画像処理手段は、レンズに起因する画像のシェーディングもしくは歪みの少なくとも１つを補正することを特徴とする画像処理装置。
【請求項２】
前記二乗演算手段は、
ｎ＞１においては、
ＲＲ（ｎ，ｍ）＝Ｃ×ＲＲ（ｎ−１，ｍ）＋Ｅ×ＲＲ（ｎ−２，ｍ）＋Ａ
の漸化式を演算することにより、前記基準点と前記対象点（ｎ，ｍ）との間の距離の二乗ＲＲ（ｎ，ｍ）を出力し、
ｎ＝０及びｎ＝１においては、
ＲＲ（０，ｍ）＝Ｄ×ＲＲ（０，ｍ−１）＋Ｆ×ＲＲ（０，ｍ−２）＋Ｂ
ＲＲ（１，ｍ）＝Ｄ×ＲＲ（１，ｍ−１）＋Ｆ×ＲＲ（１，ｍ−２）＋Ｂ
の漸化式を演算することにより、前記基準点と前記対象点（０，ｍ）との間の距離の二乗ＲＲ（０，ｍ）及び前記基準点と前記対象点（１，ｍ）との間の距離の二乗ＲＲ（１，ｍ）を出力し、
Ｘ軸方向の画素間隔をＰ、Ｙ軸方向の画素間隔をＱ、としたとき、Ｂ＝２Ｑ2、Ｄ＝２、Ｆ＝−１、であることを特徴とする請求項１記載の画像処理装置。
【請求項３】
撮像素子の間引き読み出しモードに応じてＰ及びＱの値を変化させることを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記二乗演算手段は、前記基準点と座標点（０，０）との間の距離の二乗ＲＲ（０，０）、前記基準点と座標点（１，０）との間の距離の二乗ＲＲ（１，０）、前記基準点と座標点（０，１）との間の距離の二乗ＲＲ（０，１）、及び前記基準点と座標点（１，１）との間の距離の二乗ＲＲ（１，１）を入力し、それを基に前記基準点と前記対象点との間の距離の二乗を演算することを特徴とする請求項２又は３記載の画像処理装置。
【請求項５】
さらに、前記基準点と前記対象点との間の距離の二乗の平方根を演算する平方根演算手段を有し、
前記画像処理手段は、前記基準点と前記対象点との間の距離の二乗の平方根を基に前記対象点の画像データを画像処理することを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
さらに、レンズと、前記レンズを介して結像される像を電気信号に変換して前記画像データを生成する撮像素子とを有することを特徴とする請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
ＸＹ座標系の画像データに対して画像処理する画像処理方法であって、
基準点と座標点（Ｘ，Ｙ）との間の距離の二乗をＲＲ（Ｘ，Ｙ）とし、対象点を（ｎ，ｍ）とし、前記対象点の近傍の２点を（ｎ−１，ｍ）及び（ｎ−２，ｍ）とし、
ＲＲ（ｎ，ｍ）＝Ｃ×ＲＲ（ｎ−１，ｍ）＋Ｅ×ＲＲ（ｎ−２，ｍ）＋Ａ
の漸化式を演算することにより、前記基準点と前記対象点（ｎ，ｍ）との間の距離の二乗ＲＲ（ｎ，ｍ）を出力する二乗演算ステップと、
前記基準点と前記対象点との間の距離の二乗ＲＲ（ｎ，ｍ）を基に前記対象点の画像データを画像処理する画像処理ステップとを有し、
Ｘ軸方向の画素間隔をＰとしたとき、Ａ＝２Ｐ2、Ｃ＝２、Ｅ＝−１、であり、
前記画像処理ステップは、レンズに起因する画像のシェーディングもしくは歪みの少なくとも１つを補正することを特徴とする画像処理方法。
【請求項８】
前記二乗演算ステップは、
ｎ＞１においては、
ＲＲ（ｎ，ｍ）＝Ｃ×ＲＲ（ｎ−１，ｍ）＋Ｅ×ＲＲ（ｎ−２，ｍ）＋Ａ
の漸化式を演算することにより、前記基準点と前記対象点（ｎ，ｍ）との間の距離の二乗ＲＲ（ｎ，ｍ）を出力し、
ｎ＝０及びｎ＝１においては、
ＲＲ（０，ｍ）＝Ｄ×ＲＲ（０，ｍ−１）＋Ｆ×ＲＲ（０，ｍ−２）＋Ｂ
ＲＲ（１，ｍ）＝Ｄ×ＲＲ（１，ｍ−１）＋Ｆ×ＲＲ（１，ｍ−２）＋Ｂ
の漸化式を演算することにより、前記基準点と前記対象点（０，ｍ）との間の距離の二乗ＲＲ（０，ｍ）及び前記基準点と前記対象点（１，ｍ）との間の距離の二乗ＲＲ（１，ｍ）を出力し、
Ｘ軸方向の画素間隔をＰ、Ｙ軸方向の画素間隔をＱ、としたとき、Ｂ＝２Ｑ2、Ｄ＝２、Ｆ＝−１、であることを特徴とする請求項７記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び方法に関する。
【背景技術】
【０００２】
一般にレンズ系と撮像素子とを有する撮像装置においては、例えばレンズ系による周辺光量落ちなどによって撮像される画像にシェーディングなどが発生する恐れがある。このような画質劣化に対しては、例えばレンズ系を多枚数で設計して画質劣化を防止することも行われるが、このような多枚数で設計されるレンズ系は高価であり、コンパクトカメラ等には採用が困難な場合が多い。
【０００３】
一方、例えば半導体撮像素子を用いる機器のように信号の取り出しがＸＹ座標に従って行われる場合には、取り出された映像信号に対するデジタル処理によって画像を補正することができる。そこで従来から、例えば安価なレンズ系で撮像したために生じる歪みや、周辺光量落ち、色にじみ等のレンズシェーディングをデジタル補正する技術が提案されている。例えば特許文献１では、一般にレンズシェーディングはレンズ系光軸から補正画素までの距離の関数になっていると考えられるため、いわゆるピタゴラスの定理を利用したｄ＝√（Ｘ2＋Ｙ2）でレンズ系光軸から補正画素までの距離ｄを計算する。そして、レンズ系光軸から補正画素までの距離の関数であるシェーディング係数を各補正画素に適用して補正を実施する技術が提案されている。
【０００４】
【特許文献１】特開２００４−２６６７５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなピタゴラスの定理を利用したレンズ系光軸から補正画素までの距離の計算ｄ＝√（Ｘ2＋Ｙ2）は、自乗の計算が２回と平方根の計算が１回含まれる。そのため、この計算を例えばハードウェアで実現するには膨大な回路構成が必要になり安価なコンパクトカメラには採用が難しくなるし、ソフトウェアで実現すれば膨大な時間を要するためカメラとしてのリアルタイム性が損なわれる。
【０００６】
これらの問題を鑑み、本発明は、上記のような距離演算を小規模な回路構成、もしくは簡単なソフトウェア演算で実現可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、ＸＹ座標系の画像データに対して画像処理する画像処理装置であって、基準点と座標点（Ｘ，Ｙ）との間の距離の二乗をＲＲ（Ｘ，Ｙ）とし、対象点を（ｎ，ｍ）とし、前記対象点の近傍の２点を（ｎ−１，ｍ）及び（ｎ−２，ｍ）とし、ＲＲ（ｎ，ｍ）＝Ｃ×ＲＲ（ｎ−１，ｍ）＋Ｅ×ＲＲ（ｎ−２，ｍ）＋Ａの漸化式を演算することにより、前記基準点と前記対象点（ｎ，ｍ）との間の距離の二乗ＲＲ（ｎ，ｍ）を出力する二乗演算手段と、前記基準点と前記対象点との間の距離の二乗ＲＲ（ｎ，ｍ）を基に前記対象点の画像データを画像処理する画像処理手段とを有し、Ｘ軸方向の画素間隔をＰとしたとき、Ａ＝２Ｐ2、Ｃ＝２、Ｅ＝−１、であり、前記画像処理手段は、レンズに起因する画像のシェーディングもしくは歪みの少なくとも１つを補正することを特徴とする。
また、本発明の画像処理方法は、ＸＹ座標系の画像データに対して画像処理する画像処理方法であって、基準点と座標点（Ｘ，Ｙ）との間の距離の二乗をＲＲ（Ｘ，Ｙ）とし、対象点を（ｎ，ｍ）とし、前記対象点の近傍の２点を（ｎ−１，ｍ）及び（ｎ−２，ｍ）とし、ＲＲ（ｎ，ｍ）＝Ｃ×ＲＲ（ｎ−１，ｍ）＋Ｅ×ＲＲ（ｎ−２，ｍ）＋Ａの漸化式を演算することにより、前記基準点と前記対象点（ｎ，ｍ）との間の距離の二乗ＲＲ（ｎ，ｍ）を出力する二乗演算ステップと、前記基準点と前記対象点との間の距離の二乗ＲＲ（ｎ，ｍ）を基に前記対象点の画像データを画像処理する画像処理ステップとを有し、Ｘ軸方向の画素間隔をＰとしたとき、Ａ＝２Ｐ2、Ｃ＝２、Ｅ＝−１、であり、前記画像処理ステップは、レンズに起因する画像のシェーディングもしくは歪みの少なくとも１つを補正することを特徴とする。
【発明の効果】
【０００８】
小規模な回路構成にすることができる。また、簡単なソフトウェア演算で実現可能である。また、処理時間を短縮することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態について説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態である電子スチルカメラ等の画像処理装置を説明するための、概略ブロック図である。図１において、１００は撮像装置（画像処理装置）である。
【００１０】
１０は撮影像を光学的に結像させる撮像レンズ、１１は撮影像の露出を調節するシャッタ、１２は撮影像をアナログの電気信号に変換する撮像素子、１４は撮像素子１２のアナログ信号出力をデジタル信号に変換するＡ／Ｄ変換器である。ここで、Ａ／Ｄ変換器１４から出力されたデジタルデータを、以下ではＣＣＤ−ＲＡＷデータとする。
【００１１】
１６はＤ／Ａ変換器、１８はＴＦＴ  ＬＣＤ等からなる画像表示部である。メモリ４０に書き込まれた表示用の画像データはＤ／Ａ変換器１６を介してデジタルデータからアナログデータに変換され、画像表示部１８により表示される。また、撮像素子１２から映像信号を連続的に読み出し、画像表示部１８に表示することで、電子ビューファインダ機能を実現する。
【００１２】
２０はメモリカードやハードディスク等の記録媒体であり、撮影された画像データ等は記録媒体２０に記録される。
【００１３】
３０は画像処理回路であり、撮影、あるいは記録されたＣＣＤ−ＲＡＷデータに対してＷＢ（ホワイトバランス）補正処理や所定の画素補間処理や色変換処理等の現像処理やリサイズ処理を行う。
【００１４】
４０はＲＯＭ９６のデータを展開したり撮影した画像データを一時的に格納するためのメモリであり、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記録容量を備えている。例えば、Ａ／Ｄ変換器１４から出力された画像のデジタルデータがメモリ制御回路５０、画像処理回路３０、ＪＰＥＧ回路６０を介して、あるいは直接メモリ制御回路５０を介して、メモリ４０に書き込まれる。
【００１５】
５０はメモリ制御回路であり、Ａ／Ｄ変換器１４、Ｄ／Ａ変換器１６、記録媒体２０、画像処理回路３０、メモリ４０、ＪＰＥＧ回路６０、シェーディング補正回路７０へのデータフローを制御する。
【００１６】
６０はベースラインＪＰＥＧ方式により画像データを圧縮・伸長するＪＰＥＧ回路である。
【００１７】
７０は、シェーディング補正回路である。映像信号に光学中心からの距離に応じたシェーディング補正係数を乗算する。
【００１８】
７２は、シェーディング補正に必要なシェーディング係数を画素ごとに生成する、シェーディング係数生成回路である。７４は、乗算器である。
【００１９】
乗算器７４は、シェーディング係数生成回路７２が出力するシェーディング係数と画像データとを画素ごとに乗算し、レンズ系による周辺光量落ちに対するシェーディング補正を行い、シェーディング補正した画像データをメモリ制御回路５０に出力する。
【００２０】
９０はモードダイアルスイッチ９２による設定に従い、またＲＯＭ（読み出し専用メモリ）９６に格納された内容に従い、撮像装置１００全体及び撮像装置１００を構成する各回路の動作制御を行うシステム制御回路である。
【００２１】
９２は操作部で、例えば、電源オフ、撮影モード、再生モード等の各機能モードを切り替え設定することができる。
【００２２】
９６は読み出し専用メモリ（ＲＯＭ）で、システム制御回路９０が使用するプログラム及び、シェーディング補正回路７０が使うシェーディング補正係数等があらかじめ記憶されている。
【００２３】
図８は、従来技術における、シェーディング係数生成回路７２である。４００は距離二乗生成回路、４０２は平方根回路、４０４は係数メモリ、４０６、４０８は二乗演算器、４１０は加算器である。
【００２４】
シェーディング補正時に、画像データとともに補正画像の光学中心（Ｘ０，Ｙ０）と該当画素（Ｘ，Ｙ）との差分ベクトル（Ｘ−Ｘ０，Ｙ−Ｙ０）がメモリ制御回路５０からシェーディング補正回路７０に入力される。差分ベクトル（Ｘ−Ｘ０，Ｙ−Ｙ０）は距離二乗生成回路４００に入力され、ピタゴラスの定理ｄ2＝（Ｘ−Ｘ０）2＋（Ｙ−Ｙ０）2により、光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離の二乗が計算される。
【００２５】
計算された距離の二乗は、平方根回路４０２で平方根計算され、光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離ｄが計算される。求められた距離ｄを基に係数メモリ４０４から該当シェーディング係数を読み出し、シェーディング補正に適用する。
【００２６】
以下、図２から図４を用いて本発明の第１の実施形態における撮像装置（画像処理装置）１００の動作について説明する。
【００２７】
図２は、本実施形態における、シェーディング係数生成回路７２である。２００は距離二乗生成回路、２０２は平方根回路、２０４は係数メモリ、２０６はフリップ・フロップ、２０８は二乗演算器、２１０は加算器、２１２は乗算器である。
【００２８】
シェーディング補正時に、画像データとともに補正対象画像の光学中心（Ｘ０，Ｙ０）と該当画素（Ｘ，Ｙ）との差分ベクトル（Ｘ−Ｘ０，Ｙ−Ｙ０）がメモリ制御回路５０からシェーディング補正回路７０に入力される。差分ベクトル（Ｘ−Ｘ０，Ｙ−Ｙ０）は距離二乗生成回路２００に入力され、光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離の二乗が計算される。その詳細は、後に図３を参照しながら説明する。
【００２９】
計算された距離の二乗は、平方根回路２０２で平方根計算され、光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離ｄが計算される。求められた距離ｄを基に係数メモリ２０４から該当シェーディング係数を読み出し、シェーディング補正に適用する。
【００３０】
本実施形態においては撮像素子の間引きを行わない例を説明する。乗算器２１２は、差分ベクトル（Ｘ−Ｘ０，Ｙ−Ｙ０）に１を乗算し、差分ベクトル（Ｘ−Ｘ０，Ｙ−Ｙ０）をそのまま出力する。なお、本発明においてはこれに限らず、撮像素子を間引き読み出しした場合もシェーディング補正を施しても構わない。その場合、乗算器２１２は、間引きモードに応じた係数を差分ベクトル（Ｘ−Ｘ０，Ｙ−Ｙ０）に乗算する。例えば、垂直方向に１／４間引きする場合は、垂直方向に４を乗算して、差分ベクトル（Ｘ−Ｘ０，４×Ｙ−４×Ｙ０）とし、距離二乗生成回路２００に入力する。
【００３１】
本実施形態においては、シェーディング係数を係数メモリ２０４から読み出すことによって、シェーディング係数を生成しているが、本発明においてはこれに限らず、求めた距離ｄに所定の演算をすることでシェーディング係数を生成するようにしてもかまわない。
【００３２】
また、本実施形態においては、距離ｄを基にシェーディング係数を生成しているが、本発明においてはこれに限らず、距離ｄの二乗を基にシェーディング係数を生成してもかまわない。
【００３３】
図３は、図２の距離二乗生成回路２００の動作を説明するためのタイミングチャートである。ＶＤおよびＨＤは、メモリ制御回路５０から入力される補正対象画像の垂直および水平タイミング信号である。また、ＶおよびＨは、補正対象画像の垂直および水平サイズである。
【００３４】
まず、０ライン目の処理をする前に、二乗演算器２０８により対応する差分ベクトルのＹ成分（０−Ｙ０）からＹ二乗データ（０−Ｙ０）2を計算し、Ｙ二乗記憶フリップ・フロップ２０６（ＦＦ＿ＹＹ）に記憶する。その後、補正対象画像のシェーディング補正回路７０への入力が開始され、対応する差分ベクトルのＸ成分（０−Ｘ０）、（１−Ｘ０）、（２−Ｘ０）等から二乗演算器２０８により（０−Ｘ０）2、（１−Ｘ０）2、（２−Ｘ０）2等を計算する。そして、それらをフリップ・フロップ２０６（ＦＦ＿ＹＹ）の（０−Ｙ０）2と加算し、光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離ｄの二乗を計算する。
【００３５】
以下、同様に、１ライン目以降も演算し、全画像にわたって光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離ｄの二乗を計算する。
【００３６】
図４は、本実施形態におけるシステム制御回路９０の動作を説明するための、フローチャートである。係数メモリ２０４にシェーディング補正係数をロードしてから（Ｓ１０）、シェーディング補正回路７０によって、シェーディング補正を実施する（Ｓ１２）。
【００３７】
以上のように、本実施形態は、ＸＹ座標系の画像データに対して画像処理（シェーディング補正）する画像処理装置であり、基準点の座標（Ｘ０，Ｙ０）と対象点の座標（Ｘ，Ｙ）をそれぞれ入力する際に、前記対象点の座標は前記画像データのラスタ順に入力する。フリップフロップ（記憶手段）２０６は、前記画像データの各ラインの先頭で１回だけ前記基準点のＹ座標と前記対象点のＹ座標との差の二乗（Ｙ−Ｙ０）2を演算して記憶する。二乗演算器２０８は、前記ラスタ順で入力される前記対象点のＸ座標と前記基準点のＸ座標との差の二乗（Ｘ−Ｘ０）2を演算する。加算器２１０は、前記記憶された前記基準点のＹ座標と前記対象点のＹ座標との差の二乗と、前記対象点のＸ座標と前記基準点のＸ座標との差の二乗との和を演算することにより前記基準点と前記対象点との間の距離の二乗を出力する。シェーディング補正（画像処理）回路７０は、前記基準点と前記対象点との間の距離の二乗を基に前記対象点の画像データをシェーディング補正（画像処理）する。シェーディング係数生成回路７２は、画像データの各ラインの先頭で１回だけ前記基準点のＹ座標と前記対象点のＹ座標との差を入力し、前記基準点のＸ座標と前記ラスタ順の前記対象点のＸ座標との差を順次入力する。
【００３８】
（第２の実施形態）
本発明の第２の実施形態における撮像装置の概略図は図１と同じである。
以下、図５から図７を用いて本発明の第２の実施形態における撮像装置（画像処理装置）１００の動作について説明する。
【００３９】
図５は、本実施形態における、シェーディング係数生成回路７２の構成例を示す図である。３００は距離二乗生成回路、３０２は平方根回路、３０４は係数メモリ、３０６は中線定理回路、３０７〜３１６、３４２、３４４はフリップフロップ、３１８〜３４０はデータパス・セレクタである。
【００４０】
光学中心（Ｘ０，Ｙ０）から画素（０，０）、（１，０）、（０，１）、（１，１）までの距離の二乗がロードされる。すなわち、その距離の二乗は、メモリ制御回路５０から距離二乗生成回路３００の垂直方向用距離二乗記憶フリップフロップ３０７、３０８、３１０、３１２（ＦＦ＿ＲＲ＿００〜ＦＦ＿ＲＲ＿１１）にロードされる。距離二乗生成回路３００はロードされた値を初期値として、補正対象画像のシェーディング補正回路７０への入力が開始されると、対応する画素の光学中心（Ｘ０，Ｙ０）からの距離二乗を順次計算する。その詳細は、後に図６を参照しながら説明する。
【００４１】
計算された距離の二乗は、平方根回路３０２で平方根計算され、光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離ｄが計算される。求められた距離ｄを基に係数メモリ３０４から該当シェーディング係数を読み出し、シェーディング補正に適用する。
【００４２】
本実施形態においては、シェーディング係数を係数メモリ３０４から読み出すことによって、シェーディング係数を生成しているが、本発明においてはこれに限らず、求めた距離ｄに所定の演算をすることでシェーディング係数を生成するようにしてもかまわない。
【００４３】
また、本実施形態においては、距離ｄを基にシェーディング係数を生成しているが、本発明においてはこれに限らず、距離ｄの二乗を基にシェーディング係数を生成してもかまわない。
【００４４】
図６は、図５の距離二乗生成回路３００の動作を説明するためのタイミングチャートである。ＶＤおよびＨＤは、メモリ制御回路５０から入力される補正対象画像の垂直および水平タイミング信号である。また、ＶおよびＨは、補正対象画像の垂直および水平サイズである。ＲＲ（Ｘ，Ｙ）は光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離の二乗である。また、フリップ・フロップ３４２、３４４はシステム制御回路９０により設定され、設定値はそれぞれＡ＝２Ｐ2、Ｂ＝２Ｑ2である（ＰおよびＱはそれぞれ、隣接画素のＸ方向およびＹ方向の距離である。連続画素の場合、Ｐ＝Ｑ＝１）。セレクタ３３８（ＡＢＳＥＬ）は、垂直方向用距離二乗記憶フリップ・フロップ３０７、３０８、３１０、３１２（ＦＦ＿ＲＲ＿００〜ＦＦ＿ＲＲ＿１１）の更新中はＢを出力し、それ以外では、Ａを出力する。
【００４５】
図６（ａ）は、垂直方向用距離二乗記憶フリップ・フロップの動作を説明するためのタイミングチャートである。光学中心（Ｘ０，Ｙ０）から画素（０，０）、（１，０）、（０，１）、（１，１）までの距離の二乗が、垂直方向用距離二乗記憶フリップ・フロップ３０７、３０８、３１０、３１２（ＦＦ＿ＲＲ＿００〜ＦＦ＿ＲＲ＿１１）にロードされる。そのロードは、システム制御回路９０により行われる。２ライン目（０ラインオリジン）の処理が開始される前に、まずフリップ・フロップ３０７、３１０（ＦＦ＿ＲＲ＿００，ＦＦ＿ＲＲ＿０１）が更新される。つまり、次式の更新が行われる。
【００４６】
ＦＦ＿ＲＲ＿００＝ＲＲ（０，１）＝ＦＦ＿ＲＲ＿０１・・・（式１）
ＦＦ＿ＲＲ＿０１＝ＲＲ（０，２）＝２ＲＲ（０，１）−ＲＲ（０，０）＋Ｂ
＝２ＦＦ＿ＲＲ＿０１−ＦＦ＿ＲＲ＿００＋Ｂ・・・（式２）
中線定理より、次式が得られる。
ＲＲ（０，０）＋ＲＲ（０，２）＝２（ＲＲ（０，１）＋Ｑ2）
ゆえに、次式が成立する。
ＲＲ（０，２）＝２ＲＲ（０，１）＋２Ｑ2−ＲＲ（０，０）
＝２ＲＲ（０，１）−ＲＲ（０，０）＋Ｂ
（式２）は中線定理回路３０６により実現される。
【００４７】
さらに、２ライン目（０ラインオリジン）の処理が開始される前に、フリップ・フロップ３０８、３１２（ＦＦ＿ＲＲ＿１０，ＦＦ＿ＲＲ＿１１）が更新される。つまり、次式の更新が行われる。
【００４８】
ＦＦ＿ＲＲ＿１０＝ＲＲ（１，１）＝ＦＦ＿ＲＲ＿１１・・・（式３）
ＦＦ＿ＲＲ＿１１＝ＲＲ（１，２）＝２ＲＲ（１，１）−ＲＲ（１，０）＋Ｂ
＝２ＦＦ＿ＲＲ＿１１−ＦＦ＿ＲＲ＿１０＋Ｂ・・・（式４）
中線定理より、次式が得られる。
ＲＲ（１，０）＋ＲＲ（１，２）＝２（ＲＲ（１，１）＋Ｑ2）
ゆえに、次式が成立する。
ＲＲ（１，２）＝２ＲＲ（１，１）＋２Ｑ2−ＲＲ（１，０）
＝２ＲＲ（１，１）−ＲＲ（１，０）＋Ｂ
（式４）は中線定理回路３０６により実現される。
【００４９】
図６（ｂ）は、Ｙライン目（０ラインオリジン）における水平方向用距離二乗記憶フリップ・フロップの動作および距離二乗生成回路３００の出力を説明するためのタイミングチャートである。まず、光学中心（Ｘ０，Ｙ０）から画素（０，Ｙ）、（１，Ｙ）までの距離の二乗ＲＲ（０，Ｙ）、ＲＲ（１，Ｙ）が、水平方向用距離二乗記憶フリップ・フロップ３１６、３１４（ＦＦ＿ＲＲ＿２，ＦＦ＿ＲＲ＿１）にロードされる。距離二乗生成回路３００の出力（セレクタ３４０）は、０画素目は、次式の値を出力する。
ＯＵＴＳＥＬ＝Ｒ（０，Ｙ）＝ＦＦ＿ＲＲ＿２・・・（式５）
【００５０】
１画素目は、次式の値を出力する。
ＯＵＴＳＥＬ＝Ｒ（１，Ｙ）＝ＦＦ＿ＲＲ＿１・・・（式６）
【００５１】
そして、２画素目以降は以下を出力する。
ＯＵＴＳＥＬ＝ＲＲ（２，Ｙ）＝２ＲＲ（１，Ｙ）−ＲＲ（０，Ｙ）＋Ａ
＝２ＦＦ＿ＲＲ＿１−ＦＦ＿ＲＲ＿２＋Ａ・・・（式７）
【００５２】
中線定理より、次式が得られる。
ＲＲ（０，Ｙ）＋ＲＲ（２，Ｙ）＝２（ＲＲ（１，Ｙ）＋Ｐ2）
ゆえに、次式が成立する。
ＲＲ（２，Ｙ）＝２ＲＲ（１，Ｙ）＋２Ｑ2−ＲＲ（０，Ｙ）
＝２ＲＲ（１，Ｙ）−ＲＲ（０，Ｙ）＋Ａ
（式７）は中線定理回路３０６により実現される。
【００５３】
また、３画素目以降、水平方向用距離二乗記憶フリップ・フロップ３１６、３１４（ＦＦ＿ＲＲ＿２，ＦＦ＿ＲＲ＿１）は、以下のように更新される。
ＦＦ＿ＲＲ＿２＝ＲＲ（１，Ｙ）＝ＦＦ＿ＲＲ＿１・・・（式８）
ＦＦ＿ＲＲ＿１＝ＲＲ（２，Ｙ）＝ＯＵＴＳＥＬ・・・（式９）
【００５４】
図７は、本実施形態におけるシステム制御回路９０の動作を説明するための、フローチャートである。ステップＳ１００では、係数メモリ３０４にシェーディング補正係数をロードする。ステップＳ１０２では、光学中心（Ｘ０，Ｙ０）から画素（０，０）、（１，０）、（０，１）、（１，１）までの距離の二乗をロードする。すなわち、その距離の二乗を距離二乗生成回路３００の垂直方向用距離二乗記憶フリップ・フロップ３０７、３０８、３１０、３１２（ＦＦ＿ＲＲ＿００〜ＦＦ＿ＲＲ＿１１）にロードする。そして、フリップ・フロップ３４２、３４４（Ａ，Ｂ）を設定する。ステップＳ１０４では、シェーディング補正回路７０によって、シェーディング補正を実施する。
【００５５】
以上のように、本実施形態は、ＸＹ座標系の画像データに対してシェーディング補正する画像処理装置である。距離二乗生成回路３００は、基準点と座標点（Ｘ，Ｙ）との間の距離の二乗をＲＲ（Ｘ，Ｙ）とし、対象点を（ｎ，ｍ）とし、前記対象点の近傍の２点を（ｎ−１，ｍ）及び（ｎ−２，ｍ）とし、Ｘ軸方向の画素間隔をＰとしたとき、
ＲＲ（ｎ，ｍ）＝２ＲＲ（ｎ−１，ｍ）−ＲＲ（ｎ−２，ｍ）＋２Ｐ2
の漸化式を演算することにより、前記基準点と前記対象点（ｎ，ｍ）との間の距離の二乗ＲＲ（ｎ，ｍ）を出力する。
【００５６】
距離二乗生成回路３００は、
ｎ＞１においては、
ＲＲ（ｎ，ｍ）＝２ＲＲ（ｎ−１，ｍ）−ＲＲ（ｎ−２，ｍ）＋２Ｐ2
の漸化式を演算することにより、前記基準点と前記対象点（ｎ，ｍ）との間の距離の二乗ＲＲ（ｎ，ｍ）を出力し、
ｎ＝０及びｎ＝１においては、Ｙ軸方向の画素間隔をＱとしたとき、
ＲＲ（０，ｍ）＝２ＲＲ（０，ｍ−１）−ＲＲ（０，ｍ−２）＋２Ｑ2
ＲＲ（１，ｍ）＝２ＲＲ（１，ｍ−１）−ＲＲ（１，ｍ−２）＋２Ｑ2
の漸化式を演算することにより、前記基準点と前記対象点（０，ｍ）との間の距離の二乗ＲＲ（０，ｍ）及び前記基準点と前記対象点（１，ｍ）との間の距離の二乗ＲＲ（１，ｍ）を出力する。
【００５７】
また、距離二乗生成回路３００は、前記基準点と座標点との間の距離の二乗ＲＲ（０，０）、ＲＲ（１，０）、ＲＲ（０，１）、及びＲＲ（１，１）を入力し、それを基に前記基準点と前記対象点との間の距離の二乗を演算する。
【００５８】
また、基準点から対象点の近傍の二点までの距離の二乗がそれぞれ入力されて、その対象点とその近傍の二点は互いに等間隔で、且つ、同一Ｘ座標上かもしくは同一Ｙ座標上にある。
【００５９】
本実施形態においては、撮像素子の間引き読み出しモードに応じてＰおよびＱを選択するようにしてもよい。例えば、間引きがない場合は、Ｐ＝１、Ｑ＝１とする。また、例えば、垂直方向に１／４間引きする場合は、Ｐ＝１、Ｑ＝４とする。
【００６０】
本発明の第１の実施形態によれば、光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離の二乗を求める際に、（Ｘ−Ｘ０）2および（Ｙ−Ｙ０）2の二乗計算を共通化するため、従来技術に比べて１画素あたりの二乗の計算を１回削減することができる。
【００６１】
そのため、従来技術に比べて、ハードウェアで実現する場合は回路規模を小さくすることができるし、ソフトウェアで実現する場合は処理時間を短縮することができる。
【００６２】
また、光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ，Ｙ）までの距離の二乗を求める際に、近傍画素の情報を必要としないため、近傍画素情報記憶用のフリップフロップを必要としない。
【００６３】
そのため、本発明の第２の実施形態に比べて、ハードウェアで実現する場合はフリップ・フロップ分の回路規模を小さくすることができる。
【００６４】
また、本発明の第２の実施形態によれば、光学中心（Ｘ０，Ｙ０）から該当画素（Ｘ、Ｙ）までの距離の二乗を求める際に、（Ｘ−Ｘ０）2および（Ｙ−Ｙ０）2の二乗計算を必要としない。
【００６５】
そのため、従来技術および本発明の第１の実施形態に比べて、ハードウェアで実現する場合は二乗計算分の回路規模を小さくすることができるし、ソフトウェアで実現する場合は処理時間を短縮することができる。
【００６６】
第１及び第２の実施形態は、例えばデジタルカメラにおいて使用する画像処理装置及び方法である。詳しくは、撮像素子上でのレンズ系の光軸に対応する点と対象点との距離を算出すると共に、この算出された距離二乗値を用いて、例えばレンズ系による周辺光量落ちに対するシェーディング又は歪み等の補正を行う。
【００６７】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００６８】
【図１】撮像装置の概略ブロック図である。
【図２】本発明の第１の実施形態のシェーディング補正係数生成回路を説明するためのブロック図である。
【図３】本発明の第１の実施形態のシェーディング補正係数生成回路を説明するためのタイミングチャートである。
【図４】本発明の第１の実施形態におけるシステム制御回路９０の動作を説明するためのフローチャートである。
【図５】本発明の第２の実施形態のシェーディング補正係数生成回路を説明するためのブロック図である。
【図６】本発明の第２の実施形態のシェーディング補正係数生成回路を説明するためのタイミングチャートである。
【図７】本発明の第２の実施形態におけるシステム制御回路９０の動作を説明するためのフローチャートである。
【図８】従来技術のシェーディング補正係数生成回路を説明するためのブロック図である。
【符号の説明】
【００６９】
１０  撮影レンズ
１１  シャッタ
１２  撮像素子
１４  Ａ／Ｄ変換器
１６  Ｄ／Ａ変換器
１８  画像表示部
２０  記録媒体
３０  画像処理回路
４０  メモリ
５０  メモリ制御回路
６０  ＪＰＥＧ回路
７０  シェーディング補正回路
７２  シェーディング係数生成回路
７４  乗算器
９０  システム制御回路
９２  操作部
９６  メモリ（ＲＯＭ）
１００  撮像装置
２００  距離二乗生成回路
２０２  平方根回路
２０４  係数メモリ
２０６  フリップ・フロップ
２０８  二乗演算器
２１０  加算器
２１２  乗算器
３００  距離二乗生成回路
３０２  平方根回路
３０４  係数メモリ
３０６  中線定理回路
３０７〜３１６  フリップ・フロップ
３１８〜３４０  データパスセレクタ
３４２，３４４  フリップ・フロップ
４００  距離二乗生成回路
４０２  平方根回路
４０４  係数メモリ
４０６，４０８  二乗演算器
４１０  加算器
【図１】
0004769880.tif 000002
【図２】
0004769880.tif 000003
【図３】
0004769880.tif 000004
【図４】
0004769880.tif 000005
【図５】
0004769880.tif 000006
【図６】
0004769880.tif 000007
【図７】
0004769880.tif 000008
【図８】
0004769880.tif 000009