(57)【要約】【課題】  色モアレの発生しないノイズの少ない画像のカラー撮像をできるようにする。【解決手段】  光電変換素子群を備え、少なくとも二色以上のカラーフィルタが前記光電変換素子群の各光電変換素子に対して配置される構造を有する撮像素子であって、前記カラーフィルタが、各色毎の配列の空間周波数成分が低周波数領域で成分が小さく、高周波数領域で帯域成分を持つように、前記各光電変換素子に配置されている。【選択図】  図２
2008306702.tif 000002
【特許請求の範囲】
【請求項１】
光電変換素子群を備え、少なくとも二色以上のカラーフィルタが前記光電変換素子群の各光電変換素子に対して配置される構造を有する撮像素子であって、
前記カラーフィルタが、各色毎の配列の空間周波数成分が低周波数領域で成分が小さく、高周波数領域で帯域成分を持つように、前記各光電変換素子に配置されていることを特徴とする撮像素子。
【請求項２】
前記カラーフィルタの各色毎の配列が、誤差拡散法により求められた配列である事を特徴とする請求項１記載の撮像素子。
【請求項３】
少なくとも二色以上のカラーフィルタが光電変換素子群上に配置されたカラー撮像素子と、
前記カラー撮像素子から得られた色信号に対して補間処理を行い、複数の色成分に対応した画像信号を生成する補間処理部とを有し、
前記カラーフィルタは、各色毎の配列の空間周波数成分が、低周波数領域で成分が小さく、高周波数領域で帯域成分を持つことを特徴とするカラー撮像装置。
【請求項４】
前記カラーフィルタの各色毎の配列が、低周波数成分を少なくするように該配列を編集する手法で求められた配列である事を特徴とする請求項３記載のカラー撮像装置。
【請求項５】
前記補間処理部は、前記カラーフィルタの配列の高周波における帯域成分を除去するように設定された前記補間パラメータを用いて前記補間処理を行うことを特徴とする請求項３記載のカラー撮像装置。
【請求項６】
前記補間パラメータは、ディジタルフィルタであることを特徴とする請求項３記載のカラー撮像装置。
【請求項７】
前記補間パラメータは、補間関数であることを特徴とする請求項３記載のカラー撮像装置。
【請求項８】
前記補間パラメータは、周辺のカラーフィルタの配列分布に依存して変化すること特徴とする請求項３記載のカラー撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カラーフィルタが配置される光電変換素群を有するＣＣＤ（Ｃｈａｒｇｅ  ＣｏｕｐｌｅｄＤｅｖｉｃｅ）に適用して好適な撮像素子、データ処理装置、及び制御方法に関する。
【背景技術】
【０００２】
従来、撮像管や固体撮像素子は、撮像装置に広範に使用されている。特に、単管或いは単板（Ｓｉｎｇｌｅ  Ｓｅｎｓｏｒ）カラー撮像装置に搭載されるカラー撮像素子は、１つの撮像素子でカラー撮像部を構成できるため、色分離プリズムが不要でレンズの小型化が可能である。また、この種のカラー撮像素子は、多板式の撮像素子のように位置ずれ調整などが不要で、更に消費電力が小さいなど多くの特徴を有し、カラー撮像装置の小型化・消電力化に多くの貢献を果している。特に、固体撮像素子であるカラーＣＣＤ撮像素子を用いた単板カラーカメラは、撮像装置の主流となっている。
【０００３】
上記のカラー撮像素子は、いずれも１つの受光面で色情報を得るため、ストライプフィルタまたはモザイクフィルタなどと称される色フィルタを用いて、受光平面内で色変調（カラーフィルタ処理）を行っている。即ち、カラー撮像素子において例えばＲＧＢ３色のカラーフィルタを所定の規則的配列で各光電変換素子（画素）上に張り付ける構造とすることで、画素毎に異なる分光感度を持たせている。
【０００４】
カラー撮像素子による被写体の撮像によって得られた映像信号には、上記カラーフィルタ配列に従った点順次の色情報が含まれている。そこで、映像信号を上記所定の配列に従って各色のカラーフィルタに対応した信号毎に分離してその分離した信号を取り出すことにより、色情報を取り出すことができる。輝度信号（Ｙ信号）を得るためには色情報としてＲＧＢ情報が全て必要であるから、１画素の輝度信号を得るためには最低３画素（ＲＧＢ各１画素ずつ）を必要とする。この種のカラー撮像素子は、輝度解像度は犠牲になるものの１つの撮像素子でカラー撮像を行うことができるようになっている。
【０００５】
従来、上記のカラーフィルタ配列としては、多種多様なカラーフィルタパターンが提案され実用化されている。カラーフィルタパターンの例としては次のものがある。ＲＧＢストライプ・Ｂａｙｅｒ型ＲＧＢモザイク等の３原色フィルタ。ＹｅＭｇＣｙストライプ・ＹｅＭｇＣｙＷ４色モザイク・ＹｅＭｇＣｙＧ４色モザイク等の補色フィルタ。
【０００６】
また、Ｂａｙｅｒ配列等のように規則的なカラーフィルタ配列による空間サンプリングに基づいた偽解像、いわゆる色モアレの発生を伴う問題を解決するため、カラーフィルタ配列をランダムに配置する方法が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２０００−２９９８７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来、Ｂａｙｅｒ配列等の規則的な配列を用いたカラーフィルタ配置では、その配列による空間サンプリングに基づいた偽解像、いわゆる色モアレの発生を伴うという問題があった。このため、従来の単板カラー撮像装置は、画質を確保するために光学ローパスフィルタを必須としており、これが画像の解像度低下の原因となっている。そのため、Ｂａｙｅｒ配列等を代表とするカラーフィルタ配置では、色モアレの防止と解像度の向上とは両立できない関係にあった。
【０００８】
また、上述した特許文献１のように、色モアレの発生や画像の解像度低下という問題を解決する手法として、カラーフィルタ配列をランダムに配置する方法が提案されている。しかし、特許文献１記載の技術は、カラーフィルタ配列をランダムに配置する方法であるため、画像の空間周波数が不均一となり周波数的な偏りが生じ、画像にノイズを引き起こすという問題があった。
【０００９】
本発明の目的は、色モアレの発生しないノイズの少ない画像の撮影できるようにすることにある。
【課題を解決するための手段】
【００１０】
上述の目的を達成するために、本願請求項１記載の撮像素子は、光電変換素子群を備え、少なくとも二色以上のカラーフィルタが前記光電変換素子群の各光電変換素子に対して配置される構造を有する撮像素子であって、前記カラーフィルタが、各色毎の配列の空間周波数成分が低周波数領域で成分が小さく、高周波数領域で帯域成分を持つように、前記各光電変換素子に配置されていることを特徴とする。
【００１１】
本願請求項３記載のカラー撮像装置は、少なくとも二色以上のカラーフィルタが光電変換素子群上に配置されたカラー撮像素子と、前記カラー撮像素子から得られた色信号に対して補間処理を行い、複数の色成分に対応した画像信号を生成する補間処理部とを有し、前記カラーフィルタは、各色毎の配列の空間周波数成分が、低周波数領域で成分が小さく、高周波数領域で帯域成分を持つことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、カラーフィルタ配置を、カラーフィルタの各色毎の配置の空間周波数成分のうち低周波数領域では成分が少なく高周波数領域では成分が多い周波数特性を有する配置としている。これにより、色モアレの発生しないノイズの少ない画像のカラー撮像が可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１４】
［第１実施形態］
図１は、第１実施形態に係るデータ処理装置としての情報処理装置のデータ処理系の構成を示すブロック図である。
【００１５】
図１において、情報処理装置は、ＲＧＢ合計部０１、ＲＧ二値化部０２、Ｇ二値化部０３を備えている。ＲＧ二値化部０２は、ＲＧ累積誤差ラインバッファ０４、ＲＧ累積誤差加算部０５、ＲＧ閾値選択部０６、ＲＧ量子化部０７、ＲＧ誤差演算部０８、ＲＧ誤差拡散部０９を備えている。Ｇ二値化部０３は、Ｇ累積誤差ラインバッファ１０、Ｇ累積誤差加算部１１、Ｇ閾値選択部１２、Ｇ量子化部１３、Ｇ誤差演算部１４、ＲＧ誤差拡散部１５を備えている。
【００１６】
各部の概略を説明する。ＲＧＢ合計部０１は、Ｒ・Ｇ・Ｂ各プレーン合計の画素データ（ＲＧＢ合計データ）が入力される。ＲＧ累積誤差ラインバッファ０４には、量子化誤差が格納されている。ＲＧ累積誤差加算部０５は、ＲＧ合計データの横画素位置に対応する誤差を加算する。ＲＧ閾値選択部０６は、閾値を選択する。ＲＧ量子化部０７は、出力画素データとＢフィルタの最終結果を決定する。ＲＧ誤差演算部０８は、注目画素に誤差加算後の画素データと出力画素データとの差分を計算する。ＲＧ誤差拡散部０９は、横画素位置に応じて誤差の拡散処理を行う。
【００１７】
Ｇ累積誤差ラインバッファ１０には、量子化誤差が格納されている。Ｇ累積誤差加算部１１は、入力画素データの横画素位置に対応する誤差を加算する。Ｇ閾値選択部１２は、閾値を選択する。Ｇ量子化部１３は、Ｒフィルタの最終二値化結果とＧフィルタの最終二値化結果を決定する。Ｇ誤差演算部１４は、注目画素に誤差加算後の画素データと出力画素データとの差分を計算する。ＲＧ誤差拡散部１５は、横画素位置に応じて誤差の拡散処理を行う。
【００１８】
更に、情報処理装置は、不図示の制御部（第１の決定手段、作成手段、処理手段、第２の決定手段）を備えている。制御部は、プログラムに基づいて後述の各フローチャートに示す処理を実行する。情報処理装置による後述のカラーフィルタ配置決定処理とハーフトーン処理の対象とする撮像素子は、次の構造を有する。即ち、撮像素子は、光電変換素子群を備え、少なくとも二色以上（本実施の形態ではＲＧＢ三色）のカラーフィルタが所定の配列で各光電変換素子（画素）に対して配置される構造を有するカラーＣＣＤ撮像素子である。
【００１９】
カラーＣＣＤ撮像素子は、ＣＣＤカラーフィルタ（Ｒフィルタ・Ｇフィルタ・Ｂフィルタ）を有する。カラーフィルタの配置とは、カラーＣＣＤ撮像素子のＣＣＤカラーフィルタの全領域（カラーフィルタ配置対象領域）に対してＲフィルタ・Ｇフィルタ・Ｂフィルタを面積比率に応じて配置することである。カラーフィルタの配置は、カラーフィルタの各色毎の配置の空間周波数成分のうち低周波数領域では成分が少なく高周波数領域では成分が多い周波数特性を有する配置である。
【００２０】
本実施の形態では、誤差拡散法を用いてカラーＣＣＤ撮像素子のカラーフィルタの配置を決定する場合について説明する。また、後述の第２実施形態では、二値化手法を用いてカラーＣＣＤ撮像素子のカラーフィルタの配置を決定する場合について説明する。
【００２１】
次に、上記構成を有する本実施の形態の動作について図１乃至図５を参照しながら詳細に説明する。
【００２２】
図２は、本実施の形態の情報処理装置のカラーフィルタ配置決定処理を示すフローチャートである。
【００２３】
図２において、まず、情報処理装置の制御部は、カラーＣＣＤ撮像素子のＣＣＤカラーフィルタの全領域（カラーフィルタ配置対象領域）に対するＲフィルタ・Ｇフィルタ・Ｂフィルタの面積の割合を示す面積比率を決定する。本実施の形態では、人間の錐体の比率を考慮し、Ｒフィルタ・Ｇフィルタ・Ｂフィルタの面積比率（ＲＧＢ比率）を（３：６：１）とする（ステップＳ２１）。
【００２４】
次に、制御部は、上記決定したＲＧＢ比率に基づき、カラーＣＣＤ撮像素子のＲ・Ｇ・Ｂ各プレーン内の画素データが均一で、Ｒ・Ｇ・Ｂ各プレーンの画素データの合計が２５５となるような８ビットの画像データを作成する（ステップＳ２２）。本実施の形態では、Ｒ・Ｇ・Ｂの比率が（３：６：１）であるため、Ｒ・Ｇ・Ｂ各プレーンの画素データは以下のようになる。
Ｒプレーンの画素データＩ＿Ｒは、
Ｉ＿Ｒ＝２（ビット数）×（Ｒの比率）／（Ｒの比率＋Ｇの比率＋Ｂの比率）      ・・・（１）＝２８×３／（３＋６＋１）≒７６
Ｇプレーンの画素データＩ＿Ｇは、
Ｉ＿Ｇ＝２（ビット数）×（Ｇの比率）／（Ｒの比率＋Ｇの比率＋Ｂの比率）      ・・・（２）＝２８×６／（３＋６＋１）＝１５３
Ｂプレーンの画素データＩ＿Ｂは、
Ｉ＿Ｂ＝２（ビット数）−（Ｒプレーンの画素データ＋Ｇプレーンの画素データ）      ・・・（３）＝２８−（７６＋１５３）＝２６
尚、上記作成した８ビットの画像データの横幅と縦幅は、配置したいＣＣＤカラーフィルタの横数と縦数（フィルタの横と縦のサイズ）と同じとする。
【００２５】
次に、制御部は、上記Ｒ・Ｇ・Ｂ各プレーンのハーフトーン処理（中間階調を滑らかに表現する処理）を行う。ここでは、ハーフトーン処理後の階調値は２レベルの二値に変換する（ステップＳ２３）。
【００２６】
ハーフトーン処理を行う多値の入力画像データを二値の画像データ（または二値以上で入力階調数より少ない階調数を有する画像データ）に変換する手法としては、Ｒ．Ｆｌｏｙｄらによる誤差拡散法がある。“Ａｎ  ａｄａｐｔｉｖｅ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｓｐａｔｉａｌ  ｇｒａｙ  ｓｃａｌｅ”，ＳＩＤ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  Ｄｉｇｅｓｔ  ｏｆ  Ｔｅｃｈｎｉｃａｌ  Ｐａｐｅｒｓ，ｖｏｌ４．３，１９７５，ｐｐ．３６−３７。尚、ハーフトーン処理の詳細については後述する。
【００２７】
次に、制御部は、上記ハーフトーン処理後の二値画像データ（０、２５５）を参照し、Ｒ・Ｇ・Ｂ各プレーンで２５５となっている画素に対し、Ｒフィルタ・Ｇフィルタ・Ｂフィルタを配置する（ステップＳ２４）。以上で、ＣＣＤカラーフィルタの配置が完了する。
【００２８】
次に、上記ハーフトーン処理で用いる誤差拡散法について説明する。尚、本実施の形態では、特に断りのない限り、色分解処理後のＲ・Ｇ・Ｂ各プレーンの画像データは０〜２５５の８ビット画像データとする。
【００２９】
図３は、本実施の形態の情報処理装置のハーフトーン処理を示すフローチャートである。
【００３０】
図３において、Ｒ・Ｇ・Ｂ各プレーンの画像内の１画素について説明する。情報処理装置の制御部は、Ｒ・Ｇ・Ｂ各プレーンの画素データに対して二値化（量子化値０、２５５）を行う場合、以下のように行う。まず、制御部は、Ｒ・Ｇ・Ｂ各プレーン合計の画素データＩ＿ＲＧＢを求める。次に、制御部は、Ｒ・Ｇ・Ｂ各プレーン合計の画素データＩ＿ＲＧＢをＲＧＢ合計部０１に入力する（ステップＳ３１）。Ｉ＿ＲＧＢは次の式で表される。
Ｉ＿ＲＧＢ＝Ｉ＿Ｒ＋Ｉ＿Ｇ＋Ｉ＿Ｂ      ・・・（４）
【００３１】
次に、制御部は、ＲＧ二値化部０２において、Ｒ・Ｇの２プレーン合計の画素データＩ＿ＲＧに対して誤差拡散処理を施し二値化（量子化値０、２５５）を行う。まず、制御部は、Ｒ・Ｇの２プレーン合計の画素データＩ＿ＲＧをＲＧ二値化部０２に入力する（ステップＳ３２）。Ｉ＿ＲＧは次の式で表される。
Ｉ＿ＲＧ＝Ｉ＿Ｒ＋Ｉ＿Ｇ      ・・・（５）
【００３２】
誤差拡散係数が図４に示すように４係数（Ｋ１〜Ｋ４）ある場合、ＲＧ二値化部０２のＲＧ累積誤差ラインバッファ０４には、以下の量子化誤差が格納されている。即ち、ＲＧ累積誤差ラインバッファ０４には、１個の記憶領域Ｅ＿ＲＧ０と、入力画像の横画素数Ｗと同数の記憶領域Ｅ＿ＲＧ（ｘ）（ｘ＝１〜Ｗ）とが含まれ、後述する方法で量子化誤差が格納されている。尚、ＲＧ累積誤差ラインバッファ０４は、処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。図５の５１はＲＧ累積誤差ラインバッファ０４の詳細を示している。
【００３３】
次に、制御部は、ＲＧ累積誤差加算部０５において、Ｒ・Ｇの２プレーン合計の画素データの横画素位置ｘに対応する誤差Ｅ＿ＲＧ（ｘ）を加算する（ステップＳ３３）。即ち、入力された注目画素データＩ＿ＲＧの値は、累積誤差加算後の画素データをＩ＿ＲＧ’とすると次の式で表される。
Ｉ＿ＲＧ’＝Ｉ＿ＲＧ＋Ｅ＿ＲＧ（ｘ）      ・・・（６）
次に、制御部は、ＲＧ閾値選択部０６において閾値Ｔ＿ＲＧを選択する（ステップＳ３４）。その際、
ｔ＿ＲＧ＝Ｉ＿ＲＧＢ−Ｉ＿ＲＧ      ・・・（７）
とおくと、閾値Ｔ＿ＲＧを次の式のように設定してもよい。
Ｔ＿ＲＧ（ｔ＿ＲＧ）＝１２８      ・・・（８）
（０≦ｔ＿ＲＧ≦２５５）
【００３４】
或いは、フィルタの生成遅延を回避するため、平均量子化誤差が小さくなるよう、ｔ＿ＲＧに応じて閾値Ｔ＿ＲＧを細かく変更してもよい。尚、Ｉ＿ＲＧＢ−Ｉ＿ＲＧは２５５以下となるので、本実施の形態ではＴ＿ＲＧ（ｔ＿ＲＧ）＝１２８をとる。
【００３５】
次に、制御部は、ＲＧ量子化部０７において、誤差加算後の画素データＩ＿ＲＧ’と閾値Ｔ（ｔ＿ＲＧ）とを比較し、出力画素データＯｕｔ＿ＲＧとＢフィルタの最終結果Ｏｕｔ＿Ｂを決定する。その規則は次の通りである。
Ｏｕｔ＿ＲＧ＝０          ・・・（９）
Ｏｕｔ＿Ｂ＝２５５        ・・・（１０）
（Ｉ＿ＲＧＢ’＜Ｔ（Ｉ＿ＲＧ））
Ｏｕｔ＿ＲＧ＝２５５      ・・・（１１）
Ｏｕｔ＿Ｂ＝０            ・・・（１２）
（Ｉ＿ＲＧ’≧Ｔ（Ｉ＿ＲＧ））
【００３６】
上記（式９）〜（式１１）により、Ｒ・Ｇの２プレーン合計の画素データの二値化（量子化値０、２５５）が決定する（ステップＳ３５）。同時に、Ｏｕｔ＿Ｂの二値化（量子化値０、２５５）が決定する。即ち、この時点でＢフィルタの最終結果Ｏｕｔ＿Ｂが確定することになる。尚、（式１０）はＢフィルタが配置されることを意味し、（式１１）はＢフィルタが配置されないことを意味する。
【００３７】
ここで、Ｒ・Ｇの２プレーン合計の画素データの二値化の意味を説明する。Ｏｕｔ＿ＲＧ＝２５５とは、その場所（光電変換素子）にＲフィルタ・Ｇフィルタのうちいずれか一方のフィルタが配置されることを意味する。即ち、Ｏｕｔ＿ＲＧ＝２５５とは、その場所にＲフィルタの配置が確定するわけでなく、Ｇフィルタの配置も確定しない。この時点で確定していることは、Ｒフィルタ・Ｇフィルタのうちどのフィルタが配置されるか分からないが、少なくともどれか１つのフィルタは配置されることが確定しているに過ぎない。
【００３８】
以上をまとめると以下のようになる。
Ｏｕｔ＿ＲＧ＝０：Ｒフィルタ・Ｇフィルタのいずれも配置されないことが確定
即ち、Ｂフィルタが配置されることが確定
Ｏｕｔ＿ＲＧ＝２５５：Ｒフィルタ・Ｇフィルタのいずれか１つが配置されることが確定
次に、制御部は、ＲＧ誤差演算部０８において、注目画素データＩ＿ＲＧに誤差加算後の画素データＩ＿ＲＧ’と出力画素データＯｕｔ＿ＲＧとの差分Ｅｒｒ＿ＲＧを、次の式により計算する（ステップＳ３６）。
Ｅｒｒ＿ＲＧ（ｘ）＝Ｉ＿ＲＧ’−Ｏｕｔ＿ＲＧ      ・・・（１３）
【００３９】
次に、制御部は、ＲＧ誤差拡散部０９において、横画素位置ｘに応じて以下のように誤差Ｅｒｒ＿ＲＧ（ｘ）の拡散処理を行う（ステップＳ３７）。
Ｅ＿ＲＧ（ｘ＋１）←Ｅ＿ＲＧ（ｘ＋１）＋Ｅｒｒ＿ＲＧ（ｘ）×７／１６（ｘ＜Ｗ）
Ｅ＿ＲＧ（ｘ―１）←Ｅ＿ＲＧ（ｘ―１）＋Ｅｒｒ＿ＲＧ（ｘ）×３／１６（ｘ＞１）
Ｅ＿ＲＧ（ｘ）←Ｅ０＿ＲＧ＋Ｅｒｒ＿ＲＧ（ｘ）×５／１６（１＜ｘ＜Ｗ）
Ｅ＿ＲＧ（ｘ）←Ｅ０＿ＲＧ＋Ｅｒｒ＿ＲＧ（ｘ）×８／１６（ｘ＝１）
Ｅ＿ＲＧ（ｘ）←Ｅ０＿ＲＧ＋Ｅｒｒ＿ＲＧ（ｘ）×１３／１６（ｘ＝Ｗ）
Ｅ０＿ＲＧ←Ｅ＿ＲＧ×１／１６（ｘ＜Ｗ）
Ｅ０＿ＲＧ←０（ｘ＝Ｗ）
以上で、１画素分のＲフィルタ・Ｇフィルタの２プレーン合計の画素データＩ＿Ｒ’、Ｉ＿Ｇ’に対して二値化（量子化値０、２５５）が完了する。同時に、Ｂフィルタの画素データＩ＿Ｂ’の二値化（量子化値０、２５５）結果が確定する。
【００４０】
Ｒ・Ｇ２プレーン合計の画素データの二値化は、２プレーンのどのフィルタが配置されるか分からないが、少なくとも２プレーンのトータルで適切なフィルタ配置を確保することに目的がある。そして、Ｒフィルタ・Ｇフィルタを適切に配置した際の余りとして、Ｂフィルタの画素データＩ＿Ｂ’の二値化結果が確定するわけである。
【００４１】
即ち、Ｒフィルタ・Ｇフィルタは適切な配置となり、結果としてＢフィルタはＲフィルタ・Ｇフィルタを適切に配置した際の余りものとなる。このようにする理由は、視覚的に目立たないＢフィルタを適切に配置するよりも、Ｒフィルタ・Ｇフィルタを適切に配置した方が視覚的に良好な画像が得られるからである。
【００４２】
次に、制御部は、Ｇプレーンの画素データＩ＿Ｇに対して誤差拡散処理を施し二値化を行う。まず、制御部は、Ｇプレーンの画素データＩ＿ＧをＧ二値化部０３に入力する（ステップＳ３８）。
【００４３】
誤差拡散係数が図４に示すように４係数（Ｋ１〜Ｋ４）ある場合、Ｇ二値化部０３のＧ累積誤差ラインバッファ１０には、以下の量子化誤差が格納されている。即ち、Ｇ累積誤差ラインバッファ１０には、１個の記憶領域Ｅ＿Ｇ０と、入力画像の横画素数Ｗと同数の記憶領域Ｅ＿Ｇ（ｘ）（ｘ＝１〜Ｗ）とが含まれ、後述する方法で量子化誤差が格納されている。尚、Ｇ累積誤差ラインバッファ１０は、処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。図５の５２はＧ累積誤差ラインバッファ１０の詳細を示している。
【００４４】
次に、制御部は、Ｇ累積誤差加算部１１において入力画素データの横画素位置ｘに対応する誤差Ｅ＿Ｇ（ｘ）を加算する（ステップＳ３９）。即ち、入力された注目画素データＩ＿Ｇの値は、累積誤差加算後のデータをＩ＿Ｇ’とすると次の式で表される。
【００４５】
Ｉ＿Ｇ’＝Ｉ＿Ｇ＋Ｅ＿Ｇ（ｘ）      ・・・（１４）
次に、制御部は、Ｇ閾値選択部１２において閾値Ｔ＿Ｇを選択する（ステップＳ４０）。その際、
ｔ＿Ｇ＝Ｉ＿ＲＧ−Ｉ＿Ｇ      ・・・（１５）
とおくと、閾値Ｔ＿Ｇを次の式のように設定してもよい。
Ｔ＿Ｇ（ｔ＿Ｇ）＝１２８
（０≦ｔ＿ｌ≦２５５）
或いは、フィルタの生成遅延を回避するため、平均量子化誤差が小さくなるよう、ｔ＿Ｇに応じて細かく変更してもよい。尚、Ｉ＿ＲＧ−Ｉ＿Ｇは２５５以下となるので、本実施の形態ではＴ＿Ｇ（ｔ＿ＲＧ）＝１２８をとる。
【００４６】
次に、制御部は、Ｇ量子化部１３において誤差加算後の画素データＩ＿Ｇ’と、閾値Ｔ＿Ｇ（ｔ＿Ｇ）と、上記Ｒ・Ｇの２プレーン合計の画素データの二値化（量子化値０、２５５）結果Ｏｕｔ＿ＲＧを比較する。そして、制御部は、Ｒフィルタ最終二値化結果Ｏｕｔ＿Ｒ、とＧフィルタ最終二値化結果Ｏｕｔ＿Ｇを決定する（ステップＳ４１）。その規則は次の通りである。
Ｏｕｔ＿Ｇ＝Ｏｕｔ＿ＲＧ      ・・・（１６）
Ｏｕｔ＿Ｒ＝０                ・・・（１７）
（Ｉ＿Ｇ’≧Ｔ（ｔ＿Ｇ））
Ｏｕｔ＿Ｇ＝０                ・・・（１８）
Ｏｕｔ＿Ｒ＝Ｏｕｔ＿ＲＧ      ・・・（１９）
（Ｉ＿Ｇ’＜Ｔ（ｔ＿Ｇ））
上記（式１６）〜（式１９）により、Ｇプレーンの画素データＯｕｔ＿Ｇの二値化が決定すると同時に、Ｒプレーンの画素データＯｕｔ＿Ｒの二値化が決定する。即ち、Ｒフィルタの最終結果Ｏｕｔ＿ＲとＧフィルタの最終結果Ｏｕｔ＿Ｇが同時に確定する。尚、（式１６）はＧフィルタが配置されることを意味し、（式１８）はＧフィルタが配置されないことを意味する。
【００４７】
次に、制御部は、Ｇ誤差演算部１４において注目画素データＩ＿Ｇに誤差加算後の画素データＩ＿Ｇ’と出力画素データＯｕｔ＿Ｇとの差分Ｅｒｒ＿Ｇを、次のようにして計算する（ステップＳ４２）。
Ｅｒｒ＿Ｇ（ｘ）＝Ｉ＿Ｇ’−Ｏｕｔ＿Ｇ      ・・・（２０）
次に、制御部は、Ｇ誤差拡散部１５において横画素位置ｘに応じて以下のように誤差Ｅｒｒ＿Ｇ（ｘ）の拡散処理を行う（ステップＳ４３）。
Ｅ＿Ｇ（ｘ＋１）←Ｅ＿Ｇ（ｘ＋１）＋Ｅｒｒ＿Ｇ（ｘ）×７／１６（ｘ＜Ｗ）
Ｅ＿Ｇ（ｘ―１）←Ｅ＿Ｇ（ｘ―１）＋Ｅｒｒ＿Ｇ（ｘ）×３／１６（ｘ＞１）
Ｅ＿Ｇ（ｘ）←Ｅ０＿Ｇ＋Ｅｒｒ＿Ｇ（ｘ）×５／１６（１＜ｘ＜Ｗ）
Ｅ＿Ｇ（ｘ）←Ｅ０＿Ｇ＋Ｅｒｒ＿Ｇ（ｘ）×８／１６（ｘ＝１）
Ｅ＿Ｇ（ｘ）←Ｅ０＿Ｇ＋Ｅｒｒ＿Ｇ（ｘ）×１３／１６（ｘ＝Ｗ）
Ｅ０＿Ｇ←Ｅ＿Ｇ×１／１６（ｘ＜Ｗ）
Ｅ０＿Ｇ←０（ｘ＝Ｗ）
以上で、１画素分のＧフィルタ、Ｇプレーンの画素データＩ＿Ｇ’に対して二値化（量子化値０、２５５）が完了する。同時に、Ｒフィルタ、Ｒプレーンの画素データＩ＿Ｒ’の二値化（量子化値０、２５５）結果が確定する。
【００４８】
Ｇフィルタ、Ｇプレーンの画素データの二値化は、Ｇプレーンに適切な配置を確保することに目的がある。そして、Ｇフィルタの適切な配置の余りとして、Ｒフィルタの画素データＩ＿Ｒ’の二値化結果が確定するわけである。即ち、Ｇフィルタは適切な配置となり、結果としてＲフィルタはＧフィルタを適切な配置とした余りものとなる。
【００４９】
このようにする理由は、視覚的に目立たないＲフィルタを適切な配置とするよりも、Ｇフィルタを適切な配置とした方が視覚的に良好な画像が得られるからである。ただし、始めにＲフィルタ・Ｇフィルタ・Ｂフィルタ合計の画素データを誤差拡散したため、Ｒフィルタ・Ｇフィルタ・Ｂフィルタのトータルで見れば適切な配置となっている。そのため、Ｒフィルタ・Ｇフィルタ・Ｂフィルタのトータルで適切な配置、視覚的に目立つＧフィルタ単独で適切な配置となる。
【００５０】
以上をまとめると、本実施の形態のハーフトーン処理は、カラー撮像素子におけるＲフィルタ・Ｇフィルタ・Ｂフィルタのトータルで適切な配置、Ｇフィルタ単独で適切な配置、となる特徴を有する。
【００５１】
以上の処理を全ての画素について行うことで（ステップＳ４４）、本実施の形態のハーフトーン処理が終了する。
【００５２】
以上説明したように、本実施の形態によれば、カラーフィルタ配置を、カラーフィルタの各色毎の配置の空間周波数成分のうち低周波数領域では成分が少なく高周波数領域では成分が多い周波数特性を有する配置としている。即ち、ブルーノイズ特性を有するカラーフィルタ配置としている。Ｂａｙｅｒ配列等の規則的な配列でないカラーフィルタ配置により、周期的な輝度変化がある被写体でも、従来のような光学ローパスフィルタを用いることなく、色モアレの発生しないノイズの少ない画像のカラー撮像が可能となる。
【００５３】
［第２実施形態］
本発明の第２実施形態は、上記第１実施形態に対して、図６のフローチャートに示すハーフトーン処理を行う点において相違する。本実施の形態のその他の要素は、上記第１実施形態の対応するもの（図１の構成、図２のカラーフィルタ配置決定処理）と同一なので、説明を省略する。
【００５４】
ハーフトーン処理を行う多値の入力画像データを二値画像データとしてドット配置の分散性の高いもの、即ち、空間周波数特性として低周波側に成分を持たず高周波側のみに成分を持つものに変換する方法としては、次のものがある。例えばＳｕｌｉｖａｎとＭｉｌｌｅｒの米国特許第４，９２０，５０１号が知られている。ただし、前記の方法に限らず、他のブルーノイズ特性を有する画像データの作成方法として任意の方法を適用することができる。
【００５５】
次に、本実施の形態における上記ハーフトーン処理で用いる二値化手法について説明する。尚、本実施の形態では、特に断りのない限り、色分解処理後のＲ・Ｇ・Ｂ各プレーンの画像データは０〜２５５の８ビット画像データとする。
【００５６】
図６は、本実施の形態の情報処理装置のハーフトーン処理を示すフローチャートである。
【００５７】
図６において、Ｒ・Ｇ・Ｂ各プレーンの画素データに対して二値化（量子化値０、２５５）を行う場合、Ｒ・Ｇ・Ｂ各プレーン合計の画素データＩ＿ＲＧＢを求める。まず、制御部は、Ｒ・Ｇ・Ｂ各プレーン合計の画素データＩ＿ＲＧＢをＲＧＢ合計部０１に入力する（ステップＳ６１）。
Ｉ＿ＲＧＢ＝Ｉ＿Ｒ＋Ｉ＿Ｇ＋Ｉ＿Ｂ      ・・・（２５）
次に、制御部は、ＲＧ二値化部０２においてＲ・Ｇの２プレーン合計の画素データＩ＿ＲＧに対して二値化処理を行い、Ｒ・Ｇの２プレーン合計の画素データを量子化（０、２５５）する。まず、制御部は、Ｒ・Ｇの２プレーン合計の画素データＩ＿ＲＧをＲＧ二値化部０２に入力する（ステップＳ６２）。Ｉ＿ＲＧは次の式で表される。
Ｉ＿ＲＧ＝Ｉ＿Ｒ＋Ｉ＿Ｇ      ・・・（２６）
次に、制御部は、ＲＧ二値化部０２においてＲ・Ｇの２プレーン合計の画素データに対しＳｕｌｉｖａｎとＭｉｌｌｅｒの米国特許第４，９２０，５０１号に記載されている二値化処理を行う（ステップＳ６３）。これにより、Ｒ・Ｇの２プレーン合計の画素データの量子化結果Ｏｕｔ＿ＲＧが算出され、これと同時にＢフィルタの画素データの最終出力値Ｏｕｔ＿Ｂが算出される。Ｏｕｔ＿Ｂは次の式により算出される。
Ｏｕｔ＿Ｂ＝Ｏｕｔ＿ＲＧＢ−Ｏｕｔ＿ＲＧ      ・・・（２７）
ここで、Ｒ・Ｇの２プレーン合計の画素データの二値化の意味を説明する。Ｏｕｔ＿ＲＧ＝２５５とは、その場所（光電変換素子）にＲフィルタ・Ｇフィルタのうちいずれか一方のフィルタが配置されることを意味する。即ち、Ｏｕｔ＿ＲＧ＝２５５とは、その場所にＲフィルタの配置が確定するわけでなく、Ｇフィルタの配置も確定しない。この時点で確定していることは、Ｒフィルタ・Ｇフィルタのうちどのフィルタが配置されるか分からないが、少なくともどれか１つのフィルタは配置されることが確定しているに過ぎない。
【００５８】
また、Ｏｕｔ＿ＲＧ＝０とは、その場所（光電変換素子）にＲフィルタ・Ｇフィルタのいずれも配置されないことを意味する。即ち、Ｏｕｔ＿ＲＧ＝０とは、その場所にＢフィルタが配置されることが確定される。
【００５９】
以上をまとめると以下のようになる。
Ｏｕｔ＿ＲＧ＝０：Ｒフィルタ・Ｇフィルタのいずれも配置されないことが確定
即ち、Ｂフィルタが配置されることが確定
Ｏｕｔ＿ＲＧ＝２５５：Ｒフィルタ・Ｇフィルタのいずれか１つが配置されることが確定
Ｒ・Ｇの２プレーン合計の画素データの二値化は、２プレーンのどのフィルタが配置されるか分からないが、少なくとも２プレーンのトータルで適切なフィルタ配置を確保することに目的がある。そして、Ｒフィルタ・Ｇフィルタを適切に配置した際の余りとして、Ｂフィルタの画素データＩ＿Ｂの二値化結果が確定するわけである。
【００６０】
即ち、Ｒフィルタ・Ｇフィルタは適切な配置となり、結果としてＢフィルタはＲフィルタ・Ｇフィルタを適切に配置した際の余りものとなる。このようにする理由には、視覚的に目立たないＢフィルタを適切に配置するよりも、Ｒフィルタ・Ｇフィルタを適切に配置した方が視覚的に良好な画像が得られるからである。
【００６１】
次に、制御部は、Ｇ二値化部０３においてＧプレーンの画素データＩ＿Ｇに対して二値化処理を施し量子化（０、２５５）を行う。まず、制御部は、Ｇプレーンの画素データＩ＿ＧをＧ二値化部０３に入力する（ステップＳ６４）。
【００６２】
次に、制御部は、Ｇプレーンの画素データに対しＳｕｌｉｖａｎとＭｉｌｌｅｒの米国特許第４，９２０，５０１号に記載されている二値化処理を行う（ステップＳ６５）。
【００６３】
ただし、Ｇプレーンの画素データを量子化する場合は、以下の２つの条件が加わる。
１．Ｇプレーンの画素データの量子化値が２５５となる箇所は、Ｒフィルタ・Ｇフィタの２プレーン合計の画素データの量子化値が２５５となった個所に限定する。
２．Ｇプレーンの画素データの量子化値が０となる箇所は、Ｒフィルタ・Ｇフィルタの２プレーン合計の画素データの量子化値が０となった個所に限定する。
【００６４】
また、Ｇプレーンの画素データの量子化が決定されると、Ｒプレーンの画素データの量子化値Ｏｕｔ＿Ｒは次の式により求めることができる。
Ｏｕｔ＿Ｒ＝Ｏｕｔ＿ＲＧ−Ｏｕｔ＿Ｇ      ・・・（２８）
以上で、１画素分のＧフィルタ、Ｇプレーンの画素データＩ＿Ｇに対して二値化（量子化値０、２５５）が完了する。同時に、Ｒフィルタ、Ｒプレーンの画素データＩ＿Ｒの二値化（量子化値０、２５５）結果が確定する。
【００６５】
Ｇフィルタ、Ｇプレーンの画素データの二値化は、Ｇプレーンに適切な配置を確保することに目的がある。そして、Ｇフィルタの適切な配置の余りとして、Ｒフィルタの画素データＩ＿Ｒの二値化結果が確定するわけである。即ち、Ｇフィルタは適切な配置となり、結果としてＲフィルタはＧフィルタを適切な配置とした余りものとなる。
【００６６】
このようにする理由は、視覚的に目立たないＲフィルタを適切な配置とするよりも、Ｇフィルタを適切な配置とした方が視覚的に良好な画像が得られるからである。ただし、始めにＲフィルタ・Ｇフィルタ・Ｂフィルタ合計の画素データを量子化したため、Ｒフィルタ・Ｇフィルタ・Ｂフィルタのトータルで見れば適切な配置となっている。そのため、Ｒフィルタ・Ｇフィルタ・Ｂフィルタのトータルで適切な配置、視覚的に目立つＧフィルタ単独で適切な配置となる。
【００６７】
以上をまとめると、本実施の形態のハーフトーン処理は、カラー撮像素子におけるＲフィルタ・Ｇフィルタ・Ｂフィルタのトータルで適切な配置、Ｇフィルタ単独で適切な配置、となる特徴を有する。
【００６８】
以上説明したように、本実施の形態によれば、上記第１実施形態と同様に色モアレの発生しないノイズの少ない画像のカラー撮像が可能となる。
【００６９】
上記第１および第２実施形態では、ＲＧＢ三色のカラーフィルタ配置について説明したが、これに限定されるものではない。本発明は、二色以上のどのようなマルチカラーフィルタ配置についても適用することが可能である。
【００７０】
＜第３実施形態＞
図７は第３実施形態の撮像装置１の構成例を示すブロック図である。
【００７１】
撮像装置１は以下の構成を有する。光学部１０１はレンズや光学ＬＰＦなどで構成される。カラー撮像素子部１０２は、モザイク状に複数色配列されたカラーフィルタとＣＣＤまたはＣＭＯＳなどの撮像素子とから構成される。画素補間部１０３はカラー撮像素子部１０２から出力されたモザイク状の画像情報を補間し、複数枚の独立したプレーン色画像情報を算出する。画像処理部１０５は、該独立したプレーン色画像情報に対して、色処理、ノイズ低減処理、鮮鋭性向上処理などの画像処理を行う。、画素補間パラメータ保持部１０４は、画素補間に必要なディジタルフィルタパラメータを保持する。画像処理パラメータ保持部１０６は、画像処理パラメータ（色処理パラメータ、ノイズ低減処理パラメータ、鮮鋭性向上処理パラメータなど）などのデータを保持する。メモリ部１０７は画像処理部１０５にて処理された画像を保持する。表示部１０８は液晶ディスプレイなどで構成され、撮影中や撮影後、画像処理後の画像などを表示する。なお、画素補間部１０３は、画素補間パラメータ保持部１０４に格納されたディジタルフィルタパラメータを用いて画素補間を行う。画像処理部１０５は、画像処理パラメータ保持部１０６に保持された画像処理パラメータを用いて画像処理を行う。データ出力部１０９には、ケーブルなどを介してプリンタを接続したり、メモリカードなどの記録媒体を接続することができる。
【００７２】
図８はカラー撮像素子部１０２の構成例を示す図である。本実施形態では、レッド（Ｒ）２０１、グリーン（Ｇ）２０２、ブルー（Ｂ）２０３の３色のカラーフィルタが該カラー撮像素子部１０２の各カラー撮像素子に貼り付けられている。
【００７３】
以下に、カラー撮像素子１０２のカラーフィルタ配列の決定法を、図９のフローチャートを用いて以下に説明する。
【００７４】
まず、カラーフィルタを配列する領域に対するＲＧＢそれぞれのカラーフィルタの面積率を決定する（Ｓ１０１）。本実施形態では、視覚感度の比率に基づき、ＲＧＢ比率をＲ：Ｇ：Ｂ＝３：６：１とする。しかしながら、ＲＧＢ比率はこれに限らず他の比率を用いても構わない。例えば、人間のＬＭＳ錐体比と同じようにしても良いし、Ｂａｙｅｒ配列のようにＲ：Ｇ：Ｂ＝１：２：１としても良い。
【００７５】
次に、決定されたＲＧＢ比率に基づき、ＲＧＢ各プレーン内の画素値が均一で、ＲＧＢプレーンの画素値の合計が２５５となるような８ビットの面積率画像を作成する（Ｓ１０２）。
【００７６】
本実施形態ではＲＧＢの比率が（３：６：１）であるため、
Ｒの面積率Ｉ＿Ｒは
Ｉ＿Ｒ＝２（ビット数）×（Ｒの比率）／（Ｒの比率＋Ｇの比率＋Ｂの比率）
＝２８×３／（３＋６＋１）≒７６      ・・・（２９）
Ｇの面積率Ｉ＿Ｇは
Ｉ＿Ｇ＝２（ビット数）×（Ｇの比率）／（Ｒの比率＋Ｇの比率＋Ｂの比率）
＝２８×６／（３＋６＋１）＝１５３      ・・・（３０）
Ｂの面積率Ｉ＿Ｂは
Ｉ＿Ｂ＝２（ビット数）−（Ｒプレーンの面積率値＋Ｇプレーンの面積率値）
＝２８−（７６＋１５３）＝２６      ・・・（３１）
とする。
【００７７】
尚、この画像の横幅Ｗと縦幅Ｈは配列したいカラー撮像素子の横数、縦数と同じか、それ以上の数とする。
【００７８】
面積率画像における各色のプレーンは画素値が面積率に応じた値で均一である。つまり、Ｒの面積率画像は、全ての画素値が７６であるＷ＊Ｈのサイズを有する画像である。Ｇの面積率画像は、全ての画素値が１５３であるＷ＊Ｈのサイズを有する画像である。Ｂの面積率画像は、全ての画素値が２６であるＷ＊Ｈのサイズを有する画像である。
【００７９】
次に、配列の低周波成分を少なくするようカラーフィルタ配列を決定するための処理を行う（Ｓ１０３）。
【００８０】
以下、カラーフィルタ配列を決定するための処理Ｓ１０３の詳細について、図１０のフローチャートおよび図１１のブロック図を用いて説明する。本実施形態におけるカラーフィルタ配列処理には、Ｒ．Ｆｌｏｙｄらによる誤差拡散法（“Ａｎ  ａｄａｐｔｉｖｅ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｓｐａｔｉａｌ  ｇｒａｙ  ｓｃａｌｅ”，ＳＩＤ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  Ｄｉｇｅｓｔ  ｏｆ  Ｔｅｃｈｎｉｃａｌ  Ｐａｐｅｒｓ，ｖｏｌ４．３，１９７５，ｐｐ．３６−３７）を用いる。尚、本実施形態におけるＲＧＢの面積率画像は０〜２５５の８ビット画像とする。
【００８１】
先ず、ステップＳ２０１において、ＲＧＢ面積率合計データＩ＿ＲＧＢをＲＧＢ合計部３０１に入力する。本実施形態では、ＲＧＢ面積率合計データは２５５となる（（２９）（３０）（３１）の合計値）。
Ｉ＿ＲＧＢ＝Ｉ＿Ｒ＋Ｉ＿Ｇ＋Ｉ＿Ｂ      ・・・（３２）
【００８２】
次に、ステップＳ２０２において、ＲＧ面積率合計データＩ＿ＲＧをＲＧ配列化部３０２に入力する。本実施形態では、ＲＧ面積率合計データは２２９となる（（２９）（３０）の合計値）。
Ｉ＿ＲＧ＝Ｉ＿Ｒ＋Ｉ＿Ｇ      ・・・（３３）
【００８３】
誤差拡散係数が図１２のようにＫ１〜Ｋ４の４つの係数を持つ場合、図１１のＲＧ配列化部３０２におけるＲＧ累積誤差ラインバッファ３０４は、１個の記憶領域Ｅ＿ＲＧ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿ＲＧ（ｘ）（０≦ｘ≦Ｗ−１）とを有する。そして、ＲＧ累積誤差ラインバッファ３０４は後述する方法で量子化誤差を格納する。なお、ＲＧ累積誤差ラインバッファ３０４は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。図１３の３０４はＲＧ累積誤差ラインバッファ３０４の詳細を示した図である。
【００８４】
次に、ステップＳ２０３において、ＲＧ累積誤差加算部３０５を用いて、入力された着目画素（ＲＧ面積率合計データ）にＲＧ面積率合計データの横画素位置ｘに対応する誤差Ｅ＿ＲＧ（ｘ）が加算される。即ち、入力された着目画素Ｉ＿ＲＧの値は、累積誤差加算後のデータをＩ＿ＲＧ’とすると、
Ｉ＿ＲＧ’＝Ｉ＿ＲＧ＋Ｅ＿ＲＧ（ｘ）      ・・・（３４）
となる。
【００８５】
次に、ステップＳ２０４において、ＲＧ閾値選択部３０６が閾値Ｔ＿ＲＧを選択する。
【００８６】
その際、
ｔ＿ＲＧ＝Ｉ＿ＲＧＢ−Ｉ＿ＲＧ      ・・・（３５）
とおくと、閾値Ｔ＿ＲＧは、
Ｔ＿ＲＧ（ｔ＿ＲＧ）＝１２８        ・・・（３６）
（０≦ｔ＿ＲＧ≦２５５）
と設定される。なお、配列生成遅延を回避するため、平均量子化誤差が小さくなるよう、ｔ＿ＲＧに応じて細かく変更しても良い。
【００８７】
次に、ステップＳ２０５において、ＲＧ量子化部３０７は誤差加算後のＲＧ面積率合計データＩ＿ＲＧ’と閾値Ｔ（ｔ＿ＲＧ）とを比較し、出力値Ｏｕｔ＿ＲＧとＢのカラーフィルタ配列Ｏｕｔ＿Ｂとを決定する。その規則は次の通りである。
Ｉ＿ＲＧ’＜Ｔ（Ｉ＿ＲＧ）のとき      ・・・（３７）
Ｏｕｔ＿ＲＧ＝０                      ・・・（３８）
Ｏｕｔ＿Ｂ＝１                        ・・・（３９）
Ｉ＿ＲＧ’≧Ｔ（Ｉ＿ＲＧ）のとき      ・・・（４０）
Ｏｕｔ＿ＲＧ＝１                      ・・・（４１）
Ｏｕｔ＿Ｂ＝０                        ・・・（４２）
式（３７）〜（４２）を用いて、ＲＧ面積率合計データの配列Ｏｕｔ＿ＲＧ（量子化値０，１）が決定される。同時に、Ｂ面積率データの配列Ｏｕｔ＿Ｂ（量子化値０，１）が決定される。すなわち、この時点でＢのカラーフィルタ配列の最終結果Ｏｕｔ＿Ｂが確定されたことになる。なお、Ｏｕｔ＿Ｂが１であることはＢフィルタが配列されることを意味し、Ｏｕｔ＿Ｂが１であることはＢフィルタが配列されないことを意味する。
【００８８】
ここでＲＧ面積率合計データの配列化の意味を説明する。Ｏｕｔ＿ＲＧ＝１は、その画素に、Ｒ・Ｇいずれかのカラーフィルタ一が配列されることを意味する。
【００８９】
すなわち、以下のようになる。
Ｏｕｔ＿ＲＧ＝０
Ｒ、Ｇフィルタのいずれも配列されないことが確定。すなわち、Ｂフィルタが配列される事が確定。
Ｏｕｔ＿ＲＧ＝１
Ｒ、Ｇフィルタのいずれか１つが配列される事が確定。
【００９０】
次に、ステップＳ２０６において、ＲＧ誤差演算部３０８が画素データＩ＿ＲＧ’と出力値Ｏｕｔ＿ＲＧとの差分Ｅｒｒ＿ＲＧを、式（４３）を用いて計算する。
Ｅｒｒ＿ＲＧ（ｘ）＝Ｉ＿ＲＧ’−（Ｏｕｔ＿ＲＧ×２５５）      ・・・（４３）
【００９１】
次に、ステップＳ２０７において、ＲＧ誤差拡散部３０９が横画素位置ｘに応じて誤差Ｅｒｒ＿ＲＧ（ｘ）を拡散する。ＲＧ誤差拡散部３０９は、処理画素の縦アドレスによって処理方向を変える。例えば縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れるときは図１２の４０１のように左から右へ処理し、式（４４）を用いて誤差を拡散する。一方、縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れないときは図１２の４０２のように右から左へ処理し、式（４５）を用いて誤差を拡散する。
ｙ％２＝０（０≦ｙ≦Ｈ−１、％は剰余記号）のとき
Ｅ＿ＲＧ（ｘ＋１）←Ｅ＿ＲＧ（ｘ＋１）＋Ｅｒｒ＿ＲＧ（ｘ）×Ｋ１（ｘ＜Ｗ−１）
Ｅ＿ＲＧ（ｘ−１）←Ｅ＿ＲＧ（ｘ−１）＋Ｅｒｒ＿ＲＧ（ｘ）×Ｋ２（ｘ＞０）
Ｅ＿ＲＧ（ｘ）←Ｅ０＿ＲＧ＋Ｅｒｒ＿ＲＧ（ｘ）×Ｋ３
Ｅ０＿ＲＧ←Ｅ＿ＲＧ×Ｋ４（ｘ＜Ｗ−１）
Ｅ０＿ＲＧ←０（ｘ＝Ｗ−１）
・・・（４４）
【００９２】
ｙ％２＝１  （０≦ｙ≦Ｈ、％は剰余記号）のとき
Ｅ＿ＲＧ（ｘ−１）←Ｅ＿ＲＧ（ｘ−１）＋Ｅｒｒ＿ＲＧ（ｘ）×Ｋ１（ｘ＞０）
Ｅ＿ＲＧ（ｘ＋１）←Ｅ＿ＲＧ（ｘ＋１）＋Ｅｒｒ＿ＲＧ（ｘ）×Ｋ２（ｘ＜Ｗ−１）
Ｅ＿ＲＧ（ｘ）←Ｅ０＿ＲＧ＋Ｅｒｒ＿ＲＧ（ｘ）×Ｋ３
Ｅ０＿ＲＧ←Ｅ＿ＲＧ×Ｋ４（ｘ＞０）
Ｅ０＿ＲＧ←０（ｘ＝０）
・・・（４５）
【００９３】
なお、本実施形態では、Ｋ１＝７／１６、Ｋ２＝３／１６、Ｋ３＝５／１６、Ｋ４＝１／１６とするが、ｔ＿ＲＧ、Ｉ＿ＲＧやＩ＿Ｂに応じてＫ１〜Ｋ４を変化させても良い。
【００９４】
以上で、１画素分のＲＧ面積率合計データＩ＿ＲＧに対しての配列Ｏｕｔ＿ＲＧ（量子化値０，１）が完了する。同時に、Ｂフィルタの配列Ｏｕｔ＿Ｂ（量子化値０，１）結果が確定する。
【００９５】
ＲＧ面積率合計データＩ＿ＲＧの配列化は、ＲＧのいずれかのカラーフィルタが配列される画素を確定することができる。そして、ＲおよびＧのカラーフィルタが配列されない画素を、Ｂのカラーフィルタが配列される画素として確定する。すなわち、Ｒ、ＧとＢは同じ位置に配列されることはない。
【００９６】
次に、Ｇ面積率データＩ＿Ｇに対して誤差拡散処理を施し配列化を行う。
【００９７】
まず、ステップＳ０９において、Ｇ面積率データＩ＿ＧをＧ配列化部３０３に入力する。
【００９８】
誤差拡散係数が図１２のようにＫ１〜Ｋ４の４つの係数を持つ場合、図１１のＧ配列化部３０３におけるＧ累積誤差ラインバッファ３１０は、ＲＧ累積誤差ラインバッファ３０４と同様の構成を有する。つまり、Ｇ累積誤差ラインバッファ３１０は、図１３の３１０に示すように、１個の記憶領域Ｅ＿Ｇ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿Ｇ（ｘ）（ｘ＝０〜Ｗ−１）とを有し、量子化誤差を格納する。
【００９９】
次に、ステップＳ２０９において、Ｇ累積誤差加算部３１１を用いて、入力された着目画素（Ｇ面積率データ）値に、入力のＧ面積率データの横画素位置ｘに対応する誤差Ｅ＿Ｇ（ｘ）を加算する。累積誤差加算後のデータをＩ＿Ｇ’は、入力された着目画素（Ｇ面積率データ）値Ｉ＿Ｇから式（４６）を用いて計算される。
Ｉ＿Ｇ’＝Ｉ＿Ｇ＋Ｅ＿Ｇ（ｘ）      ・・・（４６）
次に、ステップＳ２１０において、Ｇ閾値選択部３１２は、閾値Ｔ＿Ｇを選択する。
【０１００】
その際、
ｔ＿Ｇ＝Ｉ＿ＲＧ−Ｉ＿Ｇ      ・・・（４７）
とおくと、閾値Ｔ＿Ｇは、
Ｔ＿Ｇ（ｔ＿Ｇ）＝１２８      ・・・（４８）
（０≦ｔ＿Ｇ≦２５５）
と設定される。なお、配列生成遅延を回避するため、平均量子化誤差が小さくなるよう、ｔ＿Ｇに応じて細かく変更しても良い。
【０１０１】
次に、ステップＳ２１１において、Ｇ量子化部３１３は誤差加算後のＧ面積率データＩ＿Ｇ’と閾値Ｔ＿Ｇ（ｔ＿Ｇ）と前述のＲＧ面積率合計データの配列化結果Ｏｕｔ＿ＲＧ（量子化値０，１）を比較し、Ｒフィルタ最終配列化結果Ｏｕｔ＿Ｒ、とＧフィルタ最終配列化結果Ｏｕｔ＿Ｇを決定する。
【０１０２】
その規則は次の通りである。
Ｉ＿Ｇ’≧Ｔ（ｔ＿Ｇ）のとき      ・・・（４９）
Ｏｕｔ＿Ｇ＝Ｏｕｔ＿ＲＧ          ・・・（５０）
Ｏｕｔ＿Ｒ＝０                    ・・・（５１）
Ｉ＿Ｇ’＜Ｔ（ｔ＿Ｇ）のとき      ・・・（５２）
Ｏｕｔ＿Ｇ＝０                    ・・・（５３）
Ｏｕｔ＿Ｒ＝Ｏｕｔ＿ＲＧ          ・・・（５４）
式（４９）〜（５４）により、Ｇフィルタの配列化が決定すると同時にＲフィルタの配列化が決定する。すなわち、Ｒフィルタ最終結果Ｏｕｔ＿ＲとＧフィルタＯｕｔ＿Ｇが同時に確定する。なお、式（５０）は、Ｇフィルタが、Ｏｕｔ＿ＲＧ＝１の場合は配列され、Ｏｕｔ＿ＲＧ＝０の場合は配列されないことを意味する。また、式（５３）はＧフィルタが配列されないことを意味する。
【０１０３】
ここで重要なことは、（５０）（５１）や（５３）（５４）のように、結果の和が
Ｏｕｔ＿ＲＧ＝Ｏｕｔ＿Ｇ＋Ｏｕｔ＿Ｒ      ・・・（５５）
の条件を満たすことである。
【０１０４】
すなわち、式（４９）〜（５４）のそれぞれを以下のように変形しても構わない。
Ｏｕｔ＿ＲＧ−Ｉ＿Ｇ’≧  Ｔ（ｔ＿Ｇ）のとき      ・・・（４９）’
Ｏｕｔ＿Ｇ＝０                                    ・・・（５０）’
Ｏｕｔ＿Ｒ＝Ｏｕｔ＿ＲＧ                          ・・・（５１）’
Ｏｕｔ＿ＲＧ−Ｉ＿Ｇ’＜Ｔ（ｔ＿Ｇ）のとき        ・・・（５０）’
Ｏｕｔ＿Ｇ＝Ｏｕｔ＿ＲＧ                          ・・・（５３）
Ｏｕｔ＿Ｒ＝０                                    ・・・（５４）
式
【０１０５】
次に、ステップＳ２１２において、Ｇ誤差演算部３１４が誤差加算後のＧ面積率データＩ＿Ｇ’と出力値Ｏｕｔ＿Ｇとの差分Ｅｒｒ＿Ｇを、式（５６）を用いて計算する。
Ｅｒｒ＿Ｇ（ｘ）＝Ｉ＿Ｇ’−（Ｏｕｔ＿Ｇ×２５５）      ・・・（５６）
【０１０６】
次に、ステップＳ２１３において、Ｇ誤差拡散部３１５が、横画素位置ｘに応じて誤差Ｅｒｒ＿Ｇ（ｘ）を拡散する。Ｇ誤差拡散部３１５は、着目画素の縦アドレスに応じて処理方向を変える。例えば縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れるときは図１２の４０１のように左から右へ処理し、式（５７）のように誤差を拡散する。一方、縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れないときは図１２の４０２のように右から左へ処理し、式（５８）のように誤差を拡散する。
【０１０７】
ｙ％２＝０（０≦ｙ≦Ｈ−１、％は剰余記号）のとき
Ｅ＿Ｇ（ｘ＋１）←Ｅ＿Ｇ（ｘ＋１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ１（ｘ＜Ｗ−１）
Ｅ＿Ｇ（ｘ−１）←Ｅ＿Ｇ（ｘ−１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ２（ｘ＞０）
Ｅ＿Ｇ（ｘ）←Ｅ０＿Ｇ＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ３
Ｅ０＿Ｇ←Ｅ＿Ｇ×Ｋ４（ｘ＜Ｗ−１）
Ｅ０＿Ｇ←０（ｘ＝Ｗ−１）
・・・（５７）
【０１０８】
ｙ％２＝１  （０≦ｙ≦Ｈ、％は剰余記号）のとき
Ｅ＿Ｇ（ｘ−１）←Ｅ＿Ｇ（ｘ−１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ１（ｘ＞０）
Ｅ＿Ｇ（ｘ＋１）←Ｅ＿Ｇ（ｘ＋１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ２（ｘ＜Ｗ−１）
Ｅ＿Ｇ（ｘ）←Ｅ０＿Ｇ＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ３
Ｅ０＿Ｇ←Ｅ＿Ｇ×Ｋ４（ｘ＞０）
Ｅ０＿Ｇ←０（ｘ＝０）
・・・（５８）
【０１０９】
なお、本実施形態では、Ｋ１＝７／１６、Ｋ２＝３／１６、Ｋ３＝５／１６、Ｋ４＝１／１６とするが、入力階調値ｔ＿ＧやＩ＿Ｇに応じてＫ１〜Ｋ４を変化させても良い。
【０１１０】
以上で、１画素分のＧフィルタの配列化Ｏｕｔ＿Ｇ（量子化値０，１）が完了する。同時に、Ｒフィルタの配列化Ｏｕｔ＿Ｒ（量子化値０，１）結果が確定する。
【０１１１】
次に、処理を全ての画素について行ったか判定を行い（Ｓ２１４）、全て行った場合は、ステップＳ１０３における本実施形態のカラーフィルタ配列処理が完了する。
【０１１２】
本実施形態のカラーフィルタ配列処理によれば、Ｇのカラーフィルタを優先させて配列することができる。すなわち、優先させたいＧフィルタ配列に対して、より低周波の少ない配列を確保することができる。そして、Ｇフィルタの余りとして、Ｒフィルタの配列化結果が確定するわけである。ただし、Ｒフィルタ配列についても誤差拡散処理を施した結果得られた配列なので、低周波で成分が少なく、高周波で帯域成分を持つ特性は得られる。
【０１１３】
なお、本実施形態では優先させたいカラーフィルタ配列をＧとしたが、どの色を優先させてもよい。
【０１１４】
その結果、ＲＧＢのカラーフィルタ配列全てにおいて、低周波成分が少なく、高周波成分が多い特性を実現できる。さらには優先させたい色については、より低周波成分を少なくすることができるカラーフィルタ配列を決定することができる。
【０１１５】
ここで、本実施形態によって決定されたカラーフィルタ配列、Ｂａｙｅｒ配列、特許文献１の手法によって作成されたカラーフィルタ配列（ランダム配列）の３種について、その配列、周波数特性、特徴を図１４に示す。
【０１１６】
図１４の５０１、５０２、５０３はそれぞれ、Ｂａｙｅｒ配列、ランダム配列、本実施形態によって決められた配列である。なお、Ｂａｙｅｒ配列５０１はＲ：Ｇ：Ｂ＝１：２：１の面積比を用いてカラーフィルタ配列を作成した。ランダム配列５０２、本実施形態によって決定されたカラーフィルタ配列５０３はＲ：Ｇ：Ｂ＝３：６：１の面積比を用いてカラーフィルタ配列を作成した。また、上記３種のカラーフィルタ配列について、その周波数特性を示したものが同図中の５０４、５０５、５０６である。５０４は高周波に線スペクトルを有する。５０５は低周波・高周波共に豊富な成分を有する。一方、本実施形態で決定されたカラーフィルタ配列の周波数特性５０６は、低周波で成分が少なく、高周波で帯域成分を有する。
【０１１７】
人間の視覚は「低周波に敏感、高周波に鈍感」という特性をもつので、画像ノイズ成分を抑えるには、カラーフィルタ配列の低周波成分を抑えなければならない。ランダム配列５０２は５０５に示されるように低周波に豊富な成分を有するのでノイズが多くなってしまう。一方、本実施形態によれば、低周波にほとんど成分を持たないため、ノイズは良好である。
【０１１８】
また、高周波かつ規則的な画像パターンを撮像した際、モアレが発生してしまう現象は、高周波かつ規則的なパターンと、規則的なカラーフィルタ配列が干渉することによって発生する。そのため、特に高周波領域において規則性を持つ（＝高周波で線スペクトルを持つ）Ｂａｙｅｒ配列５０１はモアレが発生しやすい。一方、本実施形態で決定されたカラーフィルタ配列は、高周波領域でランダム性を持つ（＝高周波で帯域成分を持つ）ため、モアレが発生しにくい。
【０１１９】
以上をまとめると、本実施形態で決定されたカラーフィルタ配列は、ノイズが少なく、モアレも少ないという特徴を持つ。
【０１２０】
次に、上述の処理にてカラーフィルタ配列を得たカラー撮像素子部１０２を備えたカラー撮像装置１における処理について図７のブロック図及び図１５のフローチャートを用いて説明する。
【０１２１】
まず、ステップＳ３０１において、被写体像を形成する光線がレンズ、および光学ＬＰＦなどの光学部１０１を通過し、カラー撮像素子１０２に入力される。
【０１２２】
次に、ステップＳ３０２において、カラー撮像素子部１０２のカラーフィルタにて特定の光波長帯域だけ通過し、カラー撮像素子にて光電変換され、さらにＡ／Ｄ変換することにより、離散信号値を得る。
【０１２３】
本実施形態におけるカラーフィルタは、図８のレッド（Ｒ）２０１、グリーン（Ｇ）２０２、ブルー（Ｂ）２０３の３つの異なる分光感度を持ち、該カラーフィルタ配列は前述の通り、低周波で成分が少なく、高周波で帯域成分を持つものとする。
【０１２４】
カラーフィルタは一つの受光面で色情報を得るため、被写体撮像によって得られた画像信号は、上記カラーフィルタ配列にしたがった単プレーン（１枚）の色情報ＲＧＢ＿ｍ（ｘ、ｙ）となる。なお、本実施形態では得られた離散信号値は８ビット（０〜２５５）とするが、それ以上のビット数であってもよい。
【０１２５】
次に、ステップＳ３０３において、上記カラーフィルタ配列によって得られた単プレーンの離散信号値ＲＧＢ＿ｍ（ｘ、ｙ）から独立３プレーン画像Ｒ＿ｐ，Ｇ＿ｐ，Ｂ＿ｐを得る。具体的には、画素補間パラメータ保持部１０４に保持された画素補間パラメータを用いて、画素補間部１０３にて各色信号に分離した分離画像Ｒ＿ｍ，Ｇ＿ｍ，Ｂ＿ｍに対して画素補間処理を実施する。なお、画素補間パラメータ保持部１０４には、（５１）（５４）で求めたＯｕｔ＿Ｒ、（５０）（５３）で求めたＯｕｔ＿Ｇ、（３９）（４２）で求めたＯｕｔ＿Ｂのカラーフィルタ配列情報（０、１の１ビット情報）と、画素補間用ディジタルフィルタＦ＿Ｒ、Ｆ＿Ｇ、Ｆ＿Ｂとが保持されている。
【０１２６】
以下、本実施形態における、画素補間処理ステップＳ３０３について、図１６のフローチャートおよび、図１７の概念図を用いて説明する。
【０１２７】
まず、ステップＳ４０１において、ＲＧＢ＿ｍ（ｘ、ｙ）とＯｕｔ＿Ｒ（ｘ，ｙ）、Ｏｕｔ＿Ｇ（ｘ，ｙ）、Ｏｕｔ＿Ｂ（ｘ，ｙ）それぞれとの積をとることで分離画像Ｒ＿ｍ、Ｇ＿ｍ、Ｂ＿ｍの各々を取得する。図１７の６０１に分離画像Ｇ＿ｍを示す。なお、６０１は緑葉を撮影したものである。
Ｒ＿ｍ（ｘ，ｙ）＝ＲＧＢ＿ｍ（ｘ、ｙ）×Ｏｕｔ＿Ｒ（ｘ、ｙ）    （５９）
Ｇ＿ｍ（ｘ，ｙ）＝ＲＧＢ＿ｍ（ｘ、ｙ）×Ｏｕｔ＿Ｇ（ｘ、ｙ）    （６０）
Ｂ＿ｍ（ｘ，ｙ）＝ＲＧＢ＿ｍ（ｘ、ｙ）×Ｏｕｔ＿Ｂ（ｘ、ｙ）    （６１）
次に、ステップＳ４０２において、画素補間用ディジタルフィルタＦ＿Ｒ、Ｆ＿Ｇ、Ｆ＿Ｂの各々を用いて、分離画像Ｒ＿ｍ、Ｇ＿ｍ、Ｂ＿ｍから画素補間後画像Ｒ＿ｐ，Ｇ＿ｐ，Ｂ＿ｐを取得する（図１７の６０２）。
【０１２８】
なお、詳しくは後述するが、画素補間用ディジタルフィルタＦ＿Ｒ、Ｆ＿Ｇ、Ｆ＿Ｂは、分離画像Ｒ＿ｍ，Ｇ＿ｍ，Ｂ＿ｍの高周波における帯域成分を除去するよう設定される。
Ｒ＿ｐ（ｘ，ｙ）＝Ｒ＿ｍ（ｘ，ｙ）＊Ｆ＿Ｒ      ・・・（６２）
Ｇ＿ｐ（ｘ，ｙ）＝Ｇ＿ｍ（ｘ，ｙ）＊Ｆ＿Ｇ      ・・・（６３）
Ｂ＿ｐ（ｘ，ｙ）＝Ｂ＿ｍ（ｘ，ｙ）＊Ｆ＿Ｂ      ・・・（６４）
ただし、＊はコンボリューションを示す
【０１２９】
本実施形態における上述の画素補間処理においては、レッド、グリーン、ブルー各色に対して相関性のない画素補間処理を行ったが、もちろん相関性のある画素補間処理を行っても良い。
【０１３０】
以下に、画像補間用ディジタルフィルタについて、Ｆ＿Ｇを例にして説明する。
Ｆ＿Ｇは下式のように表されるローパス特性のディジタルフィルタである。
Ｆ＿Ｇ＝Ｆ’＿Ｇ／Ｓｕｍ＿Ｆ＿Ｇ      ・・・（６５）
なお、式（６５）において、Ｓｕｍ＿Ｆ＿Ｇは、Ｆ’＿Ｇ係数の合計値である。また、Ｆ’＿Ｇは下式で表される。
【０１３１】
【数１】
2008306702.tif 000003
【０１３２】
式（６６）において、σｘ（Ｉ＿Ｇ）、σｙ（Ｉ＿Ｇ）は、画像補間用ディジタルフィルタの広がり度合いを示すパラメータであり、式（３０）のＲＧＢカラーフィルタの面積率（面積比）Ｉ＿Ｇに応じて値が変化する。また、α、βは定数（実数）である。
【０１３３】
本実施形態では、図１８の７０１に示すようにカラーフィルタ面積率Ｉ＿Ｒ，Ｉ＿Ｇ，Ｉ＿Ｂが増えるとσｘ、σｙは減少する。これは、図１８の７０２に示すとおり、面積率とカラーフィルタの相対配列間隔が単調減少関係となるためである。すなわち、面積率Ｉ＿Ｒ，Ｉ＿Ｇ，Ｉ＿Ｂの値が増えるとカラーフィルタ配列が密に配置されるので、広がり度合いσｘ、σｙが小さいディジタルフィルタでも画素補間が可能となるのである。言い換えれば、７０３に示すとおり、面積率Ｉ＿Ｒ，Ｉ＿Ｇ，Ｉ＿Ｂの値が増えると相対周波数が上がるので、ボケの小さいディジタルフィルタでも画素補間が可能となるのである。
【０１３４】
なお、本実施形態ではσｘ（Ｉ＿Ｇ）、σｙ（Ｉ＿Ｇ）と相対配列間隔を同じ値として扱っているが、異なる値であっても良い。
【０１３５】
画像補間用ディジタルフィルタＦ＿Ｒ、Ｆ＿Ｇ、Ｆ＿Ｂの具体例を図１９の８０１，８０２，８０３にそれぞれ示す。本実施形態では、サイズが５ｘ５，９ｘ９の正方形として例を示すが、この形態に限るものではない。例えば、サイズは、３×５，５×７，５×９のような長方形でも良い。
【０１３６】
なお、図１９において、画像補間用ディジタルフィルタの広がり度合いはＦ＿Ｂ＞Ｆ＿Ｒ＞Ｆ＿Ｇとなっている。これは上述のカラーフィルタ面積率Ｉ＿Ｒ，Ｉ＿Ｇ，Ｉ＿Ｂが、Ｉ＿Ｒ＝７６，Ｉ＿Ｇ＝１５３，Ｉ＿Ｂ＝２６であるためである。周波数領域における、画像補間用ディジタルフィルタとカラーフィルタの面積率との関係を図２０に示す。９０１はレッドの画像補間用ディジタルフィルタＦ＿Ｒの周波数特性を、９０２はレッドのカラーフィルタ配列Ｒ＿ｍの周波数特性を示す。また、９０３は画像補間用グリーンのディジタルフィルタＦ＿Ｇの周波数特性を、９０４はグリーンのカラーフィルタ配列Ｇ＿ｍの周波数特性を示す。９０５はブルーの画像補間用ディジタルフィルタＦ＿Ｂの周波数特性を、９０６はブルーのカラーフィルタ配列Ｂ＿ｍの周波数特性を示す。
【０１３７】
ブルーの分離画像（カラーフィルタ配列）Ｂ＿ｍの周波数特性９０６は、面積率が低いため、他のカラーフィルタよりも高周波側の帯域成分が相対的に低周波側にシフトする。これは、図１８の７０３の関係のに基づく特性である。該低周波にシフトした高周波側の帯域成分を取り除かずに画素補間処理を行うと、ノイズ発生原因となる。よって、画像補間用ディジタルフィルタＦ＿Ｂ９０５は、高周波の帯域成分を除去するために、他の画素補間用ディジタルフィルタに比べて、より強い減衰特性（＝ボケの大きいディジタルフィルタ）を有する。
【０１３８】
反対に、グリーンの分離画像（カラーフィルタ配列）Ｇ＿ｍの周波数特性９０４は、配列面積比率が高いため、他のカラーフィルタよりも高周波の帯域成分が相対的に高周波側へシフトする。よって、画素補間用ディジタルフィルタＦ＿Ｇ９０３は、高周波の帯域成分を除去するために、他の画素補間用ディジタルフィルタに比べて、より弱い減衰特性（＝ボケの小さいディジタルフィルタ）を有する。
【０１３９】
ブルーの画素補間処理において、より強い減衰特性のディジタルフィルタを用いたので、画素補間後画像Ｂ＿ｐはＲ＿ｐ，Ｇ＿ｐに比してボケた画像となる。しかしながら、そもそも人間の視覚はブルーの高周波を認識しづらいため問題とはなりにくい。
【０１４０】
このように、画素補間処理における補間パラメータの周波数特性は、カラーフィルタ配列の高周波における帯域成分を除去するよう設定すればノイズの少ない画像を得ることができる。
【０１４１】
次に、ステップＳ４０３において、式（６７）〜（７０）を用いてゲイン処理を行う（図１７の６０３）。
Ｒ＿ｐ＿ｇ（ｘ，ｙ）＝Ｒ＿ｐ（ｘ、ｙ）×Ｇａｉｎ＿Ｒ      （６７）
Ｇ＿ｐ＿ｇ（ｘ，ｙ）＝Ｇ＿ｐ（ｘ、ｙ）×Ｇａｉｎ＿Ｇ      （６８）
Ｂ＿ｐ＿ｇ（ｘ，ｙ）＝Ｇ＿ｐ（ｘ、ｙ）×Ｇａｉｎ＿Ｂ      （６９）
なお、
Ｇａｉｎ＿Ｒ  ＝  ２５５／Ｉ＿Ｒ
Ｇａｉｎ＿Ｇ  ＝  ２５５／Ｉ＿Ｇ
Ｇａｉｎ＿Ｂ  ＝  ２５５／Ｉ＿Ｂ
（７０）
ゲイン処理は、撮像画像の輝度分布を被写体に合わせる処理である。
【０１４２】
カラーフィルタの面積率がＩ＿Ｒ＝７６、Ｉ＿Ｇ＝１５３，Ｉ＿Ｂ＝２６である。そして、図１９のディジタルフィルタＦ＿Ｒ，Ｆ＿Ｇ，Ｆ＿Ｂの係数合計値が１．０となる。よって、Ｒ＿ｐ，Ｇ＿ｐ，Ｂ＿ｐは目標とする輝度のそれぞれ、７６／２５５，１５３／２５５，２６／２５５しか得られない。本処理は、目標輝度にあわせるために演算する。
【０１４３】
以上で、第３実施形態のステップＳ３０３における画素補間処理が終了する。
【０１４４】
図１５に戻り、ステップＳ３０４において、上記フィルタ配列によって得られた独立３プレーン画像に対して、画像処理部１０５を用いて、画像処理を行う。画像処理部１０５は、画像処理パラメータ保持部１０６に保持された画像処理パラメータを用いて、γ変換、色処理、ノイズ低減処理、鮮鋭性向上処理を行い、画像処理後の画像Ｒ＿ｃ，Ｇ＿ｃ，Ｂ＿ｃを出力する。
【０１４５】
次に、ステップＳ３０５において、画像処理された画像Ｒ＿ｃ，Ｇ＿ｃ，Ｂ＿ｃをメモリ部１０７に一時的に格納する。
【０１４６】
最後に、メモリ部１０７に格納された画像Ｒ＿ｃ，Ｇ＿ｃ，Ｂ＿ｃを表示部１０８に表示し、データ出力部１０９にて外部記憶（不図示）やプリンタ（不図示）に転送する（Ｓ３０６）。
【０１４７】
以上により、カラー撮像装置１の動作の動作が全て終了する。
【０１４８】
以上説明したように本実施形態によれば、
規則性を有しないカラーフィルタ配列について、誤差拡散法を用いて求めたカラーフィルタ配列の空間周波数において、低周波成分が小さいため、ノイズの少ない画像を得ることができる。
【０１４９】
さらに、高周波で帯域成分を含むため、光学的ローパスフィルタを用いなくとも、もしくは強度の弱い光学的ローパスフィルタでも、周期的な輝度変化をもった被写体でも色モアレを抑えたカラー撮像が可能となる。
【０１５０】
また、本実施形態においては例えばＲＧのカラーフィルタを配置し、その後、ＲＧのカラーフィルタ配列の中からＧ配列を算出したが、もちろんこの順番でなくても良い。
【０１５１】
また、画素補間部１０３においては、単一のディジタルフィルタを用いたが、周辺のカラーフィルタの配列分布、周辺のモザイク状信号値に応じて変化するディジタルフィルタを用いてもよい。
【０１５２】
また、画素補間１０３においては、線形ディジタルフィルタを用いて補間したが、分離画像Ｒ＿ｍ，Ｇ＿ｍ，Ｂ＿ｍにおける非０のモザイク状信号値をもとに補間関数（０次ホールド、バイリニア、スプライン、キュービックコンボリューション等）を用いて補間しても良い。また、このときは分離画像Ｒ＿ｍ，Ｇ＿ｍ，Ｂ＿ｍのモザイク状信号の情報に依存した補間を行うため、被補間画素のアドレス毎にどの画素から補間するかの情報を、画素補間パラメータ保持部１０４に保持しておく。なお、補間関数を用いて補間する時は、補間後の各色輝度情報は被写体の輝度情報とほぼ同じとなるため、（６７）〜（７０）におけるゲイン処理を行う必要はない。
【０１５３】
そのほか、非線形ディジタルフィルタ（フィルタマスクサイズ中の中央値をとるメディアンフィルタ、フィルタマスクサイズ中の最大値を取るフィルタ、等）を用いても良い。
【０１５４】
また、本実施形態では、ＲＧＢ単板のカラー撮像素子について述べたが、２板以上の多板のカラー撮像素子について用いてもよい。
【０１５５】
さらに、本実施形態ではＲＧＢ３色のカラーフィルタ配列に関して述べたが、本実施形態はＣｙ（シアン）Ｍｇ（マゼンタ）Ｙｅ（イエロー）Ｇの４色、ＲＧＢＣｙ（シアン）Ｍｇ（マゼンタ）Ｙｅ（イエロー）の６色、またはそれ以上のどのようなマルチカラーフィルタ配列についても適用できる。
【０１５６】
＜第４実施形態＞
以下、第４実施形態について説明する。第３実施形態では、誤差拡散法を用いて、先にＲＧを求め、余りをＢの配列と確定する。次に、誤差拡散法を用いてＲＧからＧの配列を求め、余りをＲの配列とする。この方法により、重複のないＲＧＢカラーフィルタの配列を求めた。
【０１５７】
第４実施形態は、ＧＲＢの順番で重複のないカラーフィルタ配列を生成する。これにより第３実施形態と同様に低周波で成分が少なく、高周波で帯域成分を持つカラーフィルタ配列を求めることができる。
【０１５８】
第４実施形態は、カラーフィルタ配列処理（Ｓ１０３）以外は第３実施形態と同様である。
【０１５９】
以下、本実施形態２のカラーフィルタ配列処理について、フローチャート（図２１）およびブロック図（図２２）を用いて説明する。なお、本実施形態における各色画像は０〜２５５の８ビット画像とする。
【０１６０】
まず、ステップＳ５０１において、Ｇ面積率データＩ＿ＧをＧ配列化部１００１に入力する。
【０１６１】
誤差拡散係数は図１２のようにＫ１〜Ｋ４の４つの係数を有する。図２２のＧ配列化部１００１におけるＧ累積誤差ラインバッファ１００３は、１個の記憶領域Ｅ＿Ｇ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿Ｇ（ｘ）（０≦ｘ≦Ｗ−１）とを有し、後述する方法で量子化誤差を格納する。なお、Ｇ累積誤差ラインバッファ１００３は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。図２３の１００３はＧ累積誤差ラインバッファ１００３の詳細を示した図である。
【０１６２】
次に、ステップＳ５０２において、Ｇ累積誤差加算部１００４を用いて、入力された着目画素（Ｇ面積率データ）Ｉ＿Ｇの値にＧ面積率データの横画素位置ｘに対応する誤差Ｅ＿Ｇ（ｘ）を加算する。即ち、入力された着目画素（Ｇ面積率データ）Ｉ＿Ｇの値は、累積誤差加算後のデータをＩ＿Ｇ’とすると、
Ｉ＿Ｇ’＝Ｉ＿Ｇ＋Ｅ＿Ｇ（ｘ）      ・・・（７１）
となる。
【０１６３】
次に、ステップＳ５０３において、Ｇ閾値選択部１００５を用いて閾値Ｔ＿Ｇを選択する。
【０１６４】
その際、
ｔ＿Ｇ＝Ｉ＿Ｇ                ・・・（７２）
とおくと、閾値Ｔ＿Ｇは、
Ｔ＿Ｇ（ｔ＿Ｇ）＝１２８      ・・・（７３）
（０≦ｔ＿Ｇ≦２５５）
と設定さるる。なお、配列生成遅延を回避するため、平均量子化誤差が小さくなるように、閾値Ｔ＿Ｇをｔ＿Ｇに応じて細かく変更しても良い。
【０１６５】
次に、ステップＳ５０４において、Ｇ量子化部１００６において、誤差加算後のＧ面積率データＩ＿Ｇ’と閾値Ｔ（ｔ＿Ｇ）とを比較し、（７４）〜（７７）を用いて、出力値Ｏｕｔ＿Ｇ（量子化値０，１）を決定する。
Ｉ＿Ｇ’＜Ｔ（Ｉ＿Ｇ）のとき      ・・・（７４）
Ｏｕｔ＿Ｇ＝０                    ・・・（７５）
Ｉ＿Ｇ’≧Ｔ（Ｉ＿Ｇ）のとき      ・・・（７６）
Ｏｕｔ＿Ｇ＝１                    ・・・（７７）
次に、ステップＳ５０５において、Ｇ誤差演算部１００７を用いて画素データＩ＿Ｇ’と出力値Ｏｕｔ＿Ｇとの差分Ｅｒｒ＿Ｇを、式（７８）を用いて計算する。
Ｅｒｒ＿Ｇ（ｘ）＝Ｉ＿Ｇ’−（Ｏｕｔ＿Ｇ×２５５）      ・・・（７８）
次に、ステップＳ５０６において、Ｇ誤差拡散部１００８を用いて、横画素位置ｘに応じて以下の様に誤差Ｅｒｒ＿Ｇ（ｘ）を拡散する。Ｇ誤差拡散部１００８は、処理画素の縦アドレスによって処理方向が変わる。例えば縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れるときは図１２の４０１のように左から右へ処理し、式（７９）のように誤差が拡散される。一方、縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れないとき、図１２の４０２のように右から左へ処理し、式（８０）のように誤差が拡散される。
ｙ％２＝０（０≦ｙ≦Ｈ−１、％は剰余記号）のとき
Ｅ＿Ｇ（ｘ＋１）←Ｅ＿Ｇ（ｘ＋１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ１（ｘ＜Ｗ−１）
Ｅ＿Ｇ（ｘ−１）←Ｅ＿Ｇ（ｘ−１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ２（ｘ＞０）
Ｅ＿Ｇ（ｘ）←Ｅ０＿Ｇ＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ３
Ｅ０＿Ｇ←Ｅ＿Ｇ×Ｋ４（ｘ＜Ｗ−１）
Ｅ０＿Ｇ←０（ｘ＝Ｗ−１）
・・・（７９）
ｙ％２＝１（０≦ｙ≦Ｈ、％は剰余記号）のとき
Ｅ＿Ｇ（ｘ−１）←Ｅ＿Ｇ（ｘ−１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ１（ｘ＞０）
Ｅ＿Ｇ（ｘ＋１）←Ｅ＿Ｇ（ｘ＋１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ２（ｘ＜Ｗ−１）
Ｅ＿Ｇ（ｘ）←Ｅ０＿Ｇ＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ３
Ｅ０＿Ｇ←Ｅ＿Ｇ×Ｋ４（ｘ＞０）
Ｅ０＿Ｇ←０（ｘ＝０）
・・・（８０）
なお、本実施形態では、Ｋ１＝７／１６、Ｋ２＝３／１６、Ｋ３＝５／１６、Ｋ４＝１／１６とするが、ｔ＿Ｇに応じてＫ１〜Ｋ４を変化させても良い。
【０１６６】
以上で、１画素分のＧ面積率データＩ＿Ｇに対しての配列Ｏｕｔ＿Ｇ（量子化値０，１）が完了する。
【０１６７】
次に、Ｒ面積率データＩ＿Ｒに対して誤差拡散処理を施し配列化を行う。
【０１６８】
まず、ステップＳ５０７において、Ｒ面積率データＩ＿ＲをＲ配列化部１００２に入力する。
【０１６９】
誤差拡散係数が図１２のようにＫ１〜Ｋ４の４つの係数を持つ場合、図１１のＲ配列化部１００２におけるＲ累積誤差ラインバッファ１００９は、１個の記憶領域Ｅ＿Ｒ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿Ｒ（ｘ）（ｘ＝０〜Ｗ−１）とを有する。そして、後述する方法で量子化誤差を格納する。なお、Ｒ累積誤差ラインバッファ１００９は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。図２３の１００９はＧ累積誤差ラインバッファ１００９の詳細を示した図である。
【０１７０】
次に、ステップＳ５０８において、Ｒ累積誤差加算部１０１０を用いて、入力のＲ面積率データに入力のＲ面積率データの横画素位置ｘに対応する誤差Ｅ＿Ｒ（ｘ）を加算する。即ち、入力された着目画素（Ｒ面積率データ）値は、累積誤差加算後のデータをＩ＿Ｒ’とすると、
Ｉ＿Ｇ’＝Ｉ＿Ｒ＋Ｅ＿Ｇ（ｘ）      ・・・（８１）
となる。
【０１７１】
次に、ステップＳ５０９において、Ｒ閾値選択部１０１１を用いて、閾値Ｔ＿Ｒを選択する。その際、
ｔ＿Ｇ＝Ｉ＿Ｒ                  ・・・（８２）
とおくと、閾値Ｔ＿Ｒは、
Ｔ＿Ｒ（ｔ＿Ｒ）＝１２８      ・・・（８３）
（０≦ｔ＿Ｒ≦２５５）
と設定される。なお、閾値Ｔ＿Ｒは、配列生成遅延を回避するため、平均量子化誤差が小さくなるよう、ｔ＿Ｒに応じて細かく変更しても良い。
【０１７２】
次に、ステップＳ５１０において、Ｒ量子化部１０１２を用いて誤差加算後のＲ面積率データＩ＿Ｒ’と閾値Ｔ＿Ｒ（ｔ＿Ｒ）とＯｕｔ＿Ｇとを比較し、Ｒフィルタ最終配列化結果Ｏｕｔ＿Ｒを決定する。
【０１７３】
その規則は次の通りである。
Ｏｕｔ＿Ｇ＝０かつＩ＿Ｒ’≧Ｔ（ｔ＿Ｒ）のとき      ・・・（８４）
Ｏｕｔ＿Ｒ＝１                                      ・・・（８５）
（８６）以外のとき                                  ・・・（８６）
Ｏｕｔ＿Ｒ＝０                                      ・・・（８７）
【０１７４】
次に、ステップＳ５１１において、Ｒ誤差演算部１０１３を用いて、誤差加算後のＲ面積率データＩ＿Ｒ’と出力値Ｏｕｔ＿Ｒとの差分Ｅｒｒ＿Ｒを、式（８８）に基づき計算する。
Ｅｒｒ＿Ｒ（ｘ）＝Ｉ＿Ｒ’−（Ｏｕｔ＿Ｒ×２５５）  ・・・（８８）
【０１７５】
次に、ステップＳ５１２において、Ｒ誤差拡散部１０１４において、横画素位置ｘに応じて以下の様に誤差Ｅｒｒ＿Ｒ（ｘ）を拡散する。Ｒ誤差拡散部１０１４は、Ｇ誤差拡散部１００８と同様に、処理画素の縦アドレスによって処理方向を変える。例えば縦アドレス：ｙ（０≦ｙ≦Ｈ−１）が２で割り切れるときは図１２の４０１のように左から右へ処理し、式（８９）のように誤差が拡散される。一方、縦アドレス：ｙ（０≦ｙ≦Ｈ−１）が２で割り切れないとき、図１２の４０２のように右から左へ処理し、式（９０）のように誤差が拡散される。
ｙ％２＝０（０≦ｙ≦Ｈ−１、％は剰余記号）のとき
Ｅ＿Ｒ（ｘ＋１）←Ｅ＿Ｒ（ｘ＋１）＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ１（ｘ＜Ｗ−１）
Ｅ＿Ｒ（ｘ−１）←Ｅ＿Ｒ（ｘ−１）＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ２（ｘ＞０）
Ｅ＿Ｒ（ｘ）←Ｅ０＿Ｒ＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ３
Ｅ０＿Ｒ←Ｅ＿Ｒ×Ｋ４（ｘ＜Ｗ−１）
Ｅ０＿Ｒ←０（ｘ＝Ｗ−１）
・・・（８９）
ｙ％２＝１（０≦ｙ≦Ｈ、％は剰余記号）のとき
Ｅ＿Ｒ（ｘ−１）←Ｅ＿Ｒ（ｘ−１）＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ１（ｘ＞０）
Ｅ＿Ｒ（ｘ＋１）←Ｅ＿Ｒ（ｘ＋１）＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ２（ｘ＜Ｗ−１）
Ｅ＿Ｒ（ｘ）←Ｅ０＿Ｒ＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ３
Ｅ０＿Ｒ←Ｅ＿Ｒ×Ｋ４（ｘ＞０）
Ｅ０＿Ｒ←０（ｘ＝０）
・・・（９０）
【０１７６】
なお、本実施形態では、Ｋ１＝７／１６、Ｋ２＝３／１６、Ｋ３＝５／１６、Ｋ４＝１／１６とするが、入力階調値ｔ＿Ｒに応じてＫ１〜Ｋ４を変化させても良い。
【０１７７】
以上で、１画素分のＲフィルタの配列化Ｏｕｔ＿Ｒ（量子化値０，１）が完了する。
【０１７８】
次にステップＳ５１３において、Ｏｕｔ＿Ｇ、Ｏｕｔ＿Ｒのいずれも１となっていない箇所について以下の式によりＯｕｔ＿Ｂを決定する。
Ｏｕｔ＿Ｇ＝０かつＯｕｔ＿Ｒ＝０のとき      ・・・（９１）
Ｏｕｔ＿Ｂ＝１                              ・・・（９２）
上記以外のとき                              ・・・（９３）
Ｏｕｔ＿Ｂ＝０                              ・・・（９４）
【０１７９】
次に、処理を全ての画素について行ったか判定を行い（Ｓ５１４）、全て行った場合は、ステップＳ１０３における本実施形態のカラーフィルタ配列処理が完了する。
【０１８０】
上述のＧフィルタの配列化も、Ｇを優先させた配列を確保することに目的がある。すなわち、優先させたいＧフィルタ配列に対して、より低周波の少ない配列を確保する。その後、Ｒフィルタの配列化結果が確定するわけである。そして最後にＢフィルタの配置を確定する。ただし、Ｒ、Ｂフィルタ配列についても誤差拡散処理を施した結果得られた配列なので、低周波で成分が少なく、高周波で帯域成分を持つ特性は得られる。
【０１８１】
なお、本実施形態では優先させたいカラーフィルタ配列をＧとしたが、どの色を優先させてもよい。
【０１８２】
以上の結果、ＲＧＢのカラーフィルタ配列全てにおいて、低周波成分が少なく、高周波成分が多い特性を実現できる。さらには優先させたい色については、より低周波成分を少なくするカラーフィルタ配列を得られる。
【０１８３】
＜実施形態３＞
第４実施形態では、誤差拡散法を用いて、ＧＲＢの順番でカラーフィルタの配列を生成した。これにより第３実施形態と同様に低周波で成分が少なく、高周波で帯域成分を持ち、さらには重複のないカラーフィルタ配列を求められた。しかしながら、第４実施形態の処理では、例えばＧフィルタとＲフィルタが接近して配置されてしまうことがあった。ＧフィルタとＲフィルタはＢフィルタに対して相対的に輝度情報を構成する割合が多い。よって、互いに接近しすぎると解像感（鮮鋭感）を失うことがあった。本実施形態では、第４実施形態と同様の処理を行うが、ＧフィルタとＲフィルタが接近しないようにカラーフィルタの配列を決定する。よって、本実施形態によれば、第４実施形態に比べて解像感（鮮鋭感）を向上することができる。
【０１８４】
第５実施形態は、カラーフィルタ配列処理（Ｓ１０３）以外は第１、２実施形態と同様である。
【０１８５】
以下、本実施形態３のカラーフィルタ配列Ｓ１０３について、フローチャート（図２４）およびブロック図（図２５）を用いて説明する。尚、本実施形態における各色画像は０〜２５５の８ビット画像とする。
【０１８６】
まず、ステップＳ６０１において、Ｇ面積率データＩ＿ＧをＧ配列化部１１０１に入力する。
【０１８７】
誤差拡散係数が図１２のようにＫ１〜Ｋ４の４つの係数を持つ場合、図２５のＧ配列化部１１０１におけるＧ累積誤差ラインバッファ１１０３は、１個の記憶領域Ｅ＿Ｇ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿Ｇ（ｘ）（０≦ｘ≦Ｗ−１）とを有する。そして、後述する方法で量子化誤差を格納する。なお、Ｇ累積誤差ラインバッファ１１０３は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。図２６の１１０３はＧ累積誤差ラインバッファ１１０３の詳細を示した図である。
【０１８８】
次に、ステップＳ６０２において、Ｇ累積誤差加算部１１０４を用いて、Ｇ面積率データにＧ面積率データの横画素位置ｘに対応する誤差Ｅ＿Ｇ（ｘ）を加算する。即ち、入力された着目画素（Ｇ面積率データ）Ｉ＿Ｇの値は、累積誤差加算後のデータをＩ＿Ｇ’とすると、
Ｉ＿Ｇ’＝Ｉ＿Ｇ＋Ｅ＿Ｇ（ｘ）      ・・・（９５）
となる。
【０１８９】
次に、ステップＳ６０３において、Ｇ閾値選択部１１０５を用いて閾値Ｔ＿Ｇを選択する。
【０１９０】
その際、
ｔ＿Ｇ＝Ｉ＿Ｇ                ・・・（９６）
とおくと、閾値Ｔ＿Ｇは、
Ｔ＿Ｇ（ｔ＿Ｇ）＝１２８      ・・・（９７）
（０≦ｔ＿Ｇ≦２５５）
と設定される。なお、配列生成遅延を回避するため、平均量子化誤差が小さくなるよう、ｔ＿Ｇに応じて細かく変更しても良い。
【０１９１】
次に、ステップＳ６０４において、Ｇ量子化部１１０６において、誤差加算後のＧ面積率データＩ＿Ｇ’と閾値Ｔ（ｔ＿Ｇ）とを比較し、（９８）〜（１０１）を用いて出力値Ｏｕｔ＿Ｇを決定する。その規則は次の通りである。
Ｉ＿Ｇ’＜Ｔ（Ｉ＿Ｇ）のとき      ・・・（９８）
Ｏｕｔ＿Ｇ＝０                    ・・・（９９）
Ｉ＿Ｇ’≧Ｔ（Ｉ＿Ｇ）のとき      ・・・（１００）
Ｏｕｔ＿Ｇ＝１                    ・・・（１０１）
【０１９２】
次に、ステップＳ６０５において、Ｇ誤差演算部１１０７を用いて、画素データＩ＿Ｇ’と出力値Ｏｕｔ＿Ｇとの差分Ｅｒｒ＿Ｇを、式（１０２）を用いて計算する。
Ｅｒｒ＿Ｇ（ｘ）＝Ｉ＿Ｇ’−（Ｏｕｔ＿Ｇ×２５５）      ・・・（１０２）
【０１９３】
次に、ステップＳ６０６において、Ｇ誤差拡散部１１０８を用いて、横画素位置ｘに応じて以下の様に誤差Ｅｒｒ＿Ｇ（ｘ）を拡散する。Ｇ誤差拡散部１１０８は、処理画素の縦アドレスによって処理方向が変わる。例えば縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れるときは図１２の４０１のように左から右へ処理し、式（１０３）のように誤差が拡散される。一方、縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れないとき、図１２の４０２のように右から左へ処理し、式（１０４）のように誤差が拡散される。
ｙ％２＝０（０≦ｙ≦Ｈ−１、％は剰余記号）のとき
Ｅ＿Ｇ（ｘ＋１）←Ｅ＿Ｇ（ｘ＋１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ１（ｘ＜Ｗ−１）
Ｅ＿Ｇ（ｘ−１）←Ｅ＿Ｇ（ｘ−１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ２（ｘ＞０）
Ｅ＿Ｇ（ｘ）←Ｅ０＿Ｇ＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ３
Ｅ０＿Ｇ←Ｅ＿Ｇ×Ｋ４（ｘ＜Ｗ−１）
Ｅ０＿Ｇ←０（ｘ＝Ｗ−１）
・・・（１０３）
ｙ％２＝１（０≦ｙ≦Ｈ、％は剰余記号）のとき
Ｅ＿Ｇ（ｘ−１）←Ｅ＿Ｇ（ｘ−１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ１（ｘ＞０）
Ｅ＿Ｇ（ｘ＋１）←Ｅ＿Ｇ（ｘ＋１）＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ２（ｘ＜Ｗ−１）
Ｅ＿Ｇ（ｘ）←Ｅ０＿Ｇ＋Ｅｒｒ＿Ｇ（ｘ）×Ｋ３
Ｅ０＿Ｇ←Ｅ＿Ｇ×Ｋ４（ｘ＞０）
Ｅ０＿Ｇ←０（ｘ＝０）
・・・（１０４）
【０１９４】
なお、本実施形態では、Ｋ１＝７／１６、Ｋ２＝３／１６、Ｋ３＝５／１６、Ｋ４＝１／１６とするが、ｔ＿Ｇに応じてＫ１〜Ｋ４を変化させても良い。
【０１９５】
以上で、１画素分のＧ面積率データＩ＿Ｇに対しての配列Ｏｕｔ＿Ｇ（量子化値０，１）が完了する。
【０１９６】
次に、ステップ６０７にてＧ制約情報データ演算部１１０９を用いて制約情報を演算する。なおｈは定数（実数）で、本実施形態では１．０をとる。
Ｃ＿Ｇ＝（−Ｏｕｔ＿Ｇ×２５５＋Ｉ＿Ｇ）×ｈ      ・・・（１０５）
【０１９７】
次に、ステップＳ６０８にてＧ制約情報反映部１１１０を用いて制約情報データをＩ＿Ｒに反映させる。なお、（１１３）の制約情報反映処理によって次に形成されるＲフィルタと、既に形成されたＧフィルタがなるべく遠くになるようフィルタが配列化される。
Ｉ＿Ｒ＿ｒ＝Ｉ＿Ｒ＋Ｃ＿Ｇ      ・・・（１０６）
【０１９８】
次に、ステップＳ６０９において、反映後Ｒ面積率データＩ＿Ｒ＿ｒに対して誤差拡散処理を施し配列化を行う。まず、反映後Ｒ面積率データＩ＿Ｒ＿ｒをＲ配列化部１１０２に入力する。
【０１９９】
誤差拡散係数が図１２のようにＫ１〜Ｋ４の４つの係数を持つ場合、図２５のＲ配列化部１１０２におけるＲ累積誤差ラインバッファ１１１１は、１個の記憶領域Ｅ＿Ｒ０と入力画像の横画素数Ｗと同数の記憶領域Ｅ＿Ｒ（ｘ）（ｘ＝０〜Ｗ−１）とを有する。そして、後述する方法で量子化誤差が格納されている。なお、Ｒ累積誤差ラインバッファ１１１１は処理開始前に全て初期値０で初期化されていてもよいし、ランダム値で初期化されてもよい。図２６の１１１１はＧ累積誤差ラインバッファ１１１１の詳細を示した図である。
【０２００】
次に、ステップＳ６１０において、Ｒ累積誤差加算部１１１２で入力のＲ面積率データの横画素位置ｘに対応する誤差Ｅ＿Ｒ（ｘ）が加算される。即ち、入力された着目画素（Ｒ面積率データ）値は、累積誤差加算後のデータをＩ＿Ｒ’とすると、
Ｉ＿Ｇ’＝Ｉ＿Ｒ＿ｒ＋Ｅ＿Ｇ（ｘ）      ・・・（１０７）
となる。
【０２０１】
次に、ステップＳ６１１において、Ｒ閾値選択部１１１３を用いて、閾値Ｔ＿Ｒを選択する。その際、
ｔ＿Ｇ＝Ｉ＿Ｒ                ・・・（１０８）
とおくと、閾値Ｔ＿Ｒは、
Ｔ＿Ｒ（ｔ＿Ｒ）＝１２８      ・・・（１０９）
（０≦ｔ＿Ｒ≦２５５）
と設定される。なお、配列生成遅延を回避するため、平均量子化誤差が小さくなるよう、ｔ＿Ｒに応じて細かく変更しても良い。
【０２０２】
次に、ステップＳ６１２において、Ｒ量子化部１１１４を用いて、誤差加算後のＲ面積率データＩ＿Ｒ’と閾値Ｔ＿Ｒ（ｔ＿Ｒ）とを比較し、（１１０）〜（１１３）に基づきＲフィルタ最終配列化結果Ｏｕｔ＿Ｒを決定する。
Ｉ＿Ｒ’≧Ｔ（ｔ＿Ｒ）のとき      ・・・（１１０）
Ｏｕｔ＿Ｒ＝１                    ・・・（１１１）
Ｉ＿Ｒ’＜Ｔ（ｔ＿Ｒ）のとき      ・・・（１１２）
Ｏｕｔ＿Ｒ＝０                    ・・・（１１３）
【０２０３】
次に、ステップＳ６１３において、Ｒ誤差演算部１１１５を用いて、Ｒ面積率データＩ＿Ｒ’と出力値Ｏｕｔ＿Ｒとの差分Ｅｒｒ＿Ｒを、式（１１４）に基づき計算する。
Ｅｒｒ＿Ｒ（ｘ）＝Ｉ＿Ｒ’−（Ｏｕｔ＿Ｒ×２５５）      ・・・（１１４）
【０２０４】
次に、ステップＳ６１４において、Ｒ誤差拡散部１１１６を用いて、横画素位置ｘに応じて以下の様に誤差Ｅｒｒ＿Ｒ（ｘ）を拡散する。Ｒ誤差拡散部１１１６は、処理画素の縦アドレスによって処理方向が変わる。例えば縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れるときは、図１２の４０１のように左から右へ処理し、式（１１５）のように誤差を拡散する。一方、縦アドレス（ｙ（０≦ｙ≦Ｈ−１））が２で割り切れないときは、図１２の４０２のように右から左へ処理し、式（１１６）のように誤差を拡散する。
ｙ％２＝０（０≦ｙ≦Ｈ−１、％は剰余記号）のとき
Ｅ＿Ｒ（ｘ＋１）←Ｅ＿Ｒ（ｘ＋１）＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ１（ｘ＜Ｗ−１）
Ｅ＿Ｒ（ｘ−１）←Ｅ＿Ｒ（ｘ−１）＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ２（ｘ＞０）
Ｅ＿Ｒ（ｘ）←Ｅ０＿Ｒ＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ３
Ｅ０＿Ｒ←Ｅ＿Ｒ×Ｋ４（ｘ＜Ｗ−１）
Ｅ０＿Ｒ←０（ｘ＝Ｗ−１）
・・・（１１５）
ｙ％２＝１（０≦ｙ≦Ｈ、％は剰余記号）のとき
Ｅ＿Ｒ（ｘ−１）←Ｅ＿Ｒ（ｘ−１）＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ１（ｘ＞０）
Ｅ＿Ｒ（ｘ＋１）←Ｅ＿Ｒ（ｘ＋１）＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ２（ｘ＜Ｗ−１）
Ｅ＿Ｒ（ｘ）←Ｅ０＿Ｒ＋Ｅｒｒ＿Ｒ（ｘ）×Ｋ３
Ｅ０＿Ｒ←Ｅ＿Ｒ×Ｋ４（ｘ＞０）
Ｅ０＿Ｒ←０（ｘ＝０）
・・・（１１６）
【０２０５】
なお、本実施形態では、Ｋ１＝７／１６、Ｋ２＝３／１６、Ｋ３＝５／１６、Ｋ４＝１／１６とするが、入力階調値ｔ＿Ｒに応じてＫ１〜Ｋ４を変化させても良い。
【０２０６】
以上で、１画素分のＲフィルタの配列化Ｏｕｔ＿Ｒ（量子化値０，１）が完了する。
【０２０７】
次にステップＳ６１５において、Ｏｕｔ＿Ｇ、Ｏｕｔ＿Ｒのいずれも１となっていない箇所について以下の式によりＯｕｔ＿Ｂを決定する。
Ｏｕｔ＿Ｇ＝０かつＯｕｔ＿Ｒ＝０のとき      ・・・（１１７）
Ｏｕｔ＿Ｂ＝１                              ・・・（１１８）
上記以外のとき                              ・・・（１１９）
Ｏｕｔ＿Ｂ＝０                              ・・・（１２０）
次に、処理を全ての画素について行ったか判定を行い（Ｓ６１６）、全て行った場合は、ステップＳ１０３における本実施形態のカラーフィルタ配列処理が完了する。
【０２０８】
上述のＧフィルタの配列化も、Ｇを優先させた配列を確保することに目的がある。すなわち、優先させたいＧフィルタ配列に対して、より低周波の少ない配列を確保する。そして、Ｒフィルタ配列を決定する際に、Ｇフィルタの配列を考慮してＲフィルタを配列する。その結果、ＧフィルタとＲフィルタが必要以上に近づくことを回避でき、解像感（鮮鋭感）を向上させることができる。
【０２０９】
＜第６実施形態＞
以下、第６実施形態について説明する。上述した第１〜３実施形態では、誤差拡散法を用いてカラーフィルタ配列を求める例を説明した。第６実施形態では、誤差拡散法に代えて、低周波で成分が少なく高周波で帯域成分を持つよう評価関数を最小化する方法を用いた例を説明する。これにより第３実施形態と同様に低周波で成分が少なく、高周波で帯域成分を持つカラーフィルタ配列を求められる。
【０２１０】
本実施形態では遺伝的アルゴリズムを用いて低周波で成分が少なく、高周波で帯域成分を持つよう評価関数を最小化する手法を用いる。。なお、しきい値マトリクス生成法など他の手法を用いることも可能である。
【０２１１】
第６実施形態における処理は、カラーフィルタ配列処理（Ｓ１０３）以外は第３実施形態と同様である。以下、本実施形態４のカラーフィルタ配列処理Ｓ１０３について、フローチャート（図２７）およびブロック図（図２８）を用いて説明する。
【０２１２】
なお、本実施形態におけるＲＧＢカラーフィルタの決定フローは第３実施形態と同様、「ＲＧ配列→余りをＢ→Ｇ決定→余りをＲ」とするが、第２、３実施形態の順に求めても良い。
【０２１３】
先ず、ステップＳ７０１において、ＲＧＢ面積率合計データＩ＿ＲＧＢをＲＧＢ合計部１２０１に入力する。なお、ＲＧＢ面積率合計データは（２９）（３０）（３１）の合計値なので、２５５となる。
Ｉ＿ＲＧＢ＝Ｉ＿Ｒ＋Ｉ＿Ｇ＋Ｉ＿Ｂ      ・・・（１２１）
次に、ステップＳ７０２において、ＲＧ面積率合計データＩ＿ＲＧをＲＧ配列化部１２０２に入力する。
Ｉ＿ＲＧ＝Ｉ＿Ｒ＋Ｉ＿Ｇ      ・・・（１２２）
【０２１４】
次に、ステップＳ７０３において、ＲＧ配列評価パラメータ設定部１２０４を用いて価パラメータを設定する。評価パラメータは、カラーフィルタ配列をどのような空間周波数特性にするかを制御するためのパラメータである。
【０２１５】
例えば、ＲＧフィルタ配列の周波数特性を評価する際に、遮断周波数ｆ＿ｃｕｔｏｆｆ＿ＲＧのＧａｕｓｓ特性ＬｏｗＰａｓｓＦｉｌｔｅｒ（以下、ＧａｕｓｓＬＰＦ）：Ｇｓ＿ＲＧ（ｆ）を使用した場合を考えてみる。
ｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）とＧａｕｓｓＬＰＦ：Ｇｓ＿ＲＧ（ｆ）との関係は、平均μ，分散σ２のＧａｕｓｓ分布密度関数をＮ（μ，σ２）とすると
【０２１６】
【数２】
2008306702.tif 000004
【０２１７】
の関係が成り立つとする。
【０２１８】
ここでａはガウス特性の広がりを示すパラメータで、ｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）はＧｓ＿ＲＧ（ｆ）の遮断周波数である。ａ＝３の時Ｇｓ＿ＲＧ（Ｉ＿ＲＧ）はｆ＝ｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）のとき、ほぼ減衰する。また、ａ＝１のときＧｓ＿ＲＧ（ｆ）はｆ＝ｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）の時、あまり減衰しない。このようにａによって、ＧａｕｓｓＬＰＦ：Ｇｓ＿ＲＧ（ｆ）が変化する。よって、ａは評価用のＧａｕｓｓＬＰＦを決定するパラメータの一つとなる。
【０２１９】
なお、評価の際はＧａｕｓｓＬＰＦでなくてももちろん良い。例えば、矩形ＬｏｗｐａｓｓＦｉｌｔｅｒでも良い。矩形ＬｏｗｐａｓｓＦｉｌｔｅｒでは理想遮断周波数をパラメータとするとよい。選択するパラメータにより、再現したいカラーフィルタ配列の周波数特性が決まる。
【０２２０】
以下、Ｇｓ＿ＲＧ（ｆ）でａ＝３とした場合を例にとって説明する。
【０２２１】
まず、ＲＧ面積率合計データのＩ＿ＲＧ（８ビット、０≦Ｉ＿ＲＧ≦２５５）のＩ＿ＲＧ＝８０に相当するランダム配列を図２９の１３０１に示す。また、図３０の１３０２は１３０１の周波数スペクトルを、１３０３は評価用のＧａｕｓｓＬＰＦを、１３０４は１３０２と１３０３の積を、１３０５はＧａｕｓｓＬＰＦの遮断周波数ｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）を示す。ここで、図３０の１３０２は低周波数にスペクトルを持っているため、１３０３との積は、１３０４のように低周波数にスペクトルを持つ結果となる。
【０２２２】
人間の視覚は「低周波数に敏感で、高周波数に鈍感」な特性を持つことから、視覚上良好なカラーフィルタ配列を求めるには、なるべく低周波にスペクトルを持たないほうが望ましい。すなわち１３０１は低周波数にスペクトルを持つため、視覚上良好なカラーフィルタ配列とはいえない。そこで、視覚上良好なカラーフィルタ配列を求めるには、１３０３との積が小さい、すなわち、１３０４のスペクトルが存在しないよう、カラーフィルタ配列を編集すればよい。編集の方法は後述する。
【０２２３】
ここで一例として、面積率＝８０に相当する視覚上良好なカラーフィルタ配列を図３１の１３０６に示す。また、図３２の１３０７は１３０６の周波数スペクトルを、１３０８はＧａｕｓｓＬＰＦを、１３０９は１３０７と１３０８の積を、１３０９はＧａｕｓｓＬＰＦの遮断周波数を示す。視覚上良好なカラーフィルタ配列とは、ＧａｕｓｓＬＰＦとの積を計算した後のスペクトルが小さいことがわかる。
【０２２４】
以上をまとめると、評価用のＧａｕｓｓＬＰＦ：Ｇｓ＿ＲＧ（ｆ）を設計し、Ｇｓ＿ＲＧ（ｆ）を通過するスペクトルが最小になるようにＲＧカラーフィルタ配列を編集すればよい。そしてそのＧｓ＿ＲＧ（ｆ）は遮断周波数ｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）より設定される。
【０２２５】
以下、本実施形態では、ｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）の設定は以下の（１２４）〜（１２６）のようにする。例えば（１２４）〜（１２６）の式においてＡ＝５０とするとｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）は図３３のように表すことができる。
【０２２６】
【数３】
2008306702.tif 000005
【０２２７】
なお、上式においてＡを大きくすると、中間階調で分散型となりカラーフィルタ配列の解像性が増す。そして、Ａを小さくすると、集中型のカラーフィルタ配列となりカラーフィルタ配列の階調性が増す。よって、評価用のＧａｕｓｓＬＰＦ：Ｇｓ＿ＲＧ（ｆ）の遮断周波数：ｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）を決定するには、Ａを決めればよい。すなわちｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）を求めるにＡを与えればよいことになる。
【０２２８】
以上をまとめると、評価用ＧａｕｓｓＬＰＦを決定するにはａとＡをパラメータとして与えればよい。
【０２２９】
次に、ステップＳ７０４において、ＲＧ配列評価値最小化のための編集部１２０５においてＲＧカラーフィルタ配列の周波数特性における評価値が最小となるようにＲＧカラーフィルタ配列を編集する。本実施形態では前述のとおり遺伝的アルゴリズムを用いるが、もちろん他の手法であってもよい。
【０２３０】
以下に遺伝的アルゴリズムの表現を使用するが、遺伝的アルゴリズムは既知のアルゴリズムであるので、ここでは処理の詳細は説明しない。
【０２３１】
以下、ステップＳ７０４での処理の詳細を図３４のフローチャートを用いて説明する。
【０２３２】
編集の際は、画像を小さなブロックに分けて編集する。このようにするのは、編集サイズが大きいと、収束するのに多大な時間を要してしまうためである。ブロックサイズは８×８〜６４×６４サイズ程度にすると収束しやすい。図３５に示すように、ブロックサイズをＬ×Ｌ（Ｌは２のべき乗）、編集したい画像全体のサイズをＮ×Ｎ（ＮはＬの整数倍）として、以下に処理例を示す。なお、本実施形態は図３５のように画像の左上から順次編集することを例にして説明するが、その他の順番で編集を行っても良い。
【０２３３】
先ず、ステップＳ８０１において、画像全範囲（Ｎ×Ｎサイズ）の編集が終了したかどうかの判定を行う。終了した場合は処理を終了し、そうでない場合はステップＳ８０２へ進む。
【０２３４】
ステップＳ８０２において、Ｐ個のブロックサイズＬ×Ｌの初期ランダム配列を生成する。ここでの処理は、遺伝的アルゴリズムでＰ個の初期集団を生成することと等価である。なお、集団とは、個体（＝染色体）の集まりである。８×８の初期ランダム画像の例を図３６に示すと、遺伝子：１に相当するの白（配列ＯＮ）、遺伝子：０に相当するのが黒（配列ＯＦＦ）である。なお、白黒配列比率を考えずに画像を生成しても良いし、面積率と同じとなるように拘束条件を設定してもよい。なお「面積率と同じ比率となるように配列を生成する」というのは、例えば面積率６４に相当するカラーフィルタ配列を生成したい場合、ＯＦＦとＯＮの比率を、ＯＮ：ＯＦＦ＝１：３とすることである。この場合、最適化の収束が速くなるが、配列比率を考えずに生成したほうが、より広い可能性を探索することが可能となる。
【０２３５】
ステップＳ８０３でＰ個の配列をＲＧ配列評価パラメータ設定１２０４において設定されたパラメータ、たとえば「ａ，Ａ」からＧａｕｓｓＬＰＦ：Ｇｓ＿ＲＧ（ｆ）を与えて評価する。なお、評価の際、編集ブロックの位置によって評価方法が異なる。図３５のように配列の左上から順次編集することを考えると、図３７に示すように、ブロックの位置によって参照ブロックの扱い方が異なる。ここでいう参照ブロックとは「既に編集されたブロック」のことであり、「現在編集中のブロック（編集ブロック）」と参照ブロックとに不連続性がないように、参照するブロックのことである。
【０２３６】
例えば、図３７の黒のブロックを編集する場合、既に編集済みのブロックは存在しないため、編集ブロックのみとし、評価する。図３７の斜線のブロックを編集する場合、左隣のブロックは既に編集済みであるため、左隣のブロックのみを参照ブロックとし、Ｈ＝２Ｌ，Ｖ＝Ｌのサイズを評価する。図３７の縦線のブロックを編集する場合、上隣のブロックは既に編集済みであるため、上隣のブロックのみを参照ブロックとし、Ｈ＝Ｌ，Ｖ＝２Ｌのサイズを評価する。図３７の白のブロックを編集する場合、左、左上、上隣のブロックは既に編集済みであるため、左、左上、上隣のブロックのみを参照ブロックとし、Ｈ＝２Ｌ，Ｖ＝２Ｌのサイズを評価する。なお、参照ブロックの配列は既に決定されたものであるから、編集の際に変更はしない。
【０２３７】
評価に使用する評価関数Ｊ＿ＲＧを以下に示す。Ｎ＿ＲＧはＲＧカラーフィルタ配列のノイズを表し、Ｄ＿ＲＧは面積率Ｉ＿ＲＧに対して配列数の保存性表す。なお、下記に示した評価関数は一例であるので、他の評価関数でも良いことはいうまでもない。
Ｊ＿ＲＧ＝ｗｎ×Ｎ＿ＲＧ＋ｗｄ×Ｄ＿ＲＧ      ・・・（１２７）
（ｗｎ，ｗｄは重み値）
ここで、
【０２３８】
【数４】
2008306702.tif 000006
【０２３９】
ただし
【０２４０】
【数５】
2008306702.tif 000007
【０２４１】
ただし
【０２４２】
【数６】
2008306702.tif 000008
【０２４３】
遺伝的アルゴリズムは、適応度が大きい個体を探索するアルゴリズムなので、画質評価値が小さいものほど大きな適応度を持たす必要がある。このため例えば、適応度Ｆを以下のようにすればよい
Ｆ＝（Ｊ＿ＲＧ＿ｍａｘ−Ｊ＿ＲＧ）＋α      ・・・（１３２）
ここでαは正の定数、Ｊ＿ＲＧ＿ｍａｘはその世代における集団が持つ最大の評価値（最も評価値が悪い個体の値）である。なお、評価関数Ｊ＿ＲＧから適応度Ｆへの変換式は、上記式に限るものではなく、シグモイド関数などを用いて、評価値Ｊ＿ＲＧが小さくなればなるほど、適応度Ｆを大きくするようにしても良い。
【０２４４】
ステップＳ８０４でブロックに対して編集が終了したかどうかの判定を行う。終了した場合は次の注目ブロックへ移りステップＳ８０１へ、そうでない場合はステップＳ８０５へ進む。
【０２４５】
ステップＳ８０５で遺伝的アルゴリズムでの選択を行う。遺伝的アルゴリズムの選択は、適応度の大きな個体を次の世代に残す処理である。適応度が大きければ大きいほど選択される確率が大きくなるように、ルーレットルールを設定する。この他に、選択にトーナメント方式を採用しても良い。ルーレットルール、トーナメント方式については遺伝的アルゴリズムの既知の処理である。
【０２４６】
ステップＳ８０６でＳ８０５で選択された個体どうしを交叉確率ｐｃ（０≦ｐｃ≦１）で交叉させる。交叉は図３８に示すように、縦交叉と横交叉がある。交叉位置と、縦交叉か横交叉かはランダムに切り替える。
【０２４７】
ステップＳ８０７で、突然変異確率ｐｍ（０≦ｐｍ≦１）で、個体を突然変異させる。突然変異は図３９のように白（配列ＯＮ）を黒（配列ＯＦＦ）に反転する操作を行う。なお、黒（配列ＯＦＦ）であれば白（配列ＯＮ）に反転させる。突然変異の位置は、ランダムに決定される。突然変異が終了するとステップＳ８０３へ進む。
【０２４８】
以上でステップＳ７０４でのＲＧ配列評価値最小化のための編集が終了する。と同時にＲＧ面積率合計データの配列化結果Ｏｕｔ＿ＲＧ（量子化値０，１）が定まる。
【０２４９】
次に、ステップＳ７０５において、ステップＳ７０４にて算出されたＲＧ面積率合計データの配列化結果Ｏｕｔ＿ＲＧ（量子化値０，１）が求められ、これと同時にＢ面積率データの最終出力値Ｏｕｔ＿Ｂが算出される。Ｏｕｔ＿Ｂの算出は、以下の式により求められる。
Ｏｕｔ＿ＲＧ＝０のとき      ・・・（１３３）
Ｏｕｔ＿Ｂ＝１              ・・・（１３４）
Ｏｕｔ＿ＲＧ＝１のとき      ・・・（１３５）
Ｏｕｔ＿Ｂ＝０              ・・・（１３６）
ここでＲＧ面積率合計データの配列化の意味を説明する。
【０２５０】
Ｏｕｔ＿ＲＧ＝１とは、その場所に、Ｒ・Ｇいずれかのカラーフィルタ一方が配列されることを意味する。すなわち、Ｏｕｔ＿ＲＧ＝１とは、その場所にＲフィルタが確定するわけでなく、Ｇフィルタも確定しない。この時点で確定していることは、ＲかＧの、どのカラーフィルタが配列されるかわからないが、少なくともどれか一つは配列されることが確定しているに過ぎない。
【０２５１】
すなわちまとめると、
Ｏｕｔ＿ＲＧ＝０・・・Ｒ、Ｇフィルタのいずれも配列されないことが確定。すなわち、Ｂフィルタが配列される事が確定。
Ｏｕｔ＿ＲＧ＝１・・・Ｒ、Ｇフィルタのいずれか１つが配列される事が確定。
となる。
【０２５２】
次に、Ｇ面積率データＩ＿Ｇに対して配列化を行う。
【０２５３】
まず、ステップＳ７０６にて、Ｇ面積率データＩ＿ＧをＧ配列化部１２０３に入力する。
【０２５４】
次に、ステップＳ７０７において、Ｇ配列評価パラメータ設定部１２０６にて評価パラメータを設定する。なお、ステップＳ７０７はＳ７０３と同様であるので省略する。
【０２５５】
次に、ステップＳ７０８において、Ｇ配列評価値最小化のための編集部１２０７においてカラーフィルタ配列の周波数特性における評価値が最小となるようにカラーフィルタ配列を編集する。本実施形態では前述のとおり遺伝的アルゴリズムを用いるが、もちろん他の手法であってもよい。なお、ステップＳ７０８はＳ７０４に対してＩ＿ＲＧをＩ＿Ｇに変更したものであり、それ以外は同様であるので省略する。ただし、Ｇデータを量子化する場合は、以下の２つの制約条件が加わる。
１．Ｇデータの配列がＯｕｔ＿Ｇ＝１となる箇所は、必ずＲＧ合計データの配列がＯｕｔ＿ＲＧ＝１となった個所に限定する
２．Ｇデータの配列がＯｕｔ＿Ｇ＝０となる箇所は、必ずＲＧ合計データの配列がＯｕｔ＿ＲＧ＝０となった個所に限定する
【０２５６】
また、Ｇデータの配列Ｏｕｔ＿Ｇが決定されると、Ｒデータの量子化値Ｏｕｔ＿Ｒは以下の式により求める事ができる。
Ｏｕｔ＿Ｒ＝Ｏｕｔ＿ＲＧ−Ｏｕｔ＿Ｇ      ・・・（１０９）
以上で、Ｇ面積率データＩ＿Ｇに対して配列化（量子化値０，１）が完了する（Ｓ７０９）。同時に、Ｒ面積率データＩ＿Ｒの配列化（量子化値０，１）結果が確定する。
【０２５７】
上述のＧフィルタの配列化は、Ｇを優先させた配列を確保することに目的がある。すなわち、優先させたいＧフィルタ配列に対して、より低周波の少ない配列を確保する。そして、Ｇフィルタの余りとして、Ｒフィルタの配列化結果が確定するわけである。ただし、Ｒフィルタ配列についても遺伝的アルゴリズムにより編集を施し結果得られた配列なので、低周波で成分が少なく、高周波で帯域成分を持つ特性は得られる。
【０２５８】
以上、本実施形態では、低周波で成分が少なく高周波で帯域成分を持つよう評価関数を最小化し、カラーフィルタ配列を求める手法を用いてカラーフィルタ配列を求めた。また本実施形態でも、ＲＧＢ３色のカラーフィルタ配列についての例を示したが、二以上のマルチカラーフィルタについても配列を求めることができる。
【０２５９】
なお、本実施形態におけるＲＧＢカラーフィルタの決定フローは第３実施形態と同様、ＲＧ配列→余りをＢ→Ｇ決定→余りをＲとする配列化フローを取ったが、第２、３実施形態の用にＧ配列→Ｒ配列→Ｂ配列の順に求めても良いし、それ以外の順番で求めてもよい。
【図面の簡単な説明】
【０２６０】
【図１】第１実施形態に係るデータ処理装置としての情報処理装置のデータ処理系の構成を示すブロック図である。
【図２】情報処理装置のカラーフィルタ配置決定処理を示すフローチャートである。
【図３】情報処理装置のハーフトーン処理を示すフローチャートである。
【図４】誤差拡散係数を示す図である。
【図５】累積誤差ラインバッファを示す図である。
【図６】第２実施形態に係る情報処理装置のハーフトーン処理を示すフローチャートである。
【図７】撮像装置１の構成例を示すブロック図である。
【図８】カラー撮像素子１０２の構成例を示す図である。
【図９】カラー撮像素子１０２のカラーフィルタ配列を決定するための処理のフローチャートである。
【図１０】カラーフィルタ配列処理のフローチャートである。
【図１１】カラーフィルタ配列を決定するための回路のブロック図である。
【図１２】誤差拡散係数の１例を示す図である。
【図１３】累積誤差ラインバッファの構成を示す図である。
【図１４】３種のカラーフィルタ配列を説明する図である。
【図１５】カラー撮像装置１における処理のフローチャートである。
【図１６】画素補間処理における処理のフローチャートである。
【図１７】画素補間処理の概念図である。
【図１８】カラーフィルタの面積率に応じた特性の変化を説明する図である。
【図１９】画像補間用ディジタルフィルタＦ＿Ｒ、Ｆ＿Ｇ、Ｆ＿Ｂの具体例を示す図である。
【図２０】周波数領域における、画像補間用ディジタルフィルタとカラーフィルタの面積率との関係を示す図である。
【図２１】第４実施形態におけるカラーフィルタ配列処理のフローチャートである。
【図２２】第４実施形態におけるカラーフィルタ配列を決定するための回路のブロック図である。
【図２３】累積誤差ラインバッファの構成を説明する図である。
【図２４】第５実施形態におけるカラーフィルタ配列処理のフローチャートである。
【図２５】第５実施形態におけるカラーフィルタ配列を決定するための回路のブロック図である。
【図２６】累積誤差ラインバッファの構成を説明する図である。
【図２７】第６実施形態におけるカラーフィルタ配列処理のフローチャートである。
【図２８】第６実施形態におけるカラーフィルタ配列を決定するための回路のブロック図である。
【図２９】ランダム配列の１例を示す図である。
【図３０】図２９のランダム配列に対してＧａｕｓｓＬＰＦを適用した結果の周波数特性を説明する図である。
【図３１】カラーフィルタ配列の１例を示す図である。
【図３２】図３１のランダム配列に対してＧａｕｓｓＬＰＦを適用した結果の周波数特性を説明する図である。
【図３３】ｆ＿ｃｕｔｏｆｆ＿ＲＧ（Ｉ＿ＲＧ）を説明する図である。
【図３４】ステップＳ７０４での処理にかかるフローチャートである。
【図３５】編集順番を示す図である。
【図３６】８×８の初期ランダム画像の例である。
【図３７】参照ブロックを説明する図である。
【図３８】交叉を説明する図である。
【図３９】突然変異を説明する図である。
【図１】
2008306702.tif 000009
【図２】
2008306702.tif 000010
【図３】
2008306702.tif 000011
【図４】
2008306702.tif 000012
【図５】
2008306702.tif 000013
【図６】
2008306702.tif 000014
【図７】
2008306702.tif 000015
【図８】
2008306702.tif 000016
【図９】
2008306702.tif 000017
【図１０】
2008306702.tif 000018
【図１１】
2008306702.tif 000019
【図１２】
2008306702.tif 000020
【図１３】
2008306702.tif 000021
【図１４】
2008306702.tif 000022
【図１５】
2008306702.tif 000023
【図１６】
2008306702.tif 000024
【図１７】
2008306702.tif 000025
【図１８】
2008306702.tif 000026
【図１９】
2008306702.tif 000027
【図２０】
2008306702.tif 000028
【図２１】
2008306702.tif 000029
【図２２】
2008306702.tif 000030
【図２３】
2008306702.tif 000031
【図２４】
2008306702.tif 000032
【図２５】
2008306702.tif 000033
【図２６】
2008306702.tif 000034
【図２７】
2008306702.tif 000035
【図２８】
2008306702.tif 000036
【図２９】
2008306702.tif 000037
【図３０】
2008306702.tif 000038
【図３１】
2008306702.tif 000039
【図３２】
2008306702.tif 000040
【図３３】
2008306702.tif 000041
【図３４】
2008306702.tif 000042
【図３５】
2008306702.tif 000043
【図３６】
2008306702.tif 000044
【図３７】
2008306702.tif 000045
【図３８】
2008306702.tif 000046
【図３９】
2008306702.tif 000047