本発明は、単板撮像系、二板撮像系、または三板画素ずらし撮像系から出力された画像を処理して、画素毎に3色成分値をもつカラーデジタル画像を生成する画像処理装置、画像処理プログラムに関する。
デジタルカメラ等において多く使用されている単板撮像系は、画素毎に異なる色フィルタを装着した単板撮像素子を用いたものであり、撮像素子からの出力画像は、各画素について一種類の色成分値しかもっていない。従って、カラーデジタル画像を生成するためには、各画素において欠落している色成分値を補う補間処理を行うことが必要となる。このような欠落している色成分値を補う補間処理が必要となるのは、二板撮像系や三板画素ずらし撮像系を用いた装置の場合にも同様である。
この補間処理は、工夫しないと、最終的に得られるカラー画像にぼけや偽色などの劣化が生じることがある。そのために、従来より種々の方法による補間処理が提案されており、大別すると、エッジ検出の方法に基づくものと、色相関の方法に基づくものと、に分類される。
エッジ検出に基づく技術としては、例えば特開平8−298669号公報に記載のものが挙げられる。該公報に記載の技術について、図32を参照して説明する。図32は、エッジ検出に基づく従来の補間処理を説明するための図である。
単板撮像素子が、例えば図32(A)に示すような3原色ベイヤー(Bayer)配列の色フィルタを備えた単板ベイヤー配列撮像素子であるとする。このとき、図32(B)に示すように、注目画素であるB5の周囲に縦方向および横方向に沿った十字状の近傍をとって、該注目画素に対する水平方向のGに対する補間値Ghと、垂直方向のGに対する補間値Gvと、を次の数式1に示すように推定する。
[数1]
Gh=(G4+G6)/2+(2×B5−B3−B7)/4
Gv=(G2+G8)/2+(2×B5−B1−B9)/4
次に、水平方向と垂直方向との何れの方向に段差が多いかを示す評価値dH,dVを、次の数式2に示すように、
[数2]
dH=|G4−G6|+|B3−2×B5+B7|
dV=|G2−G8|+|B1−2×B5+B9|
と計算する。ここに、記号|x|は、xの絶対値を表している。こうして計算した評価値dH,dVの内の、値が小さくより平坦であると判断された方向の補間値Ghまたは補間値Gvを用いるようになっている。
一方、色相関に基づく技術としては、例えば特開平11−215512号公報に記載のものが挙げられる。この公報に記載の技術について、図33を参照して説明する。図33は、色相関に基づく従来の補間処理を説明するための図である。
図33に示すように、まず、注目画素Xの付近で、撮像素子に構成された色フィルタの色成分(例えば、原色系の色フィルタである場合にはr,g,b)の内の何れか2種類の色成分p,qの各成分値Vp ,Vq 同士の間に、係数αqp,βqpを用いて表現される次の数式3、
[数3]
Vq =αqp×Vp +βqp
のような直線的な相関関係が成立すると仮定する。ここに、撮像素子に構成された色フィルタが例えば原色系の色フィルタである場合には、p,qはr,g,bの何れかである。また、色成分p,qに各々対応する成分値Vp ,Vq は、注目画素Xの近傍の画素における値である。
そして、注目画素Xの周囲に設定した近傍Uにおいて、該近傍U内の画素を、得られている色成分r,g,bの種類により分類して3つの部分集合Ur,Ug,Ubを形成し、上記係数αqp,βqpを、各部分集合における画素値の平均Ac(ここに、cはr,g,bの何れか)と標準偏差Sc(ここに、cはr,g,bの何れか)とに基づいて、次の数式4により推定する。
[数4]
αqp=Sq /Sp , βqp=Aq −αqpAp
これは、色成分pの分布幅(標準偏差Sp )に対する色成分qの分布幅(標準偏差Sq )の比が、上記数式3に示した直線的な相関関係の傾きαqpを与え、さらに求められた傾きαqpの直線は、色成分pの平均値Ap と色成分qの平均値Aq とでプロットされる点を通るという考えに基づくものである。
そして、推定したαqp,βqpに基づき、注目画素Xにおいて欠落している色成分mの値Xm を、該注目画素Xにおいて得られている色成分eの値Xe から、次の数式5に示すようにして求める。
[数5]
Xm =αme×Xe +βme
ここに、m,eは、それぞれr,g,bの何れかをとる。
このように、色相関に基づく従来技術は、注目画素の近傍における異なる色成分間の画素値の相関を推定することを特徴としている。
特開平8−298669号公報
特開平11−215512号公報
ところで、実際の撮像系では、ライン間でゲインの差が生じたり、同じ色フィルタを有する画素同士であってもフィルタの分光特性が微妙に異なっていたりすることがあるために、同じ色成分が得られるはずの画素間に感度ばらつきが生じることがある。
しかし、上述した従来技術は、何れも、注目画素で得られている色成分自体を特に補正することなくそのまま補間処理の結果として用いているために、注目画素において欠落する色成分を求める際にも、注目画素自体の情報が結果にそのまま反映される特性となっている。通常は、各画素で元々得られている色成分の情報を、変更することなくそのまま補間処理の結果に使う方が効率が良いのであるが、同じ色成分が得られる画素で感度が異なっている場合には、このような処理を行うと、画素間の感度ばらつきがそのまま補間処理の結果に反映されてしまうことになり、うっすらと格子縞が見えるなどの副作用が生じていた。
本発明は上記事情に鑑みてなされたものであり、画素間の感度にばらつきがあったとしてもその影響を低減して高精度な補間処理を行い得る画像処理装置、画像処理プログラムを提供することを目的としている。
上記の目的を達成するために、第1の発明による画像処理装置は、単板撮像系、二板撮像系、または三板画素ずらし撮像系によって光学像を撮像することにより得られた各画素につき1種類以上の色成分が欠落している画像を処理する画像処理装置であって、注目画素の所定の近傍において指定された種類の色成分に対し当該色成分が得られている画素の間の感度差の大小を判定する判定手段と、上記注目画素において欠落する色成分を補う処理を行うものであって該処理を行う際に上記判定手段による判定結果に応じて処理内容を変更可能な補間手段と、を具備したものである。
さらに、第2の発明による画像処理装置は、上記第1の発明による画像処理装置において、上記補間手段が、上記注目画素で得られている色成分に対して、上記近傍内で当該色成分が得られている画素の中から基準画素を定め、上記注目画素の当該色成分に対する感度を上記基準画素の当該色成分に対する感度に合わせた場合に上記注目画素がとるはずの当該色成分の画素値を補正値として計算し、上記判定手段により判定された感度差の大小に応じて、上記注目画素の当該色成分の画素値を、上記補正値に変更するものである。
第3の発明による画像処理装置は、上記第1の発明による画像処理装置において、上記補間手段が、上記所定の近傍内の画素値を重み付け平均する重付平均手段を有して構成されており、該重付平均手段は、上記判定手段の判定結果に応じて重みを変更し重み付け平均により注目画素の画素値を算出するものである。
第4の発明による画像処理装置は、上記第3の発明による画像処理装置において、上記重付平均手段が、上記重みを、上記判定手段において感度差が大きいと判定された種類の色成分が得られている画素に対して小さくなるように変更するものである。
第5の発明による画像処理装置は、上記第3の発明による画像処理装置において、上記重付平均手段が、上記重みを、上記近傍内で同種の色成分が得られている画素間の画素値差分の関数式として計算するものであって、上記判定手段により特定の色成分に対して感度差が大きいと判定された場合には、該関数式を、当該色成分に関する上記画素値差分の影響が小さくなるように変更するものである。
第6の発明による画像処理装置は、上記第3の発明による画像処理装置において、上記重付平均手段が、上記判定手段において感度差があると判定された種類の色成分が得られている画素に対して、上記重みが当該画素間で均等に近付くように変更するものである。
第7の発明による画像処理装置は、上記第1の発明による画像処理装置において、上記判定手段が、上記注目画素の所定の近傍内の画素値から所定の特徴量を計算する特徴量計算手段を有して構成されており、該特徴量の大小に基づいて上記感度差の大小を判定するものである。
第8の発明による画像処理装置は、上記第7の発明による画像処理装置において、上記判定手段が、指定された色成分に関する上記特徴量と上記感度差の量とを対応付けたテーブルをさらに有して構成されており、該特徴量から該テーブルを参照することにより上記感度差の大小を判定するものである。
第9の発明による画像処理装置は、上記第7または第8の発明による画像処理装置において、上記判定手段が、上記近傍内において、指定された色成分が得られている画素を所定の方法で分類し、各分類における画素値の平均値と変動量とに基づき、上記特徴量を計算するものである。
第10の発明による画像処理装置は、上記第7または第8の発明による画像処理装置において、上記判定手段が、上記近傍内において、指定された色成分が得られている画素の画素値の平均値と、指定された色成分と異なる所定の色成分が得られている画素の画素値の平均値と、に基づいて、上記特徴量を計算するものである。
第11の発明による画像処理装置は、上記第1の発明による画像処理装置において、上記補間手段が、上記撮像系により得られる画像サイズを所定の縮小率で縮小したカラー画像を生成し得るように構成されたものであり、上記判定手段は、該補間手段が縮小したカラー画像を生成する際には、該縮小率が所定の閾値以下である場合に、感度差の判定を行わないものである。
第12の発明による画像処理プログラムは、コンピュータに、単板撮像系、二板撮像系、または三板画素ずらし撮像系によって光学像を撮像することにより得られた各画素につき1種類以上の色成分が欠落している画像を処理させるための画像処理プログラムであって、該コンピュータを、注目画素の所定の近傍において指定された種類の色成分に対し当該色成分が得られている画素の間の感度差の大小を判定する判定手段、上記注目画素において欠落する色成分を補う処理を行うものであって該処理を行う際に上記判定手段による判定結果に応じて処理内容を変更可能な補間手段、として機能させるための画像処理プログラムである。
本発明の画像処理装置、画像処理プログラムによれば、画素間の感度にばらつきがあったとしてもその影響を低減して高精度な補間処理を行うことが可能となる。
本発明の実施例1におけるデジタルカメラの構成を示すブロック図。
本発明の実施例2におけるデジタルカメラの構成を示すブロック図。
上記実施例2におけるG段差検出回路の処理を示すフローチャート。
上記実施例2におけるG段差検出回路およびG補間回路における画素の分類を示す図。
上記実施例2におけるG補間回路の処理を示すフローチャート。
上記図5に示したG補間回路の処理におけるステップS16の処理を説明するための図。
上記実施例2における重み計算回路による重み計算の方向を示す図。
上記実施例2におけるRB補間回路の処理を示すフローチャート。
上記図8に示したRB補間回路の処理におけるステップS31の画素選択を説明するための図。
上記実施例2において、コンピュータにより行われるソフト処理を示すフローチャート。
上記実施例2において、コンピュータにより行われるG補間ソフト処理を示すフローチャート。
上記実施例2において、コンピュータにより行われるRB補間ソフト処理を示すフローチャート。
本発明の実施例3におけるデジタルカメラの構成を示すブロック図。
上記実施例3における補正回路により処理を行う際に用いる画素の番号を示す図。
上記実施例3における補正回路の処理を示すフローチャート。
上記実施例3において、コンピュータにより行われるソフト処理を示すフローチャート。
本発明の実施例4におけるデジタルカメラの構成を示すブロック図。
上記実施例4における段差補正回路の一構成例を示すブロック図。
上記実施例4におけるG段差を説明するための図。
上記実施例4における段差補正回路の処理を示すフローチャート。
上記実施例4の段差補正回路における処理を行う際の近傍の例を示す図。
上記実施例4において、補正量△を求めるための関数の例を示す線図。
上記実施例4における段差補正回路の他の構成例を示すブロック図。
上記実施例4において、組み合わせ平均計算回路により計算される組み合わせ平均を説明するための図。
上記実施例4において、コンピュータにより行われるソフト処理を示すフローチャート。
本発明の実施例5におけるデジタルカメラの構成を示すブロック図。
上記実施例5における段差平滑化回路の一構成例を示すブロック図。
上記実施例5における段差平滑化回路の処理を示すフローチャート。
上記実施例5において、係数混合比αを算出するための関数の例を示す線図。
上記実施例5の係数設定回路により設定されるフィルタ係数の周波数特性を説明するための図。
上記実施例5における段差平滑化回路の他の構成例を示すブロック図。
エッジ検出に基づく従来の補間処理を説明するための図。
色相関に基づく従来の補間処理を説明するための図。
以下、図面を参照して本発明の実施例を説明する。
図1は本発明の実施例1を示したものであり、デジタルカメラの構成を示すブロック図である。
この実施例1は、本発明の画像処理装置をデジタルカメラに適用したものである。
デジタルカメラ1は、図1に示すように、光学系2と、単板ベイヤー配列CCD3と、単板画像バッファ4と、ライン補正回路5と、WB補正回路6と、補間回路7と、カラー画像バッファ8と、画質調整回路9と、記録回路10と、制御回路11と、を有して構成されている。
上記光学系2は、被写体光束を集光するためのものである。
上記単板ベイヤー配列CCD3は、この光学系2により結像される被写体像を光電変換して撮像信号を出力するものである。
上記単板画像バッファ4は、この単板ベイヤー配列CCD3から出力され図示しないA/D変換回路等によりデジタル化された画像データを一旦記憶するものである。
上記ライン補正回路5は、この単板画像バッファ4内に記憶されている画像に対して、ライン間でのゲインの違いを補正する感度補正手段である。
上記WB補正回路6は、このライン補正回路5から出力される画像データに、ホワイトバランス処理を行うものである。
上記補間回路7は、このWB補正回路6から出力される単板画像データにおいて各画素で欠落している色成分を、近傍画素の情報から補間することにより、カラー画像データを生成する補間手段である。
上記カラー画像バッファ8は、この補間回路7により補間された三板のカラー画像データを一旦記憶するためのものである。
上記画質調整回路9は、このカラー画像バッファ8に記憶されているカラー画像に対して、色変換やエッジ強調などの画質調整処理を行うものである。
上記記録回路10は、この画質調整回路9により画質を調整された三板のカラー画像データを記録するものである。
上記制御回路11は、上述したような各回路を含むこのデジタルカメラ1を統括的に制御するための制御手段である。
このようなデジタルカメラ1の作用は、以下のようになっている。
このデジタルカメラ1に設けられている図示しないシャッタボタンがユーザーにより押下されると、まず、光学系2による光学像が単板ベイヤー配列CCD3により撮像されて、各画素当たり一種類の色成分しかない単板状態の画像が単板画像バッファ4に記憶される。
次に、WB補正回路6が動作して、白色の被写体に対するR成分とG成分との比Crg、およびB成分とG成分との比Cbg、をそれぞれ計算してホワイトバランス係数とする。本実施例では、上記単板画像バッファ4から所定サイズのブロック毎に画素値を読み出して、このブロック内において、各画素で得られている色成分の種類別に画素値の平均をとる処理を行う。
その結果、各ブロックの平均色のRGB値が得られるが、さらにR成分とG成分との比、およびB成分とG成分との比を計算して、これらの比が所定の関係を満たしているブロックのみを選ぶ。そして、選んだブロックのR成分とG成分との比、およびB成分とG成分との比、をさらに平均して、最終的なホワイトバランス係数CrgおよびCbgを求める。この手法自体は公知のものである。ただし、この計算中、単板画像バッファ4から画素値を読み出す際に、ライン補正回路5が作用して、画素値の補正を行う。
すなわち、上記ライン補正回路5は、単板ベイヤー配列CCD3からの信号読み出し時に生じる偶数ラインと奇数ラインとの間のゲイン段差を補正するものであり、回路にはその補正のための係数(a,b)が保持されている。この係数は、均一なグレー被写体を撮影した際の単板画像バッファ4内の画素値に対して、奇数ラインでG成分が得られている画素の画素値の平均をV1、偶数ラインでG成分が得られている画素の画素値の平均をV2として、
[数6]
V2=a×V1+b
となるように予め算出されている。この係数を用いて、ライン補正回路5では奇数ラインでG成分が得られている画素の画素値vを、偶数ラインの感度に合わせて次の数式7に示すように補正して、
[数7]
v’=a×v+b
この補正後の画素値(補正値)v’をWB補正回路6に出力する。
上述したようなWB補正回路6の処理が終了すると、上記ホワイトバランス係数Crg,Cbgは、該WB補正回路6内に保持される。
次に、補間回路7が単板画像バッファ4内の各画素に対して補間処理を行う。この補間回路7が行う補間処理のアルゴリズムは、上述した特開平8−298669号公報に記載されているものと同様であるが、本実施例においては、単板画像バッファ4から5ラインずつ画素を読み出して補間回路7内の図示しない内部バッファに記憶させ、該バッファ内のデータに対して補間処理を行うようにしている。
そして、単板画像バッファ4から内部バッファにデータを移す際に、ライン補正回路5およびWB補正回路6が動作して、単板画像バッファ4から読み出した画素値が変更される。
その際は、まず、ライン補正回路5が単板画像バッファ4から読み出した画素値vに対する補正結果(補正値)v’として
[数8]
v’=a×v+b (読出画素が奇数ラインでG成分が得られている場合)
v’=v (その他の場合)
を計算し、さらに、WB補正回路6が、このライン補正回路5の補正結果(補正値)v’に対して出力v”を、
[数9]
v”=v’ (読出画素でG成分が得られている場合)
v”=Crg×v’ (読出画素でR成分が得られている場合)
v”=Cbg×v’ (読出画素でB成分が得られている場合)
と計算して、補間回路7の内部バッファにv”を書き込む処理を行う。
その後に、補間回路7によりカラー画像バッファ8に出力されたカラー画像は、画質調整回路9により色変換、エッジ強調、階調変換などの処理が施されて、上記記録回路10により図示しない記録媒体に記録される。このようにして、デジタルカメラ1の撮像動作が完了する。
なお、この実施例1は、基本的な構成や処理を述べたものであり、本実施例には多くの変形例が考えられる。上記補間回路7による処理は、色成分Gが得られている画素において、画素値をそのまま補間処理後のG成分の値として用いるものであれば何でも良い。
また、本実施例では単板撮像系を例に挙げたが、二板撮像系や三板画素ずらし撮像系に対しても同様の処理を適用することが可能である。
例えば二板撮像系の場合には、二枚の撮像素子の一方からは全画素でG成分が得られ、他方からは市松状にR成分とB成分とが得られる。例えばR成分に対する感度差の補正は、単板ベイヤー配列CCD3において市松状に得られるG成分に対して本実施例で述べた感度補正と同様の技術を適用することができる。
さらに、三板画素ずらし撮像系の場合には、3枚の撮像素子の内の2枚でG成分を取得し、残りの1枚で市松状にR,B成分を取得して、これらの情報から高精細な輝度成分を生成するタイプのものがある。この場合にも、市松状に得られるR,B成分の感度補正を、上述と同様に行うことができる。
このような実施例1によれば、同じ色成分が得られる画素の間で、特にライン間において感度が異なっていても、感度補正手段たるライン補正回路で補正してから補間手段たる補間回路の処理を行うようにしているために、補間後の画像に感度の相異が影響を及ぼすのを防いで、より高品質な画像を得ることができる。
図2から図12は本発明の実施例2を示したものであり、図2はデジタルカメラの構成を示すブロック図、図3はG段差検出回路の処理を示すフローチャート、図4はG段差検出回路およびG補間回路における画素の分類を示す図、図5はG補間回路の処理を示すフローチャート、図6は上記図5に示したG補間回路の処理におけるステップS16の処理を説明するための図、図7は重み計算回路による重み計算の方向を示す図、図8はRB補間回路の処理を示すフローチャート、図9は上記図8に示したRB補間回路の処理におけるステップS31の画素選択を説明するための図、図10はコンピュータにより行われるソフト処理を示すフローチャート、図11はコンピュータにより行われるG補間ソフト処理を示すフローチャート、図12はコンピュータにより行われるRB補間ソフト処理を示すフローチャートである。
この実施例2において、上述の実施例1と同様である部分については同一の符号を付して説明を省略し、主として異なる点についてのみ説明する。
この実施例2は、上述した実施例1と同様に、画像処理装置をデジタルカメラに適用したものである。
この実施例2のデジタルカメラ21は、該実施例1のデジタルカメラ1に対して、判定手段であり特徴量計算手段たるG段差検出回路22が付加されており、補間回路7に代えて補間手段たるG補間回路23、G画像バッファ26、および補間手段たるRB補間回路27を設けた点が異なっている。
また、上記G補間回路23は、上記G段差検出回路22からの出力に基づき補間対象の画素に関する重みを計算するための重付平均手段たる重み計算回路24と、この重み計算回路24により算出された重みに基づき重み付きの平均値を計算して補間対象の画素の画素値としG画像バッファ26へ出力する重付平均手段たる平均回路25と、を有して構成されている。
次に、このようなデジタルカメラ21の作用を、上述した実施例1と異なる点を主として説明する。
シャッタボタンがユーザーにより押下されると、上記実施例1と同様に、光学系2による光学像が単板ベイヤー配列CCD3により撮像されて、各画素当たり一種類の色成分しかない単板状態の画像が単板画像バッファ4に記憶される。
次に、ライン補正回路5およびWB補正回路6が上記実施例1と同様に動作して、ホワイトバランス係数Crg,Cbgが算出される。
次に、G補間回路23が動作する。このときには、まず、単板画像バッファ4に記憶されている画像データに係る各画素の、周囲5×5画素でなるブロックがこのG補間回路23に設けられている内部バッファに読み込まれる。その際に、上述した実施例1と同様に、ライン補正回路5とWB補正回路6とが作動して、画素値の補正がなされ、さらにG段差検出回路22が作動して、G成分が得られる画素の偶数ラインと奇数ラインとの間の段差の推定値が計算される。
このG段差検出回路22による段差推定について、図3のフローチャートに沿って説明する。
G段差検出回路22は、内部バッファに読み込まれた5×5画素でなるブロック内の各画素を、得られている色成分毎に分類して、分類毎に画素値の平均値を計算する。その際に、G成分については、図4に示すように、水平方向に隣接する画素から得られる色成分がRである場合をG1、水平方向に隣接する画素から得られる色成分がBである場合をG2、として、さらに2種類に分類する。従って、計算される平均値は4種類となり、R成分の平均値がAr 、B成分の平均値がAb 、G1成分の平均値がAg1、G2成分の平均値がAg2、である。そして、G1またはG2に分類された画素については、各分類内の画素値の分散Vg1,Vg2もそれぞれ計算する(ステップS1)。
次に、上記分散Vg1,Vg2が、両方ともある閾値T以下であるか否かを判断する(ステップS2)。
ここで両方とも閾値T以下であって、ブロックが比較的平坦であると判断された場合には、段差推定値dを分類G1とG2の平均値の差Ag1−Ag2として、終了する(ステップS3)。
また、上記ステップS2において、分散Vg1,Vg2の少なくとも一方が閾値Tを越える場合には、ブロックが平坦であるかどうかが不明である。そこでさらに、ブロック内においてR成分とB成分とがおよそどれだけ違っているかを、R成分が得られている画素の平均値Ar と、B成分が得られている画素の平均値Ab と、の差分|Ar −Ab |が、所定の閾値Trbよりも大きいか否かにより評価する(ステップS4)。
ここで、上記差分|Ar −Ab |が閾値Trbよりも大きい場合には、以下のような処理を行う。
まず、本実施例においては、上記G段差検出回路22が、種々の色の被写体を撮影して各画像でライン間のG成分に段差dがどれだけ生じるかを測定することにより得られたテーブルTdを、予め保持している。これは、上記WB補正回路6で処理する前にライン補正回路5によって画像データに係るライン間の感度補正がなされていても、ラインの偶奇に応じて、G成分が得られている画素の画素値に段差が生じることがあるためである。
そして、R成分が得られている画素の平均値Ar とB成分が得られている画素の平均値Ab との差p1(特徴量)と、G1,G2の両方を含むG成分の平均的な大きさp2(特徴量)と、の2つのインデックスに対して、生じ得るG段差量dを、d=Td(p1,p2)のようにテーブル参照して、取得する。ここでは、このテーブル参照を行ってG段差量のおよその推定値dを求めたら、このG段差検出の処理を終了する(ステップS5)。
また、上記ステップS4において、上記差分|Ar −Ab |が閾値Trb以下である場合には、G段差が生じているとしても、それがどの程度あるのかをブロック内のデータからは推定することができないために、G段差量dを、推定不能を表す−255に設定して、終了する(ステップS6)。
このようにして、5×5画素でなるブロックの読み出しと、ライン間のG成分の段差量の推定値dと、が得られると、G補間回路23が、ブロックの中心画素のG成分を計算して、G画像バッファ26に書きこむ。このような処理について、図5のフローチャートを参照して説明する。
処理を開始すると、ブロックの中心画素の分類mが、上記図4に示した分類におけるG1であるか否かを判断する(ステップS11)。この分類mは、該図4に例示したように、得られている色成分の種類と水平隣接画素の種類とに応じて、R,G1,G2,Bの4種類の何れかになる。
ここで分類mがG1である場合には、中心画素のG成分の値Vを、ブロックの中心画素の画素値U0 そのものとして(ステップS12)、終了する。
また、上記ステップS11において、ブロックの中心画素の分類mがG1でない場合には、該分類mが図4に示した分類におけるG2であるか否かをさらに判断する(ステップS13)。
ここでブロックの中心画素の分類mがG2である場合には、G段差推定値dが−255であるか否か、つまり推定不能に設定されているか否かを判断する(ステップS14)。
G段差推定値dが−255でない場合には、中心画素のG成分の値Vを、ブロック中心画素の画素値U0 とG段差推定値dとに基づいてV=U0 +dと推定し(ステップS15)、終了する。
一方、上記ステップS14において、G段差推定値dが−255である場合には、中心画素(画素値がU0 となっている画素)に対する3×3画素の近傍を図6に示すようにとり、この近傍の四隅にあるG成分が得られている画素の画素値U1 〜U4 と、該中心画素の画素値U0 との差分dujを、以下のように計算する。
duj=|U0 −Uj |
ここにjは、1から4の整数である。これらの差分の内の、最小の差分を与えるjについて、V=(U0 +Uj )/2を中心画素のG成分の値とし(ステップS16)、終了する。
上記ステップS13において、ブロックの中心画素の分類mがG2でない場合には、G段差推定値dが−255であるか否か、つまり推定不能に設定されているか否かを判断する(ステップS17)。
ここでG段差推定値dが−255でない場合には、ブロック内のG2に分類された画素kの画素値Uk を、Uk =Uk +dと補正する(ステップS18)。
また、上記ステップS17においてG段差推定値dが−255である場合には、後述するステップS20の計算で用いるパラメータαを、予め設定された値に対して1/2倍するとともに、該ステップS20の計算で用いるパラメータβを、予め設定された値に対して2倍する(ステップS19)。
上記ステップS18またはステップS19が終了したら、重み計算回路24が、図7(A)〜図7(D)に示すような中心画素の上下左右の各方向の重みWj(jは1から4の整数)を以下の数式10に示すように計算する。
[数10]
E1=|B5−B7|
+α×(|G4−G6|−min(|G4−G6|,|G2−G8|))
+β
E2=|B5−B9|
+α×(|G2−G8|−min(|G4−G6|,|G2−G8|))
+β
E3=|B5−B3|
+α×(|G4−G6|−min(|G4−G6|,|G2−G8|))
+β
E4=|B5−B1|
+α×(|G2−G8|−min(|G4−G6|,|G2−G8|))
+β
Wj=(1/Ej)/(Σ(1/Ek))
この数式10におけるα,βは定数であり、予め定められた値、または上記ステップS19において変更された値をとる。また、Wの計算におけるjは上述したように1から4の整数、分母の和は1から4の整数kに対してとっている。なお、この計算式は、図7(A)〜図7(D)の配置に対するものであり、中心画素の分類がBであるときの例であるが、中心画素の分類がRである場合には、BとRとを置き換えて計算をすれば良い(ステップS20)。
次に、平均回路25が、上記ステップS20において計算した重みWj を用いて、各方向にある画素の画素値を重み付けして、以下の数式11により最終的な中心画素のG成分を計算する(ステップS21)。
[数11]
Vg =W1×G6+W2×G8+W3×G4+W4×G2
Vb =W1×B7+W2×B9+W3×B3+W4×B1
V =Vg +(Vb −B5)/2
このような一連の処理が単板画像バッファ4内の画像の全画素に対して終了すると、G画像バッファ26にはG成分の欠落が補われた画像が得られる。すると、次にRB補間回路27が動作して、全ての画素で欠落色成分のないカラー画像を生成しカラー画像バッファ8に記憶させる。
すなわち、RB補間回路27は、G補間回路23と同様に、単板画像バッファ4内の各画素に対して、まず、該画素を中心とする5×5画素でなるブロックを読み出す。この読み出し時には、G補間回路23と同様に、ライン補正回路5、WB補正回路6、およびG段差検出回路22が作動して、5×5画素でなるブロックの変更後の画素値が該RB補間回路27の図示しない内部バッファに得られるとともに、ブロック内のG段差推定値dも得られる。
次に、RB補間回路27は、読み出したブロックに対応する画素位置のG成分の値をG画像バッファ26から読み出して、同様に図示しない内部バッファに記憶する。
その後、RB補間回路27は、図8に示すような処理により、中央画素の欠落色成分を求める。この図8に示す処理は、ブロックの中央画素に対する指定された色成分cの値を、内部バッファのデータから重み付け平均により計算するものである。
このとき、画素位置によって欠落する色成分が異なるために、RB補間回路27は、ブロックの中央画素の分類が、Rの場合にはc=Bとして、Bの場合にはc=Rとして、G1またはG2の場合にはc=Rおよびc=Bの各々の指定に対して、図8に示す処理を実行するようになっている。
以下では、図8に示す処理を順に説明する。
処理を開始すると、ブロック内において、指定された色成分cが得られている画素P1 〜Pn (nは整数)を求める(ステップS31)。図9(B)は、図9(A)に示すような配置のブロックにおけるc=Rに対する結果を示したものである。この場合には、画素P1 〜P6 が得られるために、nは6となる。
次に、ブロック内のG段差推定値dが−255,つまり推定不能に設定されているか否かを判断する(ステップS32)。
ここで、G段差推定値dが−255である場合には、後述するステップS34の計算で用いるパラメータγを予め設定された値の2倍にするとともに、後述するステップS35の計算で用いるパラメータδを予め設定された値の半分にする(ステップS33)。
このステップS33の処理が終了するか、または、上記ステップS32においてG段差推定値dが−255でない場合には、画素Pjに割り当てる重みWjを、以下の数式12に示すように計算する(ステップS34)。
[数12]
Ej =|Gj −G0 |+γ
Wj=(1/Ej)/(Σ(1/Ek))
ここに、Wの計算におけるjは1から4の整数、分母の和は1から4の整数kに対してとっている。また、γは定数であり、予め定められた値、または上記ステップS33で変更された値をとる。
次に、中央画素における欠落色成分cの値Vを、以下の数式13に示すように計算する。この数式13において、CjおよびGjは、画素Pjにおいて得られている色成分cおよびGの値である(ステップS35)。
[数13]
Vc =ΣWj ×Cj (jは1からnの整数)
Vg =G0−ΣWj ×Gj (jは1からnの整数)
V =Vc +δ×Vg
ここにδは定数であり、予め定められた値、または上記ステップS33で変更された値をとる。
ここまでの処理が単板画像バッファ4内の画像の全ての画素に対して終了すると、カラー画像バッファ8には全画素で欠落色成分が復元されたカラー画像、すなわち、いわゆる三板のカラー画像が得られる。
その後の作用は上述した実施例1と同様であり、得られたカラー画像が画質調整回路9により色変換、エッジ強調、階調変換などの処理を施され、記録回路10により図示しない記録媒体に記録されて、このデジタルカメラ21の撮像動作が完了する。
なお、上述では、画像処理装置であるデジタルカメラ21の内部のハードウェア(回路等)により処理を行うようにしているが、このような処理を、PC(パーソナルコンピュータ)等のコンピュータ上で画像処理プログラムにより行うようにすることも可能である。図10〜図12はコンピュータにより行われるソフト処理の例を示すフローチャートである。
このソフトウェア処理は、メモリInImgに記憶されている画像、つまり、単板ベイヤー配列CCD3により得られた直後の、各画素で一種類の色成分しか得られていない画像、を処理して、メモリOutImgに3色カラー画像を出力するものである。ただし、ホワイトバランス係数Cr,Cbおよびライン間のゲイン補正係数a,bは、パラメータとして与えられるものとする。
以下では、図10〜図12のフローチャートの各ステップについて説明する。
まず、図10は、ソフト処理の流れの概要を示している。
すなわち、処理を開始すると、この処理の途中で全画素に対するG成分をまず計算することになるために、該計算結果を記憶するためのメモリGimgを確保する(ステップS41)。
次に、後で図11を参照して説明するようなG補間ソフト処理を実行する(ステップS42)。
さらに、後で図12を参照して説明するようなRB補間ソフト処理を実行する(ステップS43)。
その後、確保したメモリGimgを開放してから(ステップS44)、このソフト処理を終了する。
次に、図11を参照して、上記ステップS42におけるG補間ソフト処理の詳細について説明する。
処理を開始すると、メモリInImg内に未処理の画素が存在するか否かを判断する(ステップS51)。
ここで、メモリInImg内に未処理の画素が存在している場合には、該未処理の画素の内の1つを処理対象画素として決定し、この処理対象画素を中心とした5×5画素でなるブロックの画像データを読み出す(ステップS52)。
そして、上記数式8を計算することによりライン間補正を行うとともに上記数式9を計算することによりWB補正を行う(ステップS53)。
さらに、上記図3に示したようなG段差推定処理を行うことにより、段差推定値dを計算する(ステップS54)。
このG段差推定結果に基づいて図5に示したようなG補間処理を行い(ステップS55)、処理後のG補間結果VをメモリGimg中の処理対象画素に対応する位置の画素値として記録してから(ステップS56)、上記ステップS51に戻る。
また、上記ステップS51において、メモリInImg内の画像の処理が全て終了している場合には、この処理を終了する。
続いて、図12を参照して、上記ステップS43におけるRB補間ソフト処理の詳細について説明する。
処理を開始すると、メモリInImg内に未処理の画素が存在するか否かを判断する(ステップS61)。
ここで、メモリInImg内に未処理の画素が存在している場合には、該未処理の画素の内の1つを処理対象画素として決定し、この処理対象画素を中心とした5×5画素でなるブロックの画像データをメモリInImgおよびメモリGimgからそれぞれ読み出す(ステップS62)。
そして、上記数式8を計算することによりライン間補正を行うとともに上記数式9を計算することによりWB補正を行う(ステップS63)。
さらに、上記図3に示したようなG段差推定処理を行うことにより、段差推定値dを計算する(ステップS64)。
その後、ブロックの中央画素の種類がRであるか否かを判断し(ステップS65)、Rでない場合には、c=Rとしてから上記図8に示したようなRB補間処理を行い、その補間結果をメモリOutImgの対応する画素のR成分として記録する(ステップS66)。
このステップS66が終了するか、または上記ステップS65において中央画素の種類がRである場合には、ブロックの中央画素の種類がBであるか否かを判断する(ステップS67)。
ここで、中央画素の種類がBである場合には、そのまま上記ステップS61へ戻り、一方、中央画素の種類がBでない場合には、c=Bとしてから上記図8に示したようなRB補間処理を行い、その補間結果をメモリOutImgの対応する画素のB成分として記録してから(ステップS68)上記ステップS61へ戻る。
そして、上記ステップS61において、メモリInImg内の画像の処理が全て終了している場合には、この処理を終了する。
なお、この実施例は幾つかの変形が可能である。好ましい変形例の一つは、G補間回路23およびRB補間回路27が単板画像バッファ4に保持される画像よりも画素数の少ない画像を生成する機能を有するものであって、該機能を働かせる場合に、G段差検出回路22の処理をスキップすることである。画素数を少なくして出力するモードは、デジタルカメラにおいては標準的に備えられたものであり、この場合には、G補間回路23およびRB補間回路27が単板画像バッファ4から画素を間引いて読み出しながら処理することになる。すると、G画素に感度差があっても処理結果への影響が少なくなるために、間引き率に応じて(つまり、縮小率が所定の閾値以下である場合に)G段差検出回路の処理を中止し、段差推定値としてd=−255を出力するようにすることにより、処理効率を向上し消費電力を低減することが可能となる。
また、本実施例では単板撮像系を例に挙げたが、二板撮像系や三板画素ずらし撮像系に対しても同様の処理を適用することが可能である。
例えば二板撮像系の場合には、二枚の撮像素子の一方からは全画素でG成分が得られ、他方からは市松状にR成分とB成分とが得られる。このときには、図3のステップS1からステップS3の処理を変更して、偶数ラインのR画素と奇数ラインのR画素との間の平均値の差を検出して、その検出量に応じて感度差補正を行うようにすれば良い。
さらに、三板画素ずらし撮像系の場合には、3枚の撮像素子の内の2枚でG成分を取得し、残りの1枚で市松状にR,B成分を取得して、これらの情報から高精細な輝度成分を生成するタイプのものがある。この場合にも、市松状に得られるR,B成分の感度補正を、上記二板撮像系の場合と同様に行うことができる。
そして、感度補正をG成分以外のこうしたR成分やB成分について行うときには、上記テーブルは、指定された色成分に対する特徴量と感度差の量とを対応付けたテーブルとなるのは勿論である。
また、重付平均手段たる重み計算回路24および平均回路25における重みの計算法は、重みが、判定手段である上記G段差検出回路22において感度差が大きいと判定された種類の色成分が得られている画素に対して小さくなるようなものであれば他の方法に変更しても良い。例えば、重みの計算式は、数式10以外に、上記近傍内で同種の色成分が得られている画素間の画素値差分に対する他の形の関数式でも良い。但し、上記G段差検出回路22により特定の色成分に対して感度差が大きいと判定された場合には、該関数式は、当該色成分に関する上記画素値差分の影響が小さくなるように変更することが望ましい。さらに、上記G段差検出回路22において感度差があると判定された種類の色成分が得られている画素に対する重みの計算は、最終的にG画素間の重みが均等に近づくように計算されることが望ましく、それは数式10ではβの調整で実現できているが、もちろん他の計算式を用いても良い。
このような実施例2によれば、上述した実施例1と同様に、同じ色成分が得られる画素で感度が異なっていても、感度補正手段で補正してから補間手段の処理を行うようにしているために、補間後の画像に感度の相異が影響を及ぼすのを防いで、より高品質な画像を得ることができる。
その上、この実施例2によれば、補間手段による処理を行う前に、判定手段により同じ色成分が得られる画素に大きな感度差があるか否かを判定して、大きな感度差があると判断された場合に、補間手段の処理を、該感度差の影響を受け難い処理に変更しているために、つまり、元々得られている色成分の値を注目画素の感度が所定の基準感度である場合にとるはずの値に補正して補間結果に用いるような処理に変更しているために、処理効率をあまり落とすことなく、最終的に得られる画像の画質を向上することができる。
さらに、感度差の有無に応じて補間処理の際の重みを変更するようにしているために、感度差があると判断された部分とそうでない部分との画質が大きく切り替わらない自然な処理を、簡単な処理回路で行うことが可能となる。
その際、感度の異なる画素の重みが互いに等しくなるような計算を行っているために、結果として副作用を少なくすることができる。
また、この補間処理では、複数の色成分の情報を用いて欠落する色成分の値を推定しているが、その際に感度の異なる画素を含む色成分に対する情報の利用の割合を小さくするようにしているために、格子縞が見えるなどの副作用を起き難くすることができる。
さらに、重み計算を同色画素の差分に基づいて行っているが、その計算においても、データとして信頼性が低い、感度差のある同色画素の差分の影響を小さくするようにしているために、結果的に生じる副作用を抑制することができる。
加えて、感度差を生じる原因には種々のものがあるが、注目画素の近傍における画素値のパターンが特定の条件を満たす場合に感度差が生じ易いことがあるために、該近傍がこうしたパターンとなっているかどうかを特徴量を使って判定して、該パターンであると判断される率が高いほど感度差も大きいと判断することにより、局所的に生じる感度差に対しても副作用が生じないように処理することを可能にしている。
その際、感度差を生じ易い近傍の画素値パターンに関して、該パターンに対して生じる感度差とパターンの特徴量とを関連付けてテーブルとして保持しておくことにより、感度差の大小をより確実に判断することができる。
また、感度差を生じる画素の位置関係が分かっていることを利用して、位置毎に別々に統計を取って、その結果同士を比較しているので、感度差が生じているか否かを確実に判断することができる。例えばベイヤー配列の場合には、隣接するR,Bからの電荷の漏れに影響されて、ライン間のGに感度差を生じることがあるが、このような段差を検出することが可能となる。
さらに、画素数を減らして結果を記録する場合には、最終的に感度差に起因する副作用が目立たなくなることを利用して、感度差判定処理をスキップしているために、処理の効率を向上させている。
図13から図16は本発明の実施例3を示したものであり、図13はデジタルカメラの構成を示すブロック図、図14は補正回路により処理を行う際に用いる画素の番号を示す図、図15は補正回路の処理を示すフローチャート、図16はコンピュータにより行われるソフト処理を示すフローチャートである。
この実施例3において、上述の実施例1,2と同様である部分については同一の符号を付して説明を省略し、主として異なる点についてのみ説明する。
この実施例3は、上述した実施例1と同様に、画像処理装置をデジタルカメラに適用したものである。
この実施例3のデジタルカメラ31は、該実施例1のデジタルカメラ1に対して、補間後補正手段たる補正回路32を、カラー画像バッファ8と画質調整回路9との間に付加したものとなっている。
次に、このようなデジタルカメラ31の作用を、上述した実施例1と異なる点を主として説明する。
シャッタボタンがユーザーにより押下されると、上記実施例1と同様に、光学系2による光学像が単板ベイヤー配列CCD3により撮像されて、各画素当たり一種類の色成分しかない単板状態の画像が単板画像バッファ4に記憶される。
次に、ライン補正回路5およびWB補正回路6が動作するが、その作用は上記実施例1と同様であり、ライン間の感度補正を行いながらホワイトバランス係数Crg,Cbgを算出して保持する。
続いて、補間回路7が、単板画像バッファ4内の各画素に対して補間処理を行うが、これも実施例1と同様であり、各画素の欠落色成分が補われたカラー画像が、カラー画像バッファ8に得られる。
その後に、補正回路32が処理を行う。この補正回路32は、カラー画像バッファ8中の各画素を順にスキャンして、各画素の3×3画素でなる近傍を読み出し、図15に示すような処理を行うことにより、中央画素の補正RGB値を画質調整回路9に出力するものである。
以下では、図15のフローチャートの各ステップについて説明する。
処理を開始すると、3×3画素でなる近傍内の各画素に対して、RGB成分から輝度値Yを計算する(ステップS71)。この輝度値の計算には、次のような標準的な定義式、
Yj =0.3×Rj +0.6×Gj +0.1×Bj
を用いる。なお、各画素に対しては、図14に示すような番号が割り振られる。以下では、各画素に関する値を、その画素番号の沿え字を用いてj=0〜8などと表すことにする。
次に、中央画素と周辺画素との輝度差(これは、注目画素の画素値と近傍画素の画素値との相関を示している。)を
dYj =|Y0−Yj |
として計算する(ステップS72)。ここにjは、1から8の整数である。
そして、以下の条件(1),(2)、
(1)dYk1はdY0 からdY8 の内で一番小さい
(2)dYk2はdY0 からdY8 の内で2番目に小さい
を満たすような整数k1,k2を探す(ステップS73)。
次に、所定の閾値T1,T2に対して、dYk1がT1よりも大きく、かつdYk2−dYk1がT2よりも小さくなるか否かを調べる(ステップS74)。この条件は、満たされた場合に、中央画素が孤立点であると知覚される確率が高いことを示す条件となっている。
ここで、条件が満たされて孤立点と判断された場合には、中央画素に対する補正値(R0’,G0’,B0’)を、以下の数式14によって計算して、
[数14]
R0’=(Rk1+Rk2)/2
G0’=(Gk1+Gk2)/2
B0’=(Bk1+Bk2)/2
この計算結果を出力し終了する(ステップS75)。
一方、上記ステップS74において、条件が満たされていない場合には、中央画素のRGB画素値を無補正のまま出力して(ステップS76)、終了する。
こうして画質調整回路9に出力された補正RGB値は、上述した実施例1と同様に、画質調整回路9で調整された後に記録回路10により記録され、全ての処理が終了する。
なお、上述では、画像処理装置であるデジタルカメラ31の内部のハードウェア(回路等)により処理を行うようにしているが、このような処理を、PC(パーソナルコンピュータ)等のコンピュータ上で画像処理プログラムにより行うようにすることも可能である。
このソフトウェアは、上述した実施例2において図10〜図12を参照して説明したものと同様に、メモリInImgに記憶されている画像、つまり、単板ベイヤー配列CCD3により得られた直後の、各画素で一種類の色成分しか得られていない画像、を処理して、メモリOutImgに3色カラー画像を出力するものである。ただし、ホワイトバランス係数Cr,Cbおよびライン間のゲイン補正係数a,bは、パラメータとして与えられるものとする。
以下では、図16のフローチャートの各ステップについて説明する。この図16は、ソフト処理の流れを示したものである。
この処理を開始すると、まず、補間処理における中間結果を保持しておくためのメモリtmpimgを確保する(ステップS81)。
次に、メモリInImg内に未処理の画素が存在するか否かを判断する(ステップS82)。
ここで、未処理の画素が存在する場合には、該未処理の画素の内の1つを処理対象画素として決定し、この処理対象画素を中心とした5×5画素でなるブロックを上記メモリInImgから読み出す(ステップS83)。
そして、メモリInImgから読み出したブロック内の画素に対して、上記数式8による計算を行うことによりライン間補正を行うとともに、上記数式9による計算を行うことによりWB補正を行う(ステップS84)。
続いて、公知の方法により補間処理を行って、各画素についてRGBの3色成分を生成する(ステップS85)。
その後、補間処理の結果をtmpimg内の対応画素位置に記録して(ステップS86)、上記ステップS82に戻り他の画素の処理に移行する。
一方、上記ステップS82において、メモリInImg内に未処理の画素が存在しない場合には、さらに、メモリtmpimg内に補正処理を受けていない画素が存在するか否かを判断する(ステップS87)。
ここで、補正処理が行われていない画素が存在する場合には、この未補正処理の画素を中心とした3×3画素でなる近傍のデータをメモリtmpimgから読み出して(ステップS88)、上記図15に示したような補正処理を行い(ステップS89)、この補正処理の結果をメモリOutImgの対応画素位置に記録してから(ステップS90)、上記ステップS87へ戻って次の未処理の画素の処理へ移行する。
また、上記ステップS87において、メモリtmpimg内に補正処理を受けていない画素が存在しない場合には、tmpimgとして確保していたメモリ領域を開放してから(ステップS91)、終了する。
なお、この実施例は幾つかの変形が可能である。好ましい変形例の一つは、補間回路7が単板画像バッファ4に保持される画像よりも画素数の少ない画像を生成する機能を有するものであって、該機能を働かせる場合に、補正回路32の処理をスキップすることである。画素数を少なくして出力するモードは、上述したように、デジタルカメラにおいては標準的に備えられたものであり、この場合には、補間回路7が単板画像バッファ4から画素を間引いて読み出しながら処理することになる。すると、G画素に感度差があっても処理結果への影響が少なくなるために、間引き率に応じて(つまり、縮小率が所定の閾値以下である場合に)補正回路32の処理を中止するようにすることで、画質に影響を及ぼすことなく、処理効率を向上し消費電力を低減することが可能となる。
また、本実施例では単板撮像系を例に挙げたが、二板撮像系や三板画素ずらし撮像系に対しても、各方式に応じた補間処理でカラー画像を得た後に、同様の補正処理を行うことが可能である。
このような実施例3によれば、上述した実施例1,2とほぼ同様の効果を奏するとともに、画素間の感度差によって生じる可能性がある副作用を、補間処理を感度差に応じて変更して防ぐのではなく、補間処理後に生じる可能性のありそうな副作用のパターンを直接補正するようにしたために、画質の改善をより簡易的に行うことができる。
また、近傍画素と注目画素とが調和しているか否かを、相関により調べて、調和度の高い近傍画素の画素値を注目画素の画素値に混合するようにしているために、副作用を良好に減らすことができる。
さらに、画素数を減らして結果を記録する場合には、最終的に感度差に起因する副作用が目立たなくなることを利用して、補間後の補正処理をスキップしているために、処理の効率を向上することができる。
図17から図25は本発明の実施例4を示したものであり、図17はデジタルカメラの構成を示すブロック図、図18は段差補正回路の一構成例を示すブロック図、図19はG段差を説明するための図、図20は段差補正回路の処理を示すフローチャート、図21は段差補正回路における処理を行う際の近傍の例を示す図、図22は補正量△を求めるための関数の例を示す線図、図23は段差補正回路の他の構成例を示すブロック図、図24は組み合わせ平均計算回路により計算される組み合わせ平均を説明するための図、図25はコンピュータにより行われるソフト処理を示すフローチャートである。
この実施例4において、上述の実施例1〜3と同様である部分については同一の符号を付して説明を省略し、主として異なる点についてのみ説明する。
この実施例4は、上述した実施例1と同様に、画像処理装置をデジタルカメラに適用したものである。
この実施例4のデジタルカメラ41は、図17に示すように、該実施例1のデジタルカメラ1に対して、ライン補正回路5に代えて段差補正回路43とノイズ低減回路44とを設けたものとなっている。また、単板ベイヤー配列CCD3と単板画像バッファ4との間には、該単板ベイヤー配列CCD3から出力されるアナログの映像信号をゲイン調整してからデジタルの映像信号に変換するためのA/D変換回路42が明示して設けられているが、これは上述した第1から第3の実施例のデジタルカメラにおいても同様に設けられていて、ただ単に図示を省略していただけのものである。そして、これらA/D変換回路42、段差補正回路43、およびノイズ低減回路44は、上記制御回路11により制御されるようになっている。
上記段差補正回路43は、単板画像バッファ4内に記憶されている画像に対して、G成分の感度差補正を行うためのものである。
上記ノイズ低減回路44は、この段差補正回路43から出力される信号にノイズ低減処理を行うためのものである。
上記段差補正回路43は、より詳しくは図18に示すように、補正回路51と、平均計算回路52と、段差量推定回路53と、補正量算出回路54と、を有して構成されている。
上記平均計算回路52は、上記単板画像バッファ4から所定サイズのブロック単位で画像データを読み出して、注目画素以外のG成分の平均値を算出するものである。
上記段差量推定回路53は、上記平均計算回路52により算出された平均値と、注目画素のG成分値と、の差を算出することにより、感度差の量を推定するものである。
上記補正量算出回路54は、上記単板画像バッファ4から読み出したブロック単位の画像データから特徴量を算出し、該特徴量に基づいて閾値を求め、この閾値と、上記段差量推定回路53により推定されたG成分の感度差の量と、に基づいて、上記単板画像バッファ4からブロック単位で読み出した画像データの感度差補正量を計算するものである。
上記補正回路51は、上記補正量算出回路54により計算された感度差補正量に基づいて、注目画素のG成分値を感度差補正し、上記ノイズ低減回路44へ出力するものである。
このようなデジタルカメラ41の作用について、上述した各実施例と異なる部分を説明する。
段差補正回路43は、単板画像バッファ4の各画素毎に、近傍3×3サイズのブロック領域を読み出す。そして、読み出した3×3サイズのブロック領域の中心に位置する画素を注目画素とする。該段差補正回路43は、注目画素の色成分がG成分である場合にのみ、以下に示すように段差補正処理を行うようになっている。
また、ここで、図19を参照して、G段差について説明する。単板ベイヤー配列CCD3は、図19(A)に示すような色フィルタ配列を有しているが、センサの特性上、ある撮影条件下では、図中の奇数行目のG画素(Grと記載している)と、偶数行目のG画素(Gbと記載している)と、の間に、同じG成分取得用であるにも関わらず、感度差が付いてしまうことがある。すなわち、例えば全ての画素について「128」の出力値が得られるような平坦な被写体を撮影した場合でも、図19(B)に示すように、Grからは「180」の画素値が得られ、Gbからは「100」の画素値が得られて、GrとGbとの画素値に差が生じてしまうことがある。このような差のことを、以下ではG段差と呼ぶことにする。
段差補正回路43は、図20に示したような流れに沿って、このG段差を補正して、補正された画素値を出力するようになっている。
すなわち、段差補正回路43は、図20に示す処理を開始すると、まず、読み出した近傍ブロックの中心画素がGrまたはGbの何れかであるか否かを判断する(S101)。
ここで、中心画素がGrまたはGbの何れかである場合には、平均計算回路52が、次の数式15に示すように、図21に示すような画素配列の4隅に位置するG画素G0〜G3の平均値Ag(特徴量)を算出して、段差量推定回路53へ出力する。
[数15]
Ag=(G0+G1+G2+G3)/4
段差量推定回路53は、上記平均計算回路52により算出された平均値Agと、近傍ブロックの中心画素G4の値との差を、次の数式16に示すように感度差の量たる段差量dとして算出し、算出した段差量dを補正量算出回路54へ出力する(S102)。
[数16]
d=Ag−G4
補正量算出回路54は、まず、近傍ブロックに含まれるR画素の平均値R’(特徴量)とB画素の平均値B’(特徴量)とを算出する。そして、補正量算出回路54は、これらの平均値R’,B’をインデックスにして、該補正量算出回路54の内部ROMに記憶されている予測テーブル(ルックアップテーブル:LUT)を参照することにより、適切な段差補正を行うための補正量の閾値F(感度差の量)を求める(S103)。なお、上記予測テーブルは、種々の照明条件で種々の被写体を撮影した際の、Gr画素とGb画素との間に生じた段差量の上限値と、周囲のR画素値およびB画素値と、の関係を予め整理して作成されたものである。
次に、補正量算出回路54は、上述したように算出した補正量の閾値Fと、上記段差量推定回路53により推定された段差量dと、に基づいて、G段差を実際に補正するために適切な補正量△(感度差補正量)を算出する(S104)。この算出も、該補正量算出回路54の内部ROMに記憶されているテーブルを参照することにより、行うようになっている。この内部ROMに記憶されているテーブルは、例えば、図22に示すような関数f(所定の関数)を離散近似して作成されたテーブルとなっている。この関数f(x;p)は、pをパラメータとする独立変数xの関数であり、|x|がp以下のときにf(x;p)=x、|x|がαp(閾値)以上のときに0となるような関数である。なお、|x|がpよりも大きく、αp(閾値)よりも小さいときには、これらを連続に結ぶ(例えば直線で結ぶ)ような関数形状となっている。ここに、|x|はxの絶対値を示し、αは予め定められた1以上の定数となっている。補正量算出回路54は、このような関数fに対応するテーブルをx=d,p=Fとして参照することにより、実質的に△=f(d;F)として補正量△を求め、求めた補正量△を上記補正回路51へ出力する。
続いて、補正回路51は、次の数式17に示すように、上記補正量算出回路54から得られた補正量△の半分を、中央画素値G4から減算して最終的な段差補正値G4’を算出し、
[数17]
G4’=G4−△/2
その後に、この値G4’を中央画素値として、上記ノイズ低減回路44へ出力する(S105)。
仮に、被写体が平坦な場合で、図21に示したブロックにおける近傍G0〜G3が同じ値V1をとるものとし、中央画素G4が値V2をとるとすると、上記S102により算出される段差量dはV2−V1となる。このV2−V1の絶対値がS103で計算される閾値F以下である場合には、上記S105により算出される補正量△はV2−V1に一致する。従って、S105で算出されるG4’の値は、V2−(V2−V1)/2=(V1+V2)/2となる。このように、段差量が閾値Fよりも小さい場合には、補正結果はGr画素の画素値とGb画素の画素値との平均値に近付くように補正されるのが、本実施例におけるG段差補正処理の特徴となっている。
また、上記S101において、中心画素がGrとGbとの何れでもないと判断された場合には、中央画素の画素値をそのままノイズ低減回路44へ出力する(S106)。
こうして、上記S105またはS106の処理が行われたところで、このG段差補正の処理を終了する。
段差補正回路43により上述したような処理が行われると、ノイズ低減回路44には、単板画像バッファ4の各画素に対してG段差補正を行った後の画素値が順次入力される。ノイズ低減回路44は、単板ベイヤー配列CCD3の特性に起因するノイズ低減処理を行って、結果をWB補正回路6へ出力する。
その後の処理は、上述した実施例1と同様である。
なお、本実施例は、多くの変形例が考えられる。例えば、WB補正回路6やノイズ低減回路44と段差補正回路43の処理の順番は、上述したものに限られるものではなく、任意の順番となるように変更することが可能である。
また、回路を簡単化するための変形例としては、段差補正回路43による処理S103において、閾値Fを、近傍画素の特徴量に基づいて予測する代わりに、固定値にすることが考えられる。この場合には、補正量算出回路54の内部ROMには、テーブルの代わりに、固定値が記憶されることになる。単板ベイヤー配列CCD3の特性によっては、このような手段を用いても実用可能範囲内となる。
あるいは、段差補正回路43を、図23に示すように構成しても良い。この図23に示す構成例では、段差補正回路43は、補正回路51と、組み合わせ平均計算回路56と、差分選択回路57と、補正量算出回路54と、を有して構成されている。つまり、この図23に示す構成は、上記図18に示した構成における平均計算回路52および段差量推定回路53に代えて、組み合わせ平均計算回路56および差分選択回路57を設けた構成になっている。
上記組み合わせ平均計算回路56は、3×3近傍に含まれるG画素のペアの特定の組み合わせを選択するセレクタと、このセレクタにより順次選択される各ペアの平均を算出する回路と、を備えて構成されている。この組み合わせ平均計算回路56により選択される組み合わせペアとその平均値とは、例えば図24に示すようなA0〜A5(特徴量)、つまり、次の数式18に示すようなA0〜A5、
[数18]
A0=(G0+G1)/2
A1=(G0+G2)/2
A2=(G1+G3)/2
A3=(G2+G3)/2
A4=(G1+G2)/2
A5=(G0+G3)/2
となる。こうして組み合わせ平均計算回路56により算出された各平均値A0〜A5は、差分選択回路57へ出力される。
差分選択回路57は、組み合わせ平均計算回路56から受け取った各平均値A0〜A5と中心画素値G4との差Di =G4−Ai (iは0から5までの整数)をそれぞれ計算して、これらの中から絶対値が最小となるDi を、上記図20のS102における段差量dに相当する量として、補正量算出回路54へ出力する。その後の補正量算出回路54の処理および補正回路51の処理は、上述と同様である。
なお、上述では、画像処理装置であるデジタルカメラ41の内部のハードウェア(回路等)により処理を行うようにしているが、このような処理を、PC(パーソナルコンピュータ)等のコンピュータ上で画像処理プログラムにより行うようにすることも可能である。
このソフトウェアは、単板ベイヤー配列CCD3からのアナログ出力をデジタル信号に変換して得られたRAWデータファイルに対して、現像処理を行うものとなっている。
以下では、図25のフローチャートの各ステップについて説明する。この図25は、ソフト処理の流れを示したものである。
なお、この処理を行うに当たって、例えばPCのメモリ領域に、作業用の記憶領域として、第1バッファと第2バッファとが確保されているものとする。
この処理を開始すると、まず、RAWデータファイルから、単板状態の画像データを読み込んで、第1バッファに2次元配列として格納する(S111)。
次に、第1バッファをまず行方向にスキャンし、次に列方向にスキャンすることにより、画像データ内に未処理画素が存在するか否かを判断する(S112)。
ここで、未処理画素がある場合には、選択した未処理画素の近傍3×3ブロックを第1バッファから読み出して(S113)、上記図20に示したような段差補正処理を行う(S114)。
そして、段差補正結果を、第1バッファとは別に確保された第2バッファ内の未処理画素に対応するアドレスに書き込んでから(S115)、上記S112へ戻って次の未処理画素に対する判断を行う。
一方、上記S112において、第1バッファ内に未処理画素がないと判断された場合には、第2バッファの画像に対してノイズ低減処理を行い、その処理結果を第1バッファへ出力する(S116)。
次に、この第1バッファの画像に対して、ホワイトバランス(WB)を補正する処理を行って、その結果を再び第1バッファへ出力する(S117)。
さらに、第1バッファの画像に対して、欠落色成分の補間処理を行い、その結果を第2バッファへ出力する(S118)。
続いて、第2バッファの画像に対して、エッジ強調などの画質調整処理を行って、その結果を第1バッファへ出力する(S119)。
そして、第1バッファの画像を、指定されたファイルへ出力して(S120)、この処理を終了する。
このような実施例4によれば、上述した実施例1〜3とほぼ同様に、同種の色成分が得られる画素間の感度の相違を、欠落画素の補間処理を行う前に、補正するようにしたために、欠落画素の補間を感度の相違の影響を低減した状態で良好に行うことができる。
また、注目画素と、該注目画素と同種の色成分の画素と、の感度差がどの程度あるのかを推定するようにしたために、感度差に応じた最適な感度補正を行うことができる。このとき、感度差がどの程度あるのかを、注目画素近傍のデータから抽出した特徴量に基づいて推定するようにしたために、感度差に応じた最適な感度補正を行うことができる。
そして、特徴量と感度差の量との対応関係を予め調査してテーブル化しておくようにしたために、高精度な感度補正を高速に行うことが可能となる。
さらに、感度差の量から所定の関数により感度差補正量を算出して、算出した感度差補正量を注目画素の画素値に加算して感度補正を行うようにしたために、回路構成が簡単になり、かつボケをあまり生じることなく感度補正を行うことができる。
このとき、感度差の量の絶対値がある閾値以上の場合に0となるような関数を用いて感度差補正量を算出するようにしているために、非常に大きな感度差の推定値が得られた場合に、補正を中止することができる。これにより、そのまま補正してエッジがぼけてしまうのを適切に防止することができる。
また、特徴量を、注目画素と異なる種類の色成分の画素の画素値から計算するようにしたために、注目している色成分以外の色成分の要因で感度差が生じる場合にも対応することが可能となる。
さらに、注目画素と同種の色成分の画素の画素値のN個の平均値を計算して特徴量とし、N個の特徴量と注目画素の画素値との差の絶対値が最小となる差を感度差の量とするようにしたために、より高精度に感度差の量を推定することができる。
図26から図31は本発明の実施例5を示したものであり、図26はデジタルカメラの構成を示すブロック図、図27は段差平滑化回路の一構成例を示すブロック図、図28は段差平滑化回路の処理を示すフローチャート、図29は係数混合比αを算出するための関数の例を示す線図、図30は係数設定回路により設定されるフィルタ係数の周波数特性を説明するための図、図31は段差平滑化回路の他の構成例を示すブロック図である。
この実施例5において、上述の実施例1〜4と同様である部分については同一の符号を付して説明を省略し、主として異なる点についてのみ説明する。
この実施例5は、上述した実施例1と同様に、画像処理装置をデジタルカメラに適用したものである。
この実施例5のデジタルカメラ61は、図26に示すように、上記実施例4のデジタルカメラ41に対して、段差補正回路43に代えて段差平滑化回路62を設けたものとなっている。そして、この段差平滑化回路62は、上記制御回路11により制御されるようになっている。
上記段差平滑化回路62は、より詳しくは図27に示すように、フィルタ回路71と、補正量算出回路72と、係数設定回路73と、を有して構成されている。
上記補正量算出回路72は、上記単板画像バッファ4から7×7画素のブロック単位で読み出した画像データの中心3×3画素に対して、R画素の平均値R’(特徴量)とB画素の平均値B’(特徴量)とを算出し、さらに、これらの特徴量から該補正量算出回路72の内部ROMに記憶されたテーブルを参照して適切な段差補正量の閾値F(感度差の量)を求め、この閾値Fの関数として係数混合比αを算出するものである。
上記係数設定回路73は、上記補正量算出回路72により算出された係数混合比αに基づいて、上記フィルタ回路71で行う計算に用いるフィルタ係数を算出するものである。
上記フィルタ回路71は、上記係数設定回路73により算出されたフィルタ係数を用いて、上記単板画像バッファ4から読み出した画像データに所定の演算を行い、G段差の平滑化を行うものである。
このような段差平滑化回路62の処理について、図28を参照して説明する。なお、この図28において、上記実施例4の図20と同様の処理を行う部分については、同一の符号を付している。また、この段差平滑化回路62は、上述したように、単板画像バッファ4の各画素毎に、近傍7×7サイズのブロック領域を読み出して、以下に示すような処理を行うようになっている。
この処理を開始すると、まず、上記S101の処理を行って、中心画素がGrまたはGbであるか否かを確認する。
ここで、中心画素がGrまたはGbである場合には、補正量算出回路72は、まず、近傍ブロック内の中心3×3画素に含まれるR画素の平均値R’とB画素の平均値B’とを算出する。そして、補正量算出回路72は、算出した平均値R’,B’をインデックスにして、内部ROMに記憶している予測テーブルを参照し、適切な段差補正量の閾値Fを求める(S131)。この予測テーブルは、上記実施例4の図20のS103において説明した予測テーブルと同一である。
次に、補正量算出回路72は、後段のフィルタ回路71で適用されるフィルタを決定するための係数混合比αを、段差補正量の閾値Fの関数として算出する(S132)。好ましい関数の一例としては、Fが0のときにαが1、Fがある値T以上でαが0となる図29に示すようなものを挙げることができる。なお、係数混合比の意味については、後で説明する。
続いて、係数設定回路73は、補正量算出回路72により算出された係数混合比αに基づいて、フィルタ回路71により行う計算に用いるフィルタ係数を算出する。つまり、フィルタ回路71は、単板画像バッファ4から読み出した7×7近傍ブロックに対して、まずG成分の得られていない位置のデータを0にセットした上で線形フィルタリングを行うが、このときのフィルタ係数として、該係数設定回路73から出力された値を用いるようになっている。
係数設定回路73は、フィルタ回路71で用いるフィルタ係数を設定するために、予め内部に、2種類の7×7フィルタの係数を保持している。2種類のフィルタ係数の内の1つは、係数P_i,j(i,jは各々1から7までの整数)である。この係数P_i,jは、フィルタの中心に当たるP_4,4のみが1であり、その他は0の値をとる係数となっている。また、2種類のフィルタ係数の内の他の1つは、係数Q_i,j(i,jは各々1から7までの整数)である。この係数Q_i,jは、総和が2であって、かつ、その水平方向または垂直方向の特性が、図30において実線で示す曲線L0のように、ナイキスト周波数で0となるように設定された係数となっている。
従って、係数P_i,jを用いて、単板画像バッファ4から読み出した7×7近傍をフィルタリングした場合には、フィルタ回路71から出力されるのは、何の補正もされない中央画素の値である。
一方、係数Q_i,jを用いて、単板画像バッファ4から読み出した7×7近傍をフィルタリングした場合には、ナイキスト周波数付近の周波数成分だけを急に落とし、その他の周波数成分にはあまり影響を与えないような平滑化がなされる。Gr画素とGb画素とに段差が生じている場合は、その影響が主にナイキスト周波数付近に現れる。そのために、フィルタリングを行った結果、段差の影響は平滑化されて取り除かれるが、エッジ部のボケはあまり生じていないような中央画素のG成分値が得られる。
係数設定回路73は、上述したような係数P_i,jと係数Q_i,jとを、上記補正量算出回路72から取得した係数混合比αを用いて数式19に示すように混合することにより、新たなフィルタ係数C_i,jを生成して、フィルタ回路71へ出力する(S133)。
[数19]
C_i,j=α×P_i,j+(1−α)×Q_i,j
この数式19と、図29に示したような係数混合比αと、によれば、近傍ブロック内で大きな段差が発生している場合には、この段差が取り除かれる係数Q_i,jに近い特性の図30の点線に示す曲線L1のようなフィルタ係数がフィルタ回路71へ出力される。一方、近傍ブロック内で段差がほとんど発生していない場合は、係数P_i,jに近い特性の図30の一点鎖線に示す曲線L2のようなフィルタ係数がフィルタ回路71へ出力される。このようなフィルタ係数の混合を行うことにより、帯域劣化と段差補正とが最適にバランスされた処理を常に行うことが可能となる。
フィルタ回路71は、上述したように、係数設定回路73から出力されたフィルタ係数C_i,jに基づいて、近傍ブロックに対して線形フィルタリングを行う。具体的には、次のような処理を行う。ここに、7×7近傍ブロックの左上隅の座標を(1,1)としたときの位置(i,j)(i,jは1から7までの整数)における画素値をx_i,jとする。まず、G成分が得られていない位置における画素値x_i,jを0にセットする。その後、次のような数式20を用いて、フィルタリング結果vを計算する。
[数20]
こうしてフィルタ回路71により計算されたフィルタリング結果vが、ノイズ低減回路44へ出力される。
なお、この実施例においても種々の変形を行うことが可能である。例えば、係数を混合した後に、混合された係数を用いてフィルタリングするのではなく、2種類の係数を用いてそれぞれフィルタリングを行い、フィルタリングされた結果を混合するようにして構わない。図31は、このような処理を行うための回路の構成例を示している。
すなわち、図31に示す段差平滑化回路62は、上記図27に示した段差平滑化回路62に対して、フィルタ回路71および係数設定回路73の代わりに、2つのフィルタ回路71a,71bおよび混合回路75を設けたものであり、また、補正量算出回路72の出力は該混合回路75へ接続されている。
上記フィルタ回路71aは、上記係数P_i,jによるフィルタリングを行って、結果V1を出力するものである。
上記フィルタ回路71bは、上記係数Q_i,jによるフィルタリングを行って、結果V2を出力するものである。
混合回路75は、上記補正量算出回路72から係数混合比αを受けて、上記フィルタ回路71aからの出力V1と上記フィルタ回路71bからの出力V2とを用いて、以下のような数式21により最終結果V3を算出し、算出した結果V3を上記ノイズ低減回路44へ出力するものである。
[数21]
V3=α×V1+(1−α)×V2
また、図27に示した構成と、図31に示した構成と、の何れにおいても、混合するフィルタの数は2つに限るものではなく、3つ以上であっても構わない。この場合には、補正量算出回路72は、複数の混合比を段差補正量の閾値Fの関数として算出する。
さらに簡単な回路としては、図31に示す構成において、混合回路の代わりに切換回路を設けて、係数混合比αに応じてフィルタ回路71aとフィルタ回路71bとの出力を切り換えるようにすることも可能である。
加えて、図25の処理において、S114の段差補正処理として、上記図20に示したような処理を行う代わりに、図28に示したような処理を行うことにより、本実施例に対応するソフトウェア処理を実現することが可能となる。
このような実施例5によれば、上述した実施例4とほぼ同様の効果を奏するとともに、感度差の量に基づいて設定したフィルタ係数により、注目画素と同種の色成分の画素に線形フィルタを適用するようにしたために、感度差補正量を画素値に加算する場合に比べて、感度差の推定を間違った場合であっても、より確実に感度差を補正することが可能となる。
なお、本発明は上述した実施例に限定されるものではなく、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能であることは勿論である。
本発明は、単板撮像系、二板撮像系、または三板画素ずらし撮像系から出力された画像を処理して、画素毎に3色成分値をもつカラーデジタル画像を生成する画像処理装置、画像処理プログラムに好適に利用することができる。
1,21,31,41,61…デジタルカメラ
2…光学系
3…単板ベイヤー配列CCD
4…単画像バッファ
5…ライン補正回路(感度補正手段)
6…WB補正回路
7…補間回路(補間手段)
8…カラー画像バッファ
9…画質調整回路
10…記録回路
11…制御回路
22…G段差検出回路(判定手段、特徴量計算手段)
23…G補間回路(補間手段)
24…重み計算回路(重付平均手段)
25…平均回路(重付平均手段)
26…G画像バッファ
27…RB補間回路(補間手段)
32…補正回路(補間後補正手段)
42…A/D回路
43…段差補正回路(感度補正手段)
44…ノイズ低減回路
51…補正回路
52…平均計算回路(特徴計算手段)
53…段差量推定回路(推定手段)
54…補正量算出回路(推定手段、特徴計算手段)
56…組み合わせ平均計算回路(特徴計算手段)
57…差分選択回路
62…段差平滑化回路(感度補正手段)
71,71a,71b…フィルタ回路(フィルタ手段)
72…補正量算出回路(推定手段、特徴計算手段)
73…係数設定回路(係数設定手段)
75…混合回路