(57)【要約】【課題】必要な記憶容量を削減すること。【解決手段】色域変換装置１００は、入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換装置であって、色域変換における色域圧縮強度を決定する強度決定手段１０４と、色域圧縮強度に応じて第１の閾値を決定する閾値決定手段１０４と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第１の特徴量を算出する特徴量算出手段１０４と、第１の特徴量から第１の閾値をオフセットした値を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、圧縮ゲインを取得するゲイン取得手段１０４と、入力画像に圧縮ゲインを適用することで、色域変換を行う色域変換手段１０４と、を備える。【選択図】図１
2014033275.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換装置であって、
前記色域変換における色域圧縮強度を決定する強度決定手段と、
前記色域圧縮強度に応じて第１の閾値を決定する閾値決定手段と、
前記入力画像における各画素の色について、前記出力色空間の色域境界からの距離に応じた第１の特徴量を算出する特徴量算出手段と、
前記第１の特徴量から前記第１の閾値をオフセットした値を、前記色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、前記圧縮ゲインを取得するゲイン取得手段と、
前記入力画像に前記圧縮ゲインを適用することで、前記色域変換を行う色域変換手段と、
を備えることを特徴とする色域変換装置。
【請求項２】
請求項１に記載の色域変換装置において、
前記ルックアップテーブルでは、入力値が大きいほど圧縮率が高くなるように、入力値に対して出力する圧縮ゲインが設定され、
前記第１の特徴量は、前記出力色空間の色域内では前記色域境界から遠いほど小さくなり、前記出力色空間の色域外では前記色域境界から遠いほど大きくなり、
前記閾値決定手段は、前記色域圧縮強度が大きいほど前記第１の閾値を小さくすることを特徴とする色域変換装置。
【請求項３】
請求項１または２に記載の色域変換装置において、
前記強度決定手段は、前記入力画像の色域と前記出力色空間の色域とを解析した解析結果に基づいて、前記色域圧縮強度を決定することを特徴とする色域変換装置。
【請求項４】
請求項３に記載の色域変換装置において、
前記強度決定手段は、前記入力画像における各画素の色について、前記出力色空間の色域境界からの距離に応じた第２の特徴量を算出し、前記第２の特徴量が第２の閾値より大きい画素数、または前記第２の特徴量に応じた画素分布の少なくともいずれかを、前記解析結果として用いることを特徴とする色域変換装置。
【請求項５】
請求項１〜４のいずれか一項に記載の色域変換装置において、
階調表現を重視する第１のモードと彩度を残して再現する第２のモードとからいずれか一方を選択する選択手段をさらに備え、
前記強度決定手段は、前記選択手段の選択結果に基づいて前記色域圧縮強度を決定することを特徴とする色域変換装置。
【請求項６】
被写体像を撮像する撮像手段と、
請求項１〜５のいずれか一項に記載の色域変換装置と、
を備え、
前記色域変換装置は、前記撮像手段により撮像された画像に対して前記色域変換を行うことを特徴とするデジタルカメラ。
【請求項７】
コンピュータを、請求項１〜５のいずれか一項に記載の色域変換装置として機能させることを特徴とする色域変換プログラム。
【請求項８】
入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換方法であって、
前記色域変換における色域圧縮強度を決定する強度決定工程と、
前記色域圧縮強度に応じて第１の閾値を決定する閾値決定工程と、
前記入力画像における各画素の色について、前記出力色空間の色域境界からの距離に応じた第１の特徴量を算出する特徴量算出工程と、
前記第１の特徴量から前記第１の閾値をオフセットした値を、前記色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、前記圧縮ゲインを取得するゲイン取得工程と、
前記入力画像に前記圧縮ゲインを適用することで、前記色域変換を行う色域変換工程と、
を有することを特徴とする色域変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法に関する。
【背景技術】
【０００２】
入力画像の色域より、当該入力画像を出力する出力デバイスの色域が狭い場合、出力デバイスの色域外に位置する色は、出力デバイスの色域の境界にクリップされ、階調変化が消失したり、色相が意図した色相から変化したりするといった問題が生じる。この様な問題を解決する手段として、ガマットマッピングという入力画像の色域から出力デバイスの色域に変換する方法が各種提案されている。例えば、圧縮方法（知覚的、絶対的、相対的）や圧縮のマップ方法などに応じたガマットマッピング調整データが複数用意されており、指示されたガマットマッピング調整データである出力調整用３Ｄ−ＬＵＴをデータ蓄積手段から取り込んで画像変換を行う画像処理装置が提案されている（特許文献１参照)。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開ＷＯ２００５／０７９０５６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
入力画像の色域から出力デバイスの色域へ圧縮する際、最適な色域圧縮強度は、出力デバイスの色域の大きさに対する入力画像の色域の大きさによって異なる。したがって、最適な色域圧縮強度で色域圧縮を行うためには、出力デバイスの色域の大きさに対する入力画像の色域の大きさに応じて、上記従来技術のようにガマットマッピング用の３Ｄ−ＬＵＴデータを複数用意しておくことが考えられる。しかしながら、このようにすると、複数の３Ｄ−ＬＵＴデータを記憶手段に記憶しておかなければならず、多くの記憶容量が必要となるというという問題があった。
【課題を解決するための手段】
【０００５】
（１）請求項１に記載の発明による色域変換装置は、入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換装置であって、色域変換における色域圧縮強度を決定する強度決定手段と、色域圧縮強度に応じて第１の閾値を決定する閾値決定手段と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第１の特徴量を算出する特徴量算出手段と、第１の特徴量から第１の閾値をオフセットした値を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、圧縮ゲインを取得するゲイン取得手段と、入力画像に圧縮ゲインを適用することで、色域変換を行う色域変換手段と、を備えることを特徴とする。
（２）請求項６に記載の発明によるデジタルカメラは、被写体像を撮像する撮像手段と、請求項１〜５のいずれか一項に記載の色域変換装置と、を備え、色域変換装置は、撮像手段により撮像された画像に対して色域変換を行うことを特徴とする。
（３）請求項７に記載の発明による色域変換プログラムは、コンピュータを、請求項１〜５のいずれか一項に記載の色域変換装置として機能させることを特徴とする。
（４）請求項８に記載の発明による色域変換方法は、入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換方法であって、色域変換における色域圧縮強度を決定する強度決定工程と、色域圧縮強度に応じて第１の閾値を決定する閾値決定工程と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第１の特徴量を算出する特徴量算出工程と、第１の特徴量から第１の閾値をオフセットした値を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、圧縮ゲインを取得するゲイン取得工程と、入力画像に圧縮ゲインを適用することで、色域変換を行う色域変換工程と、を有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、必要な記憶容量を削減することができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施の形態による色域変換装置（デジタルカメラ）の構成例を説明するブロック図である。
【図２】画像処理の流れを説明するフローチャートである。
【図３】ヒストグラムおよび累積ヒストグラムを説明する図である。
【図４】出力色空間の色域形状を説明する図である。
【図５】出力色空間の色域形状を説明する図である。
【図６】階調補正軸を説明する図である。
【図７】階調カーブを説明する図である。
【図８】彩度補正軸を説明する図である。
【図９】ガマットマッピングを説明する図である。
【図１０】圧縮ゲインを説明する図である。
【図１１】入力画像の色域と出力色空間の色域とを説明する図である。
【図１２】コンピュータを例示する図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明を実施するための形態について説明する。図１は、本発明の一実施形態による色域変換装置１００の構成を例示するブロック図である。本実施形態では、色域変換装置１００としてデジタルカメラを用いる例を説明する。デジタルカメラ１００は、操作部材１０１と、撮像レンズ１０２と、撮像素子１０３と、制御装置１０４と、メモリカードスロット１０５と、モニタ１０６とを備える。操作部材１０１は、使用者によって操作される種々の入力部材、例えば電源ボタン、レリーズボタン、ズームボタン、メニューボタンなどを含む。
【０００９】
撮像レンズ１０２は、被写体像を撮像素子１０３の撮像面に結像するように配置されている。撮像レンズ１０２は、図１では代表して１枚のレンズで表しているが、実際は複数の光学レンズから構成される。
【００１０】
撮像素子１０３は、例えばＣＭＯＳイメージセンサなどによって構成される。撮像素子１０３は、撮像レンズ１０２で結像される被写体像を撮像し、得られた画像信号を制御装置１０４へ出力する。撮像素子１０３には、Ｒ（赤）、Ｇ（緑）、Ｂ（青）がBayer配列されたカラーフィルタが形成されている。このため、デジタルカメラ１００で取得される画像の色は、機器依存のＲＧＢ表色系で表される。
【００１１】
制御装置１０４は、ＣＰＵ、メモリ、およびその他の周辺回路により構成され、デジタルカメラ１００が行う撮影動作を制御する。制御装置１０４を構成するメモリには、ＳＤＲＡＭやフラッシュメモリが含まれる。ＳＤＲＡＭは揮発性のメモリであって、制御装置１０４がプログラム実行時にプログラムを展開するためのワークメモリとして使用される。また、ＳＤＲＡＭは、データを一時的に記憶するためのバッファメモリとしても使用される。一方、フラッシュメモリは不揮発性のメモリであって、制御装置１０４が実行するプログラムや、プログラム実行時に読込まれる種々のパラメータなどを記憶する。
【００１２】
メモリカードスロット１０５は、記憶媒体としてのメモリカードを挿入するためのスロットである。制御装置１０４は、撮影処理を行うことによって生成した画像ファイルを、メモリカードスロット１０５に挿入されているメモリカードへ書込んで記録する。また、制御装置１０４は、メモリカードスロット１０５に挿入されているメモリカード内に記録されている画像ファイルを読込む。
【００１３】
モニタ１０６は、デジタルカメラ１００の背面に搭載された液晶モニタ（いわゆる背面モニタ）である。当該モニタ１０６には、メモリカードに記録されている画像ファイルに基づく再生画像や、デジタルカメラ１００を設定するための設定メニューなどが表示される。また、使用者が操作部材１０１を操作してデジタルカメラ１００を、背面液晶を使用する撮影モードに設定すると、制御装置１０４は、撮像素子１０３から時系列で取得した画像の表示用画像データをモニタ１０６に出力する。これにより、モニタ１０６にスルー画を表示することもできる。
【００１４】
本実施形態は、上記デジタルカメラ１００が実行する画像処理に特徴を有するので、以下の説明はこの画像処理を中心に行う。図２は、この画像処理の流れを説明するフローチャートである。なお、この画像処理は、制御装置１０４のメモリに記憶された画像処理プログラムに従って制御装置１０４が実行する処理である。
【００１５】
図２のステップＳ１において、制御装置１０４は、撮像素子１０３から読み出された撮像画像を取得して、ステップＳ２へ進む。なお、この撮像画像は、補間処理、ホワイトバランス処理、ノイズ除去処理などが行われる前のデータ（ＲＡＷデータ）である。
【００１６】
ステップＳ２において、制御装置１０４は、ステップＳ１で取得した撮像画像を、複数画素を加算して平均することにより縮小して、ＲＧＢ縮小画像を生成し、ステップＳ３へ進む。なお、このＲＧＢ縮小画像は、後述するガマットマッピングにおける色域圧縮レベル（色域圧縮強度）を決定するために用いられる画像である。
【００１７】
ステップＳ３において制御装置１０４は、ＲＧＢ縮小画像に対してホワイトバランス処理を施した後、撮像素子１０３固有のＲＧＢ空間から、画像を出力する色空間（出力色空間）へ変換する。この変換は、画像を出力する色空間（出力色空間）として例えばｓＲＧＢ空間を利用する場合、以下の式（１）〜（２）により行われる。なお、以下の式（１）〜（２）において、（Ｒ，Ｇ，Ｂ）は、式（１）の入力値（ＲＧＢ縮小画像）である。（Ｒ１，Ｇ１，Ｂ１）は、式（１）の出力値且つ式（２）の入力値である。（Ｒ２，Ｇ２，Ｂ２）は、式（２）の出力値である。また、ＭＲＧＢ２ＸＹＺは、撮像素子１０３固有のＲＧＢ空間からＸＹＺ空間（例えばＣＩＥ １９６４ ＸＹＺ）へ変換するための変換マトリックスであり、撮像素子１０３の分光感度特性や撮影時の照明条件などに基づいて決定される。また、ＭＸＹＺ２ｓＲＧＢは、ＸＹＺ空間からｓＲＧＢ空間へ変換するための変換マトリックスである。また、ＬＵＴ１は、標準のｓＲＧＢ空間におけるγ変換を行うためのルックアップテーブルである。
【数１】
2014033275.tif 000003
【数２】
2014033275.tif 000004
【００１８】
そして制御装置１０４は、ｓＲＧＢ空間に変換した縮小画像に対して、階調補正や彩度補正などの色補正処理を施して、ステップＳ４へ進む。なお、この色補正処理は、後述する本画像（この画像処理において実際に出力する画像）向けの色補正処理（ステップＳ１３〜Ｓ１４）と同等であることが望ましい。しかしながら、縮小画像は出力色空間の色域外の画素数や画素分布を算出するために用いられる画像であるため、処理負荷の都合から、本画像向けの色補正処理に近似した処理を施すようにしてもよい。この場合、特に出力色空間の色域境界付近から色域外に位置する色に対する処理が、より正確となる（すなわち色域内の色は色域内に補正され、色域外の色は色域外の色に補正される）ように、近似処理を決定する方が望ましい。
【００１９】
ステップＳ４において制御装置１０４は、ステップＳ３の色補正処理後のＲＧＢ縮小画像において、次式（３）を用いて、画素ごとに、Ｒ値Ｇ値Ｂ値の中で最も大きい値をmaxRGB(x,y)として算出する。なお、(x,y)は、画素の座標を示す。
maxRGB(x,y) = Max(R(x,y), G(x,y), B(x,y))   …（３）
【００２０】
また、制御装置１０４は、次式（４）を用いて、画素ごとに、Ｒ値Ｇ値Ｂ値の中で最も小さい値にマイナスを乗算した値を、minRGB(x,y)として算出する。
minRGB(x,y) = - Min(R(x,y), G(x,y), B(x,y))   …（４）
【００２１】
さらに、制御装置１０４は、次式（５）を用いて、画素ごとに、Ｒ値Ｇ値Ｂ値の中で最も大きな値と最も小さい値との差分を、maxmin(x,y)として算出する。
maxmin(x,y) = Max(R(x,y), G(x,y), B(x,y)) - Min(R(x,y), G(x,y), B(x,y))   …（５）
【００２２】
このようにして制御装置１０４は、maxRGB(x,y)、minRGB(x,y)、maxmin(x,y)を各画素において算出すると、ステップＳ５へ進む。
【００２３】
ステップＳ５において制御装置１０４は、maxRGB(x,y)およびminRGB(x,y)の度数分布を求める。まず、制御装置１０４は、出力色空間がｎビットの空間である場合、maxRGB(x,y)＞（２ｎ−１）−αを満たす画素について、複数のデータ区間でmaxRGB(x,y)の度数分布を表す第１のヒストグラムを生成する。この第１のヒストグラムは、Ｒ値Ｇ値Ｂ値の中で最も大きい値が出力色空間の色域の最大値２ｎ−１よりも大きくなる画素、すなわち出力色空間の色域外の画素におけるmaxRGB(x,y)の分布を表すためのヒストグラムである。またα＝０の場合、第１のヒストグラムは、出力色空間の色域外の画素のみの分布であるが、α＞０の場合、第１のヒストグラムには、出力色空間の色域内における一部の画素の分布も含まれる。なお、α＜０の場合、第１のヒストグラムは、出力色空間の色域境界よりもα以上外側の画素についての分布となる。このようにαは、第１のヒストグラムにおいて、出力色空間の色域境界近傍の画素を考慮する程度を調整するためのパラメータである。αは、例えば、縮小画像向けの色補正処理（ステップＳ３）と、後述する本画像向けの色補正処理（ステップＳ８〜Ｓ１４）の違いに応じて設定される。
【００２４】
また制御装置１０４は、minRGB(x,y)＞（−β）を満たす画素について、複数のデータ区間でminRGB(x,y)の度数分布を表す第２のヒストグラムを生成する。この第２のヒストグラムは、Ｒ値Ｇ値Ｂ値の中で最も小さい値が出力色空間の色域の最小値０よりも小さくなる画素、すなわち出力色空間の色域外の画素におけるminRGB(x,y)の分布を表すためのヒストグラムである。またβ＝０の場合、第２のヒストグラムは、出力色空間の色域外の画素のみの分布であるが、β＞０の場合、第２のヒストグラムには、出力色空間の色域内における一部の画素の分布も含まれる。なお、β＜０の場合、第２のヒストグラムは、出力色空間の色域境界よりもβ以上外側の画素についての分布となる。このようにβは、第２のヒストグラムにおいて、出力色空間の色域境界近傍の画素を考慮する程度を調整するためのパラメータである。βは、例えば、縮小画像向けの色補正処理（ステップＳ３）と、後述する本画像向けの色補正処理（ステップＳ８〜Ｓ１４）の違いに応じて設定される。
【００２５】
なお、有彩色の階調表現を重視する場合には、無彩色に近い画素を、第１のヒストグラムおよび第２のヒストグラムの度数カウントから除外する処理を追加する。無彩色に近い画素は、Ｒ値Ｇ値Ｂ値がほぼ同じ値となるため、Ｒ値Ｇ値Ｂ値の中で最も大きい値と最も小さい値との差分が小さくなる。そこで、制御装置１０４は、maxmin(x,y)が所定の閾値acLimit（無彩色とみなされる閾値）以下である画素（すなわちmaxmin(x,y)＜＝acLimitを満たす画素）を、無彩色に近い画素と判定して、第１のヒストグラムおよび第２のヒストグラムの度数カウントから除外する。
【００２６】
次に制御装置１０４は、第１のヒストグラムに対し、maxRGB(x,y)が各データ区間の最小値以上となる総画素数をカウントする第１の累積ヒストグラムを生成する。また、制御装置１０４は、第２のヒストグラムに対し、minRGB(x,y)が各データ区間の最小値以上に位置する総画素数をカウントする第２の累積ヒストグラムを生成する。すなわち、第１の累積ヒストグラムおよび第２の累積ヒストグラムともに、最小データ区間から画素数を累積するのではなく、最大データ区間から画素数を累積する。例えば、図３（Ａ）に示すヒストグラムにおける、最大データ空間からの累積ヒストグラムを、図３（Ｂ）に示す。
【００２７】
このようにして制御装置１０４は、maxRGB(x,y)およびminRGB(x,y)の度数分布を表す第１の累積ヒストグラムおよび第２の累積ヒストグラムを生成すると、ステップＳ６へ進む。
【００２８】
ステップＳ６において制御装置１０４は、ガマットマッピングにおける色域圧縮レベル（色域圧縮強度）を算出する。本実施形態のガマットマッピングでは、出力色空間の色域外にある色において、ＲＧＢのいずれかが最大値よりも大きい領域にある色とＲＧＢのいずれかが負値となる領域にある色とでガマットマッピングの方法を変えるようになっている。以下、ＲＧＢのいずれかが最大値よりも大きい領域にある色を圧縮するためのガマットマッピングを高輝度ガマットマッピングと呼び、ＲＧＢのいずれかが負値となる領域にある色を圧縮するためのガマットマッピングを低輝度ガマットマッピングと呼ぶ。高輝度ガマットマッピングおよび低輝度ガマットマッピングについて、詳しくは後述する。ステップＳ６では、色域圧縮レベルを、高輝度ガマットマッピングおよび低輝度ガマットマッピングのそれぞれにおいて設定する。
【００２９】
具体的に制御装置１０４は、第１の累積ヒストグラムにおいて、累積画素数が所定閾値nlim1よりも大きくなるデータ区間のレベルｋ１を、高輝度ガマットマッピング用の色域圧縮レベルｋ１として算出する。すなわち、(2n-1) - α + k1 * width1 < maxRGB(x,y)を満たす画素の数がnlim1よりも大きく、且つ(2n-1) - α +（k1＋1）* width1 < maxRGB(x,y)を満たす画素の数がnlim1よりも小さいｋ１を算出する。なお、width1は第１の累積ヒストグラムにおけるデータ区間の幅である。
【００３０】
また、制御装置１０４は、第２の累積ヒストグラムにおいて、累積画素数が所定閾値nlim2よりも大きくなるデータ区間のレベルｋ２を、低輝度ガマットマッピング用の色域圧縮レベルｋ２として算出する。すなわち、-β + k2 * width2 < minRGB(x,y)を満たす画素の数がnlim2よりも大きく、且つ-β +（k2＋1）* width2 < minRGB(x,y)を満たす画素の数がnlim2よりも小さいｋ２を算出する。なお、width2は第２の累積ヒストグラムにおけるデータ区間の幅である。
【００３１】
これにより、出力色空間の色域境界からの距離が遠い画素の数が多いほど、高輝度ガマットマッピングまたは低輝度ガマットマッピングにおける色域圧縮レベルが大きくなる。
【００３２】
このようにして制御装置１０４は、高輝度ガマットマッピングおよび低輝度ガマットマッピングの色域圧縮レベルｋ１，ｋ２をそれぞれ算出すると、ステップＳ７へ進む。
【００３３】
ステップＳ７において制御装置１０４は、maxRGB(x,y)＞（２ｎ−１）−αを満たす画素数Nmaxが所定の閾値nLim3以上（すなわちNmax≧nLim3を満たす）の場合は、高輝度ガマットマッピング用の色域圧縮レベルｋ１を、次式（６）を用いて補正する。
ｋ１＝ｋ１＋１  …（６）
なお、nLim3を複数レベル用意しておき（nLim3(i1) i1=1,2,...）、nLim3(i+1)>Nmax≧nLim3(i1)の場合、ｋ１＝ｋ１＋ｉ１としてもよい。
【００３４】
また、制御装置１０４は、minRGB(x,y)＞（−β）を満たす画素数Nminが所定の閾値nLim4以上（すなわちNmin≧nLim4を満たす）の場合は、低輝度ガマットマッピング用の色域圧縮レベルｋ２を、次式（７）を用いて補正する。
ｋ２＝ｋ２＋１  …（７）
なお、nLim4を複数レベル用意しておき（nLim4(i2) i2=1,2,...）、nLim4(i+1)>Nmin≧nLim4(i2)の場合、ｋ２＝ｋ２＋ｉ２としてもよい。
【００３５】
この補正により、出力色空間の色域外である画素の数が多いほど、高輝度ガマットマッピングまたは低輝度ガマットマッピングにおける色域圧縮レベルが大きくなる。
【００３６】
このようにして制御装置１０４は、高輝度ガマットマッピングおよび低輝度ガマットマッピングの色域圧縮レベルｋ１，ｋ２を補正すると、ステップＳ８へ進む。
【００３７】
ステップＳ８において制御装置１０４は、ステップＳ１で取得した撮像画像に対して、補間、ホワイトバランス、ノイズ除去などの処理を施して、ステップＳ９へ進む。なお、ステップＳ８以降の処理は、本画像（この画像処理において実際に出力する画像）向けの処理である。
【００３８】
ステップＳ９において制御装置１０４は、ステップＳ８で処理が施されたＲＧＢ画像を、撮像素子１０３固有のＲＧＢ空間から出力色空間へ変換してステップＳ１０へ進む。この変換は、出力色空間として例えばｓＲＧＢ空間を利用する場合、上記式（１）および（２）を用いて行う。
【００３９】
ステップＳ１０において制御装置１０４は、ステップＳ９で出力色空間に変換された撮像画像を、ガマットマッピングを行うための色空間であるＹＣＣ空間に変換して、ステップＳ１１へ進む。この変換は、出力色空間として例えばｓＲＧＢ空間を利用する場合、以下の式（８）により行われる。なお、以下の式（８）において、（Ｒ，Ｇ，Ｂ）は式（８）の入力値であり、（Ｙ，Ｃｂ，Ｃｒ）は、式（８）の出力値である。また、ＭｓＲＧＢ２ＹＣＣは、ｓＲＧＢ空間からＹＣＣ空間へ変換するための変換マトリックスである。
【数３】
2014033275.tif 000005
【００４０】
ステップＳ１１において制御装置１０４は、ステップＳ１０で変換されたＹＣｂＣｒ画像データにおいて、１画素ごとに色相を算出して、ステップＳ１２へ進む。なお、色相は、例えばＣｂとＣｒとの比や、ＣｒまたはＣｂと、ＣｒおよびＣｂの絶対値を用いた彩度近似値との比に基づいて算出される。
【００４１】
ステップＳ１２において制御装置１０４は、ＹＣｂＣｒ画像データの１画素ごとに、ステップＳ１１で算出した色相の等色相面における出力色空間（ｓＲＧＢ空間）の色域形状を算出する。
【００４２】
ＹＣＣ空間における等色相面において、出力色空間（ｓＲＧＢ空間）の色域を表すと、図４に示すように、黒色点Ｂｐと白色点Ｗｐと最大彩度点Ｃｐとを結んだ三角形で近似して表すことができる。なお、図４において、縦軸が輝度（Ｙ）であり、横軸が彩度（Ｃ）である。ＹＣＣ空間では、Ｙ軸方向が輝度を表し、ＣｂＣｒ面での原点まわりの角度が色相を表す。つまり、Ｙ軸を含んでＣｂ軸あるいはＣｒ軸と一定の角度をなす平面上の色はみな同じ色相となり、これを等色相面と呼んでいる。等色相面ではＹ軸からの距離が彩度を表している。また、黒色点Ｂｐは、出力色空間で表現しうる最も輝度が低い色を示し、白色点Ｗｐは、出力色空間で表現しうる最も輝度が高い色を示す。最大彩度点Ｃｐは、各色相において出力色空間で表現しうる最も彩度が高い色を示す。
【００４３】
また、出力色空間の色域形状は、色相によって異なる。これは、最大彩度点Ｃｐにおける輝度が色相によって異なるためである。例えば、赤や青は黄色より暗く感じられるため、図５に示すように、赤や青の最大彩度点Ｃｐにおける輝度は、黄色の最大彩度点Ｃｐにおける最大輝度より低い。また、有彩色の最大彩度点Ｃｐの輝度は、無彩色の最大輝度（すなわち白色点Ｗｐ）よりも低い。
【００４４】
ステップＳ１２では、各画素の色相について、等色相面における、白色点Ｗｐと最大彩度点Ｃｐとを通る第１の直線Ｌ１の傾き（以下、第１の傾きと呼ぶ）ｐｄｙ１と、黒色点Ｂｐと最大彩度点Ｃｐとを通る第２の直線Ｌ２の傾き（以下、第２の傾きと呼ぶ）ｐｄｙ２とを、対象画素の色相における出力色空間の色域形状として算出する。なお、本説明においては、傾きを絶対値で扱うこととし、ｐｄｙ１およびｐｄｙ２もそれぞれ絶対値で算出する。またここでは、黒色点Ｂｐの輝度および彩度を（０，０）とし、白色点Ｗｐの輝度および彩度を（１，０）として、各画素の輝度および彩度が正規化されているとする。
【００４５】
ここで、赤、黄、緑における第１の傾きｐｄｙ１は、それぞれ反対色であるシアン、青、マゼンタにおける第２の傾きｐｄｙ２と等しい。一方、赤、黄、緑における第２の傾きｐｄｙ２は、それぞれ反対色であるシアン、青、マゼンタにおける第１の傾きｐｄｙ１と等しい。そこで、制御装置１０４内のメモリ（不図示）には、少なくとも３色（例えば赤、黄、緑）において、それぞれ第１の傾きｐｄｙ１および第２の傾きｐｄｙ２が予め記録されている。制御装置１０４は、このメモリに記録された赤、黄、緑における第１の傾きｐｄｙ１および第２の傾きｐｄｙ２に基づいて、シアン、青、マゼンタにおける第１の傾きｐｄｙ１および第２の傾きｐｄｙ２についても求めることができる。
【００４６】
ステップＳ１２では、この計６色（赤、黄、緑、シアン、青、マゼンタ）のうち、対象画素の色相に隣接する２色相における第１の傾きｐｄｙ１および第２の傾きｐｄｙ２を用いて、対象画素の色相における第１の傾きｐｄｙ１および第２の傾きｐｄｙ２を算出する。例えば、対象画素の色相が緑からシアンの間にある場合は、メモリに記録された赤における第１の傾きｐｄｙ１および第２の傾きｐｄｙ２を用いて、シアンにおける第１の傾きｐｄｙ１および第２の傾きｐｄｙ２を求める。そして、このシアンにおける第１の傾きｐｄｙ１および第２の傾きｐｄｙ２と、メモリに記録された緑における第１の傾きｐｄｙ１および第２の傾きｐｄｙ２を、対象画素の色相と緑およびシアンとの差分を考慮して重み付けして、対象画素の色相における第１の傾きｐｄｙ１および第２の傾きｐｄｙ２を算出する。
【００４７】
このようにして制御装置１０４は、ＹＣｂＣｒ画像データの１画素ごとに、その画素の色相における第１の傾きｐｄｙ１および第２の傾きｐｄｙ２を算出して、ステップＳ１３へ進む。
【００４８】
ステップＳ１３において制御装置１０４は、ＹＣｂＣｒ画像データに対して階調補正を行う。この階調補正では、輝度（Ｙ）軸に沿って補正するのではなく、図６に示すように、補正を行う画素の色（補正対象色）の等色相面において、補正対象色の輝度および彩度を示す点（補正対象色点）Ｔｐと黒色点Ｂｐとを結ぶ第３の直線Ｌ３に沿って輝度および彩度が変化するように補正する。
【００４９】
この階調補正について具体的に説明する。なお、以下の説明において、ＹＣｂＣｒ画像データは、Ｙの最小値（最小輝度）を０とし、Ｙの最大値（最大輝度）を１として正規化された値を用いている。まず、制御装置１０４は、補正対象色のＣｂ値およびＣｒ値から、次式（４）により、補正対象色の彩度Ｃを算出する。式（９）における除算（／４）はビットシフトを用いて対応してもよい。
C = (｜Cb｜+｜Cr｜+｜Cb + Cr｜+｜Cb - Cr｜)/4  …（９）
【００５０】
なお、処理負荷を軽くしつつ良好な彩度近似値を算出するため、式（９）を用いたが、処理負荷に余裕がある場合は、次の式（１０）を用いたり、式（９）、（１０）以外の式で彩度Ｃを算出したりしてもよい。
C = (Cb2+ Cr2)1/2  …（１０）
【００５１】
次に、制御装置１０４は、第３の直線Ｌ３を軸とする座標系（以下、階調補正座標系と呼ぶ）における補正対象色点Ｔｐの座標値を階調補正パラメータyGainInとして算出する。この階調補正座標系は、黒色点Ｂｐの座標値が０であり、第３の直線Ｌ３と第１の直線Ｌ１との交点Ｐ３１の座標値が１であり、黒色点Ｂｐから交点Ｐ３１へ向かう方向に座標値が大きくなる座標系であるとする。具体的には、制御装置１０４は、補正対象色の輝度Ｙおよび彩度Ｃと第１の傾きｐｄｙ１とを用いて、次式（１１）により、階調補正パラメータyGainInを算出する。
yGainIn = Y + C * pDy1  …（１１）
【００５２】
すなわち、補正対象色点Ｔｐが黒色点Ｂｐ上にあればyGainIn＝０となり、補正対象色点Ｔｐが交点Ｐ３１上にあればyGainIn＝１となる。また、補正対象色点Ｔｐが黒色点Ｂｐと交点Ｐ３１との間にある場合は、０＜yGainIn＜１となり、補正対象色点Ｔｐが交点Ｐ３１に近くなるほどyGainInは１に向かって大きくなり、補正対象色点Ｔｐが黒色点Ｂｐに近くなるほどyGainInは０に向かって小さくなる。また、補正対象色点Ｔｐが交点Ｐ３１よりも黒色点Ｂｐから遠い場合には、yGainIn＞１となる。この場合、補正対象色点Ｔｐは出力色空間の色域外に位置している。
【００５３】
次に、制御装置１０４は、階調補正ゲインyGainを求める。階調補正ゲインyGainとは、階調補正前の輝度（Input）に対する階調補正後の輝度（Output）の比（Output/Input）である。階調補正ゲインyGainは、例えば、図７に示すようなＳ字の階調カーブTcを用いて階調補正が行われるように設定されている。なお、図７では、横軸がInputであり、縦軸がOutputである。また、階調補正ゲインyGainは、Inputが０以上１以下である場合にはInputに階調補正ゲインyGainを乗算した値であるOutputが０以上１以下となるように設定されており、色域内の色は色域内に変換される。なお、Inputが１より大きい場合にはInputに階調補正ゲインyGainを乗算した値であるOutputが１より大きくなるように設定されており、色域外の色は色域外に変換される。
【００５４】
制御装置１０４のメモリには、Inputを入力すると、このように設定された階調補正ゲインyGainを出力するルックアップテーブルＬＵＴ２が予め記録されている。制御装置１０４は、このルックアップテーブルＬＵＴ２を用いて、次式（１２）により階調補正ゲインyGainを算出する。すなわち、階調補正パラメータyGainInをルックアップテーブルＬＵＴ２の入力値として階調補正ゲインyGainを求める。
yGain = LUT2(yGainIn)   …（１２）
【００５５】
次に、制御装置１０４は、次式（１３）〜（１６）により、補正対象色のＹＣｂＣｒおよび彩度Ｃに対して、それぞれ階調補正ゲインyGainを乗算することで、階調が補正されたＹ１Ｃｂ１Ｃｒ１および彩度Ｃ１を算出する。
Y１ = Y * yGain   …（１３）
Cb１ = Cb * yGain   …（１４）
Cr１ = Cr * yGain   …（１５）
C１ = C * yGain   …（１６）
【００５６】
以上のように制御装置１０４は、ＹＣｂＣｒ画像データの各画素に対して上記階調補正を行うと、ステップＳ１４へ進む。
【００５７】
ステップＳ１４において制御装置１０４は、ステップＳ１３の階調補正後の画像データ（Ｙ１Ｃｂ１Ｃｒ１）に対して、彩度補正を行う。この彩度補正では、彩度（Ｃ）軸に沿って補正するのではなく、図８に示すように、補正対象色点Ｔｐを通り且つ第１の直線Ｌ１に平行である第４の直線Ｌ４に沿って輝度および彩度が変化するように補正する。
【００５８】
この彩度補正について具体的に説明する。まず、制御装置１０４は、第４の直線Ｌ４を軸とする座標系（以下、彩度補正座標系と呼ぶ）における補正対象色点Ｔｐの座標値を彩度補正パラメータcGainInとして算出する。この彩度補正座標系では、第２の直線Ｌ２と第４の直線Ｌ４との交点Ｐ４２の座標値が１であり、第４の直線Ｌ４と輝度（Ｙ）軸（すなわち黒色点Ｂｐと白色点Ｗｐとを通る直線）との交点Ｐ４Ｙから交点Ｐ４２へ向かう方向に座標値が大きくなる座標系であるとする。具体的には、制御装置１０４は、補正対象色の輝度Ｙ１および彩度Ｃ１と第２の傾きｐｄｙ２とを用いて、次式（１７）により、彩度補正パラメータcGainInを算出する。
cGainIn = 1 -Y１ + pDy2 * C１  …（１７）
【００５９】
すなわち、補正対象色点Ｔｐが交点Ｐ４２上にあればcGainIn＝１となる。また、補正対象色点Ｔｐが交点Ｐ４Ｙと交点Ｐ４２との間にある場合は、cGainIn＜１となり、補正対象色点Ｔｐが交点Ｐ４２に近くなるほどcGainInは１に向かって大きくなり、補正対象色点Ｔｐが交点Ｐ４Ｙに近くなるほどcGainInは小さくなる。また、補正対象色点Ｔｐが交点Ｐ４２よりも交点Ｐ４Ｙから遠い場合には、cGainIn＞１となる。この場合、補正対象色点Ｔｐは出力色空間の色域外に位置している。
【００６０】
次に、制御装置１０４は、彩度補正ゲインcGainを求める。彩度補正ゲインcGainとは、彩度補正前の彩度（Input）に対する彩度補正後の彩度（Output）の比（Output/Input）である。彩度補正ゲインcGainは、例えば、Inputに対して上述した図７と同様のＳ字状である彩度カーブを用いて彩度補正が行われるように設定されている。また、彩度補正ゲインcGainは、Inputが０以上１以下である場合にはInputに彩度補正ゲインcGainを乗算した値であるOutputが０以上１以下となるように設定されており、色域内の色は色域内に変換される。なお、Inputが１より大きい場合にはInputに彩度補正ゲインcGainを乗算した値であるOutputが１より大きくなるように設定されており、色域外の色は色域外に変換される。
【００６１】
制御装置１０４のメモリには、Inputを入力すると、このように設定された彩度補正ゲインcGainを出力するルックアップテーブルＬＵＴ３が予め記録されている。制御装置１０４は、このルックアップテーブルＬＵＴ３を用いて、次式（１８）により彩度補正ゲインcGainを算出する。すなわち、彩度補正パラメータcGainInをルックアップテーブルＬＵＴ３の入力値として彩度補正ゲインcGainを求める。
cGain = LUT3(cGainIn)   …（１８）
【００６２】
次に、制御装置１０４は、補正対象色のＹ１およびＣ１と第１の傾きｐｄｙ１と彩度補正ゲインcGainとに基づいて、次式（１９）により、彩度が補正されたＹ２を算出する。また制御装置１０４は、次式（２０）〜（２２）により、補正対象色のＣｂ１Ｃｒ１および彩度Ｃ１に対して、それぞれ彩度補正ゲインcGainを乗算することで、彩度が補正されたＣｂ２Ｃｒ２および彩度Ｃ２を算出する。
Y２ = Y１ - C１ * (cGain-1) * pDy1   …（１９）
Cb２ = Cb１ * cGain   …（２０）
Cr２ = Cr１ * cGain   …（２１）
C２ = C１ * cGain   …（２２）
【００６３】
以上のように制御装置１０４は、ＹＣｂＣｒ画像データの各画素に対して上記彩度補正を行うと、ステップＳ１５へ進む。
【００６４】
ステップＳ１５において制御装置１０４は、ステップＳ１４の彩度補正後のＹＣｂＣｒ画像データに対して、低輝度ガマットマッピングおよび高輝度ガマットマッピングを行う。以下、低輝度ガマットマッピングおよび高輝度ガマットマッピングについて具体的に説明する。まず、低輝度ガマットマッピングについて説明する。低輝度ガマットマッピングでは、図９においてcGainIn＞１の領域内に矢印で示すように、色変換を行う画素の色（変換対象色）の等色相面において、出力色空間の色域外から当該色域内に向かう方向に沿って、変換対象色に対して彩度を圧縮すると共に輝度を増加する補正を行う。
【００６５】
この補正では、輝度および彩度を補正する方向（色補正方向）の傾き（すなわち彩度の圧縮量に対する輝度の増加量の比）を、変換対象色の階調補正パラメータyGainInに応じて変更する。具体的に、変換対象色においてyGainIn＝０の場合には、色補正方向の傾きを０とする（すなわち彩度のみを圧縮する）。また、変換対象色においてyGainIn＝１の場合には、色補正方向の傾きを第１の傾きｐｄｙ１とする（すなわち白点Ｗｐに向かう方向（第１の直線Ｌ１）に沿って補正する）。また、変換対象色において０＜yGainIn＜１の場合には、色補正方向の傾きが０よりも大きく且つｐｄｙ１よりも小さいとし、yGainInが大きくなるにつれ、色補正方向の傾きがｐｄｙ１に向かって大きくなるようにする。また、変換対象色においてyGainIn＞１の場合には、yGainInが大きくなるにつれ、色補正方向の傾きがｐｄｙ１からさらに大きくなるようにする。したがって、０＜yGainInの場合には、yGainInに応じて、輝度の補正量が単調増加するようになっている。なお、yGainIn＞１の場合、低輝度ガマットマッピング後、後述する高輝度ガマットマッピングも行われることになるため、合成圧縮方向を考慮して、色補正方向傾きはyGainIn＝１と同じくｐｄｙ１としてもよい。
【００６６】
また、色の圧縮率（圧縮ゲイン）については、低輝度ガマットマッピング用のルックアップテーブルＬＵＴ４に、変換対象色の彩度補正パラメータcGainInを入力して求める。ルックアップテーブルＬＵＴ４では、入力値（cGainIn）と出力値（圧縮ゲイン）との関係が図１０に示す曲線で示されるように、入力値と出力値とが対応付けられている。図１０に示す曲線は、入力値が所定の閾値ａ以下である場合に出力値が１となり（すなわち色圧縮を行わない）、入力値が当該閾値ａ以上である場合には出力値が１以下となり（すなわち色圧縮を行う）、閾値ａにおいて滑らかにつながり且つ以後単調減少するような非線形関数である。
【００６７】
閾値ａ（すなわち圧縮を開始する値）は、ステップＳ７までで決定された低輝度ガマットマッピング用の色域圧縮レベルｋ２に基づいて設定される。色域圧縮レベルｋ２が０の場合、閾値ａ＝１（色域内におけるcGainInの最大値）とし、色域圧縮レベルｋ２が大きくなるにつれ、閾値ａを１から小さくする。すなわち、色域圧縮レベルｋ２が大きくなるほど、低輝度ガマットマッピングにおいて色域を圧縮する範囲を広くする。
【００６８】
なお、本実施形態では、制御装置１０４のメモリ（不図示）には、ａ＝０の場合におけるルックアップテーブルＬＵＴ４のみを記憶しておく。制御装置１０４は、上述したようにして色域圧縮レベルｋ２に応じて閾値ａを設定すると、彩度補正パラメータcGainInから閾値ａをオフセットして、当該ルックアップテーブルＬＵＴ４の入力値とする（すなわち入力値をcGainIn−ａとする）。
【００６９】
このようにすることにより、閾値ａ（すなわち圧縮を開始する値）を種々の値に変更しても、１つのルックアップテーブルＬＵＴ４のみで対応することができる。したがって、複数の閾値ａに応じて複数のルックアップテーブルＬＵＴ４をメモリに記憶しておく必要がなく、１つのルックアップテーブルＬＵＴ４のみをメモリに記憶しておけばよいので、メモリ容量を節約することができる。
【００７０】
制御装置１０４は、以上のような低輝度ガマットマッピングを、次式（２３）〜（２６）を用いて行う。なお、式（２３）〜（２５）において、Y３Cb３Cr３は低輝度ガマットマッピング後の画像データである。
Y３ = Y２ + (1 - LUT4(cGainIn)) * C２ * pDy1 * yGainIn  …（２３）
Cb３ = Cb２* {LUT4(cGainIn) - (1 - LUT4(cGainIn))* pDy3 *(1 - yGainIn)}  …（２４）
Cr３ = Cr２* {LUT4(cGainIn) - (1 - LUT4(cGainIn))* pDy3 *(1 - yGainIn)}  …（２５）
pDy3 = pDy1 / pDy2  …（２６）
【００７１】
なお、式（２３）では、yGainIn＝１である場合（白点Ｗｐに向かう補正の場合）における輝度の増加量に対してyGainInを乗算した量を、低輝度ガマットマッピング前の輝度Ｙ２に加算することで、低輝度ガマットマッピング後の輝度Ｙ３を求めている。すなわち、yGainInが大きくなるほど、輝度の増加量をより大きくし、色補正方向の傾きを大きくしている。
【００７２】
また、式（２４）および（２５）では、yGainIn＝１である場合の輝度の増加量と当該増加量にyGainInを乗算した量（すなわち変換対象色における輝度の増加量）との差分に対して、第２の直線の傾きpdy2を除算した量を求め、この量を、低輝度ガマットマッピング前の彩度（色差Ｃｂ２Ｃｒ２）に対して圧縮ゲインを乗算した値から引算して、低輝度ガマットマッピング後の彩度（色差Ｃｂ３Ｃｒ３）を求めている。すなわち、yGainInが小さくなるほど上記引算する量を大きくすることで、彩度の圧縮量をより増やし、色補正方向の傾きを小さくしている。
【００７３】
次に、高輝度ガマットマッピングについて説明する。高輝度ガマットマッピングでは、図９においてyGainIn＞１の領域内に矢印で示すように、変換対象色の等色相面において、色域境界（第１の直線Ｌ１）に向かって、輝度を変えずに彩度のみを圧縮する。色の圧縮率（圧縮ゲイン）については、高輝度ガマットマッピング用のルックアップテーブルＬＵＴ５に、変換対象色の階調補正パラメータyGainInを入力して求める。ルックアップテーブルＬＵＴ５では、ルックアップテーブルＬＵＴ４と同様に、入力値（yGainIn）と出力値（圧縮ゲイン）との関係が図１０に示す曲線で示される。
【００７４】
また、ルックアップテーブルＬＵＴ５における閾値ａ（すなわち圧縮を開始する値）については、ステップＳ７までで決定された高輝度ガマットマッピング用の色域圧縮レベルｋ１に基づいて設定される。色域圧縮レベルｋ１が０の場合、閾値ａ＝１（色域内におけるyGainInの最大値）とし、色域圧縮レベルｋ１が大きくなるにつれ、閾値ａを１から小さくする。すなわち、色域圧縮レベルｋ１が大きくなるほど、高輝度ガマットマッピングにおいて色域を圧縮する範囲を広くする。
【００７５】
なお、本実施形態では、制御装置１０４のメモリ（不図示）には、ａ＝０の場合におけるルックアップテーブルＬＵＴ５のみを記憶しておく。制御装置１０４は、上述したようにして色域圧縮レベルｋ１に応じて閾値ａを設定すると、階調補正パラメータyGainInから閾値ａをオフセットして、当該ルックアップテーブルＬＵＴ５の入力値とする（すなわち入力値をyGainIn−ａとする）。
【００７６】
このようにすることにより、閾値ａ（すなわち圧縮を開始する値）を種々の値に変更しても、１つのルックアップテーブルＬＵＴ５のみで対応することができる。したがって、複数の閾値ａに応じて複数のルックアップテーブルＬＵＴ５をメモリに記憶しておく必要がなく、１つのルックアップテーブルＬＵＴ５のみをメモリに記憶しておけばよいので、メモリ容量を節約することができる。
【００７７】
なお、ルックアップテーブルＬＵＴ４およびＬＵＴ５は同一の関数であっても異なる関数であってもよい。
【００７８】
制御装置１０４は、以上のような高輝度ガマットマッピングを、次式（２７）〜（２９）を用いて行う。なお、式（２７）〜（２９）において、Y３Cb３Cr３は低輝度ガマットマッピング後の画像データであり、Y４Cb４Cr４は高輝度ガマットマッピング後の画像データである。
Y４ = Y３  …（２７）
Cb４ = Cb３* LUT5(yGainIn)  …（２８）
Cr４ = Cr３* LUT5(yGainIn)  …（２９）
【００７９】
このようにして制御装置１０４は、低輝度ガマットマッピングおよび高輝度ガマットマッピングを行うと、ステップＳ１６へ進む。
【００８０】
ステップＳ１６において制御装置１０４は、ステップＳ１５のガマットマッピング後のＹＣｂＣｒ画像データを、公知の変換式を用いて出力色空間（ここではｓＲＧＢ空間）の値へ変換して、ステップＳ１７へ進む。
【００８１】
ステップＳ１７において制御装置１０４は、ステップＳ１６で出力色空間に変換した画像データを、出力ファイルフォーマットに従ってエンコーディングを行い、メモリカードスロット１０５に挿入されているメモリカードへ記録して、図２の画像処理を終了する。
【００８２】
上記画像処理によれば、例えば、図１１（Ａ）に模式的に示すように、入力画像の色域が狭く、出力色空間の色域内に元々収まっている場合には、色域圧縮レベルが０となり色域圧縮が全く行われないため、入力画像の彩度をそのまま再現することができる。
【００８３】
また、上記画像処理によれば、図１１（Ｂ）に模式的に示すように、入力画像の色域が出力色空間の色域よりも少しだけ広い場合（入力画像の色が出力色空間の色域外に少しだけ分布している場合や、入力画像の一部の画素の色のみが出力色空間の色域外にある場合など）には、出力色空間の色域境界よりも少しだけ内側から色域圧縮が開始されるので、出力色空間の色域外の階調をつぶさずに色域内に変換することができる。
【００８４】
さらに、上記画像処理によれば、図１１（Ｃ）に模式的に示すように、入力画像の色域が出力色空間の色域よりも大きく広い場合（入力画像の色が出力色空間の色域外に広く分布している場合や入力画像の多くの画素の色が出力色空間の色域外にある場合など）には、入力画像の色域の広がり度合いに応じて出力色空間の色域内のより内側から色域圧縮を開始することで、入力画像の広い色域を圧縮しても、入力画像の色が出力色空間の色域境界付近に固まることなく階調を再現することができる。
【００８５】
以上説明した実施形態によれば、次の作用効果が得られる。
（１）デジタルカメラ１００は、色域変換における色域圧縮強度（色域圧縮レベル）を決定する制御装置１０４と、色域圧縮強度に応じて第１の閾値（閾値ａ）を決定する制御装置１０４と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第１の特徴量（yGainIn，cGainIn）を算出する制御装置１０４と、第１の特徴量から第１の閾値をオフセットした値（yGainIn−a，cGainIn−a）を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルＬＵＴ４，ＬＵＴ５に入力することで、圧縮ゲイン（LUT5(yGainIn)，LUT4(cGainIn)）を取得する制御装置１０４と、入力画像に圧縮ゲインを適用することで、色域変換（低輝度ガマットマッピング、高輝度ガマットマッピング）を行う制御装置１０４と、を備える。これにより、１つのルックアップテーブルを記憶しておくだけで、異なる複数の色域圧縮強度に対応することができるので、必要な記憶容量を削減することができる。
【００８６】
（２）上記（１）のデジタルカメラ１００において、ルックアップテーブルＬＵＴ４，ＬＵＴ５では、入力値が大きいほど圧縮率が高くなるように、入力値に対して出力する圧縮ゲインが設定され、第１の特徴量（yGainIn，cGainIn）は、出力色空間の色域内では色域境界から遠いほど小さくなり、出力色空間の色域外では色域境界から遠いほど大きくなり、制御装置１０４は、色域圧縮強度が大きいほど第１の閾値（閾値ａ）を小さくするように構成した。これにより、色域圧縮強度が大きいほど、入力画像において色域圧縮を行う範囲を広くするということを、１つのルックアップテーブルのみを用いて行うことができる。
【００８７】
（３）上記（１）または（２）のデジタルカメラ１００において、制御装置１０４は、入力画像の色域と出力色空間の色域とを解析した解析結果（第１の累積ヒストグラム、第２の累積ヒストグラム、Nmax、Nmin）に基づいて、色域圧縮強度を決定するように構成した。これにより、入力画像の色域と出力色空間の色域との相対関係に応じた最適な色域圧縮強度でガマットマッピングを行うことができる。
【００８８】
（４）上記（３）のデジタルカメラ１００において、制御装置１０４は、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第２の特徴量（maxRGB(x,y)、minRGB(x,y)）を算出し、第２の特徴量が第２の閾値（（２ｎ−１）−α、（−β））より大きい画素数（Nmax、Nmin）、または第２の特徴量に応じた画素分布（第１の累積ヒストグラム、第２の累積ヒストグラム）の少なくともいずれかを、上記解析結果として用いるように構成した。これにより、簡易な処理によって上記解析結果を取得できるので、処理負荷をかけずに最適な色域圧縮強度でガマットマッピングを行うことができる。
【００８９】
（変形例１）
上述した実施の形態では、ステップＳ７において色域圧縮レベルを補正する閾値nLim3,nLim4を１つずつとし、１段階で色域圧縮レベルを補正する例について説明した。しかしながら、閾値nLim3,nLim4をそれぞれ複数用意し、複数段階で色域圧縮レベルを補正するようにしてもよい。
【００９０】
（変形例２）
低輝度ガマットマッピングおよび高輝度ガマットマッピングにおける色域圧縮レベルは、ガマットマッピングのモードに応じて調整してもよい。ガマットマッピングのモードとしては、例えば、階調重視モードと彩度重視モードとが設けられる。ユーザが操作部材１０１を操作することにより、階調重視モードまたは彩度重視モードのいずれかをガマットマッピングのモードとして選択できるようにする。ここで、階調重視モードとは、彩度は強調せず階調表現を重視するモードであり、彩度重視モードとは、高彩度で多少飽和気味でも彩度を残して表現し、全体の彩度感を重視するモードである
【００９１】
変形例２において、制御装置１０４は、操作部材１０１からの操作信号に応じて彩度重視モードを選択した場合には、階調重視モードを選択した場合よりも色域圧縮レベルを低くしてガマットマッピングを行う。例えば、制御装置１０４は、階調重視モードを選択した場合は、上述した実施の形態のように決定された色域圧縮レベルを用いてガマットマッピングを行う。一方、制御装置１０４は、彩度重視モードを選択した場合は、上述した実施の形態のように決定された色域圧縮レベルよりも所定レベル低くした色域圧縮レベルでガマットマッピングを行う。
【００９２】
また、制御装置１０４は、階調重視モードを選択した場合は、上述した実施の形態のように決定された色域圧縮レベルを用いてガマットマッピングを行うが、彩度重視モードを選択した場合は、色域圧縮レベルを最低レベルに決定して、ガマットマッピングを行わないようにしてもよい。
【００９３】
（変形例３）
出力色空間の色域境界からの距離に応じた値（maxRGB(x,y)、minRGB(x,y)）が第１の閾値（（２ｎ−１）−α、（−β））より大きい画素数（Nmax、Nmin）、または、当該値（maxRGB(x,y)、minRGB(x,y)）に応じた画素分布（第１の累積ヒストグラム、第２の累積ヒストグラム）のいずれか一方のみに基づいて、色域圧縮レベルを決定するようにしてもよい。
【００９４】
（変形例４）
上述した実施の形態では、処理負荷低減を考慮して、入力画像を縮小した縮小画像を用いて色域圧縮レベルを決定する例について説明した。しかしながら、処理負荷に余裕がある場合や、より適切な色域圧縮レベルを決定する場合には、縮小画像を生成せずに、入力画像から直接maxRGB(x,y)、minRGB(x,y)などを算出して色域圧縮レベルを決定するようにしてもよい。
【００９５】
（変形例５）
上述した実施の形態では、出力色空間であるｓＲＧＢ空間で表された縮小画像からmaxRGB(x,y)、minRGB(x,y)を算出して、色域圧縮レベルを決定するようにしたが、これをＹＣＣ空間において行ってもよい。
【００９６】
ここで、縮小画像を生成せずに色域圧縮レベルを決定する場合を例として説明する。まず、制御装置１０４は、ステップＳ１４の彩度補正後のＹＣｂＣｒ画像データの各画素において、上記式（１０）および式（１６）により階調補正パラメータyGainInおよび彩度補正パラメータcGainInを算出する。制御装置１０４は、上述した実施の形態のmaxRGB(x,y)の代わりに階調補正パラメータyGainIn(x,y)を用いて、第１の累積ヒストグラムや画素数Nmaxを算出し、高輝度ガマットマッピング用の色域圧縮レベルｋ１を算出する。また、制御装置１０４は、上述した実施の形態のminRGB(x,y)の代わりに彩度補正パラメータcGainIn(x,y)を用いて、第２の累積ヒストグラムや画素数Nminを算出し、低輝度ガマットマッピング用の色域圧縮レベルｋ２を決定する。
【００９７】
なお、有彩色の階調表現を重視する場合は、maxmin(x,y)の代わりにcGainIn(x,y)を用いて無彩色に近い画素を判定する。具体的には、cGainIn(x,y)が所定閾値（無彩色とみなされる閾値）以下である画素を無彩色に近い画素として判定して、第１および第２のヒストグラムの度数カウントから除外する。
【００９８】
（変形例６）
上述した閾値nLim1、nLim2、nLim3、nLim4は、色域圧縮レベルの算出に用いる画像（縮小画像または入力画像）の総画素数に応じて設定されているようにしてもよい。閾値nLim1、nLim2、nLim3、nLim4は、画素数ではなく、上記総画素数に対する所定の割合として設定されているようにしてもよい。例えば、上記総画素数に対して、閾値nLim1、nLim2は０〜２％とし、閾値nLim3、nLim4は５〜１０％としてもよい。
【００９９】
（変形例７）
上述した実施の形態では、低輝度ガマットマッピングおよび高輝度ガマットマッピングのそれぞれにおいて色域圧縮レベルを決定するようにした。しかしながら、全ての領域で共通のガマットマッピングを行う場合には一つの色域圧縮レベルを決定するようにしてもよいし、３つ以上の領域で異なるガマットマッピングを行う場合には、それぞれの領域で色域圧縮レベルを決定するようにしてもよい。
【０１００】
（変形例８）
上述した実施の形態では、出力色空間としてｓＲＧＢ空間を用いる例について説明した。しかしながら、出力色空間として、ＡｄｏｂｅＲＧＢやその他の多原色色空間を用いるようにしてもよい。
【０１０１】
（変形例９）
上述した実施の形態では、色補正を行う色空間としてＹＣＣ空間を用いる例について説明した。しかしながら、色補正を行う色空間として、ＣＩＥＬＡＢ空間やＨＳＶ空間など、その他の輝度色差（彩度）分離空間を用いるようにしてもよい。
【０１０２】
（変形例１０）
上述した実施の形態では、デジタルカメラ１００に色域変換装置を搭載する例を説明したが、色域変換装置をパーソナルコンピュータによって構成するようにしてもよい。また図１２に示すパーソナルコンピュータ２００に図２に例示したフローチャートの処理を行うプログラムを実行させることにより、色域変換装置を構成してもよい。プログラムをパーソナルコンピュータ２００に取込んで使用する場合には、パーソナルコンピュータ２００のデータストレージ装置にプログラムをローディングした上で、当該プログラムを実行させることによって色域変換装置として使用する。
【０１０３】
パーソナルコンピュータ２００に対するプログラムのローディングは、プログラムを格納したＣＤ−ＲＯＭなどの記憶媒体２０１をパーソナルコンピュータ２００にセットして行ってもよいし、ネットワークなどの通信回線２０２を経由する方法でパーソナルコンピュータ２００へローディングしてもよい。通信回線２０２を経由する場合は、通信回線２０２に接続されたサーバー（コンピュータ）２０３のハードディスク装置２０４などにプログラムを格納しておく。プログラムは、記憶媒体２０１や通信回線２０２を介する提供など、種々の形態のコンピュータプログラム製品として供給することができる。
【０１０４】
なお、パーソナルコンピュータ２００が処理対象として入力する（ステップＳ１）ＲＧＢ画像は、いわゆるＲＡＷデータ（すなわち、撮像素子１０２の受光光量に対して線形階調のＲＧＢ画像）である。
【０１０５】
以上の説明はあくまで一例であり、上記の実施形態の構成に何ら限定されるものではない。また、上記実施形態に各変形例の構成を適宜組み合わせてもかまわない。
【符号の説明】
【０１０６】
１００…デジタルカメラ、１０１…操作部材、１０２…撮像レンズ、１０３…撮像素子、１０４…制御装置、１０５…メモリカードスロット、１０６…モニタ
【図１】
2014033275.tif 000006
【図２】
2014033275.tif 000007
【図３】
2014033275.tif 000008
【図４】
2014033275.tif 000009
【図５】
2014033275.tif 000010
【図６】
2014033275.tif 000011
【図７】
2014033275.tif 000012
【図８】
2014033275.tif 000013
【図９】
2014033275.tif 000014
【図１０】
2014033275.tif 000015
【図１１】
2014033275.tif 000016
【図１２】
2014033275.tif 000017