(57)【特許請求の範囲】
【請求項１】
入力された画像データの輝度分布として、上記画像データを構成する画素値が属する所定の階調数の各々の階調に対して、１未満の固定値を加算してヒストグラムを生成するヒストグラム生成部と、
上記ヒストグラムの生成にあたって、上記１未満の固定値との差分値を分配量として近隣の階調に分配する分配処理部と、
上記ヒストグラム生成部により得られたヒストグラムを低階調側から累積して、累積ヒストグラムを生成する累積ヒストグラム生成部と、
上記累積ヒストグラムを用いて、コントラスト補正を行う階調補正処理部と、
を有し、
上記ヒストグラム生成部と上記分配処理部における上記１未満の固定値は、上記所定の階調数に対し、固定にすることを特徴とする画像処理装置。
【請求項２】
さらに被写界を撮像して画像データを出力する撮像部と、
を有し、
請求項１に記載の画像処理装置を具備することを特徴とする撮像装置。
【請求項３】
上記分配処理部は、上記撮像部の撮像動作が静止画撮影である場合には、動画撮影である場合と比べて上記分配量を固定にする階調数を同じ、もしくは少なくすることを特徴とする請求項２に記載の撮像装置。
【請求項４】
さらに画像内のエリアを取得する検出部と、
上記画像データの局所領域が、上記検出部において検出された上記エリア内にあるかどうかを判定するエリア判定部と、
を備え、
上記ヒストグラム生成部は、上記画像データの局所領域毎のヒストグラムを生成し、
上記分配処理部は、上記エリア判定部において上記局所領域が上記エリア内と判定された場合には、上記分配量を固定にする階調数を変更することを特徴とする請求項２に記載の撮像装置。
【請求項５】
上記分配処理部は、固定の分配量は、その対象となる階調数を用いて、Ｗ１＝１／（ｓｔａｂＮ＋１）とするように分配することを特徴とする請求項２ないし請求項４のいずれか１項に記載の撮像装置。
【請求項６】
上記分配処理部において、分配量を固定にする階調に隣接する階調に対しては、画素値により変動する分配量を分配することを特徴とする請求項２ないし請求項４のいずれか１項に記載の撮像装置。
【請求項７】
上記分配処理部において、画素値により変動する分配量の最大量は、固定の分配量及び固定の分配を行う階調数を用いて、
Ｗ２３＝１−（Ｗ１×ｓｔａｂＮ）
ここで、Ｗ２３：分配重み係数
Ｗ１：分配重み係数
ｓｔａｂＮ：階調数
とすることを特徴とする請求項５または請求項６に記載の撮像装置。
【請求項８】
入力された画像データの輝度分布として、上記画像データを構成する画素値が属する所定の階調数の各々の階調に対して、１未満の固定値を加算してヒストグラムを生成するヒストグラム生成ステップと、
上記ヒストグラムの生成にあたって、上記１未満の固定値と１との差分値を分配量として近隣の階調に分配する分配処理ステップと、
上記ヒストグラム生成ステップにより得られたヒストグラムを低階調側から累積して、累積ヒストグラムを生成する累積ヒストグラム生成ステップと、
上記累積ヒストグラムを用いて、コントラスト補正を行う階調補正処理ステップと、
を有し、
上記ヒストグラム生成ステップと上記分配処理ステップにおける上記１未満の固定値は、上記所定の階調数に対し、固定にすることを特徴とする画像処理方法。
【請求項９】
入力された画像データの輝度分布として、上記画像データを構成値する画素値が属する所定の階調数の各々の階調に対して、１未満の固定値を加算してヒストグラムを生成するヒストグラム生成ステップと、
上記ヒストグラムの生成にあたって、上記１未満の固定値と１との差分値を分配量として近隣の階調に分配する分配処理ステップと、
上記ヒストグラム生成ステップにより得られたヒストグラムを低階調側から累積して、累積ヒストグラムを生成する累積ヒストグラム生成ステップと、
上記累積ヒストグラムを用いて、コントラスト補正を行う階調補正処理ステップと、
を有し、
上記ヒストグラム生成ステップと上記分配処理ステップにおける上記１未満の固定値は、上記所定の階調数に対し、固定にすることをコンピュータに実行させるプログラムを記憶したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像のヒストグラムから累積ヒストグラムを生成し、ヒストグラム平滑化を行う階調変換処理を行う画像処理装置、撮像装置、画像処理方法、およびプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
従来より、画像のヒストグラムから累積ヒストグラムを生成し、ヒストグラム平滑化を行う階調変換処理が知られている。カメラ等の撮像装置で階調変換処理を行うとすると、処理を簡易化するために、縮小画像を用い入力画像の階調数よりも少ない階調、例えば、８階調や１６階調でヒストグラムを作成し、平滑化を行う。
【０００３】
しかし、階調数を少なくすると、シーンチェンジや露出補正などで露出が変化した際、ヒストグラムが急激に変化してしまう。特に、ヒストグラムが特定の階調に集中するような平坦な被写体では、ヒストグラム平滑化後の画像の明るさが、明るくなったり暗くなったりして、画像ムラとして現われてしまう。
【０００４】
この点について、図１６および図１７を用いて説明する。図１６は、横軸に縮小画像の画素値をとり、この例では、階調を８分割している。例えば、画素値が０〜４０９５の場合には、０〜５１２の範囲を階調“０”とし、５１２〜１０２４の範囲を階調“１”とし、１０２４〜１５３６の範囲を階調“３”としている。以後、等間隔で、階調“４”〜“８”に分割する。図１６の例において、全面が一様な輝度の単一平面の被写体の場合には、図１６（ａ）に示すように、ヒストグラムがある特定の階調に集中する。ヒストグラム生成では、画素値がある特定の範囲に入っていれば、その階調の頻値としてカウントする。すなわち、図１６（ａ）に示す例では、前述したように階調を０〜７までの８階調に分けており、この例では、階調ｎ＝３に集中している。
【０００５】
つまり、図１６（ｂ）に示すように、画素値が、Ｖ１であっても、Ｖ２であっても、Ｖ３であっても、すべて同じようにその階調（ｎ＝３）の頻値に１が加算される。そのため、全面が一様な輝度の単一平面の被写体において、さらに露出変化があり、画素値がＶ１からＶ４まで徐々に変化するような場合、ヒストグラムが急激に切り替わってしまう。すなわち、画素値Ｖ１からＶ３までの露出変化に対しては、ヒストグラムが変化しないにもかかわらず（図１７（ａ）〜（ｃ））、画素値Ｖ３からＶ４になる露出変化では、ヒストグラムが急激に切り替わってしまう（図１７（ｃ）（ｄ））。このため、ヒストグラムを用いたヒストグラム平滑化でも急激な変化が発生する結果となっていた。
【０００６】
そこで、特許文献１では、ヒストグラム生成時の頻値カウント時に、該当する階調内での位置に応じた重みを算出し、隣接する階調にも分配することにより、階調数が少なくても露出変化時にヒストグラムの変化を滑らかにすることが提案されている。
【０００７】
具体的には、画素値と、画素値が含まれる階調内での相対的な位置に基づき、図１８（ａ）〜（ｃ）に示すような重みをつけ、前後の階調に振り分けて頻値をカウントしていく。なお、図１８（ａ）に示す曲線Ｗ１０は該当する階調位置（ｎ）の頻値に対する重みを示し、図１８（ｂ）に示す曲線Ｗ１１は該当する階調位置（ｎ）の隣接位置（ｎ−１）の頻値に対する重みを示し、図１８（ｃ）に示す曲線Ｗ１２は該当する階調位置（ｎ）の隣接位置（ｎ＋１）の頻値に対する重みを示す。
【０００８】
このような重みをつけることにより、図１９（ａ）〜（ｄ）に示すように、露出変化に伴い、ヒストグラムも変化し、滑らかな変化となる。なお、図１９（ａ）は縮小画像の画素値Ｖ１の場合のヒストグラムを、図１９（ｂ）は縮小画像の画素値Ｖ２の場合のヒストグラムを、図１９（ｃ）は画素値Ｖ３の場合のヒストグラムを、図１９（ｄ）は縮小画像の画素値Ｖ４の場合のヒストグラムを示す。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第５４８６７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述の特許文献１に提案の階調変換処理を行うことにより、図１９（ａ）〜（ｄ）に示すように、ヒストグラム自体の急激な変化は改善される。しかし、ヒストグラム平滑化の結果を安定的に変化させるには、不十分であり、条件によって、ヒストグラム平滑化の画像の明るさが変化する場合がある。
【００１１】
この点について、図１９（ａ’）〜（ｄ’）を用いて説明する。図１９（ａ’）〜（ｄ’）に示す各グラフは、図１９（ａ）〜（ｄ）のヒストグラムを用いた累積ヒストグラム、及び累積ヒストグラムを入出力特性としてヒストグラム平滑化をした際の様子を示している。図１９（ａ’）〜（ｄ’）の横軸に示す入力データ（両矢印）は、露出変化があっても幅が変わらず徐々に暗くなっていくのに対し、縦軸に示すヒストグラム平滑化後の出力データ（両矢印）は、露出変化によって、幅が大きく変化することがわかる。つまり、特許文献１に示される階調変換処理では、ヒストグラム平滑化を用いた局所階調変換処理を行う際に、安定した結果を得ることはできない。
【００１２】
本発明は、このような事情を鑑みてなされたものであり、ヒストグラム平滑化の結果を安定的に変化させることのできる画像処理装置、撮像装置、画像処理方法、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため第１の発明に係る画像処理装置は、入力された画像データの輝度分布として、上記画像データを構成する画素値が属する所定の階調数の各々の階調に対して、１未満の固定値を加算してヒストグラムを生成するヒストグラム生成部と、上記ヒストグラムの生成にあたって、上記１未満の固定値との差分値を分配量として近隣の階調に分配する分配処理部と、上記ヒストグラム生成部により得られたヒストグラムを低階調側から累積して、累積ヒストグラムを生成する累積ヒストグラム生成部と、上記累積ヒストグラムを用いて、コントラスト補正を行う階調補正処理部と、を有し、上記ヒストグラム生成部と上記分配処理部における上記１未満の固定値は、上記所定の階調数に対し、固定にする。
【００１４】
第２の発明に係る撮像装置は、上記第１の発明において、さらに被写界を撮像して画像データを出力する撮像部と、を有し、上記第１の発明に記載の画像処理装置を具備する。
第３の発明に係る撮像装置は、上記第２の発明において、上記分配処理部は、上記撮像部の撮像動作が静止画撮影である場合には、動画撮影である場合と比べて上記分配量を固定にする階調数を同じ、もしくは少なくする。
【００１５】
第４の発明に係る撮像装置は、上記第１の発明において、さらに画像内のエリアを取得する検出部と、上記画像データの局所領域が、上記検出部において検出された上記エリア内にあるかどうかを判定するエリア判定部と、を備え、上記ヒストグラム生成部は、上記画像データの局所領域毎のヒストグラムを生成し、上記分配処理部は、上記エリア判定部において上記局所領域が上記エリア内と判定された場合には、上記分配量を固定にする階調数を変更する。
【００１６】
第５の発明に係る撮像装置は、上記第２ないし上記第４の発明において、上記分配処理部は、固定の分配量は、その対象となる階調数を用いて、Ｗ１＝１／（ｓｔａｂＮ＋１）とするように分配する。
第６の発明に係る撮像装置は、上記第２ないし上記第４の発明において、上記分配処理部において、分配量を固定にする階調に隣接する階調に対しては、画素値により変動する分配量を分配する。
【００１７】
第７の発明に係る撮像装置は、上記第５または上記第６の発明において、上記分配処理部において、画素値により変動する分配量の最大量は、固定の分配量及び固定の分配を行う階調数を用いて、  Ｗ２３＝１−（Ｗ１×ｓｔａｂＮ）  ここで、Ｗ２３：分配重み係数  Ｗ１：分配重み係数  ｓｔａｂＮ：階調数  とする。
【００１８】
第８の発明に係る画像処理方法は、入力された画像データの輝度分布として、上記画像データを構成する画素値が属する所定の階調数の各々の階調に対して、１未満の固定値を加算してヒストグラムを生成するヒストグラム生成ステップと、上記ヒストグラムの生成にあたって、上記１未満の固定値と１との差分値を分配量として近隣の階調に分配する分配処理ステップと、上記ヒストグラム生成ステップにより得られたヒストグラムを低階調側から累積して、累積ヒストグラムを生成する累積ヒストグラム生成ステップと、上記累積ヒストグラムを用いて、コントラスト補正を行う階調補正処理ステップと、を有し、上記ヒストグラム生成ステップと上記分配処理ステップにおける上記１未満の固定値は、上記所定の階調数に対し、固定にする。
【００１９】
第９の発明に係る記録媒体は、入力された画像データの輝度分布として、上記画像データを構成値する画素値が属する所定の階調数の各々の階調に対して、１未満の固定値を加算してヒストグラムを生成するヒストグラム生成ステップと、上記ヒストグラムの生成にあたって、上記１未満の固定値と１との差分値を分配量として近隣の階調に分配する分配処理ステップと、上記ヒストグラム生成ステップにより得られたヒストグラムを低階調側から累積して、累積ヒストグラムを生成する累積ヒストグラム生成ステップと、上記累積ヒストグラムを用いて、コントラスト補正を行う階調補正処理ステップと、を有し、上記ヒストグラム生成ステップと上記分配処理ステップにおける上記１未満の固定値は、上記所定の階調数に対し、固定にすることをコンピュータに実行させるプログラムを記憶した。
【発明の効果】
【００２０】
本発明によれば、ヒストグラム平滑化の結果を安定的に変化させることのできる画像処理装置、撮像装置、画像処理方法、および記録媒体を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係るカメラの主として電気的構成を示すブロック図である。
【図２】本発明の一実施形態に係るカメラのヒストグラム平滑化の動作を示すフローチャートである。
【図３】本発明の一実施形態に係るカメラの撮像素子からの輝度画像から縮小画像を生成するためのブロックを示す図である。
【図４】本発明の一実施形態に係るカメラの縮小画像からヒストグラムを生成するための範囲を示す図である。
【図５】本発明の一実施形態に係るカメラにおいて、縮小画像から生成したヒストグラムと、累積ヒストグラムを示すグラフである。
【図６】本発明の一実施形態に係るカメラにおいて、近傍の累積ヒストグラムを用いたコントラスト補正も行う例を示すグラフである。
【図７】本発明の一実施形態に係るカメラのヒストグラム生成の概念的動作を示すフローチャートである。
【図８】本発明の一実施形態に係るカメラにおいて、ヒストグラム生成を説明する図であり、（ａ）はヒストグラム生成に用いる画像データの画素位置を示す図であり、（ｂ）は階調位置を算出するためのテーブルであり、（ｃ）は階調位置を算出するための画素値データの構造を示す図である。
【図９】本発明の一実施形態に係るカメラのヒストグラム生成の動作を示すフローチャートである。
【図１０】本発明の一実施形態に係るカメラにおいて、傾き安定化階調数（ｓｔａｂＮ）が奇数の場合と偶数の場合において、傾き安定階調と隣接階調の位置関係を示す図である。
【図１１】本発明の一実施形態に係るカメラの傾き安定化階調及び隣接階調の頻値設定の動作を示すフローチャートである。
【図１２】本発明の一実施形態に係るカメラにおいて、各階調における分配重みの関係を示す図である。
【図１３】本発明の一実施形態に係るカメラにおいて、ヒストグラム平滑化の効果を説明する図である。
【図１４】本発明の一実施形態に係るカメラのヒストグラム生成の動作を示すフローチャートの第１の変形例である。
【図１５】本発明の一実施形態に係るカメラのヒストグラム生成の動作を示すフローチャートの第２の変形例である。
【図１６】従来の平滑化処理において、階調位置の設定を説明する図である。
【図１７】従来の平滑化処理において、画素値と階調位置の関係を説明する図である。
【図１８】従来の平滑化処理において、画素値を隣接階調に振り分け方を説明する図である。
【図１９】従来の平滑化処理において、画素値に対するヒストグラムと累積ヒストグラムを示すグラフである。
【発明を実施するための形態】
【００２２】
以下、本発明の一実施形態としてデジタルカメラに適用した例について説明する。このデジタルカメラは、撮像部を有し、この撮像部によって被写体界を撮像して画像データに変換し、この変換された画像データに基づいて、被写体像を本体の背面に配置した表示部にライブビュー表示する。撮影者はライブビュー表示を観察することにより、構図やシャッタチャンスを決定する。レリーズ操作時には、画像データが記録媒体に記録される。記録媒体に記録された画像データは、再生モードを選択すると、表示部に再生表示することができる。
【００２３】
図１は、本発明の一実施形態に係わるカメラの主として電気的構成を示すブロック図である。このカメラは、カメラ本体１００と、これに脱着することのできる交換式レンズ２００とから構成される。
【００２４】
交換式レンズ２００は、撮影レンズ２０１、絞り２０３、ドライバ２０５、マイクロコンピュータ２０７、フラッシュメモリ２０９を有しており、後述するカメラ本体１００との間にインターフェース（以後、Ｉ／Ｆと称す）９９９を有する。
【００２５】
撮影レンズ２０１は、被写体像を形成するための光学レンズであって、単焦点レンズまたはズームレンズを有している。この撮影レンズ２０１の光軸の後方には、絞り２０３が配置されており、絞り２０３は口径が可変であり、撮影レンズ２０１の通過した被写体光束を制限する。
【００２６】
また、撮影レンズ２０１はドライバ２０５によって光軸方向に移動することができ、マイクロコンピュータ２０７からの制御信号に基づいて、撮影レンズ２０１のピント位置が制御され、ズームレンズの場合には、焦点距離も制御される。このドライバ２０５は、絞り２０４の口径の制御も行う。
【００２７】
ドライバ２０５に接続されたマイクロコンピュータ２０７は、Ｉ／Ｆ９９９およびフラッシュメモリ２０９に接続されている。マイクロコンピュータ２０７は、フラッシュメモリ２０９に記憶されているプログラムに従って動作し、後述するカメラ本体１００内のマイクロコンピュータ１２１と通信を行い、マイクロコンピュータ１２１からの制御信号に基づいて交換式レンズ２００の制御を行う。
【００２８】
フラッシュメモリ２０９には、前述したプログラムの他、交換式レンズ２００の光学的特性や調整値等の種々の情報が記憶されている。Ｉ／Ｆ９９９は、交換式レンズ２００内のマイクロコンピュータ２０７とカメラ本体１００内のマイクロコンピュータ１２１の相互間の通信を行うためのインターフェースである。
【００２９】
カメラ本体１００内であって、撮影レンズ２０１の光軸上には、メカニカルシャッタ１０１が配置されている。このメカニカルシャッタ１０１は、被写体光束の通過時間を制御し、公知のレンズシャッタまたはフォーカルプレーンシャッタが採用される。このメカニカルシャッタ１０１の後方であって、撮影レンズ２０１によって被写体像が形成される位置には、撮像素子１０２が配置されている。
【００３０】
撮像素子１０２は、各画素を構成するフォトダイオードが二次元的にマトリックス状に配置されており、各フォトダイオードは受光量に応じた光電変換電流を発生し、この光電変換電流は各フォトダイオードに接続するキャパシタによって電荷蓄積される。各画素の前面には、ベイヤー配列のカラーフィルタが配置されている。ベイヤー配列は、水平方向にＲ画素とＧ（Ｇｒ）画素が交互に配置されたラインと、Ｇ（Ｇｂ）画素とＢ画素が交互に配置されたラインを有し、さらにその３つのラインを垂直方向にも交互に配置することで構成されている。
【００３１】
撮像素子１０２はアナログ処理部１０３に接続されており、このアナログ処理部１０３は、撮像素子１０２から読み出した光電変換信号（アナログ画像信号）に対し、リセットノイズ等を低減した上で波形整形を行い、適切な輝度になるようにゲインアップを行う。ＩＳＯ感度の調整は、このアナログ処理部１０３においてアナログ画像信号のゲイン（増幅率）を調整することにより制御する。
【００３２】
アナログ処理部１０３はＡ／Ｄ変換部１０４に接続されており、このＡ／Ｄ変換部１０４は、アナログ画像信号をアナログ―デジタル変換し、デジタル画像信号（以後、画像データという）をバス１０９に出力する。
【００３３】
バス１０９は、カメラ本体１００の内部で読み出され若しくは生成された各種データをカメラ本体１００の内部に転送するための転送路である。バス１０９は、前述のＡ／Ｄ変換部１０４の他、画像処理部１１１、ＡＥ処理部１１３、ＡＦ処理部１１５、ＪＰＥＧ処理部１１７、マイクロコンピュータ１２１、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）１２７、メモリインターフェース（以後、メモリＩ／Ｆという）１２９、液晶（以後、ＬＣＤという）ドライバ１３３が接続されている。
【００３４】
バス１０９に接続された画像処理部１１１は、ホワイトバランス補正部（以後、ＷＢ補正部という）１１１ａ、同時化処理部１１１ｂ、色再現処理部１１１ｄ、階調補正処理部１１１ｃ、ノイズリダクション処理部（以後、ＮＲ処理部という）１１１ｄｅ含み、ＳＤＲＡＭ１２７に一時記憶された画像データを読出し、この画像データに対して種々の画像処理を施す。
【００３５】
ＷＢ補正部１１１ａは、画像データに対して、ホワイトバランス補正を行う。ホワイトバランス補正は、さまざまな色温度の光源のもとで、白色を正確に白く映し出すように補正する。晴天、曇天、日陰、電球、蛍光灯などの光源モード、若しくはカメラ側で自動的にホワイトバランス補正量を算出するオートホワイトバランスモードをユーザが設定するので、この設定されたモードに応じて、画像データに対してホワイトバランス補正を行う。ＷＢ補正部１１１ａは、ユーザの指定したホワイトバランス設定に基づき、ＷＢゲインを取得もしくは検出し、画像データに対してゲイン乗算をすることにより、ホワイトバランス補正を行う。
【００３６】
同時化処理部１１１ｂは、ベイヤー配列の下で取得された画像データに対して、１画素あたりＲ、Ｇ、Ｂの情報からなる画像データへ同時化処理を行う。すなわち、同時化処理では、ＲＧＢのベイヤー構造の画像データを、ＲＧＢの三面データに変換するデモザイク処理を行う。
【００３７】
階調補正処理部１１１ｃは、モニタγをベースに好ましい階調となるよう全体のトーンを補正するγ補正処理を行うとともに、局所的なコントラスト補正処理を行う。この局所コントラスト補正処理には様々な方法があるが、その代表的なものとして、ヒストグラム平滑化（ヒストグラム等化）がある。ヒストグラム平滑化については、図２ないし図６を用いて後述する。また、階調補正処理部１１１ｃは、累積ヒストグラムを用いて、コントラスト補正を行う階調補正処理部として機能する（例えば、後述する図２のＳ９、Ｓ１１参照）。
【００３８】
色再現処理部１１１ｄは、画像の色味を整える処理であり、ガンマ補正処理、および画像の色味を変化させる色再現処理を行う。ＮＲ処理部１１１ｅは、高周波を低減するフィルタを用いたり、またコアリング処理等により、画像データのノイズを低減する処理を行う。
【００３９】
画像処理部１１１は、必要に応じて、各部１１１ａ〜１１１ｄを選択し各処理を行い、画像処理を施された画像データは、バス１０９を介してＳＤＲＡＭ１２７に一時記憶される。画像処理部１１１は、ＡＳＩＣ（Application Specific Integrated Circuit）やＤＳＰ（Digital Signal Processor）等、種々のハードウエアで構成されるが、その一部または全部をマイクロコンピュータ１２１によってソフトウエアによって処理するようにしてもよい。
【００４０】
ＡＥ処理部１１３は、被写体輝度を測定し、バス１０９を介してマイクロコンピュータ１２１に出力する。被写体輝度測定のために専用の測光センサを設けても良いが、本実施形態においては、撮像素子１０２の出力に基づく画像データを用いて被写体輝度を算出する。ＡＦ処理部１１５は、画像データから高周波成分の信号を抽出し、積算処理により合焦評価値を取得し、バス１０９を介してマイクロコンピュータ１２１に出力する。本実施形態においては、いわゆるコントラスト法によって撮影レンズ２０１のピント合わせを行う。
【００４１】
ＪＰＥＧ処理部１１７は、画像データの記録媒体１３１への記録時に、ＳＤＲＡＭ１２７から画像データを読み出し、この読み出した画像データをＪＰＥＧ圧縮方式に従って圧縮し、この圧縮した画像データをＳＤＲＡＭ１２７に一旦記憶する。マイクロコンピュータ１２１は、ＳＤＲＡＭ１２７に一時記憶されたＪＰＥＧ画像データに対して、ＪＰＥＧファイルを構成するために必要なＪＰＥＧヘッダを付加してＪＰＥＧファイルを作成し、この作成したＪＰＥＧファイルをメモリＩ／Ｆ１２９を介して記録媒体１３１に記録する。
【００４２】
また、ＪＰＥＧ処理部１１７は、画像再生表示用にＪＰＥＧ画像データの伸張も行う。伸張にあたっては、記録媒体１３１に記録されているＪＰＥＧファイルを読み出し、ＪＰＥＧ処理部１１７において伸張処理を施した上で、伸張した画像データをＳＤＲＡＭ１２７に一時記憶する。なお、本実施形態においては、画像圧縮方式としては、ＪＰＥＧ圧縮方式を採用するが、圧縮方式はこれに限らずＴＩＦＦ、ＭＰＥＧ、Ｈ．２６４等、他の圧縮方式でも勿論かまわない。
【００４３】
マイクロコンピュータ１２１は、このカメラ全体の制御部としての機能を果たし、後述するフラッシュメモリ１２５に記憶されているプログラムに従って、カメラ本体１００と交換レンズ２００内の各部を制御することにより、カメラ全体の各種シーケンスを総括的に制御する。
【００４４】
マイクロコンピュータ１２１は、入力された画像データの輝度分布として、所定の階調数の各々の階調に対する頻値をカウントしヒストグラムを生成するヒストグラム生成部として機能する（例えば、後述する図２のＳ５、図７、図９参照）。また、マイクロコンピュータ１２１は、ヒストグラムのカウント値を近隣の階調に分配する分配処理部として機能する（例えば、後述する図９のＳ５３〜Ｓ６９参照）。
【００４５】
また、マイクロコンピュータ１２１は、ヒストグラム生成部により得られたヒストグラムを低階調側から累積して、累積ヒストグラムを生成する累積ヒストグラム生成部として機能する（例えば、後述する図２のＳ７参照）。また、マイクロコンピュータ１２１は、上述の分配処理部として機能する場合には、カウント値を近隣の階調に分配する際、所定の階調数に対し、分配量を固定にする（例えば、後述する図１１のＳ７９〜Ｓ８３参照）。
【００４６】
マイクロコンピュータ１２１は、分配処理部として機能する場合には、撮像部の撮像動作が静止画撮影である場合には、動画撮影である場合と比べて上記分配量を固定にする階調数を同じ、もしくは少なくする（例えば、後述する図１４のＳ４４ａ、Ｓ４４ｂ参照）。また、画像処理部１１１は、画像内のエリアを取得する検出部としての機能を果たし、画像データの局所領域が、検出部において検出されたエリア内にあるかどうかを判定するエリア判定部として機能し、ヒストグラム生成部は、画像データの局所領域毎のヒストグラムを生成し、分配処理部は、エリア判定部において局所領域がエリア内と判定された場合には、分配量を固定にする階調数を変更する（例えば、後述する図１５のＳ４８ａ〜Ｓ４８ｃ参照）。
【００４７】
マイクロコンピュータ１２１は、分配処理部として機能する場合には、固定の分配量は、その分配対象となる階調数を用いて、Ｗ１＝１／（ｓｔａｂＮ＋１）とするように分配する（例えば、図９のＳ４５、（３）式参照）。また、分配処理部において、分配量を固定にする階調に隣接する階調に対しては、固定にする階調範囲に対する入力画像の画素値を元に、分配量を変動させ、それにより得られた分配量を分配する。また、分配処理部において、画素値により変動する分配量の最大量は、固定の分配量及び固定の分配を行う階調数を用いて、Ｗ２３＝１−（Ｗ１×ｓｔａｂＮ）とする（例えば、図１１のＳ８５参照）。
【００４８】
マイクロコンピュータ１２１には、前述のＩ／Ｆ９９９以外に、操作部１２３およびフラッシュメモリ１２５が接続されている。操作部１２３は、電源釦、レリーズ釦、動画釦、再生釦、メニュー釦、十字釦、ＯＫ釦等、各種入力釦や各種入力キー等の操作部材を含み、これらの操作部材の操作状態を検知し、検知結果をマクロコンピュータ１２１に出力する。マイクロコンピュータ１２１は、操作部１２３からの操作部材の検知結果に基づいて、ユーザの操作に応じた各種シーケンスを実行する。
【００４９】
フラッシュメモリ１２５は、電気的に書き換えることのできる不揮発性メモリであり、マイクロコンピュータ１２１の各種シーケンスを実行するためのプログラムを記憶している。マイクロコンピュータ１２１は、前述したように、このプログラムに基づいて当該デジタルカメラの制御を行う。また、フラッシュメモリ１２５は、ヒストグラム生成（図９参照）の際に使用する初期設定値、（Ｘｈ，Ｙｈ）、Ｎ、Ｏｆｆｓｅｔ、傾き安定化階調数（ｓｔａｂＮ）、傾き安定化階調重み係数（Ｗ１）、隣接階調分配重みテーブル（Ｗｔａｂｌｅ）等の調整値等を記憶している。
【００５０】
ＳＤＲＡＭ１２７は、画像データ等の一時記憶用の電気的に書き換えることのできる揮発性メモリである。このＳＤＲＡＭ１２７は、Ａ／Ｄ変換部１０４から出力された画像データや、画像処理部１１１やＪＰＥＧ処理部１１７等において処理された画像データを一時記憶する。
【００５１】
メモリＩ／Ｆ１２９は、記録媒体１３１に接続されており、画像データや画像データに添付されたヘッダ等のデータを、記録媒体１３１に書き込みおよび読出しの制御を行う。記録媒体１３１は、カメラ本体に脱着することができるメモリであるが、これに限らず、ハードディスク等、カメラ本体に内蔵のメモリであってもよい。
【００５２】
ＬＣＤドライバ１３３は、ＬＣＤ１３５に接続されており、ＳＤＲＡＭ１２７や記録媒体１３１から読み出され、ＪＰＥＧ処理部１１７によって伸張された画像データに基づいて画像をＬＣＤ１３５において表示させる。ＬＣＤ１３５は、カメラ本体１００の背面等に配置されたＬＣＤパネルを含み、画像表示を行う。画像表示としては、撮影直後、記録される画像データを短時間だけ表示するレックビュー表示、記録媒体１３１に記録された静止画や動画の画像ファイルの再生表示、およびライブビュー表示等の動画表示が含まれる。なお、圧縮されている画像データを表示する場合には、前述したように、ＪＰＥＧ処理部１１７によって伸張処理を施した後に表示する。また、表示部としては、ＬＣＤに限らず、有機ＥＬ等、他の表示パネルを採用しても勿論かまわない。
【００５３】
次に、図２ないし図６を用いて、ヒストグラム平滑化を用いた局所コントラスト補正処理について説明する。図２は、ヒストグラム平滑化による局所コントラスト補正の動作を示すフローチャートである。このフロー（図７、図９、図１１、および図１４に示すフローチャートも同様）は、マイクロコンピュータ１２１が、フラッシュメモリ１２５に記憶されたプログラムに従ってカメラ内の各部を制御することにより実行する。
【００５４】
図２に示すヒストグラム平滑化のフローに入ると、まず輝度画像生成を行う（Ｓ１）。ここでは、撮像素子１０２から出力されるＲＧＢ画像データから輝度画像を生成する。輝度画像は、下記（１）式にて輝度データを算出してもよく、またＲＧＢ画像の内のＧ画像を輝度画像として用いてよく、Ｒ、Ｇ、Ｂの各画素値の内の最大値を輝度画像としてもよい。
Ｙ＝０．２９９×Ｒ＋０．５８７×Ｇ＋０．１１４×Ｂ  ・・・（１）
【００５５】
輝度画像を生成すると、次に、縮小画像の生成を行う（Ｓ３）。ここでは、ステップＳ１において生成した輝度画像の内、所定の領域を加算平均して縮小画像の生成を行う。
図３および図４に、輝度画像から縮小画像を生成する例を示す。この例では、撮像素子１０２から、横４０００画素、縦３０００画素の輝度画像が出力され、この輝度画像から、横１６０画素、縦１２０画素の領域（ブロック）内をそれぞれ加算平均し、縮小画像を生成する。以降、１６０×１２０の縮小画像の１ブロックを縮小画像の１画素として表現する。なお、これらの数値は、例示であり、適宜変更してもよい。
【００５６】
この縮小画像の生成は、撮像素子１０２から画像データを読み出す際に、またはアナログ処理部１０３が、ブロック毎に加算平均を行って縮小画像を出力するようにしてもよい。またＡ／Ｄ変換部１０５によってデジタル化された画像データを画像処理部１１１またはマイクロコンピュータ１２１がブロック毎に加算平均を行って縮小画像を生成するようにしてもよい。
【００５７】
縮小画像を生成すると、次に、ヒストグラム生成を行う（Ｓ５）。ここでは、マイクロコンピュータ１２１が、縮小画像の画素毎にヒストグラムを生成する。対象とする画素Ｐ１（図４のグレーで示す画素）についてヒストグラムを生成する際には、その周囲を含めた所定の範囲Ｒ１（図４の破線の領域）での画素値を用いてヒストグラムを生成する。このようにして得られたヒストグラムの例を図５（ａ）に示す。この例では、縮小画像の画素値を８つの値の範囲のいずれに入るかを判定し、８階調のヒストグラムを生成している。なお、ヒストグラム生成の詳細は、図７および図８を用いて後述する。
【００５８】
ヒストグラムの生成を行うと、次に、累積ヒストグラムを生成する（Ｓ７）。ここでは、マイクロコンピュータ１２１が、ステップＳ５で生成したヒストグラムに基づいて累積ヒストグラムを生成する。累積ヒストグラムは、ヒストグラムの各階調の頻値を累積加算したときに得られる特性である。図５（ｂ）に、図５（ａ）の例に対応する累積ヒストグラムを示す。
【００５９】
累積ヒストグラムを生成すると、次に、コントラスト補正を行う（Ｓ９）。ここでは、階調補正処理部１１１ｃが、ステップＳ７で生成した累積ヒストグラムに基づいてコントラスト補正を行う。縮小画像の１画素は、図４に示すように、縮小前の輝度画像での所定の領域の１つに対応している。そこで、図４での所定の領域に含まれる画素値のバラツキが、図５（ｂ）の横軸に示す両矢印の範囲だとすると、この累積ヒストグラムの特性を入出力の特性曲線として変換することで、図５（ｂ）の縦軸に示す両矢印の範囲に補正される。
【００６０】
つまり、コントラストが補正され、この図５に示す例では、コントラストが強調される。すなわち、横軸（画素値）の矢印の範囲に対して、縦軸（補正後の画素値）の矢印の範囲が大きいことにより、コントラスト強調がなされている。したがって、図５（ａ）に示すヒストグラムに応じたコントラスト補正ができる。この処理を、所定の領域毎（局所領域毎）に行うことにより、局所コントラスト補正処理となる。
【００６１】
局所コントラスト補正処理を行うにあたって、実際には、領域の切り替わり境界での連続性を考慮し、図６に示すような近傍の累積ヒストグラムを用いたコントラスト補正も行う。補間処理を行った結果をコントラスト補正結果とすることで、連続性を保っている。
【００６２】
ステップＳ９において、コントラスト補正を行うと、次に、ゲイン生成・乗算処理を行う（Ｓ１１）。ここでは、階調補正処理部１１１ｃが、ステップＳ９でのコントラスト補正の結果を用いて、ゲイン生成・乗算処理を行う。具体的には、補正強度を調節するため、ステップＳ９で得られたコントラスト補正後の画像と、図３に示すコントラスト補正前の輝度画像との比を算出することにより、画素毎のゲイン値を算出する。そして、この算出されたゲイン値に補正強度調整値を加味したものを、入力データであるＲＧＢ画像に乗算することで、最終的な局所コントラスト補正画像を生成する。
【００６３】
このように、本実施形態におけるヒストグラム平滑化による局所コントラスト補正処理では、ヒストグラムから累積ヒストグラムを生成し、この累積ヒストグラムを用いてコントラスト補正画像を生成し、これに基づいてゲインを算出し、この算出されたゲインを撮像素子からの画像データに乗算処理している。
【００６４】
次に、ステップＳ５（図２参照）のヒストグラム生成の動作について説明する。まず、図７に示すフローチャートを用いて、本実施形態におけるヒストグラム生成の基本的動作について説明する。
【００６５】
図７に示すフローに入ると、まず、初期設定値の読み込みを行う（Ｓ２１）。ここでは、初期設定値の読込みとして、ヒストグラムを生成する領域設定値（Ｘｈ，Ｙｈ）や、作成するヒストグラムの階調数設定値（Ｎ）を読み込む。階調数設定値（Ｎ）は、図５（ａ）に示した例では、Ｎ＝８である。
【００６６】
初期設定値の読み込みを行うと、次に、ヒストグラム生成領域データを取得する（Ｓ２３）。ヒストグラム領域設定値は、対象画素を中心としたＸｈ×Ｙｈの領域である。ここでは、説明の都合上、（Ｘｈ，Ｙｈ）＝（５，５）、Ｎ＝８が設定されているものとする。領域を読み込むと、読み込んだ領域設定値を用いて、ヒストグラム生成に用いる画像データを取得する。図８（ａ）には、取得した５×５画素のデータを示す。
【００６７】
ヒストグラム生成領域データを取得すると、次に、初期化する（Ｓ２５）。ここでは、初期化として、画素をスキャンする際のカウンタ（ｉ，ｊ）を（０，０）に、各画素の階調位置を表す変数（ｎ）、及びヒストグラムとなる配列Ｐ（Ｎ）“０”に初期化する。
【００６８】
初期化すると、ステップＳ２７〜Ｓ３９において、設定された領域におけるヒストグラムを生成する。まず、（ｉ，ｊ）位置の画素値を取得する（Ｓ２７）。ここでは、（ｉ，ｊ）位置の画素値を取得するが、最初に処理する場合には、図８（ａ）に示す画像データのうち、（０，０）位置に対応する画素値を取得する。
【００６９】
（ｉ，ｊ）位置の画素を取得すると、次に、階調位置（ｎ）の算出を行う（Ｓ２９）。ここでは、ステップＳ２７において取得した画素値を用いて、Ｎ階調（例示では８階調）に分割したとき、どの階調位置に属するかを判別し、階調位置（ｎ）とする。具体的には、取得した画素値が１２ｂｉｔデータ（４０９６階調）場合には、判別手段としては、図８（ｂ）に示すようなテーブルに基づいて、階調位置（ｎ）を算出してもよい。また、図８（ｃ）に示すように、画素値の上位３ｂｉｔを読み込み、その値を階調位置（ｎ）としてもよい。
【００７０】
階調位置（ｎ）を算出すると、次に、ヒストグラム頻値の加算を行う（Ｓ３１）。ここでは、ステップＳ２９において算出した階調位置（ｎ）に対応するヒストグラム配列Ｐ（ｎ）に頻値として１を加算する（Ｐ（ｎ）＝Ｐ（ｎ）＋１）。ヒストグラム頻値の加算を行うと、画素位置のカウンタｉをインクリメントする（Ｓ３３）。
【００７１】
カウンタｉをインクリメントすると、ｉ≧Ｘｈか否かを判定する（Ｓ３５）。ここでは、カウンタｉがＸｈ以上か、図８（ａ）に示す例では、ｉが“５”以上か否かを比較する。ｉがＸｈ以上であれば、領域内の横方向の端に達したことであることから、ステップＳ３７に進んで縦方向に１画素分移動し、Ｘｈ未満であれば、ステップＳ３３でインクリメントしたｉに応じた（ｉ，ｊ）位置の画素値を、ステップＳ２７に戻って取得する。
【００７２】
ステップＳ３５における判定の結果、ｉ≧Ｘｈの場合には、カウンタｊをインクリメントし、カウンタｉを０にリセットする（Ｓ３７）。続いて、ｊ≧Ｙｈか否かを判定する（Ｓ３９）。ここでは、カウンタｊがＹｈ以上か、図８（ａ）に示す例では、ｊが“５”以上か否かを比較する。比較の結果、Ｙｈ未満であれば、ステップＳ３７でインクリメントしたｊに応じた（ｉ，ｊ）位置の画素値を、ステップＳ２７に戻って取得する。一方、ｊがＹｈ以上であれば、領域内の縦方向の端に達し、領域内の全画素についてスキャンを行い、ヒストグラム頻値を算出したことから、この時点でのヒストグラム配列Ｐ（ｎ）が、図８（ａ）のヒストグラム領域におけるヒストグラム結果となる。
【００７３】
次に、図９に示すフローチャートを用いて、本実施形態におけるヒストグラム生成の動作について説明する。なお、図７のフローチャートと共通する部分については、簡略化して説明する。
【００７４】
図９に示すフローに入ると、初期設定値の読み込みを行う（Ｓ４１）。ここでは、初期設定値として、ヒストグラムを生成する領域設定値（Ｘｈ，Ｙｈ）、階調数設定値（Ｎ）に加えて、画素値に対するオフセット量（ｏｆｆｓｅｔ）を読み込む。このオフセット量は、階調幅の半分の値に相当する。例えば、画素値の精度が１２ｂｉｔ精度で階調数設定値（Ｎ）が８の場合、下記（２）式のような値となる。
ｏｆｆｓｅｔ＝（４０９６／８）／２＝２５６  ・・・（２）
【００７５】
初期設定値を読み込むと、次に、傾き安定化階調数（ｓｔａｂＮ）を読み込む（Ｓ４３）。ここでは、フラッシュメモリ１２５に記憶された傾き安定化階調数（ｓｔａｂＮ）を読み込む。傾き安定化階調数（ｓｔａｂＮ）は、露出変化が発生した場合でも、累積ヒストグラムの傾きを一定に保つ階調数の設定である。傾き安定化階調数が大きいと安定するものの、局所コントラスト効果が弱まる傾向となる。
【００７６】
傾き安定化階調数を読み込むと、次に、傾き安定化階調重み係数（Ｗ１）を算出する（Ｓ４５）。この重み係数は、傾き安定化階調数（ｓｔａｂＮ）に応じて決定され、下記（３）式より算出される。なお、重み係数は、傾き安定化階調数に応じて算出した値を、フラッシュメモリ１２５に記憶しておき、読み出すようにしてもよい。
Ｗ１＝１／（ｓｔａｂＮ＋１）  ・・・（３）
【００７７】
傾き安定化階調重み係数を算出すると、次に、隣接階調分配重みテーブル（Ｗｔａｂｌｅ）を読み込む（Ｓ４７）。隣接階調は、傾き安定化階調に隣接する階調であり、その階調へ頻値を加算する際に、この分配重みテーブルを用いる。隣接階調分配重みテーブルは、フラッシュメモリ１２５に記憶されているので、これを読み出す。
【００７８】
隣接階調分配重みテーブルの読み込みを行うと、次に、ヒストグラム生成領域データを取得する（Ｓ４９）。ここでは、ステップＳ２３（図７参照）と同様に、ステップＳ４１において読み込んだ（Ｘｈ，Ｙｈ）、Ｎを用いて、ヒストグラム生成領域の画像データを取得する。
【００７９】
ステップＳ４９において、ヒストグラム生成領域のデータを取得すると、次に、初期化を行う（Ｓ５１）。ここでは、ステップＳ２５（図７参照）と同様に、ｉ＝０，ｊ＝０，Ｐ（Ｎ）＝０とする。
【００８０】
続いて、（ｉ，ｊ）位置の画素値（ｍ）を取得する（Ｓ５３）。ここでは、ステップＳ２７（図７参照）と同様に、（ｉ，ｊ）位置の画素値を取得するが、最初に処理する場合には、（０，０）位置に対応する画素値を取得する。
【００８１】
（ｉ，ｊ）位置の画素値（ｍ）を取得すると、次に、安定化階調数（ｓｔａｂＮ）＝偶数か否かを判定する（Ｓ５５）。ここでは、ステップＳ４３において読み込んだ安定化階調数（ｓｔａｂＮ）に基づいて判定する。
【００８２】
ステップＳ５５に判定の結果、安定化階調数（ｓｔａｂＮ）が偶数の場合には、ｍ＝ｍ−ｏｆｆｓｅｔを算出する（Ｓ５７）。ここでは、画素値（ｍ）に対しオフセット量（ｏｆｆｓｅｔ）を減算する。オフセット量を減算する目的は、図１０（ａ）に示すように、傾き安定化階調数（ｓｔａｂＮ）が奇数の場合には、画素値に対応する階調位置（ｎ）内で分配重みを算出するが、そこへのオフセットを減算することで、安定化階調数が偶数の場合でも、奇数の場合と同様に処理を行うことができる。
【００８３】
すなわち、図１０（ａ）はｓｔａｂＮが奇数の場合を示す。この図において、横軸は画素値であり、画素値ＴＨ２〜ＴＨ３が傾き安定化階調（ｓｔａｂＮ＝１）Ｓ１の範囲であり、画素値ＴＨ１〜ＴＨ２とＴＨ３〜ＴＨ４が隣接階調の領域Ｎ１、Ｎ２である。この傾き安定化階調（ｓｔａｂＮ）Ｓ１である画素値ＴＨ２〜ＴＨ３の範囲が隣接階調への分配重みを算出する画素値範囲Ｒ１０である。
【００８４】
図１０（ｂ）はｓｔａｂＮが偶数の場合を示す。この図においても、横軸は画素値であり、画素値ＴＨ１１〜ＴＨ１２が傾き安定化階調（ｓｔａｂＮ＝２）Ｓ２、画素値ＴＨ１２〜ＴＨ１３が傾き安定化階調（ｓｔａｂＮ＝２）Ｓ３の範囲であり、画素値ＴＨ１０〜ＴＨ１１とＴＨ１３〜ＴＨ１４が隣接階調の領域Ｎ３、Ｎ４である。傾き安定化階調の範囲Ｓ２、Ｓ３にオフセット量を減算することにより、この傾き安定化階調（ｓｔａｂＮ）Ｓ１である画素値ＴＨ２〜ＴＨ３の範囲Ｒ１０と同じ範囲で、隣接階調への分配重みを算出することができる。すなわち、安定化階調数ｓｔａｂＮが偶数の場合であっても、奇数の場合と同様の分配重みで処理することができる。
【００８５】
ステップＳ５７において、ｍ＝ｍ−ｏｆｆｓｅｔを算出すると、またはステップＳ５５における判定の結果、ｓｔａｂＮが偶数でなかった場合には、次に、階調位置（ｎ）の階調範囲の算出を行う（Ｓ５９）。ここでは、画素値（ｍ）に基づいて階調位置（ｎ）を算出する際に使用する画素値の範囲、すなわち、画素値の下限値（ｎ＿ｌｏｗ）と上限値（ｎ＿ｈｉｇｈ）を算出する。
【００８６】
ステップＳ５９において、階調位置の階調範囲を算出すると、次に、傾き安定化階調及び隣接階調の頻値設定を行う（Ｓ６１）。図１１を用いて詳述する。
【００８７】
続いて、ステップＳ３３と同様に、画素位置のカウンタｉをインクリメントする（Ｓ６３）。カウンタｉをインクリメントすると、ステップＳ３５と同様に、ｉ≧Ｘｈか否かを判定する（Ｓ６５）。Ｘｈ未満であれば、ステップＳ６３でインクリメントしたｉに応じた（ｉ、ｊ）位置の画素値を、ステップＳ５３に戻って取得する。ステップＳ６５における判定の結果、ｉ≧Ｘｈの場合には、ステップＳ３７と同様に、カウンタｊをインクリメントし、カウンタｉを０にリセットする（Ｓ６７）。
【００８８】
続いて、ステップＳ３９と同様に、ｊ≧Ｙｈか否かを判定する（Ｓ６９）。判定の結果、Ｙｈ未満であれば、ステップＳ６７でインクリメントしたｊに応じた（ｉ，ｊ）位置の画素値を、ステップＳ５３に戻って取得する。一方、ｊがＹｈ以上であれば、領域内の全画素についてスキャンを行い、ヒストグラム頻値を算出したことから、この時点でのヒストグラム配列Ｐ（ｎ）がヒストグラム領域におけるヒストグラム結果となる。
【００８９】
次に、図１１に示すフローチャートを用いて、ステップＳ６１（図９参照）の傾き安定化階調及び隣接階調の頻値設定の詳細について説明する。
【００９０】
図１１のフローに入ると、まず、初期化を行う（Ｓ７１）。ここでは、初期化として、ｋ＝０、ｎ’＝０を行う。
【００９１】
初期化を行うと、次に、傾き安定化階調数（ｓｔａｂＮ）が偶数か否かを判定する（Ｓ７３）。ステップＳ４３（図９参照）において、傾き安定化階調数（ｓｔａｂＮ）を読み込んでいるので、この読み込まれた傾き安定化階調数に基づいて判定する。
【００９２】
ステップＳ７３における判定の結果、傾き安定化階調数（ｓｔａｂＮ）が偶数であった場合には、ｎ’＝ｓｔａｂＮ／２を算出する（Ｓ７５）。一方、ステップＳ７３における判定の結果、傾き安定化階調数（ｓｔａｂＮ）が奇数であった場合には、ｎ’＝（ｓｔａｂＮ−１）／２を算出する（Ｓ７７）。この変数ｎ’は、画素値（ｍ）に基づいて算出した階調位置（ｎ）を中心にして、傾き安定化階調数（ｓｔａｂＮ）に基づく傾き安定化階調を設定する際に使用する。
【００９３】
ステップＳ７５、Ｓ７７において変数ｎ’を算出すると、次に、ｋ＜ｓｔａｂＮか否かを判定する（Ｓ７９）。ここでは、ステップＳ４３において読み込んだ傾き安定化階調数（ｓｔａｂＮ）と、変数ｋを比較する。変数ｋは、ステップＳ７１においてｋ＝０に初期化されており、後述するステップＳ８３においてインクリメントされる。
【００９４】
ステップＳ７９における判定の結果、傾き安定化階調数（ｓｔａｂＮ）が変数ｋよりも大きい場合には、傾き安定化階調へのヒストグラム頻値を加算する（Ｓ８１）。ここでは、傾き安定化階調へのヒストグラム頻値として、階調位置（ｎ＋ｎ’−ｋ）に重み係数（Ｗ１）を加算する。
【００９５】
ステップＳ８１において、傾き安定化階調にヒスグラム頻値の加算をすると、次に、変数ｋをインクリメントする（Ｓ８３）。変数ｋをインクリメントすると、ステップＳ７９に戻り、前述の判定を行う。
【００９６】
ステップＳ７９〜Ｓ８３においては、変数ｋが傾き安定化階調数（ｓｔａｂＮ）より大きくなるまで、変数ｋの値を増加させている。
【００９７】
例えば、傾き安定化階調数（ｓｔａｂＮ）が“３”であり、階調位置（ｎ）が“５”となる場合には、重み係数（Ｗ１）は（３）式より“０．２５”、ｎ’＝１となっている。その際は、階調位置“５”を中心に３つの階調が傾き安定化階調となるため、階調位置“４”、“５”、“６”に対するヒストグラム頻値として、それぞれ“０．２５”を加算する。
【００９８】
また、傾き安定化階調数（ｓｔａｂＮ）が“２”であり、階調位置（ｎ）が“５”となる場合には、重み係数（Ｗ１）は（３）式より“０．３３”、ｎ’＝１となっている。その際は、階調位置“５”を中心に２つの階調が傾き安定化階調となるため、階調位置“５”、“６”に対するヒストグラム頻値としてそれぞれ“０．３３”を加算する。
【００９９】
ステップＳ７９における判定の結果、変数ｋが傾き安定化階調数（ｓｔａｂＮ）より大きくなると、分配重み係数（Ｗ２、Ｗ３）の算出を行う（Ｓ８５）。分配重み係数（Ｗ２、Ｗ３）は、後段の隣接階調へのヒストグラム頻値加算の際に用いるもので、ステップＳ４７において読み込んだ分配重みテーブル（Ｗｔａｂｌｅ）と、ステップＳ５３からＳ５９において読み込み又は算出した画素値（ｍ）、階調位置（ｎ）と、下限値（ｎ＿ｌｏｗ）と上限値（ｎ＿ｈｉｇｈ）を用いて算出する。
【０１００】
図１２（ａ）に分配重みテーブル（Ｗｔａｂｌｅ）の例を示す。重みテーブルの上限は、重み係数（Ｗ１）と傾き安定化階調数（ｓｔａｂＮ）を用いて、“１−Ｗ１×ｓｔａｂＮ”とし、重み係数Ｗ２は分配重みテーブル（Ｗｔａｂｌｅ）から得られる縦軸に示すＷｅｉｇｈｔをそのまま使用する。また、重み係数Ｗ３は分配重みテーブル（Ｗｔａｂｌｅ）から得られる縦軸に示すＷｅｉｇｈｔと、テーブルの上限値を用いて、下記（４）式を用いて算出する。
Ｗ３＝（１−（Ｗ１×ｓｔａｂＮ））−Ｗｅｉｇｈｔ  ・・・（４）
【０１０１】
分配重みテーブル（Ｗｔａｂｌｅ）から得られた重み係数（Ｗ２）は、傾き安定化階調に対して、画素値の小さい側に接する隣接階調への重み係数であり、一方、重み係数（Ｗ３）は、傾き安定化階調に対して、画素値の大きい側に接する隣接階調への重み係数となる。
【０１０２】
ステップＳ８５において、分配重み係数（Ｗ２、Ｗ３）の算出を行うと、次に、隣接階調へのヒストグラム頻値加算を行う（Ｓ８７）。ここでは、ステップＳ８５において算出された分配重み係数（Ｗ２、Ｗ３）を用いて、隣接階調へのヒストグラム頻値を下記（５）（６）式により行う。すなわち、階調位置（ｎ＋ｎ’−ｓｔａｂＮ）に重み係数（Ｗ２）を加算し、階調位置（ｎ＋ｎ’＋１）に重み係数（Ｗ３）を加算する。
Ｐ（ｎ＋ｎ’−ｓｔａｂＮ）＝Ｐ（ｎ＋ｎ’−ｓｔａｂＮ）＋Ｗ２  ・・・（５）
Ｐ（ｎ＋ｎ’＋１）＝Ｐ（ｎ＋ｎ’＋１）＋Ｗ３  ・・・（６）
【０１０３】
結果として、すべての重み係数の総和（Ｗ１×ｓｔａｂＮ＋Ｗ２＋Ｗ３）は“１”となる。図１２（ｂ）に示すように、傾き安定化階調Ｓ２、Ｓ３に対して重み係数（Ｗ１）が加算され、隣接階調Ｎ３、Ｎ４に対しては、重み係数（Ｗ２）（Ｗ３）が加算されたことになる。なお、図１２（ｂ）において、Ｒ１０は、隣接階調への分配重みを算出する画素値範囲を示し、Ｒｏｆｆは、ステップＳ４１に読み込んだ値であり、階調幅の半分の値に相当する。
【０１０４】
次に、図１３を用いて、本実施形態におけるヒストグラムと累積ヒスグラムについて説明する。図１３において左側の（ａ）（ｂ）（ｃ）（ｄ）は、図１６（ｂ）に示す全面が一様な輝度の単一平面の被写体において露出変化した際の縮小画像の画素値Ｖ１〜Ｖ４に対応したヒストグラムを示し、右側の（ａ’）（ｂ’）（ｃ’）（ｄ’）は、図１６（ｂ）の縮小画像の画素値Ｖ１〜Ｖ４に対応する累積ヒストグラムを示す。
【０１０５】
図１３に示す例は、傾き安定化階調数（ｓｔａｂＮ）が“１”、階調数設定値（Ｎ）が“８”、つまり０〜７までの８階調とした場合を示している。また、分配重みテーブル（Ｗｔａｂｌｅ）は、図１２（ａ）に示すテーブルを使用する。この場合、傾き安定化階調が１つのため、画素値が属する階調位置（ｎ）に対する頻値加算時に、重み係数Ｗ１が加算され、階調位置（ｎ−１）に対する頻値加算時に重み係数（Ｗ２）が、階調位置（ｎ＋１）に対する頻値加算時に重み係数（Ｗ３）が加算される。
【０１０６】
図１３（ａ）（ａ’）に示す例は、縮小画像の画素値Ｖ１の場合であり、この例では、画素値が属する階調位置（ｎ）＝３であり、その階調内での画素値の相対的な位置を元に図１２（ａ）に示す分配重みテーブルを用いて、重み係数を算出すると、下記のようになる。
重み係数Ｗ１は、Ｗ１＝１／（１＋１）＝０．５
重み係数Ｗ２は、Ｗ２＝０．１
重み係数Ｗ３は、Ｗ３＝０．４
【０１０７】
この重み係数より、ヒストグラムは下記のようになる。
Ｐ（０）＝０、Ｐ（１）＝０、Ｐ（２）＝０．１、Ｐ（３）＝０．５、Ｐ（４）＝０．４、Ｐ（５）＝０、Ｐ（６）＝０、Ｐ（７）＝０
【０１０８】
図１３（ｂ）（ｂ’）に示す例は、縮小画像の画素値Ｖ２の場合であり、この例では、画素値が属する階調位置（ｎ）＝３であり、その階調内での画素値の相対的な位置を元に図１２（ａ）に示す分配重みテーブルを用いて、重み係数を算出すると、下記のようになる。
重み係数Ｗ１は、Ｗ１＝１／（１＋１）＝０．５
重み係数Ｗ２は、Ｗ２＝０．２５
重み係数Ｗ３は、Ｗ３＝０．２５
【０１０９】
この重み係数より、ヒストグラムは下記のようになる。
Ｐ（０）＝０、Ｐ（１）＝０、Ｐ（２）＝０．２５、Ｐ（３）＝０．５、Ｐ（４）＝０．２５、Ｐ（５）＝０、Ｐ（６）＝０、Ｐ（７）＝０
【０１１０】
図１３（ｃ）（ｃ’）に示す例は、縮小画像の画素値Ｖ３の場合であり、この例では、画素値が属する階調位置（ｎ）＝３であり、その階調内での画素値の相対的な位置を元に図１２（ａ）に示す分配重みテーブルを用いて、重み係数を算出すると、下記のようになる。
重み係数Ｗ１は、Ｗ１＝１／（１＋１）＝０．５
重み係数Ｗ２は、Ｗ２＝０．４
重み係数Ｗ３は、Ｗ３＝０．１
【０１１１】
この重み係数より、ヒストグラムは下記のようになる。
Ｐ（０）＝０、Ｐ（１）＝０、Ｐ（２）＝０．４、Ｐ（３）＝０．５、Ｐ（４）＝０．１、Ｐ（５）＝０、Ｐ（６）＝０、Ｐ（７）＝０
【０１１２】
図１３（ｄ）（ｄ’）に示す例は、縮小画像の画素値Ｖ１４の場合であり、この例では、画素値が属する階調位置（ｎ）＝２であり、その階調内での画素値の相対的な位置を元に図１２（ａ）に示す分配重みテーブルを用いて、重み係数を算出すると、下記のようになる。
重み係数Ｗ１は、Ｗ１＝１／（１＋１）＝０．５
重み係数Ｗ２は、Ｗ２＝０．１
重み係数Ｗ３は、Ｗ３＝０．４
【０１１３】
この重み係数より、ヒストグラムは下記のようになる。
Ｐ（０）＝０、Ｐ（１）＝０．１、Ｐ（２）＝０．５、Ｐ（３）＝０．４、Ｐ（４）＝０、Ｐ（５）＝０、Ｐ（６）＝０、Ｐ（７）＝０
【０１１４】
このように、本実施形態においては、階調の位置に応じて前後の階調への頻値に分配している。このため、ヒストグラムが急激に変化することはない。また、特許文献１では、露出変化が生じた際にヒストグラム平滑処理が不安定となるが、本実施形態においては、傾き安定化階調を決め、その頻値をこの本実施形態において、“０．５”に固定した状態で前後の階調へ分配している。このため、累積ヒストグラムを生成した際にも、傾きが安定化されるため、露出変化が起きても安定したヒストグラム平滑化処理ができるようになる。
【０１１５】
次に、図１４に示すフローチャートを用いて、図９に示したヒストグラム生成の第１の変形例を説明する。本変形は、図９のフローチャートにおいて、ステップＳ４４ａおよびＳ４４ｂを追加している点が相違しており、他のステップは、図９のフローチャート同じであるので、相違点を中心に説明する。
【０１１６】
図９に示したフローチャートにおいては、主として動画の撮影時に対応できるように、傾き安定化階調数を設定していた。これに対して、本変形例においては、１ショットで画像を生成する静止画駆動への対応と、複数のフレームで映像を生成するライブビュー／動画への対応を切り換えるようにしている。
【０１１７】
複数のフレームで映像を作り出す場合、露出変化によるヒストグラム平滑化処理の影響が顕著に現われる。それに対して、１ショットで画像を生成する場合は、その１枚の画像で完結しているため、フレーム間の違いの影響はない。そこで、駆動モードが静止画駆動か否かを判別し、静止画駆動でない場合、つまり動画やライブビューの場合には、前段で読み込んだ傾き安定化階調数（ｓｔａｂＮ）をそのまま利用し、静止画駆動の場合、動画やライブビューの場合に比べ、傾き安定化階調数（ｓｔａｂＮ）を減らし局所コントラスト効果を強くする。
【０１１８】
すなわち、図１４に示すフローに入ると、初期設定値を読み込み（Ｓ４１）、傾き安定化階調数（ｓｔａｂＮ）を読み込む（Ｓ４３）。ここで、読み込む傾き安定化階調数（ｓｔａｂＮ）は、ライブビューや動画撮影時に適した値である。傾き安定化階調数を読み込むと、次に、駆動モードが静止画か否かを判定する（Ｓ４４ａ）。駆動モードは、撮影者が操作部１２３を介して設定するので、この設定状態に基づいて判定する。
【０１１９】
ステップＳ４４ａにおける判定の結果、駆動モードが静止画であった場合には、傾き安定化階調数（ｓｔａｂＮ）の変更を行う（Ｓ４４ｂ）。ここで、読み込む傾き安定化階調数（ｓｔａｂＮ）は、静止画撮影に適した値である。なお、本変形例においては、フラッシュメモリ１２５は、静止画撮影に適した傾き安定化階調数（ＳｔａｂＮ）も記憶している。
【０１２０】
ステップＳ４４ｂにおいて傾き安定化階調数（ｓｔａｂＮ）を変更すると、またはステップＳ４４ａにおける判定の結果、駆動モードが静止画でなかった場合には、ステップＳ４５以下を実行する。この処理は、図１４におけるフローと同様であり、ステップＳ４３またはＳ４４ｂで設定された傾き安定化階調数（ｓｔａｂＮ）を用いて、傾き安定化階調および隣接階調の頻値設定を行う。
【０１２１】
このように、本発明の第１の変形例においては、傾き安定化階調数（ｓｔａｂＮ）を、静止画と、ライブビュー／動画で切り替えているので、静止画撮影での効果を維持しつつ、動画・ライブビューでの安定性を保持した処理を行うことができる。
【０１２２】
次に、図１５に示すフローチャートを用いて、図９に示したヒストグラム生成の第２の変形例を説明する。本変形は、図９のフローチャートにおいて、ステップＳ４８ａないしＳ４８ｃを追加している点が相違しており、他のステップは、図９のフローチャート同じであるので、相違点を中心に説明する。
【０１２３】
図９に示したフローチャートにおいては、画面全体に対して局所領域毎にヒストグラム平滑化処理を行った。これに対して、本変形例では、画面内で特定の領域を検出した際、その検出エリア内と検出エリア外での対応を切り替えるようにしている。
【０１２４】
ヒストグラム平滑化など局所コントラスト強調は、風景などのシーンでは効果的に働くものの、人物の顔などの場合は、逆に違和感を生んでしまう場合がある。そこで、顔検出などで得られた検出情報を取得し、ヒストグラム生成時の対象画素、つまりヒストグラム生成領域の中心の画素が、検出範囲に入っている場合には、傾き安定化階調数（ｓｔａｂＮ）を増やし、局所コントラスト効果を弱め、一方、検出範囲に入っていない場合には、前段で読み込んだ傾き安定化階調数（ｓｔａｂＮ）をそのまま利用するようにしている。これによって、人物の顔と背景等、被写体に応じて、それぞれ最適なヒストグラム平滑化処理を行うことができる。
【０１２５】
具体的には、図１５のフローにおいて、ステップＳ４７において、隣接階調分配重みテーブルの読み込みを行うと、次に、対象画素が検出情報を取得する（Ｓ４８ａ）。ここでは、ヒストグラム平滑化の対象となる画素が、人物の顔の部分なのか、背景なのか等について判定する。画像処理部１１１は、画像データに基づいて顔を検出する顔検出部を有している場合には、この顔検出部の検出結果等を利用すればよい。また、画像処理部１１１やマイクロコンピュータ１２１等が、被写体対象を解析した結果を利用してもよい。
【０１２６】
ステップＳ４８ａにおいて、検出情報を取得すると、次に、対象画素が検出範囲内か否かを判定する（Ｓ４８ｂ）。ここでは、例えば、対象画素が人物の顔部分等か否かについて判定する。
【０１２７】
ステップＳ４８ｂにおける判定の結果、対象画素が検出範囲の場合には、傾き安定化階調数（ｓｔａｂＮ）を変更する（Ｓ４８ｃ）。例えば、対象画素が顔の部分であった場合には、傾き安定化階調数（ｓｔａｂＮ）を増やし、局所コントラスト効果を弱めるようにする。
【０１２８】
ステップ４８ｃにおいて傾き安定化階調数（ｓｔａｂＮ）を変更すると、またはステップＳ４８ｂにおける判定の結果、対象画素が検出範囲内にない場合には、ステップＳ４９以下を実行する。この処理は、図１４におけるフローと同様であり、ステップＳ４３またはＳ４８ｃで設定された傾き安定化階調数（ｓｔａｂＮ）を用いて、傾き安定化階調および隣接階調の頻値設定を行う。
【０１２９】
このように、本発明の第２の変形例においては、傾き安定化階調数（ｓｔａｂＮ）を、検出範囲の内と外で切り替えているので、人物の顔と背景等、異なる被写体に対しても最適なヒストグラム平滑化処理を行うことができる。
【０１３０】
以上説明したように、本発明の一実施形態や変形例においては、ヒストグラム生成の頻値カウントの際に、該当する階調、及びその近隣の階調に加算する値を所定値（例えば、０．５）に固定し、残り（例えば、０．５）を該当階調内でカウント対象の相対的な画素位置に応じて固定した階調に隣接する２つの階調に分配している（例えば、図１１のＳ７９〜Ｓ８７参照）。このため、ヒストグラムが急激に変化することがなくなり、ヒストグラム平滑化の結果を安定的に変化させることができる。
【０１３１】
なお、本発明の一実施形態や変形例においては、縮小画像の画素値に対して、ヒストグラム平滑化処理を行っていた。しかし、これに限らず、撮像素子１０２からの画像データに対して、直接、ヒストグラム平滑化処理を施すようにしても勿論かまわない。
【０１３２】
また、本発明の各実施形態においては、画像処理部１１１、ＡＥ処理部１１３、ＡＦ処理部１１５、ＪＰＥＧ処理部１１７を、マイクロコンピュータ１２１とは別体の構成としたが、各部の全部または一部をソフトウエアで構成し、マイクロコンピュータ１２１によって実行するようにしても勿論かまわない。また、ソフトウエアによる処理をハードウエアで処理するようにしても勿論かまわない。
【０１３３】
また、本実施形態においては、撮影のための機器として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話、スマートフォン、携帯情報端末（ＰＤＡ：Personal Digital Assist）、パーソナルコンピュータ（ＰＣ）、タブレット型コンピュータ、ゲーム機器等に内蔵されるカメラでも構わない。いずれにしても、画像データを平滑化処理する機器であれば、本発明を適用することができる。
【０１３４】
また、本明細書において説明した技術のうち、主にフローチャートで説明した制御に関しては、プログラムで設定できることが多く、記録媒体や記録部に収められる場合もある。この記録媒体、記録部への記録の仕方は、製品出荷時に記録してもよく、配布された記録媒体を利用してもよく、インターネットを介してダウンロードしたものでもよい。
【０１３５】
また、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず」、「次に」等の順番を表現する言葉を用いて説明したとしても、特に説明していない箇所では、この順で実施することが必須であることを意味するものではない。
【０１３６】
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１３７】
１００・・・カメラ本体、１０１・・・メカニカルシャッタ、１０３・・・撮像素子、１０５・・・アナログ処理部、１０７・・・Ａ／Ｄ変換部、１０９・・・バス、１１１・・・画像処理部、１１１ａ・・・ＷＢ補正部、１１１ｂ・・・同時化処理部、１１１ｃ・・・階調補正処理部、１１１ｄ・・・色再現処理部、１１１ｅ・・・ＮＲ処理部、１１３・・・ＡＥ処理部、１１５・・・ＡＦ処理部、１１７・・・ＪＰＥＧ処理部、１２１・・・マイクロコンピュータ、１２３・・・操作部、１２５・・・フラッシュメモリ、１２７・・・ＳＤＲＡＭ、１２９・・・メモリＩ／Ｆ、１３１・・・記録媒体、１３３・・・ＬＣＤドライバ、１３５・・・ＬＣＤ、２００・・・交換式レンズ、２０１・・・撮影レンズ、２０３・・・絞り、２０５・・・ドライバ、２０７・・・マイクロコンピュータ、２０９・・・フラッシュメモリ、９９９・・・Ｉ／Ｆ
【図１】
0006469448.tif 000002
【図２】
0006469448.tif 000003
【図３】
0006469448.tif 000004
【図４】
0006469448.tif 000005
【図５】
0006469448.tif 000006
【図６】
0006469448.tif 000007
【図７】
0006469448.tif 000008
【図８】
0006469448.tif 000009
【図９】
0006469448.tif 000010
【図１０】
0006469448.tif 000011
【図１１】
0006469448.tif 000012
【図１２】
0006469448.tif 000013
【図１３】
0006469448.tif 000014
【図１４】
0006469448.tif 000015
【図１５】
0006469448.tif 000016
【図１６】
0006469448.tif 000017
【図１７】
0006469448.tif 000018
【図１８】
0006469448.tif 000019
【図１９】
0006469448.tif 000020