実施の形態1.
図1は本発明によるシェーディング補正装置の実施の形態1の構成例を示す図であって、水平カウンタ51、水平カウンタ52、垂直カウンタ61、垂直カウンタ62、加算器5、乗算器6、乗算器7、加算器8、及び係数生成部9を有する。
シェーディング補正装置へは、映像信号S10、画素クロックMCK、水平同期信号HSYNC、及び垂直同期信号VSYNCが入力される。各入力信号の詳細については後述する。
このシェーディング補正装置では乗算器7で補正量として映像信号S10に補正係数S41を掛け合わせて補正値S42を計算する。そして加算器8では、補正値S42をもとの映像信号S10に加えた映像信号S43を出力する。この補正演算は以下の式(1)で表すことができる。
S43=S10+S41×S10 …(1)
ここで、補正係数S41は、乗算器6で加算器5の出力値S40と、係数生成部9で生成される係数Gを乗じた値として求められる。加算器5の出力値S40は水平カウンタ52の出力値S52と垂直カウンタ62の出力値S62を加算した値である。水平カウンタ51、52、垂直カウンタ61、62の動作については、後に詳しく述する。
図2は本実施の形態によるシェーディング補正装置を用いた撮像装置の構成例を示す図である。入射光Lがレンズ10を通って固体撮像素子11上に結像する。固体撮像素子11には光電変換により入射光を電荷に変え蓄積するフォトダイオードが2次元平面状に並んでいる。各フォトダイオードに蓄積された電荷はタイミング発生回路15から出力される信号により読み出され、蓄積された電荷量に比例した電圧値がA/D変換回路12に出力される。この電圧値はA/D変換回路12によりデジタル値に変換され、シェーディング補正装置13に出力される。このシェーディング補正装置13の構成は図1で述べた通りである。シェーディング補正装置13から出力される信号は画像処理回路14に入力される。固体撮像素子11、A/D変換回路12、シェーディング補正装置13、及び画像処理回路14はタイミング発生回路15から出力される各信号に同期して動作する。なお、図2は本実施の形態を利用した撮像装置の例であり、本実施の形態を利用した撮像装置の構成例はここに記載したもの以外にも様々なものが考えられる。
図3は固体撮像素子11の構造を模式的に表す図である。固体撮像素子11内には光電変換により入射光を電荷に変え蓄積するフォトダイオード20が2次元平面状に、水平、垂直方向に並んでいる。水平方向に並んだ画素により「ライン」が構成される。1個のフォトダイオード20は1画素に対応し、各フォトダイオード20に蓄積された電荷eの量が各画素の画素値に対応する。各フォトダイオード20に蓄積された電荷eは、垂直転送路21、水平転送路22、アンプ23を通って固体撮像素子11の外部に読み出される。
図4(a)〜(f)は各フォトダイオード20に蓄積された電荷eが読み出される様子を表す図である。各フォトダーオード20から電荷eが読み出される様子を説明する。
まず、各フォトダイオード20に蓄積された電荷eが垂直転送路21に読み出され図4(a)の状態から図4(b)の状態に変化する。次に垂直転送路21から水平転送路22へ1ライン分の電荷eが転送され、図4(b)から図4(c)の状態に変化する。そして水平転送路22内の電荷eが順番に図の右側へ転送されることで各フォトダイオード20に蓄積された電荷eが固体撮像装置11の外部に読み出される。このとき、各フォトダイオード20における電荷eの蓄積量に比例した電圧値がアンプ23から出力される。図4(d)は、図4(c)において水平転送路22の一番右側にあった電荷eが読み出された状態を表している。そして、水平転送路22内の電荷eが全て読み出され、図4(e)の状態になると、図4(f)のように次のラインの電荷eが水平転送路22に転送される。以下、図4(d)以降と同様の動作を1画像分の電荷eが読み出されるまで繰り返す。
図5は固体撮像素子11から電荷eを読み出す時に、タイミング発生回路15から出力される信号と固体撮像素子11から出力される信号を表す図である。全ての信号は画素クロックMCKに同期して出力される。まず、時刻T2において、読み出しパルスSGによりフォトダイオード20から垂直転送路21へ電荷eが読み出される。そして時刻T3において、垂直転送路駆動パルスV1により、垂直伝送路21内の電荷eが1ライン下へ転送される。その後、時刻T4から時刻T5の間水平転送路駆動パルスH1により、水平転送路22内の電荷eが転送され、電荷eの蓄積量に比例した電圧値CCDOUTが固体撮像素子11から出力される。以上の信号が1画像分の画素値を読み出し終わるまで規則的に出力される。すなわち、全てのラインの電荷eを読み出し終わるまで、各ライン毎に時刻T3から時刻T6の間の波形が繰り返し出力される。全てのラインの電荷eを読み出し終わる(1画像分の電荷の読み出しを終わる)と再び時刻T2から時刻T7までと同様の波形が出力される。
なお、図5の説明では説明を簡単にするために垂直転送路駆動パルスV1、水平転送路駆動パルスH1はそれぞれ1種類の波形(1相分の信号)で表しているが実際にはそれぞれ複数の波形(複数相の信号)で転送される。
また、垂直同期信号VSYNCは時刻T2から時刻T7の間に1回(即ち1垂直期間に1回)、水平同期信号HSYNCは時刻T3から時刻T6の間に1回(即ち1水平期間に1回)それぞれ出力される信号である。垂直同期信号VSYNCに同期することで1枚の画像の読み出しに同期して動作することができ、水平同期信号HSYNCに同期することで1ラインの読み出しに同期して動作することができる。
図6はこのような撮像装置において、入射光Lとして均一な光が入射した場合に撮像される画像及び画像中の明るさの変化を表している。入射光Lとして均一な光が入射した場合、理想的には画像全体に渡って同じ明るさとなる。しかし実際にはシェーディングにより、同心円状に周辺の明るさが減少し、水平方向、垂直方向ともに画像中央から離れるにしたがって明るさは減少していく。
図6では画像中の明るさの変化を水平及び垂直方向に沿って説明したが、斜め方向にそって画像の明るさの変化を説明しても同様であり、画像中心からの距離に依存して周辺の光量が減少していく。
この光量の減少については、一般的にcos4乗則として知られているが、画像中央部付近ではあまり光量は減少せず、画像周辺に行くほど急な傾きで減少していく。
したがって、シェーディングを補正するための補正量を求めるためには、画像中央部付近では「0」または「0」に近い値をもとの画素値に掛け、画像周辺部では大きな値をもとの画素値に掛けるのがよい。さらに、もとの画素値に掛ける値は、画像周辺部ほど急な傾きで大きくするのがよい。
シェーディング補正装置13を図1の構成とすることでこのような補正係数S41を求めることが可能になる。以下にその詳細を説明する。
図7はシェーディング補正装置13、なかでも水平カウンタ51、水平カウンタ52、垂直カウンタ61、及び垂直カウンタ62の動作を表す図である。
まず、水平カウンタ51及び水平カウンタ52の動作について説明する。水平カウンタ51は以下に説明する動作で計算されるカウント値S51を保持、出力し、水平カウンタ52は以下に説明する動作で計算されるカウント値S52を保持、出力する。
水平カウンタ51はカウント値S51が、時刻T00において、水平同期信号HSYNCに同期して初期値A51にセットされる。その後は画素クロックMCKが発生される度に保持しているカウント値(「保持値」とも言い、「累積加算値」とも言う)S51に「1」を加算する。その結果、画素クロックMCKに同期してカウント値S51は「1」ずつ増加していく。即ち、「1」が累積加算される。そして時刻T01において、水平同期信号HSYNCに同期して、カウント値S51は初期値A51に再びセット(リセット)される。時刻T01以降は時刻T00以降と同様の動作を繰り返す。
水平カウンタ52はカウント値S52が、時刻T00において、水平同期信号HSYNCに同期して初期値A52にセットされる。その後は画素クロックMCKが発生される度にカウント値S52に、水平カウンタ51が出力するカウント値S51が加算される。その結果、画素クロックMCKに同期して、水平カウンタ51のカウント値S51が累積加算される。そして時刻T01において、水平同期信号HSYNCに同期して、カウント値S52は初期値A51に再びセット(リセット)される。時刻T01以降は時刻T00以降と同様の動作を繰り返す。
このように、水平カウンタ51は、水平同期信号HSYNCに同期して(従って、1ライン毎に)累積加算値(カウント値)S51が初期値A51に設定(リセット)され、画素クロックMCKに同期して、「1」を累積加算し、該累積加算値S51を出力する第1の水平累積加算手段として機能し、水平カウンタ52は、水平同期信号HSYNCに同期して(従って、1ライン毎に)累積加算値(カウント値)S52が初期値A52に設定(リセット)され、画素クロックMCKに同期して、カウント値S51を累積加算し、該累積加算値(カウント値)S52を出力する第2の水平累積加算手段として用いられている。また、水平カウンタ51と水平カウンタ52とで、シェーディング補正のための水平方向の補正成分を表す水平補正曲線を生成する水平補正曲線生成部500が構成されている。
ここで図7は、水平カウンタ51のカウント値S51の初期値A51が負の場合の動作を表している。カウント値S51は画素クロックMCKに同期して1ずつ大きくなっていくので、初期値A51が負の場合、カウント値S51は、負の値からスタートし、一旦「0」になった後、徐々に大きな正の値になる。
カウント値S51の初期値A51を適切に設定すれば(即ち、水平画素数の1/2の大きさを持つ負の値に設定すれば)、固体撮像素子11から画像水平方向の中央に位置する画素の画素値が読み出されている時に、カウント値S51が「0」になる。以下では初期値A51はそのような値に設定されているものとする。
一方、水平カウンタ52のカウント値S52には水平カウンタ51のカウント値S51が加算される。すなわち、カウント値S52はカウント値S51の累積加算値となる。カウント値S51が負の間、カウント値S52は減少していく。そしてカウント値S51の値が「0」の時、カウント値S52の値は変化せず、次にカウント値S51が正の値になると、カウント値S52の値は増加していく。すなわち、カウント値S52の変化を時間に従ってプロットしていくと、カウント値S51の値が「0」の時に最小値を取る下に凸の曲線になる。
また、カウント値S52はカウント値S51の累積加算であるので、カウント値S51の値から逆算することで、カウント値S51が「0」になった時にカウント値S52も「0」となるように初期値A52を設定できる。具体的には、水平カウンタ51が初期値A51を出力してから「0」を出力するまでの間に出力する全てのカウント値S51の総和を求め、該総和と絶対値が等しく符号が反対のものを初期値A52として設定すればよい。ここで、カウント値S51は固体撮像素子11から画像水平方向の中央に位置する画素の画素値が読み出されている時に「0」となるよう設定されているので、カウント値S52も、固体撮像素子11から画像水平方向の中央に位置する画素の画素値が読み出されている時にその値が「0」になる。
また、カウント値S52の絶対値の変化を見ていくと、最初は大きな値であるが、カウント値S51が「0」に近づくにつれて徐々に小さくなっていく。そしてカウント値S51が正の値になると、今度は徐々に大きくなっていく。
すなわち、カウント値S52に対しては最初、絶対値の大きな負の値が足されるが、徐々に絶対値の小さな負の値が足されることになる。そして次に絶対値の小さな正の値が足されて最後は絶対値の大きな正の値が足されることになる。従ってカウント値S52の変化量を水平同期信号の1周期内で時間にそって見ると、最初のうちは大きいが、カウント値S52が「0」に近づくにつれてその変化量は徐々に小さくなっていく。そしてカウント値S52が「0」になった後、その変化量は再び大きくなっていく。
次に、垂直カウンタ61及び垂直カウンタ62の動作について説明する。垂直カウンタ61は以下に説明する動作で計算されるカウント値S61を保持、出力し、垂直カウンタ62は以下に説明する動作で計算されるカウント値S62を保持、出力する。
垂直カウンタ61はカウント値S61が、時刻T00において、垂直同期信号VSYNCに同期して初期値A61にセットされる。その後は水平同期信号HSYNCが発生される度に保持しているカウント値(「保持値」とも言い、「累積加算値」とも言う)S61に「1」を加算する。その結果、水平同期信号HSYNCに同期してカウント値S61は「1」ずつ増加していく。即ち、「1」が累積加算される。そして時刻T10において、垂直同期信号VSYNCに同期してカウント値S61は初期値A61に再びセット(リセット)される。時刻T10以降は時刻T00以降と同様の動作を繰り返す。
垂直カウンタ62はカウント値S62が、時刻T00において、垂直同期信号VSYNCに同期して初期値A62にセットされる。その後は水平同期信号HSYNCが発生される度にカウント値S62に、垂直カウンタ61が出力するカウント値S61が加算される。その結果、水平同期信号HSYNCに同期して、垂直カウンタ61のカウント値S61が累積加算される。そして時刻T10において、垂直同期信号VSYNCに同期してカウント値S62は初期値A62に再びセット(リセット)される。時刻T10以降は時刻T00以降と同様の動作を繰り返す。
このように、垂直カウンタ61は、垂直同期信号VSYNCに同期して(従って、1画像毎に)累積加算値(カウント値)S61が初期値A61に設定(リセット)され、水平同期信号HSYNCに同期して、「1」を累積加算し、該累積加算値S61を出力する第1の垂直累積加算手段として機能し、垂直カウンタ62は、垂直同期信号VSYNCに同期して(従って、1画像毎に)累積加算値(カウント値)S62が初期値A62に設定(リセット)され、水平同期信号HSYNCに同期して、カウント値S61を累積加算し、該累積加算値(カウント値)S62を出力する第2の垂直累積加算手段として機能する。また、垂直カウンタ61と垂直カウンタ62とで、シェーディング補正のための垂直方向の補正成分を表す垂直補正曲線を生成する垂直補正曲線生成部600が構成されている。
ここで図7は、垂直カウンタ61のカウント値S61の初期値A61が負の場合の動作を表している。カウント値S61は水平同期信号HSYNCに同期して1ずつ大きくなっていくので、初期値A61が負の場合、カウント値S61は、負の値からスタートし、一旦「0」となった後、徐々に大きな正の値になる。
ここで、カウント値S61の初期値A61を適切に設定すれば(即ち、垂直ライン数の1/2の大きさを持つ負の値に設定すれば)、固体撮像素子11から画像垂直方向の中央に位置するライン上の画素の画素値が読み出されている時に、カウント値S61が「0」になる。以下ではそのような値に初期値A61が設定されているものとする。
一方、垂直カウンタ62のカウント値S62には垂直カウンタ61のカウント値S61が加算される。すなわち、カウント値S62はカウント値S61の累積加算値となる。カウント値S61が負の間、カウント値S62は減少していく。そしてカウント値S61の値が「0」の時、カウント値S62の値は変化せず、次にカウント値S61が正の値になると、カウント値S62の値は増加していく。すなわち、カウント値S62の変化を時間に従ってプロットしていくと、カウント値S61の値が「0」の時に最小値を取る下に凸の曲線になる。
また、カウント値S62はカウント値S61の累積加算であるので、カウント値S61の値から逆算することで、カウント値S61が「0」になった時にカウント値S62も「0」となるように初期値A62を設定できる。具体的には、垂直カウンタ61が初期値A61を出力してから「0」を出力するまでの間に出力する全てのカウント値S61の総和を求め、該総和と絶対値が等しく符号が反対のものを初期値A62として設定すればよい。ここで、カウント値S61は固体撮像素子11から画像垂直方向の中央に位置するライン上の画素の画素値が読み出されている時に「0」となるよう設定されているので、カウント値S62も、固体撮像素子11から画像垂直方向の中央に位置するライン上の画素の画素値が読み出されている時にその値が「0」になる。
また、カウント値S62の絶対値の変化を見ていくと、最初は大きな値であるが、カウント値S61が「0」に近づくにつれて徐々に小さくなっていく。そしてカウント値S61が正の値になると、今度は徐々に大きくなっていく。
すなわち、カウント値S62に対しては最初、絶対値の大きな負の値が足されるが、徐々に絶対値の小さな負の値が足されることになる。そして次に絶対値の小さな正の値が足されて最後は絶対値の大きな正の値が足されることになる。従ってカウント値S62の変化量を垂直同期信号の1周期内で時間にそって見ると、最初のうちは大きいが、カウント値S62が「0」に近づくにつれてその変化量は徐々に小さくなっていく。そしてカウント値S62が「0」になった後、その変化量は再び大きくなっていく。
図8は固体撮像装置11から画素値が読み出される画素の位置と、加算器5から出力される値S40及び乗算器6から出力される値S41の大きさの関係を表す図であり、横軸は画像水平方向での画素の位置を、縦軸は画像垂直方向での画素の位置を表す。また、暗い色で塗られている場所ほど、加算器5から出力される値S40及び乗算器6から出力される値S41が小さい値であることを表す。図8では出力値S40及びS41の変化を簡略化して表現しているが、その値は、実際は画素値を読み出される画素の位置が画像中央から離れるに従って連続的に増加していく。
図5と図7を照らし合わせれば明らかなように、水平カウンタ52の出力値S52は画像の水平方向中心が読み出されている時に最小値「0」をとり、水平方向中心から離れた箇所が読み出されるほど急な傾きで大きくなる。同様に、垂直カウンタ62の出力値S62は画像の垂直方向中心が読み出されている時に最小値「0」をとり、垂直方向中心から離れた箇所が読み出されるほど急な傾きで大きくなる。加算器5の出力値S40は、水平カウンタ52の出力値S52と垂直カウンタ62の出力値S62の和なので、固体撮像素子11から画像中央の画その画素値が読み出されている時、その値は「0」になり、画素値が読み出される画素の位置が画像中央から遠くなるほどより大きな値となる。また、加算器5の出力値S40は、画素値が読み出される画素の位置が画像中央から遠くなれば遠くなるほどより急激にその値を増すことになる。
乗算器6の出力値S41は、加算器5の出力値S40に係数Gを乗じた値であるので、乗算器6の出力値S41の変化の様子は、加算器5の出力値S40の変化と同じになる。すなわち、固体撮像素子11から画像中央部の画素値が読み出されている時、最小値「0」をとり、固体撮像素子11から画素値が読み出されている画素の位置が画像中央から遠くなるほどその値は大きくなる。また、画素値が読み出される画素の位置が画像中央から遠くなれば遠くなるほどより急激に出力値S41は大きくなる。
先に説明したとおりこのような出力値S41の変化は、シェーディングを補正するのに適している。すなわち、シェーディング補正装置13によってシェーディングを補正することができる。
なお、係数Gにより補正の強度を調整することが可能である。すなわち、係数Gの値を大きくするほど、シェーディングを補正する度合いを大きくできる。
なおまた、上記の例では、水平カウンタ51が、負の値を初期値として1ずつのカウントアップを行っているが、正の値を初期値としてカウントダウンを行うこととし、水平カウンタ52のカウント値S52を時間方向にプロットしたものが上に凸の曲線を描くものとなるようにし、該カウント値S52を、例えば、符号の反転又は所定値からの減算により反転させることで、下に凸の曲線を描く出力を得るようにしても良い。この場合の「累積加算」は「−1」の累積加算である。また、「1」や「−1」以外の値を累積加算することとしても良い。
さらに、加算器5、乗算器6、乗算器7、及び加算器8から成る回路は、第2の水平カウンタS52が出力する第2の水平カウント値S52と第2の垂直カウンタ62が出力する第2の垂直カウント値S62との和S40と、所定の係数Gと、撮像信号S10との積と、撮像信号S10との和を求める演算を行う補正演算手段を構成するものであるが、この補正演算手段の構成は、図示の通りでなくても良く、例えば、水平カウンタ52の出力及び垂直カウンタ62の出力にそれぞれ係数Gを掛けた後に加算を行っても良い。また、加算器5の出力S40と撮像信号S10とを先に乗算し、該乗算結果と、係数Gとを乗算しても良く、さらにまた加算器5の出力S40に係数Gを掛けたものに1を加算し、加算結果を撮像信号S10に掛けたものをシェーディング補正された信号S43としても良く、要するに、即ち上記の式(1)で表される演算(これと等価な演算を含む)を行うものであれば良い。
以上のように、実施の形態1により、シェーディング補正を行うことができる。また、実施の形態1はシェーディング補正のための係数を加算器及び乗算器のみで算出するので、回路として実装した場合のゲート規模が小さくてすむ。さらに、補正係数を求めるために、ルックアップテーブル等を使用することがないので、回路として実装する場合、不揮発性メモリ等の記憶手段を必要とせず、コストを抑えることができる。さらにまた、係数Gにより補正の強度を調整することができる。
実施の形態2.
図9及び図10は本発明によるシェーディング補正装置の実施の形態2の2つの構成例を示す。図示のように、これらのシェーディング補正装置は、N個(Nは整数)の水平カウンタ51〜5N、M個(Mは整数)の垂直カウンタ61〜6M、加算器5、乗算器6、乗算器7、加算器8、及び係数生成部9を有する。本シェーディング補正装置には映像信号S10、画素クロックMCK、水平同期信号HSYNC、及び垂直同期信号VSYNCが入力される。ここで各入力信号の詳細は実施の形態1で説明したものと同様である。
図9に示す構成例では、N、Mが偶数である。一方、図10に示す構成例では、N、Mが奇数であり、第Nの水平カウンタ5Nの出力側に水平絶対値算出器31が設けられ、第Mの垂直カウンタ5Mの出力側に垂直絶対値算出器32が設けられている。
実施の形態1のシェーディング補正装置では2個の水平カウンタ51、52及び2個の垂直カウンタ61、62がそれぞれ直列に接続されていたが、実施の形態2のシェーディング補正装置ではN個の水平カウンタ51〜5N及びM個の垂直カウンタ61〜6Mがそれぞれ直列に接続される。そして、水平カウンタ5Nの出力値S5Nの絶対値と垂直カウンタ6Mの出力値S6Mの絶対値の和が求められる点で実施の形態1のシェーディング補正装置と異なる。即ち、N、Mが偶数の場合には、図9に示されるように、第Nの水平カウンタ5Nの出力と、第Mの垂直カウンタ6Mの出力が加算器5に直接入力されるのに対して、N、Mが奇数の場合には、例えば図10に示されるように、第Nの水平カウンタ5Nの出力と、第Mの垂直カウンタ6Mの出力がそれぞれ水平絶対値算出器31、垂直絶対値算出器32を介して加算器5に入力されることで絶対値同士の和が求められる。
なお、このシェーディング補正装置でも実施の形態1のシェーディング補正装置同様、乗算器7で補正量として映像信号S10に係数S41を乗じて補正値S42を計算する。そして加算器8で補正値S42をもとの映像信号S10に加える。また、係数S41も実施の形態1のシェーディング補正装置と同様、乗算器6で加算器5の出力値S40と、係数生成部9で生成される係数Gを乗じた値として求められる。
したがって本実施の形態によるシェーディング補正装置による補正演算も式(1)で表すことができる。
このシェーディング補正装置は、実施の形態1で説明したシェーディング補正装置の代わりに、図2に示される撮像装置におけるシェーディング補正装置13として用いることができる。以下にシェーディング補正装置13として図9乃至図10に示されるシェーディング補正装置を用いた場合の詳細を説明する。
図11は、シェーディング補正装置13、なかでも水平カウンタ51〜54、垂直カウンタ61〜64の動作を表す図である。N、Mが5以上の場合の水平カウンタ55、56、…、垂直カウンタ65、66、…の動作も図11から類推可能であろう。
まず、水平カウンタ51〜5Nの動作について説明する。水平カウンタ51〜5Nは各々、以下に説明する動作で計算されるカウント値S51〜S5Nを保持、出力する。
水平カウンタ51は実施の形態1と同様の動作を行う。すなわち、水平カウンタ51はカウント値S51が、時刻T00において、水平同期信号HSYNCに同期して初期値A51にセットされる。その後は画素クロックMCKに同期してカウント値S51は1ずつ増加していく。そして時刻T01において、水平同期信号HSYNCに同期して、カウント値S51は初期値A51に再びセットされる。時刻T01以降は時刻T00と同様の動作を繰り返す。
水平カウンタ52も実施の形態1と同様の動作を行う。すなわち、水平カウンタ52はカウント値S52が、時刻T00において、水平同期信号HSYNCに同期して初期値A52にセットされる。その後は画素クロックMCKに同期してカウント値S52には、水平カウンタ51が出力するカウント値S51が加算される。そして時刻T01において、水平同期信号HSYNCに同期して、カウント値S52は初期値A51に再びセットされる。時刻T01以降は時刻T00以降と同様の動作を繰り返す。
水平カウンタ53〜5Nは水平カウンタ52と同様の動作を行う。すなわち、水平カウンタ53〜5Nは各々のカウント値S53〜S5Nが、時刻T00において、水平同期信号HSYNCに同期して初期値A53〜A5Nにセットされる。その後は画素クロックMCKに同期してカウント値S53〜S5Nの各々には、各水平カウンタ53〜5Nに直列に接続されている水平カウンタ52〜5(N−1)の出力値S52〜S5(N−1)が加算される。例えばカウント値S53には水平カウンタ52の出力値S52が加算され、カウント値S5Nには水平カウンタ5(N−1)の出力値S5(N−1)が加算される。そして時刻T01において、水平同期信号HSYNCに同期して、カウント値S53〜S5Nは初期値A53〜A5Nに再びセットされる。時刻T01以降は時刻T00以降と同様の動作を繰り返す。
このように、水平カウンタ52乃至5Nの各々、即ち第Kの水平カウンタ5K(Kは2乃至Nのうちの任意のもの)は、水平同期信号HSYNCに同期して(従って、1ライン毎に)累積加算値(カウント値)が初期値に設定(リセット)され、画素クロックMCKに同期して、第(K−1)の水平カウンタ5(K−1)のカウント値(第(K−1)の累積加算値)を累積加算し、そのカウント値(第Kの累積加算値)を出力する累積加算手段として機能する。また、図9の構成例では、水平カウンタ51〜5Nにより、シェーディング補正のための水平方向の補正成分を表す水平補正曲線を生成する水平補正曲線生成部500が構成され、図10の構成例では、水平カウンタ51〜5N及び絶対値算出器31により、シェーディング補正のための水平方向の補正成分を表す水平補正曲線を生成する水平補正曲線生成部500が構成されている。
次に、垂直カウンタ61〜6Mの動作について説明する。垂直カウンタ61〜6Mは各々、以下に説明する動作で計算されるカウント値S61〜S6Mを保持、出力する。
垂直カウンタ61は実施の形態1と同様の動作を行う。すなわち、垂直カウンタ61のカウント値S61は、時刻T00において、垂直同期信号VSYNCに同期して初期値A61にセットされる。その後は水平同期信号HSYNCに同期してカウント値S61は1ずつ増加していく。そして時刻T10において、垂直同期信号VSYNCに同期してカウント値S61は初期値A61に再びセットされる。時刻T10以降は時刻T00以降と同様の動作を繰り返す。
垂直カウンタ62も実施の形態1と同様の動作を行う。すなわち、垂直カウンタ62はカウント値S62が、時刻T00において、垂直同期信号VSYNCに同期して初期値A62にセットされる。その後は水平同期信号HSYNCに同期してカウント値S62には、垂直カウンタ61が出力するカウント値S61が加算される。そして時刻T10において、垂直同期信号VSYNCに同期してカウント値S62は初期値A62に再びセットされる。時刻T10以降は時刻T00以降と同様の動作を繰り返す。
垂直カウンタ63〜6Mは垂直カウンタ62と同様の動作を行う。すなわち、垂直カウンタ63〜6Mは各々のカウント値S63〜S6Mが、時刻T00において、垂直同期信号VSYNCに同期して初期値A63〜A6Mにセットされる。その後は水平同期信号HSYNCに同期してカウント値S63〜S6Mの各々には、各垂直カウンタ63〜6Mに直列に接続されている垂直カウンタ62〜6(M−1)の出力値S62〜S6(M−1)が加算される。例えばカウント値S63には垂直カウンタ62の出力値S62が加算され、カウント値S6Mには垂直カウンタ6(M−1)の出力値S6(M−1)が加算される。そして時刻T10において、垂直同期信号VSYNCに同期して、カウント値S63〜S6Mは初期値A63〜A6Mに再びセットされる。時刻T10以降は時刻T00以降と同様の動作を繰り返す。
このように、垂直カウンタ62乃至6Mの各々、即ち第Lの垂直カウンタ6L(Lは2乃至Mのうちの任意のもの)は、垂直同期信号VSYNCに同期して(従って、1画像毎に)累積加算値(カウント値)が初期値に設定(リセット)され、水平同期信号HSYNCに同期して、第(L−1)の垂直カウンタ6(L−1)のカウント値(第(L−1)の累積加算値)を累積加算し、そのカウント値(第Lの累積加算値)を出力する累積加算手段として機能する。また、図9の構成例では、垂直カウンタ61〜6Mにより、シェーディング補正のための垂直方向の補正成分を表す垂直補正曲線を生成する垂直補正曲線生成部600が構成され、図10の構成例では、垂直カウンタ61〜6M及び絶対値算出器32により、シェーディング補正のための垂直方向の補正成分を表す垂直補正曲線を生成する垂直補正曲線生成部600が構成されている。
次に、水平カウンタ51〜54の動作を図11を参照してさらに詳しく説明する。なお、水平カウンタ51、52のカウント値S51、S52の動作は実施の形態1と同様であるのでその説明は省略し、まず水平カウンタ53の出力するカウント値S53の説明を行う。
水平カウンタ53のカウント値S53は、時刻T00において、水平同期信号HSYNCに同期して初期値A53にセットされる。その後は画素クロックMCKに同期してカウント値S53には水平カウンタ52のカウント値S52が加算される。すなわち、カウント値S53では、カウント値S52の累積加算値が計算される。そして時刻T01において、水平同期信号HSYNCに同期してカウント値S53は初期値A53に再びセットされる。また時刻T01以降は、時刻T00以降と同様の動作をする。
ここで、カウント値S52は常に「0」以上なのでカウント値S53は常に増加する。また、S52の値は最初、大きな値であったものが徐々に小さくなり、一旦「0」になったあとまた大きな値となる。従ってカウント値S53は最初のうちは急激に大きくなっていくが、カウント値S52の値が「0」に近づくにつれ、その増加の割合は小さくなっていく。そしてカウント値S52の値が一旦「0」となった後、カウント値S53は再び増加の割合を増して大きくなっていく。
また、カウント値S53はカウント値S52の累積加算値として計算されるので、カウント値S52の値から逆算することで、カウント値S52が「0」となった時にカウント値S53も「0」となるように初期値A53を求めることができる。すなわち、水平カウンタ52が初期値A52を出力してから「0」を出力するまでの間に出力する全てのカウント値S52の総和を求め、その符号を反転させたものを初期値A53として設定すればよい。ここで、カウント値S52は常に「0」以上なので、初期値A53は負の値となる。また、固体撮像素子11から画像水平方向中心の画素の画素値が読み出される時、カウント値S52が「0」になるように設定されているので、カウント値S53も、固体撮像素子11から画像水平方向中心の画素の画素値が読み出される時に「0」となる。
すなわち、カウント値S53は、水平同期信号HSYNCに同期して負の値にセットされる。その後は値を増していき、固体撮像装置11から画像の水平方向の中心に位置する画素の画素値が読み出されている時、その値は「0」となる。そして、その後は正の値をとりながらその値を増やしていく。また、水平同期信号HSYNCの1周期内で、時間にそってカウント値S53の変化量を見ると最初のうちは大きいが、カウント値S53が「0」に近づくにつれてその変化量は小さくなっていく。そしてカウント値S53が「0」になった後、その変化量は再び大きくなっていく。
次に、水平カウンタ54の出力するカウント値S54の説明を行う。水平方向カウンタ54のカウント値S54は、時刻T00において、水平同期信号HSYNCに同期して初期値A54にセットされる。その後は画素クロックMCKに同期してカウント値S54にはカウント値S53が加算される。すなわち、カウント値S54では、カウント値S53の累積加算値が計算される。そして時刻T01において、水平同期信号HSYNCに同期してカウント値S54は初期値A54に再びセットされる。また時刻T01以降は、時刻T00以降と同様の動作をする。
ここで、カウント値S53は、最初負の値であったものが「0」になり、その後、正の値になる。したがってカウント値S53が負の値である間、カウント値S54は減少する。そしてカウント値S53が「0」の時、カウント値S54は変化せず、その後カウント値S53が正の値になると、カウント値S54は増加する。したがってカウント値S54はカウント値S53が「0」の時、最小値をとる。
また、水平カウンタ53のカウント値S53の絶対値の変化を見ていくと、最初は大きな値であるが、カウント値S53が「0」に近づくにつれて徐々に小さくなっていき、一旦「0」になったあとまた大きな値になっていく。したがってカウント値S54に対しては最初、絶対値の大きな負の値が足されているが、次第に絶対値の小さな負の値が足されるようになり、「0」が足された後、正の値が足されることになる。そして、足される正の値の絶対値は次第に大きな値となる。
したがってカウント値S54の変化量を水平同期信号HSYNCの1周期内で時間に従って見ると、最初のうちは大きいが、カウント値S53が「0」に近づくにつれてその変化量は徐々に小さくなっていく。そしてカウント値S53が「0」になった後、その変化量は再び大きくなっていく。
ここで、カウント値S54はカウント値S53の累積加算値として計算されるので、カウント値S53の値から逆算することで、カウント値S53が「0」となった時にカウント値S54が最小値「0」をとるように、初期値A54を求めることができる。すなわち、水平カウンタ53が初期値A53を出力してから「0」を出力するまでの間に出力する全てのカウント値S53の総和を求め、その符号を反転させたものを初期値A54として設定すればよい。ここで、カウント値S53の初期値A53は負の値であり、その後値が「0」になるまで負の値をとり続けるので、水平カウンタ53が初期値A53を出力してから「0」を出力するまでの間に出力する全てのカウント値S53の和は負の値になる。従って、初期値A54は正の値になる。また、固体撮像素子11から画像水平方向中心の画素の画素値が読み出される時、カウント値S53が「0」になるように設定されているので、カウント値S54も、固体撮像素子11から画像水平方向中心の画素の画素値が読み出される時に「0」となる。
以上をまとめると、固体撮像素子11から画像の水平方向中心の画素の画素値が読みだされている時に、水平カウンタ51〜54のカウント値S51〜S54が全て「0」になるように、初期値A51〜A54を設定することができる。以下の説明では初期値A51〜A54はそのような値に設定されているものとする。
図12は、水平カウンタ51〜54のカウント値S51〜S54の絶対値Z51〜Z54の変化を水平同期信号HSYNCの1周期内で表した図であり、横軸が時間、縦軸が絶対値の大きさを表す。
直列に接続された水平カウンタ51〜54のうち、奇数番目の水平カウンタ51、53のカウント値S51、S53は負の値からスタートし、画像水平方向中心の画素の画素値が読み出されている時、その値が「0」になる。そしてカウント値が「0」になった後は正の値となる。偶数番目の水平カウンタ52、54のカウント値S52、S54は正の値からスタートし、画像水平方向中心の画素の画素値が読み出されている時、その値が「0」になる。そしてカウント値が「0」になった後は再び正の値となる。したがって絶対値Z51〜Z54の変化を表す曲線は、図12に表したような下に凸の曲線になる。またその値は、画像水平方向中心の画素の画素値が読み出されている時に全て同時に最小値「0」をとる。また、各カウント値S51〜S54の変化量はその値が「0」に近づく程小さくなるので、絶対値Z51〜Z54の変化の大きさもその値が「0」になるほど小さくなっていく。
さらに、水平カウンタ52〜54のカウント値S52〜S54は、各々に直列に接続されている水平カウンタ51〜53のカウント値S51〜S53の累積加算として計算される。したがって、後段の水平カウンタのカウント値ほど値の変化が大きくなる。
したがって、絶対値Z51〜Z54の変化を表す曲線は、図12のように、より後段の水平カウンタのカウント値の絶対値を表す曲線ほどその曲率が大きくなる。
したがって、直列に接続する水平カウンタ51〜5Nの数を増やせば増やすほど、曲率の大きなカーブを得ることができる。
次に、垂直カウンタ61〜64の動作を図11を参照してさらに詳しく説明する。なお、垂直カウンタ61、62のカウント値S61、S62の動作は実施の形態1と同様であるのでその説明は省略し、まず垂直カウンタ63の出力するカウント値S63の説明を行う。
垂直カウンタ63のカウント値S63は、時刻T00において、垂直同期信号VSYNCに同期して初期値A63にセットされる。その後は水平同期信号HSYNCに同期してカウント値S63には垂直カウンタ62のカウント値S62が加算される。すなわち、カウント値S63では、カウント値S62の累積加算値が計算される。そして時刻T10において、垂直同期信号VSYNCに同期してカウント値S63は初期値A63に再びセットされる。また時刻T10以降は、時刻T00以降と同様の動作をする。
ここで、カウント値S62は常に「0」以上なのでカウント値S63は常に増加する。また、S62の値は最初、大きな値であったものが徐々に小さくなり、一旦「0」になったあとまた大きな値となる。従ってカウント値S63は最初のうちは急激に大きくなっていくが、カウント値S62の値が「0」に近づくにつれ、その増加の割合は小さくなっていく。そしてカウント値S62の値が一旦「0」となった後、カウント値S63は再び増加の割合を増して大きくなっていく。
また、カウント値S63はカウント値S62の累積加算値として計算されるので、カウント値S62の値から逆算することで、カウント値S62が「0」となった時にカウント値S63も「0」となるように初期値A63を求めることができる。すなわち、垂直カウンタ62が初期値A62を出力してから「0」を出力するまでの間に出力する全てのカウント値S62の総和を求め、その符号を反転させたものを初期値A63として設定すればよい。ここで、カウント値S62は常に「0」以上なので、初期値A63は負の値となる。また、固体撮像素子11から画像垂直方向中心の画素の画素値が読み出される時、カウント値S62が「0」になるように設定されているので、カウント値S63も、固体撮像素子11から画像垂直方向中心の画素の画素値が読み出される時に「0」となる。
すなわち、カウント値S63は、垂直同期信号VSYNCに同期して負の値にセットされる。その後は値を増していき、固体撮像装置11から画像の垂直方向の中心に位置する画素の画素値が読み出されている時、その値は「0」となる。そして、その後は正の値をとりながらその値を増やしていく。また、垂直同期信号VSYNCの1周期内で、時間にそってカウントS63の変化量を見ると最初のうちは大きいが、カウント値S63が「0」に近づくにつれその変化量は小さくなっていく。そしてカウント値S63が「0」になった後、その変化量は時間に従って再び大きくなっていく。
次に、垂直カウンタ64の出力するカウント値S64の説明を行う。垂直方向カウンタ64のカウント値S64は、時刻T00において、水平同期信号VSYNCに同期して初期値A64にセットされる。その後は水平同期信号HSYNCに同期してカウント値S64にはカウント値S63が加算される。すなわち、カウント値S64では、カウント値S63の累積加算値が計算される。そして時刻T10において、垂直同期信号VSYNCに同期してカウント値S64は初期値A64に再びセットされる。また時刻T10以降は、時刻T00以降と同様の動作をする。
ここで、カウント値S63は、最初負の値であったものが「0」になり、その後、正の値になる。したがってカウント値S63が負の値である間、カウント値S64は減少する。そしてカウント値S63が「0」の時、カウント値S64は変化せず、その後カウント値S63が正の値になると、カウント値S64は増加する。したがってカウント値S64はカウント値S63が「0」の時、最小値をとる。
また、垂直カウンタ63のカウント値S63の絶対値の変化を見ていくと、最初は大きな値であるが、カウント値S63が「0」に近づくにつれて徐々に小さくなっていき、一旦「0」になったあとまた大きな値になっていく。したがってカウント値S64に対しては最初、絶対値の大きな負の値が足されているが、次第に絶対値の小さな負の値が足されるようになり、「0」が足された後、正の値が足されることになる。そして、足される正の値の絶対値は次第に大きな値となる。
したがってカウント値S64の変化量を垂直同期信号VSYNCの1周期内で時間に従って見ると、最初のうちは大きいが、カウント値S63が「0」に近づくにつれてその変化量は徐々に小さくなっていく。そしてカウント値S63が「0」になった後、その変化量は再び大きくなっていく。
ここで、カウント値S64はカウント値S63の累積加算として計算されるので、カウント値S63の値から逆算することで、カウント値S63が「0」となった時にカウント値S64が最小値「0」をとるように、初期値A64を求めることができる。すなわち、垂直カウンタ63が初期値A63を出力してから「0」を出力するまでの間に出力する全てのカウント値S63の総和を求め、その符号を反転させたものを初期値A64として設定すればよい。ここで、カウント値S63の初期値A63は負の値であり、その後値が「0」になるまで負の値をとり続けるので初期値A64は正の値になる。また、固体撮像素子11から画像垂直方向中心の画素の画素値が読み出される時、カウント値S63が「0」になるように初期値設定されているので、カウント値S64も、固体撮像素子11から画像垂直方向中心の画素の画素値が読み出される時に「0」となる。
以上をまとめると、固体撮像素子11から画像垂直方向中心の画素の画素値が読みだされている時に、垂直カウンタ61〜64のカウント値S61〜S64が全て「0」になるように、初期値A61〜A64を設定することができる。以下の説明では初期値A61〜A64はそのような値に設定されているものとする。
図13は、垂直カウンタ61〜64のカウント値S61〜S64の絶対値Z61〜Z64の変化を垂直同期信号VSYNCの1周期内で表した図であり、横軸が時間、縦軸が絶対値の大きさを表す。
直列に接続された垂直カウンタ61〜64のうち、奇数番目の垂直カウンタ61、63のカウント値S61、S63は負の値からスタートし、画像垂直方向中心の画素の画素値が読み出されている時、その値が「0」になる。そしてカウント値が「0」になった後は正の値となる。偶数番目の垂直カウンタ62、64のカウント値S62、S64は正の値からスタートし、画像垂直方向中心の画素の画素値が読み出されている時、その値が「0」になる。そしてカウント値が「0」になった後は再び正の値となる。したがって絶対値Z61〜Z64の変化を表す曲線は、図13に表したような下に凸の曲線になる。またその値は、画像垂直方向中心の画素の画素値が読み出されている時に全て同時に最小値「0」をとる。また、各カウント値S61〜S64の変化量はその値が「0」に近づく程小さくなるので、絶対値Z61〜Z64の変化の大きさもその値が「0」になるほど小さくなっていく。
さらに、垂直カウンタ62〜64のカウント値S62〜S64は、各々に直列に接続されている垂直カウンタ61〜63のカウント値S61〜S63の累積加算として計算される。したがって、後段の垂直カウンタのカウント値ほど値の変化が大きくなる。
したがって、絶対値Z61〜Z64の変化を表す曲線は、図13のように、より後段の垂直カウンタのカウント値の絶対値を表す曲線ほどその曲率が大きくなる。
したがって、直列に接続する垂直カウンタ61〜6Mの数を増やせば増やすほど、曲率の大きなカーブを得ることができる。
図14は固体撮像装置11から画素値が読み出される画素の位置と、加算器5から出力される値S40及び乗算器6から出力される値S41の大きさの関係を表す図であり、横軸は画像水平方向での画素の位置を、縦軸は画像垂直方向での画素の位置を表す。乗算器6の出力値S41は、加算器5の出力値S40に係数Gを乗じたものであるので、出力値S40と出力値S41の変化の様子は同じである。ここで、暗い色で塗られている場所ほど、加算器5から出力される値S40及び乗算器6から出力される値S41が小さい値であることを表す。図14では出力値S40及びS41の変化を簡略化して表現しているが、その値は、実際は画素値を読み出される画素の位置が画像中央から離れるに従って連続的に増加していく。
今までの説明から明らかなように水平カウンタ5Nのカウント値S5Nの絶対値Z5N(Nが偶数のときは、第Nの水平カウンタ5Nの出力S5Nの値そのもの、Nが奇数のときは、第Nの水平カウンタ5Nの出力側に接続された水平絶対値算出器31の出力値)は画像水平方向中心の位置の画素の画素値が読み出される時に最小値「0」をとり、水平方向中心からより離れた画素の画素値が読み出されるほどより急激に大きくなる。同様に、垂直カウンタ6Mの出力値6Mの絶対値Z6M(Mが偶数のときは、第Mの垂直カウンタ6Mの出力S6Mの値そのもの、Mが奇数のときは、第Mの垂直カウンタ6Mの出力側に接続された垂直絶対値算出器32の出力値)は画像の垂直方向中心の位置の画素の画素値が読み出されている時に最小値「0」をとり垂直方向中心からより離れた画素の画素値が読み出されるほどより急激に大きくなる。図9の構成例及び図10の構成例のいずれにおいても、加算器5の出力値S40は絶対値Z5Nと絶対値Z6Mの和である。したがって、加算器5の出力値S40は、固体撮像素子11から画像中央に位置する画素の画素値が読み出されている時に「0」になり、画像中央からより離れた画素の画素値が読み出されている時ほど、より急激に大きな値となる。
乗算器6の出力値S41も加算器5の出力値S40と同じように変化する。
先に説明したとおりこのような出力値S41の変化はシェーディングを補正するのに適している。すなわちシェーディング補正装置13によってシェーディングを補正することができる。
なお、式(1)から明らかなように、係数Gにより補正の強度を調整することが可能である。すなわち係数Gの値を大きくするほど、シェーディングを補正する度合いを大きくできる。
また、固体撮像素子11から画素値を読み出される画素の位置が画像中央から離れるに従って、加算器5から出力される値S40及び乗算器6から出力される値S41は増加していくが、その増加の割合は、絶対値Z5N及び絶対値Z6Mの変化を表す曲線の曲率に依存する。すなわち、直列に接続する水平カウンタ51〜5N及び垂直カウンタ61〜6Mの数を増やせば、絶対値Z5N及び絶対値Z6Mの変化を表す曲線の曲率が大きくなり、それに合わせて、値S40及び値S41の増加の割合も大きくなる。
これはレンズのシェーディング特性に合わせて水平カウンタ51〜5N及び垂直カウンタ61〜6Mの数を調整することで、より精度の高いシェーディング補正を行えることを意味する。
すなわち、画像周辺での光量低下の多いレンズを使用するときは、直列に接続する水平カウンタ51〜5N及び垂直カウンタ61〜6Mの数を増やし、逆に画像周辺での光量低下の少ないレンズを使用するときは、直列に接続する水平カウンタ51〜5N及び垂直カウンタ61〜6Mの数を減らすことで、レンズに応じて最適な補正回路を組むことができる。
以上のように、実施の形態2でも、シェーディング補正を行うことができる。また、実施の形態2でも、シェーディング補正のための係数を加算器及び乗算器のみで算出するので、回路として実装した場合、ゲート規模を抑えることができる。さらに、補正係数を求めるために、ルックアップテーブル等を使用することがないので、回路として実装する場合、不揮発性メモリ等の記憶手段を必要とせず、コストを抑えることができる。さらにまた、水平カウンタ、垂直カウンタの数を調整することでレンズのシェーディング特性に合わせて最適なシェーディング補正装置を提供できる。さらにまた、係数Gにより補正の強度を調整することができる。
以上N、Mが4の場合について詳しく説明したが、N、Mは5以上であっても良く、2、3であっても良い。実施の形態1は、実施の形態2において、N、Mを2とした場合と見ることもできる。
実施の形態2にも、実施の形態1について述べたのと同様の変形を加えることが可能である。
実施の形態3.
図15は本発明によるシェーディング補正装置の実施の形態3の構成例を示す図であって、水平補正曲線生成部500、垂直補正曲線生成部600、加算器5、乗算器6、乗算器7、加算器8、及び係数生成部9を有する。
なお、水平補正曲線生成部500の構成は実施の形態1のシェーディング補正装置で水平カウンタ51及び52の直列接続で構成されるもの又は実施の形態2の図9のシェーディング補正装置で水平カウンタ51〜5Nの直列接続若しくは図10のシェーディング補正装置で水平カウンタ51〜5N及び絶対値算出器31の直列接続で構成されるものと同等であり、垂直補正曲線生成部600の構成は実施の形態1のシェーディング補正装置で垂直カウンタ61及び62の直列接続で構成されるもの、又は実施の形態2のシェーディング補正装置で垂直カウンタ61〜6Mの直列接続で構成されるもの若しくは図10のシェーディング補正装置で垂直カウンタ61〜6M及び絶対値算出器32の直列接続で構成されるものと同等である。
また、加算器5、乗算器7、及び加算器8の動作も実施の形態1または2のシェーディング補正装置と同様である。
本実施の形態によるシェーディング補正装置では乗算器6の動作が実施の形態1または2のシェーディング補正装置と異なる。その動作については後述する。
このシェーディング補正装置も実施の形態1または2のシェーディング補正装置の代わりに、図2に示される撮像装置におけるシェーディング補正装置13として用いることができる。
本実施の形態によるシェーディング補正装置は、特に、図16に示すようなベイヤ型のカラーフィルタ配列に従って、固体撮像素子11内の各フォトダイオード20にカラーフィルタが貼られているときに使用するのに適している。
多くの撮像装置では、カラー画像を得るために図16に示すようなカラーフィルタ配列を用いる。図16に示したカラーフィルタ配列は、赤(Rd)、緑(Gn)、青(Bl)3色のカラーフィルタからなる。すなわち、赤、緑、青いずれかのカラーフィルタが、図16に示した配列に従って、フォトダイオード20に貼られている。
以下、赤色のカラーフィルタが貼られたフォトダイオードのことをR画素、緑色のカラーフィルタが貼られたフォトダイオードのことをG画素、青色のカラーフィルタが貼られたフォトダイオードのことをB画素と呼ぶ。
シェーディング補正装置13内の係数生成部9は、映像信号S10として入力される値がR画素の画素値の場合は係数Grを、G画素の場合は係数Ggを、B画素の場合は係数Gbを生成し、出力する。乗算器8は、係数生成部9から供給される係数Gr、Gg又はGbを用いて、乗算を行う。
乗算器6で加算器5の出力値S40に掛け合わせる係数は、シェーディングを補正する強度を決定する係数である。すなわち、実施の形態3のシェーディング補正装置では、各画素の色に応じてシェーディングを補正する強度を変化させる。
実施の形態3による効果は以下の通りである。即ち、レンズなど光学部品の光学特性は波長依存性を持っているため、R画素、G画素、B画素間でシェーディング特性には違いが見られる。この現象は色シェーディングと呼ばれている。実施の形態3によるシェーディング補正装置では各画素の色に応じて、シェーディングを補正する強度を変化させるので、色シェーディングを補正できる。また、実施の形態3のシェーディング補正装置の構成は実施の形態1または実施の形態2のシェーディング補正装置と同様なので、実施の形態1または実施の形態2のシェーディング補正装置と同様の効果も持つ。
HSYNC 水平同期信号、 VSYNC 垂直同期信号、 MCK 画素クロック、 S10 映像信号、 51〜5N 水平カウンタ、 61〜6M 垂直カウンタ、 S51〜S5N カウント値、 S61〜S6M カウント値、 5 加算器、 6 乗算器、 7 乗算器、 8 加算器、 9 係数生成部、 S40 加算器5の出力値、 S41 補正係数、 S42 補正値、 S43 映像信号。