以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
図1は、本実施形態の画像処理装置が適用される、デジタルスチルカメラの構成を説明する図である。このデジタルスチルカメラは、連続した複数フレームの撮像画像からなる動画の撮像を行う。被写体からの光はレンズ2により集光され、絞り4を介して撮像部6の受光面に結像される。撮像部6は、CCDイメージセンサで構成され、光電変換部により受光量に応じた画素値信号を生成し、垂直・水平CCD部により画素値信号を転送してアナログ処理部8に出力する。アナログ処理部8は、画素値信号を増幅し、ノイズを除去する。AD変換部10は、画素値信号をAD変換し、バス22を介して画像処理部28に出力する。
画像処理部28は、画素値信号に対し各種画像処理を行い、撮像画像データを生成する。画像処理部28は、たとえばASIC(Application Specific Integrated Circuit)により構成される。LCD(Liquid Crystal Display)コントーラ30は、撮像画像データに対応した画像信号をLCD34に出力して、LCD34に撮像画像を表示させる。メディアコントローラ32は、撮像画像データをメモリカードなどの記憶メディア36に格納したり、記憶メディア36から画像データを読み出したりする。
システムコントローラ18は、操作部20からの操作入力に応答し、デジタルスチルカメラ各部の動作を統合的に制御する。システムコントローラ18は、ROM(Read Only Memory)26に格納された制御プログラムに従って、RAM(Random Access Memory)24を作業領域として各種制御のための演算処理を実行する。システムコントローラ18の制御のもと、レンズ制御部12は、レンズ2の図示されない駆動機構を制御し、レンズ2の合焦を行う。また、露出制御部14は、絞り4を制御して露出を調節する。さらに、撮像制御部16は、撮像部6の画素値信号の転送を制御する。
図2は、撮像部6の基本的な構成と動作について説明する図である。図2(A)は、撮像部6の模式的な平面図である。撮像部6は、CCDイメージセンサで構成され、シリコン基板上に、画素ごとに設けられ行列状に配列された光電変換部PD1〜9と(ここでは説明の簡略化のため、3行×3列で説明する)、光電変換部PD1〜9の列ごとに設けられ、列方向(垂直方向)に延在する垂直CCD部V_CCD1〜3と、垂直CCD部V_CCD1〜3の端部側において行方向(水平方向)に延在する水平CCD部H_CCDとを有する。以下では、光電変換部PD1〜9、または垂直CCD部V_CCD1〜3を総称するときには、それぞれ数字を省いて表記する。
光電変換部PDは、被写体からの光を受光し、その光量に応じた画素値信号を生成する。光電変換部PDはそれぞれ1画素に対応する。画素値信号は、白色の矢印で示すように、光電変換部PDから垂直CCD部V_CCDに転送される。そして、垂直CCD部V_CCDは、光電変換部PDから転送された画素値信号を黒色の矢印で示すように垂直転送し、画素値信号を水平CCD部H_CCDに順番に転送する。そして、水平CCD部H_CCDは、画素値信号を斜線でハッチングした矢印で示すように水平転送し、撮像部6の外部に出力する。
図2(B)は、各光電変換部PDの構成例を示す。光電変換部PDは、フォトダイオードと読み出しゲートとを有する。読出しゲートは、制御パルスが印加されないときは閉じられており、制御パルスが印加されると開かれる。読出しゲートが開かれることで、光電変換部PDから垂直CCD部V_CCDに画素値信号が転送される。
また、図2(A)、(B)に示すように、垂直CCD部V_CCDは、垂直方向に配列されたゲート電極φV1〜4を有する。ゲート電極φV1〜4に転送用の制御パルスが印加されると、その位置に対応したシリコン基板表面付近にポテンシャル・ウェルが形成され、そこに画素値信号としての電荷が蓄積される。
図2(C)は、垂直CCD部V_CCDによる画素値信号の転送動作を示す。図2(C)に示すように、制御パルスを転送方向、つまり垂直方向に順次印加(ON)すると、ポテンシャル・ウェルが形成される位置が垂直方向に移動する。これにより画素値信号が垂直転送される。ここでは、4相の制御パルスにより、画素値信号が光電変換部PDの1行分転送される例が示される。また、水平CCD部H_CCDも同様の構成と方法により、垂直CCD部V_CCDが垂直転送した画素値信号を水平転送する。なお、上記の制御パルスの印加方式は一例であり、4相以外にも、2相、3相など種々可能である。
図3は、撮像部6において、画素値信号が転送される様子について説明する図である。図3(A)に示すように、光電変換部PD1〜9が生成する1フレーム分の画素値信号G1〜9は、まず垂直CCD部V_CCD1〜3に転送される。そして、画素値信号G1〜9は、垂直CCD部V_CCD1〜3により1行ずつ垂直転送される(垂直転送1回目〜3回目)。垂直転送1回目で1行目の画素値信号G1、G4、G7が、垂直転送2回目で2行目の画素値信号G2、G5、G8が、垂直転送3回目で3行目の画素値信号G3、G6、G9が、それぞれ水平CCD部H_CCDに順次転送され、水平CCD部H_CCDにより水平転送される。このようにして転送・出力される画素値信号G1〜9から、図3(B)に示すような1フレーム分の撮像画像が得られる。
図4は、撮像部6の基本的な動作手順を説明するフローチャート図である。撮像部6は、1フレーム分の画素値信号を、光電変換部PDから垂直CCD部V_CCDに転送し(S2)、垂直CCD部V_CCDにより1行分の垂直転送を行う(S4)。そして、撮像部6は、水平CCD部H_CCDにより、1行分の画素値信号の水平転送を行う(S6)。水平転送は、水平画素数分、つまり列数分繰り返され、1行分の画素値信号が水平CCD部H_CCDから出力される。そして、垂直転送(S4)と列の数分の水平転送(S6)が、垂直画素数分、つまり行数分繰り返され、1フレーム分の画素値信号が撮像部6から出力される。さらに、1フレームごとに手順S2〜S6が繰り返され、複数フレームの画素値信号が連続して撮像部6から出力される。
図5は、図4で示した動作のタイミングを示すチャート図である。撮像部6では、垂直タイミング信号VDが与えられると、1フレーム分の画素値信号がすべての光電変換部PDから対応する各垂直CCD部V_CCDに転送される。そして、1行分の垂直転送が行われる。そして、水平タイミング信号HDが与えられると、1行分の水平転送が行われる。1行分の水平転送とその次の垂直転送とが、等間隔の水平タイミング信号HDごとに繰り返される。そして、次の垂直タイミング信号が与えられると、上記一連の転送動作が、次のフレームの画素値信号に対し行われる。なお、垂直タイミング信号VD、水平タイミング信号HDは、たとえば撮像制御部16から撮像部6に与えられる。
撮像部6から出力された画素値信号は、画像処理装置28に取り込まれ、画像処理が行われる。図6は、画像処理部28による画像処理手順の例を示す。図6の手順は、たとえば1フレームごとに実行される。画像処理部28は、画素値信号に対し、スミア補正(S102)、黒補正(S104)、ノイズリダクション(S106)、ホワイトバランス(S108)といった補正処理を実行する。さらに、画像処理部28は、CCDイメージセンサが出力した画素値信号のRGB(Red、Green、Blue)値をLCD34出力用のRGB値に変換するRGB変換(S110)、色補正(S112)、γ補正(S114)といった、入出力特性を合わせるための補正処理を実行する。そして、画像処理部28は、画素値信号を輝度信号Yと色差信号Cb、Crとに分離するYCbCr変換を行い(S116)、輝度信号Yに対して輪郭補正(S118)、色差信号Cb、Crに対し偽色抑制(S120)を行って、LCDコントローラ30やメディアコントローラ32に出力する。
本実施形態は、図6の手順S2におけるスミア補正に関する。ここで、スミアについて説明する。
図7は、スミアが発生した撮像画像を模式的に示す。図7に示すように、スミアは、光点画像から垂直方向に形成される高輝度の領域である。
図8は、スミアが発生する場合の画素値信号の転送の様子を説明する図である。図8(A)は、光電変換部PD1〜9が生成する1フレーム目の画素値信号G11〜G19が転送される様子を示す。図8(A)に示すように、光電変換部PD1〜9が生成する1フレーム目の画素値信号G11〜19は、光電変換部PD1〜9の読み出しゲートが開かれると、まず垂直CCD部V_CCD1〜3に転送される。ここでは、2行2列目の光電変換部PD5(「○」印で示す)が、ほかの光電変換部PD1〜9より強い光を受光するものとする。よって、光電変換部PD5からは、光点画像の輝度に対応した画素値信号G15が転送される。
次いで、垂直CCD部V_CCD1〜3により、画素値信号G11〜G19が1行分ずつ垂直転送される(垂直転送1回目〜3回目)。このとき、光電変換部PD1〜9の読み出しゲートは閉じられている。しかし、動画を撮像する場合、光電変換部PD1〜9は垂直・水平転送中も、露光される。すると、光電変換部PD5からは、読出しゲートが閉じられた状態でも垂直CCD部V_CCD2に漏れるほどの電荷が生成される。
すると、垂直転送1回目で、光電変換部PD5から電荷αが垂直CCD部V_CCD2の2行目に漏れ、この電荷αがスミア値として、光電変換部PD6から転送された画素値信号G16に重畳する。そして、垂直転送2回目で、光電変換部PD5から、垂直CCD部V_CCD2の2行目にスミア値αが漏れる。そして、垂直転送3回目で、垂直CCD部V_CCD2の2行目のスミア値αが1行目まで転送され、光電変換部PD5から垂直CCD部V_CCD2の2行目にスミア値αが漏れる。このようにして転送された1フレーム目の画素値信号G11〜19から、図8(B)に示すような1フレーム目の撮像画像が得られる。ここで、画素値信号G15は、光点画像に対応する。また、画素値信号G16にはαが重畳しており、これによりスミアが発生する。
次に、図8(C)に、光電変換部PD1〜9が生成する2フレーム目の画素値信号G21〜29が転送される様子を示す。ここでは、光電変換部PD1〜9から垂直CCD部V_CCD1〜3に画素値信号PD21〜29が転送されたときに、光電変換部PD4からの画素値信号G24と、光電変換部PD5からの画素値信号G25に、それぞれスミア値αが重畳する。これは、1フレーム目の垂直転送3回目で、垂直CCD部V_CCD2の1行目と2行目に、スミア値αが転送されていることによる。次いで、1フレーム目と同様にして、垂直転送1回目〜3回目が行われる。このとき、垂直転送1回目で、光電変換部PD6から転送された画素値信号G26にスミア値αが重畳する。
このようにして転送された2フレーム目の画素値信号G21〜G29から、図8(D)に示すような2フレーム目の撮像画像が得られる。ここでは、画素値信号G24、G25、及びG26にスミア値αが重畳しており、これによりスミアが発生する。そして、同様の転送がフレームごとに繰り返されることで、3フレーム目以降の画素値信号にも、図8(D)に示されるようにスミア値αが重畳する。このようにして、図7で示したように、撮像画像にスミアが発生する。ここで、スミア値αが一定量であるのは、垂直転送時間、水平転送時間が一定であり、光電変換部PDから漏れる電荷が一定量であることによる。
上記のようにして一定量のスミア値αが重畳することでスミアが発生する場合、スミア発生列の画素値信号からスミア値αを減算することで、スミア補正を行うことができる。これにより、図9に示すように、光点画像を残し、列方向のスミアが補正された撮像画像が得られる。
スミア値αは、光電変換部PDに遮光領域を設けておくことで、遮光領域での画素値信号から求められる。図10は、遮光領域について説明する図である。図10に示すように、光電変換部PDには、遮光領域が設けられる。遮光領域は、たとえば各列の端部において、列を横断するように設けられる。遮光領域には、少なくとも1行分の光電変換部PDが含まれる。ここでは、たとえば先頭から1行目と2行目の光電変換部PDと、末尾から1行目と2行目の光電変換部PDとが遮光領域に含まれる。また、遮光領域以外の光電変換部PDは、受光領域に含まれる。
ここで、図2〜図5、図8における動作は、遮光領域と受光領域の両方に適用される。すると、遮光領域では光電変換部PDは光を受光しないので画素値信号は基本的にゼロとなるところ、スミア値αが重畳したときには、画素値信号がスミア値αとなる。よって、これを検出することで、スミア値αが求められる。その具体的な方法については、後述する。一方、受光領域の光電変換部PDでの画素値信号からは、撮像画像データが生成される。
ところで、一定量のスミア値αのほかに、異なるスミア値が重畳することで、不均一なスミアが発生する場合がある。たとえば、パーシャルスキャンが実行される場合である。パーシャルスキャンは、連続した複数フレームからなる動画を撮像する際、フレームレートを向上させるために、画素値信号のうち出力されない画素値信号を転送せずに掃き捨てる動作モードである。
たとえば、図10に示すように、受光領域における1行目と末尾行の光電変換部PD(ハッチングで図示)を掃き捨て対象行として設定する。そして、掃き捨て対象行の画素値信号が水平CCD部H_CCDに転送されると、水平CCD部H_CCDはこれを水平転送せずに掃き捨てる。掃き捨ては、たとえば、水平CCD部H_CCDの垂直方向に掃き捨て用の領域とゲートとを設けておき、このゲートを開いて画素値信号を掃き捨て用の領域に出力することで行われる。かかる掃き捨て動作は、1行分の画素値信号の水平転送より短時間で行われる。よって、次の行の垂直転送を、より早いタイミングで開始でき、画素値信号全体としての転送速度が向上する。デジタルスチルカメラでは、たとえば、ユーザにより選択的に、あるいは自動的に、撮像部6において、パーシャルスキャン・モードが実行される。
以下、パーシャルスキャン・モードにおける撮像部6、及び画像処理部28の動作について説明する。
図11は、パーシャルスキャン・モードでの、撮像部6の動作手順を説明するフローチャート図である。撮像部6は、光電変換部PDから画素値信号を垂直CCD部V_CCDに転送する(S2)。そして、垂直転送(S4)を実行する。ここで、掃き捨て対象行の画素値信号が水平CCD部H_CCDに転送された場合には、水平CCD部H_CCDは、画素値信号の掃き捨てを行う(S5)。そのほかの行のときには、水平CCD部H_CCDは、水平転送を行う(S6)。水平転送は、水平画素数分、つまり列の数分繰り返される。これにより、1行分の画素値信号が水平CCD部H_CCDから出力される。撮像部6は、手順S4とS5もしくはS6を、垂直画素数分、つまり行数分繰り返す。これにより、1フレーム分の画素値信号のうち、掃き捨て対象行の画素値信号が掃き捨てられ、残りの画素値信号が撮像部6から出力される。さらに、撮像部6は、1フレームごとに手順S2〜S5またはS6を繰り返す。これにより、複数フレームの画素値信号が連続して出力される。
図12は、図11で示した動作のタイミングを示すチャート図である。ここでは、図10で示した光電変換部PDの構成を例とする。撮像部6では、垂直タイミング信号VDごとに1フレーム分の画素値信号が光電変換部PDから垂直CCD部V_CCD転送される。そして、1行分の垂直転送が行われる。そして、1行目〜2行目、つまり遮光領域の画素値信号に対し、水平タイミング信号HDごとに、1行目の水平転送と2行目の垂直転送が行われる。そして、3行目、つまり掃き捨て対象行の画素値信号のときには、水平転送の代わりに掃き捨てが行われ、4行目の垂直転送が行われる。そして、4行目以降の画素値信号に対し、水平タイミング信号HDごとに、水平転送と垂直転送が行われる。そして、末尾から3行目(n−2行目)、つまり掃き捨て対象行の画素値信号に対して掃き捨てが行われる。そして、末尾から2行目(n−1行目)と末尾行(n行目)、つまり遮光領域の画素値信号に対して、水平転送と垂直転送が行われる。このように、撮像部6は、垂直タイミング信号VD間に行数分の水平タイミング信号HDが与えられることにより、1フレーム分の画素値信号の転送または掃き捨てを行う。また、ここで、各行の水平転送は同じ時間で行われる。一方、掃き捨ては、水平転送時間より短い時間で行われる。
次に、パーシャルスキャン・モードにおいて、スミアが発生する場合について説明する。
図13は、パーシャルスキャン・モードでの、画素値信号が転送される様子を示す。ここでは、受光領域に含まれる1列分の光電変換部PD1〜7を例とする。1行目と7行目が掃き捨て対象行である。
まず、図13(A)に示すように、1フレーム目の光電変換部PDからの転送で、光電変換部PD1〜7から画素値信号G11〜17が垂直CCD部V_CCDに転送される。このとき、光電変換部PD4(「○」印を付す)が強い光を受光する。よって、光電変換部PD4からは、光点画像に対応する画素値信号G14が転送される。そして、垂直転送1回目で、画素値信号が垂直方向に1行分転送される。光電変換部PD4は、垂直・水平転送時に読出しゲートが閉じられた状態でも垂直CCD部V_CCD部に漏れるほど余剰な電荷を生成する。よって、垂直転送1回目中に、画素値信号G15に余剰な電荷が重畳する。またこのとき、水平CCD部H_CCDにおいて1行目の画素値信号G11が掃き捨てられる。この掃き捨て処理は、水平転送が行われる時間より短時間で行われる。よって、この間に光電変換部PD4から垂直CCD部V_CCDに漏れる電荷は、通常の水平転送が行われる間に漏れる電荷αより少ない。よって、画素値信号G15には、通常のスミア値αより小さい電荷β(<α)がスミア値βとして重畳する。
次いで、垂直転送2回目のあと、水平CCD部H_CCDは水平転送を行う。よって、このとき、画素値信号G16には、水平転送時間に応じたスミア値αが重畳する。次いで、垂直転送3回目のあと、水平転送のときに、画素値信号G17にスミア値αが重畳する。次いで、垂直転送4回目〜6回目が行われる。そして、垂直転送7回目のあと、画素値信号G17+αが掃き捨てられる。このとき、光電変換部PD4から垂直CCD部V_CCDにスミア値βが漏れる。そして、2フレーム目の転送開始までに、垂直CCD部V_CCDの1行目、2行目にはスミア値αが転送され、3行目にはスミア値βが転送される。このような1フレーム目の転送により、図13(A)右端に示すような撮像画像が得られる。ここでは、画素値信号G15にスミア値βが重畳し、画素値信号G16にスミア値αが重畳することで、スミアが発生する。
次に、図13(A)の次フレームに示されるように、垂直CCD部V_CCDの1、2行目にスミア値α、3行目にスミア値βが転送された状態で、2フレーム目の転送が行われる。図13(B)に示すように、2フレーム目では、まず光電変換部PD1〜7から画素値信号G21〜B27が垂直CCD部V_CCDに転送される。このとき、画素値信号G21、G22にスミア値αが、画素値信号G23にスミア値βが重畳する。以降、1フレーム目と同様にして、垂直転送、水平転送、もしくは掃き捨てが行われる。その結果、図13(B)の右端に示すような2フレーム目の撮像画像が得られる。ここでは、画素値信号G22、G26にスミア値αが重畳し、画素値信号G23、G25にスミア値βが重畳することで、スミアが発生する。
なお、図13では、受光領域の光電変換部PD1〜7を例として示したが、遮光領域の光電変換部PDからの画素値信号が光電変換部PD4の位置まで転送されるタイミングでは、水平CCD部H_CCDによる掃き捨ては行われない。よって、遮光領域の光電変換部PDによる画素値信号には、スミア値αが重畳する。
上記のような図13の例では、画素値信号に対しスミア値αまたはβが重畳する。その結果、図14に示すような、濃い(輝度が高い)スミア値αに対応する濃いスミアと、薄い(輝度が低い)スミア値βに対応する薄いスミアとが混在するスミアが発生する。このような場合、一律に遮光領域の画素値であるスミア値αを減算する補正を行うと、薄いスミア値βが重畳した画素値信号から濃いスミア値αを減算したときに、本来の輝度より低い輝度になる。つまり、図15に示すような、光点画像の上下の画素の輝度が低下した、不自然な撮像画像が生成される。かかる事態を回避するために、本実施形態では、一律にスミア値αを減算するのではなく、次のようにして、精度良いスミア補正を行う。
図16は、スミア補正を行う画像処理装部28の要部の構成を説明する図である。画像処理部28では、スミア発生列の注目画素の画素値信号が入力されると、補間値生成部302が近傍の列の画素値信号に基づいて補間演算を行い、注目画素の画素値を補間値として導出する。そして、補正量導出部304が、濃いスミア値αと薄いスミア値βのいずれかを、注目画素の画素値信号と補間値の差分に基づいて、補正量として導出する。そして、画素値補正部305が、注目画素の画素値信号から補正量を減算することで、注目画素の画素値の補正を行う。
上記処理における薄いスミア値βは、濃いスミア値αに基づいて、補正量導出部304により導出される。そして、濃いスミア値αは、スミア値検出部306が、各列の遮光領域の光電変換部PDから出力された画素値信号に基づいて検出する。具体的には、水平座標・垂直座標カウンタ部308が、垂直タイミング信号VDと水平タイミング信号HDとに基づき、光電変換部PDの座標位置を導出し、その座標位置を遮光領域判定部310に出力する。遮光領域判定部310は、入力された座標位置がレジスタに格納された遮光領域座標と一致しているとき、メモリコントローラ312にライトイネイブル信号WEを出力させる。これにより、そのときの画素値信号、つまり遮光領域の画素値信号が、ラインメモリ314に格納済みの画素値信号に加算器316により積算され、積算結果がラインメモリ314に格納される。このような動作が1列のすべての画素値信号に対し実行されることで、ラインメモリ314において、遮光領域における複数行の画素値信号の積算値が格納される。
ここで、遮光領域の画素値信号のレベルは受光していないので本来ゼロであるところ、スミア発生列では、遮光領域の画素値信号の示す値はスミア値に対応する。よって、ラインメモリ314に格納された値は、遮光領域におけるスミア値の合計である。この合計値を、レジスタに格納された遮光領域の行数で除算器318が除算することで、1つの光電変換部PDあたりのスミア値αが求められる。また、さらに、ハードウェア誤差等を補正するための予め設定される係数を乗算してスミア値αを求めてもよい。
コアリング部320は、スミア値αにコアリング処理を施す。ここで、コアリング部320は、入力されるスミア値αを予め設定されたコアリング閾値と比較し、コアリング閾値より大きければそのままの値を出力し、コアリング閾値より小さければ、「0」を出力する。これにより、入力される画素値信号のS/N比が低いときに小さいスミア値が得られた場合、その値を採用しないようにすることでノイズの影響を低減できる。コアリング部320は、このようにして求めたスミア値αを、FIFOメモリ322と補間値生成部302とに出力する。FIFOメモリ322と補間値生成部302のFIFOメモリそれぞれの幅、つまり、後述の補間値計算に用いる近傍画素の間隔は、図示しないレジスタに格納された幅に設定される。このようにして、補間値生成部302には、スミア発生列ごとのスミア値αが入力される。
ここにおいて、補間値生成部302、補正量導出部304、画素値補正部305、及びスミア値検出部306を含む構成が、「画像処理装置」に対応する。
図17は、補間値生成部302の構成を説明する図である。ここでは、一例として、注目画素の左右近傍の4列における4つの画素の画素値信号を用いて補間値を求める構成が示される。この補間値は、注目画素にスミアが発生していない場合に推定される、注目画素の画素値であり、左右近傍画素から、補間計算により計算される。
列ごとにコアリング部320から与えられたスミア値αは、スミア値判定部330に入力される。スミア値判定部330は、スミア値αを図示しないレジスタに格納されたスミア判定値と比較し、スミア値αがスミア判定値より大きければスミア発生と判定し、スミア判定値以下であればスミアが発生していないと判定する。そして、列ごとの判定結果が、FIFOメモリ332_1〜4に順次格納される。一方、補間値生成部302に入力される列ごとの画素値信号は、FIFOメモリ340_1〜4に順次格納される。ここにおいて、FIFOメモリ332_1〜4とFIFOメモリ340_1〜4には、列ごとの判定結果と画素値信号とがそれぞれ格納される。
補間式選択部334は、スミア値判定部330からの最新のスミア判定結果とFIFOメモリ332_1〜4に格納されたスミア判定結果に基づいて、予め格納された補間値計算係数1〜16のいずれかを選択する。そして、選択した補間値計算係数を出力するように、切り替え部335を切り替える。
ここで、図18を用いて、補間値計算係数について説明する。図18では、注目画素Px0の左右の近傍4画素Px−2、Px−1、Px1、Px2のスミア判定結果が示される。ここでは、スミアが発生している場合「×」と発生していない場合「○」の組合せが示される。そして、各組合せに対応して、16通りの補間値計算係数a1〜a5の組合せと、これを用いた補間計算式が示される。ここでは、注目画素Px0の近傍4画素Px−2、Px−1、Px1、Px2が等間隔である場合を例としている。
ここで、4画素Px−2、Px−1、Px1、Px2のいずれかがスミア発生列に対応する場合(スミア判定結果「×」)、その画素値信号の補間値計算係数が「0」となる補間値計算係数a1〜a5が、図18に示すように選択される。よって、補間値計算式にスミアを含む画素値信号が含まれていても、その係数を「0」にして、誤った補間値を導出することを回避できる。また、より近い画素の画素値信号により大きい補間値計算係数が割り当てられるので、補間計算の精度を向上させることができる。また、注目画素が受光領域の左右いずれかの端部付近であって、近傍に画素が存在しないときには、その画素に対する補間値計算係数が「0」となるような補間値計係数a1〜a5が選択される。
図17に戻り、上記のようにして選択された補間値計算係数は、切り替え部335によりそれぞれ乗算器336_1〜5に与えられ、FIFOメモリ340_1〜4に格納された画素値信号と、入力された画素値信号とにそれぞれ乗算される。そして、各乗算結果は、加算器338で加算され、加算結果が補間値として出力される。ここで、FIFOメモリ340_1〜4から左右近傍の画素値信号が読み出されるときの間隔は、レジスタに格納されたFIFO幅により設定される。好ましくは、FIFO幅は、注目画素と同じ色の近傍の画素の画素値信号が読み出されるような幅に設定される。たとえば、2行ごとに、1行目ではG(green)、R(red)、G、R・・・の画素値信号が交互に生成され、2行目ではB(blue)、G、B、G、・・・の画素値信号が生成されるベイヤー方式の場合、FIFO幅を2の倍数に設定することで、注目画素と同じ色の左右近傍の画素の画素値信号を用いて補間値を算出することができる。
図19は、補正量導出部304の詳細な構成を説明する図である。スミア値導出部350は、濃いスミア値αから、1行の画素値信号が水平転送される時間と、これを掃き捨てるときの時間との比に応じて、薄いスミア値βを導出する。具体的には、かかる比に応じた定数が図示しないレジスタに格納されており、濃いスミア値αにこの定数を乗算器352により乗算することで、薄いスミア値βが導出される。そして、スミア値α、βは、補正量決定部354に与えられる。一方、減算器364は、スミア列の画素値信号から補間値を減算し、差分を推定スミア値として導出する。そして、推定スミア値は、補正量決定部354と、切り替え部368に与えられる。
補正量決定部354は、推定スミア値が濃いスミア値αと薄いスミア値βのいずれに近似するかを判定し、推定スミア値に近似すると判定されたスミア値αまたはβを、補正量として決定する。具体的には、まず、平均値導出部356とクリップ部358に、スミア値導出部350から与えられた濃いスミア値αと薄いスミア値βが入力される。そして平均値導出部356が、濃いスミア値αと薄いスミア値βの平均値を中間スミア値として導出する。そして、比較器360が推定スミア値と中間スミア値とを比較し、推定スミア値が中間スミア値より大きい場合は「True:1」を、推定スミア値が中間スミア値以下の場合は「False:0」を、判断結果として出力する。この判断結果は、出力選択部362に入力され、出力選択部362は、「True:1」の場合には画素値信号の最大値、たとえば12ビットの場合には「4095」を、「False:0」の場合には「0」を切り替え部368を介してクリップ部358に出力する。
なお、切り替え部368は、後述する好適な態様において、飽和判定部370の出力と信頼性判定部374の出力の論理和に応じた値をクリップ部358に出力するが、ここではまず、出力選択部362からの出力がそのままクリップ部358に出力された場合について説明する。
クリップ部358は、出力選択部362から最大値が入力された場合、この最大値を濃いスミア値αによりクリッピングし、スミア値αを補正量として出力する。一方、出力選択部362から「0」が入力された場合、これを薄いスミア値βによりクリッピングし、スミア値βを補正量として出力する。このようにして、スミア値に応じた補正量を導出でき、これを用いて補正を行うことで、精度よいスミア補正が可能となる。
ここで、本実施形態の好適な態様の一つについて説明する。この態様では、飽和判定部370が、注目画素の画素値信号のレベルとレジスタに格納された飽和判定値レベルとを比較器372により比較し、画素値信号のレベルが飽和判定値レベルを超えている場合には、「True:1」を、画素値信号のレベルが飽和判定レベル以下の場合には、「False:0」を判断結果として出力する。この判断結果が切り替え部368に入力されると、切り替え部368は、推定スミア値を選択してクリップ部358に出力する。画素値信号が飽和レベルに達している場合に、濃いスミア値αまたは薄いスミア値βを画素値信号のレベルから減算すると、本来なら輝度が最大値であるはずのところ、補正により輝度が最大値より減少してしまい、撮像画像が不自然なものとなる。一方、近傍の画素から補間した補間値は飽和レベルまたはこれに近似した値となるので、推定スミア値は有る程度小さい値になる。よって、切り替え部368を介して推定スミア値をクリップ部358に入力し、それをクリップした補正量を出力し、画素値信号のレベルからその推定スミア値に対応する補正量を減算することで、本来の飽和レベルに近い輝度の画素値信号を得ることができる。よって、より精度のよいスミア補正が可能となる。
一方、飽和していない場合には、飽和判定部370の出力は「0」となる。この出力が切り替え部368に入力されると、切り替え部368は、前述のとおり、出力選択部362からの出力をクリップ部358に入力する。その結果、クリップ部358は、入力に応じてクリップされたスミア値αまたはスミア値βを補正量として出力する。
また、本実施形態の別の好適な態様について説明する。この態様では、信頼性判定部374が、1列前の注目画素について、推定スミア値と平均スミア値との比較結果をフリップフロップ回路376に格納しておき、その結果と現在の注目画素の結果との排他論理和を、EXOR回路378から出力する。この場合、1列前の結果と異なる場合、つまりノイズ等に起因して比較結果の信頼性が低い場合には、「1」が出力される。この出力が切り替え部368に与えられると、上述したように、推定スミア値がクリップ部358に入力され、その推定スミア値が補正量として採用される。推定スミア値を補正量とすることで、注目画素は少なくとも補間値となる。よって、ノイズ等に起因して誤判断がなされ、スミア値αまたはβにより補正することで不自然な画像となることを回避できる。
一方、1列前の結果と同じ場合、つまり比較結果の信頼性が高い場合には、EXOR回路378から「0」が出力される。そして、この出力が切り替え部368に与えられると、上述したように、クリップ部358は、入力に応じてスミア値αまたはスミア値βを補正量として出力する。
上述した飽和判定部370と信頼性判定部374は、それぞれ単独であるいは組合せにより実施可能である。組合せて実施する場合には、飽和判定部370と信頼性判定部374の出力の論理和が、OR回路380により切り替え部368に入力される。
図20は、本実施形態における第1の変形例を説明する図である。第1の変形例は、補正量導出部304の変形例に関する。図20では、図19における補正量決定部354が、比較器360と出力選択部362の代わりに、減算器400、乗算器402、及び加算器404を有する。
補正量決定部354は、中間スミア値と推定スミア値との差を減算器400により求め、この差と、レジスタに格納されたブレンド係数とを乗算器402により乗算する。そしてその乗算結果と、中間スミア値との和を加算器404により求め、その結果を切り替え部368に出力する。そして、切り替え部368に出力された結果は、飽和判定部370と信頼性判定部374の出力がいずれも「0」のときに、クリップ部358に入力される。
また、中間スミア値と推定スミア値との差は、符号ビット抜出部375に与えられる。符号ビット抜出部375は、中間スミア値と推定スミア値との差から符号ビットを抜き出してフリップフロップ回路376に格納する。これにより、1列前の符号との一致不一致により、信頼性判定が行われる。
ここで、クリップ部358の伝達関数を、図21に示す。図21において、点線で示す伝達関数は、本実施形態において、スミア値αまたはβのいずれかがクリップ部358によりクリップされ、出力される場合に対応する。また、図21において、実線で示す伝達関数は、第1の変形例でブレンド係数を用いた場合に対応する。ブレンド係数を用いることにより、スミア値αとβの中間スミア値を切片として、ブレンド係数に応じてスミア値αまたはβに近似した値を補正量として出力することができる。なお、ブレンド係数が「1」の場合が、推定スミア値をそのまま出力する場合に対応する。図21では、ブレンド係数が「1」の場合(実線)と「∞」の場合(破線)とを示したが、ブレンド係数は予め任意の値、たとえば「1」と「∞」の間の値に設定することができる。
このような構成により、中間的なスミア値を補正量とすることができ、精度よいスミア補正が可能になる。
図22は、本実施形態における第2の変形例を説明する図である。図21は、図16で示した画像処理装置の構成に、スミア幅検出部410が追加された構成を示す。スミア幅検出部410は、スミア値αに基づいて、スミア幅、つまりスミア発生列の数を検出し、スミア幅を補間値生成部302のFIFOメモリと、FIFOメモリ322とに与える。これにより、補間値生成部302では、補間値を導出するための近傍画素の画素値信号をFIFOメモリから読み出すときの位置、つまり近傍画素の間隔を変更する。具体的には、スミア幅が広い場合には、読出す幅を広くし、連続するスミア発生列の画素値信号がFIFOからできるだけ読み出されないようにして補間値計算を行う。これにより、スミアが重畳した画素値信号を用いて不適切な補間値を導出するおそれを低減できる。一方、スミア幅が狭い場合には、読出す幅を狭くし、より近傍の列の画素値信号を読み出すようにして補間値計算に用いる。これにより、注目画素の画素値信号とより強い相関を有する画素値信号を用いることができ、補間値生成精度が向上する。なお、スミア幅に応じて近傍画素の間隔を変更する際、注目画素と同じ色の画素値信号が読み出されるような間隔、例えば2の倍数に設定することで、注目画素と同じ色の画素値信号を用いて補正値を生成することが可能になる。
図23は、スミア幅検出部410の詳細な構成を説明する図である。スミア幅検出部410では、比較器420がスミア値αとレジスタに格納されたスミア判定値とを比較する。比較器420は、スミア値αがスミア判定値より大きいとき、つまりS/N比が良好な場合、「True:Increment」をカウンタ422に出力し、スミア値αがスミア判定値以下のとき、つまりS/N比が不良な場合、「False:Reset(0)」をカウンタ422に出力する。カウンタ422は、「True:Increment」が入力されると、カウント値を「1」ずつインクリメントさせ、一方「False:Reset(0)」が入力されるとカウント値を「0」にリセットする。つまり、連続してスミア判定された回数がカウントされる。
そして、比較器424が、カウンタ422がインクリメントしたカウント値と、レジスタ428に格納されたカウント値とを比較し、インクリメントしたカウント値が上回っていれば、「True:1」を、上回らなければ「False:0」を出力する。そして、AND回路426は、比較器424の出力とメモリコントローラ312から入力される制御信号の論理積をライトイネイブル信号WEとして、レジスタ428に出力する。これにより、レジスタ428には、スミア値αが検出された列数の最大値が格納される。メモリコントローラ312から入力される制御信号は、たとえば遮光領域の画素値信号に基づきスミアが判定されたときに入力される。この制御信号によりレジスタ428に格納される値が「0」にリセットされ、上記の動作によるカウント値の更新が開始される。このようにして、受光領域の画素値信号を処理する前、あるいは画素値信号の処理開始直後に、レジスタ428において、連続するスミア発生列数の最大値、つまりスミア幅が更新される。
調整部450は、スミア幅に所定のマージンを追加して切り替え部452に出力する。これにより、スミア発生列の画素値信号を用いて補間値を導出することを、より確実に回避できる。また、スミア幅が実装可能なFIFOメモリの幅を超える場合は、実装可能な幅に収めるような処理を行ってもよい。また、レジスタ454には、シーン認識結果やオートフォーカス判定結果に応じたスミア幅が格納される。たとえば、輝度が低い夜間などのシーン用の狭いスミア幅、輝度が高い昼間などのシーン用の広いスミア幅が格納される。また、ピントが合った(合焦度合いが高い)場合用の狭いスミア幅、ピントがぼけた(合焦度合いが低い)場合用の広いスミア幅が格納される。切り替え部452は、モード信号に従って、レジスタ454に格納されたスミア幅か、現在のフレームで検出されたスミア幅のいずれかを出力する。モード信号は、画像処理部28内あるいは別のMPUのシーン認識部やオートフォーカス判定部から与えられる。これにより、シーンごとの輝度や、合焦度合いに応じて最適なスミア補正が可能になる。あるいは、レジスタ454には、前フレームにおけるスミア幅や、過去数フレームにおけるスミア幅の平均値を格納しておき、これらを用いることで、フレームごとに補正量が変動することを防止できる。
上述したように、本実施形態によれば、スミア値が一定でない場合であっても、精度良いスミア補正が可能となる。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
受光量に応じて画素値信号を生成する光電変換部と、前記光電変換部から転送される前記画素値信号を垂直転送する複数の垂直CCD部と、前記垂直転送される画素値信号を水平転送する水平CCD部とを有する撮像部から、前記画素値信号が入力される画像処理装置であって、
遮光された前記光電変換部から出力された前記画素値信号に基づいて、第1のスミア値を検出するスミア値検出部と、
近傍の画素の画素値信号に基づいて注目画素に対応する補間値を生成する補間値生成部と、
前記注目画素の画素値信号と前記補間値との差分を推定スミア値として導出し、前記第1のスミア値に基づいて前記第1のスミア値より小さい第2のスミア値を導出し、前記推定スミア値に基づいて前記第1、第2のスミア値のいずれかを補正量として導出する補正量導出部と、
前記注目画素の画素値信号から前記補正量を減算する画素値補正部とを備えた画像処理装置。
(付記2)
付記1において、
前記補正量導出部は、前記第1、第2のスミア値のうち、前記推定スミア値に近似する方を前記補正量として導出する画像処理装置。
(付記3)
付記1または2において、
前記補正量導出部は、前記注目画素の画素値信号が所定レベル以上の場合には、前記推定スミア値に基づいて、前記第1のスミア値以下、かつ前記第2のスミア値以上の第3のスミア値を前記補正量として導出する画像処理装置。
(付記4)
付記1または2において、
前記補正量導出部は、前記推定スミア値が前記第1、第2のスミア値のいずれに近似するかを判定し、当該判定結果が隣接する画素の画素値信号に関する判定結果と異なる場合には、前記推定スミア値に基づいて、前記第1のスミア値以下、かつ前記第2のスミア値以上の第3のスミア値を前記補正量として導出する画像処理装置。
(付記5)
付記1または2において、
前記補正量導出部は、前記水平CCD部にて、前記垂直転送される画素値信号を水平
転送する時間と、前記垂直転送される画素値信号を掃き捨てる時間との比に応じた係数を、前記第1のスミア値に乗算して前記第2のスミア値を導出する画像処理装置。
(付記6)
付記1において、
前記補間値生成部は、連続するスミア発生列の数が第1の数のときには、前記近傍の画素の間隔を第1の間隔、前記連続するスミア発生列の数が前記第1の数より大きい第2の数のときには、前記近傍の画素の間隔を前記第1の間隔より広い第2の間隔に決定する画像処理装置。
(付記7)
付記1において、
前記補間値生成部は、前記近傍の画素のいずれかが存在しないかまたはスミアを有するときには、当該画素の画素値信号を用いずに前記補間値を生成する画像処理装置。
(付記8)
付記1において、
前記補間値生成部は、前記注目画素と同じ色を有する前記近傍の画素の画素値信号に基づいて前記補間値を導出する画像処理装置。
(付記9)
付記6において、
前記補間値生成部は、撮像画像のシーンが第1の輝度、または第1の合焦度合いのときには前記近傍の画素の間隔を前記第1の間隔、前記撮像画像のシーンが前記第1の輝度より高い第2の輝度、または前記第1の合焦度合いより低い第2の合焦度合いのときには前記近傍の画素の間隔を前記第2の間隔に決定する画像処理装置。
(付記10)
付記7において、
前記注目画素および前記近傍の画素におけるスミアの有無は、遮光領域における画素値信号とスミア判定値との比較に基づいて判定される画像処理装置。