(57)【要約】【課題】コントラスト補正による画質の劣化を抑制すること。【解決手段】コントラスト補正部４２は、輝度最大値Ｙｍａｘ及び輝度最小値Ｙｍｉｎに基づいて、画素データＰ０のコントラストを補正した画素データＰ１ａと、画素データＰ０に所定値「１」を加算した画素データのコントラストを補正した補正用画素データＰ１ｂを生成する。γ補正部４３は、画素データＰ１ａに対して、画像の出力部の感度特性に応じて各色の色情報を補正するガンマ補正（γ補正）を施した画素データＰ２ａと、補正用画素データＰ１ｂをγ補正して補正用画素データＰ２ｂを生成する。階調補正部４４は、画素データＰ２ａと補正用画素データＰ２ｂとの差分値に応じて、画素データＰ２ａを階調補正した画素データＰ３を生成する。【選択図】図３
2015049567.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素データが含まれる１画面の撮像データの輝度最大値及び輝度最小値に応じたゲイン値とオフセット値に基づいて前記画素データをコントラスト補正した第１の画素データと、前記画素データに所定値を加算した値を前記コントラスト補正した第２の画素データを生成するコントラスト補正部と、
補正テーブルにしたがって前記第１の画素データをガンマ補正した第３の画素データと、前記補正テーブルにしたがって前記第２の画素データをガンマ補正した第４の画素データを生成するガンマ補正部と、
前記第３の画素データと前記第４の画素データとの差分値（ΔP）に応じて前記第３の画素データを補正した第５の画素データを生成する階調補正部と、
を有する画像処理装置。
【請求項２】
前記階調補正部は、
乱数を生成する乱数生成部と、
前記乱数と前記差分値に基づいて算出した補正量を前記第３の画素データに加算して前記第５の画素データを生成する補正演算部とを含むこと、
を特徴とする請求項１に記載の画像処理装置。
【請求項３】
着目画素の周囲の画素データに基づいて前記着目画素における凹凸度を算出する算出部を有し、
前記補正演算部は、前記凹凸度に応じて前記補正量に基づく値を前記第３の画素データに加算して前記第５の画素データを生成すること、
を特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記ガンマ補正部は、
互いに異なる補正データを記憶した少なくとも３つのメモリを含み、
前記第１の画素データに応じた１つの前記メモリから読み出した第１の補正データに応じて前記第３の画素データを生成し、
前記第２の画素データに応じて前記第１の補正データを読み出した前記メモリと異なる２つの前記メモリからそれぞれ読み出した第２の補正データを演算して前記第４の画素データを生成すること、
を特徴とする請求項１〜３の何れか一項に記載の画像処理装置。
【請求項５】
２つの前記メモリは、前記第２の画素データの前後の画素データに対応するメモリであること、
を特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記ガンマ補正部は、
前記第１の画素データに応じたメモリと前記第２の画素データに応じたメモリが一致するか否かを判定し、一致する場合には、２つの前記メモリからそれぞれ読み出した前記第２の補正データを演算して前記第４の画素データを生成し、一致しない場合には前記第２の画素データに応じたメモリから読み出した前記第２の補正データに応じて前記第４の画素データを生成すること、
を特徴とする請求項４または５に記載の画像処理装置。
【請求項７】
撮像部から出力される画像データをメモリに格納するとともに、前記画像データにおける輝度最大値と輝度最小値を検出するデータ入力部を有し、
前記コントラスト補正部は、前記メモリから読み出した画像データに基づいて前記第１の画素データと前記第２の画素データを生成すること、
を特徴とする請求項１〜６の何れか一項に記載の画像処理装置。
【請求項８】
複数の色のうち撮像部に含まれるカラーフィルタに応じた色情報を含む画素データを、着目画素に含まれない色情報を周辺の画素に含まれる色情報に基づいて生成して複数の色情報を含む画素データを生成するデモザイク部を含むこと、
を特徴とする請求項１〜７の何れか一項に記載の画像処理装置。
【請求項９】
前記デモザイク部は、前記１つの色の色情報を含む前記画素データに基づいて凹凸度を生成すること、を特徴とする請求項８に記載の画像処理装置。
【請求項１０】
メモリから読み出した複数の画素データを処理する画像処理装置が実行する画像処理方法であって、
複数の前記画素データの輝度最大値及び輝度最小値に応じたゲイン値とオフセット値に基づいて前記画素データをコントラスト補正した第１の画素データと、前記画素データに所定値を加算した値を前記コントラスト補正した第２の画素データを生成し、
補正テーブルにしたがって前記第１の画素データをガンマ補正した第３の画素データと、前記補正テーブルにしたがって前記第２の画素データをガンマ補正した第４の画素データを生成し、
前記第３の画素データと前記第４の画素データとの差分値（ΔP）に応じて前記第３の画素データを補正した第５の画素データを生成すること、
を特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
従来、撮像した画像のデジタルデータを記録可能なデジタルスチルカメラ等の撮像装置は、広く普及している。撮像装置は、被写体からの光の強さを測定（測光）し、露光量（撮像素子に光を当てる時間（シャッター速度）とその光の強さ（絞り値））を決定する。逆光等のような撮影条件の場合、適切な露光量を算出することが困難である。このような場合において得られる画像は、全体または特定の部分の輝度が不足又は過剰となりやすい。このため、画像処理装置は、画像データに対してコントラスト補正を行う（例えば、特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−４６８５９号公報
【特許文献２】特開２００８−１２４６５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、コントラスト補正により階調飛び（トーンジャンプ）が生じる場合があり、画質が劣化する。
【課題を解決するための手段】
【０００５】
本発明の一観点によれば、複数の画素データが含まれる１画面の撮像データの輝度最大値及び輝度最小値に応じたゲイン値とオフセット値に基づいて前記画素データをコントラスト補正した第１の画素データと、前記入力画素データに所定値を加算した値を前記コントラスト補正した第２の画素データを生成するコントラスト補正部と、補正テーブルにしたがって前記第１の画素データをガンマ補正した第３の画素データと、前記補正テーブルにしたがって前記第２の画素データをガンマ補正した第４の画素データを生成するガンマ補正部と、前記第３の画素データ前記第４の画素データとの差分値に応じて前記第３の画素データ(P2a)を補正した第５の画素データを生成する階調補正部とを有する。
【発明の効果】
【０００６】
本発明の一観点によれば、画質の劣化を抑制することができる。
【図面の簡単な説明】
【０００７】
【図１】撮像装置の概略を示すブロック図である。
【図２】（ａ）（ｂ）は撮像データの説明図である。
【図３】画像処理部のブロック図である。
【図４】（ａ）（ｂ）は画像処理の説明図である。
【図５】γ補正部のブロック図である。
【図６】γ補正カーブの説明図である。
【図７】コントラスト補正とγ補正の説明図である。
【図８】階調補正部のブロック図である。
【図９】（ａ）〜（ｃ）は画素値のヒストグラムである。
【発明を実施するための形態】
【０００８】
以下、一実施形態を説明する。
図１に示す撮像装置は例えばデジタルスチルカメラ（ＤＳＣ）であり、撮像部１０、画像処理部（ＩＳＰ：Image Signal Processor）２０、操作部３１、メモリ（記憶部）３２、表示デバイス３３を有している。
【０００９】
撮像部１０は、被写体に基づく入射光に応じた画像データを出力する。画像処理部２０は、既定の設定値または操作部３１の操作による設定にしたがって、撮像部１０から出力される画像データに対して各種画像処理を施す。そして、画像処理部２０は、処理中または処理後の画像データをメモリ３２に格納する。また、画像処理部２０は、撮像部１０から出力される画像データに基づく画像、またはメモリ３２に格納された画像データに基づく画像を表示デバイス３３に表示する。そして、画像処理部２０は、メモリ３２に格納された画像データを、例えば操作部３１の操作にしたがってメモリカード３５に格納する。
【００１０】
撮像部１０は、撮像光学系１１と、撮像素子部１２を有している。
撮像光学系１１は、被写体からの光を集光するレンズ（フォーカスレンズなど），レンズを通過した光の量を調整する絞り，等を含み、光学的な被写体像を撮像素子部１２に導く。撮像素子部１２は、例えば、ベイヤ（Ｂａｙｅｒ）配列のカラーフィルタと、撮像素子とを含む。撮像素子は、ＣＣＤ（Charge Coupled Device）イメージセンサである。撮像素子は、カラーフィルタを介して入射する光の量に応じた撮像信号（アナログ信号）を出力する。また、撮像素子部１２は、アナログの撮像信号をデジタルの撮像データに変換する。そして、撮像素子部１２は、同期信号に従って変換後の撮像データを出力する。同期信号は、１つのフィールドの区切りを示す垂直同期信号と、１ラインの区切りを示す水平同期信号を含み、例えば画像処理部２０から供給される。
【００１１】
画像処理部２０は、センサインタフェース（センサＩ／Ｆ）２１、画像処理部２２，２３、ＣＰＵ２４、メモリコントローラ２５、メモリカードインタフェース（メモリカードＩ／Ｆ）２６、表示インタフェース（表示Ｉ／Ｆ）２７を有している。ＣＰＵ２４、センサＩ／Ｆ２１、画像処理部２２，２３は、ＣＰＵデータバス２８を介して互いに接続されている。センサＩ／Ｆ２１、画像処理部２２，２３、メモリコントローラ２５、メモリカードＩ／Ｆ２６、表示Ｉ／Ｆ２７は、画像データバス２９を介して互いに接続されている。
【００１２】
センサＩ／Ｆ２１は、撮像部１０から出力される撮像データを受け取り、メモリ３２に格納する。したがって、メモリ３２には、撮像部１０から出力され画像処理が施されていない撮像データ（ＲＡＷデータ）が格納される。センサＩ／Ｆ２１は、データ入力部の一例である。センサＩ／Ｆ２１は、撮像データに含まれる複数の画素データに基づいて、最大の輝度値（最大値）と最小の輝度値（最小値）を検出し、輝度最大値及び輝度最小値をレジスタ２１ｂに格納する。
【００１３】
画像処理部２２は、メモリ３２に格納された撮像データを読み出し、その撮像データに対して、所定の画像処理を施し、処理後の画像データをメモリ３２に格納する。画像処理部２２における画像処理は、デモザイク処理、コントラスト補正、γ補正、階調補正を含む。
【００１４】
画像処理部２３は、メモリ３２に格納された撮像データを読み出し、その撮像データに対して、所定の画像処理を施し、処理後の画像データをメモリ３２に格納する。画像処理部２３における処理は、例えば、ＹＣｂＣｒタ変換、歪み補正、エンコード処理（ＪＰＥＧ化）を含む。なお、図１では、１つの画像処理部２３として示しているが、各処理に応じた画像処理部を含む画像処理部２０としてもよい。
【００１５】
メモリカードＩ／Ｆ２６は、撮像装置に対して着脱可能なメモリカード３５と電気的に接続される。メモリカードＩ／Ｆ２６は、メモリ３２に格納されたデータ（例えば圧縮された画像データ）をメモリカード３５に格納する。
【００１６】
表示Ｉ／Ｆ２７には、表示デバイス３３が接続されている。表示デバイス３３は、例えば液晶表示装置（ＬＣＤ：Liquid Crystal Display）である。表示デバイス３３は、撮影装置の駆動源であるバッテリの残量、撮影モード、撮影フレーム、記憶された画像データの表示、等に用いられる。例えば、表示Ｉ／Ｆ２７は、メモリ３２に格納された画像データを読み出し、その画像データを表示デバイス３３に出力する。
【００１７】
センサＩ／Ｆ２１，画像処理部２２，２３、メモリカードＩ／Ｆ２６，表示Ｉ／Ｆ２７は、それぞれメモリアクセスコントローラ（ＤＭＡＣ：Direct Memory Access Controller ）２１ａ〜２３ａ，２６ａ，２７ａを有している。センサＩ／Ｆ２１は、メモリアクセスコントローラ２１ａを介してメモリ３２に画像データを格納する。画像処理部２２，２３は、メモリアクセスコントローラ２２ａ，２３ａを介して、メモリ３２に対して画像データの入出力を行う。同様に、メモリカードＩ／Ｆ２６は、メモリアクセスコントローラ２６ａを介して、メモリ３２に対して画像データの入出力を行う。そして、表示Ｉ／Ｆ２７は、メモリアクセスコントローラ２７ａを介してメモリ３２から読み出した画像データを表示デバイス３３に出力する。
【００１８】
ＣＰＵ２４は、画像処理部２０全体を統括制御する。ＣＰＵ２４は、処理に必要な情報の各処理部への設定及びデータの書き込み／読み出し制御等を行う。また、ＣＰＵ２４は、操作部３１の操作に応じて動作モードや各処理において必要な情報（パラメータ）を設定する。操作部３１は、ユーザにより操作されるシャッタボタンやメニューボタン等の各種スイッチ、タッチパネル等である。また、ＣＰＵ２４は、センサＩ／Ｆ２１のレジスタ２１ｂに格納された輝度最大値及び輝度最小値を読み出し、それらを画像処理部２２のレジスタ２２ｂに格納する。
【００１９】
次に、センサＩ／Ｆ２１における処理を説明する。
センサＩ／Ｆ２１は、撮像データに基づいて、輝度最大値及び輝度最小値を得る。
図２（ａ）に示すように、１つのフレーム（１画面）の撮像データＳＦは、複数の画素データＳＧを含む。図２（ａ）において、左右方向に配列された画素データＳＧは、撮像素子の第１の方向（例えば水平方向）に配列された複数の受光部に対応し、図２（ａ）において上下方向に配列された画素データＳＧは、撮像素子の第１の方向と直交する第２の方向（例えば垂直方向）に配列された複数の受光部に対応する。各画素データＳＧは、対応する受光部がそれぞれ受ける光の量に応じた値（画素値）を含む。撮像素子の受光部は、所定配列（例えばベイヤ配列）のカラーフィルタを透過した光を受光する。従って、各画素データＳＧに含まれる画素値は、対応するカラーフィルタの配列及び色に応じた色情報を含む。
【００２０】
例えば、各画素データを区別する場合、受光部の配列に応じて、ＳＧ（ｘ，ｙ）と表す。ｘは第１の方向の配列順序であり、ｙは第２の方向の配列順序である。例えば、図２（ａ）において、左上の画素データをＳＧ（１，１）と表す。その画素データＳＧ（１，１）の右隣の画素データをＳＧ（２，１）と表し、画素データＳＧ（１，１）の下側の画素データをＳＧ（１，２）と表す。撮像部において第１の方向に配列された受光部の数をｍ、第２の方向に配列された受光部の数をｎとし、図２（ａ）において右下の画素データをＳＧ（ｍ，ｎ）と表す。
【００２１】
各画素データＳＧは、対応するカラーフィルタの色に応じた色情報を含む。例えば、ベイヤ配列のカラーフィルタは、赤色（Ｒ）のフィルタと、緑色（Ｇ）のフィルタと、青色（Ｂ）のフィルタを含む。従って、撮像データＳＦは、複数の画素データＳＧを含み、各画素データＳＧは、それぞれ対応する１つの色の色情報を含む。
【００２２】
図２（ｂ）は、各画素データに含まれる色情報と画素データの配列位置を示す。例えば、図２（ａ）に示す画素データＳＧ（１，１）は、図２（ｂ）に示すように緑色（Ｇ）の色情報を含む。同様に、画素データＳＧ（２，１）は赤色（Ｒ）の色情報を含む。また、画素データＳＧ（１，２）は青色（Ｂ）の色情報を含み、画素データＳＧ（２，２）は緑色（Ｇ）の色情報を含む。なお、以下の説明において、各画素データを、色情報を用いて説明することがある。例えば、図２（ａ）に示す画素データＳＧ（１，１）を、図２（ｂ）に示す「Ｇ１１」を用いて画素データＧ１１として説明することがある。
【００２３】
図１に示すセンサＩ／Ｆ２１は、複数のライン（例えば２ライン）の画素データに応じた記憶容量のメモリ（ラインメモリ）を含む。センサＩ／Ｆ２１は、ラインメモリに、画素データＳＧを順次格納する。そして、センサＩ／Ｆ２１は、ラインメモリに格納した各画素データＳＧに基づいて、各画素データにおける輝度値を算出する。そして、センサＩ／Ｆ２１は、１フレームの撮像データにおける最大の輝度値（輝度最大値）と最小の輝度値（輝度最小値）をレジスタ２１ｂに格納する。
【００２４】
上記のように、所定配列（ベイヤ配列）のカラーフィルタを含む撮像素子部１２から出力される撮像データにおいて、各画素データはカラーフィルタの配列に応じた１つの色の情報を含む。つまり、各画素データの情報には、２つの色情報が不足している。このため、センサＩ／Ｆ２１は、各画素データＳＧにおいて、不足する色情報を、周囲の画素データを参照し、着目する画素データＳＧにおける輝度値を算出する。
【００２５】
例えば、センサＩ／Ｆ２１は、図２（ｂ）に示す画素データＧ１１について、隣接する画素データＲ２１の色情報と、画素データＢ１２の色情報を参照し、画素データＧ１１における輝度値Ｙ１１を、次式に基づいて算出する。
Ｙ１１＝0.29891×Ｒ２１＋0.58661×Ｇ１１＋0.11448×Ｂ１２・・・・・（１）
そして、センサＩ／Ｆ２１は、各画素データの輝度値のうち、最大の輝度値（輝度最大値Ｙｍａｘ）と最小の輝度値（輝度最小値Ｙｍｉｎ）を検出する。例えば、センサＩ／Ｆ２１は、図２（ａ）に示す画素データＳＧ（１，１）について算出した輝度値Ｙ１１と等しい輝度最大値Ｙｍａｘ及び輝度最小値Ｙｍｉｎをレジスタ２１ｂに格納する。次に、センサＩ／Ｆ２１は、図２（ａ）に示す画素データＳＧ（２，１）について算出した輝度値Ｙ２１を、レジスタ２１ｂから読み出した輝度最大値Ｙｍａｘ及び輝度最小値Ｙｍｉｎと比較する。例えば、輝度値Ｙ２１が輝度最大値Ｙｍａｘより大きい場合、センサＩ／Ｆ２１は、輝度値Ｙ２１と等しい輝度最大値Ｙｍａｘをレジスタ２２ｂに格納する。
【００２６】
次に、画像処理部２２における処理を説明する。
図３に示すように、画像処理部２２は、デモザイク部４１、コントラスト補正部４２、ガンマ補正部（γ補正部）４３、階調補正部４４を有している。
【００２７】
デモザイク部４１には、図１に示すメモリ３２から読み出された画素データ（ＲＡＷデータ）ＳＲが入力される。デモザイク部４１は、画素データＳＲを、各画素において３色の色情報を持つ画素データＰ０に変換する。
【００２８】
例えば、デモザイク部４１は、画素データＳＲの各画素において、フィルタに応じた色情報に対して不足する色情報を、周囲の画素データに基づいて生成する。そして、デモザイク部４１は、フィルタに応じた１色の色情報と生成した２色の色情報を含む画素データＰ０を出力する。
【００２９】
デモザイク部４１は、複数のライン（例えば５ライン）の画素データに応じた記憶容量のメモリ（ラインメモリ）を有している。デモザイク部４１は、図１に示すメモリ３２から読み出された画像データをラインメモリに格納する。そして、デモザイク部４１は、画素データにおいて、不足する色情報を、周囲の画素データにより例えば補間によって生成する。例えば、図２（ｂ）において、画素データＧ３３は、緑色の色情報を持ち、赤色の色情報と青色の色情報が不足している。デモザイク部４１は、画素データＧ３３に隣接する画素データのうち、赤色の色情報を持つ画素データＲ２３，Ｒ４３の色情報に基づいて、例えば直線補間（内挿）により、画素データＧ３３の位置に対応する赤色の色情報を生成する。同様に、デモザイク部４１は、青色の色情報を持つ画素データＢ３２，Ｂ３４の色情報に基づいて、例えば直線補間により画素データＧ３３の位置に対応する青色の色情報を生成する。
【００３０】
また、デモザイク部４１は、画素データＳＲに基づいて、各画素における凹凸度ＲＦを算出する。デモザイク部４１は、ラインメモリに格納した画素データに基づいて、所定数の画素データを含むカーネルを生成する。カーネルのサイズは、例えば５×５画素である。デモザイク部４１は、カーネルの中心画素に着目し、その着目画素における凹凸度ＲＦを、カーネルに含まれる他の画素データに基づいて算出する。凹凸度ＲＦは、カーネルに含まれる画素データおける色のばらつきを示す値である。デモザイク部４１は算出部の一例である。
【００３１】
デモザイク部４１は、カーネルに含まれる複数の画素データの色情報のうち、所定の色情報に基づいて、カーネル内の着目画素における凹凸度ＲＦを算出する。例えば、デモザイク部４１は、緑色（Ｇ）の色情報に基づいて、凹凸度ＲＦを算出する。また、デモザイク部４１は、着目画素の周囲の８個の色情報に基づいて、凹凸度ＲＦを算出する。例えば、凹凸度ＲＦは、８個の色情報の平均偏差である。
【００３２】
図４（ａ）に示すように、カーネルＣＵは５×５の画素データを含む。なお、図４（ａ）に示すカーネルＣＵは、中心画素（着目画素）の色が緑色（Ｇ）である。図４（ａ）では、着目画素Ｇ２２と、緑色の色情報を持つ画素データを示している。
【００３３】
このカーネルＣＵには、着目画素Ｇ２２以外に、緑色の色情報を持つ１２個の画素データを含む。デモザイク部４１は、カーネルＣＵに含まれる画素データのうち、着目画素Ｇ２２を囲む画素データＧ２０，Ｇ１１，Ｇ３１，Ｇ０２，Ｇ４２，Ｇ１３，Ｇ３３，Ｇ２４を参照する。そして、デモザイク部４１は、参照する画素データを、８個の画素データＧ１〜Ｇ８に定義する。
【００３４】
例えば、デモザイク部４１は、画素データの入力順序（ラスタ方向）に従って、必要な画像データを、｛Ｇ１，Ｇ２，Ｇ３，Ｇ４，Ｇ５，Ｇ６，Ｇ７，Ｇ８｝＝｛Ｇ２０，Ｇ１１，Ｇ３１，Ｇ０２，Ｇ４２，Ｇ１３，Ｇ３３，Ｇ２４｝と定義する。また、デモザイク部４１は、画素データＧ１〜Ｇ８の平均値ＧＡＶＥを算出する。
【００３５】
そして、デモザイク部４１は、次式（１）にしたがって、凹凸度ＲＦを算出する。凹凸度ＲＦは、０．０〜１．０の範囲の値にクリップされる。
【００３６】
【数１】
2015049567.tif 000003
なお、次式（２）のように、コアリング処理とスケーリング処理を行って凹凸度ＲＦを算出してもよい。
【００３７】
【数２】
2015049567.tif 000004
コアリング処理は、平均値ＧＡＶＥに対して所定の範囲の画素データを平坦（凹凸度ＲＦ＝０．０）とするものである。ＣＯＲは平坦と判定する範囲（しきい値）である。スケーリング処理は、平均偏差からコアリング処理された演算結果を拡大縮小するものである。ＳＣＬはスケーリングの係数（ゲイン値）である。上記と同様に、凹凸度ＲＦは、０．０〜１．０の範囲の値にクリップされる。
【００３８】
また、図４（ｂ）に示すように、着目画素が赤色の色情報を持つ画素データＲ２２であるカーネルＣＵは、緑色の色情報を持つ１２個の画素データＧ１０，Ｇ３０，Ｇ０１，Ｇ２１，Ｇ４１，Ｇ１２，Ｇ３２，Ｇ０３，Ｇ２３，Ｇ４３，Ｇ１４，Ｇ３４を含む。デモザイク部４１は、これら１２個の画素データを以下のように８個の画素データＧ１〜Ｇ８に定義する。また、デモザイク部４１は、画素データＧ１〜Ｇ８の平均値ＧＡＶＥを算出する。
｛Ｇ１，Ｇ２，Ｇ３，Ｇ４，Ｇ５，Ｇ６，Ｇ７，Ｇ８｝＝｛（Ｇ１０＋Ｇ０１）／２，（Ｇ３０＋Ｇ４１）／２，Ｇ２１，Ｇ１２，Ｇ３２，（Ｇ０３＋Ｇ１４）／２，Ｇ２３，（Ｇ４３＋Ｇ３４）／２｝
そして、デモザイク部４１は、画素データＧ１〜Ｇ８に基づいて、上記の式（１）または（２）にしたがって、凹凸度ＲＦを算出する。
【００３９】
２のべき数にかかる演算（乗算（×２，×４，×８），除算（１／２，１／４，１／８）の結果は、シフト動作により得られる。このため、この凹凸度を算出する処理において、画素データを８個の画素データＧ１〜Ｇ８に定義することで、演算回路の実装が容易になる。
【００４０】
なお、上記の画素データＧ１〜Ｇ８の再定義は、着目画素を中心とする８方向（画素の配列に応じた直交する２つの軸に沿った方向（図４（ａ）における上下方向及び左右方向）と、斜め方向）における色情報を参照することに等しい。例えば、図４（ａ）では、着目画素Ｇ２２に対し、上下方向の画素データＧ２０，Ｇ２４、左右方向の画素データＧ０２，Ｇ４２、斜め方向の画素データＧ１１，Ｇ３１，Ｇ１３，Ｇ３３を参照する。また、図４（ｂ）では、着目画素Ｒ２２に対し、上下方向の画素データＧ２１，Ｇ２３、左右方向の画素データＧ１２，Ｇ３２を参照する。また、周辺の画素データＧ１０，Ｇ０１，Ｇ２０，Ｇ４１，Ｇ０３，Ｇ１４，Ｇ４３，Ｇ３４により基づいて算出した斜め方向の位置における画素データ（色情報）を参照する。
【００４１】
コントラスト補正部４２は、レジスタ２２ｂに格納された輝度最大値Ｙｍａｘ及び輝度最小値Ｙｍｉｎに基づいて、デモザイク部４１から出力される画素データＰ０のコントラストを補正した画素データＰ１ａを出力する。また、コントラスト補正部４２は、画素データＰ１ａに応じて、階調落ちを補正するための補正用画素データＰ１ｂを生成する。画素データＰ１ａは第１の画素データの一例、補正用画素データＰ１ｂは第２の画素データの一例である。
【００４２】
例えば、コントラスト補正部４２は、輝度最大値Ｙｍａｘと輝度最小値Ｙｍｉｎに基づいて、ゲイン値Ｃgainとオフセット値Ｃoffsetを以下の式により算出する。
Ｃgain＝ＤＲ／（Ｙｍａｘ−Ｙｍｉｎ）・・・・・（３）
Ｃoffset＝Ｙｍｉｎ・・・・・（４）
なお、ＤＲは、輝度の階調の値（例えば、２５６）である。
【００４３】
そして、コントラスト補正部４２は、以下の式にしたがって、ゲイン値Ｃgainとオフセット値Ｃoffsetに基づいて、各画素データＰ０をコントラスト補正した画素データＰ１ａを生成する。なお、画素データＰ０は、各色（Ｒ，Ｇ，Ｂ）の色情報を含む。コントラスト補正部４２は、色毎にコントラスト補正を行い、画素データＰ１ａを生成する。
Ｐ１ａ＝Ｐ０×Ｃgain−Ｃoffset・・・・・（５）
また、コントラスト補正部４２は、以下の式にしたがって、入力する画素データＰ０に対して所定値（例えば「＋１」）を加算した画素値をコントラスト補正して補正用画素データＰ１ｂを算出する。
Ｐ１ｂ＝（Ｐ０＋１）×Ｃgain−Ｃoffset・・・・・（６）
画素データＰ１ａと補正用画素データＰ１ｂの差分は、コントラスト補正において生じる階調の差、つまり階調飛びの値を示す。
【００４４】
図７の左部分は、コントラスト補正における画素データＰ０と画素データＰ１ａ，Ｐ１ｂの関係を示す。なお、図７に示す値は、ゲイン値Ｃgain＝１．５，オフセット値Ｃoffset＝０  の場合を示す。なお、画素データＰ１ａ，Ｐ１ｂの値は整数であるため、小数点以下を切り捨てとしている。
【００４５】
例えば、画素データＰ０が「１」のとき、コントラスト補正部４２は、「２」の画素データＰ１ａを出力する。また、コントラスト補正部４２は、画素データＰ０の値に「１」を加算した値「２」に応じた「３」の補正用画素データＰ１ｂを出力する。この場合、画素データＰ１ａと補正用画素データＰ１ｂの差分である「２」が階調の差となる。
【００４６】
また、画素データＰ０が「３」のとき、コントラスト補正部４２は、「４」の画素データＰ１ａを出力する。また、コントラスト補正部４２は、画素データＰ０の値に「１」を加算した値「４」に応じた「６」の補正用画素データＰ１ｂを出力する。この場合、画素データＰ１ａと補正用画素データＰ１ｂの差分である「２」が階調の差となる。
【００４７】
次に、γ補正部４３を説明する。
図３に示すように、γ補正部４３は、コントラスト補正部４２から出力される画素データＰ１ａに対して、画像の出力部の感度特性に応じて各色の色情報を補正するガンマ補正（γ補正）を施し、画素データＰ２ａを生成する。また、γ補正部４３は、コントラスト補正部から出力される補正用画素データＰ１ｂをγ補正して補正用画素データＰ２ｂを生成する。画素データＰ２ａは第３の画素データの一例、補正用画素データＰ２ｂは第４の画素データの一例である。
【００４８】
なお、γ補正部４３に供給される画素データＰ１ａ及び補正用画素データＰ１ｂは、３色（Ｒ，Ｇ，Ｂ）の色情報を持ち、各色の色情報は、例えば８ビットのデータである。各γ補正部４３は、色情報について同じ処理を行う。このため、１色の色情報、例えば８ビットのデータに応じた回路及び動作を説明する。例えば、画素データＰ１ａに含まれる１色の色情報を色データＰ１ａ、補正用画素データＰ１ｂに含まれる１色の色情報を補正用色データＰ１ｂとして説明する。
【００４９】
図５に示すように、γ補正部４３は、補正テーブル５１、比較部５２、セレクタ５３，５４、演算部５５を有している。
補正テーブル５１には、γ補正における出力データが格納されている。補正テーブル５１は、入力データである色データＰ１ａに応じた領域に格納された出力データを出力する。
【００５０】
図６は、γ補正曲線の一例を示す。なお、図６において、横軸は入力データの階調、縦軸は出力データの階調である。画像の出力部におけるγ値は例えば「２．２」である。図６に示すγ補正曲線は、画像の出力部に対応する階調の画素データを生成するため、γ値が例えば「０．４５（≒１／２．２）」の曲線である。
【００５１】
補正テーブル５１は、色データＰ１ａ（入力データ）の階調に応じた複数の記憶領域を有している。記憶領域の数は、色データＰ１ａの範囲（階調）に対応する。例えば、色データＰ１ａを８ビットとするとき、補正テーブル５１は２５６の記憶領域を有する。各記憶領域には、８ビットの出力データが格納される。画素データにより指定される記憶領域には、その画素データに対応する出力データが格納されている。補正テーブル５１は、色データＰ１ａ（入力データ）に応じた出力データを出力する。同様に、また、補正テーブル５１は、補正用色データＰ１ｂ（入力データ）に応じた出力データを出力する。
【００５２】
補正テーブル５１は、複数（図５では４個）のメモリＭ１〜Ｍ４を有している。各メモリＭ１〜Ｍ４の記憶容量は、互いに等しく設定されている。各メモリＭ１〜Ｍ４は、８ビット（２５６階調）の画素データに応じて、それぞれ６４個の出力データを記憶する。
【００５３】
例えば、第１のメモリＭ１には、色データＰ１ａの階調値０，４，８，…，５６，６０に応じた出力データが記憶される。第２のメモリＭ２には、色データＰ１ａの階調値１，５，９，…，５７，６１に応じた出力データが記憶される。第３のメモリＭ３には、色データＰ１ａの階調値２，６，１０，…，５８，６２に応じた出力データが記憶される。第４のメモリＭ４には、色データＰ１ａの階調値３，７，１１，…，５９，６３に応じた出力データが記憶される。
【００５４】
γ補正部４３は、色データＰ１ａをメモリＭ１〜Ｍ４に対するアドレス信号とし、そのアドレス信号にしたがってメモリＭ１〜Ｍ４から読み出されたデータに基づいて、γ補正後の色データＰ２ａと出力する。また、γ補正部４３は、補正用色データＰ１ｂをメモリＭ１〜Ｍ４に対するアドレス信号とし、そのアドレス信号にしたがってメモリＭ１〜Ｍ４から読み出されたデータに基づいて、γ補正後の補正用色データＰ２ｂを出力する。
【００５５】
例えば、γ補正部４３は、８ビットの色データＰ１ａ［７：０］のうち、上位６ビットの画素データＰ１ａ［７：２］をロウアドレス信号ＲＡ１［５：０］とし、下位２ビットの色データＰ１ａ［１：０］をコラムアドレス信号ＣＡ１［１：０］とする。また、γ補正部４３は、８ビットの補正用色データＰ１ｂ［７：０］のうち、上位６ビットの補正用画素データＰ１ｂ［７：２］をロウアドレス信号ＲＡ２［５：０］とし、下位２ビットの色データＰ１ｂ［１：０］をコラムアドレス信号ＣＡ２［１：０］とする。括弧内の文字はそのデータ又は信号に含まれるビットの範囲を示す。例えば、［７：０］は、７ビット目から０ビット目までを含むことを示す。なお、図５ではビットの範囲を省略している。また、以下の説明において、ビットの範囲を省略する。
【００５６】
コラムアドレス信号ＣＡ１，ＣＡ２のビット数は、メモリＭ１〜Ｍ４の数に対応する。コラムアドレス信号ＣＡ１，ＣＡ２は、メモリＭ１〜Ｍ４を選択するために用いられる。ロウアドレス信号ＲＡ１，ＲＡ２のビット数は、メモリＭ１〜Ｍ４の記憶容量に対応する。ロウアドレス信号ＲＡ１，ＲＡ２は、各メモリＭ１〜Ｍ４の記憶領域を指定するために用いられる。
【００５７】
例えば、コラムアドレス信号ＣＡ１とロウアドレス信号ＲＡ１により、メモリＭ１〜Ｍ４に含まれる１つの記憶領域が選択される。この選択された記憶領域に記憶されたデータは、コラムアドレス信号ＣＡ１とロウアドレス信号ＲＡ１を含む画素データＰ１ａをγ補正した出力データである。なお、図５において、各メモリＭ１〜Ｍ４の記憶領域（矩形にて示す）に示される文字は、色データＰ１ａの値（階調値）と、それに対応する出力データ（括弧内の数値）である。
【００５８】
比較部５２は、コラムアドレス信号ＣＡ１とコラムアドレス信号ＣＡ２を互いに比較し、比較結果に応じた検出信号ＳＣＴを出力する。比較部５２は、コラムアドレス信号ＣＡ２がコラムアドレス信号ＣＡ１と一致する場合に第１の所定値（例えば「１」）の検出信号ＳＣＴを出力し、コラムアドレス信号ＣＡ２がコラムアドレス信号ＣＡ１と一致しない場合に第２の所定値（例えば「０」）の検出信号ＳＣＴを出力する。
【００５９】
コラムアドレス信号ＣＡ１は、色データＰ１ａに応じてアクセスするメモリを示す。コラムアドレス信号ＣＡ２は、補正用色データＰ１ｂに応じてアクセスするメモリを示す。したがって、比較部５２は、色データＰ１ａに応じたメモリと補正用色データＰ１ｂに応じたメモリとが一致するか否かを検出し、検出結果に応じた検出信号ＳＣＴを出力する。
【００６０】
補正テーブル５１のアドレス変換部５６は、ロウアドレス信号ＲＡ２、コラムアドレス信号ＣＡ２、検出信号ＳＣＴに基づいて、メモリＭ１〜Ｍ４をアクセスするためのロウアドレス信号ＲＢ２、コラムアドレス信号ＣＢ２を生成する。検出信号ＳＣＴは、色データＰ１ａに基づくロウアドレス信号ＲＡ１と、色データＰ１ａに基づくロウアドレス信号ＲＡ２が互いに一致するか否かを示す。メモリＭ１〜Ｍ４は、ロウアドレス信号ＲＡ１，ＲＡ２に基づいて選択される。つまり、検出信号ＳＣＴは、色データＰ１ａに対応する補正データと、補正用色データＰ１ｂに対応する補正データが同一のメモリに格納されているか否かを示す。
【００６１】
検出信号ＳＣＴが「０」の場合、色データＰ１ａにより参照するメモリと、補正用色データＰ１ｂにより参照するメモリとが互いに異なる。この場合、アドレス変換部５６は、ＣＴが「０」の場合、ロウアドレス信号ＲＡ２と等しいロウアドレス信号ＲＢ２と、コラムアドレス信号ＣＡ２と等しいコラムアドレス信号ＣＢ２を出力する。これにより、補正用色データＰ１ｂに応じたメモリがアクセスされ、そのメモリに格納された補正データが出力される。
【００６２】
検出信号ＳＣＴが「１」の場合、色データＰ１ａにより参照するメモリと、補正用色データＰ１ｂにより参照するメモリとが一致する。この場合、アドレス変換部５６は、補正用色データＰ１ｂによりアクセスする記憶領域に対して、アドレスにおいて前方に隣接する記憶領域と後方に隣接する記憶領域をアクセスするように、ロウアドレス信号ＲＢ２及びコラムアドレス信号ＣＢ２を生成する。アドレスにおける前方は、アドレスが小さくなる方向であり、アドレスにおける後方は、アドレスが大きくなる方向である。また、アドレスにおいて隣接する記憶領域とは、アドレスが「１」異なる記憶領域である。
【００６３】
したがって、検出信号ＳＣＴが「１」の場合、アドレス変換部５６は、それぞれ２つのアドレスを含むロウアドレス信号ＲＢ２とコラムアドレス信号ＣＢ２を生成する。なお、説明上、これらを区別するために、前方のアドレスには「ｆ」、後方のアドレスには「ｂ」を付して説明する場合がある。例えば、ロウアドレス信号ＲＢ２は、前方のアドレス信号ＲＢ２ｆと後方のアドレス信号ＲＢ２ｂを含む。
【００６４】
まず、前方に隣接する記憶領域のアドレス算出を説明する。
アドレス変換部５６は、コラムアドレス信号ＣＡ２から「１」を減算してコラムアドレス信号ＣＢ２ｆを生成する。このとき、コラムアドレス信号ＣＢ２ｆが「−１」の場合、アドレス変換部５６は、コラムアドレス信号ＣＢ２ｆを「３」とする。アドレス変換部５６は、コラムアドレス信号ＣＡ２が「１」〜「３」の場合、ロウアドレス信号ＲＡ２と等しいロウアドレス信号ＲＢ２ｆを生成する。そして、アドレス変換部５６は、コラムアドレス信号ＣＡ２が「０」の場合、ロウアドレス信号ＲＡ２から「１」を減算してロウアドレス信号ＲＢ２ｆとする。
【００６５】
つぎに、後方に隣接する記憶領域のアドレス算出を説明する。
アドレス変換部５６は、コラムアドレス信号ＣＡ２に「１」を加算してコラムアドレス信号ＣＢ２ｂを生成する。このとき、コラムアドレス信号ＣＢ２ｂが「４」の場合、アドレス変換部５６は、コラムアドレス信号ＣＢ２ｂを「０」とする。アドレス変換部５６は、コラムアドレス信号ＣＡ２が「０」〜「２」の場合、ロウアドレス信号ＲＡ２と等しいロウアドレス信号ＲＢ２ｂを生成する。そして、アドレス変換部５６は、コラムアドレス信号ＣＡ２が「３」の場合、ロウアドレス信号ＲＡ２に「１」を加算してロウアドレス信号ＲＢ２ｂとする。
【００６６】
例えば、補正テーブル５１は、２ビットのコラムアドレス信号ＣＡ１［１：０］をデコードして各メモリＭ１〜Ｍ４に対する第１の選択信号を生成する。また、補正テーブル５１は、２ビットのコラムアドレス信号ＣＢ２［１：０］をデコードして各メモリＭ１〜Ｍ４に対する第２の選択信号を生成する。そして、第１の選択信号と第２の選択信号を論理演算（論理和演算）してメモリＭ１〜Ｍ４のそれぞれに対する選択信号を生成する。ロウアドレス信号についても同様である。これにより、同時に複数のメモリを選択する。選択されたメモリは、ロウアドレス信号ＲＡ１，ＲＢ２に応じた記憶領域の補正データを読み出し、出力データＤ１〜Ｄ４を出力する。
【００６７】
セレクタ５３には、各メモリＭ１〜Ｍ４の出力データＤ１〜Ｄ４が供給される。また、セレクタ５３には、コラムアドレス信号ＣＡ１が供給される。セレクタ５３は、出力データＤ１〜Ｄ４のうち、コラムアドレス信号ＣＡ１に応じた出力データを選択し、その選択した出力データと等しい色データＰ１ａを出力する。例えば、コラムアドレス信号ＣＡ１が「００」の場合、セレクタ５３はメモリＭ１の出力データＤ１を選択し、その出力データＤ１と等しい色データＰ１ａを出力する。セレクタ５３における出力データＤ１〜Ｄ４は第１の補正データの一例である。
【００６８】
セレクタ５４には、各メモリＭ１〜Ｍ４の出力データＤ１〜Ｄ４が供給される。また、セレクタ５４には、コラムアドレス信号ＣＡ２と検出信号ＳＣＴが供給される。セレクタ５４は、コラムアドレス信号ＣＡ２と検出信号ＳＣＴに基づいて、各メモリＭ１〜Ｍ４の出力データＤ１〜Ｄ４に応じた２つの出力データＳＤ１，ＳＤ２を出力する。
【００６９】
セレクタ５４は、検出信号ＳＣＴが「０」の場合、出力データＤ１〜Ｄ４のうち、コラムアドレス信号ＣＡ２に応じた１つの出力データを選択し、その選択データと等しい２つの出力データＳＤ１，ＳＤ２を出力する。例えば、コラムアドレス信号ＣＡ２が「０１」の場合、セレクタ５４は、メモリＭ２の出力データＤ２を選択し、その出力データＤ２と等しい出力データＳＤ１，ＳＤ２を出力する。セレクタ５４における出力データＤ１〜Ｄ４は第２の補正データの一例である。
【００７０】
セレクタ５４は、検出信号ＳＣＴが「１」の場合、コラムアドレス信号ＣＡ２に基づいて、出力データＤ１〜Ｄ４のうちの２つの出力データを選択し、選択した２つの出力データとそれぞれ等しい出力データＳＤ１，ＳＤ２を出力する。このとき、セレクタ５４が選択する２つの出力データは、上記の補正テーブル５１において説明した前方のアドレスに応じた出力データと後方のアドレスに応じた出力データである。
【００７１】
セレクタ５４は、コラムアドレス信号ＣＡ２から「１」を減算した結果の値を得る。このとき、セレクタ５４は、結果の値が「−１」の場合、結果の値を「３」とする。そして、セレクタ５４は、結果の値に応じたメモリの出力データを選択する。例えば、コラムアドレス信号ＣＡ２が「１」の場合、演算結果は「０」となる。セレクタ５４は、結果に基づいて、「０」のコラムアドレス信号ＣＡ２に応じたメモリＭ１の出力データＤ１を選択する。同様に、演算結果が「１」〜「３」の場合、メモリＭ２〜Ｍ４の出力データＤ２〜Ｄ４を選択する。そして、セレクタ５４は、選択したデータと等しい出力データＳＤ１を出力する。
【００７２】
また、セレクタ５４は、コラムアドレス信号ＣＡ２に「１」を加算した結果の値を得る。このとき、セレクタ５４は、結果の値が「４」の場合、結果の値を「０」とする。そして、セレクタ５４は、結果の値に応じたメモリの出力データを選択する。そして、セレクタ５４は、選択したデータと等しい出力データＳＤ２を出力する。
【００７３】
演算部５５は、セレクタ５４から出力される出力データＳＤ１，ＳＤ２を演算して補正用色データＰ２ｂを生成する。演算部５５における演算は、例えば線形補間演算（平均演算）である。この線形補間演算は、次式により表される。
Ｐ２ｂ＝（ＳＤ１＋ＳＤ２）／２・・・・・（７）
例えば、検出信号ＳＣＴが「０」の場合、セレクタ５４は、コラムアドレス信号ＣＡ２に応じて選択した１つの出力データと等しい２つの出力データＳＤ１，ＳＤ２を出力する。従って、上記の式（７）により算出される補正用色データＰ２ｂは、セレクタ５４が選択した１つの出力データと等しくなる。つまり、コラムアドレス信号ＣＡ２に対応する補正データと等しい出力データが演算部５５から出力される。
【００７４】
また、検出信号ＳＣＴが「１」の場合、補正用色データＰ１ｂに隣接する２つの補正データが補正テーブル５１から出力される。演算部５５は、この２つの補正データ（第２の補正データ）を線形補間して補正用色データＰ２ｂを生成する。この補正用色データＰ２ｂは、補正用色データＰ１ｂをγ補正した値と等しい値、または補正用色データＰ１ｂをγ補正した値に近い値となる。
【００７５】
例えば、図７に示すように、色データＰ１ａが「１」のとき、補正テーブル５１は、その色データＰ１ａに応じて「２０」の出力データを出力する。図５に示すように、色データＰ１ａはメモリＭ２を示す。補正用色データＰ１ｂが「３」のとき、この補正用色データＰ１ｂはメモリＭ４を示す。したがって、検出信号ＳＣＴは「０」であり、図７に示すように、補正テーブル５１は、「３３」の出力データを出力する。
【００７６】
別の例として、色データＰ１ａが「１」、補正用色データＰ１ｂが「５」のとき、図５に示すように、色データＰ１ａと補正用色データＰ１ｂはともにメモリＭ２を示す。したがって、検出信号ＳＣＴが「１」となる。このとき、補正テーブル５１は、色データＰ１ａに応じて「２０」の出力データＤ２を出力する。また、補正テーブル５１は、補正用色データＰ１ｂの前の「３８」の出力データＤ１と、補正用色データＰ１ｂの後の「「３８」の出力データＤ３を出力する。セレクタ５４は、これらの出力データＤ１，Ｄ３を選択して出力データＳＤ１，ＳＤ２を出力する。そして、演算部５５は、出力データＳＤ１，ＳＤ２に基づいて、「４２」の補正用色データＰ２ｂを出力する。このとき、補正用色データＰ１ｂをγ補正した値は、「４２」である。したがって、γ補正部４３は、γ補正による値と等しい補正用色データＰ２ｂを生成する。
【００７７】
演算の別の例として、補正用色データＰ１ｂが「６」の場合を説明する。このとき、補正テーブル５１は、補正用色データＰ１ｂの前の「４２」の出力データＤ２と、補正用色データＰ１ｂの後の「４９」の出力データＤ４を出力する。セレクタ５４は、これらの出力データＤ２，Ｄ４を選択して出力データＳＤ１，ＳＤ２を出力する。そして、演算部５５は、出力データＳＤ１，ＳＤ２に基づいて、「４５」の補正用色データＰ２ｂを出力する。なお、小数点以下を切り捨てとする。このとき、補正用色データＰ１ｂをγ補正した値は、「４６」である。したがって、γ補正部４３は、γ補正による値に近い補正用色データＰ１ｂを生成する。
【００７８】
次に、階調補正部４４を説明する。
図３に示すように、階調補正部４４は、γ補正部４３から出力される画素データＰ２ａと補正用画素データＰ２ｂに基づいて、画素データＰ２ａを補正用画素データＰ２ｂにより階調補正した画素データＰ３を生成する。画素データＰ３は、第５の画素データの一例である。また、階調補正部４４は、デモザイク部４１により生成された凹凸度ＲＦに基づいて、画素データＰ２ａを補正用画素データＰ２ｂにより階調補正した画素データＰ３を生成する。
【００７９】
図８に示すように、階調補正部４４は、疑似乱数生成部６１、補正演算部６２を有している。
疑似乱数生成部６１には、設定値Ｓｓが供給される。設定値Ｓｓは、例えば図３に示すレジスタ２２ｂに格納されている。疑似乱数生成部６１は、設定値Ｓｓを基準値として、乱数ＲＰを生成する。疑似乱数生成部６１は、例えば混合合同法により乱数ＲＰを生成する。乱数ＲＰは、ほぼ均等な確率で所定範囲内の値となる。この範囲は、例えばコントラスト補正及びγ補正により生じる階調飛びの最大の値に応じて設定される。
【００８０】
補正演算部６２は、上記の画素データＰ２ａ，Ｐ２ｂ、乱数ＲＰ、凹凸度ＲＦに基づいて、画素データＰ３を生成する。例えば、補正演算部６２は、画素データＰ２ａ，Ｐ２ｂの差分値ΔＰを算出し、乱数ＲＰを差分値ΔＰにより剰余演算した結果の値を、画素データＰ２ａに加算して画素データＰ３を生成する。つまり、
ΔＰ＝Ｐ２ｂ−Ｐ２ａ
Ｐ３＝Ｐ２ａ＋（ＲＰ％ΔＰ）・・・・・（８）
但し、％は剰余演算、
により、画素データＰ３を算出する。したがって、乱数ＲＰと差分値ΔＰによる剰余演算結果は、画素データＰ２ａに対する補正量である。
【００８１】
また、補正演算部６２は、凹凸度ＲＦに基づいて、次式に基づいて画素データＰ３を生成してもよい。
Ｐ３＝Ｐ２ａ＋（Ｒ％ΔＰ）×（１．０−ＲＦ）・・・・・（９）
凹凸度ＲＦは、画素データＰ２ａに対して付加される値（＝Ｒ％ΔＰ）に対して加味される。例えば、凹凸度ＲＦが「０」の場合、乱数ＲＰと差分値ΔＰの剰余演算結果が画素データＰ２ａに加算されて画素データＰ３が生成される。また、凹凸度ＲＦが「１」の場合、画素データＰ２ａと等しい画素データＰ３が生成される。つまり、凹凸度ＲＦは、画素データＰ２ａに対して付加する補正量の最大値を設定する。
【００８２】
例えば、空を撮影した部分の画像データの場合、凹凸度ＲＦは「０」または「０」に近い値となる。このように、着目画素と周囲の画素の差が小さい平坦な部分では、階調飛びが目立つ。一方、着目画素と周囲の画素の差が大きな部分では、階調飛びは目立ち難い。したがって、凹凸度ＲＦに応じて付加する補正量の最大値を設定することで、階調飛びの目立たない画像が得られる。
【００８３】
次に、上記の撮像装置の作用を説明する。
図９（ａ）は、測光が上手くいかなかった撮像データにおける輝度値のヒストグラムを示す。図９（ａ）における縦軸は、各輝度値を持つ画素の数（画素数）である。
【００８４】
このようなヒストグラムとなる撮像データでは、輝度値が小さなシャドー部分と、輝度値が大きなハイライト部分が使用されていない、メリハリの無い、所謂眠たい画像となる。このように、ダイナミックレンジが有効に使用されていない画像はコントラストが低く、見栄えのよい画像とは言えない。なお、シャドー部分が多くハイライト部分が使用されていない暗めの画像や、ハイライト部分が多くシャドー部分が使用されていない明るめの画像も同様である。
【００８５】
図９（ｂ）は、コントラスト補正により得られる画素データにおける輝度値のヒストグラムである。図９（ｂ）における縦軸は、各輝度値を持つ画素の数（画素数）である。このように、コントラスト補正におけるゲイン値Ｃgainに応じて、周期的に輝度値を持つ画素が存在しない櫛状のヒストグラムとなる。このような撮像データによる画像は、空や人物の肌のように輝度の変化が少ない部分で生じる縞模様が目立つ。
【００８６】
そして、γ補正では、図６に示すγ補正曲線のように、階調値が「０」から「５０」の入力データ（Ｐ１ａ）を、階調値が「０」から「１２２」の出力データ（Ｐ２ａ）に補正する。したがって、階調値が「０」に近いシャドー部分では、入力データ（Ｐ１ａ）の階調差に対して、出力データ（Ｐ２ａ）の階調差が大きくなる。
【００８７】
図３に示すように、階調補正部４４は、γ補正部４３から出力される画素データＰ２ａと補正用画素データＰ２ｂの差分値ΔＰに応じてランダムに生成した補正量を画素データＰ２ａに付加（加算）して画素データＰ３を生成する。その結果、図９（ｃ）に示すように、階調補正後の画素データＰ３は、階調飛びの目立たないヒストグラムとなる。階調補正部４４における演算処理はノイズの付加と同様の演算処理である。このため、補正前の画像に対して暫定的にざらついた感じとなるが、画像の平坦な部分で階調補正を行わない画像と比べて縞模様は気にならなくなる。このように、画質の劣化を抑制することができる。
【００８８】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）コントラスト補正部４２は、輝度最大値Ｙｍａｘ及び輝度最小値Ｙｍｉｎに基づいて、画素データＰ０のコントラストを補正した画素データＰ１ａと、画素データＰ０に所定値「１」を加算した画素データのコントラストを補正した補正用画素データＰ１ｂを生成する。γ補正部４３は、画素データＰ１ａに対して、画像の出力部の感度特性に応じて各色の色情報を補正するガンマ補正（γ補正）を施した画素データＰ２ａと、補正用画素データＰ１ｂをγ補正して補正用画素データＰ２ｂを生成する。階調補正部４４は、画素データＰ２ａと補正用画素データＰ２ｂとの差分値ΔＰに応じて、画素データＰ２ａを階調補正した画素データＰ３を生成する。差分値ΔＰは、コントラスト補正とγ補正により生じる階調飛びに対応する。この差分値ΔＰに応じて、γ補正後の画素データＰ２ａを階調補正することにより、画質の劣化を抑制することができる。
【００８９】
（２）階調補正部４４は、凹凸度ＲＦに基づいて、画素データＰ２ａを補正用画素データＰ２ｂにより階調補正した画素データＰ３を生成する。例えば、空を撮影した部分の画像データの場合、凹凸度ＲＦは「０」または「０」に近い値となる。このように、着目画素と周囲の画素の差が小さい平坦な部分では、階調飛びが目立つ。一方、着目画素と周囲の画素の差が大きな部分では、階調飛びは目立ち難い。したがって、凹凸度ＲＦに応じて付加する補正量の最大値を設定することで、階調飛びの目立たない画像を得ることができる。
【００９０】
尚、上記各実施形態は、以下の態様で実施してもよい。
・各色に対応する３つの受光部が光の入射面に対して垂直方向に沿って形成された撮像センサを含む撮像光学系を用いて画像データ（ＲＡＷデータ）を生成するようにしてもよい。１つの画素に対応する画像データは、３色（Ｒ，Ｇ，Ｂ）の色情報を含む。このため、図１に示すセンサＩ／Ｆ２１において、１つの画素データに含まれる３色の色情報に基づいて、その画素データにおける輝度値を算出する。この場合、図３に示すデモザイク部４１におけるデモザイク処理を省略することができる。
【００９１】
・図３に示すデモザイク部４１において、生成したＲＧＢの色情報を含む画素データＳＲに基づいて凹凸度ＲＦを算出するようにしてもよい。
また、図３に示すデモザイク部４１において、分散演算や標準偏差など、平均からのばらつきを示すことが可能な演算を用いて凹凸度ＲＦを算出するようにしてもよい。
【００９２】
・上記実施形態に対し、カーネルのサイズを、例えば、３×３、７×７、等のように、適宜変更してもよい。また、縦と横のサイズが異なるカーネル（例えば、５×７、７×５）を用いて凹凸度ＲＦを算出するようにしてもよい。
【００９３】
・図５に示すγ補正部４３において、比較部５２を省略し、補正用色データＰ１ｂに基づいて２つのメモリから読み出した補正データを演算部５５にて演算して補正用色データＰ２ｂを生成するようにしてもよい。
【００９４】
・図５に示す演算部５５における演算を適宜変更してもよい。例えば、αブレンド演算を用いて、次式のように補正用色データＰ２ｂを生成するようにしてもよい。
Ｐ２ｂ＝ＳＤ１×α＋ＳＤ２×（１−α）
αは係数であり、この係数αは、例えば図６に示すγ補正曲線に応じたデータを記憶した参照テーブル（ＬＵＴ:Look Up Table）により得られる。参照テーブルのデータは、例えば、γ補正曲線を折れ線に近似した値をロジック回路により算出して格納することが可能である。γ補正曲線に応じた係数αを用いることで、高い精度により補正用色データＰ２ｂを得ることが可能となる。
【００９５】
・コントラスト補正部４２において、補正用画素データＰ１ｂの画素値を、画素データＰ１ａの画素値に「１」を加算した値を用いたが、「１」を減算した値を用いてもよい。このようにしても、コントラスト補正とγ補正において生じる階調飛びに応じた差分値ΔＰを得ることができ、階調補正を行うことが可能となる。
【００９６】
・階調補正部４４において、凹凸度ＲＦに応じて補正量の最大値を決定するようにした。凹凸度ＲＦに基づいて、補正の要否を判定するようにしてもよい。例えば、凹凸度ＲＦと所定のしきい値とを比較し、凹凸度ＲＦがしきい値より大きいときに補正が行うようにしてもよい。しきい値は、凹凸度ＲＦや階調値に応じて設定される。
【００９７】
例えば、上記実施形態のように凹凸度ＲＦが「０」〜「１」の場合、しきい値を例えば「０．５」に設定する。凹凸度ＲＦがしきい値より小さい場合に、上記の式（８）または式（９）により画素データＰ３を生成する。一方、凹凸度ＲＦがしきい値以上の場合に、画素データＰ２ａと等しい値の画素データＰ３を生成する。このようにしても、平坦な部分における階調飛びを補正し、画質の劣化を抑制することができる。
【００９８】
・画素データに含まれる各色の色情報のビット数を適宜変更してもよい。例えば、１０ビット、１２ビット、等とする。色情報のビット数は階調数に対応する。したがって、図５に示す補正テーブル５１の記憶容量、ロウアドレス信号ＲＡ１，ＲＡ２，ＲＢ２のビット数が、色情報のビット数に応じて変更される。
【００９９】
・上記実施形態において、ベイヤ配列のカラーフィルタを含む撮像部１０を用いたが、その他の配列カラーフィルタを含む撮像素子部を用いても良い。また、画素の配列方向は直交する２つの軸に限らない。更には、各色の画素がチップの深さ方向に形成された撮像素子を用いても良い。また、赤（Ｒ），青（Ｂ），緑（Ｇ）以外の色のフィルタを含む撮像素子部を用いてもよい。フィルタは、原色フィルタに限らず、補色フィルタを用いてもよい。
【符号の説明】
【０１００】
２１  センサインタフェース（センサＩ／Ｆ）
２１ｂ  レジスタ
２２  画像処理部
２２ｂ  レジスタ
４１  デモザイク部
４２  コントラスト補正部
４３  ガンマ補正部（γ補正部）
４４  階調補正部
５１  補正テーブル
５２  比較部
５３，５４  セレクタ
５５  演算部
５６  アドレス変換部
６１  疑似乱数生成部
６２  補正演算部
Ｍ１〜Ｍ４  メモリ
Ｄ１〜Ｄ４  出力データ
ＳＣＴ  検出信号
Ｐ１ａ，Ｐ２ａ  色データ（画素データ）
Ｐ１ｂ，Ｐ２ｂ  補正用色データ（補正用画素データ）
Ｐ３  出力画素データ
Ｃgain  ゲイン値
Ｃoffset  オフセット値
ＲＦ  凹凸度
ＲＰ  乱数
Ｙｍａｘ  輝度最大値
Ｙｍｉｎ  輝度最小値
【図１】
2015049567.tif 000005
【図２】
2015049567.tif 000006
【図３】
2015049567.tif 000007
【図４】
2015049567.tif 000008
【図５】
2015049567.tif 000009
【図６】
2015049567.tif 000010
【図７】
2015049567.tif 000011
【図８】
2015049567.tif 000012
【図９】
2015049567.tif 000013