JP2014033275A - 色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法 - Google Patents
色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法 Download PDFInfo
- Publication number
- JP2014033275A JP2014033275A JP2012171360A JP2012171360A JP2014033275A JP 2014033275 A JP2014033275 A JP 2014033275A JP 2012171360 A JP2012171360 A JP 2012171360A JP 2012171360 A JP2012171360 A JP 2012171360A JP 2014033275 A JP2014033275 A JP 2014033275A
- Authority
- JP
- Japan
- Prior art keywords
- color gamut
- color
- gamut conversion
- compression
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
Abstract
【課題】必要な記憶容量を削減すること。
【解決手段】色域変換装置100は、入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換装置であって、色域変換における色域圧縮強度を決定する強度決定手段104と、色域圧縮強度に応じて第1の閾値を決定する閾値決定手段104と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第1の特徴量を算出する特徴量算出手段104と、第1の特徴量から第1の閾値をオフセットした値を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、圧縮ゲインを取得するゲイン取得手段104と、入力画像に圧縮ゲインを適用することで、色域変換を行う色域変換手段104と、を備える。
【選択図】図1
【解決手段】色域変換装置100は、入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換装置であって、色域変換における色域圧縮強度を決定する強度決定手段104と、色域圧縮強度に応じて第1の閾値を決定する閾値決定手段104と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第1の特徴量を算出する特徴量算出手段104と、第1の特徴量から第1の閾値をオフセットした値を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、圧縮ゲインを取得するゲイン取得手段104と、入力画像に圧縮ゲインを適用することで、色域変換を行う色域変換手段104と、を備える。
【選択図】図1
Description
本発明は、色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法に関する。
入力画像の色域より、当該入力画像を出力する出力デバイスの色域が狭い場合、出力デバイスの色域外に位置する色は、出力デバイスの色域の境界にクリップされ、階調変化が消失したり、色相が意図した色相から変化したりするといった問題が生じる。この様な問題を解決する手段として、ガマットマッピングという入力画像の色域から出力デバイスの色域に変換する方法が各種提案されている。例えば、圧縮方法(知覚的、絶対的、相対的)や圧縮のマップ方法などに応じたガマットマッピング調整データが複数用意されており、指示されたガマットマッピング調整データである出力調整用3D−LUTをデータ蓄積手段から取り込んで画像変換を行う画像処理装置が提案されている(特許文献1参照)。
入力画像の色域から出力デバイスの色域へ圧縮する際、最適な色域圧縮強度は、出力デバイスの色域の大きさに対する入力画像の色域の大きさによって異なる。したがって、最適な色域圧縮強度で色域圧縮を行うためには、出力デバイスの色域の大きさに対する入力画像の色域の大きさに応じて、上記従来技術のようにガマットマッピング用の3D−LUTデータを複数用意しておくことが考えられる。しかしながら、このようにすると、複数の3D−LUTデータを記憶手段に記憶しておかなければならず、多くの記憶容量が必要となるというという問題があった。
(1)請求項1に記載の発明による色域変換装置は、入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換装置であって、色域変換における色域圧縮強度を決定する強度決定手段と、色域圧縮強度に応じて第1の閾値を決定する閾値決定手段と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第1の特徴量を算出する特徴量算出手段と、第1の特徴量から第1の閾値をオフセットした値を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、圧縮ゲインを取得するゲイン取得手段と、入力画像に圧縮ゲインを適用することで、色域変換を行う色域変換手段と、を備えることを特徴とする。
(2)請求項6に記載の発明によるデジタルカメラは、被写体像を撮像する撮像手段と、請求項1〜5のいずれか一項に記載の色域変換装置と、を備え、色域変換装置は、撮像手段により撮像された画像に対して色域変換を行うことを特徴とする。
(3)請求項7に記載の発明による色域変換プログラムは、コンピュータを、請求項1〜5のいずれか一項に記載の色域変換装置として機能させることを特徴とする。
(4)請求項8に記載の発明による色域変換方法は、入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換方法であって、色域変換における色域圧縮強度を決定する強度決定工程と、色域圧縮強度に応じて第1の閾値を決定する閾値決定工程と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第1の特徴量を算出する特徴量算出工程と、第1の特徴量から第1の閾値をオフセットした値を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、圧縮ゲインを取得するゲイン取得工程と、入力画像に圧縮ゲインを適用することで、色域変換を行う色域変換工程と、を有することを特徴とする。
(2)請求項6に記載の発明によるデジタルカメラは、被写体像を撮像する撮像手段と、請求項1〜5のいずれか一項に記載の色域変換装置と、を備え、色域変換装置は、撮像手段により撮像された画像に対して色域変換を行うことを特徴とする。
(3)請求項7に記載の発明による色域変換プログラムは、コンピュータを、請求項1〜5のいずれか一項に記載の色域変換装置として機能させることを特徴とする。
(4)請求項8に記載の発明による色域変換方法は、入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換方法であって、色域変換における色域圧縮強度を決定する強度決定工程と、色域圧縮強度に応じて第1の閾値を決定する閾値決定工程と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第1の特徴量を算出する特徴量算出工程と、第1の特徴量から第1の閾値をオフセットした値を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、圧縮ゲインを取得するゲイン取得工程と、入力画像に圧縮ゲインを適用することで、色域変換を行う色域変換工程と、を有することを特徴とする。
本発明によれば、必要な記憶容量を削減することができる。
以下、図面を参照して本発明を実施するための形態について説明する。図1は、本発明の一実施形態による色域変換装置100の構成を例示するブロック図である。本実施形態では、色域変換装置100としてデジタルカメラを用いる例を説明する。デジタルカメラ100は、操作部材101と、撮像レンズ102と、撮像素子103と、制御装置104と、メモリカードスロット105と、モニタ106とを備える。操作部材101は、使用者によって操作される種々の入力部材、例えば電源ボタン、レリーズボタン、ズームボタン、メニューボタンなどを含む。
撮像レンズ102は、被写体像を撮像素子103の撮像面に結像するように配置されている。撮像レンズ102は、図1では代表して1枚のレンズで表しているが、実際は複数の光学レンズから構成される。
撮像素子103は、例えばCMOSイメージセンサなどによって構成される。撮像素子103は、撮像レンズ102で結像される被写体像を撮像し、得られた画像信号を制御装置104へ出力する。撮像素子103には、R(赤)、G(緑)、B(青)がBayer配列されたカラーフィルタが形成されている。このため、デジタルカメラ100で取得される画像の色は、機器依存のRGB表色系で表される。
制御装置104は、CPU、メモリ、およびその他の周辺回路により構成され、デジタルカメラ100が行う撮影動作を制御する。制御装置104を構成するメモリには、SDRAMやフラッシュメモリが含まれる。SDRAMは揮発性のメモリであって、制御装置104がプログラム実行時にプログラムを展開するためのワークメモリとして使用される。また、SDRAMは、データを一時的に記憶するためのバッファメモリとしても使用される。一方、フラッシュメモリは不揮発性のメモリであって、制御装置104が実行するプログラムや、プログラム実行時に読込まれる種々のパラメータなどを記憶する。
メモリカードスロット105は、記憶媒体としてのメモリカードを挿入するためのスロットである。制御装置104は、撮影処理を行うことによって生成した画像ファイルを、メモリカードスロット105に挿入されているメモリカードへ書込んで記録する。また、制御装置104は、メモリカードスロット105に挿入されているメモリカード内に記録されている画像ファイルを読込む。
モニタ106は、デジタルカメラ100の背面に搭載された液晶モニタ(いわゆる背面モニタ)である。当該モニタ106には、メモリカードに記録されている画像ファイルに基づく再生画像や、デジタルカメラ100を設定するための設定メニューなどが表示される。また、使用者が操作部材101を操作してデジタルカメラ100を、背面液晶を使用する撮影モードに設定すると、制御装置104は、撮像素子103から時系列で取得した画像の表示用画像データをモニタ106に出力する。これにより、モニタ106にスルー画を表示することもできる。
本実施形態は、上記デジタルカメラ100が実行する画像処理に特徴を有するので、以下の説明はこの画像処理を中心に行う。図2は、この画像処理の流れを説明するフローチャートである。なお、この画像処理は、制御装置104のメモリに記憶された画像処理プログラムに従って制御装置104が実行する処理である。
図2のステップS1において、制御装置104は、撮像素子103から読み出された撮像画像を取得して、ステップS2へ進む。なお、この撮像画像は、補間処理、ホワイトバランス処理、ノイズ除去処理などが行われる前のデータ(RAWデータ)である。
ステップS2において、制御装置104は、ステップS1で取得した撮像画像を、複数画素を加算して平均することにより縮小して、RGB縮小画像を生成し、ステップS3へ進む。なお、このRGB縮小画像は、後述するガマットマッピングにおける色域圧縮レベル(色域圧縮強度)を決定するために用いられる画像である。
ステップS3において制御装置104は、RGB縮小画像に対してホワイトバランス処理を施した後、撮像素子103固有のRGB空間から、画像を出力する色空間(出力色空間)へ変換する。この変換は、画像を出力する色空間(出力色空間)として例えばsRGB空間を利用する場合、以下の式(1)〜(2)により行われる。なお、以下の式(1)〜(2)において、(R,G,B)は、式(1)の入力値(RGB縮小画像)である。(R1,G1,B1)は、式(1)の出力値且つ式(2)の入力値である。(R2,G2,B2)は、式(2)の出力値である。また、MRGB2XYZは、撮像素子103固有のRGB空間からXYZ空間(例えばCIE 1964 XYZ)へ変換するための変換マトリックスであり、撮像素子103の分光感度特性や撮影時の照明条件などに基づいて決定される。また、MXYZ2sRGBは、XYZ空間からsRGB空間へ変換するための変換マトリックスである。また、LUT1は、標準のsRGB空間におけるγ変換を行うためのルックアップテーブルである。
そして制御装置104は、sRGB空間に変換した縮小画像に対して、階調補正や彩度補正などの色補正処理を施して、ステップS4へ進む。なお、この色補正処理は、後述する本画像(この画像処理において実際に出力する画像)向けの色補正処理(ステップS13〜S14)と同等であることが望ましい。しかしながら、縮小画像は出力色空間の色域外の画素数や画素分布を算出するために用いられる画像であるため、処理負荷の都合から、本画像向けの色補正処理に近似した処理を施すようにしてもよい。この場合、特に出力色空間の色域境界付近から色域外に位置する色に対する処理が、より正確となる(すなわち色域内の色は色域内に補正され、色域外の色は色域外の色に補正される)ように、近似処理を決定する方が望ましい。
ステップS4において制御装置104は、ステップS3の色補正処理後のRGB縮小画像において、次式(3)を用いて、画素ごとに、R値G値B値の中で最も大きい値をmaxRGB(x,y)として算出する。なお、(x,y)は、画素の座標を示す。
maxRGB(x,y) = Max(R(x,y), G(x,y), B(x,y)) …(3)
maxRGB(x,y) = Max(R(x,y), G(x,y), B(x,y)) …(3)
また、制御装置104は、次式(4)を用いて、画素ごとに、R値G値B値の中で最も小さい値にマイナスを乗算した値を、minRGB(x,y)として算出する。
minRGB(x,y) = - Min(R(x,y), G(x,y), B(x,y)) …(4)
minRGB(x,y) = - Min(R(x,y), G(x,y), B(x,y)) …(4)
さらに、制御装置104は、次式(5)を用いて、画素ごとに、R値G値B値の中で最も大きな値と最も小さい値との差分を、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)) …(5)
maxmin(x,y) = Max(R(x,y), G(x,y), B(x,y)) - Min(R(x,y), G(x,y), B(x,y)) …(5)
このようにして制御装置104は、maxRGB(x,y)、minRGB(x,y)、maxmin(x,y)を各画素において算出すると、ステップS5へ進む。
ステップS5において制御装置104は、maxRGB(x,y)およびminRGB(x,y)の度数分布を求める。まず、制御装置104は、出力色空間がnビットの空間である場合、maxRGB(x,y)>(2n−1)−αを満たす画素について、複数のデータ区間でmaxRGB(x,y)の度数分布を表す第1のヒストグラムを生成する。この第1のヒストグラムは、R値G値B値の中で最も大きい値が出力色空間の色域の最大値2n−1よりも大きくなる画素、すなわち出力色空間の色域外の画素におけるmaxRGB(x,y)の分布を表すためのヒストグラムである。またα=0の場合、第1のヒストグラムは、出力色空間の色域外の画素のみの分布であるが、α>0の場合、第1のヒストグラムには、出力色空間の色域内における一部の画素の分布も含まれる。なお、α<0の場合、第1のヒストグラムは、出力色空間の色域境界よりもα以上外側の画素についての分布となる。このようにαは、第1のヒストグラムにおいて、出力色空間の色域境界近傍の画素を考慮する程度を調整するためのパラメータである。αは、例えば、縮小画像向けの色補正処理(ステップS3)と、後述する本画像向けの色補正処理(ステップS8〜S14)の違いに応じて設定される。
また制御装置104は、minRGB(x,y)>(−β)を満たす画素について、複数のデータ区間でminRGB(x,y)の度数分布を表す第2のヒストグラムを生成する。この第2のヒストグラムは、R値G値B値の中で最も小さい値が出力色空間の色域の最小値0よりも小さくなる画素、すなわち出力色空間の色域外の画素におけるminRGB(x,y)の分布を表すためのヒストグラムである。またβ=0の場合、第2のヒストグラムは、出力色空間の色域外の画素のみの分布であるが、β>0の場合、第2のヒストグラムには、出力色空間の色域内における一部の画素の分布も含まれる。なお、β<0の場合、第2のヒストグラムは、出力色空間の色域境界よりもβ以上外側の画素についての分布となる。このようにβは、第2のヒストグラムにおいて、出力色空間の色域境界近傍の画素を考慮する程度を調整するためのパラメータである。βは、例えば、縮小画像向けの色補正処理(ステップS3)と、後述する本画像向けの色補正処理(ステップS8〜S14)の違いに応じて設定される。
なお、有彩色の階調表現を重視する場合には、無彩色に近い画素を、第1のヒストグラムおよび第2のヒストグラムの度数カウントから除外する処理を追加する。無彩色に近い画素は、R値G値B値がほぼ同じ値となるため、R値G値B値の中で最も大きい値と最も小さい値との差分が小さくなる。そこで、制御装置104は、maxmin(x,y)が所定の閾値acLimit(無彩色とみなされる閾値)以下である画素(すなわちmaxmin(x,y)<=acLimitを満たす画素)を、無彩色に近い画素と判定して、第1のヒストグラムおよび第2のヒストグラムの度数カウントから除外する。
次に制御装置104は、第1のヒストグラムに対し、maxRGB(x,y)が各データ区間の最小値以上となる総画素数をカウントする第1の累積ヒストグラムを生成する。また、制御装置104は、第2のヒストグラムに対し、minRGB(x,y)が各データ区間の最小値以上に位置する総画素数をカウントする第2の累積ヒストグラムを生成する。すなわち、第1の累積ヒストグラムおよび第2の累積ヒストグラムともに、最小データ区間から画素数を累積するのではなく、最大データ区間から画素数を累積する。例えば、図3(A)に示すヒストグラムにおける、最大データ空間からの累積ヒストグラムを、図3(B)に示す。
このようにして制御装置104は、maxRGB(x,y)およびminRGB(x,y)の度数分布を表す第1の累積ヒストグラムおよび第2の累積ヒストグラムを生成すると、ステップS6へ進む。
ステップS6において制御装置104は、ガマットマッピングにおける色域圧縮レベル(色域圧縮強度)を算出する。本実施形態のガマットマッピングでは、出力色空間の色域外にある色において、RGBのいずれかが最大値よりも大きい領域にある色とRGBのいずれかが負値となる領域にある色とでガマットマッピングの方法を変えるようになっている。以下、RGBのいずれかが最大値よりも大きい領域にある色を圧縮するためのガマットマッピングを高輝度ガマットマッピングと呼び、RGBのいずれかが負値となる領域にある色を圧縮するためのガマットマッピングを低輝度ガマットマッピングと呼ぶ。高輝度ガマットマッピングおよび低輝度ガマットマッピングについて、詳しくは後述する。ステップS6では、色域圧縮レベルを、高輝度ガマットマッピングおよび低輝度ガマットマッピングのそれぞれにおいて設定する。
具体的に制御装置104は、第1の累積ヒストグラムにおいて、累積画素数が所定閾値nlim1よりも大きくなるデータ区間のレベルk1を、高輝度ガマットマッピング用の色域圧縮レベルk1として算出する。すなわち、(2n-1) - α + k1 * width1 < maxRGB(x,y)を満たす画素の数がnlim1よりも大きく、且つ(2n-1) - α +(k1+1)* width1 < maxRGB(x,y)を満たす画素の数がnlim1よりも小さいk1を算出する。なお、width1は第1の累積ヒストグラムにおけるデータ区間の幅である。
また、制御装置104は、第2の累積ヒストグラムにおいて、累積画素数が所定閾値nlim2よりも大きくなるデータ区間のレベルk2を、低輝度ガマットマッピング用の色域圧縮レベルk2として算出する。すなわち、-β + k2 * width2 < minRGB(x,y)を満たす画素の数がnlim2よりも大きく、且つ-β +(k2+1)* width2 < minRGB(x,y)を満たす画素の数がnlim2よりも小さいk2を算出する。なお、width2は第2の累積ヒストグラムにおけるデータ区間の幅である。
これにより、出力色空間の色域境界からの距離が遠い画素の数が多いほど、高輝度ガマットマッピングまたは低輝度ガマットマッピングにおける色域圧縮レベルが大きくなる。
このようにして制御装置104は、高輝度ガマットマッピングおよび低輝度ガマットマッピングの色域圧縮レベルk1,k2をそれぞれ算出すると、ステップS7へ進む。
ステップS7において制御装置104は、maxRGB(x,y)>(2n−1)−αを満たす画素数Nmaxが所定の閾値nLim3以上(すなわちNmax≧nLim3を満たす)の場合は、高輝度ガマットマッピング用の色域圧縮レベルk1を、次式(6)を用いて補正する。
k1=k1+1 …(6)
なお、nLim3を複数レベル用意しておき(nLim3(i1) i1=1,2,...)、nLim3(i+1)>Nmax≧nLim3(i1)の場合、k1=k1+i1としてもよい。
k1=k1+1 …(6)
なお、nLim3を複数レベル用意しておき(nLim3(i1) i1=1,2,...)、nLim3(i+1)>Nmax≧nLim3(i1)の場合、k1=k1+i1としてもよい。
また、制御装置104は、minRGB(x,y)>(−β)を満たす画素数Nminが所定の閾値nLim4以上(すなわちNmin≧nLim4を満たす)の場合は、低輝度ガマットマッピング用の色域圧縮レベルk2を、次式(7)を用いて補正する。
k2=k2+1 …(7)
なお、nLim4を複数レベル用意しておき(nLim4(i2) i2=1,2,...)、nLim4(i+1)>Nmin≧nLim4(i2)の場合、k2=k2+i2としてもよい。
k2=k2+1 …(7)
なお、nLim4を複数レベル用意しておき(nLim4(i2) i2=1,2,...)、nLim4(i+1)>Nmin≧nLim4(i2)の場合、k2=k2+i2としてもよい。
この補正により、出力色空間の色域外である画素の数が多いほど、高輝度ガマットマッピングまたは低輝度ガマットマッピングにおける色域圧縮レベルが大きくなる。
このようにして制御装置104は、高輝度ガマットマッピングおよび低輝度ガマットマッピングの色域圧縮レベルk1,k2を補正すると、ステップS8へ進む。
ステップS8において制御装置104は、ステップS1で取得した撮像画像に対して、補間、ホワイトバランス、ノイズ除去などの処理を施して、ステップS9へ進む。なお、ステップS8以降の処理は、本画像(この画像処理において実際に出力する画像)向けの処理である。
ステップS9において制御装置104は、ステップS8で処理が施されたRGB画像を、撮像素子103固有のRGB空間から出力色空間へ変換してステップS10へ進む。この変換は、出力色空間として例えばsRGB空間を利用する場合、上記式(1)および(2)を用いて行う。
ステップS10において制御装置104は、ステップS9で出力色空間に変換された撮像画像を、ガマットマッピングを行うための色空間であるYCC空間に変換して、ステップS11へ進む。この変換は、出力色空間として例えばsRGB空間を利用する場合、以下の式(8)により行われる。なお、以下の式(8)において、(R,G,B)は式(8)の入力値であり、(Y,Cb,Cr)は、式(8)の出力値である。また、MsRGB2YCCは、sRGB空間からYCC空間へ変換するための変換マトリックスである。
ステップS11において制御装置104は、ステップS10で変換されたYCbCr画像データにおいて、1画素ごとに色相を算出して、ステップS12へ進む。なお、色相は、例えばCbとCrとの比や、CrまたはCbと、CrおよびCbの絶対値を用いた彩度近似値との比に基づいて算出される。
ステップS12において制御装置104は、YCbCr画像データの1画素ごとに、ステップS11で算出した色相の等色相面における出力色空間(sRGB空間)の色域形状を算出する。
YCC空間における等色相面において、出力色空間(sRGB空間)の色域を表すと、図4に示すように、黒色点Bpと白色点Wpと最大彩度点Cpとを結んだ三角形で近似して表すことができる。なお、図4において、縦軸が輝度(Y)であり、横軸が彩度(C)である。YCC空間では、Y軸方向が輝度を表し、CbCr面での原点まわりの角度が色相を表す。つまり、Y軸を含んでCb軸あるいはCr軸と一定の角度をなす平面上の色はみな同じ色相となり、これを等色相面と呼んでいる。等色相面ではY軸からの距離が彩度を表している。また、黒色点Bpは、出力色空間で表現しうる最も輝度が低い色を示し、白色点Wpは、出力色空間で表現しうる最も輝度が高い色を示す。最大彩度点Cpは、各色相において出力色空間で表現しうる最も彩度が高い色を示す。
また、出力色空間の色域形状は、色相によって異なる。これは、最大彩度点Cpにおける輝度が色相によって異なるためである。例えば、赤や青は黄色より暗く感じられるため、図5に示すように、赤や青の最大彩度点Cpにおける輝度は、黄色の最大彩度点Cpにおける最大輝度より低い。また、有彩色の最大彩度点Cpの輝度は、無彩色の最大輝度(すなわち白色点Wp)よりも低い。
ステップS12では、各画素の色相について、等色相面における、白色点Wpと最大彩度点Cpとを通る第1の直線L1の傾き(以下、第1の傾きと呼ぶ)pdy1と、黒色点Bpと最大彩度点Cpとを通る第2の直線L2の傾き(以下、第2の傾きと呼ぶ)pdy2とを、対象画素の色相における出力色空間の色域形状として算出する。なお、本説明においては、傾きを絶対値で扱うこととし、pdy1およびpdy2もそれぞれ絶対値で算出する。またここでは、黒色点Bpの輝度および彩度を(0,0)とし、白色点Wpの輝度および彩度を(1,0)として、各画素の輝度および彩度が正規化されているとする。
ここで、赤、黄、緑における第1の傾きpdy1は、それぞれ反対色であるシアン、青、マゼンタにおける第2の傾きpdy2と等しい。一方、赤、黄、緑における第2の傾きpdy2は、それぞれ反対色であるシアン、青、マゼンタにおける第1の傾きpdy1と等しい。そこで、制御装置104内のメモリ(不図示)には、少なくとも3色(例えば赤、黄、緑)において、それぞれ第1の傾きpdy1および第2の傾きpdy2が予め記録されている。制御装置104は、このメモリに記録された赤、黄、緑における第1の傾きpdy1および第2の傾きpdy2に基づいて、シアン、青、マゼンタにおける第1の傾きpdy1および第2の傾きpdy2についても求めることができる。
ステップS12では、この計6色(赤、黄、緑、シアン、青、マゼンタ)のうち、対象画素の色相に隣接する2色相における第1の傾きpdy1および第2の傾きpdy2を用いて、対象画素の色相における第1の傾きpdy1および第2の傾きpdy2を算出する。例えば、対象画素の色相が緑からシアンの間にある場合は、メモリに記録された赤における第1の傾きpdy1および第2の傾きpdy2を用いて、シアンにおける第1の傾きpdy1および第2の傾きpdy2を求める。そして、このシアンにおける第1の傾きpdy1および第2の傾きpdy2と、メモリに記録された緑における第1の傾きpdy1および第2の傾きpdy2を、対象画素の色相と緑およびシアンとの差分を考慮して重み付けして、対象画素の色相における第1の傾きpdy1および第2の傾きpdy2を算出する。
このようにして制御装置104は、YCbCr画像データの1画素ごとに、その画素の色相における第1の傾きpdy1および第2の傾きpdy2を算出して、ステップS13へ進む。
ステップS13において制御装置104は、YCbCr画像データに対して階調補正を行う。この階調補正では、輝度(Y)軸に沿って補正するのではなく、図6に示すように、補正を行う画素の色(補正対象色)の等色相面において、補正対象色の輝度および彩度を示す点(補正対象色点)Tpと黒色点Bpとを結ぶ第3の直線L3に沿って輝度および彩度が変化するように補正する。
この階調補正について具体的に説明する。なお、以下の説明において、YCbCr画像データは、Yの最小値(最小輝度)を0とし、Yの最大値(最大輝度)を1として正規化された値を用いている。まず、制御装置104は、補正対象色のCb値およびCr値から、次式(4)により、補正対象色の彩度Cを算出する。式(9)における除算(/4)はビットシフトを用いて対応してもよい。
C = (|Cb|+|Cr|+|Cb + Cr|+|Cb - Cr|)/4 …(9)
C = (|Cb|+|Cr|+|Cb + Cr|+|Cb - Cr|)/4 …(9)
なお、処理負荷を軽くしつつ良好な彩度近似値を算出するため、式(9)を用いたが、処理負荷に余裕がある場合は、次の式(10)を用いたり、式(9)、(10)以外の式で彩度Cを算出したりしてもよい。
C = (Cb2+ Cr2)1/2 …(10)
C = (Cb2+ Cr2)1/2 …(10)
次に、制御装置104は、第3の直線L3を軸とする座標系(以下、階調補正座標系と呼ぶ)における補正対象色点Tpの座標値を階調補正パラメータyGainInとして算出する。この階調補正座標系は、黒色点Bpの座標値が0であり、第3の直線L3と第1の直線L1との交点P31の座標値が1であり、黒色点Bpから交点P31へ向かう方向に座標値が大きくなる座標系であるとする。具体的には、制御装置104は、補正対象色の輝度Yおよび彩度Cと第1の傾きpdy1とを用いて、次式(11)により、階調補正パラメータyGainInを算出する。
yGainIn = Y + C * pDy1 …(11)
yGainIn = Y + C * pDy1 …(11)
すなわち、補正対象色点Tpが黒色点Bp上にあればyGainIn=0となり、補正対象色点Tpが交点P31上にあればyGainIn=1となる。また、補正対象色点Tpが黒色点Bpと交点P31との間にある場合は、0<yGainIn<1となり、補正対象色点Tpが交点P31に近くなるほどyGainInは1に向かって大きくなり、補正対象色点Tpが黒色点Bpに近くなるほどyGainInは0に向かって小さくなる。また、補正対象色点Tpが交点P31よりも黒色点Bpから遠い場合には、yGainIn>1となる。この場合、補正対象色点Tpは出力色空間の色域外に位置している。
次に、制御装置104は、階調補正ゲインyGainを求める。階調補正ゲインyGainとは、階調補正前の輝度(Input)に対する階調補正後の輝度(Output)の比(Output/Input)である。階調補正ゲインyGainは、例えば、図7に示すようなS字の階調カーブTcを用いて階調補正が行われるように設定されている。なお、図7では、横軸がInputであり、縦軸がOutputである。また、階調補正ゲインyGainは、Inputが0以上1以下である場合にはInputに階調補正ゲインyGainを乗算した値であるOutputが0以上1以下となるように設定されており、色域内の色は色域内に変換される。なお、Inputが1より大きい場合にはInputに階調補正ゲインyGainを乗算した値であるOutputが1より大きくなるように設定されており、色域外の色は色域外に変換される。
制御装置104のメモリには、Inputを入力すると、このように設定された階調補正ゲインyGainを出力するルックアップテーブルLUT2が予め記録されている。制御装置104は、このルックアップテーブルLUT2を用いて、次式(12)により階調補正ゲインyGainを算出する。すなわち、階調補正パラメータyGainInをルックアップテーブルLUT2の入力値として階調補正ゲインyGainを求める。
yGain = LUT2(yGainIn) …(12)
yGain = LUT2(yGainIn) …(12)
次に、制御装置104は、次式(13)〜(16)により、補正対象色のYCbCrおよび彩度Cに対して、それぞれ階調補正ゲインyGainを乗算することで、階調が補正されたY1Cb1Cr1および彩度C1を算出する。
Y1 = Y * yGain …(13)
Cb1 = Cb * yGain …(14)
Cr1 = Cr * yGain …(15)
C1 = C * yGain …(16)
Y1 = Y * yGain …(13)
Cb1 = Cb * yGain …(14)
Cr1 = Cr * yGain …(15)
C1 = C * yGain …(16)
以上のように制御装置104は、YCbCr画像データの各画素に対して上記階調補正を行うと、ステップS14へ進む。
ステップS14において制御装置104は、ステップS13の階調補正後の画像データ(Y1Cb1Cr1)に対して、彩度補正を行う。この彩度補正では、彩度(C)軸に沿って補正するのではなく、図8に示すように、補正対象色点Tpを通り且つ第1の直線L1に平行である第4の直線L4に沿って輝度および彩度が変化するように補正する。
この彩度補正について具体的に説明する。まず、制御装置104は、第4の直線L4を軸とする座標系(以下、彩度補正座標系と呼ぶ)における補正対象色点Tpの座標値を彩度補正パラメータcGainInとして算出する。この彩度補正座標系では、第2の直線L2と第4の直線L4との交点P42の座標値が1であり、第4の直線L4と輝度(Y)軸(すなわち黒色点Bpと白色点Wpとを通る直線)との交点P4Yから交点P42へ向かう方向に座標値が大きくなる座標系であるとする。具体的には、制御装置104は、補正対象色の輝度Y1および彩度C1と第2の傾きpdy2とを用いて、次式(17)により、彩度補正パラメータcGainInを算出する。
cGainIn = 1 -Y1 + pDy2 * C1 …(17)
cGainIn = 1 -Y1 + pDy2 * C1 …(17)
すなわち、補正対象色点Tpが交点P42上にあればcGainIn=1となる。また、補正対象色点Tpが交点P4Yと交点P42との間にある場合は、cGainIn<1となり、補正対象色点Tpが交点P42に近くなるほどcGainInは1に向かって大きくなり、補正対象色点Tpが交点P4Yに近くなるほどcGainInは小さくなる。また、補正対象色点Tpが交点P42よりも交点P4Yから遠い場合には、cGainIn>1となる。この場合、補正対象色点Tpは出力色空間の色域外に位置している。
次に、制御装置104は、彩度補正ゲインcGainを求める。彩度補正ゲインcGainとは、彩度補正前の彩度(Input)に対する彩度補正後の彩度(Output)の比(Output/Input)である。彩度補正ゲインcGainは、例えば、Inputに対して上述した図7と同様のS字状である彩度カーブを用いて彩度補正が行われるように設定されている。また、彩度補正ゲインcGainは、Inputが0以上1以下である場合にはInputに彩度補正ゲインcGainを乗算した値であるOutputが0以上1以下となるように設定されており、色域内の色は色域内に変換される。なお、Inputが1より大きい場合にはInputに彩度補正ゲインcGainを乗算した値であるOutputが1より大きくなるように設定されており、色域外の色は色域外に変換される。
制御装置104のメモリには、Inputを入力すると、このように設定された彩度補正ゲインcGainを出力するルックアップテーブルLUT3が予め記録されている。制御装置104は、このルックアップテーブルLUT3を用いて、次式(18)により彩度補正ゲインcGainを算出する。すなわち、彩度補正パラメータcGainInをルックアップテーブルLUT3の入力値として彩度補正ゲインcGainを求める。
cGain = LUT3(cGainIn) …(18)
cGain = LUT3(cGainIn) …(18)
次に、制御装置104は、補正対象色のY1およびC1と第1の傾きpdy1と彩度補正ゲインcGainとに基づいて、次式(19)により、彩度が補正されたY2を算出する。また制御装置104は、次式(20)〜(22)により、補正対象色のCb1Cr1および彩度C1に対して、それぞれ彩度補正ゲインcGainを乗算することで、彩度が補正されたCb2Cr2および彩度C2を算出する。
Y2 = Y1 - C1 * (cGain-1) * pDy1 …(19)
Cb2 = Cb1 * cGain …(20)
Cr2 = Cr1 * cGain …(21)
C2 = C1 * cGain …(22)
Y2 = Y1 - C1 * (cGain-1) * pDy1 …(19)
Cb2 = Cb1 * cGain …(20)
Cr2 = Cr1 * cGain …(21)
C2 = C1 * cGain …(22)
以上のように制御装置104は、YCbCr画像データの各画素に対して上記彩度補正を行うと、ステップS15へ進む。
ステップS15において制御装置104は、ステップS14の彩度補正後のYCbCr画像データに対して、低輝度ガマットマッピングおよび高輝度ガマットマッピングを行う。以下、低輝度ガマットマッピングおよび高輝度ガマットマッピングについて具体的に説明する。まず、低輝度ガマットマッピングについて説明する。低輝度ガマットマッピングでは、図9においてcGainIn>1の領域内に矢印で示すように、色変換を行う画素の色(変換対象色)の等色相面において、出力色空間の色域外から当該色域内に向かう方向に沿って、変換対象色に対して彩度を圧縮すると共に輝度を増加する補正を行う。
この補正では、輝度および彩度を補正する方向(色補正方向)の傾き(すなわち彩度の圧縮量に対する輝度の増加量の比)を、変換対象色の階調補正パラメータyGainInに応じて変更する。具体的に、変換対象色においてyGainIn=0の場合には、色補正方向の傾きを0とする(すなわち彩度のみを圧縮する)。また、変換対象色においてyGainIn=1の場合には、色補正方向の傾きを第1の傾きpdy1とする(すなわち白点Wpに向かう方向(第1の直線L1)に沿って補正する)。また、変換対象色において0<yGainIn<1の場合には、色補正方向の傾きが0よりも大きく且つpdy1よりも小さいとし、yGainInが大きくなるにつれ、色補正方向の傾きがpdy1に向かって大きくなるようにする。また、変換対象色においてyGainIn>1の場合には、yGainInが大きくなるにつれ、色補正方向の傾きがpdy1からさらに大きくなるようにする。したがって、0<yGainInの場合には、yGainInに応じて、輝度の補正量が単調増加するようになっている。なお、yGainIn>1の場合、低輝度ガマットマッピング後、後述する高輝度ガマットマッピングも行われることになるため、合成圧縮方向を考慮して、色補正方向傾きはyGainIn=1と同じくpdy1としてもよい。
また、色の圧縮率(圧縮ゲイン)については、低輝度ガマットマッピング用のルックアップテーブルLUT4に、変換対象色の彩度補正パラメータcGainInを入力して求める。ルックアップテーブルLUT4では、入力値(cGainIn)と出力値(圧縮ゲイン)との関係が図10に示す曲線で示されるように、入力値と出力値とが対応付けられている。図10に示す曲線は、入力値が所定の閾値a以下である場合に出力値が1となり(すなわち色圧縮を行わない)、入力値が当該閾値a以上である場合には出力値が1以下となり(すなわち色圧縮を行う)、閾値aにおいて滑らかにつながり且つ以後単調減少するような非線形関数である。
閾値a(すなわち圧縮を開始する値)は、ステップS7までで決定された低輝度ガマットマッピング用の色域圧縮レベルk2に基づいて設定される。色域圧縮レベルk2が0の場合、閾値a=1(色域内におけるcGainInの最大値)とし、色域圧縮レベルk2が大きくなるにつれ、閾値aを1から小さくする。すなわち、色域圧縮レベルk2が大きくなるほど、低輝度ガマットマッピングにおいて色域を圧縮する範囲を広くする。
なお、本実施形態では、制御装置104のメモリ(不図示)には、a=0の場合におけるルックアップテーブルLUT4のみを記憶しておく。制御装置104は、上述したようにして色域圧縮レベルk2に応じて閾値aを設定すると、彩度補正パラメータcGainInから閾値aをオフセットして、当該ルックアップテーブルLUT4の入力値とする(すなわち入力値をcGainIn−aとする)。
このようにすることにより、閾値a(すなわち圧縮を開始する値)を種々の値に変更しても、1つのルックアップテーブルLUT4のみで対応することができる。したがって、複数の閾値aに応じて複数のルックアップテーブルLUT4をメモリに記憶しておく必要がなく、1つのルックアップテーブルLUT4のみをメモリに記憶しておけばよいので、メモリ容量を節約することができる。
制御装置104は、以上のような低輝度ガマットマッピングを、次式(23)〜(26)を用いて行う。なお、式(23)〜(25)において、Y3Cb3Cr3は低輝度ガマットマッピング後の画像データである。
Y3 = Y2 + (1 - LUT4(cGainIn)) * C2 * pDy1 * yGainIn …(23)
Cb3 = Cb2* {LUT4(cGainIn) - (1 - LUT4(cGainIn))* pDy3 *(1 - yGainIn)} …(24)
Cr3 = Cr2* {LUT4(cGainIn) - (1 - LUT4(cGainIn))* pDy3 *(1 - yGainIn)} …(25)
pDy3 = pDy1 / pDy2 …(26)
Y3 = Y2 + (1 - LUT4(cGainIn)) * C2 * pDy1 * yGainIn …(23)
Cb3 = Cb2* {LUT4(cGainIn) - (1 - LUT4(cGainIn))* pDy3 *(1 - yGainIn)} …(24)
Cr3 = Cr2* {LUT4(cGainIn) - (1 - LUT4(cGainIn))* pDy3 *(1 - yGainIn)} …(25)
pDy3 = pDy1 / pDy2 …(26)
なお、式(23)では、yGainIn=1である場合(白点Wpに向かう補正の場合)における輝度の増加量に対してyGainInを乗算した量を、低輝度ガマットマッピング前の輝度Y2に加算することで、低輝度ガマットマッピング後の輝度Y3を求めている。すなわち、yGainInが大きくなるほど、輝度の増加量をより大きくし、色補正方向の傾きを大きくしている。
また、式(24)および(25)では、yGainIn=1である場合の輝度の増加量と当該増加量にyGainInを乗算した量(すなわち変換対象色における輝度の増加量)との差分に対して、第2の直線の傾きpdy2を除算した量を求め、この量を、低輝度ガマットマッピング前の彩度(色差Cb2Cr2)に対して圧縮ゲインを乗算した値から引算して、低輝度ガマットマッピング後の彩度(色差Cb3Cr3)を求めている。すなわち、yGainInが小さくなるほど上記引算する量を大きくすることで、彩度の圧縮量をより増やし、色補正方向の傾きを小さくしている。
次に、高輝度ガマットマッピングについて説明する。高輝度ガマットマッピングでは、図9においてyGainIn>1の領域内に矢印で示すように、変換対象色の等色相面において、色域境界(第1の直線L1)に向かって、輝度を変えずに彩度のみを圧縮する。色の圧縮率(圧縮ゲイン)については、高輝度ガマットマッピング用のルックアップテーブルLUT5に、変換対象色の階調補正パラメータyGainInを入力して求める。ルックアップテーブルLUT5では、ルックアップテーブルLUT4と同様に、入力値(yGainIn)と出力値(圧縮ゲイン)との関係が図10に示す曲線で示される。
また、ルックアップテーブルLUT5における閾値a(すなわち圧縮を開始する値)については、ステップS7までで決定された高輝度ガマットマッピング用の色域圧縮レベルk1に基づいて設定される。色域圧縮レベルk1が0の場合、閾値a=1(色域内におけるyGainInの最大値)とし、色域圧縮レベルk1が大きくなるにつれ、閾値aを1から小さくする。すなわち、色域圧縮レベルk1が大きくなるほど、高輝度ガマットマッピングにおいて色域を圧縮する範囲を広くする。
なお、本実施形態では、制御装置104のメモリ(不図示)には、a=0の場合におけるルックアップテーブルLUT5のみを記憶しておく。制御装置104は、上述したようにして色域圧縮レベルk1に応じて閾値aを設定すると、階調補正パラメータyGainInから閾値aをオフセットして、当該ルックアップテーブルLUT5の入力値とする(すなわち入力値をyGainIn−aとする)。
このようにすることにより、閾値a(すなわち圧縮を開始する値)を種々の値に変更しても、1つのルックアップテーブルLUT5のみで対応することができる。したがって、複数の閾値aに応じて複数のルックアップテーブルLUT5をメモリに記憶しておく必要がなく、1つのルックアップテーブルLUT5のみをメモリに記憶しておけばよいので、メモリ容量を節約することができる。
なお、ルックアップテーブルLUT4およびLUT5は同一の関数であっても異なる関数であってもよい。
制御装置104は、以上のような高輝度ガマットマッピングを、次式(27)〜(29)を用いて行う。なお、式(27)〜(29)において、Y3Cb3Cr3は低輝度ガマットマッピング後の画像データであり、Y4Cb4Cr4は高輝度ガマットマッピング後の画像データである。
Y4 = Y3 …(27)
Cb4 = Cb3* LUT5(yGainIn) …(28)
Cr4 = Cr3* LUT5(yGainIn) …(29)
Y4 = Y3 …(27)
Cb4 = Cb3* LUT5(yGainIn) …(28)
Cr4 = Cr3* LUT5(yGainIn) …(29)
このようにして制御装置104は、低輝度ガマットマッピングおよび高輝度ガマットマッピングを行うと、ステップS16へ進む。
ステップS16において制御装置104は、ステップS15のガマットマッピング後のYCbCr画像データを、公知の変換式を用いて出力色空間(ここではsRGB空間)の値へ変換して、ステップS17へ進む。
ステップS17において制御装置104は、ステップS16で出力色空間に変換した画像データを、出力ファイルフォーマットに従ってエンコーディングを行い、メモリカードスロット105に挿入されているメモリカードへ記録して、図2の画像処理を終了する。
上記画像処理によれば、例えば、図11(A)に模式的に示すように、入力画像の色域が狭く、出力色空間の色域内に元々収まっている場合には、色域圧縮レベルが0となり色域圧縮が全く行われないため、入力画像の彩度をそのまま再現することができる。
また、上記画像処理によれば、図11(B)に模式的に示すように、入力画像の色域が出力色空間の色域よりも少しだけ広い場合(入力画像の色が出力色空間の色域外に少しだけ分布している場合や、入力画像の一部の画素の色のみが出力色空間の色域外にある場合など)には、出力色空間の色域境界よりも少しだけ内側から色域圧縮が開始されるので、出力色空間の色域外の階調をつぶさずに色域内に変換することができる。
さらに、上記画像処理によれば、図11(C)に模式的に示すように、入力画像の色域が出力色空間の色域よりも大きく広い場合(入力画像の色が出力色空間の色域外に広く分布している場合や入力画像の多くの画素の色が出力色空間の色域外にある場合など)には、入力画像の色域の広がり度合いに応じて出力色空間の色域内のより内側から色域圧縮を開始することで、入力画像の広い色域を圧縮しても、入力画像の色が出力色空間の色域境界付近に固まることなく階調を再現することができる。
以上説明した実施形態によれば、次の作用効果が得られる。
(1)デジタルカメラ100は、色域変換における色域圧縮強度(色域圧縮レベル)を決定する制御装置104と、色域圧縮強度に応じて第1の閾値(閾値a)を決定する制御装置104と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第1の特徴量(yGainIn,cGainIn)を算出する制御装置104と、第1の特徴量から第1の閾値をオフセットした値(yGainIn−a,cGainIn−a)を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルLUT4,LUT5に入力することで、圧縮ゲイン(LUT5(yGainIn),LUT4(cGainIn))を取得する制御装置104と、入力画像に圧縮ゲインを適用することで、色域変換(低輝度ガマットマッピング、高輝度ガマットマッピング)を行う制御装置104と、を備える。これにより、1つのルックアップテーブルを記憶しておくだけで、異なる複数の色域圧縮強度に対応することができるので、必要な記憶容量を削減することができる。
(1)デジタルカメラ100は、色域変換における色域圧縮強度(色域圧縮レベル)を決定する制御装置104と、色域圧縮強度に応じて第1の閾値(閾値a)を決定する制御装置104と、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第1の特徴量(yGainIn,cGainIn)を算出する制御装置104と、第1の特徴量から第1の閾値をオフセットした値(yGainIn−a,cGainIn−a)を、色域変換を行うための圧縮ゲインを出力するルックアップテーブルLUT4,LUT5に入力することで、圧縮ゲイン(LUT5(yGainIn),LUT4(cGainIn))を取得する制御装置104と、入力画像に圧縮ゲインを適用することで、色域変換(低輝度ガマットマッピング、高輝度ガマットマッピング)を行う制御装置104と、を備える。これにより、1つのルックアップテーブルを記憶しておくだけで、異なる複数の色域圧縮強度に対応することができるので、必要な記憶容量を削減することができる。
(2)上記(1)のデジタルカメラ100において、ルックアップテーブルLUT4,LUT5では、入力値が大きいほど圧縮率が高くなるように、入力値に対して出力する圧縮ゲインが設定され、第1の特徴量(yGainIn,cGainIn)は、出力色空間の色域内では色域境界から遠いほど小さくなり、出力色空間の色域外では色域境界から遠いほど大きくなり、制御装置104は、色域圧縮強度が大きいほど第1の閾値(閾値a)を小さくするように構成した。これにより、色域圧縮強度が大きいほど、入力画像において色域圧縮を行う範囲を広くするということを、1つのルックアップテーブルのみを用いて行うことができる。
(3)上記(1)または(2)のデジタルカメラ100において、制御装置104は、入力画像の色域と出力色空間の色域とを解析した解析結果(第1の累積ヒストグラム、第2の累積ヒストグラム、Nmax、Nmin)に基づいて、色域圧縮強度を決定するように構成した。これにより、入力画像の色域と出力色空間の色域との相対関係に応じた最適な色域圧縮強度でガマットマッピングを行うことができる。
(4)上記(3)のデジタルカメラ100において、制御装置104は、入力画像における各画素の色について、出力色空間の色域境界からの距離に応じた第2の特徴量(maxRGB(x,y)、minRGB(x,y))を算出し、第2の特徴量が第2の閾値((2n−1)−α、(−β))より大きい画素数(Nmax、Nmin)、または第2の特徴量に応じた画素分布(第1の累積ヒストグラム、第2の累積ヒストグラム)の少なくともいずれかを、上記解析結果として用いるように構成した。これにより、簡易な処理によって上記解析結果を取得できるので、処理負荷をかけずに最適な色域圧縮強度でガマットマッピングを行うことができる。
(変形例1)
上述した実施の形態では、ステップS7において色域圧縮レベルを補正する閾値nLim3,nLim4を1つずつとし、1段階で色域圧縮レベルを補正する例について説明した。しかしながら、閾値nLim3,nLim4をそれぞれ複数用意し、複数段階で色域圧縮レベルを補正するようにしてもよい。
上述した実施の形態では、ステップS7において色域圧縮レベルを補正する閾値nLim3,nLim4を1つずつとし、1段階で色域圧縮レベルを補正する例について説明した。しかしながら、閾値nLim3,nLim4をそれぞれ複数用意し、複数段階で色域圧縮レベルを補正するようにしてもよい。
(変形例2)
低輝度ガマットマッピングおよび高輝度ガマットマッピングにおける色域圧縮レベルは、ガマットマッピングのモードに応じて調整してもよい。ガマットマッピングのモードとしては、例えば、階調重視モードと彩度重視モードとが設けられる。ユーザが操作部材101を操作することにより、階調重視モードまたは彩度重視モードのいずれかをガマットマッピングのモードとして選択できるようにする。ここで、階調重視モードとは、彩度は強調せず階調表現を重視するモードであり、彩度重視モードとは、高彩度で多少飽和気味でも彩度を残して表現し、全体の彩度感を重視するモードである
低輝度ガマットマッピングおよび高輝度ガマットマッピングにおける色域圧縮レベルは、ガマットマッピングのモードに応じて調整してもよい。ガマットマッピングのモードとしては、例えば、階調重視モードと彩度重視モードとが設けられる。ユーザが操作部材101を操作することにより、階調重視モードまたは彩度重視モードのいずれかをガマットマッピングのモードとして選択できるようにする。ここで、階調重視モードとは、彩度は強調せず階調表現を重視するモードであり、彩度重視モードとは、高彩度で多少飽和気味でも彩度を残して表現し、全体の彩度感を重視するモードである
変形例2において、制御装置104は、操作部材101からの操作信号に応じて彩度重視モードを選択した場合には、階調重視モードを選択した場合よりも色域圧縮レベルを低くしてガマットマッピングを行う。例えば、制御装置104は、階調重視モードを選択した場合は、上述した実施の形態のように決定された色域圧縮レベルを用いてガマットマッピングを行う。一方、制御装置104は、彩度重視モードを選択した場合は、上述した実施の形態のように決定された色域圧縮レベルよりも所定レベル低くした色域圧縮レベルでガマットマッピングを行う。
また、制御装置104は、階調重視モードを選択した場合は、上述した実施の形態のように決定された色域圧縮レベルを用いてガマットマッピングを行うが、彩度重視モードを選択した場合は、色域圧縮レベルを最低レベルに決定して、ガマットマッピングを行わないようにしてもよい。
(変形例3)
出力色空間の色域境界からの距離に応じた値(maxRGB(x,y)、minRGB(x,y))が第1の閾値((2n−1)−α、(−β))より大きい画素数(Nmax、Nmin)、または、当該値(maxRGB(x,y)、minRGB(x,y))に応じた画素分布(第1の累積ヒストグラム、第2の累積ヒストグラム)のいずれか一方のみに基づいて、色域圧縮レベルを決定するようにしてもよい。
出力色空間の色域境界からの距離に応じた値(maxRGB(x,y)、minRGB(x,y))が第1の閾値((2n−1)−α、(−β))より大きい画素数(Nmax、Nmin)、または、当該値(maxRGB(x,y)、minRGB(x,y))に応じた画素分布(第1の累積ヒストグラム、第2の累積ヒストグラム)のいずれか一方のみに基づいて、色域圧縮レベルを決定するようにしてもよい。
(変形例4)
上述した実施の形態では、処理負荷低減を考慮して、入力画像を縮小した縮小画像を用いて色域圧縮レベルを決定する例について説明した。しかしながら、処理負荷に余裕がある場合や、より適切な色域圧縮レベルを決定する場合には、縮小画像を生成せずに、入力画像から直接maxRGB(x,y)、minRGB(x,y)などを算出して色域圧縮レベルを決定するようにしてもよい。
上述した実施の形態では、処理負荷低減を考慮して、入力画像を縮小した縮小画像を用いて色域圧縮レベルを決定する例について説明した。しかしながら、処理負荷に余裕がある場合や、より適切な色域圧縮レベルを決定する場合には、縮小画像を生成せずに、入力画像から直接maxRGB(x,y)、minRGB(x,y)などを算出して色域圧縮レベルを決定するようにしてもよい。
(変形例5)
上述した実施の形態では、出力色空間であるsRGB空間で表された縮小画像からmaxRGB(x,y)、minRGB(x,y)を算出して、色域圧縮レベルを決定するようにしたが、これをYCC空間において行ってもよい。
上述した実施の形態では、出力色空間であるsRGB空間で表された縮小画像からmaxRGB(x,y)、minRGB(x,y)を算出して、色域圧縮レベルを決定するようにしたが、これをYCC空間において行ってもよい。
ここで、縮小画像を生成せずに色域圧縮レベルを決定する場合を例として説明する。まず、制御装置104は、ステップS14の彩度補正後のYCbCr画像データの各画素において、上記式(10)および式(16)により階調補正パラメータyGainInおよび彩度補正パラメータcGainInを算出する。制御装置104は、上述した実施の形態のmaxRGB(x,y)の代わりに階調補正パラメータyGainIn(x,y)を用いて、第1の累積ヒストグラムや画素数Nmaxを算出し、高輝度ガマットマッピング用の色域圧縮レベルk1を算出する。また、制御装置104は、上述した実施の形態のminRGB(x,y)の代わりに彩度補正パラメータcGainIn(x,y)を用いて、第2の累積ヒストグラムや画素数Nminを算出し、低輝度ガマットマッピング用の色域圧縮レベルk2を決定する。
なお、有彩色の階調表現を重視する場合は、maxmin(x,y)の代わりにcGainIn(x,y)を用いて無彩色に近い画素を判定する。具体的には、cGainIn(x,y)が所定閾値(無彩色とみなされる閾値)以下である画素を無彩色に近い画素として判定して、第1および第2のヒストグラムの度数カウントから除外する。
(変形例6)
上述した閾値nLim1、nLim2、nLim3、nLim4は、色域圧縮レベルの算出に用いる画像(縮小画像または入力画像)の総画素数に応じて設定されているようにしてもよい。閾値nLim1、nLim2、nLim3、nLim4は、画素数ではなく、上記総画素数に対する所定の割合として設定されているようにしてもよい。例えば、上記総画素数に対して、閾値nLim1、nLim2は0〜2%とし、閾値nLim3、nLim4は5〜10%としてもよい。
上述した閾値nLim1、nLim2、nLim3、nLim4は、色域圧縮レベルの算出に用いる画像(縮小画像または入力画像)の総画素数に応じて設定されているようにしてもよい。閾値nLim1、nLim2、nLim3、nLim4は、画素数ではなく、上記総画素数に対する所定の割合として設定されているようにしてもよい。例えば、上記総画素数に対して、閾値nLim1、nLim2は0〜2%とし、閾値nLim3、nLim4は5〜10%としてもよい。
(変形例7)
上述した実施の形態では、低輝度ガマットマッピングおよび高輝度ガマットマッピングのそれぞれにおいて色域圧縮レベルを決定するようにした。しかしながら、全ての領域で共通のガマットマッピングを行う場合には一つの色域圧縮レベルを決定するようにしてもよいし、3つ以上の領域で異なるガマットマッピングを行う場合には、それぞれの領域で色域圧縮レベルを決定するようにしてもよい。
上述した実施の形態では、低輝度ガマットマッピングおよび高輝度ガマットマッピングのそれぞれにおいて色域圧縮レベルを決定するようにした。しかしながら、全ての領域で共通のガマットマッピングを行う場合には一つの色域圧縮レベルを決定するようにしてもよいし、3つ以上の領域で異なるガマットマッピングを行う場合には、それぞれの領域で色域圧縮レベルを決定するようにしてもよい。
(変形例8)
上述した実施の形態では、出力色空間としてsRGB空間を用いる例について説明した。しかしながら、出力色空間として、AdobeRGBやその他の多原色色空間を用いるようにしてもよい。
上述した実施の形態では、出力色空間としてsRGB空間を用いる例について説明した。しかしながら、出力色空間として、AdobeRGBやその他の多原色色空間を用いるようにしてもよい。
(変形例9)
上述した実施の形態では、色補正を行う色空間としてYCC空間を用いる例について説明した。しかしながら、色補正を行う色空間として、CIELAB空間やHSV空間など、その他の輝度色差(彩度)分離空間を用いるようにしてもよい。
上述した実施の形態では、色補正を行う色空間としてYCC空間を用いる例について説明した。しかしながら、色補正を行う色空間として、CIELAB空間やHSV空間など、その他の輝度色差(彩度)分離空間を用いるようにしてもよい。
(変形例10)
上述した実施の形態では、デジタルカメラ100に色域変換装置を搭載する例を説明したが、色域変換装置をパーソナルコンピュータによって構成するようにしてもよい。また図12に示すパーソナルコンピュータ200に図2に例示したフローチャートの処理を行うプログラムを実行させることにより、色域変換装置を構成してもよい。プログラムをパーソナルコンピュータ200に取込んで使用する場合には、パーソナルコンピュータ200のデータストレージ装置にプログラムをローディングした上で、当該プログラムを実行させることによって色域変換装置として使用する。
上述した実施の形態では、デジタルカメラ100に色域変換装置を搭載する例を説明したが、色域変換装置をパーソナルコンピュータによって構成するようにしてもよい。また図12に示すパーソナルコンピュータ200に図2に例示したフローチャートの処理を行うプログラムを実行させることにより、色域変換装置を構成してもよい。プログラムをパーソナルコンピュータ200に取込んで使用する場合には、パーソナルコンピュータ200のデータストレージ装置にプログラムをローディングした上で、当該プログラムを実行させることによって色域変換装置として使用する。
パーソナルコンピュータ200に対するプログラムのローディングは、プログラムを格納したCD−ROMなどの記憶媒体201をパーソナルコンピュータ200にセットして行ってもよいし、ネットワークなどの通信回線202を経由する方法でパーソナルコンピュータ200へローディングしてもよい。通信回線202を経由する場合は、通信回線202に接続されたサーバー(コンピュータ)203のハードディスク装置204などにプログラムを格納しておく。プログラムは、記憶媒体201や通信回線202を介する提供など、種々の形態のコンピュータプログラム製品として供給することができる。
なお、パーソナルコンピュータ200が処理対象として入力する(ステップS1)RGB画像は、いわゆるRAWデータ(すなわち、撮像素子102の受光光量に対して線形階調のRGB画像)である。
以上の説明はあくまで一例であり、上記の実施形態の構成に何ら限定されるものではない。また、上記実施形態に各変形例の構成を適宜組み合わせてもかまわない。
100…デジタルカメラ、101…操作部材、102…撮像レンズ、103…撮像素子、104…制御装置、105…メモリカードスロット、106…モニタ
Claims (8)
- 入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換装置であって、
前記色域変換における色域圧縮強度を決定する強度決定手段と、
前記色域圧縮強度に応じて第1の閾値を決定する閾値決定手段と、
前記入力画像における各画素の色について、前記出力色空間の色域境界からの距離に応じた第1の特徴量を算出する特徴量算出手段と、
前記第1の特徴量から前記第1の閾値をオフセットした値を、前記色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、前記圧縮ゲインを取得するゲイン取得手段と、
前記入力画像に前記圧縮ゲインを適用することで、前記色域変換を行う色域変換手段と、
を備えることを特徴とする色域変換装置。 - 請求項1に記載の色域変換装置において、
前記ルックアップテーブルでは、入力値が大きいほど圧縮率が高くなるように、入力値に対して出力する圧縮ゲインが設定され、
前記第1の特徴量は、前記出力色空間の色域内では前記色域境界から遠いほど小さくなり、前記出力色空間の色域外では前記色域境界から遠いほど大きくなり、
前記閾値決定手段は、前記色域圧縮強度が大きいほど前記第1の閾値を小さくすることを特徴とする色域変換装置。 - 請求項1または2に記載の色域変換装置において、
前記強度決定手段は、前記入力画像の色域と前記出力色空間の色域とを解析した解析結果に基づいて、前記色域圧縮強度を決定することを特徴とする色域変換装置。 - 請求項3に記載の色域変換装置において、
前記強度決定手段は、前記入力画像における各画素の色について、前記出力色空間の色域境界からの距離に応じた第2の特徴量を算出し、前記第2の特徴量が第2の閾値より大きい画素数、または前記第2の特徴量に応じた画素分布の少なくともいずれかを、前記解析結果として用いることを特徴とする色域変換装置。 - 請求項1〜4のいずれか一項に記載の色域変換装置において、
階調表現を重視する第1のモードと彩度を残して再現する第2のモードとからいずれか一方を選択する選択手段をさらに備え、
前記強度決定手段は、前記選択手段の選択結果に基づいて前記色域圧縮強度を決定することを特徴とする色域変換装置。 - 被写体像を撮像する撮像手段と、
請求項1〜5のいずれか一項に記載の色域変換装置と、
を備え、
前記色域変換装置は、前記撮像手段により撮像された画像に対して前記色域変換を行うことを特徴とするデジタルカメラ。 - コンピュータを、請求項1〜5のいずれか一項に記載の色域変換装置として機能させることを特徴とする色域変換プログラム。
- 入力画像の色域を、当該入力画像を出力する出力色空間の色域へ変換する色域変換を行う色域変換方法であって、
前記色域変換における色域圧縮強度を決定する強度決定工程と、
前記色域圧縮強度に応じて第1の閾値を決定する閾値決定工程と、
前記入力画像における各画素の色について、前記出力色空間の色域境界からの距離に応じた第1の特徴量を算出する特徴量算出工程と、
前記第1の特徴量から前記第1の閾値をオフセットした値を、前記色域変換を行うための圧縮ゲインを出力するルックアップテーブルに入力することで、前記圧縮ゲインを取得するゲイン取得工程と、
前記入力画像に前記圧縮ゲインを適用することで、前記色域変換を行う色域変換工程と、
を有することを特徴とする色域変換方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012171360A JP2014033275A (ja) | 2012-08-01 | 2012-08-01 | 色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012171360A JP2014033275A (ja) | 2012-08-01 | 2012-08-01 | 色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014033275A true JP2014033275A (ja) | 2014-02-20 |
Family
ID=50282803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012171360A Pending JP2014033275A (ja) | 2012-08-01 | 2012-08-01 | 色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014033275A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116017171A (zh) * | 2023-02-01 | 2023-04-25 | 北京小米移动软件有限公司 | 一种图像处理方法、装置、电子设备、芯片及存储介质 |
-
2012
- 2012-08-01 JP JP2012171360A patent/JP2014033275A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116017171A (zh) * | 2023-02-01 | 2023-04-25 | 北京小米移动软件有限公司 | 一种图像处理方法、装置、电子设备、芯片及存储介质 |
CN116017171B (zh) * | 2023-02-01 | 2023-06-20 | 北京小米移动软件有限公司 | 一种图像处理方法、装置、电子设备、芯片及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8363125B2 (en) | Image processing apparatus, image processing method, and computer program product | |
JP4424216B2 (ja) | 画像処理装置、画像処理方法、および、画像処理プログラム | |
US8497926B2 (en) | Information processing apparatus, method, and program | |
US8199227B2 (en) | Image-signal processing apparatus for performing space-variant image-signal processing | |
KR101927968B1 (ko) | 메타 데이터에 기초하여 영상을 디스플레이하는 방법 및 디바이스, 그에 따른 기록매체 | |
EP2426928A2 (en) | Image processing apparatus, image processing method and program | |
JP4687673B2 (ja) | カラー画像のモノトーン化処理 | |
JP2004312467A (ja) | 撮像システム、画像処理プログラム | |
US20150215595A1 (en) | Image processor, imaging apparatus equipped with the same, and image processing method | |
JP4393491B2 (ja) | 画像処理装置およびその制御方法 | |
JP2012165204A (ja) | 信号処理装置、信号処理方法、撮像装置及び撮像処理方法 | |
JP2014033273A (ja) | 色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法 | |
JP2014072751A (ja) | 画像処理装置およびコンピュータプログラム | |
JP4001079B2 (ja) | カラー画像のモノトーン化処理 | |
JP2005354372A (ja) | 画像記録装置、画像記録方法、画像処理装置、画像処理方法、及び画像処理システム | |
JP4730837B2 (ja) | 画像処理方法、画像処理装置、プログラムおよび記録媒体 | |
WO2009093294A1 (ja) | 画像信号処理装置及び画像信号処理プログラム | |
JP2014033274A (ja) | 色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法 | |
JP5743456B2 (ja) | 画像処理装置、画像処理方法及び撮像装置 | |
US8755622B2 (en) | Image processing apparatus, image processing method, and program | |
JP2014033275A (ja) | 色域変換装置、デジタルカメラ、色域変換プログラムおよび色域変換方法 | |
JP4461164B2 (ja) | 色変換装置および色変換方法 | |
KR102160247B1 (ko) | 전자 장치 및 이의 제어 방법 | |
JP2012119818A (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム | |
JP2014033272A (ja) | 画像処理装置、デジタルカメラ、画像処理プログラムおよび画像処理方法 |