以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が、本明細書に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
更に、この記載は、本明細書に記載されている発明の全てを意味するものでもない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
請求項1に記載の画像処理装置は、分光感度が異なる3種類のフィルタ(例えば、RGBの3色に対応するカラーフィルタ)を有し、複数種類のフィルタのうちのいずれかが画素ごとに用いられている画像センサ(例えば、CCDイメージセンサ213)によって得られたモザイク画像信号から、フィルタの分光感度により決まる3つの色に対応する画素位置毎の強度情報が全画素でそろうようなカラー画像を生成する画像処理装置であって、画像センサからの信号の読み出しを制御する制御手段(例えば、図3のタイミングジェネレータ217)と、画像センサによって得られたモザイク画像信号から、フィルタの分光感度により決まる3種類の色のそれぞれに対応する強度情報が全画素でそろうような3つの単色画像データを生成する生成手段(例えば、図7のデモザイク処理部253、または、図36のデモザイク処理部371)とを備え、画像センサは、第1のフィルタ(例えば、Gに対応するカラーフィルタ)が市松状に配置され、第2のフィルタ(例えば、RまたはBの一方に対応するカラーフィルタ)が斜め方向に連続し、かつ、水平および垂直方向に1画素おきに配置され、第3のフィルタ(例えば、RまたはBの他方に対応するカラーフィルタ)が斜め方向に連続し、かつ、水平および垂直方向に1画素おきに配置されたフィルタ配列(例えば、図4のモザイク配列231または図34のモザイク配列361に対応するフィルタ配列)を有し、制御手段は、画像センサからの信号の、全画素読み出しおよび間引き読み出しを制御することを特徴とする。
制御手段により画像センサからの間引き読み出しが制御されたとき、間引き読み出しにより得られたモザイク画像信号を基に生成手段により生成された3つの単色画像データを基に、単色画像データに対応する水平方向に縮小された単色画像データを生成する生成手段(例えば、図6の水平方向縮小処理部255)を更に備えることができる。
制御手段により画像センサからの間引き読み出しが制御されたとき、間引き読み出しにより得られたモザイク画像信号を基に、モザイク画像信号に対応する水平方向に縮小されたモザイク画像信号を生成する生成手段(例えば、図39の水平方向縮小処理部398)を更に備えることができる。
画像センサは、少なくとも1水平ラインは同一の感度となるような、複数種類の感度で画像信号を得る(例えば、図34のモザイク配列361に対応するモザイク画像信号を得る)ことができる。
制御手段は、画像センサからの信号を、複数種類の感度がすべてそろうような均一な行数(例えば、図34のモザイク配列361に対応するモザイク画像信号に対しては、2行ごと)の読み出しおよびスキップによる間引き読み出しを制御することができる。
本発明の画像処理方法は、分光感度が異なる3種類のフィルタ(例えば、RGBの3色に対応するカラーフィルタ)を有し、複数種類のフィルタのうちのいずれかが画素ごとに用いられている画像センサ(例えば、CCDイメージセンサ213)によって得られたモザイク画像信号から、フィルタの分光感度により決まる3つの色に対応する画素位置毎の強度情報が全画素でそろうようなカラー画像を生成する画像処理装置の画像処理方法であって、画像センサからの信号の読み出しを制御する制御ステップ(例えば、図16のステップS2またはステップS6の処理)と、画像センサによって得られたモザイク画像信号から、フィルタの分光感度により決まる3種類の色のそれぞれに対応する強度情報が全画素でそろうような3つの単色画像データを生成する生成ステップ(例えば、図16のステップS3またはステップS7の処理)とを含み、画像センサは、第1のフィルタ(例えば、Gに対応するカラーフィルタ)が市松状に配置され、第2のフィルタ(例えば、RまたはBの一方に対応するカラーフィルタ)が斜め方向に連続し、かつ、水平および垂直方向に1画素おきに配置され、第3のフィルタ(例えば、RまたはBの他方に対応するカラーフィルタ)が斜め方向に連続し、かつ、水平および垂直方向に1画素おきに配置されたフィルタ配列(例えば、図4のモザイク配列231または図34のモザイク配列361に対応するフィルタ配列)を有し、制御ステップの処理では、画像センサからの信号の、全画素読み出しおよび間引き読み出しを制御することを特徴とする。
また、請求項8に記載のプログラムにおいても、各ステップが対応する実施の形態(但し一例)は、請求項7に記載の情報処理方法と同様である。
以下、図を参照して、本発明の実施の形態について説明する。
図3は、本発明を適用した演算処理を実行するデジタルスチルカメラ201の構成を示すブロック図である。
図3に示すように、デジタルスチルカメラ201は、レンズ211、絞り212、CCD(Charge Coupled Devices)イメージセンサ213、相関2重サンプリング(CDS:Correlated Double Sampling)回路214、A/Dコンバータ215、DSP(Digital Signal Processor)ブロック216、タイミングジェネレータ217、D/Aコンバータ218、ビデオエンコーダ219、表示部220、コーデック(CODEC:COmpression/DECompression)処理部221、メモリ222、CPU223、および、操作入力部224から構成される。
CCDとは、光情報を電気信号に変換する(光電変換)半導体素子であり、CCDイメージセンサ213は、光を電気に変換する受光素子(画素)を複数個並べ、光の変化を画素ごとに独立して電気信号に変換するものである。相関2重サンプリング回路214は、CCDイメージセンサ213の出力信号に含まれるノイズのうちの主な成分であるリセットノイズを、出力の各画素信号のうち、映像信号期間をサンプリングしたものと、基準期間をサンプリングしたものとを引き算することにより除去する回路である。A/Dコンバータ215は、供給されたノイズ除去後のアナログ信号をデジタル信号に変換する。
DSPブロック216は、信号処理用プロセッサと画像用RAMを持つブロックで、信号処理用プロセッサが画像用RAMに格納された画像データに対して、予めプログラムされた画像処理、または、ハードウェアによる演算処理として構成された画像処理を行うものである。タイミングジェネレータ217は、CCDを駆動するために必要な、水平および垂直の各種駆動パルス、並びに、アナログフロント処理で用いるパルスを、基準クロックに同期して発生させるロジック回路である。また、タイミングジェネレータ217により発生されるタイミングクロックは、バス225を介して、コーデック処理部221、メモリ222、および、CPU223にも供給されている。
D/Aコンバータ218は、供給されたデジタル信号をアナログ信号に変換して出力する。ビデオエンコーダ219は、供給されたアナログ信号を、表示部220において表示可能な形式のビデオデータにエンコードする。表示部220は、例えば、LCD(Liquid Crystal Display)などで構成され、ビデオエンコーダ219から供給されたビデオ信号を表示する。
コーデック処理部221は、例えばJPEG(Joint Picture Experts Group)などの、デジタル画像データの圧縮または伸張アルゴリズムによる処理を実行する。メモリ222は、例えば、半導体メモリ、磁気ディスク、光磁気ディスク、または、光ディスクなどにより構成され、CPU223の制御に基づいて、供給されたデータを記憶したり、または、記憶しているデータを出力する。なお、メモリ222は、デジタルスチルカメラ201に対して着脱可能なようになされていても良い。
CPU223は、バス225を介して、操作入力部224から供給されたユーザの操作入力を基に、デジタルスチルカメラ201の各部を制御する。操作入力部224は、録画を指令する場合のボタンをはじめとして、例えば、ジョグダイヤル、キー、レバー、ボタン、またはタッチパネルなどにより構成され、ユーザによる操作入力を受ける。
レンズ211および絞り212を介して入力された光は、CCDイメージセンサ213に入射され、受光素子での光電変換によって電気信号に変換され、相関2重サンプリング回路214に供給される。相関2重サンプリング回路214は、CCDイメージセンサ213の出力の各画素信号のうち、映像信号期間をサンプリングしたものと、基準期間をサンプリングしたものとを引き算することによりノイズを除去し、A/Dコンバータ215に供給する。A/Dコンバータ215は、供給されたノイズ除去後のアナログ信号をデジタル信号に変換し、DSPブロック216の画像用RAMに一時格納する。
タイミングジェネレータ217は、シャッタボタンが押されたか否かかの、撮像中の状態に基づいて、CCDイメージセンサ213による画像の読み出しを制御し、一定のフレームレートによる画像取り込みを維持するように、CCDイメージセンサ213、相関2重サンプリング回路214、A/Dコンバータ215、および、DSPブロック216を制御する。
DSPブロック216は、一定のレートで画素のストリームデータの供給を受け、画像用RAMに一時格納し、信号処理用プロセッサにおいて、一時格納された画像データに対して、後述する画像処理を実行する。DSPブロック216は、画像処理の終了後、CPU223の制御に基づいて、その画像データを表示部220に表示させる場合は、D/Aコンバータ218に、メモリ222に記憶させる場合は、コーデック処理部221に画像データを供給する。
D/Aコンバータ218は、DSPブロック216から供給されたデジタルの画像データをアナログ信号に変換し、ビデオエンコーダ219に供給する。ビデオエンコーダ219は、供給されたアナログの画像信号を、ビデオ信号に変換し、表示部220に出力して表示させる。すなわち、表示部220は、デジタルスチルカメラ201において、カメラのファインダの役割を担っている。コーデック処理部221は、DSPブロック216から供給された画像データに対して、所定の方式の符号化を施し、符号化された画像データをメモリ222に供給して記憶させる。
また、コーデック処理部221は、操作入力部224からユーザの操作入力を受けたCPU223の制御に基づいて、メモリ222に記憶されているデータのうち、ユーザに指定されたデータを読み取り、所定の復号方法で復号し、復号した信号をDSPブロック216に出力する。これにより、復号された信号が、DSPブロック216を介してD/Aコンバータ218に供給され、アナログ変換された後、ビデオエンコーダ219によりエンコードされて、表示部220に表示される。
すなわち、通常の状態(シャッタボタンが押される前の状態)では、タイミングジェネレータ217の制御により、DSPブロック216の画像用RAMには、CCDイメージセンサ213から間引き処理された画像信号が、一定のフレームレートで絶えず上書きされるようになされている。DSPブロック216により処理された画像信号は、D/Aコンバータ215に供給されてアナログ信号に変換され、ビデオエンコーダ219によってビデオ信号に変換されて、変換されたビデオ信号に対応する画像が表示部220に表示される。この時表示される画像は、間引き処理された画像信号に対応する画像であるため、CCDイメージセンサ213の解像度より低い解像度の画像となる。この状態において、表示部220は、CCDイメージセンサ213のファインダの役割を担っている。
そして、ユーザにより操作入力部224に含まれるシャッタボタンが押下された場合、CPU223は、シャッタボタンが押下されたタイミングに基づいて、タイミングジェネレータ217にCCDイメージセンサ213から全画素が読出されるように制御させるとともに、DSPブロック216の画像用RAMに新たな画像データが一定期間上書きされないように、すなわち、読み出された画像信号が処理されて保持されるように制御する。DSPブロック216により処理された画像信号は、コーデック処理部221により、所定の方式の符号化が施されて、メモリ222に記憶される。
図3のCCDイメージセンサ213のオンチップカラーフィルタに用いられているモザイク配列の第1の例、すなわち、図3のCCDイメージセンサ213により得られるモザイク画像の色配列の第1の例を図4に、図4のモザイク配列に対して、1行ごとに読み出し、スキップを繰り返して間引き処理を行った場合に得られる間引きされたモザイク画像の色配列を図5に示す。
図4に示されるモザイク配列231は、ベイヤー配列と同様にG信号が市松上に配置されるようになされ、空間的に、縦方向と横方向に均等に分布しているので、画像の撮像時(全画素読み出し時)におけるDSPブロック216におけるRGB同時化処理(デモザイク処理)で、精度良くGの補間処理を行うことが可能となる。
また、図4に示されるモザイク配列231がCCDイメージセンサ213のオンチップカラーフィルタに用いられている場合、CPU223は、間引き読み出し実行時に、タイミングジェネレータ217を制御して、1行おきに間引いて画像信号を読み出させる。すなわち、CCDイメージセンサ213において取得された画像信号のうち、奇数行または偶数行のみ画像信号が読み出される。したがって、間引き読出し時において、図5に示されるように、得られる色配列は、1列おきのGストライプとなり、Gではない列には、RとBが、それぞれ同一水平ラインに均一に混在し、かつ、同一垂直ラインに交互に配列されるようなモザイク配列241となる。
ここで、図5のモザイク配列241において、間引き後に残っているG信号の間引き前のモザイク配列231における位置を確認してみると、空間的に均等に分布している。すなわち、間引き画像は、原信号である全画素読み出し画像を等しい間隔でリサンプリングしたものと同等である。よって、間引き後のモザイク配列241を有する画像信号においても、DSPブロック216におけるRGB同時化処理(デモザイク処理)において、Gの補間精度の方向によるばらつきが発生しにくい。また、例えば、図2を用いて説明した従来の方法においては、間引いた後のGストライプではない同一の列には、R、Bのいずれか一方しか存在しないが、図5のモザイク配列241では、間引き後に、R、Bが同一列内に混在し、空間的に均等に分布するようになされている。したがって、DSPブロック216におけるRGB同時化処理(デモザイク処理)において、RBの補間精度の方向によるばらつきが発生しにくい。
以上から、図4のモザイク配列231に示されるオンチップカラーフィルタを図3のCCDイメージセンサ213に用いることより、全画素読み出しはもちろん、偽色などのノイズが発生しにくい1行おきの間引き読出しを行っても、高品質な低解像度画像を得ることが可能となる。
図6は、図3のDSPブロック216の更に詳細な構成を示すブロック図である。
DSPブロック216は、上述したように、画像用RAM241および信号処理用プロセッサ242で構成され、信号処理用プロセッサ242は、ホワイトバランス調整部251、ガンマ補正部252、デモザイク処理部253、スイッチ254、水平方向縮小処理部255、階調変換処理部256、および、YC変換部257で構成される。
A/Dコンバータ215によってデジタル信号に変換されたモザイク画像は、画像用RAM241に一時保存される。モザイク画像は、各画素にR、GまたはBのいずれかの色に対応する強度信号、すなわち、CCDイメージセンサ213に用いられているカラーフィルタにより定められる配列(図4を用いて説明したモザイク配列231)、または、間引きして得られた所定の配列(図5を用いて説明したモザイク配列241)の周期的なパターンの強度信号により構成されている。
ホワイトバランス調整部251は、モザイク画像に対して、無彩色の被写体領域の色バランスが無彩色になるように、各画素強度の持つ色に応じて適切な係数をかける処理(ホワイトバランスの調整処理)を実行する。ガンマ補正部252は、ホワイトバランスが調整されたモザイク画像の各画素強度に対して、ガンマ補正を行う。画像の階調の応答特性を表すために「ガンマ(γ)」という数値が使われる。ガンマ補正とは、表示部220に表示される画像の明るさや色の彩度を正しく表示するための補正処理のことである。表示部220に出力される信号は、画素ごとに特定の電圧を加えることで、画像の明るさや色が再現されるようになされている。しかしながら、実際に表示される画像の明るさや色は、表示部220が有する特性(ガンマ値)により、入力電圧を倍にしてもブラウン管の明るさが倍になるわけではない(非線形性を有する)ため、ガンマ補正部252において、表示部220に表示される画像の明るさや色の彩度が正しく表示されるように補正する処理が施される。
デモザイク処理部253は、色分布形状を統計的に算出することにより、ガンマ補正がなされたモザイク画像の各画素位置にR,G,Bの全ての強度(強度情報)を揃えるデモザイク処理を実行する。したがって、デモザイク処理部253からの出力信号は、R,G,Bの3つの色に対応する3つの画像信号となる。
スイッチ254は、CPU223の制御に基づいて、供給された画像信号が間引きされていない画像信号、すなわち、モザイク配列231を有する画像信号を用いてデモザイク処理されたR,G,Bの3つの色に対応する3つの画像信号である場合、供給された信号を階調変換処理部256に供給し、供給された画像信号が間引きされた画像信号、すなわち、モザイク配列241を有する画像信号を用いてデモザイク処理されたR,G,Bの3つの色に対応する3つの画像信号である場合、供給された信号を水平方向縮小処理部255に供給する。
水平方向縮小処理部255には、モザイク配列241を有する画像信号を用いてデモザイク処理されたR,G,Bの3つの色に対応する3つの画像信号が供給される。1/2に水平ラインが間引きされた画像信号は、縦の画素数が原画像の1/2となっている。したがって、水平方向縮小処理部255は、間引きされた画像信号の縦横比が、原画像と同様の縦横比となるように、水平方向に縮小処理を施して、階調変換処理部256に供給する。
階調変換処理部256は、出力する画像データのビット数にあわせて、供給された画像信号の階調を圧縮する階調変換処理を実行し、階調変換された画像信号をYC変換部257に供給する。
YC変換部257はR,G,Bの3チャネル画像に、マトリックス処理およびクロマ成分に対する帯域制限を行うことで、Y画像およびC画像(YCbCr画像信号)を生成し、出力する。
DSPブロック216の信号処理用プロセッサ242においては、デモザイク処理部253によるデモザイク処理の前に、ガンマ補正部252によりガンマ補正を行うものとしている。これは、ガンマ補正された非線形な画素強度空間においてデモザイク演算を実行することにより、デモザイク処理部253のデモザイク処理の信頼性をより高めることができるためである。
例えば、入力される画像が高コントラストな輪郭領域である場合、その色分布は、非常に明るい強度域と非常に暗い強度域に渡ってしまう。物理的に、物体反射光は、物体表面のばらつきに照明からの入射光強度が乗じられたものになることから、カメラへの入射光強度に比例する線形な画素強度空間においては、明るい強度域にある物体色の分布はスパースに(まばらに)広がり、暗い画素強度域にある物体色の分布はあまり広がらずにコンパクトに縮まる傾向にある。
デモザイク処理部253においては、色分布形状を統計的に算出することにより、デモザイク処理を実行する。しかしながら、高コントラストな輪郭領域では、明るい領域での画素強度のちらばりと暗い領域での画素強度のちらばりが大きく異なり、統計的な線形回帰が適用しにくくなる。したがって、入力されたデータに対して、デモザイク処理部253におけるデモザイク処理に先立って、ガンマ補正のような非線形の画素強度変換を施して、暗い画素強度域を持ち上げて(明るい画素強度領域に近づけて)、画素強度の分散をある程度抑制するようにすることにより、デモザイク処理部253において実行される線形回帰処理の信頼性を向上させることができる。
このような目的で適用する非線形変換は、ガンマ補正のように1より小さい指数によるべき乗変換が望ましいが、通常カラープロファイル等で用いられているsRGBガンマのように、べき乗部と線形部を組み合わせたような変換であっても、略べき乗関数と同じとみなせるようなものであれば、いずれの非線形変換であってもよい。また、非線形変換を省略するようにしても、デモザイク処理の後に、ガンマ補正などの非線形変換処理を行うようにしてもよいことは言うまでもない。
次に、図7は、全画素位置でRGBの全ての色が存在するように、各画素位置ごとに順次、そこにない色の強度を補間または推定していく処理であるデモザイク処理を実行する、図6のデモザイク処理部253の更に詳細な構成を示すブロック図である。
デモザイク処理部253は、局所領域抽出部281、G強度補間処理部282、信頼度算出部283、粗補間処理部284、統計量算出部285−1乃至285−3、および、回帰演算処理部286−1乃至286−3で構成される。
局所領域抽出部281は、ガンマ補正されたモザイク画像から、注目画素位置周囲の決まった大きさの局所領域の画素を切り出す。ここでは、切り出す局所領域を、間引きされていない画像信号においては、注目画素位置を中心とした、例えば、5×5画素、7×7画素、または、9×9画素などのn×n画素の矩形領域とし、間引きされた画像信号においては、注目画素を中心とした、例えば、5×3画素、7×4画素、または、9×5画素などのn×m画素の矩形領域とする。
G強度補間処理部282は、局所領域内に存在する画素を用いて、注目画素位置におけるG強度を補間処理によって算出する。信頼度算出部283は、局所領域内に存在する画素とG強度補間処理部282が算出した注目画素位置のG強度とを用いて、信頼度を算出する。ここで信頼度とは、この局所領域における色分布形状の推定の正確さを予想する値である。信頼度をどのように算出するかは後述する。
粗補間処理部284は、局所領域内の複数の画素位置においてR,G,B各色の強度の組が作れるよう、簡単な演算によって、R,G,Bの画素強度の推定値(以下、ラフな推定値と称する)を、後述する補間方法を用いて算出する。本発明においては色分布形状を推定するために、2次の統計量、または、それに相当する値を計算することが必要であり、そのために、同一画素位置における各色の強度が組となって得られている必要がある。この強度の組を生成するために、粗補間処理部284は、局所領域内の複数の画素(ここでは、n×m画素の局所領域に対して、注目画素を中心とした(n−2)×(m−2)画素であり、n=mのときは、(n−2)×(n−2)画素となる)におけるR,G,Bのラフな推定値を算出する。
なお、従来のデモザイク技術においては、このような粗補間処理部284に相当する処理がないため、正確な色分布形状推定を行うための情報が算出できないという問題があった。これに対して、本発明を適用したデモザイク処理部253においては、粗補間処理部284を用いて、正確な色分布形状推定を行うための情報として、ラフな推定値を求めることができるようになされている。
統計量算出部285−1乃至285−3は、粗補間処理部284により算出された局所領域内の各画素におけるR,G,B強度の組を用いて、2色間の統計量を算出する。統計量算出部285−1乃至285−3のいずれにおいても、第1の色はGである。そして、統計量算出部285−1に供給される第2の色はRであり、統計量算出部285−2に供給される第2の色は、第1の色と同じくGであり、統計量算出部285−3に供給される第2の色はBである。そして、統計量算出部285−1乃至285−3は、第1の色の平均値、第2の色の平均値、第1の色の分散値、および、第1の色と第2の色の共分散値を演算して出力する。デモザイク処理部253には、入力信号の色の違いによって3つの統計量算出部285−1乃至285−3が存在するが、それらの動作は全て等しいので、以下、特に区別しない場合、単に、統計量算出部285と称するものとする。
回帰演算処理部286−1乃至286−3は、G強度補間処理部282が算出した注目画素位置のG強度と、統計量算出部285−1乃至285−3のうちのいずれか対応するものが算出した統計量と、信頼度算出部283が算出した信頼度に基づいて、色分布形状の線形回帰計算を行い、注目画素位置における強度推定値を算出する。具体的には、回帰演算処理部286−1は、注目画素位置のG強度と信頼度算出部283が算出した信頼度に加えて、GとRのそれぞれの平均値、Gの分散値、および、GとRとの共分散値の供給を受け、注目画素のR強度を推定して出力する。また、回帰演算処理部286−2は、注目画素位置のG強度と信頼度算出部283が算出した信頼度に加えて、Gの平均値、Gの分散値の供給を受け、注目画素のG強度を推定して出力する。そして、回帰演算処理部286−3は、注目画素位置のG強度と信頼度算出部283が算出した信頼度に加えて、GとBのそれぞれの平均値、Gの分散値、および、GとBとの共分散値の供給を受け、注目画素のB強度を推定して出力する。デモザイク処理部253には、入力信号の色の違いによって3つの回帰演算処理部286−1乃至286−3が存在するが、それらの動作は全て等しいので、以下、特に区別しない場合、単に、回帰演算処理部286と称するものとする。
なお、デモザイク処理部253においては、デモザイク処理を行うために、Gの強度推定値を算出するための統計量算出部285−2および回帰演算処理部286−2を省略し、G強度補間処理部282が算出した注目画素位置のG強度を用いるようにしてもよい。しかしながら、図7に示されるように、統計量算出部285−2および回帰演算処理部286−2を用いて、Gに対して回帰計算を行って、推定値を算出し直すことによりGの強度に対するノイズ低減効果や高域補正効果を奏することが可能となるので、Gの強度推定値を算出するための統計量算出部285−2および回帰演算処理部286−2を省略することなく、備えるようにするほうが、得られる画像の品質が向上し、好適である。
次に、デモザイク処理部253の各部の更に詳細な動作について説明する。
局所領域抽出部281は、注目画素位置近傍の所定の矩形領域内の画素情報を取得するものである。なお、画素情報の取得方法はいずれの方法であっても良く、例えば、本発明をソフトウェアとして実現する場合、注目画素位置近傍の矩形領域内の画素値を、配列として内部のメモリに保存するようにすれば良いし、ハードウェアで実現する場合、ディレイラインを用いて、注目画素の上下に隣接する画素信号を取得することができるようにすれば良い。通常、撮像装置の信号処理系においては、CCDイメージセンサ213から供給される信号が、水平ライン順次の画素強度の1次元系列となるように、ハードウェアが実装されることが多いので、通常、1水平ライン分の画素強度を保持できるディレイラインが用いられて、上下に隣接する水平ラインの画素へのアクセスが確保される。したがって、9×9の矩形領域の画像信号を取得するためには、最低8個のディレイラインを用意すればよい。
G強度補間処理部282は、局所領域抽出部281が抽出したn×nまたはn×m(例えば、9×9や9×5)画素の矩形領域の画素を用いて、注目画素位置のG強度値を補間により算出する。G強度補間処理部282が注目画素の周囲の画素を用いてG強度を算出する方法は、いかなる方法であっても良く、例えば、「村田,森,前中,岡田、および、千原,“PS-CCDにおける相関判別色分離方式”,映像情報メディア学会誌,Vol.55,No.1,pp.120-132,2001」(非特許文献1)に記載されている方法などを用いることができる。
信頼度算出部283は、局所領域抽出部281により抽出されたn×nまたはn×m(例えば、9×9や9×5)画素の矩形局所領域の画素と、G強度補間処理部282により算出された注目画素位置のG強度とを用いて、注目画素位置における色分布形状推定の信頼度を算出する。本発明を適用したデモザイク処理における色分布形状推定では、抽出された局所領域内に、2種類の異なる色の領域があることを想定している。通常の物体輪郭領域に関しては、この仮定が当てはまることが多いので、この仮定で、充分正確な輪郭の色再現が可能である。しかしながら、画像の中にはその仮定が当てはまらず、局所領域内に異なる3色が存在するような場合もあり得る。典型的には、細い縞模様状のテクスチャにおける場合であり、このようなテクスチャにおいて、局所領域内に多くの色が含まれ易い。そこで、信頼度算出部283は、このような細い縞模様状のテクスチャを検出し、そのテクスチャの強度に基づいて信頼度値を出力する。
信頼度値の供給を受ける回帰演算処理部286は、統計量算出部285により算出された色分布形状に関する統計量に対して、信頼度値に基づいた補正を施すようになされているため、抽出された局所領域内に、2種類の異なる色の領域があるという仮定から外れたことによる色強度の推定誤差を抑制することが可能となる。
図8は、信頼度算出部283の構成を示すブロック図である。信頼度算出部283は、具体的には、細い縞模様状のテクスチャを検出するために、注目画素位置周囲のG強度に対する方向別の低周波フィルタを算出して、注目画素位置のG強度との差分演算処理を実行することにより、高周波抽出を行って、注目画素位置周囲において「明−暗−明」あるいは「暗−明−暗」といった輝度変化がある場合、これを方向別に検出し、方向別の検出結果を統合することによって信頼度を算出する。信頼度算出部283は、高周波抽出部321−1乃至321−6、加算処理部322、および、クリップ処理部323で構成される。6つの高周波抽出部321−1乃至321−6は、注目画素を中心として、それぞれ異なる6つの方向の高周波抽出を行い、その強度を出力する。
間引きされていない画素信号が供給された場合の、信頼度算出部283の周波抽出部321−1乃至321−6による方向別高周波抽出の具体例について、図9を用いて説明する。図9は、局所領域抽出部281により抽出された、7×7画素の局所領域を示したものである図9Aは、注目画素がGである場合、図9Bは、注目画素がRである場合を示す。なお、信頼度の算出に関してはGの画素のみを用いるので、注目画素がBである場合はRである場合と同様の処理が実行される。
まず、画素から水平および垂直にちょうど1/2だけずれた(すなわち、4つの画素に囲まれる)位置であって、注目画素に近い位置から12箇所の位置(図中、丸印で示される位置)のG強度が算出される。具体的には、図9に示した12箇所の位置の全てにおいて、斜めにGの画素が隣接しているので、その2つのG強度の平均値を用いて、12箇所それぞれのG強度とする。ここで、注目画素がGである場合と、注目画素がRまたはBである場合とでは、隣接するGの方向が異なるが、いずれの場合においても、それぞれの位置でGが存在する方向は、注目画素がGであるかまたは、RもしくはBのいずれかであるかを基に判別することができる。
間引きされた画素信号が供給された場合の、信頼度算出部283の周波抽出部321−1乃至321−6による方向別高周波抽出の具体例について、図10を用いて説明する。図10は、局所領域抽出部281により抽出された、7×5画素の局所領域を示したものである。説明のため、図10Aは、注目画素がGである場合、図10Bは、注目画素がRである場合を示す。なお、信頼度の算出に関してはGの画素のみを用いるので、注目画素がBである場合はRである場合と同様の処理が実行される。
まず、画素から水平および垂直にちょうど1/2だけずれた(すなわち、4つの画素に囲まれる)位置であって、注目画素に近い位置から12箇所の位置(図中、丸印で示される位置)のG強度が算出される。具体的には、図10に示した12箇所の位置の全てにおいて、斜めにGの画素が隣接しているので、その2つのG強度の平均値を用いて、12箇所それぞれのG強度とする。ここで、注目画素がGである場合と、注目画素がRまたはBである場合とでは、隣接するGの方向が異なるが、いずれの場合においても、それぞれの位置でGが存在する方向は、注目画素がGであるかまたは、RもしくはBのいずれかであるかを基に判別することができる。
このようにして、12箇所においてG強度が算出された後、それらを用いて6方向の低周波フィルタを計算する。図11を用いてフィルタの方向について説明する。図11においては、局所領域中、特に、注目画素付近の5×5画素のみが図示されている。
12箇所のG強度の算出位置は、間引きされていない画素信号、間引きされた画素信号のいずれにおいても、注目画素位置を中心に点対称の配置となっていて、互いに対称の位置にあるG強度の対が、図中、Aで示されるG強度の組、Dで示されるG強度の組、VAで示されるG強度の組、VDで示されるG強度の組、HAで示されるG強度の組、および、HDで示されるG強度の組の、合計6つできる。これらの6つのG強度の対において、それぞれ平均値を算出するようなフィルタを用いれば、6方向の低周波フィルタが算出される。更に、それら低周波フィルタの出力と注目画素位置のG強度の差分をとれば、方向別の高周波抽出ができる。
そして、加算処理部322は、6つの高周波抽出結果を適当なバランスで加算した値を出力する。クリップ処理部323は、加算処理部322による加算処理結果にクリッピング処理を施し、クリップされた高周波抽出の加算値を信頼度値として出力する。
算出される信頼度値は、細い縞模様状のテクスチャの強度が大きいほど信頼度値が大きくなるので、信頼度値が小さいほうが統計量による色分布形状の推定が確かである可能性が高いということになる。
次に、粗補間処理部284は、局所領域内の複数の位置においてR,G,B各色の強度の組が作れるよう、複雑な計算方法でない方法で、R,G,Bの推定値(ラフな推定値)を、補間によって算出する。例えば、間引きされていない画素信号、間引きされた画素信号のいずれにおいても、注目画素の周囲8画素から、R,G,Bの補間値を計算することができる。
具体的には、間引きされていない画素信号は、図4を用いて説明したモザイク配列231を有しているので、注目画素に対して、上および左に位置する画素のペア、右および下に位置する画素のペア、右斜め上および左斜め下に位置する画素のペア、左斜め上および右斜め下に位置する画素のペア、並びに、注目画素自身を用いて、R,G,Bのラフな推定値を少なくとも1つ作成することができる。また、間引きされた画像は、図5を用いて説明したモザイク配列241を有しているので、注目画素に対して、上および下に位置する画素のペア、左斜め上、右、および左斜め下に位置する3つの画素、右斜め上、左、および、右斜め下に位置する3つの画素、並びに、注目画素自身を用いて、R,G,Bのラフな推定値を少なくとも1つ作成することができる。このようにして、粗補間処理部284は、R,G,Bのラフな推定値を各画素位置で算出することができる。
ここで、粗補間処理部284で得られるR,G,Bの推定値は、同じ位置におけるR,G,Bの推定値の組が得られればよいのであって、必ずしも本来のセンサの画素位置上でなくてもかまわない。例えば、画素から水平および垂直にちょうど1/2だけずれた位置(すなわち、4つの画素に囲まれる位置)について補間値を求めるようにしてもよい。この位置は、周囲各画素から水平・垂直に1/2画素ずれた位置であるので、間引きされた画素信号においては、周囲4画素に必ずRが1つ、Gが2つ、Bが1つ存在する。したがってR,Bに関してはNearestNeighbor補間(最近傍補間)を行い、Gに関しては近傍2画素の平均値を計算して、R,G,Bの3色に関するラフな推定値を各画素位置で算出することができるようにすればよい。
次に、図12は、統計量算出部285の構成を示すブロック図である。ここでは、GとRの統計量を計算する場合、すなわち、デモザイク処理部253のうち、統計量算出部285−1の処理を例として説明する。
統計量算出部285は、平均値算出部331、平均値算出部332、分散算出部333、および、共分散算出部334によって構成されている。平均値算出部331は、粗補間処理部284が算出した、局所領域におけるラフなG強度補間値のセットの供給を受け、その平均値を算出する。同様に、平均値算出部332は、粗補間処理部284が算出した、局所領域におけるラフなR強度補間値のセットの供給を受け、その平均値を算出する。分散算出部333は、平均値算出部331が算出したGの平均値と、局所領域におけるラフなG強度補間値のセットの供給を受け、Gの分散値を算出する。共分散算出部334は、平均値算出部331が算出したGの平均値とラフなG強度補間値のセット、および、平均値算出部332が算出したRの平均値とラフなR強度補間値のセットを受け取り、GとRの共分散値を算出する。
平均値算出部331および平均値算出部332は、例えば、次の式(1)を用いて、平均値Mcを計算する。
式(1)において、Croughiは、供給された色C(R,G,または、C)のラフな強度補間値のi(i=1乃至N)番目のデータである。色Cは、平均値算出部331においてはGであり、平均値算出部332においてはRである。また、wiは、i番目のデータに対する重み値(重み付け係数)である。
重み値wiは、i番目のデータの位置から注目画素位置への距離などを指標として、予め設定されている値である。図13および図14に、重み付け係数wiの例を示す。図13は、間引き処理が施されていない画像信号に対する5×5の領域の重み値wiを示すものであり、図14においては、間引き処理が施された画像信号に対する5×3の領域の重み付け係数wiの例を示すものである。これらの重み値の絶対値は、図13または図14に示されるものに制限されないことはいうまでもないが、これらに示されるように、注目画素位置に近いほど重み値が大きくなるように設定されるほうが好適である。
分散算出部332は、例えば次の式(2)に示される計算式によって第1の信号(ここではG)の分散値VC1C1を計算する。
この式において、C1roughiは、色C1(ここでは、G)のラフな強度補間値のi番目のデータ、MC1は色C1の平均値、wiはi番目のデータに対する重み値である。重み値wiは、平均値算出部331および平均値算出部333が用いたものと同じものを用いればよい。
共分散算出部334は、例えば次の式(3)に示される計算式によって、第1の信号(ここではG)と、第2の信号(ここではR)の共分散値VC1C2を計算する。
この式において、C2roughiは色C2(ここでは、R)のラフな強度補間値のi番目のデータ、MC2は色C2の平均値である。
式(2)を用いて説明した分散値の計算、および、式(3)を用いて説明した共分散の計算が実行された場合、定義どおりの正確な統計量が得られる。しかしながら、式(2)および式(3)の計算が実行された場合、積算が多く出現するために計算時間が長くなり、この演算をハードウェアで実現したときの回路規模が増加してしまう。そこで、より簡易な計算で、分散および共分散を算出するようにしてもよい。
例えば、共分散の演算に、次の式(4)を用いるようにしても良い。
ここで、関数sgn(a,b)は、2変数aとbの符号の一致を調べるものである。sgn(a,b)の出力は{1,0,-1}のうちのいずれかであるので、sgn{a,b}の演算は、実際には積算を必要としない。式(4)の計算は、式(3)の計算の各i番目のGとRとの偏差の積算を、GとRとの絶対偏差の和算に置き換えたものである。式(4)を用いて積算を和算に置き換えても、本発明の目的とする局所領域の色分布形状推定には充分な精度を有する近似値を算出することができる。
また、例えば、共分散の演算に、次の式(5)を用いるようにしても良い。
ここで、式(5)の計算は、式(3)の計算の各i番目のGとRとの偏差の積算を、GとRとの最小値の選択処理に置き換えたものである。なお、式(4)の計算より、式(5)の計算のほうが、式(3)における共分散演算への近似精度が良い。
式(4)または式(5)を用いて、式(3)に示される共分散の演算に対する近似演算が可能であることについて説明したが、式(2)を用いて説明した分散演算は、2つの入力が等しい場合の共分散と同等であるので、式(2)を用いて説明した分散演算も、式(4)または式(5)を用いて、同様にして近似演算することが可能であることは言うまでもない。具体的には、分散演算を近似した場合は、式(4)または式(5)のいずれを用いても、(C1roughi−MC1)2が(C1roughi−MC1)に近似される。
次に、図15は、回帰演算処理部286の構成を示すブロック図である。図15においては、Rに関する回帰演算処理部286(すなわち、回帰演算処理部286−1)を示しているが、GおよびBに関する動作は、RをGまたはBに置き換えればよいだけであり、基本的に同一の処理が実行される。
回帰演算処理部286は、傾き算出部351、傾き算出部352、傾き合成部353、および、画素強度推定部354で構成されている。
傾き算出部351は、Rの平均値MRとGの平均値MGに基づいたG−R色分布の傾きKmを算出する。具体的には、傾き算出部351は、式(6)の数式に示されるように、2つの平均値の比率を計算する。ここでは、C1はG、C2はRである。
Mthresholdはゼロで除算することにより値が発散するのを回避するための定数であり、十分に小さい正の値が予め設定されている。
傾き算出部352は、C1とC2の共分散値VC1,C2とC1の分散値VC1,C1に基づいたC1−C2の色分布の傾きKsを算出する。ここで、C1はG、C2はRである。具体的には、傾き算出部352は、式(7)に示されるように、分散、共分散値の比率を計算する。
Vthresholdは、ゼロで除算することによって値が発散するのを回避するための定数であり、十分に小さい正の値が予め設定される。式(7)におけるVthresholdを用いて、分母のC1の分散をクリップすることにより、ゼロによる除算を回避することができるが、Vthresholdを用いたクリッピングは、更に、画像の平坦部分におけるノイズを低減するために活用することができる。
すなわち、分母であるC1の分散は、その局所領域の輝度のばらつきを反映した値であり、その値が小さいことは、その局所領域が平坦であることと同義である。固体撮像素子のノイズは、画像が平坦であるほど良く目立つため、画像の平坦な部分に限ってノイズ低減処理を施すようにすると、全体の画像の品質を下げることなく、目立つノイズを効果的に低減させることができ、好適である。また、色分布の傾きKsの分母をクリップし、それ以上分母が小さくならないようにすることによって、Ksの絶対値が元の値より小さい値となるように抑制することができる。傾きKsの絶対値が小さく抑制されることによって、C1に対するC2の変化率が小さくなり、結果的に、その局所領域でのC2の振幅を抑制することができるという効果が生じる。
以上のように、傾きKsの分母に対するクリッピング処理により、画像が平坦かどうかの判定と出力振幅の抑制との両方の処理を実行した場合と同様に、ノイズ低減の作用がある。このように、本発明の色推定方法を用いれば、別途ノイズ低減処理を追加しなくても画像の平坦な部分で目立つノイズを抑制することができる。
傾き合成部353は、2つの傾き推定値KmとKsとを、信頼度hに基づいて合成し、傾き推定値Kを算出する。上述したとおり、分散、共分散に基づく傾き推定値Ksは、細い縞模様状のテクスチャがある領域では正しい推定ができるとは限らない。そこで、傾き合成部353は、細い縞模様状のテクスチャの強度を反映した信頼度hを用いて、例えば式(8)を用いて、平均値に基づく傾き推定値Kmと合成して、傾き推定値Kを算出するようにする。
そして、画素強度推定手段354は、得られた傾き推定値K、2つの平均値MGおよびMR、並びに、注目画素位置のG強度を、次の式(9)の線形回帰式に当てはめることによって、注目画素位置のR強度の推定値を算出する。
ここで、C1center、および、C2centerは、それぞれ、注目画素位置の第1の信号に対応する色C1(すなわちG)の強度、および、注目画素位置の第2の信号に対応する色C2(すなわちR)の強度推定値である。
また、画素強度推定手段354は、式(9)とは異なる回帰式を用いて、強度推定値を算出するようにしてもよい。例えば式(10)に示されるように、適当な定数uを傾き推定値Kに乗算させて、線形回帰計算を行うようにしてもよい。
式(10)において、第1項は第2の信号に対応する色C2(すなわち、R)強度の高周波成分、第2項は低周波成分と考えることができる。そして、式(10)においては、その高周波成分を適当な定数uで少し増強することにより、Rに対する適切な高域補正を実行した場合と同様の効果を得ることができる。このようにすることにより、別途高域補正処理を追加しなくても高域が補正された画像を得ることができる。
なお、上述した従来の第3の技術では、第2の信号に対応する色C2の強度の推定値をC2=MC2+β×(C1−MC1)という計算で求めるので、係数βが本発明のuに対応するかのようにみえる。しかしながら、従来の第3の技術においては、βは(C1−MC1)、すなわちC1強度の高周波成分を強調しているにすぎないので、第2の信号に対応する色C2の強度の高域成分を正しく補正することができるというわけではない。
以上においては、統計量算出部285において算出される、平均値、分散値、および共分散値を基に、回帰演算処理部286において、回帰直線の傾きKが算出される場合について説明したが、回帰直線の傾きは、これ以外の方法を用いて算出するようにしてもよい。
例えば、標準偏差および相関係数を用いて回帰直線の傾きを計算する定義式は以下の式(11)に表される。
標準偏差Sx,Syは、データ値が平均の周囲にどれだけの幅で分布しているのかを表す統計量であり、2変数のxy方向の変分を表すdx、dyに近い値であると考えられる。回帰直線は、この式(11)を用いて求めるようにしてもよい。
また、特に、正の傾きの直線上にデータが分布し、Rxyが1になる場合、Sx,Syはdx、dyと等価になる。つまり、計算の複雑な標準偏差を用いる代わりに、データ分布幅を表し、演算がより簡単な他の統計量があれば、Sx,Syを、データ分布幅を表す他の統計量に置き換えても、回帰直線の傾きは、近い振る舞いを示すことが期待できる。
そこで、データ分布幅を表す他の統計量として、標準偏差と並んでデータの分布幅を表すために用いられる平均偏差を代替に用いる。xの平均偏差Axの定義は、次の式(12)で示される。
同様にして、yの平均偏差Ayも、次の式(13)で示される。
平均偏差AxおよびAyを用いて、Rxyを書き改めると、次の式(14)が得られる。
標準偏差を用いた演算に平方根や乗算が必要であることと比較して、平均偏差は少ない計算量で算出することができる。そして、更に、Vxyの算出に用いられる乗算や、Ax,Ayの乗算を近似演算することで、Rxyの近似を高速に算出することができる。
このように、統計量算出部285において算出される、平均値、分散値、および共分散値を基に、回帰演算処理部286において、回帰直線の傾きKを算出する処理に代わって、標準偏差および相関関数を用いて、2系統のデータの2次元分布における回帰直線の傾きを計算したり、または、偏差と相関に関してそれぞれ近似演算した後、2系統のデータの2次元分布における回帰直線の傾きを計算するようにしてもよい。
次に、図16のフローチャートを参照して、デジタルスチルカメラ201が実行する撮像処理について説明する。
ステップS1において、CPU223は、操作入力部224よりバス225を介して供給される信号を基に、ユーザによりシャッタボタンが押下されたか否かを判断する。
ステップS1において、シャッタボタンが押下されていないと判断された場合、ステップS2において、CPU223は、タイミングジェネレータ217を制御して、CCDイメージセンサ213により取得される画像信号の一定のフレームレートでの間引き読み出しを実行させる。間引き読み出しされた画像信号は、相関2重サンプリング回路214によりノイズが除去され、A/Dコンバータ215によりデジタル信号に変換されて、DSPブロック216の画像用RAMに格納される。
ステップS3において、図17または図41を用いて後述する画像処理が実行される。
ステップS4において、D/Aコンバータ218は、DSPブロック216により同時化されたデジタルの画像信号をアナログ信号に変換し、ビデオエンコーダ219は、D/Aコンバータ218から供給されたアナログの画像信号をビデオ信号に変換し、表示部220に出力する。
ステップS5において、表示部220は、供給されたビデオ信号を表示する。すなわち、表示部220は、デジタルスチルカメラ201において、カメラのファインダの役割を担っている。
ステップS1において、シャッタボタンが押下されたと判断された場合、ステップS6において、CPU223は、タイミングジェネレータ217を制御して、CCDイメージセンサ213により取得される画像信号の一定のフレームレートでの全画素読み出しを実行させる。全画素読み出しされた画像信号は、相関2重サンプリング回路214によりノイズが除去され、A/Dコンバータ215によりデジタル信号に変換されて、DSPブロック216の画像用RAMに格納される。
ステップS7において、図17または図41を用いて後述する画像処理が実行される。
ステップS8において、コーデック処理部221は、DSPブロック216から供給された画像データに対して、所定の方式の符号化処理を実行する。
ステップS9において、メモリ222は、符号化された画像データの供給を受け、ユーザにより撮像された画像を記録する。
ステップS5、または、ステップS9の処理の終了後、ステップS10において、CPU223は、操作入力部224から供給される信号を基に、ユーザにより電源がOFFされたか否かを判断する。ステップS10において、電源がオフされていないと判断された場合、処理は、ステップS1に戻り、それ以降の処理が繰り返される。ステップS10において、電源がオフされたと判断された場合、処理は終了される。
このような処理により、ユーザによりシャッタボタンが押下されていないときは、画像の読み出しおよび処理を高速に実行可能なように、間引き読み出しが実行され、処理された画像がビデオデータに変換されて表示されるので、表示部220は、デジタルスチルカメラ201において、カメラのファインダの役割を担うことが可能となり、ユーザによりシャッタボタンが押下されたときは、高解像度の画像を取得するために、全画素読み出しが実行されて、処理された画像が符号化されて、撮像された画像として記録される。
次に、図17のフローチャートを参照して、図6のDS2Pブロック216が、図16のステップS3またはステップS7において実行する画像処理1について説明する。
ステップS21において、画像用RAM241は、CCDイメージセンサ213に用いられているカラーフィルタにより定められる配列(例えば、図4を用いて説明したモザイク配列231、または、図5を用いて説明したモザイク配列241)の周期的なパターンの強度信号により構成されるモザイク画像を取得して、一時保存する。
ステップS22において、信号処理用プロセッサ242のホワイトバランス調整部251は、モザイク画像に対して、無彩色の被写体領域の色バランスが無彩色になるように、各画素強度の持つ色に応じて適切な係数をかける処理であるホワイトバランス調整処理を行う。
ステップS23において、ガンマ補正部252は、ホワイトバランスがとられたモザイク画像の各画素強度に対し、表示部220に表示される画像の明るさや色の彩度が正しく表示されるようにガンマ補正を行う。
ステップS24において、デモザイク処理部253により、図18を用いて後述するデモザイク処理が実行される。
ステップS25において、スイッチ254は、供給されたRGBの画像データが、間引きされた画像であるか否かを判断する。ステップS25において、間引きされた画像ではないと判断された場合、スイッチ254は、供給された画像を階調変換処理部256に供給するので、処理は、ステップS27に進む。
ステップS25において、間引きされた画像であると判断された場合、ステップS26において、スイッチ254は、供給された画像を水平方向縮小処理部255に供給する。水平方向縮小処理部255は、供給された画像の縦横比が、間引きされていない画像と同一になるように水平方向に画像を縮小する。
ステップS25において、間引きされた画像ではないと判断された場合、または、ステップS26の処理の終了後、ステップS27において、階調変換処理部256は、供給された画像信号の階調を圧縮する階調変換処理を実行し、階調変換された画像信号をYC変換部257に供給する。
YC変換部257は、ステップS28において、階調変換処理部257からの出力であるR,G,Bの3チャネル画像に、マトリックス処理およびクロマ成分に対する帯域制限を行うことで、YC変換を行い、Y画像およびC画像を生成し、ステップS29において、生成したY画像およびC画像を出力し、処理が終了される。
このような処理により、DS2Pブロック216は、供給されたモザイク画像信号に対して、各種処理を施して、Y画像およびC画像を生成し、CPU223の制御に基づいて、その画像データを表示部220に表示させる場合は、D/Aコンバータ218に、メモリ222に記憶させる場合は、コーデック処理部221に供給する。
次に、図18のフローチャートを参照して、図17のステップS24において実行されるデモザイク処理1について説明する。
ステップS41において、局所領域抽出部281は、未処理の画素のうちのいずれかを注目画素とする。
ステップS42において、局所領域抽出部281は、供給されたモザイク画像データが、間引きされた画像であるか否かを判断する。ステップS42において、間引きされた画像ではないと判断された場合、処理は、ステップS45に進む。
ステップS42において、間引きされた画像であると判断された場合、ステップS43において、局所領域抽出部281は、注目画素位置の周辺の所定数(n×n)の画素を、局所領域として抽出し、G強度補間処理部282、信頼度算出部283、および、粗補間処理部284に供給する。
ステップS44において、図19のフローチャートを用いて後述する、粗補間処理1が実行される。
ステップS42において、間引きされた画像ではないと判断された場合、ステップS45において、局所領域抽出部281は、注目画素位置の周辺の所定数(n×m)の画素を、局所領域として抽出し、G強度補間処理部282、信頼度算出部283、および、粗補間処理部284に供給する。
ステップS46において、図20のフローチャートを用いて後述する、粗補間処理2が実行される。
ステップS44またはステップS46の処理の終了後、ステップS47において、G強度補間処理部282は、局所領域抽出部281により抽出された局所領域内の画素を用いて、注目画素位置のG強度を算出し、信頼度算出部283、および、回帰演算処理部286−1乃至286−3に供給する
ステップS48において、図21のフローチャートを用いて後述する信頼度値算出処理が実行される。
ステップS49において、図22のフローチャートを用いて後述する2色分布形状の統計量算出処理が、統計量算出部285−1乃至285−3において並行して実行される。
ステップS50において、図32のフローチャートを用いて後述する補間画素推定処理が、回帰演算処理部286−1乃至286−3において並行して実行される。
ステップS51において、局所領域抽出部281は、全ての画素において処理が終了したか否かを判断する。ステップS51において、全ての画素において処理が終了していないと判断された場合、処理は、ステップS41に戻り、それ以降の処理が繰り返される。ステップS51において、全ての画素において処理が終了したと判断された場合、処理は、図17のステップS25に進む。
換言すれば、デモザイク処理部253を構成する各部は、ある注目画素位置が決定されたときにその注目画素位置においてそれぞれの処理を実行し、全画素において、ステップS41乃至ステップS50の処理が終了された場合、処理が終了される。
このような処理により、CCDイメージセンサ213が有するカラーフィルタの配列に基づいて得られるモザイク画像をデモザイク(色補間、または、同時化)して、各画素において、カラーフィルタを構成する各色が補間された画像データを得ることができる。
次に、図19のフローチャートを参照して、図18のステップS44において実行される粗補間処理1について説明する。
粗補間処理部284は、ステップS61において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第1のレジスタの値sを初期化して、s=2とし、ステップS62において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第2のレジスタの値tを初期化して、t=2とする。
ステップS63において、粗補間処理部284は、画素(s、t)の画素強度を補間値α1とする。
ステップS64において、粗補間処理部284は、画素(s、t)の左隣の画素である画素(s−1、t)と、画素(s、t)に対して上の位置の画素である画素(s、t−1)との平均強度を補間値α2とする。
図4を用いて説明したモザイク配列231が用いられている場合、例えば、注目画素(s、t)がG強度を示す画素であったとき、画素(s−1、t)と画素(s、t−1)とは、R強度またはB強度を示し、注目画素(s、t)がR強度またはB強度を示す画素であったとき、画素(s−1、t)と画素(s、t−1)とは、G強度を示す。
ステップS65において、粗補間処理部284は、画素(s、t)の右隣の画素(s+1、t)と、画素(s、t)の下の画素(s、t+1)との平均強度を補間値α3とする。
図4を用いて説明したモザイク配列231が用いられている場合、例えば、注目画素(s、t)がG強度を示す画素であったとき、画素(s+1、t)と画素(s、t+1)とは、R強度またはB強度(ただし、ステップS64により得られる画素の平均強度に対応する色と異なる色)を示し、注目画素(s、t)がR強度またはB強度を示す画素であったとき、画素(s+1、t)と画素(s、t+1)とは、G強度を示す。
ステップS66において、粗補間処理部284は、注目画素に対して、左斜め上、および、右斜め下方向である画素(s−1、t−1)と、画素(s+1、t+1)との平均強度を補間値α4とする。
図4を用いて説明したモザイク配列231が用いられている場合、例えば、注目画素(s、t)がG強度を示す画素であったとき、画素(s−1、t−1)と画素(s+1、t+1)とは、同じくG強度を示し、例えば、注目画素(s、t)がR強度を示す画素であったとき、画素(s−1、t−1)と画素(s+1、t+1)とは、同じくR強度を示し、例えば、注目画素(s、t)がB強度を示す画素であったとき、画素(s−1、t−1)と画素(s+1、t+1)とは、同じくB強度を示す。
ステップS67において、粗補間処理部284は、注目画素に対して、左斜め下、および、右斜め上方向である画素(s−1、t+1)と、画素(s+1、t−1)との平均強度を補間値α5とする。
図4を用いて説明したモザイク配列231が用いられている場合、例えば、注目画素(s、t)がG強度を示す画素であったとき、画素(s−1、t+1)と画素(s+1、t−1)とは、同じくG強度を示し、例えば、注目画素(s、t)がR強度を示す画素であったとき、画素(s−1、t+1)と画素(s+1、t−1)とは、B強度を示し、例えば、注目画素(s、t)がB強度を示す画素であったとき、画素(s−1、t+1)と画素(s+1、t−1)とは、R強度を示す。
ステップS68において、粗補間処理部284は、ステップS63乃至ステップS66の処理により算出された補間値α1乃至α5が、それぞれ、RGBのいずれに対応するかを判定する。
ステップS69において、粗補間処理部284は、Gに対応する2つの補間値の平均値を、画素(s、t)のG補間値とする。
ステップS70において、粗補間処理部284は、Rに対応する補間値(2つであればその平均値)を、画素(s、t)のR補間値とする。
ステップS71において、粗補間処理部284は、Bに対応する補間値(2つであればその平均値)を、画素(s、t)のB補間値とする。
ステップS72において、粗補間処理部284は、処理を実行する画素位置を示す第2のレジスタの値tを参照し、t=n−1であるか否かを判断する。
ステップS72において、t=n−1ではないと判断された場合、ステップS73において、粗補間処理部284は、処理を実行する画素位置を示す第2のレジスタの値tを、t=t+1とし、処理は、ステップS63に戻り、それ以降の処理が繰り返される。
ステップS72において、t=n−1であると判断された場合、ステップS74において、粗補間処理部284は、処理を実行する画素位置を示す第1のレジスタの値sを参照し、s=n−1であるか否かを判断する。
ステップS74において、s=n−1ではないと判断された場合、ステップS75において、粗補間処理部284は、処理を実行する画素位置を示す第1のレジスタの値sを、s=s+1とし、処理は、ステップS62に戻り、それ以降の処理が繰り返される。
ステップS74において、s=n−1であると判断された場合、ステップS76において、粗補間処理部284は、注目画素付近の(n−2)の2乗個の画素のRGBの補間値の組を、統計量算出部285−1乃至285−3のそれぞれに出力し、処理は、図18のステップS47に進む。
このような処理により、局所領域として抽出されたn×nの画素に対して、注目画素を中心とした(n−2)×(n−2)個所の画素位置のそれぞれにおけるRGBの補間値が算出される。
ただし、図19を用いて説明した粗補間処理において、ステップS63乃至ステップS67の処理は相互に順序を入れ替えてもかまわなく、更に、ステップS69乃至ステップS71の処理も、相互に順序を入れ替えてもかまわない。
次に、図20のフローチャートを参照して、図18のステップS46において実行される粗補間処理2について説明する。
粗補間処理部284は、ステップS91において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第1のレジスタの値sを初期化して、s=2とし、ステップS92において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第2のレジスタの値tを初期化して、t=2とする。
ステップS93において、粗補間処理部284は、画素(s、t)の画素強度を補間値α1とする。
ステップS94において、粗補間処理部284は、画素(s、t)の上下の画素である画素(s、t−1)と、画素(s、t+1)との平均強度を補間値α2とする。
図5を用いて説明したモザイク配列241が用いられている場合、例えば、注目画素(s、t)がG強度を示す画素であったとき、画素(s、t−1)と、画素(s、t+1)とは、G強度を示し、注目画素(s、t)がR強度を示す画素であったとき、画素(s、t−1)と、画素(s、t+1)とは、B強度を示し、注目画素(s、t)がB強度を示す画素であったとき、画素(s、t−1)と、画素(s、t+1)とは、R強度を示す。
ステップS95において、粗補間処理部284は、画素(s、t)の右斜め上の画素である画素(s+1、t−1)、画素(s、t)の左の画素である画素(s−1、t)、および、画素(s、t)右斜め下の画素である画素(s+1、t+1)との平均強度を補間値α3とする。
図5を用いて説明したモザイク配列241が用いられている場合、例えば、注目画素(s、t)がG強度を示す画素であったとき、画素(s+1、t−1)、画素(s−1、t)、および、画素(s+1、t+1)は、いずれもR強度を示すか、いずれもB強度を示し、例えば、注目画素(s、t)がR強度、または、B強度を示す画素であったとき、画素(s+1、t−1)、画素(s−1、t)、および、画素(s+1、t+1)は、いずれもG強度を示す。
ステップS96において、粗補間処理部284は、注目画素に対して、左斜め上、左斜め下、および、右の画素である画素(s−1、t−1)、画素(s−1、t+1)、および、画素(s+1、t)の平均強度を補間値α4とする。
図5を用いて説明したモザイク配列241が用いられている場合、例えば、注目画素(s、t)がG強度を示す画素であったとき、画素(s+1、t−1)、画素(s−1、t)、および、画素(s+1、t+1)は、いずれもR強度を示すか、いずれもB強度を示し、例えば、注目画素(s、t)がR強度、または、B強度を示す画素であったとき、画素(s+1、t−1)、画素(s−1、t)、および、画素(s+1、t+1)は、いずれもG強度を示す。
ステップS97において、粗補間処理部284は、ステップS93乃至ステップS96の処理により算出された補間値α1乃至α4が、それぞれ、RGBのいずれに対応するかを判定する。
ステップS98において、粗補間処理部284は、Gに対応する2つの補間値の平均値を、画素(s、t)のG補間値とする。
ステップS99において、粗補間処理部284は、Rに対応する補間値を、画素(s、t)のR補間値とする。
ステップS100において、粗補間処理部284は、Bに対応する補間値を、画素(s、t)のB補間値とする。
ステップS101において、粗補間処理部284は、処理を実行する画素位置を示す第2のレジスタの値tを参照し、t=m−1であるか否かを判断する。
ステップS101において、t=m−1ではないと判断された場合、ステップS102において、粗補間処理部284は、処理を実行する画素位置を示す第2のレジスタの値tを、t=t+1とし、処理は、ステップS93に戻り、それ以降の処理が繰り返される。
ステップS101において、t=m−1であると判断された場合、ステップS103において、粗補間処理部284は、処理を実行する画素位置を示す第1のレジスタの値sを参照し、s=n−1であるか否かを判断する。
ステップS103において、s=n−1ではないと判断された場合、ステップS104において、粗補間処理部284は、処理を実行する画素位置を示す第1のレジスタの値sを、s=s+1とし、処理は、ステップS92に戻り、それ以降の処理が繰り返される。
ステップS103において、s=n−1であると判断された場合、ステップS105において、粗補間処理部284は、注目画素付近の(n−2)(m−2)の画素のRGBの補間値の組を、統計量算出部285−1乃至285−3のそれぞれに出力し、処理は、図18のステップS47に進む。
このような処理により、局所領域として抽出されたn×nの画素に対して、注目画素を中心とした(n−2)(m−2)個所の画素位置のそれぞれにおけるRGBの補間値が算出される。
ただし、図20を用いて説明した粗補間処理において、ステップS93乃至ステップS96の処理は相互に順序を入れ替えてもかまわなく、更に、ステップS98乃至ステップS100の処理も、相互に順序を入れ替えてもかまわない。
次に、図21のフローチャートを参照して、図18のステップS48において信頼度算出部283により実行される、信頼度算出処理について説明する。
ステップS121において、信頼度算出部283の高周波抽出部321−1乃至321−6は、図10または図11を用いて説明した、注目画素付近の所定の12の位置のG補間値、すなわち、自分自身が抽出する高周波を求めるために必要な画素位置のG補間値を算出する。
ステップS122において、高周波抽出部321−1乃至321−6は、ステップS121の処理において算出されたG補間値を基に、注目画素を中心とした、6方向の高周波成分を、それぞれ抽出し、加算処理部322に供給する。
ステップS123において、加算処理部322は、高周波抽出部321−1乃至321−6から供給された、6つの高周波成分を加算して、クリッピング処理部323に出力する。
ステップS124において、クリッピング処理部323は、加算処理部322から供給された加算結果をクリッピングし、その値を信頼度値として、回帰演算処理部286−1乃至286−3に出力し、処理は、図18のステップS49に進む。
このような処理により、注目画素近辺に高周波成分が存在するか否かを示す信頼度値が算出されて、回帰演算処理部286−1乃至286−3に出力される。算出される信頼度値は、細い縞模様状のテクスチャの強度が大きいほど信頼度値が大きくなるので、信頼度値が小さいほうが統計量による色分布形状の推定が確かである可能性が高い。
次に、図22のフローチャートを参照して、図18のステップS49において、統計量算出部285−1乃至285−3において実行される、2色分布形状の統計量算出処理について説明する。
なお、統計量算出部285−1乃至285−3においては、それぞれ、RGBのうち、2色の粗補間値の供給を受け(統計量算出部285−2においては、Gの粗補間値を2系統で供給される)、その統計量を同様の処理により算出することができるようになされているので、図22のフローチャートにおいては、統計量算出部285に供給される2色の粗補間値を、それぞれ、第1の信号および第2の信号として説明する。
ステップS131において、統計量算出部285の平均値算出部331は、粗補間値処理部284から供給された粗補間値のうちの、第1の信号(統計量算出部285−1乃至285−3のいずれにおいてもGの粗補間値)を取得する。
ステップS132において、平均値算出部331は、図23または図24のフローチャートを用いて後述する平均値計算処理を実行する。
ステップS133において、平均値算出部333は、粗補間値処理部284から供給された粗補間値のうちの、第2の信号(統計量算出部285−1においては、Rの粗補間値であり、粗補間値処理部285−2においてはGの粗補間値であり、粗補間値処理部285−3においてはBの粗補間値である)を取得する。
ステップS134において、平均値算出部333は、図23または図24のフローチャートを用いて後述する平均値計算処理を実行する。
ステップS135において、分散算出部332は、図25のフローチャートを用いて後述する、分散計算処理を実行する。
ステップS136において、共分散算出部334は、図26のフローチャートを用いて後述する、共分散計算処理を実行し、処理は、図18のステップS50に戻る。
次に、図23のフローチャートを参照して、図22のステップS132またはステップS134において実行される平均値計算処理1について説明する。
ステップS141において、平均値算出部331または平均値算出部333は、演算結果である平均値Mx(平均値Mxの添え字xは、G補間値の平均値が算出される場合Gに、R補間値の平均値が算出される場合Rに、B補間値の平均値が算出される場合Bに、それぞれ置き換えられる)を初期化する。
ステップS142において、平均値算出部331または平均値算出部333は、取得した補間値(ここでは、(n−2)の2乗個の補間値)を合計する。
ステップS143において、平均値算出部331または平均値算出部333は、ステップS142において算出された合計値を、取得した値の数(ここでは、(n−2)の2乗個)で除算する。
ステップS144において、平均値算出部331または平均値算出部333は、ステップS143の処理により算出された除算結果を出力し、処理は、図22のステップS133、または、ステップS135に進む。
また、平均値を求める場合、粗補間されたRGBのそれぞれの強度に、例えば、図13または図14を用いて説明したように、注目画素からの距離により、重み付けを施して、重み付けが施されたRGB強度を基に、平均値を求めるようにしても良い。
図24のフローチャートを参照して、図22のステップS132またはステップS134において実行される平均値計算処理2について説明する。
ステップS151において、平均値算出部331または平均値算出部333は、演算結果である平均値Mx(平均値Mxの添え字xは、G補間値の平均値が算出される場合Gに、R補間値の平均値が算出される場合Rに、B補間値の平均値が算出される場合Bに、それぞれ置き換えられる)を初期化する。
ステップS152において、平均値算出部331または平均値算出部333は、取得した補間値(ここでは、(n−2)の2乗個の補間値)に、例えば、図13または図14を用いて説明したような重み付けを施し、重み付けられた値を合計する。
ステップS153において、平均値算出部331または平均値算出部333は、重み付けの総和を演算する。
ステップS154において、平均値算出部331または平均値算出部333は、上述した式(1)を演算する。すなわち、ステップS154において、平均値算出部331または平均値算出部333は、ステップS152において算出された合計値を、取得した値の数(ここでは、(n−2)の2乗個)と、ステップS153において算出された重み付けの総和との積で除算する。
ステップS155において、平均値算出部331または平均値算出部333は、ステップS154の処理により算出された除算結果を出力し、処理は、図22のステップS133、または、ステップS135に進む。
次に、図25のフローチャートを参照して、図22のステップS135において実行される分散計算処理1について説明する。
ステップS171において、統計量算出部285の分散算出部332は、演算結果であるとして出力する分散値Vxx(ここでは、第1の信号は、全てG強度であるので、G補間値の分散値が算出される。したがって、Vxxの添え字xは、Gに置き換えられる)を初期化する。
ステップS172において、分散算出部332は、平均値算出部331により算出された第1の信号の平均値Mx(ここでは、第1の信号は、全てG強度であるので、Mxの添え字xは、Gに置き換えられる)を取得する。
分散算出部332は、ステップS173において、局所領域のうちの一部(注目画素を中心とした、(n−2)×(n−2)の範囲)の画素の粗補間値の供給を受け、そのうち、処理を実行する画素位置を示す第1のレジスタの値s'を初期化して、s'=1とし、ステップS174において、局所領域のうちの一部(注目画素を中心とした、(n−2)×(n−2)の範囲)の画素の粗補間値のうち、処理を実行する画素位置を示す第2のレジスタの値t'を初期化して、t'=1とする。
ステップS175において、分散算出部332は、画素(s’,t’)の強度X(ここでは、G強度)から、ステップS172において取得された平均値Mxを減算し、減算結果を2乗して、現在の分散値Vxxに加えた値を、分散値Vxxとして更新する。すなわち、分散算出部332は、Vxx=Vxx+(|画素(s’,t’)の強度X−平均値Mx|)2を演算する。分散算出部332は、この演算において、画素(s’,t’)の強度Xに対して、例えば、図13または図14を用いて説明したような重み付けを施すようにしても良い。
ステップS176において、分散算出部332は、処理を実行する画素位置を示す第2のレジスタの値t'を参照し、t'=n−2またはm−2であるか否か(間引きされていない画像信号に対しては、t'=n−2であるか否か、間引きされている画像信号に対しては、t'=m−2であるか否か)を判断する。
ステップS176において、t'=n−2またはm−2ではないと判断された場合、ステップS177において、分散算出部332は、第2のレジスタの値t'を、t'=t'+1に更新して、処理は、ステップS175に戻り、それ以降の処理が繰り返される。
ステップS176において、t'=n−2またはm−2であると判断された場合、ステップS178において、分散算出部332は、処理を実行する画素位置を示す第1のレジスタの値s'を参照し、s'=n−2であるか否かを判断する。
ステップS178において、s'=n−2ではないと判断された場合、ステップS179において、分散算出部332は、第1のレジスタの値s'を、s'=s'+1に更新して、処理は、ステップS174に戻り、それ以降の処理が繰り返される。
ステップS178において、s'=n−2であると判断された場合、ステップS180において、分散算出部332は、局所領域のうちの一部(注目画素を中心とした、(n−2)×(n−2)の範囲)の粗補間値の分散値Vxxを出力し、処理は、図22のステップS136に戻る。
分散値の算出は、定義上では、(|画素(s’,t’)の強度X−平均値Mx|)2を分散値の演算に用いた画素の数で除算する必要があるが、分散値の算出結果は、後述する処理により、共分散値の算出結果の除算に用いられるため、共分散値の算出においても同数で除算される場合は、除算処理を、分散値の演算および共分散値の演算の両方にて省略することが可能である。
なお、分散値の算出において、重み付けが施された場合、式(2)を用いて説明した分散値の定義に示されるように、(|画素(s’,t’)の強度X−平均値Mx|)2を重み係数の総和で除算することにより、分散値を算出することができる。しかしながら、分散値の算出結果は、後述する処理により、共分散値の算出結果の除算に用いられるため、共分散値の算出においても重み付けが施されているときは、重み係数の総和での除算処理を、分散値の演算および共分散値の演算の両方にて省略することが可能である。
また、図25を用いて説明した分散計算処理1においては、2乗の計算があるため、演算処理に時間がかかったり、ハードウェアの規模が大きくなるという問題が発生する。そこで、近似計算により2乗の計算を省略するようにしても良い。
次に、図26のフローチャートを参照して、近似計算により2乗の計算を省略する場合に、図22のステップS135において実行される分散計算処理2について説明する。
ステップS191乃至ステップS194においては、図25を用いて説明したステップS171乃至ステップS174と同様の処理が実行される。
ステップS195において、分散算出部332は、画素(s’,t’)の強度X(ここでは、G強度)から、ステップS142において取得された平均値Mxを減算し、減算結果を2乗して、現在の分散値Vxxに加えた値を、分散値Vxxとして更新する。すなわち、分散算出部332は、Vxx=Vxx+(|画素(s’,t’)の強度X−平均値Mx|)を演算する。分散算出部332は、この演算において、画素(s’,t’)の強度Xに対して、例えば、図13または図14を用いて説明したような重み付けを施すようにしても良い。
値|p|が正規化され、0≦|P|<1が成り立っているとき、p2は|p|で近似することが可能である。これは、式(4)または式(5)を用いて、式(3)に示される共分散の演算に対する近似演算が可能であることと同様である。
そして、ステップS196乃至ステップS200においては、図25を用いて説明したステップS176乃至ステップS180と同様の処理が実行され、処理は、図22のステップS136に戻る。
このように、式(4)または式(5)を用いて、式(3)に示される共分散の演算に対する近似演算を行う場合と同様の近似演算処理により、分散値の演算に必要な2乗の計算を省略した近似演算により、分散値の近似値を求めることが可能となる。
次に、図27のフローチャートを参照して、図22のステップS136において実行される、共分散計算処理について説明する。
ステップS211において、共分散算出部334は、出力される値である共分散値Vxy(ここでは、第1の信号は、全てG強度であるので、Vxyの添え字xは、Gに置き換えられる。そして、第2の信号がR強度であるときVxyの添え字yはRに置き換えられ、第2の信号がG強度であるときVxyの添え字yはGに置き換えられる)を初期化する。
ステップS212において、共分散算出部334は、平均値算出部331による図22のステップS92の処理により算出された第1の信号の平均値Mx、および、平均値算出部333による図22のステップS94の処理により算出された第2の平均値Myを取得する。
ステップS213において、共分散算出部334は、局所領域のうちの一部(注目画素を中心とした、(n−2)×(n−2)の範囲)の画素の粗補間値の供給を受け、そのうち、処理を実行する画素位置を示す第1のレジスタの値s'を初期化して、s’=1とする
ステップS214において、共分散算出部334は、局所領域のうちの一部(注目画素を中心とした、(n−2)×(n−2)の範囲)の画素の粗補間値のうち、処理を実行する画素位置を示す第2のレジスタの値t'を初期化して、t’=1とする
ステップS215において、図28または図29を用いて後述する積算処理が実行される。
ステップS216において、共分散算出部334は、処理を実行する画素位置を示す第2のレジスタの値t'を参照し、t’=n−2またはm−2であるか否か(間引きされていない画像信号に対しては、t'=n−2であるか否か、間引きされている画像信号に対しては、t'=m−2であるか否か)を判断する。
ステップS216において、t'=n−2またはm−2ではないと判断された場合、ステップS217において、共分散算出部334は、第2のレジスタの値t'を、t'=t'+1に更新して、処理は、ステップS215に戻り、それ以降の処理が繰り返される。
ステップS216において、t'=n−2またはm−2であると判断された場合、ステップS218において、共分散算出部334は、処理を実行する画素位置を示す第1のレジスタの値s'を参照し、s'=n−2であるか否かを判断する。
ステップS218において、s'=n−2ではないと判断された場合、ステップS219において、共分散算出部334は、第1のレジスタの値s'を、s'=s'+1に更新して、処理は、ステップS144に戻り、それ以降の処理が繰り返される。
ステップS218において、s'=n−2であると判断された場合、ステップS220において、共分散算出部334は、共分散値Vxyを出力して、処理は、図18のステップS50に進む。
共分散値の算出は、定義上では、(|画素(s’,t’)の強度X−平均値Mx|)(|画素(s’,t’)の強度y−平均値My|)を、共分散値の演算に用いた画素の数で除算する必要があるが、共分散値の算出結果は、後述する処理により、分散値の算出結果で除算されるため、分散値の算出においても同数で除算される場合は、除算処理を、分散値の演算および共分散値の演算の両方にて省略することが可能である。
なお、共分散値の算出において、重み付けが施された場合、式(3)を用いて説明した分散値の定義に示されるように、(|画素(s’,t’)の強度X−平均値Mx|)(|画素(s’,t’)の強度y−平均値My|)を重み係数の総和で除算することにより、共分散値を算出することができる。しかしながら、共分散値の算出結果は、後述する処理により、分散値の算出結果で除算されるため、分散値の算出においても重み付けが施されているときは、重み係数の総和での除算処理を、分散値の演算および共分散値の演算の両方にて省略することが可能である。
上述した図27の共分散計算処理のステップS215において実行される積算処理には、上述した式(3)を用いて、定義どおり、共分散値が算出される場合に実行される積算処理1と、近似演算を用いて共分散値が算出される場合に実行される積算処理2との、2種類の処理がある。
次に、図28のフローチャートを参照して、図27のステップS215において実行される積算処理1について説明する。積算処理1は、上述した式(3)を用いて、定義どおり、共分散値が算出される場合に実行される処理である。
ステップS231において、共分散算出部334は、(第1の信号の画素(s’,t’)の強度X−第1の信号の平均値Mx)と、(第2の信号の画素(s’,t’)の強度Y−第2の信号の平均値My)の積を演算する。
ステップS232において、共分散算出部334は、Vxy=Vxy+wi(積算結果)とし、処理は、図27のステップS216に進む。ここで、wiは、画素(s’,t’)における重み付けの値である。
このような積算処理が実行されることにより、上述した式(3)を用いて、定義どおり、共分散値が算出される。積算処理1が実行された場合、定義どおりの演算であるので、その演算結果は、非常に精度の高いものであるが、そのかわり、演算に時間がかかったり、ハードウェア実装におけるゲート数の増加を招いてしまう。
次に、図29のフローチャートを参照して、図27のステップS215において実行される積算処理2について説明する。積算処理2は、上述した式(4)または式(5)を用いて、近似された共分散値が算出される場合に実行される処理である。
ステップS241において、共分散算出部334は、{第1の信号の画素(s’,t’)の強度X−第1の信号の平均値Mx}をpとする。
ステップS242において、共分散算出部334は、{第2の信号の画素(s’,t’)の強度Y−第2の信号の平均値My}をqとする。
ステップS243において、図30、または、図31を用いて後述する積算近似処理が実行される。
ステップS244において、共分散算出部334は、Vxy=Vxy+(pqの近似値)とし、処理は、処理は、図27のステップS216に進む。
次に、図30のフローチャートを参照して、図29のステップS243において実行される積算近似処理1について説明する。積算近似処理1は、上述した式(4)を用いて、近似された共分散値が算出される場合に実行される処理である。
ステップS261において、共分散算出部334は、図29のステップS241およびステップS242において置き換えられた値pおよびqを用いて、|p|≧|q|であるか否かを判断する。
ステップS261において、|p|≧|q|であると判断された場合、ステップS262において、共分散算出部334は、p≧0であるか否かを判断する。
ステップS262において、p≧0であると判断された場合、ステップS263において、共分散算出部334は、pqの近似値=+qとし、処理は、図29のステップS244に戻る。
ステップS262において、p≧0ではないと判断された場合、ステップS264において、共分散算出部334は、pqの近似値=−qとし、処理は、図29のステップS244に戻る。
ステップS261において、|p|≧|q|ではないと判断された場合、ステップS265において、共分散算出部334は、q≧0であるか否かを判断する。
ステップS265において、q≧0であると判断された場合、ステップS266において、共分散算出部334は、pqの近似値=+pとし、処理は、図29のステップS244に戻る。
ステップS265において、q≧0ではないと判断された場合、ステップS267において、共分散算出部334は、pqの近似値=−pとし、処理は、図29のステップS244に戻る。
この処理において、qまたはpが0である場合、pqの近似値は必ず0となる。具体的には、qが0であるとき、|p|≧|q|は必ず成り立つので、pの値に関わらず、pqの近似値は0となる。また、pが0であるとき、|p|≧|q|は必ず成り立たないので、qの値に関わらず、pqの近似値は0となる。
図30を用いて説明した処理により、上述した式(4)を用いて、共分散値を近似することが可能である。
次に、図31のフローチャートを参照して、図29のステップS243において実行される積算近似処理2について説明する。積算近似処理1は、上述した式(5)を用いて、近似された共分散値が算出される場合に実行される処理である。
ステップS281において、共分散算出部334は、図29のステップS241およびステップS242において置き換えられた値pおよびqを用いて、pまたはqが0であるか否かを判断する。
ステップS281において、pまたはqが0であると判断された場合、ステップS281において、共分散算出部334は、pqの近似値を0とし、処理は、図29のステップS244に戻る。
ステップS281において、pおよびqはいずれも0ではないと判断された場合、ステップS283において、共分散算出部334は、pおよびqの関係は、p>0かつq>0、または、p<0かつq<0のうちのいずれか一方であるか否かを判断する。
ステップS283において、pおよびqの関係は、p>0かつq>0、または、p<0かつq<0のうちのいずれか一方であると判断された場合、ステップS284において、共分散算出部334は、pqの近似値を(|p|+|q|)/2とし、処理は、図29のステップS244に戻る。
テップS283において、pおよびqの関係は、p>0かつq>0、または、p<0かつq<0のうちのいずれでもないと判断された場合、ステップS285において、共分散算出部334は、pqの近似値を、(−|p|−|q|)/2とし、処理は、図29のステップS244に戻る。
なお、図29のステップS241およびステップS242において置き換えられた値pまたはqが、0の値を取ることは、非常にまれである。そこで、ステップS281およびステップS282の処理を省略するようにしてもよい。このようにすることにより、演算処理速度を高速化したり、ハードウェアの実装規模を縮小するようにすることが可能である。
図31を用いて説明した処理により、上述した式(5)を用いて、共分散値を近似することが可能である。
図29乃至図31を用いて説明した積算処理が実行されることにより、上述した式(4)または式(5)を用いて、共分散値を近似することが可能である。このようにした場合、式(3)に示される定義どおりの共分散値の演算が実行された場合と比較して、計算速度が高速化されたり、計算のために実装されるハードウェアのゲート数を少なくすることができるなどの利点が発生する。
次に、図32のフローチャートを参照して、図18のステップS27において実行される、補間画素推定処理について説明する。
ステップS321において、傾き算出部351は、上述した式(6)を用いて、平均値に基づく傾き推定値Kmを算出し、傾き合成部353に出力する。
ステップS322において、傾き算出部352は、上述した式(7)を用いて、分散値および共分散値に基づく傾き推定値Ksを算出し、傾き合成部353に出力する。
ここで、傾き算出部352は、上述した式(7)に示されるように、傾きKsの分母に対するクリッピング処理を行う。このクリッピング処理は、画像が平坦かどうかの判定と出力振幅の抑制との両方の処理を実行した場合と同様に、ノイズ低減の作用がある。この処理が実行されることにより、別途ノイズ低減処理を追加しなくても画像の平坦な部分で目立つノイズを抑制することができる。
ステップS323において、傾き合成部353は、ステップS321において算出された傾き推定値Kmと、ステップS322において算出された傾き推定値Ksとを、上述した式(8)を用いて、信頼度hに基づいて合成し、傾き推定値Kを算出し、画素強度推定部354に出力する。
ステップS324において、素強度推定部354は、ステップS323において算出された傾き推定値K、2つの平均値MGおよびMR(またはMB)、並びに、注目画素位置のG強度とを基に、上述した式(9)または式(10)の線形回帰式を用いて、注目画素位置のR強度(またはB強度)の推定値を算出し、処理は、図18のステップS28に戻る。
このような処理により、注目画素位置の各色の推定強度を算出することができる。特に、推定強度を算出する場合の線形回帰式に、上述した式(10)を用いて、傾きKに、1より大きな適当な定数uを乗算することにより、その高周波成分を少し増強して、Rに対する適切な高域補正を実行した場合と同様の効果を得ることができる。このようにすることにより、別途高域補正処理を追加しなくても高域が補正された画像を得ることができる。
以上説明したように、図4を用いて説明したモザイク配列231(全画素読み出し)は、G信号が市松上に配置されるようになされ、水平垂直方向のいずれにも均等に分布し、かつ、R信号およびB信号も、水平垂直方向のいずれにも均等に分布しており、更に、図5を用いて説明したモザイク配列241(間引き読み出し)においても、得られる色配列は、1列おきのGストライプとなり、Gではない列には、RとBが、それぞれ同一水平ラインに均一に混在し、かつ、同一垂直ラインに交互に配列されるようになされている。すなわち、図4および図5を用いて説明したフィルタ配列を用いた本発明のデジタルスチルカメラ201は、従来用いられてきたフィルタ配列により画像信号が取得される場合と比較して、全画素読み出しおよび間引き読み出しのいずれにおいても、精度良くGの補間処理を行うことが可能となり、更に、RBの補間精度の方向によるばらつきが発生しにくいため、偽色などの発生を抑えることができる。
以上の説明においては、RGBの同時化処理を、線形回帰直線を求めることにより実現するものとして説明したが、RGBの同時化処理を、線形回帰直線を求める以外の、例えば、以下のような方法で算出することで実現してもよい。
第1の方法・・・局所領域内で色の変化は少ないと仮定して、求める色の情報のみを用いて、重み付け平均で算出する。
第2の方法・・・局所領域内で低周波の色の比率と高周波の色の比率は、略等しいと仮定して算出する。
第3の方法・・・局所領域内のG強度信号と、R強度信号またはB強度信号との相関は高いと仮定して算出する。
次に、前記の具体的な方法について、図33を用いて、間引きされた5×3のモザイク配列の中央の画素であるG5の位置に対応するRを算出する場合を例として説明する。なお、図33に対応する重み付け係数には、図14を用いて説明した重み付け係数を使用する。
上述した第1の方法において、G5の位置のRは次の式(15)で示される。
R=(R1×2+R2×6+R3×2)/10・・・(15)
上述した第2の方法において、G5の位置のRは次の式(16)で示される。
R=G5×LPF(R)/LPF(G)・・・(16)
なお、式(16)において、LPF(R)=(R1×2+R2×6+R3×2)/10であり、LPF(G)=(G1+G3+G7+G9+(G2+G4+G6+G8)×3+G5×9)/25である。
そして、上述した第3の方法において、G5の位置のRは次の式(17)で示される。
R=k×(G5―LPF(G))+LPF(R)・・・(17)
なお、式(17)において、LPF(R)=(R1×2+R2×6+R3×2)/10であり、LPF(G)=(G1+G3+G7+G9+(G2+G4+G6+G8)×3+G5×9)/25であり、kは、局所領域内のRとGの統計量から算出した回帰直線の傾きである。
上述したように、本発明を適用した図4のモザイク配列231を有するカラーフィルタを用いた場合、全画素読み出しおよび間引き読み出しのいずれにおいても、RGBの分布が従来における場合よりも特定方向に偏らず均一であるため、特定方向に解像度の劣化が生じてしまうことなく、偽色、および、方向による解像度のばらつきが抑えられ、高品質な画像を得ることができる。
また、CCDイメージセンサ213のオンチップカラーフィルタに用いられているモザイク配列には、図4を用いて説明した第1の例のモザイク配列231以外にも、例えば、図34に示されるように、色フィルタ配列は第1の例と同じであるが、それに加えて、行ごとに異なる感度を交互に適用しているモザイク配列361を用いるようにしても良い。
図34においては、色情報に付加された数字において、1が明るい感度、0が暗い感度を示しているものとする。
図34に示されるモザイク配列361がCCDイメージセンサ213のオンチップカラーフィルタに用いられている場合、第1の例のモザイク配列231がCCDイメージセンサ213のオンチップカラーフィルタに用いられている場合とは異なり、1行おきに間引き処理を行ってしまっては、間引き後のモザイク画像には、いずれか一方の感度の色強度信号しか残らなくなってしまう。したがって、CPU223は、タイミングジェネレータ217を制御し、CCDイメージセンサ213において取得された画像信号の読み出しを、2行ごとに読出し、スキップが交互に実行されるようにする。
このような2行ごとの間引き読み出しにより得られる間引きされたモザイク配列を図35に示す。図35のモザイク配列362においては、1行ごとに、明るい感度の画像信号と暗い感度の画像信号を得ることが可能となる。したがって、第2の例に示されるモザイク配列のオンチップカラーフィルタを用いたデジタルスチルカメラ201は、DSPブロック216において、双方の感度の色強度情報を用いてデモザイク処理を行うことができるので、偽色などのノイズの発生を防止することができるのみならず、白とびや黒つぶれを防止して、より高画質の画像を得ることができる。
図34に示されるモザイク配列361がCCDイメージセンサ213のオンチップカラーフィルタに用いられている場合、デジタルスチルカメラ201のDSPブロック216は、図7を用いて説明したデモザイク処理部253に代わって、図36のデモザイク処理部371が用いられる。
なお、図7と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図36のデモザイク処理部371は、図34および図35を用いて説明したモザイク配列のモザイク画像データを処理するために必要な感度補償部375が新たに設けられている以外は、基本的に、図7のデモザイク処理部253と同様の構成を有するものである。
感度補償部375は、局所領域抽出部281により抽出された局所領域のモザイク画像の入力を受け、更に、CPU223より、CCDイメージセンサ213のオンチップカラーフィルタに用いられているモザイク配列361の高感度と低感度との感度比の供給を受け、モザイク画像の各画素の信号強度が有効値(すなわち、白とびや黒つぶれをしていない値)であれば、低感度の画素の色成分信号を、高感度で撮影されたものに相当するように補償して、得られた感度補償済みの局所的な色モザイク画像を、G強度補間処理部282、信頼度算出部283、および、粗補間処理部284に供給する。
図37は、感度補償部375の構成を示すブロック図である。
感度補償部375の乗算部381は、局所領域抽出部281から供給されたモザイク画像の各画素に対して、高感度で撮影された画素と低感度で撮影された画素の感度比を乗算し、セレクタ382に出力する。セレクタ382は、モザイク画像と、乗算部381が出力する感度補償されたモザイク画像の入力を受け、予め保持しているモザイク画像の感度配列を示す情報に基づき、高感度の画素位置の色強度信号については、モザイク画像の色強度信号を有効性判定部383にそのまま出力し、低感度の画素位置については、乗算部381から供給された、感度補償されたモザイク画像の色強度信号を、有効性判定部383に出力する。
有効性判定383は、セレクタ382から入力される、画素の撮影時の感度が高感度に統一された局所的なモザイク画像を構成する画素のうち、その画素値(色成分の値)が所定のノイズレベル以下(すなわち、黒つぶれ)であるもの、または、その画素値が所定の飽和レベル以上であるもの(すなわち、白とび)を無効な画素であると判定し、画素値を無効な画素であることを示す値(例えば、負の値)に置換して、G強度補間処理部282、信頼度算出部283、および、粗補間処理部284に出力する。
次に、図38のフローチャートを参照して、図36のデモザイク処理部371が実行するデモザイク処理2について説明する。
ステップS351において、局所領域抽出部281は、未処理の画素のうちのいずれかを注目画素とする。
ステップS352において、感度補償部375は、供給されたモザイク画像データの感度補償処理を行う。具体的には、図37を用いて説明したように、乗算部381は、局所領域抽出部281から供給されたモザイク画像の各画素に対して、高感度で撮影された画素と低感度で撮影された画素の感度比を乗算し、セレクタ382は、予め保持しているモザイク画像の感度配列を示す情報に基づき、高感度の画素位置の色強度信号については、モザイク画像の色強度信号を有効性判定部383にそのまま出力し、低感度の画素位置については、乗算部381から供給された、感度補償されたモザイク画像の色強度信号を、有効性判定部383に出力する。有効性判定383は、画素値が所定のノイズレベル以下であるもの、または、その画素値が所定の飽和レベル以上であるものを無効な画素であると判定し、画素値を無効な画素であることを示す値に置換して、G強度補間処理部282、信頼度算出部283、および、粗補間処理部284に出力する。
ステップS353乃至ステップS362において図18のステップS42乃至ステップS51と同等の処理が実行される。すなわち、間引きされた画像であるか否かが判断されて、間引きされていない、全画素読み出し画像に対しては、注目画素位置の周辺の所定数(n×n)の画素が局所領域として抽出され、図19のフローチャートを用いて説明した粗補間処理1が実行される。
そして、間引きされた画像であると判断された場合、注目画素位置の周辺の所定数(n×m)の画素が局所領域として抽出され、図20のフローチャートを用いて説明した粗補間処理2が実行される。
粗補間処理1または粗補間処理2の終了後、注目画素位置のG強度が算出され、図21のフローチャートを用いて説明した値算出処理が実行され、図22のフローチャートを用いて説明した2色分布形状の統計量算出処理が実行され、図32のフローチャートを用いて説明した補間画素推定処理が実行される。
そして、全ての画素において処理が終了したか否かを判断する。ステップS351に戻り、それ以降の処理が繰り返される。全ての画素において処理が終了したと判断された場合、処理は、図17のステップS25に戻る。
このような処理により、CCDイメージセンサ213が有するカラーフィルタの配列に基づいて得られるモザイク画像をデモザイク(色補間、または、同時化)して、各画素において、カラーフィルタを構成する各色が補間され、かつ、黒つぶれや色とびが無い画像データを得ることができる。
また、本発明を適用したデジタルスチルカメラ201は、図6を用いて説明したDSPブロック216に代わって、図39に示されるDSPブロック391を備えるようにしても良い。
なお、図6と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図39のDSPブロック391は、信号処理用プロセッサ242に代わって、信号処理用プロセッサ395が設けられている以外は、基本的に、図6を用いて説明したDSPブロック216と同様の構成を有しており、信号処理用プロセッサ395は、スイッチ254がガンマ補正部252の後段に設けられ、水平方向縮小処理部255に代わって、水平方向縮小処理部398が設けられ、スイッチ254の一方の出力と水平方向縮小処理部398の出力がデモザイク処理部253に供給されている以外は、基本的に、図6を用いて説明した信号処理用プロセッサ242と同様の構成を有しているものである。
水平方向縮小処理部398は、スイッチ254から供給された間引きされたモザイク画像の縦横比を、間引きされていないモザイク画像と同一にするために、水平方向の縮小処理を実行する。ここで、水平方向縮小処理部398は、スイッチ254から供給された間引きされたモザイク画像のモザイク配列を変更することなく、縦横比を間引きされていないモザイク配列と同一になるように変更する。
具体的には、水平方向縮小処理部398は、供給された間引き後のモザイク配列241またはモザイク配列362を4列ごとに間引いたり、所定のフィルタを用いることにより、水平方向に縮小された同一配列のモザイク画像データを作成する。
水平方向の間引きに用いられるフィルタの例について、図40を用いて説明する。
水平方向縮小処理部398は、モザイク配列を変更することなく水平方向の画素数を1/2に減少させるために、1行に配置された画素の色強度信号を用いて、元のモザイク配列のBの強度信号を有する画素の位置にGの強度信号を生成し、元のモザイク配列のRの強度信号を有する画素の位置にRまたはBの強度信号を生成する。
このとき、水平方向縮小処理部398は、作成される強度信号と同一の列の近傍の同色の色信号を用いて、重み付け平均演算により、RGBのそれぞれの色強度を有する画素の値を演算する。
例えば、水平方向縮小処理部398は、Gの色強度を有する画素信号を作成するために、画素の補間位置の近傍の4画素G1,G2,G3,G4を用いて、次の式(18)を用いて、色強度を演算し、Rの色強度を有する画素信号を作成するために、画素の補間位置の近傍の5画素R1,R2,R3,R4,R5を用いて、次の式(19)を用いて、色強度を演算し、Bの色強度を有する画素信号を作成するために、画素の補間位置の近傍の4画素B1,B2,B3,B4を用いて、次の式(20)を用いて、色強度を演算することができる。
G=(G1+G2×3+G3×3+G4)/8 ・・・(18)
R=(R1+R2×4+R4×6+R4×4+R5)/16 ・・・(19)
B=(B1+B2×3+B3×3+B4)/8 ・・・(20)
このようにして、水平方向縮小処理部398は、供給されたモザイク画像のモザイク配列を変更することなく、画素信号の縦横比を間引きされていないモザイク画像と同一にするために、水平方向の縮小処理を実行することができる。
次に、図41のフローチャートを参照して、図39に示されるDSPブロック391が実行する画像処理2について説明する。
ステップS401乃至ステップS403において、図17のステップS21乃至ステップS23と同様の処理が実行される。すなわち、画像用RAM241は、CCDイメージセンサ213に用いられているカラーフィルタにより定められる配列の周期的なパターンの強度信号により構成されるモザイク画像を取得して、一時保存し、ホワイトバランス調整部251は、モザイク画像に対して、無彩色の被写体領域の色バランスが無彩色になるように、各画素強度の持つ色に応じて適切な係数をかける処理であるホワイトバランス調整処理を行い、ガンマ補正部252は、ホワイトバランスがとられたモザイク画像の各画素強度に対し、表示部220に表示される画像の明るさや色の彩度が正しく表示されるようにガンマ補正を行う。
ステップS404において、スイッチ254は、供給されたRGBの画像データが、間引きされた画像であるか否かを判断する。ステップS404において、間引きされた画像ではないと判断された場合、スイッチ254は、供給された画像をデモザイク処理部253に供給するので、処理は、ステップS406に進む。
ステップS404において、間引きされた画像であると判断された場合、ステップS405において、スイッチ254は、供給された画像を水平方向縮小処理部398に供給する。水平方向縮小処理部398は、供給された画像の縦横比が、間引きされていない画像と同一になるように水平方向に画像を縮小する。
ステップS404において、間引きされた画像ではないと判断された場合、または、ステップS405の処理の終了後、ステップS406において、デモザイク処理部253により、図18を用いて説明したデモザイク処理が実行される。
ステップS407乃至ステップS409において、図17のステップS27乃至ステップS29と同様の処理が実行される。すなわち、階調変換処理部256は、供給された画像信号の階調を圧縮する階調変換処理を実行し、階調変換された画像信号をYC変換部257に供給する。そして、YC変換部257は、R,G,Bの3チャネル画像に、マトリックス処理およびクロマ成分に対する帯域制限を行うことで、YC変換を行い、Y画像およびC画像を生成して出力し、処理が終了される。
このような処理により、DSPブロック391は、供給されたモザイク画像信号に対して、各種処理を施して、Y画像およびC画像を生成し、CPU223の制御に基づいて、その画像データを表示部220に表示させる場合は、D/Aコンバータ218に、メモリ222に記憶させる場合は、コーデック処理部221に供給することができる。
以上説明したように、本発明によれば、水平ラインがRGBの3色で構成され、Gが市松配置され、かつRBが斜め方向に配置された、図4に示される色フィルタ配列のカラー固体撮像素子を用いたデジタルスチルカメラ201においては、例えば、静止画像の撮像モードにおいて、方向による解像度のばらつきが少ないために高画質な高解像度画像を得ることができるとともに、間引き後の色配列においても、従来と比較して、R強度信号やB強度信号がより均等に分布されているので、モニタ表示等の撮像モードにおいて、1行ごとに読出し、スキップを繰り返す間引き読み出しを行うことにより、読出しおよび画像処理を高速化することができ、偽色などが抑えられた高品質な低解像度画像を得ることが可能となる。また、水平ラインがRGBの3色で構成され、Gが市松配置され、かつRBが斜め方向に配置され、更に、1行おきに感度が異なるようになされている、図22に示される色フィルタ配列のカラー固体撮像素子を用いたデジタルスチルカメラ201においても、同様に、従来と比較して、偽色などが抑えられた高品質な低解像度画像を得ることが可能となるとともに、撮像された画像の白とびや黒つぶれを防止することが可能となる。このように、本発明を適用したデジタルスチルカメラ201においては、高品質かつ高速な低解像度画像出力、高品質な高解像度画像出力の両方に対応することが可能となる。
更に、従来のデモザイク技術は、いずれも、本発明を適用した、図7または図36のの粗補間処理部284のようなC1とC2の強度の組を生成する手段を持たないので、色分布が正の相関を有していない場合などにおいて、正しい色強度の推定を行いことはできない。これに対して、本発明を適用したデモザイク処理部253においては、色分布の右下がり、右上がりにかかわらず(すなわち、色間が正の相関を有しているか、不の相関を有しているかにかかわらず)、正しい推定を行うことができるという、顕著な効果を奏することができる。
更に、本発明では、分散、共分散、相関係数等の、計算コストが大きい統計量計算を簡易な計算に置き換えて近似演算することができるようになされている。本発明で用いるこれらの統計量計算の簡易化は、デモザイク処理における2色間の相関関係推定において妥当な近似値を獲得するのに十分な精度をもっている。
また、従来は、高域補正やノイズ低減処理を行うためのプロセスまたは回路を別途付加していたが、本発明を用いた場合、高域補正やノイズ低減処理を行うためのプロセスまたは回路を別途付加することなく、デモザイク処理で色を推定して補間すると同時に、高域補正やノイズ低減の効果を得ることができる。したがって、本発明を適用することにより、高域補正やノイズ低減処理などの性能を有する、簡素なカメラシステムを構築することが可能となる。
以上説明した処理においては、3色配列を用いたデジタルスチルカメラ201における画像処理において演算近似が実行される場合について説明したが、動画像を撮像することが可能なデジタルビデオカメラについても、本発明は適用可能である。デジタルビデオカメラに本発明が適用される場合、コーデック処理部221は、例えば、MPEG(Moving Picture Coding Experts Group/Moving Picture Experts Group)などの、デジタル画像データの圧縮または伸張アルゴリズムによる処理を実行する。
また、本発明は、撮像素子にCCDイメージセンサを用いたデジタルスチルカメラ201のみならず、撮像素子として、全画素読み出しおよびラインごとの間引き読み出しが可能であり、所定の色配列のモザイク画像を撮像することが可能な撮像素子であれば、例えば、CMOSや、他の画像センサなど、いかなるものが用いられていても適用可能であることはいうまでもない。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。
この場合、ソフトウェアをDSPブロック216が実行することにより、上述した機能が実現される。また、例えば、デジタルスチルカメラ201の処理の一部は、図42に示されるようなパーソナルコンピュータ401により実行することが可能となる。
図42において、CPU(Central Processing Unit)411は、ROM(Read Only Memory)412に記憶されているプログラム、または記憶部418からRAM(Random Access Memory)413にロードされたプログラムに従って、各種の処理を実行する。RAM413にはまた、CPU411が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU411、ROM412、およびRAM413は、バス414を介して相互に接続されている。このバス414にはまた、入出力インタフェース415も接続されている。
入出力インタフェース415には、キーボード、マウスなどよりなる入力部416、ディスプレイやスピーカなどよりなる出力部417、ハードディスクなどより構成される記憶部418、モデム、ターミナルアダプタなどより構成される通信部419が接続されている。通信部419は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース415にはまた、必要に応じてドライブ420が接続され、磁気ディスク431、光ディスク432、光磁気ディスク433、もしくは、半導体メモリ434などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部418にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェア(例えば、DSPブロック216や、その中に含まれている、デモザイク処理部253)に組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
この記録媒体は、図42に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク431(フロッピディスクを含む)、光ディスク432(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク433(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ434などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているROM412や、記憶部418に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記憶されるプログラムを記述するステップは、含む順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的もしくは個別に実行される処理をも含むものである。
201 デジタルスチルカメラ, 216 DSPブロック, 231モザイク配列, 241 モザイク配列, 242 信号処理用プロセッサ, 253 デモザイク処理部, 254 スイッチ, 255 水平方向縮小処理部, 281 局所領域抽出部, 282 G強度補間処理部, 283 信頼度算出部, 284 粗補間処理部, 285 統計量算出部, 286 回帰演算処理部, 321 高周波抽出部, 322 加算処理部, 323 クリップ処理部, 331 平均値算出部, 332 分散値算出部, 333 平均値算出部, 334 共分散算出部, 351,352 傾き算出部, 353 傾き合成部, 354 画素強度推定部, 361,362 モザイク配列, 375 感度補償部, 391 信号処理用プロセッサ, 398 水平方向縮小処理部