(57)【要約】【課題】撮影指示に対して高速かつ高精度に画像データを補正することができるようにするとともに、シェーディング補正データを記憶するためのメモリ量の増大をできるだけ抑えることができるようにする。【解決手段】補正領域から画素データを読み出す前に演算領域から画素データを読み出し、前記演算領域の読み出し時に読み出される画素データから、前記画素データの各列に対応した一次元ダークシェーディング補正データを算出し、前記撮像素子の領域から画素データを読み出している時に算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正するようにして、撮影指示に対して高速かつ高精度に画像データを補正することができるようにするとともに、シェーディング補正を行うために必要なメモリ量の増大をできるだけ抑えることができるようにする。【選択図】図６
2007336343.tif 000002
【特許請求の範囲】
【請求項１】
開口画素領域及び遮光画素領域を有する撮像素子と、
前記撮像素子から画素データを読み出す読み出し手段と、
前記読み出し手段によって前記撮像素子の遮光画素領域から読み出される画素データから、前記画素データの各列に対応した一次元ダークシェーディング補正データを算出する算出手段と、
前記読み出し手段によって前記撮像素子の開口画素領域から画素データを読み出している時に、前記算出手段により算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正する補正手段とを有し、
前記読み出し手段は、前記開口画素領域から画素データを読み出す前に前記遮光画素領域から画素データを読み出し、
前記算出手段は、前記読み出し手段が前記遮光画素領域から画素データを読み出す時に前記一次元ダークシェーディング補正データを算出し、
前記補正手段は、前記算出手段によって算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正することを特徴とする画像データ補正装置。
【請求項２】
前記算出手段は、前記一次元ダークシェーディング補正データを少なくとも１列からなる複数ブロックに分割して前記ブロック毎に一次元ダークシェーディング補正データを算出し、
前記補正手段は、前記画素データの各列に、前記算出手段によって算出されるブロックと対応するブロック毎の一次元ダークシェーディング補正データを用いて補正を行うことを特徴とする請求項１に記載の画像データ補正装置。
【請求項３】
前記算出手段は、前記一次元ダークシェーディング補正データを少なくとも１列からなる複数ブロックに分割し、各列に対応した一次元ダークシェーディング補正データを、前記各ブロックごとの平均値を用いて近似的に算出し、
前記補正手段は、前記画素データの各列に、前記算出手段によって算出されるブロックと対応する近似の一次元ダークシェーディング補正データを用いて補正を行うことを特徴とする請求項１に記載の画像データ補正装置。
【請求項４】
前記算出手段によって算出される一次元ダークシェーディング補正データを、少なくとも１列からなる複数ブロックに分割する設定を行う分割設定手段を有し、
前記算出手段は、前記分割設定手段の設定に応じて、前記一次元ダークシェーディング補正データを少なくとも１列からなる複数ブロックに分割することを特徴とする請求項３に記載の画像データ補正装置。
【請求項５】
前記分割設定手段によって設定される複数の設定から一つの設定を選択する選択手段を有し、
前記算出手段は、前記選択手段によって選択された設定に応じて、前記一次元ダークシェーディング補正データを少なくとも１列からなる複数ブロックに分割することを特徴とする請求項４に記載の画像データ補正装置。
【請求項６】
前記選択手段は、前記撮像素子の撮影条件、または撮影環境に応じて一つの設定を選択することを特徴とする請求項５に記載の画像データ補正装置。
【請求項７】
前記撮像素子の撮影条件は、撮像素子及び画像データ形成時のゲイン設定であることを特徴とする請求項６に記載の画像データ補正装置。
【請求項８】
前記撮像素子の撮影条件は、露光時間設定であることを特徴とする請求項６または７に記載の画像データ補正装置。
【請求項９】
前記撮像素子の撮影条件は、画像データ形成時の画像サイズであることを特徴とする請求項６〜８の何れか１項に記載の画像データ補正装置。
【請求項１０】
前記撮像素子の駆動条件は、静止画撮影モードと、動画撮影モードとを有し、
前記撮像素子の撮影条件は、前記撮像素子の駆動条件が静止画撮影モードであるか動画撮影モードであるかであることを特徴とする請求項６〜９の何れか１項に記載の画像データ補正装置。
【請求項１１】
前記撮像素子の撮影環境は、前記撮像素子の環境温度であることを特徴とする請求項６〜１０の何れか１項に記載の画像データ補正装置。
【請求項１２】
開口画素領域及び遮光画素領域を有する撮像素子から画素データを読み出す読み出し工程と、
前記読み出し工程において前記撮像素子の遮光画素領域から読み出される画素データから、前記画素データの各列に対応した一次元ダークシェーディング補正データを算出する算出工程と、
前記読み出し工程において前記撮像素子の開口画素領域から画素データを読み出している時に、前記算出工程において算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正する補正工程とを有し、
前記読み出し工程においては、前記開口画素領域から画素データを読み出す前に前記遮光画素領域から画素データを読み出し、
前記算出工程においては、前記読み出し工程において前記遮光画素領域から画素データを読み出す時に前記一次元ダークシェーディング補正データを算出し、
前記補正工程においては、前記算出工程において算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正することを特徴とする画像データ補正方法。
【請求項１３】
前記算出工程においては、前記一次元ダークシェーディング補正データを少なくとも１列からなる複数ブロックに分割して前記ブロック毎に一次元ダークシェーディング補正データを算出し、
前記補正手段においては、前記画素データの各列に、前記算出工程において算出されるブロックと対応するブロック毎の一次元ダークシェーディング補正データを用いて補正を行うことを特徴とする請求項１２に記載の画像データ補正方法。
【請求項１４】
前記算出工程においては、前記一次元ダークシェーディング補正データを少なくとも１列からなる複数ブロックに分割し、各列に対応した一次元ダークシェーディング補正データを、前記各ブロックごとの平均値を用いて近似的に算出し、
前記補正工程においては、前記画素データの各列に、前記算出工程において算出されるブロックと対応する近似の一次元ダークシェーディング補正データを用いて補正を行うことを特徴とする請求項１２に記載の画像データ補正方法。
【請求項１５】
前記算出工程において算出される一次元ダークシェーディング補正データを、少なくとも１列からなる複数ブロックに分割する設定を行う分割設定工程を有し、
前記算出工程においては、前記分割設定工程における設定に応じて、前記一次元ダークシェーディング補正データを少なくとも１列からなる複数ブロックに分割することを特徴とする請求項１４に記載の画像データ補正方法。
【請求項１６】
前記分割設定工程において設定される複数の設定から一つの設定を選択する選択工程を有し、
前記算出工程においては、前記選択工程において選択された設定に応じて、前記一次元ダークシェーディング補正データを少なくとも１列からなる複数ブロックに分割することを特徴とする請求項１５に記載の画像データ補正方法。
【請求項１７】
前記選択工程においては、前記撮像素子の撮影条件、または撮影環境に応じて一つの設定を選択することを特徴とする請求項１６に記載の画像データ補正方法。
【請求項１８】
前記撮像素子の撮影条件は、撮像素子及び画像データ形成時のゲイン設定であることを特徴とする請求項１７に記載の画像データ補正方法。
【請求項１９】
前記撮像素子の撮影条件は、露光時間設定であることを特徴とする請求項１７または１８に記載の画像データ補正方法。
【請求項２０】
前記撮像素子の撮影条件は、画像データ形成時の画像サイズであることを特徴とする請求項１７〜１９の何れか１項に記載の画像データ補正方法。
【請求項２１】
前記撮像素子の駆動条件は、静止画撮影モードと、動画撮影モードとを有し、
前記撮像素子の撮影条件は、前記撮像素子の駆動条件が静止画撮影モードであるか動画撮影モードであるかであることを特徴とする請求項１７〜２０の何れか１項に記載の画像データ補正方法。
【請求項２２】
前記撮像素子の撮影環境は、前記撮像素子の環境温度であることを特徴とする請求項１７〜２１の何れか１項に記載の画像データ補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像データ補正装置及び画像データ補正方法に関し、特に、デジタルカメラ用撮像素子のダークシェーディング補正を行うために用いて好適な技術に関する。
【背景技術】
【０００２】
従来、デジタルカメラ用撮像素子の固定パターンノイズ、特にダーク撮影時に見えるダークシェーディングの補正方法として多くの方法が提案されている。その中でも特に水平方向の一次元方向にパターンがあるダークシェーディングを持つ撮像素子に対するダークシェーディングの補正方法についていくつかの提案がなされている。
【０００３】
例えば、一次元のダークシェーディング補正データを製造工程内で作成して保持する方法等が提案されている。また、特許文献１に記載されているように、撮影直前にダーク画像を取得し、この画像から一次元水平シェーディング補正データを算出し、ダーク画像またはこの一次元水平シェーディング補正データのいずれかを用いて補正を行う方法も提案されている。
【０００４】
一方、光学的シェーディング（周辺光量落ち）の補正方法として、事前に求めた離散的なシェーディング補正データを用いて補正する方法が特許文献２に開示されている。
【０００５】
【特許文献１】特開２００３−３３３４３４号公報
【特許文献２】特開２００１−２７５０２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載されているような撮影前に非露光状態の画像を読み出し、この画像を元に一次元水平シェーディング補正データを作成し補正する方法は、少ない領域でよいのでメモリ領域の削減を図ることに対しては有効である。しかしながら、撮像素子から読み出す動作が入るので、読み出し時間を必要とする。このため、早い撮影コマ速が要求される場合や、電源投入後直ちに撮影を行いたい場合などに反応が遅れるタイムラグが発生し、どうしても時間的な影響が現れてしまうという問題点があった。
【０００７】
一方、非露光状態で事前に撮影を行い、一次元水平シェーディング補正を行うためのデータを演算し、これを撮像装置の製造工程でカメラの記憶手段に記憶しておく方法も提案されている。この方法では、製造工程と、実際の撮影場所での温度等の環境の変化により水平シェーディングの変化が生じないような撮像装置であれば非常に有効である。
【０００８】
ところが、温度等の環境条件とは別に、蓄積時間等の撮影条件によっては、撮像素子の暗電流の影響を無視することができない場合がある。このような場合は、信号中の暗電流成分は蓄積時間に比例するとともに、高温になるほど増大する。一方、センサの画素領域の周囲にはセンサを駆動して信号を出力するための周辺回路が存在する。これら周辺回路は動作することによって発熱するので、センサの検出温度は周辺ほど高くなるような勾配が生じることになる。
【０００９】
この温度勾配によって、センサの暗電流特性は画面内の位置に依存したムラが生じることになる。つまり、周辺回路の熱の影響により、画素領域は周辺部ほど温度が高くなって暗電流も発生し易いため、画面中央部に比べて周辺部が浮き上がった画像となってしまう場合がある。
【００１０】
したがって、温度等の環境条件や前述したような周辺回路からの発熱等により水平シェーディングが変化する場合には、何らかの方法によって補正データそのものを補正する必要がある。ＣＰＵを用いてファームウェアで処理する場合は、演算時間といったタイムラグの影響や、実際の温度変化量に対してどこまで精度よく算出できるのかというように、精度上に問題点があった。
【００１１】
また、特許文献２記載されているような撮影条件、撮影環境毎に異なるシェーディング補正データを事前に算出して記憶しておき、撮影状態に応じて切り替える方法では、撮影条件、撮影環境等によってシェーディングが変化することに対しては、事前に複数のシェーディング補正データを用意しておく必要がある。そのため、これら撮影条件、撮影環境等の変化の全てに対応するためには、大量のシェーディング補正データを記憶しなければならないので、記憶するためのメモリ量が増えて撮像装置の製造コストが上昇してしまうという問題点があった。
【００１２】
本発明は前述の問題点に鑑み、撮影指示に対して高速かつ高精度に画像データを補正することができるようにするとともに、シェーディング補正データを記憶するためのメモリ量の増大をできるだけ抑えることができるようにすることを目的としている。
【課題を解決するための手段】
【００１３】
本発明の画像データ補正装置は、開口画素領域及び遮光画素領域を有する撮像素子と、前記撮像素子から画素データを読み出す読み出し手段と、前記読み出し手段によって前記撮像素子の遮光画素領域から読み出される画素データから、前記画素データの各列に対応した一次元ダークシェーディング補正データを算出する算出手段と、前記読み出し手段によって前記撮像素子の開口画素領域から画素データを読み出している時に、前記算出手段により算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正する補正手段とを有し、前記読み出し手段は、前記開口画素領域から画素データを読み出す前に前記遮光画素領域から画素データを読み出し、前記算出手段は、前記読み出し手段が前記遮光画素領域から画素データを読み出す時に前記一次元ダークシェーディング補正データを算出し、前記補正手段は、前記算出手段によって算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正することを特徴とする。
【００１４】
本発明の画像データ補正方法は、開口画素領域及び遮光画素領域を有する撮像素子から画素データを読み出す読み出し工程と、前記読み出し工程において前記撮像素子の遮光画素領域から読み出される画素データから、前記画素データの各列に対応した一次元ダークシェーディング補正データを算出する算出工程と、前記読み出し工程において前記撮像素子の開口画素領域から画素データを読み出している時に、前記算出工程において算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正する補正工程とを有し、前記読み出し工程においては、前記開口画素領域から画素データを読み出す前に前記遮光画素領域から画素データを読み出し、前記算出工程においては、前記読み出し工程において前記遮光画素領域から画素データを読み出す時に前記一次元ダークシェーディング補正データを算出し、前記補正工程においては、前記算出工程において算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、開口画素領域から画素データを読み出す前に遮光画素領域から画素データを読み出し、前記遮光画素領域の読み出し時に読み出される画素データから、前記画素データの各列に対応した一次元ダークシェーディング補正データを算出し、前記撮像素子の開口画素領域から画素データを読み出している時に算出される一次元ダークシェーディング補正データを用いて前記撮像素子の一次元ダークシェーディングを補正するようにした。これにより、事前に画像データを取り込んで一次元ダークシェーディング補正データを算出する場合と比較して、撮影指示に対してタイムラグを持つことなく高速に画像データを補正することができる。また、環境条件等によって撮像素子のダークシェーディングが変化した場合であっても高精度にシェーディング補正データを算出することが可能である。
【００１６】
また、本発明の他の特徴によれば、遮光画素領域の読み出し時に読み出される画素データから、前記画素データの各列に対応した一次元ダークシェーディング補正データを算出するようにした。これにより、一次元ダークシェーディング補正データを記憶するためのメモリ量の増大をできるだけ抑えることが可能となり、撮像装置の製造コストを低減することができる。
【発明を実施するための最良の形態】
【００１７】
（第１の実施形態）
本発明における第１の実施形態における撮像装置のカメラ動作を図１及び図２を参照しながら簡単に説明する。
図１は、本実施形態における撮像装置（デジタルカメラまたはデジタルビデオカメラ）の機能構成例を示すブロック図である。
１０１は撮像素子であり、ＣＣＤまたはＣＭＯＳセンサが使用されている。１０２は撮像素子１０１から与えられる信号をアナログ−デジタル変換するＡ／Ｄ変換器である。
【００１８】
１０３はＤＳＰ（Digital Signal Processor）であり、Ａ／Ｄ変換器１０２から与えられるデータに対して各種補正処理及び現像処理を行う。またＤＳＰ１０３は、ＲＯＭ１０６、ＲＡＭ１０７等各種メモリの制御や、記録媒体１０８への画像データの書き込み処理を行う。１０４は、撮像素子１０１、Ａ／Ｄ変換器１０２、ＤＳＰ１０３にクロック信号や制御信号を供給するタイミング発生回路であり、ＣＰＵ１０５により制御される。
【００１９】
１０５はＤＳＰ１０３、タイミング発生回路１０４の制御、及び測光・測距など不図示の各部を使ったカメラ機能の制御を行うＣＰＵであり、各スイッチ１０９〜１１１、モードダイアル１１２等が接続され、それぞれの状態に応じた処理を実行する。
【００２０】
１０６は撮像装置の制御プログラムや各種補正データを記憶するＲＯＭであり、１０７はＤＳＰ１０３で処理される画像データや補正データを一時的に記憶するＲＡＭである。工程で取得される各種補正データはＲＯＭ１０６に記憶されており、撮影時にＲＡＭ１０７に展開されて補正に使用されることになる。また、ＲＡＭ１０７はＲＯＭ１０６より高速のアクセスが可能である。
【００２１】
１０８は撮影された画像を保存するコンパクトフラッシュ（登録商標）カード等の記録媒体であり、不図示のコネクタを介して撮像装置１００と接続される。１０９は撮像装置１００を起動させるための電源スイッチであり、１１０は測光処理、測距処理等の動作開始を指示するシャッタースイッチ（ＳＷ１）である。
【００２２】
１１１は不図示のミラー及びシャッターを駆動し、撮像素子１０１から読み出した信号をＡ／Ｄ変換器１０２、ＤＳＰ１０３を介して記録媒体１０８に書き込む一連の撮像動作の開始を指示するシャッタースイッチ（ＳＷ２）である。１１２は撮像装置１００の動作モードを選択するためのモードダイアルである。
【００２３】
図２は、本実施形態の撮像装置による撮影から記録までの処理の一例を示すフローチャートである。
まず、ステップＳ２０１において、撮像装置１００を起動する電源スイッチ１０９がＯＮになっているか否かを判定する。この判定の結果、電源スイッチ１０９がＯＦＦになっているならばＯＮになるまで待機する。
【００２４】
一方、ステップＳ２０１の判定の結果、電源スイッチ１０９がＯＮになっていれば、ステップＳ２０２へ進む。ステップＳ２０２においては、モードダイアル１１２が撮影モードに設定されているか否かを判定する。この判定の結果、撮影モードに設定されているならばステップＳ２０４へ進む。一方、ステップＳ２０２の判定の結果、その他のモードに設定されているならば、ステップＳ２０３に進み、選択されているモードに応じた処理を行い、ステップＳ２０１へ戻る。
【００２５】
次に、ステップＳ２０４において、第１のシャッタースイッチ１１０（ＳＷ１）がＯＮになっているか否かを判定する。この判定の結果、第１のシャッタースイッチ１１０（ＳＷ１）がＯＦＦになっている場合は、ＯＮになるまで待機する。一方、ステップＳ２０４の判定の結果、第１のシャッタースイッチ１１０（ＳＷ１）がＯＮになっている場合には、ステップＳ２０５に進む。
【００２６】
ステップＳ２０５では、不図示の測光制御部及び測距制御部により、絞り値及びシャッター速度を決定する測光処理と、撮影レンズ焦点を被写体に合わせる測距処理とを行う。
【００２７】
測光・測距処理が終了すると、次にステップＳ２０６において、第２のシャッタースイッチ１１１（ＳＷ２）の状態がＯＮになっているか否かを判定する。この判定の結果、第２のシャッタースイッチ１１１（ＳＷ２）がＯＦＦになっている場合には、ＯＮになるまで待機する。一方、ステップＳ２０６の判定の結果、ＯＮになっている場合には、ステップＳ２０７に進み、撮影処理を実行する。この撮影処理の詳細については後述する。
【００２８】
ステップＳ２０７の撮影処理が終了すると、ステップＳ２０８に進み、撮影した画像データに対しＤＳＰ１０３により現像処理を行う。続いてステップＳ２０９において、現像処理の終了した画像データに対し圧縮処理を行い、ＲＡＭ１０７の空き領域に格納する。
【００２９】
次に、ステップＳ２１０では、ＲＡＭ１０７に格納されている画像データを読み出し、記録媒体１０８への記録処理を実行する。記録処理を終了した後は、ステップＳ２０１へ戻り次の撮影に備える。
【００３０】
次に、ステップＳ２０７の撮影処理の詳細について、図３に示すフローチャートを参照しながら説明する。
まず、ステップＳ３０１において、ミラーをミラーアップ位置に移動させる。次に、ステップＳ３０２において、前述の測光処理（図２のステップＳ２０５）で得られた測光データに基づいて、所定の絞り値まで絞りを駆動する。
【００３１】
次に、ステップＳ３０３において、撮像素子１０１の電荷クリア動作を行う。その後、ステップＳ３０４において、撮像素子１０１の電荷蓄積を開始する。電荷蓄積を開始した後、ステップＳ３０５に進み、シャッターを開く処理を実行する。次に、ステップＳ３０６において、撮像素子１０１の露光を開始する。
【００３２】
その後、ステップＳ３０７において、測光データに従って露光が終了したか否かを判定する。この判定の結果、露光が終了していない場合は、露光が終了するまで待機する。一方、ステップＳ３０７の判定の結果、露光が終了した場合は、ステップＳ３０８に進み、シャッターを閉じる処理を行う。
【００３３】
次に、ステップＳ３０９において、開放の絞り値まで絞りを駆動し、ステップＳ３１０において、ミラーダウン位置までミラーを駆動する。次に、ステップＳ３１１において、設定した電荷蓄積時間が経過したか否かを判定する。この判定の結果、電荷蓄積時間が経過していない場合は経過するまで待機する。一方、ステップＳ３１１の判定の結果、電化蓄積時間が経過した場合は、ステップＳ３１２に進み、撮像素子１０１の電荷蓄積を終了する。
【００３４】
次に、ステップＳ３１３において、撮像素子１０１の信号を読み出しを開始する。また信号の読み出し開始と同時にステップＳ３１４にてダークシェーディング補正を実行する。ダークシェーディング補正の詳細については後述する。次に、ステップＳ３１５において、撮像素子１０１の読み出しが完了したか否かを判定する。この判定の結果、完了していない場合は完了するまで待機する。一方、ステップＳ３１５の判定の結果、撮像素子１０１の読み出しが完了した場合は、一連の処理を終了してメインの処理へ復帰する。
【００３５】
本実施形態では、撮像素子１０１が持つ水平方向１次元のダークシェーディングの補正を行うことを目的とする。すなわち本撮影時の画像自身で補正データの算出及び補正を行うために、撮像素子１０１のＶＯＢ（垂直オプティカルブラック部）領域の出力を基に、水平方向１次元のダークシェーディングの補正値を算出し、この算出結果を補正データとして用いる。
【００３６】
図４に、ＣＭＯＳの画素配置図を示す。
図４において、灰色領域が遮光されたオプティカルブラック領域であり、他の領域は開口領域（補正領域）である。このオプティカルブラック領域のうち、画面上部をＶＯＢ領域（垂直オプティカルブラック領域）と呼び、画面左側をＨＯＢ領域（水平オプティカルブラック領域）と呼ぶ。
【００３７】
図４に示すＶＯＢ領域（垂直オプティカルブラック領域）の垂直方向の一部が水平シェーディングデータを算出するための演算領域であり、この領域の出力を参照して撮像素子１０１の出力を読み出すとともに、水平シェーディング補正量を算出する。その後開口部から始まる補正領域を読み出す際には、水平シェーディング補正演算を行い、結果を出力する。なお、この間撮像素子１０１の読み出し動作は演算領域、補正領域に関わらず、連続的に行っている。
【００３８】
図５に、ＤＳＰ１０３内の水平シェーディング補正を実現する回路ブロックに関しての詳細な説明を行う。
図５において、５０１は、本ブロックの入力端子であり、Ａ／Ｄ変換器１０２にて変換されたデジタルデータの入力端子である。５０２は各列に対応した補正値を記憶するＳＲＡＭであり、ＣＭＯＳの列数以上の記憶容量を必要とする。
【００３９】
５０３はメモリコントローラであり、撮像素子１０１を制御する水平及び垂直の同期信号を基準タイミングとして、撮像素子１０１の読み出しタイミング中の演算領域及び補正領域の設定に応じて、演算対象及び補正対象となる画素出力のタイミングに応じて対応するＳＲＡＭ５０２に記憶されたアドレスを選択し、データを読み出し／書き込みを行う機能を有する。
【００４０】
５０４は加算器であり、現在読み出している画素の出力に対応したＳＲＡＭ５０２内のアドレスに記憶されているデータに、現在の撮像素子１０１の出力値を加算し、演算領域の列ごとの積分演算を行うものである。
【００４１】
５０５は１／Ｎ乗算器であり、演算領域の各列の垂直方向全画素の積分結果を、設定された平均画素数＝ＳＲＡＭの特定アドレスに記憶された積分画素数で除算し、各列ごとの平均値を算出する。回路を簡略化するためには、列毎の積分行数を２のべき乗に限定することで、ビットシフトにより代用することも可能である。
【００４２】
５０６は撮像素子１０１の開口領域の出力に対し、画素ごとに減算処理を行うための減算回路である。減算回路５０６は、撮像素子１０１から出力されるデータに対し、水平同期信号に同期し、１／Ｎ乗算器５０５より出力される各列に対応した水平シェーディング補正データを正しく減算する。これにより本回路ブロックの出力データはダーク部分の出力がほぼ０で、水平方向にフラットな出力となって、出力端子５０７より出力され、ＤＳＰ１０３の他ブロックに転送される。
【００４３】
次に、図５に示した回路の動作、すなわち図３のステップＳ３１４のシェーディング補正について図６のフローチャートを参照しながら説明する。この回路の動作シーケンスとしては、実際には図３のステップＳ３１３の撮像信号読み出しと同時に動作を開始する。
【００４４】
まず図３のステップＳ３１３において、撮像素子１０１の読み出しが始まる。同時にステップＳ４０１において、読み出しに先立ちＳＲＡＭ５０２に記憶された内容をすべてリセットする。また、各ブロックで設定すべき演算領域、補正領域の座標等のデータをＲＯＭ１０６、ＲＡＭ１０７等から読み出して各レジスタに設定する。そして、撮像素子１０１の上部左側から読み出しを開始する。
【００４５】
次に、ステップＳ４０２において、読み出し画素データが演算領域内であるか否かを判定する。この判定の結果、演算領域内である場合は、ステップＳ４０３にて列毎の積分動作を開始する。なお積分動作においては、読み出した画素データの水平方向の位置に対応したＳＲＡＭ５０２に記憶されたアドレスの内容を読み出した後に加算し、加算結果を同じＳＲＡＭ５０２内のアドレスに再度記憶する。
【００４６】
まず、演算領域の先頭行ではＳＲＡＭ５０２内の内容はリセットしたままであるので加算される値は「０」であり、読み出した画素データがそのままＳＲＡＭ５０２に記憶されることとなる。こうして、演算領域の先頭行の画素データの読み出しが完了すると、ＳＲＡＭ５０２にはこの先頭行のデータがそのまま記憶されていることとなる。
【００４７】
次に、演算領域２行目の読み出しを開始する。先頭行と同様に読み出した水平方向の位置に対応したアドレスのＳＲＡＭ５０２に記憶された値を読み出し、読み出した画素データを加算し、加算結果をＳＲＡＭ５０２に再度記憶する。したがって演算領域２行目の読み出しが完了したところでは、ＳＲＡＭ５０２に記憶された各アドレスには、演算領域各列の上部２行の画素出力の加算結果が記憶されていることとなる。
【００４８】
同様に繰り返すことによって、所望の演算領域の読み出しを終えた時点で、ＳＲＡＭ５０２に記憶された各アドレスには、演算領域各列の全行の画素出力の加算結果が記憶されていることとなる。したがってＳＲＡＭ５０２のbit長はＡＤのbit長と、積分する画素数に応じて適切に設定する必要がる。
【００４９】
一方、ステップＳ４０２の判定の結果、読み出し画素が演算領域内でない場合は、ステップＳ４０４に進む。演算領域の読み出しが始まるまでは、撮像素子１０１の出力データは本補正回路ブロックでは何も処理されずに出力される。すなわち、本フローチャートのステップＳ４０２とステップＳ４０４の判定のみを行い、ステップＳ４０６の判定の結果、読み出し終了となるまで繰り返すだけである。もちろん、演算領域の画素出力も本回路ブロックでは積分を行うだけであり、何も処理することなく本ブロックから出力する。こうして、演算領域の読み出しを終え、引き続き開口領域（補正領域）の読み出しに移る。
【００５０】
次に、ステップＳ４０４において、読み出し画素データが開口領域（補正領域）内であるか否かを判定する。この判定の結果、読み出し画素データが補正領域内である場合は、ステップＳ４０５において、読み出した各画素データの水平方向の位置に対応したアドレスのＳＲＡＭ５０２に記憶された値を読み出す。そして、１／Ｎ乗算器５０５にて各列ごとの平均値に変換し、減算回路５０６にて減算処理を行い、本ブロックから出力する。
【００５１】
一方、ステップＳ４０４の判定の結果、読み出し画素データが補正領域内でない場合は、ステップＳ４０６に進み、画素データの読み出しが終了したか否かを判定する。この判定の結果、終了していない場合は、ステップＳ４０２に戻る。すなわち、演算領域の読み出しは終了しているため、読み出し画素データが補正領域である限り繰り返し実行することとなる。そして、ステップＳ４０６の判定の結果、終了した場合は、シェーディング補正処理を終了する。本実施形態においては、このような処理を行うことでＶＯＢ領域内の演算領域に存在する列ごとの平均値のばらつきを補正するようにしている。
【００５２】
図７に、撮像素子の水平シェーディングを持ったダーク画像のイメージと、その補正されたイメージを示す。
図７（ａ）に示すように、水平方向にシェーディングを有する画像出力に対し、ＶＯＢ領域内の演算領域にて水平方向の補正値を算出する。算出したデータのイメージを図７（ｂ）に示す。このような特性を示す画像出力に対して、本実施形態に示す補正処理を行うと、図７（ｃ）に示すようなイメージになる。図７（ｃ）に示すように、補正領域内で減算処理を行い、補正領域内では水平方向のシェーディングが補正されたフラットなダーク画像を出力することが可能となる。
【００５３】
本実施形態においては、ダークシェーディング補正データを、ＤＳＰ１０３の内部で実際に補正すべき画像データ自身より算出し、内部ＳＲＡＭ５０２に記憶する。ＤＳＰ１０３外部のメモリＲＯＭ１０６、ＲＡＭ１０７には、せいぜい演算領域及び補正領域の座標設定の情報を記憶する程度であり、メモリ領域を占有することなく、補正動作を実現している。
【００５４】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
第１の実施形態においては、各々の列ごとに補正値を算出するために列数に対応するだけのＳＲＡＭ５０２を用意し、演算、補正を行っているため、精度は非常に良いが、必要とするＳＲＡＭ５０２のメモリ量が非常に大きなものとなる。そこで第２の実施形態においてはＳＲＡＭのメモリ量を効率よく削減するため方法を提案する。なお、本実施形態の撮像装置の機能構成、撮像装置の撮影処理及びステップＳ２０７の撮影処理の詳細については第１の実施形態の図１〜図３と同様であるため説明を省略する。
【００５５】
本実施形態では撮像素子のＶＯＢ領域内の演算領域において、各列ごとではなく、水平方向の複数列数を単位とするブロックごとに平均値を算出し、このブロックごとの平均値を水平シェーディング補正データとして補正を行う。
【００５６】
また、特定位置での変化量が大きいことが事前に分かっている場合には、複数列の分割方法を水平方向の位置によって適切に変化させることにより、メモリ量の削減を効率的に行うことが可能になる。
【００５７】
例えば、撮像素子の基本的な特性としてシェーディングの左右差が大きく、画面の右端でダークシェーディングが大きく変化している場合などには、シェーディングに大きな変化が無い画面左側では、細かい単位ブロックで補正データを生成する必要はない。そこで、このような場合には、大きな変化が見受けられる画面の右側にメモリ量を多く割り当て、より細かい単位ブロックで補正データを作成したほうが画像全体としてより高精度な補正が可能となる。この様子を図８に示す。
【００５８】
図８に示す例の場合、画像左側ではシェーディングの変化が小さいため単位ブロックを大きく設定し、画像右側ではシェーディングの変化が大きいため、単位ブロックを小さく設定する。このように、十分な精度が得られるようにブロック分割を行う。
【００５９】
このような撮像素子１０１のシェーディング特性を示す例として、撮像素子１０１の出力画像上において画面右端に相当する部分に撮像素子１０１の読み出しアンプが配置されている場合がある。例えば、読み出しアンプの発熱により、読み出し動作を繰り返すと徐々に画面右端がアンプの消費電流により温まり、暗電流量が徐々に増加し、画面右端のダーク出力が上昇してくる。
【００６０】
このように、撮像素子１０１のシェーディングの特徴が予め分かっている場合には、変化が大きい画面の右端部分に分解能を割り当てることができる。すなわち、画面右端部分にメモリ容量の割り当てをより多くすることができる。
【００６１】
本実施形態は、第１の実施形態とほぼ同じ回路構成であるが、主にブロックに対応したメモリコントローラの制御及び１／Ｎ乗算器の設定が異なっている。本実施形態のシェーディング補正の回路ブロックの詳細を図９に示す。シェーディング補正の回路ブロックの詳細について、第１の実施形態と重複するものについては説明を省略する。
【００６２】
図９において、９０３はメモリコントローラであり、撮像素子１０１を制御する水平同期信号を基準タイミングとして、撮像素子１０１の読み出しタイミング中の演算領域及び補正領域の設定をおこなう。本実施形態においては、さらに、各ブロックの水平方向画素数、演算領域及び補正領域の設定に応じてＳＲＡＭ５０２に記憶されたアドレスを選択し、データの読み出し／書き込みを可能とする機能を有する。
【００６３】
９０５は１／Ｎ乗算器であり、演算領域の各ブロック単位での全画素の積分結果を、積分した画素数で除算し、ブロックごとの平均値を算出するものである。ブロック毎に平均化する際の乗算値が異なるため、水平同期信号を基準に、該当するブロックの選択と、各ブロックごとの平均画素数の設定値とから乗算値を判定し、乗算結果を算出する。回路の簡略化のためには、ブロック毎の積分画素数を２のべき乗に限定することで、ビットシフトにより代用することも可能である。
【００６４】
次に、図９に示す回路の動作、すなわち、ステップＳ３１４のシェーディング補正について図１０に示すフローチャートを参照しながら説明する。なお、この回路の動作シーケンスとしては、第１の実施形態と同様に、実際にはステップＳ３１３の撮像信号読み出しと同時に動作を開始する。また、図６に示すフローチャートと同一の処理については同一の番号を付しており、同一の処理については説明を省略する。
【００６５】
ステップＳ４０１の処理の後、ステップＳ４１０において、積分ブロックの分割に関する情報を読み出し、各レジスタにセットする。そして、撮像素子１０１の上部左側から読み出しを開始する。次に、ステップＳ４０２において読み出し画素データが演算領域内であると判断すると、ステップＳ４１１において、ブロック毎の積分動作を開始する。
【００６６】
なお積分動作においては、読み出した画素データの水平方向のブロック位置に対応したＳＲＡＭ５０２に記憶されたアドレスの内容を読み出した後に加算し、加算結果を同じＳＲＡＭ５０２内のアドレスに再度記憶する。読み出し画素データが同じブロックにある間、読み出した結果は順次ＳＲＡＭ５０２内の同一アドレスに積分される。
【００６７】
読み出し画素データが次のブロックに進んだと判断すると、メモリコントローラ９０３はＳＲＡＭ５０２に記憶されたアドレスを変更し、次のブロックに対応したＳＲＡＭ５０２に記憶された値を読み出し、積分、書き込み処理を続ける。同様な処理を繰り返すことによって、所望の演算領域の読み出しを終えた時点で、ＳＲＡＭ５０２内の各アドレスには、演算領域各ブロックの全行の画素出力の加算結果が記憶されていることとなる。したがって、ＳＲＡＭ５０２のbit長はＡＤのbit長と、積分する画素数に応じて適切に設定する必要がある。
【００６８】
ステップＳ４０４において、読み出し画素データが開口領域（補正領域）に達したことを判断すると、ステップＳ４１２において、読み出した各画素データの水平方向のブロック位置に対応したアドレスのＳＲＡＭ５０２に記憶された値を読み出す。そして、１／Ｎ乗算器９０５にて、各々のブロックごとの積分画素数に対応した乗算を行い、平均値に変換する。その後、減算回路５０６にて減算処理を行い、本ブロックから出力する。この処理を読み出し画素データが補正領域である限り繰り返し実行する。
【００６９】
このような処理を行うことによって、ＶＯＢ領域内の演算領域に存在する列ごとの平均値のばらつきを補正することが可能となる。また、本実施形態では水平シェーディング補正データの記憶手段としてＳＲＡＭ５０２を用いているが、容量次第ではレジスタにて構成するようにしてもよい。
【００７０】
本実施形態においては、ダークシェーディング補正データをＤＳＰ１０３内部で実際に補正すべき画像データ自身より算出し、内部ＳＲＡＭ５０２に記憶する。ＤＳＰ１０３外部のメモリＲＯＭ１０６、ＲＡＭ１０７には、演算領域及び補正領域の座標設定、各積分ブロックの分割に関する設定情報を記憶する程度であり、メモリを占有することなく、補正動作を実現している。
【００７１】
（第３の実施形態）
水平シェーディング補正データ保存用のメモリ量をさらに削減するために、水平方向の分割するブロックの単位をさらに大きくとることも可能である。ただしあまり大きく分割すると、水平シェーディングが大きいときに、ブロックごとの変化量が大きくなってしまうため、ブロック間で補正データが不連続となり、きれいな補正ができなくなってしまう。
【００７２】
そこで本実施形態では、水平方向を複数のブロックに分割して各領域ごとの平均値を算出し、さらに各領域の平均値を基に各列毎の近似値を線形補間にて算出し、これを補正データとする。なお、本実施形態の撮像装置の機能構成、撮像装置の撮影処理及びステップＳ２０７の撮影処理の詳細については第１の実施形態の図１〜図３と同様であるため説明を省略する。また、第２の実施形態と同様に、特定位置でのシェーディングの変化量が大きいということが事前にわかっている場合には、それにあわせた適切なブロック分割を行う。さらにこのブロック分割を、環境条件や、撮影条件に応じて変化させることによって、暗電流起因も含めた水平ダークシェーディングを適切に補正することができる。
【００７３】
第２の実施形態の図７に示すようなアンプの発熱による暗電流成分のシェーディングについては、例えばシャッター秒時が短い領域では、相対的に影響が少ないため本来撮像素子が持つシェーディング成分のみを補正すればよい。一方、バルブ撮影等のようにシャッター秒時が長秒となる場合には、このような暗電流成分による影響が大きくなる。そこで本実施形態では、撮影条件によってシェーディング補正データを作成するためのブロックの分割数を変化させる。
【００７４】
図１１において、撮像素子のダークシェーディングの変化の様子を示す。
図１１（ａ）に示すように、通常の短秒露光時の撮影条件においては、画面左端にむけてわずかなシェーディングが現れている。この場合、シェーディングの変化が小さいため、水平方向に積分ブロックの基本単位を大きく等間隔に設定しても、大きな段差が生じにくい。そして、画素単位で線形補間を行うことによって非常に高精度に補正データを算出することができる。
【００７５】
これに対し、特に高感度にて、バルブ撮影等の場合には、先に説明したように左端でのシェーディングの変化量が大きくなる。これにより、積分ブロックが大きいままだと、直線近似を行ったとしても実際のシェーディングの形状と、直線との差が開き、補正誤差が大きくなってしまう可能性がある。
【００７６】
そこで、このような撮影条件下では、画面右側の積分ブロックの単位ブロックを他の積分単位の半分に設定することによって、高精度な補正データの算出が可能となる。この状態を図１１（ｂ）に示す。また、全領域に渡って単位ブロックを小さく設定することも可能であるが、必要な領域のみ単位ブロックを小さくすることによって精度の確保と、メモリ量の削減とを可能にする。
【００７７】
図１２に、ＤＳＰ１０３内の水平シェーディング補正を実現する回路ブロックに関しての詳細な説明を行う。シェーディング補正の回路ブロックの詳細について、第１の実施形態と重複するものについては説明を省略する。
【００７８】
１２０３はメモリコントローラであり、撮像素子を制御する水平および垂直同期信号を基準タイミングとして、撮像素子の読み出しタイミング中の演算領域及び補正領域、各ブロックの水平方向画素数の設定に応じて、演算対象及び補正対象となる画素出力のタイミングにて対応するＳＲＡＭ５０２内アドレスを選択し、読み出し／書き込みを可能とする機能を有する。
【００７９】
本実施形態では、補正すべき画素データの水平方向の位置が、ある積分ブロックの中央位置から、次のブロックの中央位置の間のときには、この２つのブロックの平均値を用いて、この画素データの補正値を演算する。このため、同時の２ブロックの平均値を算出するために２つの独立した１／Ｎ乗算器が必要となる。このとき便宜上この左側のブロックを参照左ブロック、次のブロックを参照右ブロックと呼ぶこととする。
【００８０】
したがって、参照左ブロックの積分値を記憶する第１のメモリ１２２１と参照右ブロックの積分値を記憶する第２のメモリ１２２２を有する。また、それぞれのメモリ１２２１、１２２２に記憶された積分値からそれぞれの平均値を算出するための第１の１／Ｎ乗算器１２２３及び第２の１／Ｎ乗算器１２２４を有する。
【００８１】
撮像素子から読み出す画素データの位置に応じて、第１のメモリ１２２１及び第２のメモリ１２２２に記憶される積分値は、対応するブロックが切り替わるごとに更新される。ブロックが切り替わるときにブロックの分割数が異なる場合には、それに応じて第１の１／Ｎ乗算器１２２３及び第２の１／Ｎ乗算器１２２４の乗数も対応して変化する。
【００８２】
このように、補正領域内の読み出している画素出力に対してその画素データが含まれているブロックの中でその画素データが中央より右側にあれば、該当ブロックとその右側のブロックの平均値が第１の１／Ｎ乗算器１２２３及び第２の１／Ｎ乗算器１２２４より出力される。また、読み出している画素データが、その画素データが含まれているブロックのなかで、中央より左側にあれば、その右側ブロックと、該当ブロックの平均値が第１の１／Ｎ乗算器１２２３及び第２の１／Ｎ乗算器１２２４より出力される。
【００８３】
したがって、この２つの出力データと、現在の画素出力の位置関係とから線形補間ブロック１２２５にて直線近似を行うことによって、読み出し画素位置の補正データを算出することができる。
【００８４】
図１３に、具体的な線形補間例について示す。左参照ブロックの中央位置の座標をXl、その平均値をAveLとし、右参照ブロックの中央位置の座標をXr、その平均値をAveRとする。水平方向の座標がXｌからXrの範囲において座標Xでの補正値は、
AveL＋（AveR-AveL）／（左参照ブロック画素数／２＋右参照ブロック画素数／２）＊（X-Xl）      ・・・（１）式
で算出することが可能である。
【００８５】
このようにして全ブロック間で演算を行い、各列の補正値を算出することによって、より高精度な補正が可能となる。こうして得られた補正データを減算回路５０６にて減算することによって本回路ブロックの出力はほぼ０で、水平方向にフラットな出力となって出力端子２０７より出力される。そして、ＤＳＰ１０３の他のブロックに転送される。
【００８６】
次に、図１２に示す回路の動作、すなわち、ステップＳ３１４のシェーディング補正について、図１４のフローチャートを参照しながら説明する。この回路の動作シーケンスとしては、第１及び第２の実施形態と同様に、実際にはステップＳ３１３の撮像信号読み出しと同時に動作を開始する。また、第２の実施形態の図１０に示すフローチャートと同一の処理については同一の番号を付しており、同一の処理については説明を省略する。
【００８７】
ステップＳ４０１の処理の後、ステップＳ４２０において、撮影された条件に割り当てられたブロックの分割設定条件を読み出す。この分割設定条件は、例えば、撮影秒時の組み合わせと、各ブロックの水平方向の画素数が切り替わるようなテーブルになってＲＯＭ１０６、ＲＡＭ１０７等に記憶されている。ＣＰＵ１０５とＤＳＰ１０３との通信によって撮影条件を判定し、ＤＳＰ１０３が必要な設定を読み出す。
【００８８】
次に、ステップＳ４０２において、読み出し画素データが演算領域内であると判断すると、ステップＳ４２１において、ブロック毎の積分動作を開始する。ステップＳ４２０で読み出した各々のブロックごとの水平方向画素数に応じて、読み出した画素データの水平方向のブロック位置に対応したＳＲＡＭ５０２内のアドレスの内容を読み出した後に加算し、加算結果を同じＳＲＡＭ５０２内のアドレスに再度記憶する。こうして演算領域の読み出しを終え、引き続き開口領域の読み出しに移る。
【００８９】
ステップＳ４０４において、読み出し画素データが開口領域（補正領域）に達したと判断すると、ステップＳ４２２で、ステップＳ４２１にて読み出した各画素データの水平方向のブロック位置に対応したアドレスのＳＲＡＭ５０２内に記憶された値を読み出す。そして、現在読み出している画素位置に応じた左参照ブロック、及び右参照ブロックの積分値を第１のメモリ１２２１及び第２のメモリ１２２２にロードする。
【００９０】
さらにその出力を第１の１／Ｎ乗算回路１２２３及び第２の１／Ｎ乗算回路１２２４にて、各々のブロックごとの積分画素数に対応した乗算を行い、平均値に変換する。続いて、この２つの平均値と、現在読み出している画素データの水平方向位置から、該当位置での線形近似を算出し、この結果を減算回路５０６にて減算処理を行い、本ブロックから出力する。この処理を読み出し画素データが補正領域である限り繰り返し実行する。
【００９１】
このような処理を行うことによって、ＶＯＢ領域内の演算領域に存在する列ごとの平均値のばらつきを補正することが可能となる。また、本実施形態では水平シェーディング補正データの記憶手段としてＳＲＡＭ５０２を用いているが、容量次第ではレジスタにて構成するようにしてもよい。
【００９２】
本実施形態においては、ダークシェーディング補正データをＤＳＰ１０３内部で実際に補正すべき画像データ自身より算出する。そして、内部ＳＲＡＭ５０２にブロック分の積分値を記憶し、各列の補正値そのものは読み出しタイミングに同期して演算により算出することによって、内部のＳＲＡＭ５０２の容量を少なくすることができる。また、ＤＳＰ１０３外部のメモリＲＯＭ１０６、ＲＡＭ１０７には、演算領域及び補正領域の座標設定、撮影条件ごとの各積分ブロックの分割に関する設定情報を記憶する程度で済む。これにより、メモリ容量を占有することなく、補正動作を実現することができる。
【００９３】
（本発明に係る他の実施形態）
本発明の実施形態においては、水平シェーディングと説明しているが、これは撮像素子の読み出し方向が水平方向である撮像素子を想定している。したがって、撮像素子を垂直方向に読み出すものであれば、垂直方向のシェーディングに対して有効となるのはいうまでもない。
【００９４】
また、前述した実施形態においては、積分ブロックの水平方向画素数の切替をシャッター秒時にて切り替える例を説明したが、ダークシェーディングが変化するその他の条件についても同様に補正が可能である。例えば、撮影時の温度、温度条件により撮像素子のダークシェーディングが変化する場合に有効設定されているＩＳＯ感度などでも有効である。
【００９５】
さらに、設定されているＩＳＯ感度によりダークシェーディングの変化にゲインが乗じられ、高感度に設定されるほどダークシェーディングが大きくなる場合などにも有効である。また、静止画を撮影する場合と、動作撮影を行う場合とでは撮像素子の駆動方法が変化し、ダークシェーディングの形状が変化する場合にも有効である。
【００９６】
静止画、動画によらず、撮影する画像の出力サイズが小さい場合にはダークシェーディングの変化が相対的に見えにくくなる傾向がある。そのため、小さな画像サイズを出力する設定の場合と、大きなサイズの画像を出力する設定の場合とで切り替える場合にも有効である。
【００９７】
以上のような条件以外にもダークシェーディングが変化する要因が容易に考えられる。これらの条件によって切り替える場合も、それぞれの条件で必要となるブロック分割に関する情報をテーブル形式でＲＯＭ１０６またはＲＡＭ１０７に記憶しておき、ＤＳＰ１０３またはＣＰＵ１０５との通信により切替条件を判定する。そして、必要なブロック分割情報を読み出すことによって、例えば第３の実施形態と同じ手順で実現することが可能である。
【００９８】
前述した本発明の実施形態における画像データ補正装置を構成する各手段、並びに画像データ補正方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００９９】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１００】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図２、３、６、１０、１４に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１０１】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１０２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１０３】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【０１０４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１０５】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１０６】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１０７】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１０８】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１０９】
【図１】本発明の第１の実施形態における撮像装置の機能構成例を示すブロック図である。
【図２】本発明の第１の実施形態の撮像装置による撮影から記録までの処理の一例を示すフローチャートである。
【図３】図２におけるステップＳ２０７の撮影処理手順の一例を示すフローチャートである。
【図４】ＣＭＯＳの画素配置例を示す図である。
【図５】本発明の第１の実施形態のＤＳＰ内における回路構成例を示すブロック図である。
【図６】本発明の第１の実施形態のＤＳＰによるシェーディング補正の処理手順の一例を示すフローチャートである。
【図７】本発明の第１の実施形態において、撮像素子の水平シェーディングを持ったダーク画像のイメージとその補正されたイメージの一例を示す図である。
【図８】画面の右端でダークシェーディングが大きく変化している場合に、ブロック単位を変化されている例を示す図である。
【図９】本発明の第２の実施形態のＤＳＰ内における回路構成例を示すブロック図である。
【図１０】本発明の第２の実施形態のＤＳＰによるシェーディング補正の処理手順の一例を示すフローチャートである。
【図１１】露光時間の違いにより撮像素子の水平シェーディングを持ったダーク画像のイメージが異なっている例を示す図である。
【図１２】本発明の第３の実施形態のＤＳＰ内における回路構成例を示すブロック図である。
【図１３】本発明の第３の実施形態において、線形補間の計算方法を示す図である。
【図１４】本発明の第３の実施形態のＤＳＰによるシェーディング補正の処理手順の一例を示すフローチャートである。
【符号の説明】
【０１１０】
１００  撮像装置
１０１  撮像素子
１０２  Ａ／Ｄ変換器
１０３  ＤＳＰ
１０４  タイミング発生回路
１０５  ＣＰＵ
１０６  ＲＯＭ
１０７  ＲＡＭ
１０８  記録媒体
１０９  電源スイッチ
１１０  第１のシャッタースイッチ（ＳＷ１）
１１１  第２のシャッタースイッチ（ＳＷ２）
１１２  モードダイアル
５０１  入力端子
５０２  ＳＲＡＭ
５０３  メモリコントローラ
５０４  加算器
５０５  １／Ｎ乗算器
５０６  減算回路
５０７  出力端子
【図１】
2007336343.tif 000003
【図２】
2007336343.tif 000004
【図３】
2007336343.tif 000005
【図４】
2007336343.tif 000006
【図５】
2007336343.tif 000007
【図６】
2007336343.tif 000008
【図７】
2007336343.tif 000009
【図８】
2007336343.tif 000010
【図９】
2007336343.tif 000011
【図１０】
2007336343.tif 000012
【図１１】
2007336343.tif 000013
【図１２】
2007336343.tif 000014
【図１３】
2007336343.tif 000015
【図１４】
2007336343.tif 000016