以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が、本明細書に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
更に、この記載は、本明細書に記載されている発明の全てを意味するものでもない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
本発明によれば画像処理装置が提供される。この画像処理装置(例えば、図2のデジタルカメラ201)は、第1の色成分(例えば、G)が水平および垂直に1ラインおきに配置され、第2の色成分(例えば、E)が水平および垂直に1ラインおきに配置され、かつ、第1の色成分とは異なる水平および垂直ラインに配置されたカラーフィルタを用いた単板式カラー撮像素子により撮像されたモザイク画像に基づいて、各画素が複数の色成分を有するカラー画像を生成する画像処理装置(例えば、図2のデジタルカメラ201)であって、前記モザイク画像の注目画素、並びに前記注目画素の縦方向および横方向の近傍の画素に基づいて、前記注目画素における縦方向の変化強度(例えば、テクスチャ強度TV)および横方向の変化強度(例えば、テクスチャ強度TH)を算出する変化強度算出手段(例えば、図6のテクスチャ強度算出処理部334)と、前記注目画素(例えば、R)と、前記注目画素の縦方向の近傍の画素(例えば、Rの縦近傍の画素G)に基づいて、前記第1の色成分(例えば、G)の前記注目画素における第1の推定値(例えば、GF)を算出するとともに、前記注目画素(例えば、R)と前記注目画素の横方向の近傍の画素(例えば、Rの横近傍の画素E)に基づいて、前記第2の色成分(例えば、E)の前記注目画素における第2の推定値(例えば、EF)を算出する第1の推定値算出手段(例えば、図6のG補間処理部332−1、またはE補間処理部332−2)と、前記縦方向の変化強度、前記横方向の変化強度、前記第1の推定値、および前記第2の推定値に基づいて、前記第1の色成分と前記第2の色成分からなる第3の色成分の前記注目画素における第3の推定値(例えば、G+E)を算出する第2の推定値算出手段(例えば、図6のG+E生成処理部335、G+E生成処理部336、および合成処理部337)とを含む。
変化強度算出手段は、注目画素における第1の色成分および第2の色成分の第1の補間値(例えば、GA(j’,k’)およびEA(j’,k’)(但し、(j’,k’)は処理画素位置))を、注目画素の近傍の画素の画素値に基づいて補間し、注目画素の縦方向に位置する画素における第1の色成分および第2の色成分の第2の補間値(例えば、GA(j’,k’−1)およびGA(j’,k’+1)、並びにEA(j’,k’−1)およびEA(j’,k’+1))を、注目画素の近傍の画素の画素値に基づいて補間し、注目画素の横方向に位置する画素における第1の色成分および第2の色成分の第3の補間値(例えば、GA(j’−1,k’)およびGA(j’+1,k’)、並びにEA(j’−1,k’)およびEA(j’+1,k’))を、注目画素の近傍の画素の画素値に基づいて補間し、第1の補間値(例えば、注目画素位置(j’,k’)のGA(j’,k’)およびEA(j’,k’))と、第2の補間値(例えば、GA(j’,k’−1)およびGA(j’,k’+1)、並びにEA(j’,k’−1)およびEA(j’,k’+1))との差分の組により縦勾配評価値(例えば、dV)を算出し(例えば、図13のステップS203)、第1の補間値(例えば、GA(j’,k’)およびEA(j’,k’))と、第3の補間値(例えば、GA(j’−1,k’)およびGA(j’+1,k’)、並びにEA(j’−1,k’)およびEA(j’+1,k’))との差分の組により横勾配評価値(例えば、dH)を算出し(例えば、図13のステップS203)、縦勾配評価値および横勾配評価値に基づいて、変化強度を決定し(例えば、図13のステップS211)、注目画素および注目画素の近傍における変化強度の偏差を算出し、偏差に基づいて、注目画素の変化強度を補正する(例えば、図12のステップS154)ことができる。
第2の推定値算出手段は、注目画素の近傍の画素の第2の色成分(例えば、E)および第1の推定値(例えばGF)に基づいて、注目画素における第3の色成分(例えば、G+E)の第4の推定値(例えば(G+E)H)を算出する第3の推定値算出手段(例えば、図6のG+E生成処理部336)と、注目画素の近傍の画素の第1の色成分(例えばG)および第2の推定値(例えばEF)に基づいて、注目画素における第3の色成分の第5の推定値(例えば(G+E)V)を算出する第4の推定値算出手段(例えば、図6のG+E生成処理部335)と、第4の推定値、第5の推定値、注目画素における縦方向の変化強度、および注目画素における横方向の変化強度に基づいて、第3の推定値(例えば、(G+E))を算出する第5の推定値算出手段(例えば、図6の合成処理部337)とを備えるようにすることができる。
第1の色成分および第2の色成分は、互いに相関の高い分光感度を有するようにすることができる。
本発明によれば、画像処理方法が提供される。この画像処理方法は、第1の色成分(例えば、G)が水平および垂直に1ラインおきに配置されるとともに、第2の色成分(例えば、E)が水平および垂直に1ラインおきに配置され、かつ、第1の色成分とは異なる水平および垂直ラインに配置されたカラーフィルタを用いた単板式カラー撮像素子により撮像されたモザイク画像に基づいて、各画素が複数の色成分を有するカラー画像を生成する画像処理装置(例えば、図2のデジタルカメラ201)の画像処理方法であって、モザイク画像の注目画素、並びに注目画素の縦方向および横方向の近傍の画素に基づいて、注目画素における縦方向の変化強度(例えば、テクスチャ強度TV)および横方向の変化強度(例えば、テクスチャ強度TH)を算出する変化強度算出ステップ(例えば、図9のステップS53)と、注目画素(例えば、R)と、注目画素の縦方向の近傍の画素(例えば、Rの縦近傍の画素G)に基づいて、第1の色成分(例えば、G)の注目画素における第1の推定値(例えば、GF)を算出する第1の推定値算出ステップ(例えば、図9のステップS54)と、注目画素(例えば、R)と注目画素の横方向の近傍の画素(例えば、Rの横近傍の画素E)に基づいて、第2の色成分(例えば、E)の注目画素における第2の推定値(例えば、EF)を算出する第2の推定値算出ステップ(例えば、図9のステップS55)と、縦方向の変化強度、横方向の変化強度、第1の推定値、および第2の推定値に基づいて、第1の色成分と第2の色成分からなる第3の色成分(例えば、G+E)の注目画素における第3の推定値(例えば、G+E)を算出する第3の推定値算出ステップ(例えば、図9のステップS58乃至ステップS60)とを含む。
本発明によれば、プログラムが提供される。このプログラムは、第1の色成分(例えば、G)が水平および垂直に1ラインおきに配置されるとともに、第2の色成分(例えば、E)が水平および垂直に1ラインおきに配置され、かつ、第1の色成分とは異なる水平および垂直ラインに配置されたカラーフィルタを用いた単板式カラー撮像素子により撮像されたモザイク画像に基づいて、各画素が複数の色成分を有するカラー画像を生成する画像処理装置(例えば、図2のデジタルカメラ201)の画像処理方法であって、モザイク画像の注目画素、並びに注目画素の縦方向および横方向の近傍の画素に基づいて、注目画素における縦方向の変化強度(例えば、テクスチャ強度TV)および横方向の変化強度(例えば、テクスチャ強度TH)を算出する変化強度算出ステップ(例えば、図9のステップS53)と、注目画素(例えば、R)と、注目画素の縦方向の近傍の画素(例えば、Rの縦近傍の画素G)に基づいて、第1の色成分(例えば、G)の注目画素における第1の推定値(例えば、GF)を算出する第1の推定値算出ステップ(例えば、図9のステップS54)と、注目画素(例えば、R)と注目画素の横方向の近傍の画素(例えば、Rの横近傍の画素E)に基づいて、第2の色成分(例えば、E)の注目画素における第2の推定値(例えば、EF)を算出する第2の推定値算出ステップ(例えば、図9のステップS55)と、縦方向の変化強度、横方向の変化強度、第1の推定値、および第2の推定値に基づいて、第1の色成分と第2の色成分からなる第3の色成分(例えば、G+E)の注目画素における第3の推定値(例えば、G+E)を算出する第3の推定値算出ステップ(例えば、図9のステップS58乃至ステップS60)とをコンピュータに実行させる。
以下、図を参照して、本発明の実施の形態について説明する。
図2は、本発明を適用したデジタルカメラ201の構成を示すブロック図である。
図2に示すように、デジタルカメラ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、CPU(Central Processing Unit)223、および、操作入力部224から構成される。
CCDとは、光情報を電気信号に変換する(光電変換)半導体素子であり、CCDイメージセンサ213は、光を電気に変換する受光素子(画素)を複数個並べ、光の変化を画素ごとに独立して電気信号に変換するものである。相関2重サンプリング回路214は、CCDイメージセンサ213の出力信号に含まれるノイズのうちの主な成分であるリセットノイズを、出力の各画素信号のうち、映像信号期間をサンプリングしたものと、基準期間をサンプリングしたものとを引き算することにより除去する回路である。A/Dコンバータ215は、供給されたノイズ除去後のアナログ信号をデジタル信号に変換する。
DSPブロック216は、信号処理用プロセッサと画像用RAM(Random Access Memory)を持つブロックで、信号処理用プロセッサが画像用RAMに格納された画像データに対して、予めプログラムされた画像処理、または、ハードウェアによる演算処理として構成された画像処理を行うものである。タイミングジェネレータ217は、CCDを駆動するために必要な、水平および垂直の各種駆動パルス、並びに、アナログフロント処理で用いるパルスを、基準クロックに同期して発生させるロジック回路である。また、タイミングジェネレータ217により発生されるタイミングクロックは、バス225を介して、コーデック処理部221、メモリ222、および、CPU223にも供給されている。
D/Aコンバータ218は、供給されたデジタル信号をアナログ信号に変換して出力する。ビデオエンコーダ219は、供給されたアナログ信号を、表示部220において表示可能な形式のビデオデータにエンコードする。表示部220は、例えば、LCD(Liquid Crystal Display)などで構成され、ビデオエンコーダ219から供給されたビデオ信号を表示する。
コーデック処理部221は、例えば、MPEG(Moving Picture Coding Experts Group/Moving 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、相関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に表示される。
ところで、図2のCCDイメージセンサ213のオンチップカラーフィルタには、通常、3種類または4種類の色が用いられており、これらのオンチップカラーフィルタは、受光素子ごとに、交互に異なる色になるようモザイク状に配列されている。本発明においては、RGB(Red,Green,Blue:赤、緑、青)の3色に、Gに分光特性が近い4色目となる色(以下、E(Emerald)と称する)を加えた4色を用いた配列のオンチップカラーフィルタを用いる。この4色のモザイク配列の例を、図3に示す。なお、本明細書中では、Gに近い分光特性の4色目となる色をEとしたが、この色はEmeraldに限定されず、Gに近い分光特性であれば何色でもよい。
図3に示されるように4色配列は、赤(R)の光のみを透過するRのフィルタが1個、緑色(G)の光のみを透過するGのフィルタが1個、青(B)の光のみを透過するBのフィルタが1個、エメラルド(E)の光のみを透過するEのフィルタが1個の、合計4個を最小単位として構成されている。すなわち、R,G,B,Eの各フィルタは、同じ密度で存在する。
このように、CCDイメージセンサ213のオンチップカラーフィルタに図3に示されるような4色のモザイクが用いられている場合、DSPブロック216の画像用RAMに一時格納されている画像は、各画素とも、R,G,B,Eのうちのいずれか1つの色しか持たない。そこで、DSPブロック216の信号処理用プロセッサは、予め組み込まれた画像処理プログラムまたはハードウェアによって、この画像を処理し、全画素において全色のデータを有する画像データを生成する。具体的には、DSPブロック216の信号処理用プロセッサは、まず、G,Eを合成した新たな色(以下、G+Eと称する)を全画素に生成し、3色のベイヤー配列においてGを全画素揃えることを前提とした補間方法を、4色のモザイク配列においても同様に適用できるようにする。
図4は、図2のDSPブロック216の更に詳細な構成を示すブロック図である。
DSPブロック216は、上述したように、画像用RAM241および信号処理用プロセッサ242で構成され、信号処理用プロセッサ242は、ホワイトバランス調整部251、ガンマ補正部252、デモザイク処理部253、および、YC変換部254で構成される。
A/Dコンバータ215によってデジタル信号に変換されたモザイク画像は、画像用RAM241に一時保存される。モザイク画像は、各画素にR,G,BまたはEのいずれかの色に対応する強度信号、すなわち、CCDイメージセンサ213に用いられているカラーフィルタにより定められる配列(例えば、図3を用いて説明した4色のモザイク配列)の周期的なパターンの強度信号により構成されている。
ホワイトバランス調整部251は、モザイク画像に対して、無彩色の被写体領域の色バランスが無彩色になるように、各画素強度の持つ色に応じて適切な係数をかける処理(ホワイトバランスの調整処理)を実行する。ガンマ補正部252は、ホワイトバランスが調整されたモザイク画像の各画素強度に対して、ガンマ補正を行う。画像の階調の応答特性を表すために「ガンマ(γ)」という数値が使われる。ガンマ補正とは、表示部220に表示される画像の明るさや色の彩度を正しく表示するための補正処理のことである。表示部220に出力される信号は、画素ごとに特定の電圧を加えることで、画像の明るさや色が再現されるようになされている。しかしながら、実際に表示される画像の明るさや色は、表示部220が有する特性(ガンマ値)により、入力電圧を倍にしてもブラウン管の明るさが倍になるわけではない(非線形性を有する)ため、ガンマ補正部252において、表示部220に表示される画像の明るさや色の彩度が正しく表示されるように補正する処理が施される。
デモザイク処理部253は、色分布形状を統計的に算出することにより、ガンマ補正がなされたモザイク画像の各画素位置にR,G,B,Eの4色の強度を揃えるデモザイク処理を実行する。したがって、デモザイク処理部253からの出力信号は、R,G,B,Eの4つの色に対応する4つの画像信号となる。YC変換部254はR,G,B,Eの4チャネル画像に、マトリックス処理およびクロマ成分に対する帯域制限を行うことで、Y画像およびC画像(YCbCr画像信号)を生成し、出力する。
DSPブロック216の信号処理用プロセッサ242においては、デモザイク処理部253によるデモザイク処理の前に、ガンマ補正部252によりガンマ補正を行うものとしている。これは、ガンマ補正された非線形な画素強度空間においてデモザイク演算を実行することにより、デモザイク処理部253のデモザイク処理の信頼性をより高めることができるためである。
例えば、入力される画像が高コントラストな輪郭領域である場合、その色分布は、非常に明るい強度域と非常に暗い強度域に渡ってしまう。物理的に、物体反射光は、物体表面のばらつきに照明からの入射光強度が乗じられたものになることから、カメラへの入射光強度に比例する線形な画素強度空間においては、明るい強度域にある物体色の分布はスパースに(まばらに)広がり、暗い画素強度域にある物体色の分布はあまり広がらずにコンパクトに縮まる傾向にある。
デモザイク処理部253においては、色分布形状を統計的に算出することにより、デモザイク処理を実行する。しかしながら、高コントラストな輪郭領域では、明るい領域での画素強度のちらばりと暗い領域での画素強度のちらばりが大きく異なり、統計的な線形回帰が適用しにくくなる。したがって、入力されたデータに対して、デモザイク処理部253におけるデモザイク処理に先立って、ガンマ補正のような非線形の画素強度変換を施して、暗い画素強度域を持ち上げて(明るい画素強度領域に近づけて)、画素強度の分散をある程度抑制するようにすることにより、デモザイク処理部253において実行される線形回帰処理の信頼性を向上させることができる。
このような目的で適用する非線形変換は、ガンマ補正のように1より小さい指数によるべき乗変換が望ましいが、通常カラープロファイル等で用いられているsRGBガンマのように、べき乗部と線形部を組み合わせたような変換であっても、略べき乗関数と同じとみなせるようなものであれば、いずれの非線形変換であってもよい。また、非線形変換を省略するようにしても、デモザイク処理の後に、ガンマ補正などの非線形変換処理を行うようにしてもよいことは言うまでもない。
図5は、全画素位置でRGBEの4色が存在するように、各画素位置ごとに順次、そこにない色の強度を補間または推定していく処理であるデモザイク処理を実行する、図4のデモザイク処理部253の更に詳細な構成を示すブロック図である。
デモザイク処理部253には、局所領域抽出部281、G+E算出処理部282、および画素値補間部283が設けられている。局所領域抽出部281は、ガンマ補正されたモザイク画像から、注目画素位置周囲の決まった大きさの局所領域の画素を切り出す。ここでは、切り出す局所領域を、注目画素位置を中心とした7×7画素の矩形領域とする。G+E算出処理部282は、局所領域内に存在する画素を用いて、注目画素位置におけるG+Eを算出する。画素値補間部283は、G+Eを用いて、全画素にRGBEの4色を補間する。
図6は、図5のG+E算出処理部282の詳細な構成例を示すブロック図である。G+E算出処理部282は、G補間処理部331−1、E補間処理部331−2、G補間処理部332−1、E補間処理部332−2、G補間処理部333−1、E補間処理部333−2、テクスチャ強度算出処理部334、G+E生成処理部335、G+E生成処理部336、および合成処理部337で構成される。本構成は、モザイク上のR,G,Eの信号を用いて、R画素上にG+Eを生成するものである。ここでは色成分の推定に回帰推定を用いる。
G補間処理部331−1は、注目R画素の近傍画素位置全てにGの簡易的な補間値GAを算出し、同様にE補間処理部331−2は、Eの補間値EAを算出する。テクスチャ強度算出処理部334は、G補間処理部331−1とE補間処理部331−2により得られた補間値GA,EAを用いて、R画素位置の横方向のテクスチャ強度TH(変化強度)と縦方向のテクスチャ強度TV(変化強度)を算出する。G補間処理部332−1は、横近傍の補間値GAと信号Rを用いて、Gの2つ目の補間値GFを算出し、E補間処理部332−2は、縦近傍の補間値EAと信号Rを用いて、Eの2つ目の補間値EFを算出する。またG補間処理部333−1は、補間値GA,EA,EFを用いてGの3つ目の補間値GUを、E補間処理部333−2は、補間値GA,EA,GFを用いてEの3つ目の補間値EUを、R画素位置に算出する。
G+E生成処理部335は、補間値GU,EFを合成して(G+E)Vを算出するとともに、G+E生成処理部336は、補間値GF,EUを合成して(G+E)Hを算出する。合成処理部337は、2つのG+Eの値、すなわち(G+E)V、(G+E)Hとテクスチャ強度TH、TVを用いて、R画素位置での信号G+Eを決定する。
以上の説明では、モザイク上のR,G,Eの信号を用いて、R画素上にG+Eを生成する場合について説明したが、B画素上にG+Eを生成する過程については、以上の説明においてRをBに、GをEに、EをGに読み替えることで得られる。また、G,E画素上にG+Eを生成する方法については、あらかじめG,Eいずれかの画素値が分かっている状態であり、簡易な補間方法によっても十分な精度が得られるため、ここでは説明を省略する。
次に、図7のフローチャートを参照して、図4のDSPブロック216の処理について説明する。
ステップS1において、画像用RAM241は、CCDイメージセンサ213に用いられているカラーフィルタにより定められる配列(例えば、図3を用いて説明した4色配列)の周期的なパターンの強度信号により構成されるモザイク画像を取得して、一時保存する。
ステップS2において、信号処理用プロセッサ242のホワイトバランス調整部251は、モザイク画像に対して、無彩色の被写体領域の色バランスが無彩色になるように、各画素強度の持つ色に応じて適切な係数をかける処理であるホワイトバランス調整処理を行う。
ステップS3において、ガンマ補正部252は、ホワイトバランスがとられたモザイク画像の各画素強度に対し、表示部220に表示される画像の明るさや色の彩度が正しく表示されるようにガンマ補正を行う。
ステップS4において、デモザイク処理部253により、図8を用いて後述するデモザイク処理が実行される。
YC変換部254は、ステップS5において、デモザイク処理部253からの出力であるR,G,B,Eの4チャネル画像に、マトリックス処理およびクロマ成分に対する帯域制限をおこなうことで、YC変換を行い、Y画像およびC画像を生成し、ステップS6において、生成したY画像およびC画像を出力し、処理が終了される。
このような処理により、DSPブロック216は、供給されたモザイク画像信号に対して、各種処理を施して、Y画像およびC画像を生成し、CPU223の制御に基づいて、その画像データを表示部220に表示させる場合は、D/Aコンバータ218に、メモリ222に記憶させる場合は、コーデック処理部221に供給する。
次に、図8のフローチャートを参照して、図7のステップS4において実行されるデモザイク処理について説明する。
局所領域抽出部281は、ステップS21において、未処理の画素のうちのいずれかを注目画素とし、ステップS22において、注目画素位置の周辺の所定数(以下に続く処理に必要とされる画素領域を含む十分な数)の画素を、局所領域として抽出し、G+E算出処理部282および画素値補間部283に供給する。
ステップS23において、G+E算出処理部282は、図9のフローチャートを用いて後述する、G+E算出処理を実行し、算出したG+Eを画素値補間部283に供給する。
ステップS24において、画素値補間部283は、G+Eを用いて、各色の画素値を補間する。
ステップS25において、局所領域抽出部281は、全ての画素において処理が終了したか否かを判断する。ステップS25において、全ての画素において処理が終了していないと判断された場合、処理は、ステップS21に戻り、それ以降の処理が繰り返される。ステップS25において、全ての画素において処理が終了したと判断された場合、処理は図7のステップS5に進む。
換言すれば、デモザイク処理部253を構成する各部は、ある注目画素位置が決定されたときにその注目画素位置においてそれぞれの処理を実行し、全画素において、ステップS21乃至ステップS24の処理が終了された場合、処理が終了される。
次に、図9のフローチャートを参照して、図8のステップS23において実行されるG+E算出処理について説明する。この処理は、図6のG+E算出処理部282により実行される処理である。
ステップS51において、G補間処理部331−1は、第1のG補間処理を実行する。この詳細は、図10および図11を参照して後述する。
ステップS52において、E補間処理部331−2は、第1のE補間処理を実行する。この詳細は、図10および図11を参照して後述する。
ステップS53において、テクスチャ強度算出処理部334は、補正テクスチャ強度算出処理を実行する。この詳細は、図12を参照して後述する。
ステップS54において、G補間処理部332−1は、第2のG補間処理を実行する。この詳細は、図20を参照して後述する。
ステップS55において、E補間処理部332−2は、第2のE補間処理を実行する。この詳細は、図20を参照して後述する。
ステップS56において、G補間処理部333−1は、第3のG補間処理を実行する。この詳細は、図31を参照して後述する。
ステップS57において、E補間処理部333−2は、第3のE補間処理を実行する。この詳細は、図31を参照して後述する。
ステップS58において、G+E生成処理部335は、第1のG+E生成処理を実行する。この詳細は、図34を参照して後述する。
ステップS59において、G+E生成処理部336は、第2のG+E生成処理を実行する。この詳細は、図35を参照して後述する。
ステップS60において、合成処理部337は、合成処理を実行する。この詳細は、図36を参照して後述する。
図9の処理により、モザイク状のR,G,Eの信号に基づいて、R画素上にG+Eが生成される。
次に、図10および図11のフローチャートを参照して、図9のステップS51またはステップS52において実行される第1の補間処理(第1のG補間処理および第1のE補間処理)を説明する。なお、GおよびEのいずれに対しても同様の処理が実行されるので、図10および図11においてXと記述されている部分については、適宜G,Eに読み替えられる。具体的には、図10および図11の処理がステップS51に対応する処理の場合、G補間処理部331−1が実行する処理であり、ステップS52に対応する処理の場合、E補間処理部331−2が実行する処理である。
ステップS101において、G補間処理部331−1またはE補間処理部331−2は、局所領域のうち、処理を実行する画素位置を示す第1のレジスタの値jを初期化してj=−n+1とし、ステップS102において、局所領域のうち、処理を実行する画素位置を示す第2のレジスタの値kを初期化してk=−n+1とする。ここでは、画素(0,0)を中心とする(2n−1)×(2n−1)の画素群に対して処理が行われる。なお、nは、正の整数であり、(j,k)は局所領域における中心(注目画素位置)を(0,0)とした場合の、処理を実行する画素位置を示す。なお、nの値は、処理に必要な任意の定数と考えることができる。したがって、本実施形態を実装する際には、このようなレジスタ値の細かい設定を省略することも可能である。特に、nが十分大きな値であるとすれば、実質的に同一の結果を得ることができるものと考えられる。このことは、後述するn’、n’’、およびn’’’についても同様である。
ステップS103において、G補間処理部331−1またはE補間処理部331−2は、画素(j,k)がXであるか否かを判定する。ここでXは、G補間処理部331−1がこの処理を実行している場合にはGとされ、E補間処理部331−2がこの処理を実行している場合にはEとされる(以下同様)。上述した図3に示される4色のフィルタ配列が公知であることから、この処理では、画素位置を用いて色を判定することができる。
ステップS103において画素(j,k)の色がXであると判定された場合、ステップS104において、G補間処理部331−1またはE補間処理部331−2は、画素(j,k)の補間値XAを画素(j,k)の色Xとする。すなわち、処理画素位置の色がXであると判定された場合には、補間をする必要がないのでそのままの信号が用いられる。
ステップS103において、画素(j,k)がXでないと判定された場合、ステップS105において、G補間処理部331−1またはE補間処理部331−2は、画素(j−1,k)の色がXであるか否かを判定する。
ステップS105において画素(j−1,k)の色がXであると判定された場合、ステップS106において、G補間処理部331−1またはE補間処理部331−2は、画素(j,k)の補間値XAを画素(j−1,k)の色Xと(j+1,k)の色Xの平均値とする。すなわち、横に隣接する画素の色がXであると判定された場合、左右から補間が行われる。
ステップS105において画素(j−1,k)の色がXでないと判定された場合、ステップS107においてG補間処理部331−1またはE補間処理部331−2は、画素(j,k−1)の色がXであるか否かを判定し、画素(j,k−1)の色がXであると判定された場合、ステップS108において画素(j,k)の補間値XAを画素(j,k−1)の色と画素(j,k+1)の色の平均とする。すなわち、縦に隣接する画素がXであると判定された場合、上下補間が行われる。
ステップS107において画素(j,k−1)の色がXでないと判定された場合、ステップS109において、G補間処理部331−1またはE補間処理部331−2は、画素(j,k)の補間値XAを、画素(j−1,k−1)の色、画素(j+1,k−1)の色、画素(j−1,k+1)の色、画素(j+1,k+1)の色の平均とする。すなわち、画素(j,k)、画素(j−1,k)および画素(j,k−1)がXでないと判定された場合、左上、右上、左下、右下から補間が行われる。
ステップS104、ステップS106、ステップS108、またはステップS109の処理の後、ステップS110において、G補間処理部331−1またはE補間処理部331−2は、第2のレジスタの値kを参照し、k=n−1であるか否かを判定する。ステップS110においてk=n−1でないと判定された場合、ステップS111において、G補間処理部331−1またはE補間処理部331−2は、第2のレジスタの値kをk=k+1に更新して、処理はステップS103に戻り、それ以降の処理が繰り返される。
ステップS110においてk=n−1であると判定された場合、ステップS112において、G補間処理部331−1またはE補間処理部331−2は、処理を実行する画素位置を示す第1のレジスタの値jを参照し、j=n−1であるか否かを判定する。ステップS112においてj=n−1ではないと判定された場合、ステップS113においてG補間処理部331−1またはE補間処理部331−2は、第1のレジスタの値jをj=j+1に更新して、処理はステップS102に戻り、それ以降の処理が繰り返される。
ステップS112においてj=n−1であると判定された場合、ステップS114においてG補間処理部331−1またはE補間処理部331−2は、(2n−1)×(2n−1)画素のXの補間値XAの組を出力し、処理は図9のステップS52またはステップS53に進む。
図10および図11の処理をまとめると、G補間処理部331−1またはE補間処理部331−2は、処理画素位置またはその近傍画素位置の色を判定し、それぞれ場合分けを行って線形補間によりXの補間値XAを算出している。すなわち、図10および図11の処理により、X(GまたはE)の補間値XAを算出することができる。換言すると、図10および図11の処理によりGの補間値GAおよびEの補間値EAが算出される。
次に、図12のフローチャートを参照して、図9のステップS53において実行される補正テクスチャ強度算出処理を説明する。なお、この処理は図6のテクスチャ強度算出処理部334により実行される処理である。
ステップS151においてテクスチャ強度算出処理部334は、テクスチャ強度TH,TV算出処理を実行する。この処理の詳細は、図13を参照して後述する。
ステップS152においてテクスチャ強度算出処理部334は、重み付き平均値MTH算出処理を実行する。この処理の詳細は、図14を参照して後述する。
ステップS153においてテクスチャ強度算出処理部334は、重み付き平均偏差STH算出処理を実行する。この処理の詳細は、図16を参照して後述する。
ステップS154においてテクスチャ強度算出処理部334は、テクスチャ強度TH,TV補正処理を実行する。この処理の詳細は、図17を参照して後述する。その後、処理は図9のステップS54に進む。
図12の処理により、補正されたテクスチャ強度TH,TVが算出される。
次に、図13のフローチャートを参照して、図12のステップS151において実行されるテクスチャ強度TH,TV算出処理の詳細を説明する。なおこの処理は、注目画素位置およびその上下左右の計5箇所のGA,EAを用いてテクスチャ強度TH,TVを算出する処理である。なお、n’は、正の整数である。
ステップS201において、テクスチャ強度算出処理部334は、供給された局所領域の画素のうち、処理を実行する画素位置を示す第1のレジスタの値j’を初期化してj’=−n’とし、ステップS202において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第2のレジスタの値k’を初期化してk’=−n’とする。なお、(j’,k’)は局所領域における中心(注目画素位置)を(0,0)とした場合の、処理を実行する画素位置を示す。
ステップS203において、テクスチャ強度算出処理部334は、式(1)を用いて横勾配評価値dHを算出するとともに、式(2)を用いて縦勾配評価値dVを算出する。すなわち、テクスチャ強度算出処理部334は、各画素位置でGA+EAを計算し、注目画素位置とその左右の間で減算を行って得られた横方向のグラディエント値の絶対値の和を横勾配評価値dHとして算出するとともに、注目画素位置とその上下の間で減算を行って得られた縦方向のグラディエント値の絶対値の和を縦勾配評価値dVとして算出する。
dH=|GA(j'−1,k')+EA(j'−1,k')−(GA(j',k')+EA(j',k'))|+|GA(j'+1,k')+EA(j'+1,k')−(GA(j',k')+EA(j',k'))| ・・・(1)
dV=|GA(j',k'−1)+EA(j',k'−1)−(GA(j',k')+EA(j',k'))|+|GA(j',k'+1)+EA(j',k'+1)−(GA(j',k')+EA(j',k'))| ・・・(2)
ステップS204においてテクスチャ強度算出処理部334は、横勾配評価値dH>縦勾配評価値dVであるか否かを判定し、dH>dVであると判定された場合、ステップS205においてテクスチャ強度算出処理部334は、画素(j’,k’)のテクスチャ強度THを0とし、画素(j’,k’)のテクスチャ強度TVを1とする。
ステップS204においてdH>dVでないと判定された場合、ステップS206においてテクスチャ強度算出処理部334は、画素(j’,k’)のテクスチャ強度THを1とし、画素(j’,k’)のテクスチャ強度TVを0とする。
ステップS205またはステップS206の処理の後、処理はステップS207に進み、テクスチャ強度算出処理部334は、第2のレジスタの値k’を参照し、k’=n’であるか否かを判定する。ステップS207においてk’=n’でないと判定された場合、ステップS208において、テクスチャ強度算出処理部334は、第2のレジスタの値k’をk’=k’+1に更新して、処理はステップS203に戻り、それ以降の処理が繰り返される。
ステップS207において、k’=n’であると判定された場合、ステップS209において、テクスチャ強度算出処理部334は、処理を実行する画素位置を示す第1のレジスタの値j’を参照し、j’=n’であるか否かを判定する。ステップS209においてj’=n’ではないと判定された場合、ステップS210においてテクスチャ強度算出処理部334は、第1のレジスタの値j’をj’=j’+1に更新して、処理はステップS202に戻り、それ以降の処理が繰り返される。
ステップS209において、j’=n’であると判定された場合、ステップS211においてテクスチャ強度算出処理部334は、(2n’+1)×(2n’+1)画素のテクスチャ強度TH,TVの組を出力し、処理は図12のステップS152に進む。
図13の処理により、処理画素位置およびその上下左右の計5箇所のGA,EAを用いてテクスチャ強度が算出される。
次に、図14のフローチャートを参照して、図12のステップS152において実行される重み付き平均値MTH算出処理の詳細を説明する。なお、この処理は、図6のテクスチャ強度算出処理部334により実行される処理である。
ステップS251において、テクスチャ強度算出処理部334は、重み付き平均値MTHを0に初期化する。
ステップS252において、テクスチャ強度算出処理部334は、テクスチャ強度THを取得する。このテクスチャ強度THは、上述した図13の処理により算出された値である。
ステップS253において、テクスチャ強度算出処理部334は、供給された局所領域の画素のうち、処理を実行する画素位置を示す第1のレジスタの値j’を初期化してj’=−n’とし、ステップS254において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第2のレジスタの値k’を初期化してk’=−n’とする。
ステップS255において、テクスチャ強度算出処理部334は、MTH=MTH+(重み係数wiが施された画素(j',k')のテクスチャ強度TH)とする。すなわち、MTHに重み付けが施された画素(j',k')のテクスチャ強度THを加算したものが新たなMTHとされる。
この重み係数wiは、i番目のデータの位置から注目画素への距離などを指標として予め設定されている値である。例えば、7×7の局所領域に対しては図15に示されるように設定することができる。図中四角形は局所領域の画素位置を示し、四角形中の数字が該当する位置のデータの重み係数を示す。これらの重み係数は、図15に示されるものに限定されないことはいうまでもないが、図15に示されるように、注目画素に近い程重み係数が大きくなるようにした方が好適である。
ステップS256において、テクスチャ強度算出処理部334は、第2のレジスタの値k’を参照し、k’=n’であるか否かを判定する。ステップS256において、k’=n’でないと判定された場合、ステップS257において、テクスチャ強度算出処理部334は、第2のレジスタの値k’をk’=k’+1に更新して、処理はステップS255に戻り、それ以降の処理が繰り返される。
ステップS256において、k’=n’であると判定された場合、ステップS258において、テクスチャ強度算出処理部334は、処理を実行する画素位置を示す第1のレジスタの値j’を参照し、j’=n’であるか否かを判定する。ステップS258においてj’=n’ではないと判定された場合、ステップS259においてテクスチャ強度算出処理部334は、第1のレジスタの値j’をj’=j’+1に更新して、処理はステップS254に戻り、それ以降の処理が繰り返される。
ステップS258において、j’=n’であると判定された場合、ステップS260において、テクスチャ強度算出処理部334は、MTH=MTH/Wとする。このWは、重み係数wiの総和Wとされる。
ステップS261においてテクスチャ強度算出処理部334は、テクスチャ強度THの重み付き平均値MTHを出力し、処理は図12のステップS153に進む。
図14の処理により、テクスチャ強度THの重み付き平均値MTHが算出される。
次に、図16のフローチャートを参照して、図12のステップS153において実行される重み付き平均偏差STH算出処理の詳細を説明する。なお、この処理は、図6のテクスチャ強度算出処理部334により実行される処理である。
ステップS301において、テクスチャ強度算出処理部334は、重み付き平均偏差STHを0に初期化する。
ステップS302において、テクスチャ強度算出処理部334は、テクスチャ強度THを取得する。このテクスチャ強度THは、上述した図13の処理により算出された値である。
ステップS303において、テクスチャ強度算出処理部334は、重み付き平均値MTHを取得する。この重み付き平均値MTHは、上述した図14の処理により算出された値である。
ステップS304において、テクスチャ強度算出処理部334は、供給された局所領域の画素のうち、処理を実行する画素位置を示す第1のレジスタの値j’を初期化してj’=−n’とし、ステップS305において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第2のレジスタの値k’を初期化してk’=−n’とする。
ステップS306において、テクスチャ強度算出処理部334は、STH=STH+重み係数wiが施された|(画素(j',k')のテクスチャ強度TH)−(MTH)|とする。すなわち、画素(j’,k’)のテクスチャ強度THから重み付き平均MTHを減算した値の絶対値を取って重み付けした値に、STHを加算したものが新たなSTHとされる。このテクスチャ強度THは、上述した図13の処理で算出されたものである。この重み係数wiは、上述した図14における重み係数wiと同様である。
ステップS307において、テクスチャ強度算出処理部334は、第2のレジスタの値k’を参照し、k’=n’であるか否かを判定する。ステップS307において、k’=n’でないと判定された場合、ステップS308において、テクスチャ強度算出処理部334は、第2のレジスタの値k’をk’=k’+1に更新して、処理はステップS306に戻り、それ以降の処理が繰り返される。
ステップS307において、k’=n’であると判定された場合、ステップS309において、テクスチャ強度算出処理部334は、処理を実行する画素位置を示す第1のレジスタの値j’を参照し、j’=n’であるか否かを判定する。ステップS309においてj’=n’ではないと判定された場合、ステップS310においてテクスチャ強度算出処理部334は、第1のレジスタの値j’をj’=j’+1に更新して、処理はステップS305に戻り、それ以降の処理が繰り返される。
ステップS309において、j’=n’であると判定された場合、ステップS311において、テクスチャ強度算出処理部334は、STH=STH/Wとする。このWは、上述した図14の処理と同様に、重み係数wiの総和Wとされる。
ステップS312においてテクスチャ強度算出処理部334は、重み付き平均偏差STHを出力し、処理は図12のステップS154に進む。
図16の処理により、テクスチャ強度THの重み付き平均偏差STHが算出される。
次に、図17のフローチャートを参照して、図12のステップS154において実行されるテクスチャ強度TH,TV補正処理の詳細を説明する。なお、この処理は、図6のテクスチャ強度算出処理部334により実行される処理である。
ステップS351において、テクスチャ強度算出処理部334は、重み付き平均偏差STHを取得する。この重み付き平均偏差STHは上述した図16の処理で算出されたものである。
ステップS352において、テクスチャ強度算出処理部334は、RをSTH×(第1の定数)として算出する。この第1の定数は、例えば、経験的にまたは実験的に定められる所定の値である。
ステップS353において、テクスチャ強度算出処理部334は、R>1であるか否かを判定し、R>1であると判定された場合、ステップS354においてR=1と設定する。
ステップS353においてR>1でない、すなわちR≦1であると判定された場合、ステップS354の処理はスキップされる。
ステップS353においてR>1でないと判定された場合、またはステップS354の処理の後、ステップS355において、テクスチャ強度算出処理部334は、TH=TH×(1−R)+R/2とし、TV=TV×(1−R)+R/2とする。すなわち、テクスチャ強度TH,TVが補正される。その後、図12のステップS154の処理が終了され、処理は図9のステップS54に進む。
図17の処理により、重み付き平均偏差STHに基づいて、テクスチャ強度TH,TVの値が補正される。
次に、図9のステップS54およびステップS55において実行される第2のG補間処理および第2のE補間処理について説明する。図6のG補間処理部332−1とE補間処理部332−2の違いは、処理に用いる近傍画素の違いであり、重み付けによって、縦方向および横方向のうち、どちらの近傍画素を用いるのかを切り換えることができる。例えば、図18の重みを用いれば、縦方向のサンプルを用いることになり、図19の重みを用いれば、横方向のサンプルを用いることになる。本実施の形態では、G補間処理部332−1に横方向のサンプルを用い、E補間処理部332−2に縦方向のサンプルを用いる。注意すべき点はテクスチャの方向が縦方向であるからといって、必ずしも推定に縦近傍画素が用いられるとは限らないという点である。例えば、本実施の形態で用いている局所領域の色分布に対して線形回帰を適用し、不明な色成分の推定を行う手法では、回帰直線の算出に適した色分布を得るためには、テクスチャ方向に対して垂直な方向の近傍画素を用いた方が良い推定結果を得られる場合がある。どのような推定方法を用いるにしても、推定に用いる近傍画素の違いによって、横方向のテクスチャに対して信頼度の高い推定値と、縦方向のテクスチャに対して信頼度の高い推定値の2つの推定値が得られればよい。以下において、X,dirと記述されている部分については、G補間処理部332−1の処理ではGとHに読み替え、E補間処理部332−2の処理ではEとVに適宜読み替える。方向を表すために付けられたH,Vは補間処理に用いられる近傍画素の方向を表す。
図20は、図9のステップS54またはステップS55において実行される第2の補間処理(第2のG補間処理または第2のE補間処理)を説明するフローチャートである。なお、GおよびEのいずれに対しても同様の処理が実行されるので、図20においてX,dirと記述されている部分については、適宜、GおよびH、並びにEおよびVに読み替えられる。具体的には、図20の処理がステップS54の処理に対応する処理の場合、G補間処理部332−1が実行する処理であるので、X,dirは、G,Hに読み替えられ、図20の処理がステップS55の処理に対応する処理の場合、E補間処理部332−2が実行する処理であるので、X,dirは、E,Vに読み替えられる。
ステップS401において、G補間処理部332−1またはE補間処理部332−2は、Rの重み付き平均値MRdir算出処理を実行する。この処理の詳細は、図21を参照して後述する。
ステップS402において、G補間処理部332−1またはE補間処理部332−2は、XAの重み付き平均値MXAdir算出処理を実行する。この処理の詳細は、図21を参照して後述する。
ステップS403において、G補間処理部332−1またはE補間処理部332−2は、Rの重み付き分散近似値VARRdir算出処理を実行する。この処理の詳細は、図22を参照して後述する。
ステップS404において、G補間処理部332−1またはE補間処理部332−2は、R,XAの重み付き共分散近似値VARXAdir算出処理を実行する。この処理の詳細は、図23を参照して後述する。
ステップS405において、G補間処理部332−1またはE補間処理部332−2は、回帰直線の傾きKdir算出処理を実行する。この処理の詳細は、図29を参照して後述する。
ステップS406においてG補間処理部332−1またはE補間処理部332−2は、回帰直線によるXの推定値XF算出処理を実行する。この処理の詳細は、図30を参照して後述する。ステップS406の処理の後、処理は、図9のステップS56に進む。
次に、図21のフローチャートを参照して、図20のステップS401、またはステップS402において実行されるRの重み付き平均値MRdir算出処理、またはXAの重み付き平均値MXAdir算出処理の詳細を説明する。なお、RおよびXAのいずれに対しても同様の処理が実行されるので、図21においてYと記述されている部分については、適宜R,XAに読み替えられる。具体的には、図21の処理が図9のステップS54に対応する処理の場合、G補間処理部332−1が実行する処理であり、図21の処理が図9のステップS55に対応する処理の場合、E補間処理部332−2が実行する処理となる。なお、n’’は、正の偶数である。なお、(j’’,k’’)は局所領域における中心(注目画素位置)を(0,0)とした場合の、処理を実行する画素位置を示す。
ステップS451において、G補間処理部332−1またはE補間処理部332−2は、重み付き平均値MYdirを0に初期化する。
ステップS452において、G補間処理部332−1またはE補間処理部332−2は、供給された局所領域の画素のうち、処理を実行する画素位置を示す第1のレジスタの値j’’を初期化してj’’=−n’’とし、ステップS453において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第2のレジスタの値k’’を初期化してk’’=−n’’とする。
ステップS454において、G補間処理部332−1またはE補間処理部332−2は、MYdir=MYdir+(重み係数widirが施された画素(j'’,k'’)のY)とする。すなわち、MYdirに重み付けが施された画素(j’’,k’’)のYを加算したものが新たなMYdirとされる。
ステップS455において、G補間処理部332−1またはE補間処理部332−2は、第2のレジスタの値k’’を参照し、k’’=n’’であるか否かを判定する。ステップS455において、k’’=n’’でないと判定された場合、ステップS456において、G補間処理部332−1またはE補間処理部332−2は、第2のレジスタの値k’’をk’’=k’’+2に更新して、処理はステップS454に戻り、それ以降の処理が繰り返される。
ステップS455において、k’’=n’’であると判定された場合、ステップS457において、G補間処理部332−1またはE補間処理部332−2は、処理を実行する画素位置を示す第1のレジスタの値j’’を参照し、j’’=n’’であるか否かを判定する。ステップS457においてj’’=n’’ではないと判定された場合、ステップS458においてG補間処理部332−1またはE補間処理部332−2は、第1のレジスタの値j’’をj’’=j’’+2に更新して、処理はステップS453に戻り、それ以降の処理が繰り返される。
ステップS457において、j’’=n’’であると判定された場合、ステップS459において、G補間処理部332−1またはE補間処理部332−2は、MYdir=MYdir/Wdirとする。このWdirは重み係数widirの総和Wdirとされる。
ステップS460において、G補間処理部332−1またはE補間処理部332−2は、重み付き平均値MYdirを出力し、処理は図20のステップS402またはステップS403に進む。
図21の処理により、注目画素近傍のR,XAの重み付き平均値が算出される。
次に、図22のフローチャートを参照して、図20のステップS403において実行されるRの重み付き分散近似値VARRdir算出処理の詳細を説明する。なお、この処理は、図6のG補間処理部332−1またはE補間処理部332−2により実行される処理である。
ステップS501において、G補間処理部332−1またはE補間処理部332−2は、重み付き分散近似値VARRdirを0に初期化する。
ステップS502において、G補間処理部332−1またはE補間処理部332−2は、重み付き平均MRdirを取得する。この重み付き平均MRdirは、上述した図21の処理(図20のステップS401の処理)により算出された値である。
ステップS503において、G補間処理部332−1またはE補間処理部332−2は、供給された局所領域の画素のうち、処理を実行する画素位置を示す第1のレジスタの値j’’を初期化してj’’=−n’’とし、ステップS504において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第2のレジスタの値k’’を初期化してk’’=−n’’とする。
ステップS505において、G補間処理部332−1またはE補間処理部332−2は、VARRdir=VARRdir+重み係数widirが施された|(画素(j'’,k'’)のR)−(MRdir)|とする。すなわち、画素(j’’,k’’)のRからRの重み付き平均値MRdirを減算した値の絶対値を取って重み付けした値に、VARRdirを加算したものが新たなVARRdirとされる。
ステップS506において、G補間処理部332−1またはE補間処理部332−2は、第2のレジスタの値k’’を参照し、k’’=n’’であるか否かを判定する。ステップS506において、k’’=n’’でないと判定された場合、ステップS507において、G補間処理部332−1またはE補間処理部332−2は、第2のレジスタの値k’’をk’’=k’’+2に更新して、処理はステップS505に戻り、それ以降の処理が繰り返される。
ステップS506において、k’’=n’’であると判定された場合、ステップS508において、G補間処理部332−1またはE補間処理部332−2は、処理を実行する画素位置を示す第1のレジスタの値j’’を参照し、j’’=n’’であるか否かを判定する。ステップS508においてj’’=n’’ではないと判定された場合、ステップS509において、G補間処理部332−1またはE補間処理部332−2は、第1のレジスタの値j’’をj’’=j’’+2に更新して、処理はステップS504に戻り、それ以降の処理が繰り返される。
ステップS508において、j’’=n’’であると判定された場合、ステップS510において、G補間処理部332−1またはE補間処理部332−2は、VARRdir=VARRdir/Wdirとする。このWdirは、重み係数widirの総和Wdirとされる。
ステップS511において、G補間処理部332−1またはE補間処理部332−2は、Rの重み付き分散近似値VARRdirを出力し、処理は図20のステップS404に進む。
図22の処理により、Rの重み付き分散近似値VARRdirが算出される。
次に、図23のフローチャートを参照して、図20のステップS404において実行される、R,XAの重み付き共分散近似計算処理について説明する。
ステップS521において、G補間処理部332−1またはE補間処理部332−2は、出力される値であるR,XAの重み付き共分散値VAXAdirを0に初期化する。
ステップS522において、G補間処理部332−1またはE補間処理部332−2は、重み付き平均MRdirおよび重み付き平均MXAdirを取得する。重み付き平均MRdirは、図20のステップS401の処理(図21の処理)で算出された値であり、重み付き平均MXAdirは、図20のステップS402の処理(図21の処理)で算出された値である。
ステップS523において、G補間処理部332−1またはE補間処理部332−2は、処理を実行する画素位置を示す第1のレジスタの値j’’を初期化して、j’’=−n’’とする
ステップS524において、G補間処理部332−1またはE補間処理部332−2は、処理を実行する画素位置を示す第2のレジスタの値k’’を初期化して、k’’=−n’’とする
ステップS525において、G補間処理部332−1またはE補間処理部332−2は、図27を用いて後述する積算処理を実行する。
ステップS526において、G補間処理部332−1またはE補間処理部332−2は、処理を実行する画素位置を示す第2のレジスタの値k’’を参照し、k’’=n’’であるか否かを判断する。
ステップS526において、k’’=n’’ではないと判断された場合、ステップS527において、G補間処理部332−1またはE補間処理部332−2は、第2のレジスタの値k’’を、k’’=k’’+2に更新して、処理は、ステップS525に戻り、それ以降の処理が繰り返される。
ステップS526において、k’’=n’’であると判断された場合、ステップS528において、G補間処理部332−1またはE補間処理部332−2は、処理を実行する画素位置を示す第1のレジスタの値j’’を参照し、j’’=n’’であるか否かを判断する。
ステップS528において、j’’=n’’ではないと判断された場合、ステップS529において、G補間処理部332−1またはE補間処理部332−2は、第1のレジスタの値j’’を、j’’=j’’+2に更新して、処理は、ステップS524に戻り、それ以降の処理が繰り返される。
ステップS528において、j’’=n’’であると判断された場合、ステップS530において、G補間処理部332−1またはE補間処理部332−2は、VARXAdir=VARXAdir/Wdirとし、これをR,XAの重み付き共分散近似値VARRdirとして出力して、処理は図20のステップS405に進む。
従来の方法により回帰直線の傾きを算出する場合、以下の式(3)に示されるような演算を行う必要がある。
しかしながら、式(3)を用いて演算を実行した場合、乗算の回数がデータの個数Nに比例して増大する点が問題となる。そこで、この乗算を簡単な演算で近似することを考える。簡単のためデータXiおよびデータYiが、区間[0,1]に正規化されているとすると、0≦Mx,My≦1が成立するとともに、−1<Xi−Mx,Yi−My<1が成立する。そこで、−1<p,q<1となる2変数p=Xi−Mxおよびq=Yi−Myの乗算pqを考えると、pqは、図24に示される値域をとる。このp、qの符号と絶対値に基づいて、近似した値を得る方法として、条件演算、絶対値演算、および、加減算のみの演算で実現可能な近似方法の一例を説明する。
すなわち、
|p|≧|q|かつp≧0のとき、pqをqで近似し、
|p|≧|q|かつp<0のとき、pqを−qで近似し、
|p|<|q|かつq≧0のとき、pqをpで近似し、
|p|<|q|かつq<0のとき、pqを−pで近似する
ことにより、演算を簡略化することができる。
また、この近似方法においては、p=qの場合、pの2乗(またはqの2乗)は、p(またはq)の絶対値に近似される。
この近似方法を用いて近似されたpqを図25に示し、近似演算による2乗誤差を図26に示す。図24を用いて説明したpqの値のとりうる範囲と、図25に示される近似方法を用いて近似されたpqの値のとりうる範囲は、大きな違いがないことが分かる。図26に示される近似演算による2乗誤差からも、違いがわずかなものであることが分かる。
次に、図27のフローチャートを参照して、図23のステップS525において実行される積算処理について説明する。積算処理は、色成分の値が[0,1]に正規化されているものとして、上述した積の近似方法を用いて、近似された共分散値が算出される場合に実行される処理である。
ステップS551において、G補間処理部332−1またはE補間処理部332−2は、{R(j’’,k’’)−MRdir}をpとする。
ステップS552において、G補間処理部332−1またはE補間処理部332−2は、{XA(j’’,k’’)−MXAdir}をqとする。
ステップS553において、図28を参照して後述する積算近似処理が実行される。
ステップS554において、G補間処理部332−1またはE補間処理部332−2は、VAXAdir=VAXAdir+重み係数widirが施された(pqの近似値)とし、処理は、図23のステップS526に進む。
次に、図28のフローチャートを参照して、図27のステップ553において実行される積算近似処理について説明する。
ステップS601において、G補間処理部332−1またはE補間処理部332−2は、図27のステップS551およびステップS552において置き換えられた値pおよびqを用いて、|p|≧|q|であるか否かを判断する。
ステップS601において、|p|≧|q|であると判断された場合、ステップS602において、G補間処理部332−1またはE補間処理部332−2は、p≧0であるか否かを判断する。
ステップS602において、p≧0ではないと判断された場合、ステップS603において、G補間処理部332−1またはE補間処理部332−2は、pqの近似値を−qとし、処理は、図27のステップS554に進む。
ステップS602において、p≧0であると判断された場合、ステップS604において、G補間処理部332−1またはE補間処理部332−2は、pqの近似値を+qとし、処理は図27のステップS554に進む。
ステップS601において、|p|≧|q|ではないと判断された場合、ステップS605において、G補間処理部332−1またはE補間処理部332−2は、q≧0であるか否かを判断する。
ステップS605において、q≧0であると判断された場合、ステップS606において、G補間処理部332−1またはE補間処理部332−2は、pqの近似値を+pとし、処理は、図27のステップS554に進む。
ステップS605において、q≧0ではないと判断された場合、ステップS607において、G補間処理部332−1またはE補間処理部332−2は、pqの近似値を−pとし、処理は、図27のステップS554に進む。
次に、図29のフローチャートを参照して、図20のステップS405において実行される回帰直線の傾きKdir算出処理の詳細を説明する。なお、この処理は、図6のG補間処理部332−1またはE補間処理部332−2により実行される処理である。
ステップS651において、G補間処理部332−1またはE補間処理部332−2は、重み付き分散近似値VARRdirを取得する。この値は、上述した図20のステップS403(図22)の処理で算出されたものである。
ステップS652において、G補間処理部332−1またはE補間処理部332−2は、重み付き共分散近似値VARXAdirを取得する。この値は上述した図20のステップS404(図23)の処理で算出されたものである。
ステップS653において、G補間処理部332−1またはE補間処理部332−2は、VARRdir<(第2の定数)であるか否かを判定し、VARRdir<(第2の定数)であると判定された場合、ステップS654においてVARRdir=(第2の定数)と設定する。なお、第2の定数は、例えば、経験的にまたは実験的に定められる所定の値である。
ステップS653において、VARRdir<(第2の定数)でない、すなわちVARRdir≧(第2の定数)であると判定された場合、ステップS654の処理はスキップされる。
ステップS653においてVARRdir<(第2の定数)でないと判定された場合、またはステップS654の処理の後、ステップS655において、G補間処理部332−1またはE補間処理部332−2は、Kdir=VARXAdir/VARRdirとする。その後処理は、図20のステップS406に進む。
図29の処理により、回帰直線の傾きKdirが算出される。
次に、図30のフローチャートを参照して、図20のステップS406において実行される回帰直線によるXの推定値XF算出処理を説明する。
ステップS701において、G補間処理部332−1またはE補間処理部332−2は、重み付き平均MRdirを取得する。この値は、上述した図20のステップS401で算出されたものである。
ステップS702において、G補間処理部332−1またはE補間処理部332−2は、重み付き平均MXAdirを取得する。この値は、上述した図20のステップS402で算出されたものである。
ステップS703において、G補間処理部332−1またはE補間処理部332−2は、回帰直線の傾きKdirを取得する。この値は、上述した図20のステップS405で算出されたものである。
ステップS704において、G補間処理部332−1またはE補間処理部332−2は、注目画素Xの推定値XF={Kdir(注目画素のR−重み付き平均MRdir)+重み付き平均MXAdir}とする。すなわち、回帰直線の傾きKdirに注目画素のRから重み付き平均MRdirが減算された値が乗算され、その値に重み付き平均MXAdirが加算された値が注目画素Xの推定値XFとされる。その後、図20の処理は終了され、処理は、図9のステップS56に進む。
図30の処理により、G補間処理部332−1は注目画素Gの推定値GFを算出し、E補間処理部332−2は注目画素Eの推定値EFを算出する。
次に、図31を参照して、図9のステップS56またはステップS57において実行される第3の補間処理(第3のG補間処理または第3のE補間処理)を説明する。なお、GおよびEのいずれに対しても同様の処理が実行されるので、図31においてXと記述されている部分については、適宜、G,Eに読み替えられる。具体的には、図31の処理が図9ステップS56の処理に対応する処理の場合、G補間処理部333−1が実行する処理であるので、Xは、Gに読み替えられ、図31の処理が図9のステップS57の処理に対応する処理の場合、E補間処理部333−2が実行する処理であるので、Xは、Eに読み替えられる。また、ここでは、XがGの場合にはYをEとし、XがEの場合にはYをGとする。
ステップS751において、G補間処理部333−1またはE補間処理部333−2は、注目画素のYFを取得する。具体的には、XがGの場合にはYがEであり、XがEの場合にはYがGであるので、G補間処理部333−1は、EFを取得し、E補間処理部333−2は、GFを取得する。すなわち、G補間処理部333−1は、図30の処理でE補間処理部332−2により算出された推定値XF(EF)を取得し、E補間処理部333−2は、図30の処理でG補間処理部332−1により算出された推定値XF(GF)を取得する。
ステップS752において、G補間処理部333−1またはE補間処理部333−2は、重み付き平均MXA算出処理を実行する。この処理の詳細は、図32を参照して後述する。
ステップS753において、G補間処理部333−1またはE補間処理部333−2は、重み付き平均MYA算出処理を実行する。この処理の詳細は、図32を参照して後述する。
ステップS754において、G補間処理部333−1またはE補間処理部333−2は、Xの補間値XU算出処理を実行する。この処理の詳細は、図33を参照して後述する。ステップS754の処理の後、図31の処理は終了され、処理は、図9のステップS58に進む。
次に、図32のフローチャートを参照して、図31のステップS752における重み付き平均MXA算出処理について説明する。なお、n’’’は、正の整数である。また、(j’’’,k’’’)は、局所領域における中心(注目画素位置)を(0,0)とした場合の、処理を実行する画素位置を示す。
ステップS801において、G補間処理部333−1またはE補間処理部333−2は、重み付き平均値MXAを0に初期化する。
ステップS802において、G補間処理部333−1またはE補間処理部333−2は、供給された局所領域の画素のうち、処理を実行する画素位置を示す第1のレジスタの値j’’’を初期化してj’’’=−n’’’とし、ステップS803において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第2のレジスタの値k’’’を初期化してk’’’=−n’’’とする。
ステップS804において、G補間処理部333−1またはE補間処理部333−2は、MXA=MXA+(重み係数w’iが施された画素(j''’,k''')の補間値XA)とする。すなわち、MXAに重み係数w’iが施された画素(j''',k''')の補間値XAを加算したものが新たなMXAとされる。
ステップS805において、G補間処理部333−1またはE補間処理部333−2は、第2のレジスタの値k’’’を参照し、k’’’=n’’’であるか否かを判定する。ステップS805において、k’’’=n’’’でないと判定された場合、ステップS806において、G補間処理部333−1またはE補間処理部333−2は、第2のレジスタの値k’’’をk’’’=k’’’+1に更新して、処理はステップS804に戻り、それ以降の処理が繰り返される。
ステップS805において、k’’’=n’’’であると判定された場合、ステップS807において、G補間処理部333−1またはE補間処理部333−2は、処理を実行する画素位置を示す第1のレジスタの値j’’’を参照し、j’’’=n’’’であるか否かを判定する。ステップS807においてj’’’=n’’’ではないと判定された場合、ステップS808においてG補間処理部333−1またはE補間処理部333−2は、第1のレジスタの値j’’’をj’’=j’’’+1に更新して、処理はステップS803に戻り、それ以降の処理が繰り返される。
ステップS807において、j’’’=n’’’であると判定された場合、ステップS809において、G補間処理部333−1またはE補間処理部333−2は、MXA=MXA/W’とする。このW’は重み係数w'iの総和W’とされる。
ステップS810において、G補間処理部333−1またはE補間処理部333−2は、重み付き平均値MXAを出力し、処理は図31のステップS753に進む。
図32の処理により、XAの重み付き平均値MXAが算出される。
なお、図32の処理では、重み付き平均MXAについてしか記載されていないが、上述したように、この処理をG補間処理部333−1が実行する場合、XはGに読み替えられ、YがEに読み替えられ、この処理をE補間処理部333−2が実行する場合、XはEに読み替えられ、YがGに読み替えられる。すなわち、G補間処理部333−1およびE補間処理部333−2によって、G,Eについて図32の処理が実行されることにより、MXAおよびMYAが算出される。図32において、重み付き平均MXAおよび重み付き平均MYAが算出された場合、処理は図31のステップS754に進む。
次に、図33のフローチャートを参照して、図31のステップS754において実行されるXの補間値XU算出処理について説明する。ここでは、XがGの場合はYをEに、XがEの場合はYをGに適宜読み替えられる。
ステップS851において、G補間処理部333−1またはE補間処理部333−2は、注目画素の補間値YFを取得する。この値は、上述した図31のステップS751の処理で取得されたものと同じものである。
ステップS852において、G補間処理部333−1またはE補間処理部333−2は、重み付き平均MXAを取得する。この値は、上述した図31のステップS752(図32)の処理で算出されたものである。
ステップS853において、G補間処理部333−1またはE補間処理部333−2は、重み付き平均MYAを取得する。この値は、上述した図31のステップS753(図32)の処理で算出されたものである。
ステップS854において、G補間処理部333−1またはE補間処理部333−2は、MYA<(第3の定数)であるか否かを判定し、MYA<(第3の定数)であると判定された場合、ステップS855においてM’YA=(第3の定数)と設定する。なお、第3の定数は、例えば、経験的にまたは実験的に定められる所定の値である。
ステップS854において、MYA<(第3の定数)ではない、すなわちMYA≧(第3の定数)であると判定された場合、ステップS856においてG補間処理部333−1またはE補間処理部333−2は、M’YA=MYAと設定する。
ステップS855の処理の後、またはステップS856の処理の後、ステップS857において、G補間処理部333−1またはE補間処理部333−2は、注目画素位置のXの補間値XU=(MXA/M’YA)(注目画素位置のYF−MYA)+MXAとする。これにより、Xの補間値XUが算出される。
ステップS858において、G補間処理部333−1またはE補間処理部333−2は、注目画素位置のXの補間値XUを出力し、その後図33の処理は終了され、処理は図9のステップS58に進む。
次に、図34のフローチャートを参照して、図9のステップS58において実行される第1のG+E生成処理について説明する。なおこの処理は、図6のG+E生成処理部335により実行される処理である。
ステップS901において、G+E生成処理部335は、第3の補間処理により算出された注目画素位置のGの補間値GUを取得する。具体的には、図9のステップS56の処理で、G補間処理部333−1により算出されたGの補間値GU(図33の補間値XUに対応する値)が取得される。
ステップS902において、G+E生成処理部335は、第2の補間処理により算出された注目画素位置のEの補間値EFを取得する。具体的には、図9のステップS55の処理で、E補間処理部332−2により算出されたEの補間値EF(図30の補間値XFに対応する値)が取得される。
ステップS903において、G+E生成処理部335は、注目画素位置の(G+E)V=(注目画素位置のGU+注目画素位置のEF)/2とする。すなわち、注目画素位置のGUと注目画素位置のEFの平均値が注目画素位置の(G+E)Vとされる。
ステップS904において、G+E生成処理部335は、注目画素位置の(G+E)Vを出力し、処理は図9のステップS59に進む。
次に、図35のフローチャートを参照して、図9のステップS59において実行される第2のG+E生成処理について説明する。なおこの処理は、図6のG+E生成処理部336により実行される処理である。
ステップS951において、G+E生成処理部336は、第2の補間処理により算出された注目画素位置のGの補間値GFを取得する。具体的には、図9のステップS54の処理で、G補間処理部332−1により算出されたGの補間値GF(図30の補間値XFに対応する値)が取得される。
ステップS952において、G+E生成処理部336は、第3の補間処理により算出された注目画素位置のEの補間値EUを取得する。具体的には、図9のステップS57の処理で、E補間処理部333−2により算出されたEの補間値EU(図33の補間値XUに対応する値)が取得される。
ステップS953において、G+E生成処理部336は、注目画素位置の(G+E)H=(注目画素位置のGF+注目画素位置のEU)/2とする。すなわち、注目画素位置のGFと注目画素位置のEUの平均値が注目画素位置の(G+E)Hとされる。
ステップS954において、G+E生成処理部336は、注目画素位置の(G+E)Hを出力し、処理は図9のステップS60に進む。
次に、図36のフローチャートを参照して、図9のステップS60において実行される合成処理について説明する。なお、この処理は、図6の合成処理部337により実行される処理である。
ステップS1001において、合成処理部337は、第1のG+E生成処理により算出された注目画素位置の(G+E)Vを取得する。具体的には、図9のステップS58(図34)の処理で、G+E生成処理部335により算出された(G+E)Vが取得される。
ステップS1002において、合成処理部337は、第2のG+E生成処理により算出された注目画素位置の(G+E)Hを取得する。具体的には、図9のステップS59(図35)の処理で、G+E生成処理部336により算出された(G+E)Hが取得される。
ステップS1003において、合成処理部337は、補正テクスチャ強度算出処理により算出された、補正されたテクスチャ強度TH,TVを取得する。具体的には、図9のステップS53(図12)の処理で、テクスチャ強度算出処理部334により算出された補正されたテクスチャ強度TH,TVが取得される。
ステップS1004において、本実施の形態で用いた線形回帰による色の補間では、縦方向のサンプルを用いて作られた(G+E)Vは横方向のテクスチャに信頼性が高く、横方向のサンプルを用いて作られた(G+E)Hは縦方向のテクスチャに信頼性が高いので、合成処理部337は、注目画素位置の(G+E)=(注目画素位置の(G+E)V×TH+注目画素位置の(G+E)H×TV)とする。
ステップS1005において、合成処理部337は、注目画素位置の(G+E)を出力し、図9の処理は終了され、処理は、図8のステップS24に進む。
なお、以上の例では、テクスチャ強度TH,TVの算出をG補間処理部331−1(第1のG補間処理)およびE補間処理部331−2(第1のE補間処理)により補間されたGAおよびEAを用いて行ったが、簡易的に原信号であるモザイク画像から直接行うこともできる。図37は、図13に代えてテクスチャ強度TH,TVをモザイク画像から直接算出する処理を説明するフローチャートである。図37の例において、Mと記述されている部分は、モザイク画像信号を表す。
ステップS1051において、テクスチャ強度算出処理部334は、供給された局所領域の画素のうち、処理を実行する画素位置を示す第1のレジスタの値j’を初期化してj’=−n’とし、ステップS1052において、供給された局所領域の画素のうち、処理を実行する画素位置を示す第2のレジスタの値k’を初期化してk’=−n’とする。
ステップS1053において、テクスチャ強度算出処理部334は、式(4)を用いて横勾配評価値dHを算出するとともに、式(5)を用いて縦勾配評価値dVを算出する。
dH={(|M(j'−2,k')−M(j',k')|+|M(j'+2,k')−M(j',k')|)/2+|M(j'−1,k')−M(j'+1,k')|}/2
・・・(4)
dV={(|M(j',k'−2)−M(j',k')|+|M(j',k'+2)−M(j',k')|)/2+|M(j',k'−1)−M(j',k'+1)|}/2
・・・(5)
ステップS1054乃至ステップS1061の処理は、上述した図13のステップS204乃至ステップS211の処理と同様であるので、その説明は省略する。
図37の処理により、簡単にテクスチャ強度TH,TVを算出することができる。図37の処理で得られたテクスチャ強度TH,TVは、注目画素の色がRであるかBであるかによって、フィルタ配列の違いによる影響を受けるものの、図13の処理で得られるテクスチャ強度TH,TVに近い結果が得られるので、この処理を適用するようにしてもよい。
以上の処理をまとめると、以下の通りとなる。
テクスチャ強度は、注目画素位置におけるグラディエント値より算出された、テクスチャの方向性を表す値(変化強度)である。色成分の推定精度は、推定に用いる近傍画素の選択に大きく左右される。そこで、縦方向の近傍画素を用いた推定と横方向の近傍画素を用いた推定を行い、それぞれの推定結果をテクスチャ強度に基づいてブレンドすることで適切な推定を行うようにする。
テクスチャ強度の算出には2段階の処理が行われる。最初に、注目画素位置の縦方向、横方向のグラディエント値に基づいて、縦勾配評価値と横勾配評価値を算出し、テクスチャの変化が大きい方向を判定する。ここではテクスチャの変化が大きい方向のテクスチャ強度を0、小さい方向のテクスチャ強度を1とする。ここで、縦方向のテクスチャ強度をTV、横方向のテクスチャ強度をTHとする。次に、1度求めたテクスチャ強度を近傍画素位置で得られたテクスチャ強度の状態も考慮に入れて補正を行う。テクスチャ方向が横であれば、局所領域全ての画素TH=1,TV=0となり、テクスチャ方向が縦になるに連れてTH=0,TV=1となる画素が増えていく。すなわち、テクスチャ方向が縦または横である時に判定のばらつきが最小であり、45度付近でもっともばらつきが多くなると考えられる。この性質を用いて注目画素位置におけるテクスチャ強度を補正すると、あらゆる角度のテクスチャに対応できると同時に、限界解像度付近のテクスチャの方向が判定できなくなる領域における、判定結果のばらつきに起因する不自然なブレンドを防ぐことができる。補正方法の例を以下に示す。局所領域のTH,TVを用いて横方向のテクスチャ強度の平均偏差STHと縦方向のテクスチャ強度の平均偏差STVを算出し、式(6)乃至式(8)に示される補正式によりテクスチャ強度が補正される。
R=STH×(第1の定数) ・・・(6)
T’H(x,y)=TH(x,y)×(1−R)+R/2 ・・・(7)
T’V(x,y)=TV(x,y)×(1−R)+R/2 ・・・(8)
また、(G+E)Hおよび(G+E)Vのブレンド結果(G+E)は、補正されたテクスチャ強度T’H,T’Vに基づいて、式(9)により算出される。
(G+E)=(G+E)V×T’H+(G+E)H×T’V ・・・(9)
ここで、Rが1より大きくなる場合には、1にクリップされる。式(6)乃至式(9)により、判定結果のばらつきが小さい場合Rは0に近づき、TH,TVがそのまま出力される。また、判定結果のばらつきが大きい場合Rは大きくなり、T’H=0.5,T’V=0.5に近づくことになる。また、式(6)乃至式(9)によれば、T’H,T’Vの和が必ず1になると同時に、第1の定数によりT’H,T’Vの値の挙動をコントロールすることができる。
回帰推定の場合、なるべく(G+E)H,(G+E)Vをブレンドしない方が良いMTF(Modulation Transfer function)を得ることができるため、限界解像度付近でのアーチファクトが除去される程度に第1の定数を小さく設定することで、高いMTF性能を引き出すことができる。ここでは、注目画素位置を含む局所領域におけるテクスチャ強度のばらつきを評価するために平均偏差を用いているが、標準偏差等、他の統計量を用いても構わない。また、式(6)におけるRの算出をSTHだけでなくSTVも用いた以下の式(10)としてもよい。
R=(STH+STV)×(第2の定数) ・・・(10)
本発明では、ベイヤー配列(図1)におけるGに代わる輝度成分として(G+E)という新たな色成分を生成する。G+Eは同一画素上のGとEを加算平均することにより得られる。G+Eは、少なくとも半分はG成分からできているため、Gと相関が高いことが期待できる上、さらにG,Eが互いに相関の高い分光感度を持っているならば、G+EをGの代わりに用いて画像処理を行っても相応の結果を期待できる。つまり、G,Eがそれぞれベイヤー配列におけるGに近い分光特性を持つ場合、G+Eと同様に輝度を代表する色成分として用いることができ、本発明において輝度を全画素に揃える処理は、注目画素位置において横方向のテクスチャに対して信頼性の高い推定値(G+E)Vと、縦方向のテクスチャに対して信頼性の高い推定値(G+E)Hの2つのG+Eの値を算出し、テクスチャ強度に基づいてブレンドして、テクスチャ方向に適応したG+Eを全画素に揃える処理であるといえる。
注目画素位置の色がG,Eのいずれかである場合、例えば、Eが存在する画素位置においてはGを、Gが存在する画素位置においてはEを補間して(G+E)を生成する。この補間に用いられる近傍画素を縦近傍にするか横近傍にするかによって、得られたG+Eのテクスチャ方向に対する信頼性を切り換えることができる。注目画素位置の色がEでもGでもないRまたはGである場合は、E,G双方とも補間された結果を用いなければならないので、この画素位置におけるG+Eを精度良く補間するには工夫が必要である。
本発明では、注目画素位置の色がRまたはBの場合には、EとGの補間に、RまたはBに含まれる高周波成分を利用することを提案する。つまり、従来の補間方法において色のDC成分に輝度の高周波成分を加えていたのと同様に、注目画素位置にあるRまたはBの高周波成分に近傍画素から得られたEまたはGのDC成分を加えてEまたはGの補間を行う。この際、補間に用いる近傍画素を切り替え、縦近傍の画素を補間に用いたEの補間値EFと、横近傍の画素を補間に用いたGの補間値GFを算出する。さらにEFの高周波成分と近傍画素から得られるGのDC成分を用いて、注目画素位置のGを補間し、EFと加算平均して(G+E)Vを得る。同じく、GFの高周波成分と近傍画素から得られるEのDC成分を用いて、注目画素位置のEを補間し、GFと加算平均して(G+E)Hを得る。
なお、以上の例では、4色のフィルタ配列について述べてきたが、図38に示されるように、4色のフィルタ配列にさらに2色(この追加される2色を、以下、O,Sと記述する)追加した場合においても、上述した方法と同様の方法を用いることにより、G+Eを生成することができる。単に、配列に依存する近傍画素の選び方のみ、すなわち、図21乃至図23、図27および図28のループの条件を変更するだけでよい。人間の視覚が色成分に対して輝度に対するほど敏感でないことを考慮すると、輝度に強い相関を持つG+E信号さえ高いサンプリング周波数を保持していれば、他の色成分個々のサンプル数が減ることは、それほど問題にならない。それゆえGが水平及び垂直に1ラインおきに配置、Eが水平及び垂直に1ラインおきでEとは異なるラインに配置されるという配置が守られていれば、同様にして、さらに多くの色を用いた配列を用いることができる。
なお、図14のステップS260、図16のステップS311、図21のステップS459、図22のステップS510、図23のステップS530、および図32のステップS809において、重み係数(例えば、w)の総和(例えば、W)で、所定の値が除算されているが、重み係数wを中心位置からの距離に応じて変化させ、その総和を2の累乗となるように定めることにより、重み係数wの総和Wで、所定の値を除算する処理(画素数を用いた除算)に代わって、シフト演算を用いるようにしてもよい。これにより、除算を簡略化することが可能となる。
なお、本発明は、デジタルカメラを初めとする、固体撮像素子および固体撮像素子を利用した撮像装置(例えば、デジタルスチルカメラ)に適用することができる。具体的には、1つの固体撮像素子によってカラー画像を得る方式(単板カラー方式)の撮像装置に本発明を適用することによって、不明な色成分を推定することができる。
以上により、4色配列を持つ単板カラー撮像素子によって撮像された色のモザイク画像より、テクスチャ方向を表す値としてテクスチャ強度を算出することができる。また、縦方向の近傍画素を用いて推定した推定値と、横方向の近傍画素を用いて推定した推定値とをテクスチャ強度に基づいてブレンドし、精度良く不明な色成分を推定することができる。
これにより、方向検出に誤りが生じやすい限界解像度付近であっても、テクスチャ強度に適切な補正処理が加えられているため、安定した補間結果を得ることができる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。
この場合、ソフトウェアをDSPブロック216が実行することにより、上述した機能が実現される。また、例えば、デモザイク処理部253、または、G+E算出処理部282は、図39に示されるようなパーソナルコンピュータ501により構成することが可能となる。
図39において、CPU(Central Processing Unit)511は、ROM(Read Only Memory)512に記憶されているプログラム、または記憶部518からRAM(Random Access Memory)513にロードされたプログラムに従って、各種の処理を実行する。RAM513にはまた、CPU511が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU511、ROM512、およびRAM513は、バス514を介して相互に接続されている。このバス514にはまた、入出力インタフェース515も接続されている。
入出力インタフェース515には、キーボード、マウスなどよりなる入力部516、ディスプレイやスピーカなどよりなる出力部517、ハードディスクなどより構成される記憶部518、モデム、ターミナルアダプタなどより構成される通信部519が接続されている。通信部519は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース515にはまた、必要に応じてドライブ520が接続され、磁気ディスク531、光ディスク532、光磁気ディスク533、もしくは、半導体メモリ534などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部518にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェア(例えば、DSPブロック216や、その中に含まれている、デモザイク処理部253またはG+E算出処理部282)に組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
この記録媒体は、図39に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク531(フロッピディスクを含む)、光ディスク532(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク533(MO(Magnet Optical Disk)を含む)、もしくは半導体メモリ534などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているROM512や、記憶部518に含まれるハードディスクなどで構成される。
なお、本明細書において、記録媒体に記憶されるプログラムを記述するステップは、含む順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的もしくは個別に実行される処理をも含むものである。
201 デジタルカメラ, 216 DSPブロック, 251 ホワイトバランス調整部, 253 デモザイク処理部, 331−1 G補間処理部, 331−2 E補間処理部, 332−1 G補間処理部, 332−2 E補間処理部, 333−1 G補間処理部, 333−2 E補間処理部, 334 テクスチャ強度算出処理部, 335,336 G+E生成処理部, 337 合成処理部