(58)【調査した分野】(Int.Cl.,DB名)
RGB空間上の調整軸となるn軸(n≧3の整数)の各頂点である各n軸頂点の色属性の少なくとも一部の調整値が入力され、前記RGB空間内の任意格子点である対象点と前記各n軸頂点との距離に基づき、前記各n軸頂点の追従指標を示す影響度をn軸毎に算出し、前記調整値に応じた前記RGB空間上での前記各n軸頂点の移動と、前記影響度と、に基づき前記対象点の前記RGB空間上での調整後座標を算出する調整データ生成部と、
前記対象点の元座標と前記調整データ生成部が算出した当該対象点の調整後座標、及び前記各n軸頂点の元座標とその調整後座標、に基づき、入力された画像データの色調整を行う画像調整部と、を有し、
前記調整データ生成部は、
前記対象点の明るさ(Luminance)及び色相(Hue)の少なくとも一方を調整した調整後座標を算出する明るさ/色相調整部を備え、
前記明るさ/色相調整部は、
前記各n軸頂点の明るさ及び色相の少なくとも一方に関する前記調整値に基づき、前記各n軸頂点について、調整対象以外の色属性に影響を与えずに調整対象の色属性を調整できる移動方向での移動量を算出する頂点座標移動量算出部と、
前記各n軸頂点の移動の追従指標となる正規化距離と、前記対象点から前記各n軸頂点までの距離と、の比較に基づいて、当該対象点の明るさ及び色相の少なくとも一方にかかる前記影響度をn軸毎に算出する明るさ/色相影響度算出部と、
前記各n軸頂点の移動方向、前記各n軸頂点の移動量、及び前記対象点の明るさ及び色相の少なくとも一方にかかるn軸毎の前記影響度に応じて、前記対象点の明るさ及び色相の少なくとも一方を調整した調整後座標を算出する明るさ/色相移動量算出部と、
を備える半導体装置。
【発明を実施するための形態】
【0024】
<実施の形態1>
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本実施の形態にかかる画像処理装置を含む画像処理システムの構成を示すブロック図である。画像処理システム1は、画像処理装置100と、入力インターフェイス部200と、出力インターフェイス部300と、を備える。画像処理システム1は、例えば、一般的なコンピュータ装置内の各回路、及び当該コンピュータ装置内のCPU(Central Processing Unit)により実行されるソフトウェア、の組合せにより実現される。
【0025】
入力インターフェイス部200は、6軸調整の調整値を入力する入力インターフェイスを提供し、当該入力インターフェイスから6軸調整の調整値を取得する。詳細には、入力インターフェイス部200は、6軸調整の各6軸頂点色(Red,Green,Blue,Yellow,Cyan,Magenta)についての明るさ(Luminance)、色相(Hue)、彩度(Saturation)の調整値を受け付ける。
【0026】
図2は、入力インターフェイス部200の提供する入力インターフェイスの一例を示す図である。図示するように、入力インターフェイス部200は、マウス等の入力装置を用いて操作可能なGUI(Graphical User Interface)の入力画面を任意のディスプレイ装置に表示して提供する。ユーザは、当該入力画面上で入力装置を操作し、各6軸頂点色についての色属性(明るさ、色相、彩度)の調整値を入力する。各6軸頂点色についての調整値については、
図4〜
図9を参照して後述する。
【0027】
なお、入力インターフェイス部200は、GUIの設定画面から各色の色属性の調整値を取得することに限らず、例えばCUI(Character User Interface)の入力画面を提供し、当該CUIから入力されたファイルから各6軸頂点色の色属性(明るさ、色相、彩度)の調整値を取得しても良い。
【0028】
画像処理装置100は、入力インターフェイス部200から供給された調整値を基に、RGB空間上の各色を調整した色を算出し、当該算出した色を用いて、任意の記憶部や他の装置から取得したRGB画像データに対して6軸調整を行う。ここで、RGB画像データとは、各ピクセルがRGB値で表現された任意のサイズのデータである。以下、画像処理装置100の詳細構成について説明する。
【0029】
画像処理装置100は、画像処理部110と、調整データ生成部120と、画像調整部130と、を備える。
【0030】
画像処理部110は、任意の記憶部から画像データを読み出す。画像処理部110は、必要に応じて読み出した画像データの拡大/縮小処理を行い、処理後の画像データを画像調整部130に供給する。なお、画像処理部110は、図示しない通信部を介して、他の装置から画像データを受信しても良い。また、画像処理部110は、ある画像データ(GIF等)を処理対象とするのみならず、一般的なパーソナルコンピュータ等に接続されたディスプレイ装置に表示する表示画面に相当する画像を、上述の画像データとして取り扱っても良い。
【0031】
画像調整部130は、3次元ルックアップテーブル131を保持する。3次元ルックアップテーブル131は、8bitまたは10bit精度の9×9×9または17×17×17等の格子点を持つ一般的なRGB空間の3次元ルックアップテーブルである。3次元ルックアップテーブル(3D−LUT)131は、RGB空間上の各格子点(
図21の各格子点)の座標と、当該各格子点座標の調整後座標と、が関連付けられたデータ(以下、テーブルデータと呼称する)を記憶する。例えば、3次元ルックアップテーブル131は、RGB空間上の格子点座標(R1,G1,B1)を(R2,G2,B2)に移動させるというような対応関係を示すテーブルデータを格子点数分(9×9×9=729個、17×17×17=4913個)だけ保持する。3次元ルックアップテーブル131が記憶する各テーブルデータは、調整データ生成部120により設定される。
【0032】
画像調整部130は、3次元ルックアップテーブル131を参照して、画像処理部110から入力された画像データの色調整を行い、調整後の画像データを出力インターフェイス300に供給する。なお、画像調整部130は、RGB空間上の各格子点に含まれない色(格子点と格子点との間にある色)を調整する場合、任意の補間方法(直線補間法やキュービック補間法等)を用いて変換する色を算出すればよい。また、画像調整部130は、色の調整後に、表示するモニタ等に合わせた各種調整処理を行っても良い。
【0033】
調整データ生成部120は、入力インターフェイス部200から供給された各6軸頂点色についての明るさ、色相、彩度の調整値を基に、3次元ルックアップテーブル131に設定するテーブルデータ(例えば729個のテーブルデータ、4913個のテーブルデータ)を算出する。RGBの各値が8ビットとすると、調整データ生成部120の出力データ量は、729個(9×9×9)×8ビット=17479ビットとなる。
【0034】
図3は、調整データ生成部120の詳細構成を示すブロック図である。調整データ生成部120は、明るさ/色相調整部121と、彩度調整部122と、を備える。明るさ/色相調整部121には、各6軸頂点色の明るさ(Luminance)に関する調整値と色相に関する調整値、すなわち12種類の調整値が入力される。彩度調整部122には、各6軸頂点色の彩度(Saturation)に関する調整値、すなわち6種類の調整値が入力される。なお、一部の調整値のみが与えられた場合、調整値が与えられなかった項目についてはデフォルト値(その色属性については変化を生じさせない値)が入力されたものとみなせばよい。
【0035】
なお、
図3に示す構成は、明るさ、色相、彩度の調整を全て行う構成であるが、必ずしもこれに限られず、用途に応じた調整を行う構成であればよい。すなわち、調整データ生成部120は、明るさと彩度、明るさと色相、色相と彩度、明るさのみ、色相のみ、彩度のみ、を調整するテーブルデータを生成する構成であっても良い。換言すると、調整データ生成部120は、明るさ、色相、彩度に関する調整部のうち、少なくとも一部を有する構成であればよい。
【0036】
明るさ/色相調整部121は、各6軸頂点の明るさ及び色相の調整後のRGB座標、及びRGB空間上の任意格子点(対象点とも呼称する)の明るさ及び色相調整後のRGB座標を算出する。彩度調整部122は、各6軸頂点の彩度調整後のRGB座標、及びRGB空間上の任意格子点(対象点)の彩度調整後のRGB座標を算出する。以下、明るさ/色相調整部121及び彩度調整部122の詳細について説明する。
【0037】
明るさ/色相調整部121の詳細説明に先立ち、明るさ/色相調整部121に与えられる調整値、及び明るさ/色相調整部121の調整の定義について
図4〜
図9を参照して説明する。
【0038】
図4は、RGBYCMの各6軸頂点色と白(256,256,256)及び黒(0,0,0)を頂点としたRGB色空間を示す正立方体において、Y頂点を中心とし、白頂点を上に配置した図である。なお、説明の便宜のため、以下の説明及び図面では、RGBの各値は0〜256の値を取るものとして説明する。一般的にRGBの各値は、8bit精度の場合には0〜255の値を取るが、この場合であっても、以下に行う説明と同等の処理及び計算を行えばよい。
【0039】
図4に示すように、黄色(Y)の明るさ(Luminance)を調整する場合、本実施の形態にかかる画像処理装置100においては、明るくする場合には白頂点(256,256,256)に近づけ、暗くする場合には黒頂点(0,0,0)に近づける、と定義する。
【0040】
図4に示すように、黄色(Y)の色相(Hue)を調整する場合、本実施の形態にかかる画像処理装置100においては、色相を増加させる場合にはR頂点(256,0,0)に近づけ、色相を減少させる場合にはG頂点(0,256,0)に近づける、と定義する。
【0041】
明るさの調整量の定義は、調整前の値(256,256,0)を100%とし、Y頂点を白頂点まで移動した状態を200%、黒頂点まで移動した状態を0%と定義する。色相の調整量の定義は、調整前の値(256,256,0)を0°とし、Y頂点をG頂点まで移動した状態を−60°、R頂点まで移動した状態を+60°と定義する。
【0042】
図5〜
図9は、黄色(Y)以外の各6軸頂点色の明るさ/色相の調整方向及び調整量を示す図である。
図5は、赤色(R)の明るさ/色相の調整方向及び調整量を示す図である。赤色(R)の明るさ及び色相の調整方向は
図5に示すとおりである。明るさの調整量の定義は、調整前の値(256,0,0)を100%とし、R頂点を白頂点まで移動した状態を200%、黒頂点まで移動した状態を0%と定義する。色相の調整量の定義は、調整前の値(256,0,0)を0°とし、R頂点をY頂点まで移動した状態を−60°、M頂点まで移動した状態を+60°と定義する。
【0043】
図6は、シアン色(C)の明るさ/色相の調整方向及び調整量を示す図である。シアン色(C)の明るさ及び色相の調整方向は
図6に示すとおりである。明るさの調整量の定義は、調整前の値(0,256,256)を100%とし、C頂点を白頂点まで移動した状態を200%、黒頂点まで移動した状態を0%と定義する。色相の調整量の定義は、調整前の値(0,256,256)を0°とし、C頂点をB頂点まで移動した状態を−60°、G頂点まで移動した状態を+60°と定義する。
【0044】
図7は、緑色(G)の明るさ/色相の調整方向及び調整量を示す図である。緑色(G)の明るさ及び色相の調整方向は
図7に示すとおりである。明るさの調整量の定義は、調整前の値(0,256,0)を100%とし、G頂点を白頂点まで移動した状態を200%、黒頂点まで移動した状態を0%と定義する。色相の調整量の定義は、調整前の値(0,256,0)を0°とし、G頂点をC頂点まで移動した状態を−60°、Y頂点まで移動した状態を+60°と定義する。
【0045】
図8は、マゼンタ色(M)の明るさ/色相の調整方向及び調整量を示す図である。マゼンタ色(M)の明るさ及び色相の調整方向は
図8に示すとおりである。明るさの調整量の定義は、調整前の値(256,0,256)を100%とし、M頂点を白頂点まで移動した状態を200%、黒頂点まで移動した状態を0%と定義する。色相の調整量の定義は、調整前の値(256,0,256)を0°とし、M頂点をR頂点まで移動した状態を−60°、B頂点まで移動した状態を+60°と定義する。
【0046】
図9は、青色(B)の明るさ/色相の調整方向及び調整量を示す図である。青色(B)の明るさ及び色相の調整方向は
図9に示すとおりである。明るさの調整量の定義は、調整前の値(0,0,256)を100%とし、B頂点を白頂点まで移動した状態を200%、黒頂点まで移動した状態を0%と定義する。色相の調整量の定義は、調整前の値(0,0,256)を0°とし、B頂点をM頂点まで移動した状態を−60°、C頂点まで移動した状態を+60°と定義する。
【0047】
図4〜
図9のように調整方向を定める意義について、
図4(Yの調整)を例として説明する。明るさを調整する場合、Y頂点を白頂点以外の座標(例えば(256,256,250))に近づけることでも実現することはできる。しかしながら、白頂点(256,256,256)と黒頂点(0,0,0)を結ぶ直線上から調整方向がずれるに従って、明るさ以外の色属性(すなわち色相、彩度)に影響が生じてしまう。色相についても同様である。一方、Y頂点を
図4に示すような各頂点方向に移動させると、明るさを調整する場合には色相及び彩度に影響を与えることなく調整ができ、色相を調整する場合には明るさ及び彩度に影響を与えることなく調整ができる。すなわち、明るさ及び色相の調整を他の色属性から独立して行うことができる。
【0048】
次に、
図10を参照して、明るさ/色相調整部121の構成及び各処理部の処理について説明する。
図10は、明るさ/色相調整部121の内部構成を示すブロック図である。明るさ/色相調整部121は、頂点座標移動量算出部1211と、各格子点影響度算出部1212と、移動量算出部1213と、を備える。頂点座標移動量算出部1211は、頂点明るさ移動量算出部1214と、頂点色相移動量算出部1215と、を備える。
【0049】
頂点座標移動量算出部1211は、各6軸頂点のRGB色空間内での移動量を算出する。この各6軸頂点の移動量は、ユーザが設定した調整値が100%反映されたものとなる。詳細には、頂点座標移動量算出部1211内の頂点明るさ移動量算出部1214は、明るさに関する各6軸の調整値を基に、各6軸頂点の明るさ調整後の移動量を算出する。次に、頂点座標移動量算出部1211内の頂点色相移動量算出部1215は、頂点明るさ移動量算出部1214が算出した移動量と、色相に関する各6軸の調整値と、を基に各6軸の明るさ及び色相調整後の移動量を算出する。
【0050】
頂点明るさ移動量算出部1214の算出処理は、以下のようになる。Y頂点の移動量算出を例にとり説明する。Y頂点の明るさ調整値、Y頂点の明るさ調整時の各成分移動量を以下のように定義し、Y頂点の明るさ調整時の各成分移動量の算出方法を示す。
Y_L: Yの明るさ調整値(%)
ΔRyl: Y頂点の明るさ調整後のR成分移動量
ΔGyl: Y頂点の明るさ調整後のG成分移動量
ΔByl: Y頂点の明るさ調整後のB成分移動量
【0051】
(1) Y_L >= 100%
この場合、頂点明るさ移動量算出部1214は、Y_Lの調整値に応じて、Y頂点が白頂点に向かって移動するようにΔBylを算出する。
(2) Y_L < 100%
この場合、頂点明るさ移動量算出部1214は、Y_Lの調整値に応じて、Y頂点が黒頂点に向かって移動するようにΔRyl及びΔGylを算出する。
【0052】
図11にY頂点の明るさ調整後の移動量の算出概念を示す。なお、
図11には、Y頂点の後述する色相調整後の移動量算出概念も示されている。
図11に示すように、頂点明るさ移動量算出部1214は、Y頂点のRGB値を調整値に応じて移動させる(
図11P1及びP2を参照)。例えば、Y頂点の明るさの調整値が150%である場合、頂点明るさ移動量算出部1214は、B値を128だけ増加させると判断し、B値の移動量とすればよい。
【0053】
頂点明るさ移動量算出部1214は、Y頂点の移動量算出と同様の手法により、他の各6軸頂点の明るさ調整後の移動量を算出する。以下、各6軸頂点の明るさ調整値、各6軸頂点の明るさ調整時の各成分移動量を以下のように定義する。各6軸頂点の各成分移動量の算出は、
図4〜
図9の移動方向に従い、Y頂点の移動量算出と同様の手法により算出すればよい。そのため、Y頂点以外の移動量算出の詳細は省略する。
【0054】
R頂点の明るさ調整値、R頂点の明るさ調整時の各成分移動量を以下のように定義する。
R_L: Rの明るさ調整値(%)
ΔRrl: R頂点の明るさ調整後のR成分移動量
ΔGrl: R頂点の明るさ調整後のG成分移動量
ΔBrl: R頂点の明るさ調整後のB成分移動量
【0055】
G頂点の明るさ調整値、G頂点の明るさ調整時の各成分移動量を以下のように定義する。
G_L: Gの明るさ調整値(%)
ΔRgl: G頂点の明るさ調整後のR成分移動量
ΔGgl: G頂点の明るさ調整後のG成分移動量
ΔBgl: G頂点の明るさ調整後のB成分移動量
【0056】
B頂点の明るさ調整値、B頂点の明るさ調整時の各成分移動量を以下のように定義する。
B_L: Bの明るさ調整値(%)
ΔRbl: B頂点の明るさ調整後のR成分移動量
ΔGbl: B頂点の明るさ調整後のG成分移動量
ΔBbl: B頂点の明るさ調整後のB成分移動量
【0057】
C頂点の明るさ調整値、C頂点の明るさ調整時の各成分移動量を以下のように定義する。
C_L: Cの明るさ調整値(%)
ΔRcl: C頂点の明るさ調整後のR成分移動量
ΔGcl: C頂点の明るさ調整後のG成分移動量
ΔBcl: C頂点の明るさ調整後のB成分移動量
【0058】
M頂点の明るさ調整値、M頂点の明るさ調整時の各成分移動量を以下のように定義する。
M_L: Mの明るさ調整値(%)
ΔRml: M頂点の明るさ調整後のR成分移動量
ΔGml: M頂点の明るさ調整後のG成分移動量
ΔBml: M頂点の明るさ調整後のB成分移動量
【0059】
頂点明るさ移動量算出部1214は、算出した各6軸頂点の各成分移動量(18のパラメータ)を頂点色相移動量算出部1215に供給する。
【0060】
頂点色相移動量算出部1215は、頂点明るさ移動量算出部1214が算出した各6軸頂点の各成分移動量に対し、色相調整による移動量を加算する。以下、Y頂点の移動量算出を例にとり説明する。Y頂点の色相調整値、Y頂点の明るさ及び色相調整後の各成分移動量を以下のように定義し、Y頂点の明るさ及び色相調整後の各成分移動量の算出方法を示す。
Y_H: Yの色相調整値(%)
ΔRyh: Y頂点の明るさ及び色相調整後のR成分移動量
ΔGyh: Y頂点の明るさ及び色相調整後のG成分移動量
ΔByh: Y頂点の明るさ及び色相調整後のB成分移動量
【0061】
(1) Y_H >= 0° (Red方向)
この場合、ΔRyh及びΔByhについては、ΔRyl及びΔBylをそのまま使用する(値の変更は行わない)。頂点色相移動量算出部1215は、Y_Hの調整値に応じて、明るさ調整後のY頂点が、Y頂点とR頂点を結ぶ直線と平行方向に移動するようにΔGyhを算出する。
(2)Y_H < 0° (Green方向)
この場合、ΔGyh及びΔByhについては、ΔGyl及びΔBylをそのまま使用する(値の変更は行わない)。頂点色相移動量算出部1215は、Y_Hの調整値に応じて、明るさ調整後のY頂点が、Y頂点とG頂点を結ぶ直線と平行方向に移動するようにΔRyhを算出する。
【0062】
図11を参照してさらに説明する。P1及びP2は、明るさ調整後のY頂点を示す。頂点色相移動量算出部1215は、Y_Hの調整値に応じて、明るさ調整後のY頂点を移動させる。
【0063】
P1を色相増加方向(Y_H=30°)に移動させる場合、頂点色相移動量算出部1215は、Y頂点とR頂点を結ぶ直線と平行方向に移動させた点P3の座標に応じてΔGyhを算出する。ここで、点P3は、P1のRGB値のG値を、色相の調整値(Y_H=30°)に相当する値(128)だけ減算した点である。
【0064】
なお、頂点色相移動量算出部1215は、色相の調整値(Y_H=30°)のみを考慮するのではなく、明るさの調整値も考慮して、明るさ及び色相の調整後の座標位置(すなわち、各成分移動量)を算出しても良い。P1(明るさ調整後のY頂点)は、Y頂点を白頂点方向に、Y頂点と白頂点を結ぶ線分の半分の距離だけ移動させた点である。ここで、Y頂点とR頂点を結ぶ直線と平行であり、P1を通る線分L1を考える。L1は、Y頂点とR頂点を結ぶ線分と比べて、白頂点及びM頂点に近い位置にある。そのため、点P1を線分L1の中点よりM頂点(またはR頂点)側方向に移動させると、マゼンタの領域に影響を及ぼしてしまう。Y頂点のプラス方向の色相調整は、隣接頂点であるR頂点方向への移動であり、隣接頂点では無いマゼンタ頂点にかかる領域に影響を及ぼしてしまうのは妥当ではない。そのため、頂点色相移動量算出部1215は、マゼンタの領域に影響を及ぼすことが無い様に、色相調整のダイナミックレンジをP3(線分L1の中点)までと定める(すなわち、Y_H=60°の場合には調整後のY頂点の座標をP3とする)。なお、ダイナミックレンジとは、Y頂点が色相調整で移動できる最大距離を意味する。そして、頂点色相移動量算出部1215は、このダイナミックレンジに応じて移動させた点P4を算出する。すなわち、頂点色相移動量算出部1215は、明るさに関する移動量が大きくなるにつれて、色相調整による各6軸頂点のダイナミックレンジ(各6軸頂点が移動可能な距離)を小さくする。このような明るさの移動量を考慮した各6軸頂点の移動量算出を行うことにより、色相の過度な調整を回避し、各6軸頂点を適切なRGB値に変換することが可能となる。
【0065】
P2を色相減少方向に移動させる場合、頂点色相移動量算出部1215は、Y頂点とG頂点を結ぶ直線と平行方向に移動させた点P5の座標に応じてΔRyhを算出する。なお、この場合(色相減少方向への移動)にも色相の調整値(Y_H=30°)のみを考慮するのではなく、明るさの調整値をも考慮して、明るさ及び色相の調整後の座標位置(すなわち、各成分移動量)を算出しても良い。
【0066】
頂点色相移動量算出部1215は、Y頂点の移動量算出と同様の手法により、他の各6軸頂点の明るさ及び色相調整後の移動量を算出する。以下、各6軸頂点の色相調整値、各6軸頂点の明るさ及び色相調整後の各成分移動量を以下のように定義する。各6軸頂点の各成分移動量の算出は、
図4〜
図9の移動方向に従い、Y頂点の移動量算出と同様の手法により算出すればよい。
【0067】
R頂点の色相調整値、R頂点の明るさ及び色相調整後の各成分移動量を以下のように定義する。
R_H: Rの色相調整値(%)
ΔRrh: R頂点の明るさ及び色相調整後のR成分移動量
ΔGrh: R頂点の明るさ及び色相調整後のG成分移動量
ΔBrh: R頂点の明るさ及び色相調整後のB成分移動量
【0068】
G頂点の色相調整値、G頂点の明るさ及び色相調整後の各成分移動量を以下のように定義する。
G_H: Gの色相調整値(%)
ΔRgh: G頂点の明るさ及び色相調整後のR成分移動量
ΔGgh: G頂点の明るさ及び色相調整後のG成分移動量
ΔBgh: G頂点の明るさ及び色相調整後のB成分移動量
【0069】
B頂点の色相調整値、B頂点の明るさ及び色相調整後の各成分移動量を以下のように定義する。
B_H: Bの色相調整値(%)
ΔRbh: B頂点の明るさ及び色相調整後のR成分移動量
ΔGbh: B頂点の明るさ及び色相調整後のG成分移動量
ΔBbh: B頂点の明るさ及び色相調整後のB成分移動量
【0070】
C頂点の色相調整値、C頂点の明るさ及び色相調整後の各成分移動量を以下のように定義する。
C_H: Cの色相調整値(%)
ΔRch: C頂点の明るさ及び色相調整後のR成分移動量
ΔGch: C頂点の明るさ及び色相調整後のG成分移動量
ΔBch: C頂点の明るさ及び色相調整後のB成分移動量
【0071】
M頂点の色相調整値、M頂点の明るさ及び色相調整後の各成分移動量を以下のように定義する。
M_H: Mの色相調整値(%)
ΔRmh: M頂点の明るさ及び色相調整後のR成分移動量
ΔGmh: M頂点の明るさ及び色相調整後のG成分移動量
ΔBmh: M頂点の明るさ及び色相調整後のB成分移動量
【0072】
頂点色相移動量算出部1215は、算出した各6軸頂点の各RGB成分の移動量(18個の値)を各格子点影響度算出部1212に供給する。
【0073】
各格子点影響度算出部1212は、RGB色空間(
図21)上の各格子点の6軸毎の影響度を算出する。各格子点影響度算出部1212は、明るさ/色相に関する各格子点の影響度を算出する(請求項における明るさ/色相影響度算出部に相当する。)。はじめに、影響度の定義、及び影響度を算出する意義について説明する。
【0074】
影響度とは、各6軸頂点のRGB色空間上での移動に応じて、RGB色空間上の各格子点がどの程度影響を受けるか、換言するとどの程度移動に追従するかの度合いを示す。6軸調整では、各6軸頂点のみがユーザから入力された調整値に応じてRGB色空間上を移動するのではなく、周辺の色についても各6軸頂点の移動に応じてRGB色空間上を移動する。これは、RGB色空間内の連続性を補償し、色歪みの発生を防ぎ、自然な色再現を実現するためである。ここで、各格子点の移動量を定めるのが影響度となる。
【0075】
例えば、R軸調整を行う際には、R頂点の影響度は100%となり、R頂点から距離的に遠くなるほど影響度が小さくなり、ある距離以上に遠ざかった格子点の影響度は0%となる。影響度が0%である場合、当該格子点は、R頂点の移動量に関わらず、R頂点の移動に伴う移動が発生しないことを示す。影響度が0%に達する距離とは、R頂点の移動に影響されたくない格子点、すなわち赤とは異なる色の格子点である。以下の説明では、この影響度が0%となる距離を正規化距離Lsと記載する。以下、正規化距離Lsの設定例を2つ示す。
【0076】
第1の例は、正規化距離LsをRGB空間上のある頂点(例えばR頂点)から隣接頂点までの距離とするものである。RGBの各値が8bitである場合には、正規化距離Lsは、256となる。換言すると、正規化距離Lsは、RGB空間のビット幅(R(G、B)値のビット幅)に応じて定める。この理由は、6軸調整が6軸(色)毎に明るさ/色相/彩度を調整する機能であるため、ある頂点の移動を隣接頂点(他の色を示す頂点)に影響させないためである。
【0077】
第2の例は、正規化距離Lsを、RGB空間上の各6軸頂点(例えばR頂点)から最短の無彩色座標までの距離とするものである。この詳細を
図12を参照して説明する。
図12は、各6軸頂点(RGBYCM)と黒白の8つを頂点としたRGB色空間を示す正立方体を、白頂点を上にし、黒頂点を下にして見た図である。縦方向は明るさを示し、上方向にいくにつれて明るくなり、下方向に行くにつれて暗くなる。また、横方向に配置された各格子点同士は、RGB座標の総和、すなわちR値+G値+B値が同じ値となる特性を持つ。要するに、
図12は、各点の明るさをR値とG値とB値の総和で表現しており、縦軸をその明るさを示す軸として表現している図である。
【0078】
Y頂点から見てRGB色空間内で最も近い無彩色座標は、
図12及び以下の(数1)に示すように(171,171,171)である。
【数1】
【0079】
ここで無彩色とは、R値とG値とB値が同じ値、つまり黒頂点(R値、G値、B値が0)や白頂点(R値、G値、B値が256)と同様にR値とG値とB値が同じ値となる状態と定義する。よって、
図12においては、白頂点と黒頂点を結んだ軸を無彩色軸と定義し、この軸上に存在する点を無彩色座標点と定義する。
【0080】
以上より、Y頂点から最短の無彩色座標までの距離、すなわち正規化距離Lsは、以下の(数2)に示す2点間距離計算により209と算出することができる。
【数2】
【0081】
前述のように6軸調整は、6軸(色)毎に明るさ/色相/彩度を調整する機能である。そのため、各6軸頂点から無彩色、すなわち色が付いていない点までの距離を正規化距離Lsとすることにより、元来色が付いていない領域に色を付けることを防止することができる。
【0082】
なお、上述の正規化距離Lsの設定はあくまで一例であり、ユーザの要求に応じて様々に設定することが可能である。例えば、各6軸頂点及び各6軸頂点と極めて近い色のみを変化させたい場合、正規化距離Lsを上述の距離よりも短くすればよい。この場合、ユーザは、例えば入力インターフェイス(
図2)等を操作して、正規化距離Lsに関する情報を入力すればよい。
【0083】
以上の定義を基に、各格子点影響度算出部1212による、RGB空間上の各格子点の6軸毎の影響度の算出処理を説明する。以下、R軸の調整を例にとり説明する。各格子点影響度算出部1212は、任意の格子点(対象点)DnがR頂点の移動に伴い受ける影響度に関する各定義を行い、以下の処理(1)〜(3)により任意の格子点DnがR軸調整により受ける影響度Ernを算出する。以下、処理(1)〜(3)について説明する。
(1) R頂点と格子点Dnとの距離Lrnの算出
(2) リミット処理(Lrnが正規化距離Lsよりも大きい場合の処理)
(3) 格子点DnがR軸調整により受ける影響度Ernの算出
【0084】
(1)R頂点と格子点Dnとの距離Lrnの算出
R頂点座標: R = (256,0,0)
調整前の任意格子点座標: Dn = (Rdn,Gdn,Bdn)
【数3】
【0085】
(2) リミット処理(Lrnが正規化距離Lsよりも大きい場合の処理)
正規化距離: Ls
リミット処理後のR頂点−格子点Dn間距離: Lrn'
Lrn >= Ls → Lrn' = Ls,
Lrn < Ls → Lrn' = Lrn
【0086】
(3)格子点DnがR軸調整により受ける影響度Ernの算出
【数4】
【0087】
以上のように、各格子点影響度算出部1212は、R軸調整から受ける格子点Dnの影響度Ernを算出する。各格子点影響度算出部1212は、他の色(GBCYM)の調整から受ける格子点Dnの影響度も同様に算出する。算出方法は、前述のR軸調整と同様であるため、以下では定義のみ行う。
【0088】
G頂点に関する定義は、以下に示すとおりである。
(1) G頂点と格子点Dnとの距離Lgnの算出
G頂点と格子点Dnとの距離: Lgn
G頂点座標: G = (0,256,0)
(2) リミット処理
リミット処理後のG頂点−格子点Dn間距離: Lgn'
(3)格子点DnがG軸調整により受ける影響度Egnの算出
格子点DnのG軸調整による影響度: Egn
【0089】
B頂点に関する定義は、以下に示すとおりである。
(1)B頂点と格子点Dnとの距離Lbnの算出
B頂点と格子点Dnとの距離: Lbn
B頂点座標: B = (0,0,256)
(2)リミット処理
リミット処理後のB頂点−格子点Dn間距離: Lbn'
(3)格子点DnがB軸調整により受ける影響度Ebnの算出
格子点DnのB軸調整による影響度: Ebn
【0090】
Y頂点に関する定義は、以下に示すとおりである。
(1)Y頂点と格子点Dnとの距離Lynの算出
Y頂点と格子点Dnとの距離: Lyn
Y頂点座標: Y = (256,256,0)
(2)リミット処理
リミット処理後のY頂点−格子点Dn間距離: Lyn'
(3)格子点DnがY軸調整により受ける影響度Eynの算出
格子点DnのY軸調整による影響度: Eyn
【0091】
C頂点に関する定義は、以下に示すとおりである。
(1)C頂点と格子点Dnとの距離Lcnの算出
C頂点と格子点Dnとの距離: Lcn
C頂点座標: C = (0,256,256)
(2)リミット処理
リミット処理後のC頂点−格子点Dn間距離: Lcn'
(3)格子点DnがC軸調整により受ける影響度Ecnの算出
格子点DnのC軸調整による影響度: Ecn
【0092】
M頂点に関する定義は、以下に示すとおりである。
(1)M頂点と格子点Dnとの距離Lmnの算出
M頂点と格子点Dnとの距離: Lmn
M頂点座標: M = (256,0,256)
(2)リミット処理
リミット処理後のM頂点−格子点Dn間距離: Lmn'
(3) 格子点DnがM軸調整により受ける影響度Emnの算出
格子点DnのM軸調整による影響度: Emn
【0093】
各格子点影響度算出部1212は、RGB色空間に含まれる全ての格子点についての6種類の影響度を算出し、算出した影響度を移動量算出部1213に供給する。
【0094】
明るさ/色相調整部121は、移動量算出部1213において各格子点の明るさ及び色相調整後の座標(色)を算出する。具体的には、移動量算出部1213は、以下の処理(1)、(2)を行い、RGB色空間上の任意の格子点(対象点)の明るさ及び色相調整後座標を算出する。以下、以下の処理(1)、(2)について説明する。
(1)格子点Dnの明るさ/色相調整に伴うRGB移動量算出
(2)格子点Dnの明るさ/色相調整後の座標算出
【0095】
(1) 格子点Dnの明るさ/色相調整に伴う移動量算出
移動量算出部1213は、任意格子点DnのR値、G値、B値の移動量を以下のように定義し、(数5)に従って各移動量を算出する。
任意格子点Dnの明るさ/色相調整後移動量:(ΔRn1, ΔGn1, ΔBn1)
【数5】
【0096】
(2)格子点Dnの明るさ/色相調整後の座標算出
移動量算出部1213は、算出した任意格子点Dnの移動量(ΔRn1, ΔGn1, ΔBn1)を用いて、格子点Dnの明るさ及び色相調整後の座標を以下の(数6)を用いて算出する。
調整前の任意格子点座標: Dn=(Rdn,Gdn,Bdn)
任意格子点Dnの明るさ/色相調整後座標:(Rdn1, Gdn1, Bdn1)
【数6】
【0097】
移動量算出部1213は、RGB色空間上において、上述の算出式を用いて3次元ルックアップテーブル131の格納対象となる全ての格子点の明るさ/色相調整後の座標を算出する。そして、移動量算出部1213は、6軸頂点及び全格子点について、元座標と調整後座標を組にして彩度調整部122に供給する。
【0098】
なお、ユーザが入力する明るさの調整値、及び色相の調整値は、以下の範囲で十分であることが想定される。
明るさ(Luminance)=50(%)〜150(%)
色相(Hue)=−30°〜30°
【0099】
この範囲に設定された場合、RGB値が8bitで表現される場合には、いかなる格子点の調整後の座標も以下の範囲内に収まる。
(Rdn1, Gdn1, Bdn1) < 0
(Rdn1, Gdn1, Bdn1) > 256
【0100】
しかしながら、上述の調整範囲外で調整値が設定された場合に備えて、移動量算出部1213は、Rdn1、Gdn1、Bdn1のいずれかが0未満または256より大きくなった場合には、丸め処理(0以上、256以下に値を変更する処理)を行っても構わない。これにより、RGB色空間で表現可能な色を得ることができる。なお、この丸め処理を行う場合、多少の色相変化や、色の連続性が損なわれることによる色歪みが生じる。
【0101】
続いて、彩度調節について説明する。
図13は、彩度調整部122の構成を示すブロック図である。彩度調整部122は、各格子点彩度成分算出部1221と、各格子点影響度算出部1222と、彩度ゲイン算出部1223と、移動量算出部1224と、を備える。
【0102】
彩度調整部122内の各処理部の説明に先立ち、彩度調整部122に与えられる調整値、及び彩度調整部122の彩度調整の定義について
図14を参照して説明する。
図14は、
図12と同様に各6軸頂点(RGBYCM)と黒白の8つを頂点としたRGB色空間を示す正立方体を、白頂点を上にし、黒頂点を下にして見た図である。
【0103】
図14を参照し、Y頂点の彩度調整を例として説明する。Y軸の彩度(色の濃さ)を調整する場合、本実施の形態にかかる画像処理装置100においては、色を濃く(彩度増加)する場合には点P200に近づけ、色を薄く(彩度減少)する場合には点P0に近づける、と定義する。
【0104】
点P200及び点P0は、明るさを示す縦軸方向の位置を変えずに彩度(色の濃さ)を変えることができる点である。点P0は、前述したR値、G値、B値が全て同じとなる無彩色点であり、かつ無彩色のうちY頂点と最も近い点である。この無彩色点である点P0を彩度(Saturation)=0%の点と定義する。Y頂点は、元の色の濃さ(彩度)を示すため、彩度(Saturation)=100%とし、点P100とも記載する。点P200は、Y頂点である点P100から点P0までの移動量を、RGB色空間において逆方向に移動させた点である。すなわち、彩度の調整方向は、明るさに全く影響を与えない方向である。具体的には、以下のように点P200の座標を算出する。
【0105】
Y頂点 (Saturation = 100%): P100 (256, 256, 0)
P0 (Saturation = 0%): P0 (171, 171, 171)
P200 (Saturation = 200%): P200
P100 - P0間移動量: ΔP0_100
ΔP0_100 = (171 - 256, 171 - 256, 171 - 0) = (-85, -85, 171)
P200 = P100 - ΔP0_100 = (256 + 85, 256 + 85, 0 - 171) = (341, 341, -171)
【0106】
調整量の定義は、調整前(すなわちP100)を100%、点P200まで移動した状態を200%、点P0まで移動した状態を0%とする。ここで、点P200の座標値が、負の値(−171)または256以上の値(341)となり、RGB色空間の領域外となっている。しかし、後述する色相補償ゲイン選択処理(全ての調整後の格子点座標が負の値や256を超えた値とならないように、色相を変えずにRGB色空間内に収まるゲインを選択する処理)が行われるため、彩度調整後の全格子点は、RGB色空間の領域内に収まる。他の各6軸頂点についても点P0及び点P200を定義する。シアン色(C)及びマゼンタ色(M)は、黄色(Y)と同様の手法で算出する。
【0107】
C頂点 (Saturation = 100%): P100 (0, 256, 256)
P0 (Saturation = 0%): P0 (171, 171, 171)
P200 (Saturation = 200%): P200
P100 - P0間移動量: ΔP0_100
ΔP0_100 = (171 - 0, 171 - 256, 171 - 256) = (171, -85, -85)
P200 = P100 - ΔP0_100 = (0 - 171, 256 + 85, 256 +85) = (-171, 341, 341)
【0108】
M頂点 (Saturation = 100%): P100 (256, 0, 256)
P0 (Saturation = 0%): P0 (171, 171, 171)
P200 (Saturation = 200%): P200
P100 - P0間移動量: ΔP0_100
ΔP0_100 = (171 - 256, 171 - 0, 171 - 256) = (-85, 171, -85)
P200 = P100 - ΔP0_100 = (256 + 85, 0 - 171, 256 + 85) = (341, -171, 341)
【0109】
赤(R)、緑(G)、青(B)についても、
図14に示すように、無彩色点をP0とし、その反対方向にP200を定義する。以下、
図14を参照し、青(B)についての定義を行う。また、青(B)と同様の手法で赤(R)及び緑(G)についても以下のように定義を行う。
【0110】
B頂点 (Saturation = 100%): P100 (0, 0, 256)
P0 (Saturation = 0%): P0 (85, 85, 85)
P200 (Saturation = 200%): P200
P100 - P0間移動量: ΔP0_100
ΔP0_100 = (85 - 0, 85 - 0, 85 - 256) = (85, 85, -171)
P200 = P100 - ΔP0_100 = (0 - 85, 0 - 85, 256 + 171) = (-85, -85, 427)
【0111】
R頂点 (Saturation = 100%): P100 (256, 0, 0)
P0 (Saturation = 0%): P0 (85, 85, 85)
P200 (Saturation = 200%): P200
P100 - P0間移動量: ΔP0_100
ΔP0_100 = (85 - 256, 85 - 0, 85 - 0) = (-171, 85, 85)
P200 = P100 - ΔP0_100 = (256 + 171, 0 - 85, 0 - 85) = (427, -85, -85)
【0112】
G頂点 (Saturation = 100%): P100 (0, 256, 0)
P0 (Saturation = 0%): P0 (85, 85, 85)
P200 (Saturation = 200%): P200
P100 - P0間移動量: ΔP0_100
ΔP0_100 = (85 - 0, 85 - 256, 85 - 0) = (85, -171, 85)
P200 = P100 - ΔP0_100 = (0 - 85, 256 + 171, 0 - 85) = (-85, 427, -85)
【0113】
次に、彩度調整部122内の各処理部(
図13)の処理について説明する。各格子点彩度成分算出部1221には、明るさ及び色相の調整後のテーブルデータ(すなわち、各格子点及び各6軸頂点についての元座標及び調整後座標)が明るさ/色相調整部121から入力される。各格子点彩度成分算出部1221は、調整後座標の彩度成分を以下の(数7)を用いて算出する。
【0114】
任意格子点Dnの明るさ/色相調整後座標:(Rdn1, Gdn1, Bdn1)
任意格子点Dnの明るさ/色相調整後の明るさ成分: Adn
任意格子点Dnの明るさ/色相調整後の彩度成分: (Rsn, Gsn, Bsn)
【数7】
【0115】
各格子点彩度成分算出部1221は、明るさ/色相調整部121から入力されたテーブルデータ(すなわち、各格子点及び各6軸頂点についての元座標及び明るさ/色相調整後座標)、及び各調整後座標から算出した彩度成分を各格子点影響度算出部1222に供給する。
【0116】
各格子点影響度算出部1222(請求項における再度影響度算出部に相当)は、各格子点の影響度を明るさ/色相調整部121と同様の手法で算出する。ここで、各格子点とは、明るさ及び色相を調整した後の座標(調整後座標)を意味する。
【0117】
各格子点影響度算出部1222は、明るさ及び色相調整後の格子点Dn1がR頂点の移動に伴い受ける影響度に関する各定義を行い、以下の処理(1)〜(3)により格子点DnがR軸調整により受ける影響度Ernを算出する。
(1) R頂点と格子点Dn1との距離Lrn1の算出
(2) リミット処理(Lrn1が正規化距離Lsよりも大きい場合の処理)
(3) 格子点Dn1がR軸調整により受ける影響度Ern1の算出
【0118】
(1)R頂点と格子点Dn1との距離Lrn1の算出
明るさ/色相調整後R頂点座標:R1 = (Rr1, Gr1, Br1)
明るさ/色相調整後任意格子点座標: Dn1 = (Rdn1, Gdn1, Bdn1)
【数8】
【0119】
(2) リミット処理(Lrn1が正規化距離Lsよりも大きい場合の処理)
正規化距離: Ls
リミット処理後のR頂点−格子点Dn1間距離: Lrn1'
Lrn1 >= Ls → Lrn1' = Ls,
Lrn1 < Ls → Lrn1' = Lrn1
【0120】
なお、正規化距離Lsは、明るさ及び色相調整後の各6軸頂点から最短隣接頂点までの距離、または最短無彩色点までの距離を再計算して設定すればよい。正規化距離Lsを最短隣接頂点までの距離とした場合、隣接軸(色)への影響を排除することができる。正規化距離Lsを最短無彩色点までの距離とした場合、無彩色領域に色がついてしまうことを防止することができる。なお、正規化距離Lsの設定方法は、必ずしもこの2通りに限られないことは前述のとおりである。
【0121】
(3) 格子点Dn1がR軸調整により受ける影響度Ern1の算出
【数9】
【0122】
以上のように、各格子点影響度算出部1222は、R軸調整から受ける格子点Dn1の影響度Ern1を算出する。各格子点影響度算出部1222は、他の色(GBCYM)の調整から受ける格子点Dn1の影響度も同様に算出する。算出方法は、前述のR軸調整と同様であるため、以下では定義のみ行う。
【0123】
G頂点に関する定義は、以下に示すとおりである。
(1) G頂点と格子点Dn1との距離Lgn1の算出
明るさ/色相調整後G頂点座標:G1 = (Rg1, Gg1, Bg1)
G頂点と格子点Dn1との距離: Lgn1
(2)リミット処理
リミット処理後のG頂点−格子点Dn1間距離: Lgn1'
Lgn1 >= Ls → Lgn1' = Ls,
Lgn1 < Ls → Lgn1' = Lgn1
(3)格子点Dn1がG軸調整により受ける影響度Egn1の算出
格子点Dn1のG軸調整による影響度: Egn1
【0124】
B頂点に関する定義は、以下に示すとおりである。
(1)B頂点と格子点Dn1との距離Lbn1の算出
明るさ/色相調整後B頂点座標:B1 = (Rb1, Gb1, Bb1)
B頂点と格子点Dn1との距離: Lbn1
(2)リミット処理
リミット処理後のB頂点−格子点Dn1間距離: Lbn1'
Lbn1 >= Ls → Lbn1' = Ls,
Lbn1 < Ls → Lbn1' = Lbn1
(3)格子点Dn1がB軸調整により受ける影響度Ebn1の算出
格子点Dn1のG軸調整による影響度: Ebn1
【0125】
Y頂点に関する定義は、以下に示すとおりである。
(1)Y頂点と格子点Dn1との距離Lyn1の算出
明るさ/色相調整後Y頂点座標:Y1 = (Ry1, Gy1, By1)
Y頂点と格子点Dn1との距離: Lyn1
(2)リミット処理
リミット処理後のY頂点−格子点Dn1間距離: Lyn1'
Lyn1 >= Ls → Lyn1' = Ls,
Lyn1 < Ls → Lyn1' = Lyn1
(3)格子点Dn1がY軸調整により受ける影響度Eyn1の算出
格子点Dn1のY軸調整による影響度: Eyn1
【0126】
C頂点に関する定義は、以下に示すとおりである。
(1)C頂点と格子点Dn1との距離Lcn1の算出
明るさ/色相調整後C頂点座標:C1 = (Rc1, Gc1, Bc1)
C頂点と格子点Dn1との距離: Lcn1
(2)リミット処理
リミット処理後のC頂点−格子点Dn1間距離: Lcn1'
Lcn1 >= Ls → Lcn1' = Ls,
Lcn1 < Ls → Lcn1' = Lcn1
(3)格子点Dn1がC軸調整により受ける影響度Ecn1の算出
格子点Dn1のC軸調整による影響度: Ecn1
【0127】
M頂点に関する定義は、以下に示すとおりである。
(1)M頂点と格子点Dn1との距離Lmn1の算出
明るさ/色相調整後M頂点座標:M1 = (Rm1, Gm1, Bm1)
M頂点と格子点Dn1との距離: Lmn1
(2)リミット処理
リミット処理後のM頂点−格子点Dn1間距離: Lmn1'
Lmn1 >= Ls → Lmn1' = Ls,
Lmn1 < Ls → Lmn1' = Lmn1
(3)格子点Dn1がM軸調整により受ける影響度Emn1の算出
格子点Dn1のM軸調整による影響度: Emn1
【0128】
各格子点影響度算出部1222は、RGB色空間に含まれる全ての格子点についての6種類の影響度を算出し、算出した影響度を彩度ゲイン算出部1223に供給する。なお、各格子点影響度算出部1222は、各格子点彩度成分算出部1221から入力されたデータ(明るさ及び色相の調整後のテーブルデータ、及び各調整後座標から算出した彩度成分)も併せて彩度ゲイン算出部1223に供給する。
【0129】
彩度ゲイン算出部1223には、インターフェイス部200を介して入力された各6軸頂点の彩度の調整値が供給される。彩度ゲイン算出部1223は、各格子点(Dn1)の彩度成分に対するゲイン(彩度成分に乗算する値)を算出する。彩度ゲイン算出部1223は、以下の(1)〜(4)の処理を行うことにより、各格子点(Dn1)の彩度成分に対するゲインを算出する。
(1)各格子点(Dn1)の基本彩度ゲインSgnの算出
(2)オーバーリミットゲイン(Sgn_Rol,Sgn_Gol,Sgn_Bol)の算出
(3)アンダーリミットゲイン(Sgn_Rul,Sgn_Gul,Sgn_Bul)の算出
(4)色相を補償する彩度ゲインSgn_Limを選択
【0130】
(1) 各格子点(Dn1)の基本彩度ゲインSgnの算出
彩度ゲイン算出部1223は、各格子点(Dn1)の影響度(Ern1、Egn1、Ebn1、Eyn1、Ecn1、Emn1)を基に、各格子点の基本となるゲイン(基本ゲイン:Sgn)を算出する。彩度ゲイン算出部1223は、各6軸の調整値を以下のように定義し、(数10)に示す式を用いて基本ゲイン(Sgn)を算出する。
【0131】
R_S:R軸彩度調整値(%)
G_S:G軸彩度調整値(%)
B_S:B軸彩度調整値(%)
Y_S:Y軸彩度調整値(%)
C_S:C軸彩度調整値(%)
M_S:M軸彩度調整値(%)
【数10】
【0132】
(2)オーバーリミットゲイン(Sgn_Rol,Sgn_Gol,Sgn_Bol)の算出
彩度ゲイン算出部1223は、各格子点(Dn1)のオーバーリミットゲインを算出する。オーバーリミットゲインとは、これ以上大きいゲインを各格子彩度成分(Rsn,Gsn,Bsn)に乗算すると、調整後のRGB値が256を超えてしまうゲインである。よって、彩度ゲイン算出部1223は、明るさ及び色相調整後の格子点の座標(Dn1=(Rdn1,Gdn1,Bdn1))に対して、彩度成分(Rsn,Gsn,Bsn)にゲイン値を乗算して加算した場合に、256となるゲイン値をオーバーリミットゲイン(Sgn_Rol,Sgn_Gol,Sgn_Bol)として算出する。
【0133】
(3)アンダーリミットゲイン(Sgn_Rul,Sgn_Gul,Sgn_Bul)の算出
彩度ゲイン算出部1223は、各格子点(Dn1)のアンダーリミットゲインを算出する。アンダーリミットゲインとは、これ以上大きいゲインを各格子彩度成分(Rsn,Gsn,Bsn)に乗算すると、調整後のRGB値が負の値となってしまうゲインである。よって、彩度ゲイン算出部1223は、明るさ及び色相調整後の格子点の座標(Dn1=(Rdn1,Gdn1,Bdn1))に対して、彩度成分(Rsn,Gsn,Bsn)にゲイン値を乗算して加算した場合に、0となるゲイン値をアンダーリミットゲイン(Sgn_Rul,Sgn_Gul,Sgn_Bul)として算出する。
【0134】
(4)色相を補償する彩度ゲインSgn_Limを選択
基本ゲイン(Sgn)をそのまま用いて彩度調節を行った場合、R値、G値、B値のいずれかが256以上または0未満となってしまう恐れがある。すなわち、調整後の色がRGB空間で表現できない色となり、調整前の色相を補償出来なくなってしまう恐れがある(調整前と比べて、色相が変化してしまう恐れがある)。そこで、彩度ゲイン算出部1223は、各格子点(Dn1)の彩度ゲインとして(1)〜(3)で算出した各ゲイン値の最小値を最終的な彩度ゲインSgn_Limとして選択する。これにより、調整後のRGB値が0〜256の範囲に収まり、調整前の色相を補償することができる。
Sgn_Lim = Min (Sgn, Sgn_Rol, Sgn_Gol, Sgn_Bol, Sgn_Rul, Sgn_Gul, Sgn_Bul)
【0135】
彩度ゲイン算出部1223は、各格子点(Dn1)の彩度ゲインSgn_Limを移動量算出部1224に供給する。
【0136】
移動量算出部1224は、各格子点(Dn1)の彩度調整による移動量を算出し、当該移動量を明るさ及び色相調整後のRGB座標(Rdn1,Gdn1,Bdn1)に加算することにより、彩度調整後のRGB座標(Rdn2,Gdn2,Bdn2)を算出する。具体的には、以下の(数11)、(数12)に示す算出処理を行う。なお、移動量算出部1224は、各6軸頂点(RGBYCM)についても同様の算出処理を行う。
【0137】
彩度調整後の移動量:(ΔRn2, ΔGn2, ΔBn2)
【数11】
【0138】
彩度調整後の各格子点座標:(Rdn2, Gdn2, Bdn2)
【数12】
【0139】
移動量算出部1224は、全ての格子点の調整前のRGB座標(Rdn,Gdn,Bdn)と、調整(明るさ、色相、彩度)後のRGB座標(Rdn2,Gdn2,Bdn2)を対にして3次元ルックアップテーブル131に入力する。また、移動量算出部1224は、各6軸頂点の調整前のRGB座標と、調整(明るさ、色相、彩度)後のRGB座標も対にして3次元ルックアップテーブル131に入力する。
【0140】
以上により、各6軸(RGBCYM)における明るさ、色相、彩度調整のための処理が終了する。前述のように、画像調整部130は、3次元ルックアップテーブル131が記憶するテーブルデータに応じて、各種画像データの色を調整して出力する。
【0141】
続いて、本実施の形態にかかる画像処理装置100の効果について説明する。上述のように、ユーザは、各6軸頂点(RGBYCM)の明るさ、色相、彩度の調整値を入力するのみである。画像処理装置100は、調整値と、RGB色空間上の各格子点の位置、に応じて各色の調整後の色を自動算出する。これにより、ユーザが色管理技術に関するノウハウを一切持たない場合や、画像処理装置100の仕組み(ハードウェア構成/ソフトウェア構成)に関する知識を一切持たない場合であっても容易に6軸調整を実現することができる。
【0142】
また、3次元ルックアップテーブルを用いる構成により、前述のように高い自由度及び回路規模の縮小等の多くのメリットを享受することができる。なお、上述の手法により算出したRGB色空間上の元座標と調整後座標の関係を用いて、ルックアップテーブルを用いずに画像処理を行う構成であったとしても、回路規模等の問題が生じるものの、ユーザのノウハウ無しに6軸調整を実現することができるというメリットは実現することができる。
【0143】
上述のように画像処理装置100は、全ての処理をRGB色空間で行っている。そのため、RGB/YCbCrやRGB/HSV等の異なる色空間同士の変換時に発生してしまう色歪みや色空間領域の活用効率低下といった問題を回避することができる。詳細を
図15を参照して説明する。
【0144】
図15は、色差信号Cb/Crに対して、色域全体を色相(Hue)方向に20°調整した例を示す図である。調整後には、
図15に示すように、RGB空間外に調整される領域A1が発生してしまう。この対策として、RGB空間内に抑制するためのクリップ処理やマッピング処理が行われる。これらの処理により、RGB色空間内での色の連続性を損なう色歪みの問題を引き起こしてしまう。さらに、調整後に、いかなる信号が入力された場合であっても使用されない領域A2も発生してしまう。これにより、表示パネル等が有する色再現範囲を最大限利用することが出来なくなってしまう。
【0145】
一方、本実施の形態にかかる画像処理装置100は、全ての処理をRGB色空間内で行っている。全ての処理をRGB色空間内で行っているため、上述の色歪みの問題や色再現範囲の低下といった問題を回避することができる。
【0146】
さらにまた、調整データ生成部120は、各6軸頂点とRGB空間上の各格子点との距離から影響度を算出し、当該影響度に応じて各格子点の移動量を自動算出している。すなわち、各6軸頂点と近い位置にある格子点は、当該各6軸頂点の移動の影響を強く受けることになる。これにより、ユーザが意図した各6軸頂点(色)の調整が出来るとともに、色空間の連続性が補償された色歪みの無い出力画像、すなわち高品質な出力画像を容易に得ることができる。
【0147】
上述のように、画像処理装置100は、各6軸頂点から影響を受けるRGB空間内の領域を、上述の正規化距離Lsにより管理している。正規化距離Lsは、例えば各6軸頂点から隣接頂点までの距離、または各6軸頂点から最短無彩色点までの距離、に応じて定められる。前者の場合には調整軸(色)以外の他の6軸(色)への影響を無くすことができ、後者の場合には無彩色領域に色がついてしまうという弊害を回避することができる。すなわち、6軸(色)毎に独立した色調整を実現することができる。なお、正規化距離Lsは、その調整目的に応じてユーザが上記の距離よりも短く設定することも勿論可能である。
【0148】
さらに、調整データ生成部120は、明るさ及び色相の調整方向を
図4〜
図9に示す方向に定める。すなわち、明るさ及び色相の補正方向が各6軸頂点から他の頂点方向になる。これにより、ユーザが意図した明るさ、色相の調整を実現できるとともに、当該調整により他の色属性への影響を回避することができる。すなわち、明るさを調整する場合には色相及び彩度への影響を無くすことができ、色相を調整する場合には明るさ及び彩度への影響を無くすことができる。これにより補正された色特性が非常に自然となり、かつRGB色空間内での調整が補償されるため、色空間利用率を高くすることができる。
【0149】
調整データ生成部120は、彩度の調整方向を
図14に示す方向に定める。これにより、明るさに影響を与えることなく、彩度を調整することができる。さらに、上述したように基本ゲインに加えてオーバーリミットゲイン及びアンダーリミットゲインを算出し、その最小値を選択することによって色相の変化を防止している。これにより、補正された色特性が非常に自然となる。さらに、基本ゲインを用いるとRGB色空間から出てしまう場合にはリミットゲインを用いるが、リミットゲインは、RGB色空間の境界(すなわちR値、G値、B値のいずれかが0または256となる点)に各色を調整するゲインである。これにより、RGB色空間を最大限に利用することができる。
【0150】
また、調整データ生成部120は、各6軸頂点の明るさを調整した後に色相を調整する場合、明るさの調整量を考慮して色相調整のダイナミックレンジを変化させることも可能である(
図11P4及びその説明参照)。これにより、よりユーザの意図した色(色合い)をより正確に実現することができる。
【0151】
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【0152】
例えば、上述の画像処理装置100は、6軸調整を行うものとして説明したが、必ずしもこれに限られず、n軸(nは3以上の整数)を行うものであればよい。すなわち、画像処理装置100は、上述の手法を用いて3軸(RGB)調整を行っても良く、12軸調整を行っても良い。さらに、画像処理装置100は、特定色(たとえばマゼンタ(M))については調整対象から外した上で、上述の手法を用いて5軸調整を行ってもよい。同様に、画像処理装置100は、6軸頂点色(RGBYCM)の中間にある色を調整対象に加えた上で、上述の手法を用いて7軸調整、8軸調整等を行っても良い。
【0153】
また、上述の説明では、RGB色空間の各辺の距離、すなわちR値、G値、B値が8bitである例を説明したが必ずしもこれに限られず、任意のビット数でR値、G値、B値を表現する場合にも応用可能である。
【0154】
上述したように、画像処理装置100は、明るさ、色相、彩度のうち、少なくとも1つを調整する構成であればよい。また、
図1の構成では、画像処理装置100は、明るさ、色相、彩度の順序で調整を行ったが、調整順序は必ずしもこれに限られない。
【0155】
なお、調整順序を変更する場合、
図11P4に示すように、各6軸頂点のダイナミックレンジを適宜調節することが望ましい。例えば、色相に関する各6軸頂点の移動量を算出した後に明るさに関する各6軸頂点の移動量を算出する場合、頂点明るさ移動量算出部1214は、色相に関する各6軸頂点の移動量が大きくなるにつれて明るさに関する各6軸頂点のダイナミックレンジを小さくすればよい。これにより、明るさの過度な調整を回避でき、ユーザが望む色調整を実現することができる。
【0156】
また、
図1に示す画像処理システム1の構成はあくまで一例であり、例えば
図16に示すように入力インターフェイス部200と出力インターフェイス部300が一体化されたインターフェイス部400を有する形態であっても良い。
【0157】
インターフェイス部400は、色属性(明るさ、色相、彩度)の調整値を入力する入力インターフェイスを供給する。さらに、インターフェイス部400は、調整データ生成部120が生成したデータ(テーブルデータ)そのもの、または当該データを用いて色属性(明るさ、色相、彩度)を調整した画像データを表示する出力インターフェイスを提供する。以下、インターフェイス部400が提供するインターフェイスの例を説明する。
【0158】
図17は、インターフェイス部400が提供する当該インターフェイス画面の一例である。図示するように、インターフェイス画面には、明るさ、色相、彩度の調整値を入力する入力インターフェイス500と、入力インターフェイス500から入力された調整値を用いて画像調整が行われた後の表示画像が表示される出力インターフェイス510と、が表示される。出力インターフェイス510は、好適には一般的なコンピュータ等の表示装置の表示画面である。画像処理装置100は、入力インターフェイス500から入力された調整値を用いて3次元ルックアップテーブル131のテーブルデータを生成し、当該テーブルデータを用いて入力画像データを調整する。そして、画像処理装置100は、調整後の画像データ(この場合、色調整後の一般的な表示画面データ)をインターフェイス部400に供給する。これにより、ユーザは、入力する各調整値を目視確認できると共に、入力した調整値により、色調整がどのように行われるかを合わせて目視確認することができる。
【0159】
図18は、インターフェイス部400が提供するインターフェイスの第2の例である。図示するように、当該インターフェイスには明るさ/色相/彩度の調整値を入力する入力インターフェイス500と、入力インターフェイス500から入力された調整値を用いて画像調整が行われた後の表示画像が表示される出力インターフェイス510と、が表示される。出力インターフェイス510には、入力画像データの表示スペース520と、入力画像データに対して6軸調整を行った画像データの表示スペース530と、が設けられている。画像処理装置100は、入力インターフェイス500から入力された調整値を用いて3次元ルックアップテーブル131のテーブルデータを生成し、当該テーブルデータを用いて入力画像データを調整する。そして、画像処理装置100は、入力画像データとともに調整後の画像データをインターフェイス部400に供給する。当該インターフェイスによっても、ユーザは、入力する各調整値を目視確認できると共に、入力した調整値により、画像調整がどのように行われるかを合わせて目視確認することができる。
【0160】
図19は、インターフェイス部400が提供するインターフェイスの第3の例である。図示するように、当該インターフェイスには明るさ/色相/彩度の調整値の入力インターフェイス500と、各色の調整後の色を示す出力インターフェイス510が表示されている。出力インターフェイス510には、各6軸点(色)と、その調整後座標との関係が表示される。また、ユーザは、マウス等の入力装置により任意の色(Pt1)を選択可能である。インターフェイス部400は、当該色(Pt1)の座標を画像処理装置100に通知する。画像処理装置100は、当該色(Pt1)に対応する調整後の色座標(Pt1')をインターフェイス部400に通知する。そして、インターフェイス部400は、選択した色(Pt1)と調整後の色(Pt1')を出力インターフェイス510に表示する。これによっても、ユーザは、入力する各調整値を目視確認できると共に、入力した調整値により、画像調整がどのように行われるかを合わせて目視確認することができる。なお、
図19では色空間を6角形の図形で示したが必ずしもこれに限られず、RGBCYB及び黒と白を頂点とする立方体図形(
図21に相当する立方体図形)により色空間を示しても良い。
【0161】
なお、
図17〜
図19に示すインターフェイスはあくまでも一例であり、この他のインターフェイスを提供しても良いことは勿論である。すなわち、出力インターフェイス510は、どのように6軸(n軸)調整が行われているかを目視確認できる情報を提供すればよい。
【0162】
上述の画像処理装置100は、画像調整部130をハードウェア(回路)として構成することにより、ハイビジョン画像(Ex.1920×1080)にも対応できる高速処理を実現することができる。また、調整データ生成部120の処理をハードウェア(回路)として実現することもできる。すなわち、画像処理装置100は、半導体装置として実現可能である。
【0163】
上述の画像処理システム1は、例えばディスプレイ装置、プリンタ装置、テレビ受像機、複写機、コンピュータ、デジタル複合機(いわゆるMFP(Multifunction Peripheral)を含む)、プロジェクタ装置、携帯電話端末、デジタルスチルカメラ、スマートフォン、デジタルフォトフレーム、携帯ゲーム機等である。すなわち、画像処理システム1は、表示部に画像を表示する装置、表示部を有する装置に接続可能な装置、画像を印刷または表示する装置、等である。
【0164】
画像処理部110、調整データ生成部120、及び画像調整部130の実行する各処理の一部又は全部は、任意のコンピュータ内で動作するプログラムとして実現してもよい。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0165】
画像処理部110、調整データ生成部120、及び画像調整部130の実行する各処理の一部又は全部をプログラムとして実行するコンピュータのハードウェア構成の一例を
図20に示す。
【0166】
当該コンピュータは、中央処理装置(CPU, Central Processing Unit)600と、メモリ610と、を含んでいる。CPU600及びメモリ610は、バスを介して補助記憶装置としてのハードディスク装置(HDD)620に接続される。ハードディスク装置620等の記憶媒体にはオペレーティングシステムと協働してCPU600等に命令を与え、上述した画像処理装置100の各処理を実施するためのコンピュータ・プログラムを記憶することができる。
【0167】
最後に、他の装置が本実施の形態にかかる画像処理装置100と同等の色調整を行っているか否かを判断する一手法を示す。例えば、他の装置に対して、各軸頂点の色(たとえばRGBCYM)を入力し(たとえば単色の画像を入力し)、出力された色を測色計で測り、色の変化具合を算出する。また、この他の装置に対して、任意の色を入力し(たとえば単色の画像を入力し)、当該色に対応する出力色を測色計で測る。さらに、この任意の色と、各軸頂点色と、のRGB空間上での距離を算出する。この任意の色と各軸頂点のRGB空間での近さ、及び色の変化具合の関係から、当該他の装置の補正特性を概算で算出することが可能となる。この補正特性と、本実施の形態にかかる画像処理装置の補正特性を比較することにより、他の装置が本実施の形態にかかる画像処理装置100と同等の色調整を行っているか否かを判断することができる。なお、当該手法はあくまで一例であり、他の手法を用いることも当然考えられる。