(57)【要約】【課題】レティネックス処理における過補正を抑制しつつ画像処理演算を高速化することができる画像処理プログラムおよび画像処理装置を提供すること。【解決手段】単調増加関数である一次関数とガンマ補正演算との両者を組み合わせて出力値Ｏｕｔｙが生成される。変曲点設定区間は、輝度信号Ｙの値において、正規化反射率ｒｅｆｌｅ０．３の特性線と、無変換直線との交点の値以上である。また、正規化反射率ｒｅｆｌｅ０．３の特性線と正規化反射率ｒｅｆｌｅ１．３の特性線との間隔が、予め定めた幅となる輝度信号Ｙの値が、変曲点設定区間の上限となる。変曲点は、上記２の規定によって設定される変曲点設定区間内の任意の値とすることができる。このように変曲点設定区間を規定することにより、元画像の逆光領域においてはガンマ補正演算に従った逆光補正（輝度上昇）を実現し、また、明部における過補正の発生を抑制することができる。【選択図】図４
2008129797.tif 000002
【特許請求の範囲】
【請求項１】
画像の補正処理を行う画像処理装置に搭載され、元画像における注目画素の画素信号の値と注目画素周辺の周辺画素の平均輝度値とに基づいて注目画素と周辺画素との相対的な明るさの指標となる反射光成分値を算出する反射光成分算出ステップと、その反射光成分算出ステップにて算出された反射光成分値をパラメータとして注目画素の画素信号の値を非線形の関数で補正した補正値と、注目画素の画素信号の値とに基づいて出力画像の画素信号を生成する画素信号生成ステップとを備え、レティネックス処理による画像補正を実行する画像処理プログラムにおいて、
前記画素信号生成ステップは、前記反射光成分算出ステップにて算出された反射光成分値により注目画素が周辺画素より暗いことが示されている場合において、注目画素の画素信号の値が０から第１所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第１所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第１複合生成ステップを備えており、
その第１複合生成ステップにて用いられる単調増加関数は、前記非線形の関数で元画像の画素信号の最大値を補正した補正値に基づいて求められる出力画像の画素信号の輝度値よりも大きな値であって、元画像の画素信号の最大輝度値近傍の値を、出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、
前記第１所定値は、前記第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされていることを特徴とする画像処理プログラム。
【請求項２】
前記第１所定値は、注目画素が周辺画素よりも明るいことを示す反射光成分値の最大値をパラメータとした前記非線形の関数によって導出される信号値と、前記第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした前記非線形の関数によって導出される信号値との差が、予め定めた幅以下となる画素信号の値とされていることを特徴とする請求項１記載の画像処理プログラム。
【請求項３】
前記第１所定値は、注目画素の画素信号が取り得る範囲の中点近傍の値とされていることを特徴とする請求項２記載の画像処理プログラム。
【請求項４】
前記画素信号生成ステップは、前記反射光成分算出ステップにて算出された反射光成分値により注目画素が周辺画素と同じ明るさであることが示されている場合において、注目画素の画素信号の値が０から第２所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第２所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第２複合生成ステップを備えており、
その第２複合生成ステップにて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、
前記第２所定値は、前記第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされていることを特徴とする請求項１から３のいずれかに記載の画像処理プログラム。
【請求項５】
前記第２所定値は、注目画素に対し前記第２複合生成ステップにおける単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成ステップによって導出される信号値よりも大きな値となるように規定されたものであることを特徴とする請求項４記載の画像処理プログラム。
【請求項６】
前記画素信号生成ステップは、前記反射光成分算出ステップにて算出された反射光成分値により注目画素が周辺画素よりも明るいことが示されている場合において、注目画素の画素信号の値が０から第３所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第３所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第３複合生成ステップを備えており、
その第３複合生成ステップにて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、
前記第３所定値は、前記第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされていることを特徴とする請求項１から５のいずれかに記載の画像処理プログラム。
【請求項７】
前記第３所定値は、注目画素に対し前記第３複合生成ステップにおける単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成ステップ及び第２複合生成ステップによって導出される信号値よりも大きな値となるように規定されたものであることを特徴とする請求項６記載の画像処理プログラム。
【請求項８】
元画像における注目画素の画素信号の値と注目画素周辺の周辺画素の平均輝度値とに基づいて注目画素と周辺画素との相対的な明るさの指標となる反射光成分値を算出する反射光成分算出手段と、その反射光成分算出手段にて算出された反射光成分値をパラメータとして注目画素の画素信号の値を非線形の関数で補正した補正値と、注目画素の画素信号の値とに基づいて出力画像の画素信号を生成する画素信号生成手段とを備え、レティネックス処理による画像補正を実行する画像処理装置において、
前記画素信号生成手段は、前記反射光成分算出手段にて算出された反射光成分値により注目画素が周辺画素より暗いことが示されている場合において、注目画素の画素信号の値が０から第１所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第１所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第１複合生成手段を備えており、
その第１複合生成手段にて用いられる単調増加関数は、前記非線形の関数で元画像の画素信号の最大値を補正した補正値に基づいて求められる出力画像の画素信号の輝度値よりも大きな値であって、元画像の画素信号の最大輝度値近傍の値を、出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、
前記第１所定値は、前記第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされていることを特徴とする画像処理装置。
【請求項９】
前記第１所定値は、注目画素が周辺画素よりも明るいことを示す反射光成分値の最大値をパラメータとした前記非線形の関数によって導出される信号値と、前記第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした前記非線形の関数によって導出される信号値との差が、予め定めた幅以下となる画素信号の値とされていることを特徴とする請求項８記載の画像処理装置。
【請求項１０】
前記第１所定値は、注目画素の画素信号が取り得る範囲の中点近傍の値とされていることを特徴とする請求項９記載の画像処理装置。
【請求項１１】
前記画素信号生成手段は、前記反射光成分算出手段にて算出された反射光成分値により注目画素が周辺画素と同じ明るさであることが示されている場合において、注目画素の画素信号の値が０から第２所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第２所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第２複合生成手段を備えており、
その第２複合生成手段にて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、
前記第２所定値は、前記第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされていることを特徴とする請求項８から１０のいずれかに記載の画像処理装置。
【請求項１２】
前記第２所定値は、注目画素に対し前記第２複合生成手段における単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成手段によって導出される信号値よりも大きな値となるように規定されたものであることを特徴とする請求項１１記載の画像処理装置。
【請求項１３】
前記画素信号生成手段は、前記反射光成分算出手段にて算出された反射光成分値により注目画素が周辺画素よりも明るいことが示されている場合において、注目画素の画素信号の値が０から第３所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第３所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第３複合生成手段を備えており、
その第３複合生成手段にて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、
前記第３所定値は、前記第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされていることを特徴とする請求項８から１２のいずれかに記載の画像処理装置。
【請求項１４】
前記第３所定値は、注目画素に対し前記第３複合生成手段における単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成手段及び第２複合生成手段によって導出される信号値よりも大きな値となるように規定されたものであることを特徴とする請求項１３記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラムおよび画像処理装置に関し、特にレティネックス処理における過補正を抑制しつつ画像処理演算を高速化することができる画像処理プログラムおよび画像処理装置に関するものである。
【背景技術】
【０００２】
逆光条件下で被写体が撮像された場合、被写体部分の画像は、詳細な態様が判別困難となるほど明度やコントラストの低い不明瞭な逆光画像となる。かかる逆光画像のみならず、露光の過不足や、撮像時のぶれやぼけ、ノイズ、光量不足などによる劣悪な画像を、画像処理によって明度やコントラストを向上させて画質を改良することが行われている。かかる画像処理の１手法として、レティネックス処理（Ｒｅｔｉｎｅｘ処理）が知られている。
【０００３】
このレティネックス処理の概要を図１２を参照して説明する。図１２は、レティネックス処理の概要を示した図である。レティネックス処理では、まず、入力画像（元画像）の各画素を注目画素として（１）式に従ったガウスフィルタ処理が実行される（図１２（ａ），（ｂ））。図１２の（ｂ−１）には、ｍ×ｎのマトリクスで形成されたガウスフィルタ（ＭＳＲマスク）を模式的に示している。また、図１２の（ｂ−２）には、このガウスフィルタの各マトリクスに設定されるフィルタ係数を示している。尚、図１２の（ｂ−２）におけるグラフは、横軸にマトリクスの位置（フィルタサイズ）、縦軸にフィルタ係数を示している。横軸の中心付近に示した「０」は、フィルタ中心位置であり、「０」から遠ざかるほどフィルタ中心から遠いマトリクス位置となる。図１２の（ｂ−２）に示すように、ガウスフィルタは、中心から四方へ向かって次第にフィルタ係数が小さくなると共に、各フィルタ係数の総合計が１となるように設計されている。
【０００４】
【数１】
2008129797.tif 000003
ここで、ｘは、横方向の座標を、ｙは、縦方向の座標を、Ｉ（ｘ，ｙ）は、座標（ｘ、ｙ）における信号強度値（画素値，画素信号の値）を、Ｆ（ｘ，ｙ）は、ガウスフィルタを、＊は、畳み込み演算（コンボリューション）をそれぞれ示す。かかるガウスフィルタ処理がなされると、即ち、各画素をそれぞれ注目画素とするｍ×ｎの領域にガウスフィルタＦ（ｘ，ｙ）による畳み込み演算が行われると、注目画素からの距離に応じた重みを加味しつつ平均された周辺画素の平均輝度値が、各画素のそれぞれに対応して算出されることとなる。このガウスフィルタ処理により算出される周辺画素の平均輝度値は、注目画素の画素値に周辺画素の画素値を反映した値となる。
【０００５】
そして、（２）式に従って、入力画像の各画素値を、算出された対応する平均輝度値で除し、得られた値を自然対数化する（図１２（ｃ））。
【０００６】
【数２】
2008129797.tif 000004
この対数化された値（対数値）をＲとする。対数値Ｒは、各画素値毎に、対応するＲ（ｘ，ｙ）が求められる。この対数値Ｒが求められると、対数値Ｒのヒストグラムを生成するために、全対数値Ｒの最大値と最小値とが求められる。
【０００７】
次いで、得られた最大値と最小値との範囲で、対数値Ｒのヒストグラム（頻度分布）を作成し（図１２（ｄ））、その後、ヒストグラムの補正を行う（図１２（ｅ））。かかるヒストグラム補正では、作成されたヒストグラムからメジアン値Ｍを求め、そのメジアン値Ｍから大きい側へ所定％（例えば４５％）の画素数を含む範囲の上限値をＵ、メジアン値Ｍから小さい側へ所定％（例えば４５％）の画素数を含む範囲の下限値をＤとする。
【０００８】
続いて、対数値Ｒを正規化した正規化反射率（正規化レティネックス値）ｒｅｆｌｅを求める（図１２（ｆ））。具体的には、求められた上限値Ｕおよび下限値Ｄの値を、それぞれ予め定めた上限値ｕおよび下限値ｄとして、先に算出された上限値Ｕ〜下限値Ｄの範囲の対数値Ｒを上限値ｕ〜下限値ｄの範囲の値に正規化する（正規化反射率ｒｅｆｌｅの算出）。この正規化は、例えば、（３）式に従って実行される。
【０００９】
【数３】
2008129797.tif 000005
尚、下限値Ｄ以下である対数値Ｒは下限値ｄに、上限値Ｕ以上である対数値Ｒは、上限値ｕとされる。求められた正規化反射率ｒｅｆｌｅは、入力画像の反射光成分（正規化された反射光成分）であって、最終的な反射光成分（出力値Ｏｕｔ）を求めるためのパラメータとなる値である。その後、正規化反射率ｒｅｆｌｅに対し、カラー補正処理であるＣＲ処理を実行した後（図１２（ｇ））、出力値Ｏｕｔを生成する。出力値Ｏｕｔは、（４）式に従って算出される。この出力値Ｏｕｔは、出力画像の各画素の画素値（出力画像データ）となる。
【００１０】
【数４】
2008129797.tif 000006
レティネックス処理では、画素値は、照明光成分と反射光成分との合成値とされており、照明光成分は輝度を反映し、反射光成分は色を反映するものとされている。ここで、照明光成分は、入力画像の画素値を反射光成分で除して求められるので、（４）式においては、分母が照明光成分に相当する。尚、入力画像の画素値が「０」〜「２５５」で表されるので、ｒｅｆｌｅ（ｘ，ｙ）には２５５が乗算されている。
【００１１】
従って、出力値Ｏｕｔは、反射光成分となる。出力画像データの画素値としては、色を形成する値が必要であるので、反射光成分である出力値Ｏｕｔが求められるのである。当然の事ながら、（４）式からも解るように、算出される出力値Ｏｕｔは、ガンマ補正によって明度や階調（コントラスト）が補正された照明光成分が反映された値となっている。（４）式に従って処理を行った場合の入力画像データの各画素値「０」〜「２５５」と、出力値Ｏｕｔとの関係の一例を図１３に示す。
【００１２】
図１３は、入力画像データと（４）式に従って入力画像データから生成される出力画像データとの関係を示した図であり、ガンマ補正演算（非線形の関数による補正演算）を含む（４）式をグラフ化して示した図である。図１３のグラフにおいては、横軸に入力画像データの画素値を示し、縦軸に出力画像データの画素値を示している。ここで、（４）式は、パラメータである正規化反射率ｒｅｆｌｅ（対数値Ｒ）によって異なるグラフ曲線となるため、図１３においては、対数値Ｒが負、０、正の場合のそれぞれに対応する、特定の正規化反射率ｒｅｆｌｅ（０．３，０．８，１．３）のグラフ曲線を示している。図１３において、対数値Ｒが負（正規化反射率ｒｅｆｌｅ０．３）のグラフ曲線を破線で、対数値Ｒが０（正規化反射率ｒｅｆｌｅ０．８）のグラフ曲線を一点鎖線で、対数値Ｒが正（正規化反射率ｒｅｆｌｅ１．３）であるグラフ曲線を二点鎖線で示した。尚、画素値と輝度（明るさ）とは連動しており、画素値が大きいほど輝度は高く（明るく）なり、逆に画素値が小さいほど輝度は低く（暗く）なる。
【００１３】
図１３のグラフにおいて各グラフ曲線は、入力画像データの画素値が小さい側において変化率（傾き）は１を超えている。つまり、入力された画素値は、画素値が小さい側、即ち暗部においては増大（伸張）される補正がなされて、出力値Ｏｕｔとして出力される。その結果、入力値の僅かな変化が大きく出力値Ｏｕｔに反映され、階調変化を増大させるコントラストの強調が行われることとなる。
【００１４】
また、各グラフ曲線は、入力画像データの画素値が大きくなる程、その変化率は小さくなるが、図１３に示すように、変化率の減少程度は、正規化反射率ｒｅｆｌｅ（対数値Ｒ）によって異なっている。画素値が大きい側、即ち、明部においては、入力された画素値は、正規化反射率ｒｅｆｌｅが小さくなるほどより大きく減少（圧縮）されて、出力される。
【００１５】
つまり、レティネックス処理において正規化反射率が小さな値であるほど（言い換えれば対数値Ｒが正であるよりも負であるほうが）、入力画像データの画素値が大きくなるにつれ、生成される出力値Ｏｕｔが大きく圧縮される傾向にある。また、正規化反射率ｒｅｆｌｅが大きくなるほど、出力値Ｏｕｔは大きくなる。このように、同じ入力値でも、正規化反射率ｒｅｆｌｅ（対数値Ｒ）に応じて、その出力値Ｏｕｔは広い範囲の値を取り得るので、明部において階調変化を増長（形成）することができるのである。
【００１６】
一般には、レティネックス処理において、周辺画素より暗い注目画素が所定値以上の画素値を有していると、出力値Ｏｕｔは入力値よりも小さな値で生成される。つまり、その注目画素は、出力画像において、入力画像よりも輝度の低下した暗い画素となる。一方で、該注目画素の周辺画素は、該注目画素より明るい画素であるので、対数値Ｒが正のグラフ曲線に従って、より明るい画素とする補正がなされることが多い。その結果、出力画像においては、、注目画素と周辺画素との相対的な明るさの差、即ち輝度の差（階調）が増長されて、コントラストが強調されるのである。図１３からもわかるように、対数値Ｒが正である場合に生成される出力値Ｏｕｔと、対数値Ｒが負である場合に生成される出力値Ｏｕｔとの差は、明部となるほど（入力値が大きくなるほど）、拡大する。つまり、入力画像の画素値が大きい（輝度値が大きい、明部である）ほど、コントラストが強く強調されることとなる。
【００１７】
このようなレティネックス処理によって、照明光成分に対してガンマ補正等の明度や階調（コントラスト）を補正する処理が行われて、入力画像に対し逆光画像部分などの低画質部分の画質が改良された出力画像を生成することができる。
【特許文献１】特許３７３１５７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、従来の文献に開示された処理では、図１２（ｈ）や図１３のグラフに示したようなガンマ補正演算が行われるので、入力画像の画素値が大きくなるに従って、注目画素が周辺画素よりも明るい場合に生成される出力値と、注目画素が周辺画素よりも暗い場合に生成される出力値との差が拡大しすぎてしまい、過補正が生じてしまうという問題点があった。
【００１９】
過補正は、必要以上の極端なコントラスト強調がなされてしまうことであり、輝度値の階調差が増長されすぎてしまうことである。その結果、暗部において過度に明るい部位や、明部において過度に暗い部位が形成されてしまうという事象が生じる。この過補正が明部において発生すると、明るい部分に過度に暗い画素が出現することになる。かかる明部の中に発生した暗い画素（急激な階調変化）は視覚的に際だってしまうので、目立った画質不良となって、大きく画質を低下させてしまうという問題点があった。
【００２０】
このように、従来のレティネックス処理では、コントラストを強調することで過補正が発生してしまい、コントラスト強調と過補正抑制とを両立することが困難となっているという問題点があった。
【００２１】
そこで、入力画像データにレティネックス処理を行った処理画像と、元の入力画像データとを合成して、出力画像データを生成する手法が提案されている。これによれば、レティネックス処理を経て作成された処理画像の各画素値に、対応する入力画像の各画素値（輝度値）が加味されて出力画像が形成されるため、レティネックス処理を行っただけの処理画像に比べて、過補正が修正された出力画像が生成される。しかし、処理画像と元の入力画像との合成においては、各画素毎に演算が行われるので、演算量が膨大になり、処理速度を著しく低下させてしまうという問題点があった。
【００２２】
本発明は、上記問題点を解決するためになされたものであり、特にレティネックス処理における過補正を抑制しつつ画像処理演算を高速化することができる画像処理プログラムおよび画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【００２３】
この目的を達成するために、請求項１記載の画像処理プログラムは、画像の補正処理を行う画像処理装置に搭載され、元画像における注目画素の画素信号の値と注目画素周辺の周辺画素の平均輝度値とに基づいて注目画素と周辺画素との相対的な明るさの指標となる反射光成分値を算出する反射光成分算出ステップと、その反射光成分算出ステップにて算出された反射光成分値をパラメータとして注目画素の画素信号の値を非線形の関数で補正した補正値と、注目画素の画素信号の値とに基づいて出力画像の画素信号を生成する画素信号生成ステップとを備え、レティネックス処理による画像補正を実行するものであり、前記画素信号生成ステップは、前記反射光成分算出ステップにて算出された反射光成分値により注目画素が周辺画素より暗いことが示されている場合において、注目画素の画素信号の値が０から第１所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第１所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第１複合生成ステップを備えており、その第１複合生成ステップにて用いられる単調増加関数は、前記非線形の関数で元画像の画素信号の最大値を補正した補正値に基づいて求められる出力画像の画素信号の輝度値よりも大きな値であって、元画像の画素信号の最大輝度値近傍の値を、出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、前記第１所定値は、前記第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００２４】
請求項２記載の画像処理プログラムは、請求項１記載の画像処理プログラムにおいて、前記第１所定値は、注目画素が周辺画素よりも明るいことを示す反射光成分値の最大値をパラメータとした前記非線形の関数によって導出される信号値と、前記第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした前記非線形の関数によって導出される信号値との差が、予め定めた幅以下となる画素信号の値とされている。
【００２５】
請求項３記載の画像処理プログラムは、請求項２記載の画像処理プログラムにおいて、前記第１所定値は、注目画素の画素信号が取り得る範囲の中点近傍の値とされている。
【００２６】
請求項４記載の画像処理プログラムは、請求項１から３のいずれかに記載の画像処理プログラムにおいて、前記画素信号生成ステップは、前記反射光成分算出ステップにて算出された反射光成分値により注目画素が周辺画素と同じ明るさであることが示されている場合において、注目画素の画素信号の値が０から第２所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第２所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第２複合生成ステップを備えており、その第２複合生成ステップにて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、前記第２所定値は、前記第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００２７】
請求項５記載の画像処理プログラムは、請求項４記載の画像処理プログラムにおいて、前記第２所定値は、注目画素に対し前記第２複合生成ステップにおける単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成ステップによって導出される信号値よりも大きな値となるように規定されたものである。
【００２８】
請求項６記載の画像処理プログラムは、請求項１から５のいずれかに記載の画像処理プログラムにおいて、前記画素信号生成ステップは、前記反射光成分算出ステップにて算出された反射光成分値により注目画素が周辺画素よりも明るいことが示されている場合において、注目画素の画素信号の値が０から第３所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第３所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第３複合生成ステップを備えており、その第３複合生成ステップにて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、前記第３所定値は、前記第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００２９】
請求項７記載の画像処理プログラムは、請求項６記載の画像処理プログラムにおいて、前記第３所定値は、注目画素に対し前記第３複合生成ステップにおける単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成ステップ及び第２複合生成ステップによって導出される信号値よりも大きな値となるように規定されたものである。
【００３０】
請求項８記載の画像処理装置は、元画像における注目画素の画素信号の値と注目画素周辺の周辺画素の平均輝度値とに基づいて注目画素と周辺画素との相対的な明るさの指標となる反射光成分値を算出する反射光成分算出手段と、その反射光成分算出手段にて算出された反射光成分値をパラメータとして注目画素の画素信号の値を非線形の関数で補正した補正値と、注目画素の画素信号の値とに基づいて出力画像の画素信号を生成する画素信号生成手段とを備え、レティネックス処理による画像補正を実行するものであり、前記画素信号生成手段は、前記反射光成分算出手段にて算出された反射光成分値により注目画素が周辺画素より暗いことが示されている場合において、注目画素の画素信号の値が０から第１所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第１所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第１複合生成手段を備えており、その第１複合生成手段にて用いられる単調増加関数は、前記非線形の関数で元画像の画素信号の最大値を補正した補正値に基づいて求められる出力画像の画素信号の輝度値よりも大きな値であって、元画像の画素信号の最大輝度値近傍の値を、出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、前記第１所定値は、前記第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００３１】
請求項９記載の画像処理装置は、請求項８記載の画像処理装置において、前記第１所定値は、注目画素が周辺画素よりも明るいことを示す反射光成分値の最大値をパラメータとした前記非線形の関数によって導出される信号値と、前記第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした前記非線形の関数によって導出される信号値との差が、予め定めた幅以下となる画素信号の値とされている。
【００３２】
請求項１０記載の画像処理装置は、請求項９記載の画像処理装置において、前記第１所定値は、注目画素の画素信号が取り得る範囲の中点近傍の値とされている。
【００３３】
請求項１１記載の画像処理装置は、請求項８から１０のいずれかに記載の画像処理装置において、前記画素信号生成手段は、前記反射光成分算出手段にて算出された反射光成分値により注目画素が周辺画素と同じ明るさであることが示されている場合において、注目画素の画素信号の値が０から第２所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第２所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第２複合生成手段を備えており、その第２複合生成手段にて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、前記第２所定値は、前記第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００３４】
請求項１２記載の画像処理装置は、請求項１１記載の画像処理装置において、前記第２所定値は、注目画素に対し前記第２複合生成手段における単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成手段によって導出される信号値よりも大きな値となるように規定されたものである。
【００３５】
請求項１３記載の画像処理装置は、請求項８から１２のいずれかに記載の画像処理装置において、前記画素信号生成手段は、前記反射光成分算出手段にて算出された反射光成分値により注目画素が周辺画素よりも明るいことが示されている場合において、注目画素の画素信号の値が０から第３所定値までの範囲では前記非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号を生成する一方、注目画素の画素信号の値が前記第３所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成する第３複合生成手段を備えており、その第３複合生成手段にて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、前記第３所定値は、前記第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした前記非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００３６】
請求項１４記載の画像処理装置は、請求項１３記載の画像処理装置において、前記第３所定値は、注目画素に対し前記第３複合生成手段における単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成手段及び第２複合生成手段によって導出される信号値よりも大きな値となるように規定されたものである。
【発明の効果】
【００３７】
請求項１記載の画像処理プログラムによれば、反射光成分算出ステップにより反射光成分値が算出される。ここで、反射光成分値は、注目画素と周辺画素との相対的な明るさの指標とされるものであって、元画像における注目画素の画素信号の値と注目画素周辺の周辺画素の平均輝度値とに基づいて算出される。また、この算出された反射光成分値をパラメータとして注目画素の画素信号の値を非線形の関数で補正した補正値と、注目画素の画素信号の値とに基づいて、画素信号生成ステップにより、出力画像の画素信号が、即ち、レティネックス処理による補正がなされた画素信号が、生成される。
【００３８】
かかる画素信号生成ステップにおいては、反射光成分算出ステップにて算出された反射光成分値により注目画素が周辺画素より暗いことが示されていると、第１複合生成ステップによって画素信号が生成されるが、注目画素の画素信号の値が０から第１所定値までの範囲では、非線形の関数に従って導出された信号値にて、注目画素よりも信号値が増大した画素信号が生成され、注目画素の画素信号の値が第１所定値以上では、単調増加関数に従って導出された信号値にて画素信号が生成される。つまり、注目画素の画素信号の値が第１所定値以上では、生成される画素信号を、非線形の関数によらず、単調増加関数にて導出されたものとすることができる。
【００３９】
ここで用いられる単調増加関数は、元画像の画素信号の最大値を非線形の関数で補正した補正値に基づいて求められる出力画像の画素信号の輝度値よりも大きな値であって、元画像の画素信号の最大輝度値近傍の値を、出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものである。一方で、レティネックス処理において用いられる非線形の関数は、コントラストや輝度の補正を行うべく、元画像の画素信号値（注目画素の画素信号の値）が小さい部分（暗い部分）では出力画像の画素信号値を元の値よりも増大させる一方、元画像の画素信号値が大きくなるにつれて出力画像の画素信号値を元の値に対して圧縮するようなものが一般的である。
【００４０】
よって、第１所定値以上である元画像中の明るい部分（明部）に属する画素の内、周辺画素よりも暗い注目画素について出力画像の画素信号を生成する場合、上記の単調増加関数に従ったものとなるので、非線形の関数に基づいて生成される場合よりも輝度値の大きなものを生成することできる。また、このように周辺画素よりも暗い注目画素について生成される画素信号の輝度値を上昇させることができるので、注目画素が周辺画素より暗い場合に生成される画素信号の輝度値と、注目画素が周辺画素より明るい場合に生成される画素信号の輝度値との差を、非線形の関数に基づいて生成される両信号の差よりも縮小することができる。言い換えれば、生成される出力画像の画素信号の取り得る輝度値の範囲を狭くすることができる。従って、出力画像の明るい部分における急激な階調変化を規制でき、かかる明るい部分に極端に輝度値の低下した過度に暗い画素が出現してしまう過補正を抑制することができるという効果がある。故に、明るい部分に過度に暗い画素が形成されるという目立った画質不良を回避でき、高画質の出力画像を生成することができるという効果がある。
【００４１】
また、第１所定値は、第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００４２】
ここで、第１の値よりも小さな画素信号は、レティネックス処理による逆光補正（即ち、注目画素よりも信号値が増大した画素信号の生成）が最も必要とされる部分である。かかる部分については、出力画像の画素信号を、単調増加関数ではなく、非線形の関数に基づいたもので生成することができるので、必要な部分においては的確に逆光補正を行いつつ画質不良を招く過補正については抑制することができるという効果がある。
【００４３】
更には、上記の非線形の関数に従えば、注目画素の画素信号が第１の値を超えると、圧縮された値の画素信号が生成される。従って、第１所定値が第１の値以降にあれば、単調増加関数にて生成される画素信号の信号値は、無変換関数にて生成されるものよりも小さな値を起点として生成される。故に、注目画素の画素信号の値が第１所定値以上にあって出力画像の画素信号が単調増加関数に従って導出されたとしても、注目画素が周辺画素よりも暗い場合には、出力画像の画素信号は、元の画素よりも暗い画素で生成されることとなる。その結果、コントラスト強調についても適性に実行することができる。
【００４４】
また、単調増加関数として、一次関数など、単純なアルゴリズムの関数を選択すれば、出力画像の画素信号を生成するための演算量を、非線形の関数で補正を行うよりも低減でき、画像処理を高速化することができるという効果がある。
【００４５】
請求項２記載の画像処理プログラムによれば、請求項１記載の画像処理プログラムの奏する効果に加え、第１所定値は、注目画素が周辺画素よりも明るいことを示す反射光成分値の最大値をパラメータとした非線形の関数によって導出される信号値と、第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした非線形の関数によって導出される信号値との差が、予め定めた幅以下となる画素信号の値とされているので、注目画素が周辺画素よりも明るい場合に導出される信号値と暗い場合に導出される信号値とに、過度に差が発生してしまうといった事態を確実に解消できるという効果がある。
【００４６】
つまり、かかる差は、コントラスト強調の度合を規定するので、かかる信号値の差を予め定めた幅以下に制限することにより、コントラスト強調程度を適切な範囲に収めることができる。そして、かかる信号値の差が予め定めた幅を超える場合には、出力画像の画素信号は、単調増加関数に基づいて生成されるため、注目画素の画素信号の値が大きくなるにつれ、上記の信号値の差は、次第に縮小することとなる。その結果、明部においてコントラストが過度に強調される過補正の発生を確実に回避することができるという効果がある。
【００４７】
請求項３記載の画像処理プログラムによれば、請求項２記載の画像処理プログラムの奏する効果に加え、第１所定値は、注目画素の画素信号が取り得る範囲の中点近傍の値とされている。上記した第１の値は無変換関数との交点であるので、画像処理において一般的に用いられる非線形の関数に従えば、注目画素が第１の値まではその信号値が増大した画素信号が生成され、第１の値を超えると逆に圧縮された画素信号が生成される。
【００４８】
一般的に画像処理に用いられる非線形の関数に従えば、第１の値よりも中点近傍の値のほうが大きくなるので、第１所定値を中点近傍の値とすることにより、第１の値から中点近傍の第１所定値までは、注目画素が周辺画素より暗い場合に生成される画素信号の輝度値と、注目画素が周辺画素より明るい場合に生成される画素信号の輝度値との差が拡大する。そして、注目画素の画素信号の値が第１所定値以上の値であれば、単調増加関数に従った画素信号が生成されるため、中点近傍で拡大した両者の差を徐々に縮小させていくことができる。
【００４９】
よって、注目画素の画素信号の値が、中点近傍を含みコントラスト強調が画質低下の要因とならない中間領域（即ち、過補正を抑制する必要のない領域）にある場合には、注目画素が周辺画素より暗い場合に生成される画素信号の輝度値と、注目画素が周辺画素より明るい場合に生成される画素信号の輝度値とに、十分な差を設けることができる。その結果、注目画素の画素信号のうち、かかる中間領域に属するものについては、良好に（十分な）コントラスト強調を行うことができるという効果がある。更には、第１所定値を中点近傍とすることにより、注目画素の画素信号の狭い範囲（例えば最大値近傍など）において、生成される画素信号の値が急激に上昇したものとなるといった事態を回避できる。このため、急激な階調変化の発生による画質の劣化を招くことがないという効果がある。
【００５０】
請求項４記載の画像処理プログラムによれば、請求項１から３のいずれかに記載の画像処理プログラムの奏する効果に加え、反射光成分値により注目画素が周辺画素と同じ明るさであることが示されていると、第２複合生成ステップによって画素信号が生成されるが、注目画素の画素信号の値が０から第２所定値までの範囲では非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号が生成される。また、注目画素の画素信号の値が第２所定値以上では、単調増加関数に従って導出された信号値により画素信号が生成される。
【００５１】
第２複合生成ステップにて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものである。また、第２所定値は、第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００５２】
よって、第２所定値以上である元画像中の明るい部分（明部）に属する画素の内、周辺画素と同じ明るさの注目画素について出力画像の画素信号を生成する場合、単調増加関数に従った画素信号を生成することができる。つまり、第２所定値以上においては、注目画素の画素信号の値が大きくなるに従って次第に増大する画素信号が生成される。これによれば、注目画素が周辺画素と同じ明るさである画素の内、最大の明るさを有する画素については、輝度を大きく低下させることなく出力画像において表示でき、出力画像全体が暗くなることを回避できるという効果がある。出力画像の最大出力輝度が元画像の最大輝度値に近いほど、当然、元画像と出力画像とにおいて最も明るい画素の輝度変化は小さくなるからである。また、元画像の大部分においては、注目画素と周辺画素とは同じ明るさであるので、元画像中の最大輝度値を有する画素の多数は、周辺画素と同じ明るさとなっている。故に、元画像中の最大輝度値を有する画素の多数について、出力画像でもその明るさを維持する（最大輝度値近傍の値とする）ことができることとなり、画像全体が暗くなることを的確に回避できるのである。元画像中の最大輝度値の画素は白色画素であるため、輝度値の変化は、明るさを変更するのみならず、往々にして着色を発生させてしまうが、元画像中の最大輝度値を有する画素の大部分については周辺画素と同じ明るさであるため、輝度値の変化を微小とすることができ、目立った着色変化についても抑制できるので、画像品質の低下を回避できるという効果がある。
【００５３】
ここで、本プログラムが、注目画素が周辺画素よりも暗い場合に、出力最大輝度値に向かう単調増加関数に従った画素信号を生成する構成（第１複合生成ステップ）を有しているため、周辺画素と同じ明るさである注目画素に対し非線形の関数に従った画素信号だけを出力画像の画素信号として生成する構成であると、場合によっては、周辺画素と同じ明るさにある注目画素に対応する出力画像の画素信号が、周辺画素よりも暗い注目画素に対応するものよりも、より暗い画素信号で生成されてしまいかねない（階調の逆転が発生）。しかし、周辺画素と同じ明るさである注目画素についても、その画素信号の値が第２所定値以上であると単調増加関数に従った画素信号が出力画像の画素信号として生成されるので、上記したような階調の逆転が生じることはない。
【００５４】
請求項５記載の画像処理プログラムによれば、請求項４記載の画像処理プログラムの奏する効果に加え、注目画素に対し第２複合生成ステップにおける単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成ステップによって導出される信号値よりも大きな値となるように第２所定値が規定されているので、第２複合生成ステップにおいて単調増加関数に従って画素信号を生成しても、階調の序列が逆転することはない。つまり、元画像において注目画素が周辺画素と同じ明るさにあれば、周辺画素よりも暗い場合にあるよりも、出力画像において、その注目画素に対応する画素は、元の画素よりも必ず明るい画素（大きな信号値）で生成される。故に、第２複合生成ステップにおける単調増加関数に従って第２所定値以上の注目画素に対する出力画像の画素信号を生成しても、元画像の階調の序列に従った画素信号を生成することができるという効果がある。
【００５５】
請求項６記載の画像処理プログラムによれば、請求項１から５のいずれかに記載の画像処理プログラムの奏する効果に加え、反射光成分値により注目画素が周辺画素よりも明るいことが示されていると、第３複合生成ステップにより画素信号が生成されるが、注目画素の画素信号の値が０から第３所定値までの範囲では非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号が生成される。一方、注目画素の画素信号の値が第３所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成される。
【００５６】
第３複合生成ステップにて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、第３所定値は、第１複合生成ステップにて用いられる最小の反射光成分値をパラメータとした非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００５７】
よって、注目画素が周辺画素より明るい場合に、元画像の画素信号の最大値に対応して第３複合生成ステップにより生成される画素信号の輝度値を、非線形の関に基づいて生成されるものよりも最大輝度値に近い値とすることができるという効果がある。
【００５８】
一般に、注目画素が周辺画素より明るい場合に、非線形の関数に基づいて出力画像の画素信号を生成すると、その出力最大輝度値は、元画像の最大輝度値を大きく上回った値となる。また、かかる非線形の関数によれば、往々にして生成される出力画像の輝度値は、早い段階（元画像の画素値が最大値より大幅に小さい段階）で最大輝度値を超えてしまう。通常、出力可能な輝度値のレンジは元画像の最大輝度値を上限としており、最大輝度値を超えるものは最大輝度値に丸められてしまうので、非線形の関数を用いると、出力画像の輝度値が元画像の画素値変化に応答しない階調とびが目立って発生してしまう（画質の低下）。
【００５９】
しかし、本プログラムは、出力画像の画素信号の出力最大輝度値を最大輝度値近傍の値とし、且つ、その出力最大輝度値に向かって出力画像の画素信号の輝度値は単調増加するように設計されているので、生成された出力画像の画素信号において、その輝度値が最大輝度値以上となるものを低減することができる。故に、非線形の関数での補正に基づいて出力画像の画素信号を生成する場合に比べて、出力画像における輝度値の階調とびを抑制でき、元画像中の明部における微妙な階調差を出力画像においても表現することができるので、高画質の出力画像を提供することができるという効果がある。
【００６０】
請求項７記載の画像処理プログラムによれば、請求項６記載の画像処理プログラムの奏する効果に加え、注目画素に対し第３複合生成ステップにおける単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し第１複合生成ステップ及び第２複合生成ステップによって導出される信号値よりも大きな値となるように、第３所定値が規定されているので、第３複合生成ステップにおいて単調増加関数に従って画素信号を生成しても、階調の序列が逆転することはない。つまり、元画像において注目画素が周辺画素よりも明るければ、周辺画素よりも暗い又は同じ明るさにある場合によりも、出力画像において、その注目画素に対応する画素は、元の画素よりも必ず明るい画素（大きな信号値）で生成される。故に、第３複合生成ステップにおける単調増加関数に従って第３所定値以上の注目画素に対する出力画像の画素信号を生成しても、元画像の階調の序列に従った画素信号を生成することができるという効果がある。
【００６１】
請求項８記載の画像処理装置によれば、反射光成分算出手段により反射光成分値が算出される。ここで、反射光成分値は、注目画素と周辺画素との相対的な明るさの指標とされるものであって、元画像における注目画素の画素信号の値と注目画素周辺の周辺画素の平均輝度値とに基づいて算出される。また、この算出された反射光成分値をパラメータとして注目画素の画素信号の値を非線形の関数で補正した補正値と、注目画素の画素信号の値とに基づいて、画素信号生成手段により、出力画像の画素信号が、即ち、レティネックス処理による補正がなされた画素信号が、生成される。
【００６２】
かかる画素信号生成手段においては、反射光成分算出手段にて算出された反射光成分値により注目画素が周辺画素より暗いことが示されていると、第１複合生成手段によって画素信号が生成されるが、注目画素の画素信号の値が０から第１所定値までの範囲では、非線形の関数に従って導出された信号値にて、注目画素よりも信号値が増大した画素信号が生成され、注目画素の画素信号の値が第１所定値以上では、単調増加関数に従って導出された信号値にて画素信号が生成される。つまり、注目画素の画素信号の値が第１所定値以上では、生成される画素信号を、非線形の関数によらず、単調増加関数にて導出されたものとすることができる。
【００６３】
ここで用いられる単調増加関数は、元画像の画素信号の最大値を非線形の関数で補正した補正値に基づいて求められる出力画像の画素信号の輝度値よりも大きな値であって、元画像の画素信号の最大輝度値近傍の値を、出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものである。一方で、レティネックス処理において用いられる非線形の関数は、コントラストや輝度の補正を行うべく、元画像の画素信号値（注目画素の画素信号の値）が小さい部分（暗い部分）では出力画像の画素信号値を元の値よりも増大させる一方、元画像の画素信号値が大きくなるにつれて出力画像の画素信号値を元の値に対して圧縮するようなものが一般的である。
【００６４】
よって、第１所定値以上である元画像中の明るい部分（明部）に属する画素の内、周辺画素よりも暗い注目画素について出力画像の画素信号を生成する場合、上記の単調増加関数に従ったものとなるので、非線形の関数に基づいて生成される場合よりも輝度値の大きなものを生成することできる。また、このように周辺画素よりも暗い注目画素について生成される画素信号の輝度値を上昇させることができるので、注目画素が周辺画素より暗い場合に生成される画素信号の輝度値と、注目画素が周辺画素より明るい場合に生成される画素信号の輝度値との差を、非線形の関数に基づいて生成される両信号の差よりも縮小することができる。言い換えれば、生成される出力画像の画素信号の取り得る輝度値の範囲を狭くすることができる。従って、出力画像の明るい部分における急激な階調変化を規制でき、かかる明るい部分に極端に輝度値の低下した過度に暗い画素が出現してしまう過補正を抑制することができるという効果がある。故に、明るい部分に過度に暗い画素が形成されるという目立った画質不良を回避でき、高画質の出力画像を生成することができるという効果がある。
【００６５】
また、第１所定値は、第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００６６】
ここで、第１の値よりも小さな画素信号は、レティネックス処理による逆光補正（即ち、注目画素よりも信号値が増大した画素信号の生成）が最も必要とされる部分である。かかる部分については、出力画像の画素信号を、単調増加関数ではなく、非線形の関数に基づいたもので生成することができるので、必要な部分においては的確に逆光補正を行いつつ画質不良を招く過補正については抑制することができるという効果がある。
【００６７】
更には、上記の非線形の関数に従えば、注目画素の画素信号が第１の値を超えると、圧縮された値の画素信号が生成される。従って、第１所定値が第１の値以降にあれば、単調増加関数にて生成される画素信号の信号値は、無変換関数にて生成されるものよりも小さな値を起点として生成される。故に、注目画素の画素信号の値が第１所定値以上にあって出力画像の画素信号が単調増加関数に従って導出されたとしても、注目画素が周辺画素よりも暗い場合には、出力画像の画素信号は、元の画素よりも暗い画素で生成されることとなる。その結果、コントラスト強調についても適性に実行することができる。
【００６８】
また、単調増加関数として、一次関数など、単純なアルゴリズムの関数を選択すれば、出力画像の画素信号を生成するための演算量を、非線形の関数で補正を行うよりも低減でき、画像処理を高速化することができるという効果がある。
【００６９】
請求項９記載の画像処理装置によれば、請求項８記載の画像処理装置の奏する効果に加え、第１所定値は、注目画素が周辺画素よりも明るいことを示す反射光成分値の最大値をパラメータとした非線形の関数によって導出される信号値と、第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした非線形の関数によって導出される信号値との差が、予め定めた幅以下となる画素信号の値とされているので、注目画素が周辺画素よりも明るい場合に導出される信号値と暗い場合に導出される信号値とに、過度に差が発生してしまうといった事態を確実に解消できるという効果がある。
【００７０】
つまり、かかる差は、コントラスト強調の度合を規定するので、かかる信号値の差を予め定めた幅以下に制限することにより、コントラスト強調程度を適切な範囲に収めることができる。そして、かかる信号値の差が予め定めた幅を超える場合には、出力画像の画素信号は、単調増加関数に基づいて生成されるため、注目画素の画素信号の値が大きくなるにつれ、上記の信号値の差は、次第に縮小することとなる。その結果、明部においてコントラストが過度に強調される過補正の発生を確実に回避することができるという効果がある。
【００７１】
請求項１０記載の画像処理装置によれば、請求項９記載の画像処理装置の奏する効果に加え、第１所定値は、注目画素の画素信号が取り得る範囲の中点近傍の値とされている。上記した第１の値は無変換関数との交点であるので、画像処理において一般的に用いられる非線形の関数に従えば、注目画素が第１の値まではその信号値が増大した画素信号が生成され、第１の値を超えると逆に圧縮された画素信号が生成される。
【００７２】
一般的に画像処理に用いられる非線形の関数に従えば、第１の値よりも中点近傍の値のほうが大きくなるので、第１所定値を中点近傍の値とすることにより、第１の値から中点近傍の第１所定値までは、注目画素が周辺画素より暗い場合に生成される画素信号の輝度値と、注目画素が周辺画素より明るい場合に生成される画素信号の輝度値との差が拡大する。そして、注目画素の画素信号の値が第１所定値以上の値であれば、単調増加関数に従った画素信号が生成されるため、中点近傍で拡大した両者の差を徐々に縮小させていくことができる。
【００７３】
よって、注目画素の画素信号の値が、中点近傍を含みコントラスト強調が画質低下の要因とならない中間領域（即ち、過補正を抑制する必要のない領域）にある場合には、注目画素が周辺画素より暗い場合に生成される画素信号の輝度値と、注目画素が周辺画素より明るい場合に生成される画素信号の輝度値とに、十分な差を設けることができる。その結果、注目画素の画素信号のうち、かかる中間領域に属するものについては、良好に（十分な）コントラスト強調を行うことができるという効果がある。更には、第１所定値を中点近傍とすることにより、注目画素の画素信号の狭い範囲（例えば最大値近傍など）において、生成される画素信号の値が急激に上昇したものとなるといった事態を回避できる。このため、急激な階調変化の発生による画質の劣化を招くことがないという効果がある。
【００７４】
請求項１１記載の画像処理装置によれば、請求項８から１０のいずれかに記載の画像処理装置の奏する効果に加え、反射光成分値により注目画素が周辺画素と同じ明るさであることが示されていると、第２複合生成手段によって画素信号が生成されるが、注目画素の画素信号の値が０から第２所定値までの範囲では非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号が生成される。また、注目画素の画素信号の値が第２所定値以上では、単調増加関数に従って導出された信号値により画素信号が生成される。
【００７５】
第２複合生成手段にて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものである。また、第２所定値は、第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００７６】
よって、第２所定値以上である元画像中の明るい部分（明部）に属する画素の内、周辺画素と同じ明るさの注目画素について出力画像の画素信号を生成する場合、単調増加関数に従った画素信号を生成することができる。つまり、第２所定値以上においては、注目画素の画素信号の値が大きくなるに従って次第に増大する画素信号が生成される。これによれば、注目画素が周辺画素と同じ明るさである画素の内、最大の明るさを有する画素については、輝度を大きく低下させることなく出力画像において表示でき、出力画像全体が暗くなることを回避できるという効果がある。出力画像の最大出力輝度が元画像の最大輝度値に近いほど、当然、元画像と出力画像とにおいて最も明るい画素の輝度変化は小さくなるからである。また、元画像の大部分においては、注目画素と周辺画素とは同じ明るさであるので、元画像中の最大輝度値を有する画素の多数は、周辺画素と同じ明るさとなっている。故に、元画像中の最大輝度値を有する画素の多数について、出力画像でもその明るさを維持する（最大輝度値近傍の値とする）ことができることとなり、画像全体が暗くなることを的確に回避できるのである。元画像中の最大輝度値の画素は白色画素であるため、輝度値の変化は、明るさを変更するのみならず、往々にして着色を発生させてしまうが、元画像中の最大輝度値を有する画素の大部分については周辺画素と同じ明るさであるため、輝度値の変化を微小とすることができ、目立った着色変化についても抑制できるので、画像品質の低下を回避できるという効果がある。
【００７７】
ここで、本装置が、注目画素が周辺画素よりも暗い場合に、出力最大輝度値に向かう単調増加関数に従った画素信号を生成する構成（第１複合生成手段）を有しているため、周辺画素と同じ明るさである注目画素に対し非線形の関数に従った画素信号だけを出力画像の画素信号として生成する構成であると、場合によっては、周辺画素と同じ明るさにある注目画素に対応する出力画像の画素信号が、周辺画素よりも暗い注目画素に対応するものよりも、より暗い画素信号で生成されてしまいかねない（階調の逆転が発生）。しかし、周辺画素と同じ明るさである注目画素についても、その画素信号の値が第２所定値以上であると単調増加関数に従った画素信号が出力画像の画素信号として生成されるので、上記したような階調の逆転が生じることはない。
【００７８】
請求項１２記載の画像処理装置によれば、請求項１１記載の画像処理装置の奏する効果に加え、注目画素に対し第２複合生成手段における単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し前記第１複合生成手段によって導出される信号値よりも大きな値となるように第２所定値が規定されているので、第２複合生成手段において単調増加関数に従って画素信号を生成しても、階調の序列が逆転することはない。つまり、元画像において注目画素が周辺画素と同じ明るさにあれば、周辺画素よりも暗い場合にあるよりも、出力画像において、その注目画素に対応する画素は、元の画素よりも必ず明るい画素（大きな信号値）で生成される。故に、第２複合生成手段における単調増加関数に従って第２所定値以上の注目画素に対する出力画像の画素信号を生成しても、元画像の階調の序列に従った画素信号を生成することができるという効果がある。
【００７９】
請求項１３記載の画像処理装置によれば、請求項８から１２のいずれかに記載の画像処理装置の奏する効果に加え、反射光成分値により注目画素が周辺画素よりも明るいことが示されていると、第３複合生成手段により画素信号が生成されるが、注目画素の画素信号の値が０から第３所定値までの範囲では非線形の関数に従って導出された信号値により注目画素よりも信号値が増大した画素信号が生成される。一方、注目画素の画素信号の値が第３所定値以上では、単調増加関数に従って導出された信号値により画素信号を生成される。
【００８０】
第３複合生成手段にて用いられる単調増加関数は、元画像の画素信号の最大輝度値近傍の値を出力最大輝度値とし、注目画素の画素信号の値が増加するにつれて、その出力最大輝度値に向かって輝度値を上昇させた画素信号を導出するものであり、第３所定値は、第１複合生成手段にて用いられる最小の反射光成分値をパラメータとした非線形の関数と、出力画像の画素信号の値を注目画素の画素信号と同じ値で生成する無変換関数との交点である第１の値以上とされている。
【００８１】
よって、注目画素が周辺画素より明るい場合に、元画像の画素信号の最大値に対応して第３複合生成手段により生成される画素信号の輝度値を、非線形の関に基づいて生成されるものよりも最大輝度値に近い値とすることができるという効果がある。
【００８２】
一般に、注目画素が周辺画素より明るい場合に、非線形の関数に基づいて出力画像の画素信号を生成すると、その出力最大輝度値は、元画像の最大輝度値を大きく上回った値となる。また、かかる非線形の関数によれば、往々にして生成される出力画像の輝度値は、早い段階（元画像の画素値が最大値より大幅に小さい段階）で最大輝度値を超えてしまう。通常、出力可能な輝度値のレンジは元画像の最大輝度値を上限としており、最大輝度値を超えるものは最大輝度値に丸められてしまうので、非線形の関数を用いると、出力画像の輝度値が元画像の画素値変化に応答しない階調とびが目立って発生してしまう（画質の低下）。
【００８３】
しかし、本装置は、出力画像の画素信号の出力最大輝度値を最大輝度値近傍の値とし、且つ、その出力最大輝度値に向かって出力画像の画素信号の輝度値は単調増加するように設計されているので、生成された出力画像の画素信号において、その輝度値が最大輝度値以上となるものを低減することができる。故に、非線形の関数による補正に基づいて出力画像の画素信号を生成する場合に比べて、出力画像における輝度値の階調とびを抑制でき、元画像中の明部における微妙な階調差を出力画像においても表現することができるので、高画質の出力画像を提供することができるという効果がある。
【００８４】
請求項１４記載の画像処理装置によれば、請求項１３記載の画像処理装置の奏する効果に加え、注目画素に対し第３複合生成手段における単調増加関数に従って信号値を導出した場合に、同じ注目画素に対し第１複合生成手段及び第２複合生成手段によって導出される信号値よりも大きな値となるように、第３所定値が規定されているので、第３複合生成手段において単調増加関数に従って画素信号を生成しても、階調の序列が逆転することはない。つまり、元画像において注目画素が周辺画素よりも明るければ、周辺画素よりも暗い又は同じ明るさにある場合によりも、出力画像において、その注目画素に対応する画素は、元の画素よりも必ず明るい画素（大きな信号値）で生成される。故に、第３複合生成手段における単調増加関数に従って第３所定値以上の注目画素に対する出力画像の画素信号を生成しても、元画像の階調の序列に従った画素信号を生成することができるという効果がある。
【発明を実施するための最良の形態】
【００８５】
以下、本発明の好ましい第１の実施形態について添付図面を参照して説明する。図１は、本実施形態の画像処理を行う機能を有するプリンタ１の電気的な構成を示したブロック図である。本実施形態においては、プリンタ１に搭載された画像処理プログラムは、パーソナルコンピュータ（以下「ＰＣ」と称する）２や、デジタルカメラ２１や、外部メディア２０から入力された画像データ（元画像データ）に対しレティネックス処理（Ｒｅｔｉｎｅｘ処理）を実行して、画像データの逆光画像部分などの低画質領域の補正を行った出力画像データを生成するように構成されている。
【００８６】
図１に示すように、プリンタ１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、印刷ヘッドなどから構成され、印刷媒体（例えば、紙媒体など）への印刷（出力）を行う印刷部１５、出力画像サイズなどの入力値をユーザが入力可能なユーザ操作部（例えば、テンキーなど）を有する操作パネル１６とを備えている。
【００８７】
また、プリンタ１は、ケーブル５を介してＰＣ２と接続可能なインターフェイス（以下「Ｉ／Ｆ」と称する）１７と、ケーブル６を介してデジタルカメラ２１と接続可能なＩ／Ｆ１８と、外部メディア２０（例えば、ＳＤメモリカード、メモリスティックなどのフラッシュメモリにより構成される）を着脱自在に装着可能な外部メディアスロット１９とを備えている。これらのＩ／Ｆ１７、１８により行われる通信方法としてＵＳＢ（Universal  Serial  Bus）が使用される。
【００８８】
よって、プリンタ１には、ＰＣ２に記憶されている画像データをケーブル５及びＩ／Ｆ１７を介して入力することが可能であると共に、デジタルカメラ２１によって撮影された画像データをケーブル６及びＩ／Ｆ１８を介して入力することが可能である。さらに、外部メディアスロット１９に装着された外部メディア２０から、その外部メディア２０に記憶されている画像データを入力することが可能である。
【００８９】
ＣＰＵ１１は、プリンタ１全体を制御する演算処理装置である。ＲＯＭ１２は、ＣＰＵ１１により実行される各種制御プログラムやそのプログラムを実行する際に用いられる固定値などを記憶するものであり、レティネックス処理を用いた補正処理を行う画像処理プログラム１２ａや、印刷を行うための印刷制御プログラム１２ｂ、更には、レティネックス処理による補正を行うための上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅ等が備えられている。尚、図７、図８に示すフローチャートのプログラムは、画像処理プログラム１２ａの一部としてＲＯＭ１２に記憶されている。
【００９０】
上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅは、レティネックス処理による補正が行われた出力値Ｏｕｔｙを生成するためのテーブルであって、輝度信号Ｙとその輝度信号Ｙに対する出力である出力値Ｏｕｔｙとが対応つけて記憶されている。
【００９１】
また、各テーブル１２ｃ〜１２ｅには、輝度信号Ｙが「１２８」未満である場合には、ガンマ補正演算に従って得られる出力値Ｏｕｔｙが各輝度信号Ｙに対応して記憶される一方、輝度信号Ｙが「１２８」以上である場合には、ガンマ補正演算ではなく単調増加関数である一次関数に従って得られる出力値Ｏｕｔｙが各輝度信号Ｙに対応して記憶されている。
【００９２】
従来のレティネックス処理は、元画像の全ての画素に対して一律にガンマ補正演算を行って出力値Ｏｕｔｙを生成するものであった。ところが、かかる手法では、過補正が発生してしまう。そこで、本実施形態では、元画像の明部に対応する領域（本実施形態においては輝度信号Ｙが「１２８」以上）については、ガンマ補正演算によらず、単調増加関数である一次関数を用いて出力値Ｏｕｔｙを生成するように各テーブル１２ｃ〜１２ｅが構成されているのである。
【００９３】
プリンタ１は、この各テーブル１２ｃ〜１２ｅを備えることにより、ガンマ補正演算を行うことなく、元画像データから、レティネックス処理がなされた出力画像データを、テーブルデータに基づいて生成することができるようになっている。その上、かかるテーブル１２ｃ〜１２ｅを用いて出力値Ｏｕｔｙを生成することにより、明部において（輝度が大きくなるほど）目立った画質不良となる過補正の発生を回避できる。
【００９４】
ここで、元画像データは、ラスタデータであって元画像を形成する各画素の画素値（信号強度値、ＲＧＢ値）で構成されている。なお、本実施形態では、元画像データ及び出力画像データはいずれも、ＲＧＢ値から構成され、これらの各ＲＧＢ値は、「０」〜「２５５」の範囲の値である。
【００９５】
ＲＧＢ値は、光の３原色である赤を表すＲ値と、緑を表すＧ値と、青を示すＢ値とを構成成分とする値である。光の３原色の混色により各種の色は生成されるので、元画像の各画素の色は、Ｒ値とＧ値とＢ値との組合せ（ＲＧＢ値）により１の色（色相や階調など）が示される。このＲＧＢ値の値が大きいほど、輝度（明度）は高くなる。
【００９６】
本実施形態においては、かかる元画像データ（ＲＧＢ値）に対して直接的にレティネックス処理を行うのではなく、元画像データのＲＧＢ値を輝度信号Ｙに変換してからレティネックス処理を実行するように構成されている。このため、各テーブル１２ｃ〜１２ｅには、輝度信号Ｙに対しレティネックス処理による補正がなされた出力値Ｏｕｔｙが、輝度信号Ｙに対応して記憶されているのである。従って、ＲＧＢ値のそれぞれに対してレティネックス処理を行う場合に比べて、レティネックス処理後の出力画像において元画像のカラーバランスを維持することができる。
【００９７】
ＲＧＢ値から（５）式に従って輝度信号Ｙおよび色信号Ｃｂ，Ｃｒは、算出されるが、ＲＧＢ値は、予め定められた範囲であるので、輝度信号Ｙも予め定められた範囲の値となり、実際には「０」〜「２５５」となる。
【００９８】
【数５】
2008129797.tif 000007
このため、本実施形態では上記（４）式における元画像の信号強度値Ｉ（ｘ，ｙ）は、輝度信号Ｙ（ｘ，ｙ）とされて、レティネックス処理がなされた輝度信号Ｙが、出力値Ｏｕｔｙとして生成されることとなる。
【００９９】
レティネックス処理において出力値Ｏｕｔを算出する（４）式によれば、ガンマ係数は任意の定数であるので、変数（パラメータ）は、元画像の画素値（輝度信号Ｙ）と正規化反射率ｒｅｆｌｅとの２つである。このため、正規化反射率ｒｅｆｌｅを選定すれば、「０」〜「２５５」の各輝度信号Ｙに対応する各出力値Ｏｕｔｙを導出することができ、各テーブル１２ｃ〜１２ｅに記憶させるテーブルデータを得ることができるのである。
【０１００】
本実施形態においては、（４）式に従って算出される出力値Ｏｕｔｙの内、上記したように輝度信号Ｙが「０」〜「１２７」である場合に導出されたもののみが、各テーブル１２ｃ〜１２ｅには記憶されている。
【０１０１】
尚、この輝度信号Ｙの値が請求項記載の輝度値に該当する。また、本実施形態においては、輝度信号Ｙは、ＲＧＢ値（ＲＢＧ信号）の画素値が変換されたものであるので、この輝度信号Ｙは、請求項記載の画素信号にも該当する。また、本実施形態においては、輝度信号Ｙに対しレティネックス処理を行う構成としたが、これに代えて、ＲＧＢ値をそのまま用いてレティネックス処理を行うようにしても良い。
【０１０２】
多数の正規化反射率ｒｅｆｌｅに対応する出力値Ｏｕｔｙをテーブルデータで備えるほど、当然ながら、正確な（（４）式の演算にて求める値に近似する）出力値Ｏｕｔｙを取得することができる。しかし、デーブルデータの増大は、メモリ容量を圧迫したり、大容量のメモリが必要となるなど好ましくない。
【０１０３】
そこで、本実施形態においては、少ないテーブル数で最適な出力値Ｏｕｔｙを取得することができるように、予め定めた３つの正規化反射率ｒｅｆｌｅに対応する３種類のテーブル１２ｃ〜１２ｅを、ＲＯＭ１２に記憶させている。また、図８において後述するように、各テーブル１２ｃ〜１２ｅからの正規化反射率ｒｅｆｌｅに基づいた出力値Ｏｕｔｙの抽出に、線形補間演算を組み合わせて、出力値Ｏｕｔｙを生成するように画像処理プログラム１２ａは構成されている。これにより、プリンタ１は、テーブルデータを記憶するためのメモリ容量を抑制しつつ、的確な出力値Ｏｕｔｙを生成することができるようになっている。
【０１０４】
具体的には、上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅは、予め定めた反射率（（３）式に従って導出された正規化反射率ｒｅｆｌｅ）に対応して設けられたものであり、上限値テーブル１２ｃは正規化反射率ｒｅｆｌｅを１．３、中央値テーブル１２ｄは正規化反射率ｒｅｆｌｅを０．８、下限値テーブル１２ｅは正規化反射率ｒｅｆｌｅを０．３として、それぞれ形成されたものである。
【０１０５】
尚、図５及び図６において後述するが、正規化反射率ｒｅｆｌｅの１．３は、対数値Ｒが正である（注目画素が周辺画素よりも明るい）場合に対応した値である。正規化反射率ｒｅｆｌｅの０．８は、対数値Ｒが０である（注目画素と周辺画素とが同じ明るさである）場合に対応した値である。正規化反射率ｒｅｆｌｅの０．３は、対数値Ｒが負である（注目画素が周辺画素よりも暗い）場合に対応した値である。
【０１０６】
ここで、図２及び図３を参照して、上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅについて詳細に説明する。図２は、上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅの構成を模式的に示した図であり、図３は、図２に示した各テーブル１２ｃ〜１２ｅに記憶されるテーブルデータである輝度信号Ｙと出力値Ｏｕｔｙとの関係（輝度信号Ｙから出力値Ｏｕｔｙを求めるための関数）を示したグラフである。
【０１０７】
図２においては、上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅを一覧表の態様で示しており、最左端の欄には、入力値となる輝度信号Ｙが表示されている。尚、各テーブル１２ｃ〜１２ｅには、「０」〜「２５５」の範囲において１ずつ更新された輝度信号Ｙの値が記憶されているが、図２においては、４ずつ更新した値（「０」、「４」、「８」、・・・、「２５２」）と「２５５」とを表示し、他の値については、その表示を省略している（出力値Ｏｕｔｙについても同様）。この輝度信号Ｙの表示欄の右方には、出力値Ｏｕｔｙを表示する３つの表示欄が示されている。出力値Ｏｕｔｙの３つの表示欄には、左から順に、下限値テーブル１２ｅ、中央値テーブル１２ｄ、上限値テーブル１２ｃのそれぞれに記憶されるテーブルデータ（出力値Ｏｕｔｙ）が表示されている。つまり、左から順に、正規化反射率ｒｅｆｌｅ０．３の場合に生成される出力値Ｏｕｔｙ、正規化反射率ｒｅｆｌｅ０．８の場合に生成される出力値Ｏｕｔｙ、正規化反射率ｒｅｆｌｅ１．３の場合に生成される出力値Ｏｕｔｙが、左方に表示されている輝度信号Ｙに対応してそれぞれ示されている。
【０１０８】
図３において、横軸には、輝度信号Ｙを示している。縦軸には、出力値Ｏｕｔｙを示している。そして、図３において二点鎖線で示した特性線ｆ１は、上限値テーブル１２ｃに記憶される出力値Ｏｕｔｙを輝度信号Ｙから生成するための関数であって、上限値テーブル１２ｃのテーブルデータをグラフ化したものである。同様に、一点鎖線で示した特性線ｆ２は、中央値テーブル１２ｄに記憶される出力値Ｏｕｔｙを輝度信号Ｙから求めるための関数であって、中央値テーブル１２ｄのテーブルデータをグラフ化したものである。破線で示した特性線ｆ３は、下限値テーブル１２ｅに記憶される出力値Ｏｕｔｙを輝度信号Ｙから求めるための関数であって、下限値テーブル１２ｅのテーブルデータをグラフ化したものである。
【０１０９】
かかる特性線ｆ１〜ｆ３のそれぞれにおいて、輝度信号Ｙが「０」〜「２５５」の各値（整数値）である場合に特性線上で得られる各値が出力値Ｏｕｔｙである。逆に言えば、この得られる各出力値Ｏｕｔｙが「０」〜「２５５」の各値に対応つけられて、図１及び図２に示した対応するテーブル１２ｃ〜１２ｅに記憶されているのである。
【０１１０】
ここで、各特性線は、輝度信号Ｙの値「１２８」において変曲点を有している。これは、出力値Ｏｕｔｙを生成する関数が、輝度信号Ｙが「１２８」までは、ガンマ補正演算を含む（４）式のものであると共に、輝度信号Ｙが「１２８」以上では、単調増加関数である一次関数で設計されているからである。逆に言えば、各特性線ｆ１〜ｆ３は、ガンマ補正演算と単調増加関数とが変曲点「１２８」において切り替わるように設計されているのである。
【０１１１】
具体的には、上限値テーブル１２ｃに記憶されるテーブルデータ（出力値Ｏｕｔｙ）を生成する関数は、輝度信号Ｙが「１２８」までは、（４）式における正規化反射率ｒｅｆｌｅが１．３とされたものである。また、輝度信号Ｙが「１２８」以上から「２５４」までは、出力値Ｏｕｔｙを生成する関数は、傾きを０．６２切片を９７．１４とする一次関数（ｙ＝０．６２ｘ＋９７．１４、上限値演算式）とされている。
【０１１２】
これにより、図３に示すように正規化反射率ｒｅｆｌｅが１．３であれば、輝度信号Ｙが「１２８」以上では、出力値Ｏｕｔｙは「２５５」近傍に向かって増大する。また、輝度信号Ｙが「２５４」であっても、出力値Ｏｕｔｙは「２５５」を超えない値「２５４．６２」となる。更に、輝度信号Ｙが「２５５」である場合には、上限値演算式によらず、出力値Ｏｕｔｙは「２５５」とされている（図２参照）。
【０１１３】
故に、プリンタ１において、この上限値テーブル１２ｃに従って出力値Ｏｕｔｙが生成されると、輝度信号Ｙが「２５５」である場合に出力値Ｏｕｔｙが「２５５」で生成される一方、輝度信号Ｙが「２５５」に到達する手前において、出力値Ｏｕｔｙが「２５５」を超えて生成されることはない。つまり、輝度信号Ｙが一定値以上において全て「２５５」で出力されてしまうといった階調飛びが発生することはない。
【０１１４】
更には、元画像中において周辺画素よりも明るい画素であって且つ最も明るい画素（輝度信号Ｙ「２５５」）については、出力画像においても最も明るい画素（出力値Ｏｕｔｙ「２５５」）とすることができる。元画像中の最も明るい画素であって、且つ、周辺画素よりも明るい画素である場合に、その輝度が出力画像において低下すると、出力画像が元画像に比べて著しく暗くなった印象を閲覧者に与えてしまうが、プリンタ１においては、かかる輝度低下が発生することがないので、画像品質を良好に維持することができる。
【０１１５】
また、後述するように、本実施形態においては、元画像中の各画素の正規化反射率ｒｅｆｌｅは、１．３が上限値であり、更に、周辺画素より明るい注目画素の正規化反射率ｒｅｆｌｅは、０．８を超え１．３以下の値である。ここで、正規化反射率ｒｅｆｌｅが１．３未満であって、０．８を超えている場合には、その割合（（正規化反射率−０．８）／０．５）に応じた線形補間演算にて、出力値Ｏｕｔｙが生成される（図８参照）。このため、０．８＜正規化反射率ｒｅｆｌｅ＜１．３の場合には、正規化反射率ｒｅｆｌｅが０．８である場合の最大の出力値Ｏｕｔｙである「２４８」を超え、且つ、正規化反射率ｒｅｆｌｅが１．３である場合の最大の出力値Ｏｕｔｙである「２５５」未満の間のいずれかの値に向かって、出力値Ｏｕｔｙは増大することとなる。従って、注目画素が周辺画素より明るい場合（０．８＜正規化反射率ｒｅｆｌｅ≦１．３）に、輝度信号Ｙ「２５５」に対応する出力値Ｏｕｔｙが取り得る最高値は「２５５」となる。
【０１１６】
中央値テーブル１２ｄに記憶されるテーブルデータ（出力値Ｏｕｔｙ）を生成する関数は、輝度信号Ｙが「１２８」までは、（４）式における正規化反射率ｒｅｆｌｅが０．８とされたものである。また、輝度信号Ｙが「１２８」以上から「２５４」までは、出力値Ｏｕｔｙを生成する関数は、傾きを０．７７切片を５１．１３とする一次関数（ｙ＝０．７７ｘ＋５１．１３、中央値演算式）とされている。このため、輝度信号Ｙが「２５４」である場合には、出力値Ｏｕｔｙは「２４６．７１」で生成される。更に、輝度信号Ｙが「２５５」である場合には、中央値演算式によらず、出力値Ｏｕｔｙは「２４８」とされている（図２参照）。故に、この中央値テーブル１２ｄに従って出力値Ｏｕｔｙが生成されると、輝度信号Ｙが「２５５」である場合に出力値Ｏｕｔｙが「２４８」で生成される一方、輝度信号Ｙが「１２８」以上では、ガンマ補正演算によらず、出力値Ｏｕｔｙは「２４８」に向かって増大することとなる。
【０１１７】
下限値テーブル１２ｅに記憶されるテーブルデータ（出力値Ｏｕｔｙ）を生成する関数は、輝度信号Ｙが「１２８」までは、（４）式における正規化反射率ｒｅｆｌｅが０．３とされたものである。また、輝度信号Ｙが「１２８」以上から「２５４」までは、出力値Ｏｕｔｙを生成する関数は、傾きを１．０４切片を−２５．３３とする一次関数（ｙ＝１．０４ｘ−２５．３３、下限値演算式）とされている。このため、輝度信号Ｙが「２５４」である場合には、出力値Ｏｕｔｙは「２３８．８３」で生成される。更に、輝度信号Ｙが「２５５」である場合には、下限値演算式によらず、出力値Ｏｕｔｙは「２４０」とされている（図２参照）。その結果、プリンタ１において、この下限値テーブル１２ｅに従って出力値Ｏｕｔｙが生成されると、輝度信号Ｙが「２５５」である場合に出力値Ｏｕｔｙが「２４０」で生成される一方、輝度信号Ｙが「１２８」以上では、出力値Ｏｕｔｙは「２４０」に向かって増大することとなる。
【０１１８】
また、元画像中の各画素の正規化反射率ｒｅｆｌｅは、後述するように、０．３が下限値である。本実施形態においては、周辺画素より暗い注目画素の正規化反射率ｒｅｆｌｅは、０．８未満０．３以上の値となる。ここで、正規化反射率ｒｅｆｌｅが０．８未満であって、０．３を超えている場合には、その割合（（正規化反射率−０．３）／０．５）に応じた線形補間演算にて、出力値Ｏｕｔｙが生成される（図８参照）。このため、０．３＜正規化反射率ｒｅｆｌｅ＜０．８の場合には、正規化反射率ｒｅｆｌｅが０．３である場合の最大の出力値Ｏｕｔｙ「２４０」を超え、且つ、正規化反射率ｒｅｆｌｅが０．８である場合の最大の出力値Ｏｕｔｙ「２４８」未満の間のいずれかの値に向かって、出力値Ｏｕｔｙは増大することとなる。従って、注目画素が周辺画素より暗い場合（０．３≦正規化反射率ｒｅｆｌｅ＜０．８）に、輝度信号Ｙ「２５５」に対し、取り得る出力値Ｏｕｔｙの最低値は「２４０」となり、これを下回る事はない。
【０１１９】
このように、各テーブル１２ｃ〜１２ｅに従えば、輝度信号Ｙが「１２８」までは、ガンマ補正演算にて補正された出力値Ｏｕｔｙを得ることができ、ガンマ補正演算に従った階調補正（コントラスト強調や輝度値上昇）を行うことができる。一方で、輝度信号Ｙが「１２８」以上になると、ガンマ補正演算によらず、緩やかに出力値Ｏｕｔｙが上昇する一次関数にて輝度信号Ｙが補正した出力値Ｏｕｔｙを得ることができる。背景技術において説明したように（図１３参照）、明部においては（輝度信号Ｙの値が大きくなる程）、ガンマ補正演算を行うと、注目画素の画素値（輝度信号Ｙ）が同じであっても周辺画素との明暗関係によってその値が大きく変化する。例えば、図１３の例によれば、ガンマ補正演算に基づいて出力値Ｏｕｔを求めた場合、対数値Ｒが正であると、元画像の画素値が「２５５」に対し出力値は「２５５」となる一方で、対数値Ｒが負であると出力値は１７０程度にしかならない。輝度信号Ｙの値も同様である。
【０１２０】
このように同じ画素値（輝度信号Ｙの値）に対し広範囲の出力値が与えられてしまうことによって、僅かな画素値（輝度信号Ｙの値）の差が大きく増長される過補正（過度なコントラスト強調）が発生するのである。しかし、プリンタ１が備える下限値テーブル１２ｅ（対数値Ｒが負（正規化反射率ｒｅｆｌｅが下限値）である場合に対応するテーブル）では、元画像の輝度信号Ｙ「２５５」に対する出力値Ｏｕｔｙは「２４０」とされており、ガンマ補正演算にて求められる値よりも遥かに大きな値とされている。一方で、上限値テーブル１２ｃ（対数値Ｒが正（正規化反射率ｒｅｆｌｅが上限値）である場合に対応するテーブル）では、元画像の輝度信号Ｙ「２５５」に対する出力値Ｏｕｔｙは「２５５」とされている。このため、明部においては（輝度信号Ｙが大きくなるほど）、出力値Ｏｕｔｙが取り得る分布範囲は、ガンマ補正演算を行う従来に比べて狭小な範囲に納めることができる。その結果、明部においてコントラストが過度に強調される過補正を、大きく抑制することができる。故に、プリンタ１においては、元画像の暗部（輝度信号Ｙの小さい側、本実施形態においては「１２８」未満）における必要な輝度上昇（逆光補正）と、明部における過補正の抑制とを実現できる。
【０１２１】
尚、本実施形態では、上記各テーブル１２ｃ〜１２ｅは、記憶される出力値Ｏｕｔｙの内、輝度信号値Ｙ「１２８」〜「２５４」に対する出力値Ｏｕｔｙは１種類の一次関数で生成されたものとされ、輝度信号値Ｙが「２５５」に対する出力値Ｏｕｔｙは、かかる一次関数によらない固定値とされたものであったが、変曲点（本実施形態では「１２８」）から「２５５」までの範囲における全ての輝度信号値Ｙに対して１種類の一次関数で生成した出力値Ｏｕｔｙを記憶する構成としても良い。更には、上記各テーブル１２ｃ〜１２ｅを、変曲点から「２５５」までの範囲の輝度信号Ｙに対し複数種類の一次関数で生成した出力値Ｏｕｔｙを記憶する構成としても良い。
【０１２２】
また、図３に示されるように、３本の特性線ｆ１〜ｆ３は、正規化反射率ｒｅｆｌｅが０．３、０．８、１．３と０．５ずつ、同じ間隔で変更されたものであるにもかかわらず、３本の特性線ｆ１〜ｆ３の間隔は均等ではない。例えば、輝度信号Ｙの値が「１２８」である場合、正規化反射率ｒｅｆｌｅ１．３での出力値Ｏｕｔｙと正規化反射率ｒｅｆｌｅ０．８での出力値Ｏｕｔｙとの差Ｗ１は、正規化反射率ｒｅｆｌｅ０．８での出力値Ｏｕｔｙと正規化反射率ｒｅｆｌｅ０．３での出力値Ｏｕｔｙとの差Ｗ２よりも、明らかに小さい。つまり、出力値Ｏｕｔｙは、正規化反射率ｒｅｆｌｅの変化に対して非線形に変化する。従って、上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅの３つのテーブルを備えることにより、線形補間演算を行って出力値Ｏｕｔｙを生成する場合に、その正規化反射率ｒｅｆｌｅの変化に対する出力値Ｏｕｔｙの偏りを、補間演算に反映させることができる。故に、かかるテーブルデータに基づいて出力値Ｏｕｔｙを生成した場合に、的確に出力値Ｏｕｔｙを生成することができるのである。
【０１２３】
図４は、ガンマ補正演算と一次関数演算との切替点となる変曲点の設定範囲（変曲点設定区間）を説明する図である。変曲点設定区間は、変曲点の取り得る範囲である。
【０１２４】
この図４は、ガンマ補正演算を含む（４）式をグラフ化したものであり、横軸に元画像データの輝度信号Ｙ（ｘ，ｙ）を示し、縦軸にレティネックス処理（（４）式）による補正）がなされた出力値Ｏｕｔｙを示している。図４中に描画された各グラフ曲線は、特定の正規化反射率ｒｅｆｌｅ（０．３，０．８，１．３）のグラフ曲線を示している。具体的には、正規化反射率ｒｅｆｌｅ０．３のグラフ曲線を破線で、正規化反射率ｒｅｆｌｅ０．８のグラフ曲線を一点鎖線で、正規化反射率ｒｅｆｌｅ１．３であるグラフ曲線を二点鎖線で示した。また、ｙ＝ｘの無変換直線を実線で示した。
【０１２５】
本実施形態は、単調増加関数である一次関数をガンマ補正演算に組み合わせて、明部における過補正を抑制する構成としているが、単純に、一次関数（単調増加関数）を用いただけでは、逆光補正が不十分となる、十分なコントラストが得られない、急激な画素値上昇に伴った画質不良が発生するといった問題点が発生する。つまり、ガンマ補正演算と一次関数演算とを切り換える変曲点には、最適範囲が存在するのである。
【０１２６】
本実施形態においては、以下の２つの規定により、変曲点の最適範囲である変曲点設定区間を設定している。１つ目の規定は、変曲点を、正規化反射率ｒｅｆｌｅ０．３のグラフ曲線と、無変換直線との交点の値以上とする、即ち、かかる交点を変曲点設定区間の下限とすることである。
【０１２７】
図４に示すように、ガンマ補正演算では、輝度信号Ｙの増加につれ、やがては、入力値である輝度信号Ｙよりも出力値Ｏｕｔｙの方が小さくなる。輝度信号Ｙ≧出力値Ｏｕｔｙとなる境界点は、各正規化反射率ｒｅｆｌｅにおけるガンマ補正演算のグラフ曲線と、輝度信号Ｙの値をそのまま無変換で出力値Ｏｕｔｙとする場合の無変換直線との交点で示される。逆に言えば、この交点までは、元画像データの輝度信号Ｙの値が増大された出力値Ｏｕｔｙが生成される区間である。
【０１２８】
また、正規化反射率ｒｅｆｌｅの０．３は、算出される正規化反射率ｒｅｆｌｅの内の最小値であるので、各グラフ曲線の内、最も下側に形成され、無変換直線との交点が最も小さい値となる。この正規化反射率ｒｅｆｌｅ０．３のグラフ曲線が無変換直線と交わるまでの区間に変曲点が位置すると、正規化反射率ｒｅｆｌｅ０．３である場合に、一次関数によって生成される出力値Ｏｕｔｙが、無変換直線によって生成されるものを下回ってしまいかねない。つまり、逆光補正（輝度値の上昇）が要求される画素値の小さい部分において、元の入力値を超えた値で出力値を生成することができず、逆光補正が不能となるのである。故に、本実施形態においては、図４に示す正規化反射率ｒｅｆｌｅ０．３のグラフ曲線と、無変換直線との交点の値以上を、変曲点設定区間としているのである。
【０１２９】
変曲点設定区間を設定する２つ目の規定は、正規化反射率ｒｅｆｌｅ０．３のグラフ曲線と正規化反射率ｒｅｆｌｅ１．３のグラフ曲線との間隔が、予め定めた幅以下となる範囲とすることである。正規化反射率ｒｅｆｌｅ０．３のグラフ曲線と無変換直線との交点以降は、輝度信号Ｙが大きくなる程、正規化反射率ｒｅｆｌｅが０．３である場合の出力値Ｏｕｔｙと、正規化反射率ｒｅｆｌｅが１．３である場合の出力値Ｏｕｔｙとの差が拡大している。このため、両グラフ曲線の間隔が予め定めた幅となる輝度信号Ｙの値が、変曲点設定区間の上限となる。尚、出力値Ｏｕｔｙの上限値は「２５５」であるので、両グラフ曲線の差が計算上は拡大していても、実際には、「２２４」付近からは両グラフ曲線の開きは縮小する。しかし、本実施形態においては、この計算上において、両グラフ曲線の間隔が予め定めた幅となる輝度信号Ｙの値を変曲点設定区間の上限とする。
【０１３０】
上記したように、正規化反射率ｒｅｆｌｅが０．３である場合の出力値Ｏｕｔｙと、正規化反射率ｒｅｆｌｅが１．３である場合の出力値Ｏｕｔｙとの間に幅があることにより、コントラスト強調を行うことができるのであるが、輝度信号Ｙの値が大きな領域においては、かかる出力値Ｏｕｔｙに必要以上の差が付与されてしまい過補正が発生することとなる。そこで、かかる２のグラフ曲線の差が、予め定めた幅となるまでに変曲点を設けることにより、正規化反射率ｒｅｆｌｅが０．３である場合の出力値Ｏｕｔｙと、正規化反射率ｒｅｆｌｅが１．３である場合の出力値Ｏｕｔｙとに、過剰な差が生じることを回避できる。本実施形態では、変曲点以降では、一次関数に従って出力値Ｏｕｔｙが生成されるため、図３に示すように、正規化反射率ｒｅｆｌｅが０．３である特性線ｆ３と、正規化反射率ｒｅｆｌｅが１．３である場合の特性線ｆ１との間隔は、変曲点において最大となり、輝度信号Ｙの値が変曲点を超えて大きくなるにつれ次第に、両特性線の間隔を縮小することができるようになっている。
【０１３１】
具体的には、本実施形態においては、予め定めた幅は「９６」とされており、上記２のグラフ曲線の間隔が「９６」となる、輝度信号Ｙの値「１６０」が、変曲点設定区間の上限とされている。尚、変曲点設定区間を規定する上記２のグラフ曲線の間隔は「９６」に限られるものではなく、「６４」〜「９６」の範囲の任意の値とすることができる。「６４」以下では、形成される特性線ｆ１，ｆ３の間隔が狭小となりすぎて画像に十分なコントラストを付与できず、また「９６」を超えると、必要範囲において特性線ｆ１，ｆ３の間隔の縮小が不十分となり明部における過補正を発生させてしまう。その上、かかる幅が「９６」以上となると、変曲点輝度信号Ｙの最大値に近くなり過ぎ、最大値近傍の狭い範囲において出力値Ｏｕｔｙが急激に上昇してしまうこととなって画質不良を招きかねない。故に、変曲点設定区間を規定する上記２のグラフ曲線の間隔は「６４」〜「９６」とされている。
【０１３２】
変曲点は、上記２の規定によって設定される変曲点設定区間内の任意の値とすることができる。このように変曲点設定区間を規定することにより、元画像の逆光領域においてはガンマ補正演算に従った逆光補正（輝度上昇）を実現し、また、明部における過補正の発生を抑制することができる。
【０１３３】
変曲点は、かかる変曲点設定区間において任意の値とでき、各特性線ｆ１〜ｆ３毎に設定可能であるが、同じ輝度信号Ｙの値に対し、正規化反射率ｒｅｆｌｅが大きい場合ほど、求められる出力値Ｏｕｔｙが大きな値となる位置に（輝度信号Ｙの値で）設定するものとされている。つまり、各特性線ｆ１〜ｆ３が、各輝度信号Ｙ「０」〜「２５５」において、交差することのないように変曲点は設けられる。これにより、注目画素が周辺画素より暗い場合より、周辺画素と同じ明るさである方が、更には、周辺画素より明るい方が、より大きな出力値Ｏｕｔｙとなる。従って、元画像の階調の序列に従って出力画像を形成することができる。
【０１３４】
更に、本実施形態においては、変曲点には、この変曲点設定区間内の値であって輝度信号Ｙの中点近傍の値が（「１２８」）採用されている。
【０１３５】
ガンマ補正演算によって発生する過補正は、明部の中でも最大値近傍となるほど顕著となるが、かかる最大値近傍に到達するまでは、むしろ、コントラストを強調することが画質を向上させることとなる。従って、輝度信号Ｙの値の中点近傍に変曲点を設けることにより、中点を含む過補正を抑制する必要のない中間領域においては、正規化反射率ｒｅｆｌｅ１．３の特性線ｆ１と正規化反射率ｒｅｆｌｅ０．３の特性線ｆ３との間隔を十分に確保でき、かかる領域では良好なコントラストを出力画像に付与することができる。
【０１３６】
更には、変曲点を輝度信号Ｙの中点近傍とすることにより、図３に示したように、正規化反射率ｒｅｆｌｅが０．３である場合の特性線ｆ３を、輝度信号Ｙの中点近傍から最大値に向かって緩やかに上昇させることができる。変曲点を中点近傍とすることにより、一次関数の傾きａを１近傍の値又はそれ以下の値とできるからである。従って、出力値Ｏｕｔｙの上昇を十分に緩慢にすることができ、狭い範囲での急激な出力値Ｏｕｔｙ上昇を確実に回避できる。
【０１３７】
尚、本実施形態において設けられた各テーブル１２ｃ〜１２ｅは、輝度信号Ｙの値において「１２８」が変曲点となるように構成されたが、変曲点は「１２８」に限られるものではない。
【０１３８】
また、本実施形態においては、各テーブル１２ｃ〜１２ｅのテーブルデータのそれぞれは、全て、輝度信号Ｙの値「１２８」を変曲点として構成されたが、各テーブル１２ｃ〜１２ｅに記憶させるテーブルデータは、異なる変曲点を有するものであっても良い。
【０１３９】
また、テーブルデータの形成に用いられた正規化反射率ｒｅｆｌｅの値がどのように設計されているかは、少ないテーブル数で的確な出力値Ｏｕｔｙを生成するための重要な要素である。
【０１４０】
そこで、図５と図６とを参照して、本プリンタ１に記憶させた各テーブル１２ｃ〜１２ｅの形成に用いられた正規化反射率ｒｅｆｌｅについて詳細に説明する。
【０１４１】
図５は、元画像データから求められる対数値Ｒと元画像との関係を説明する図である。図５（ａ）には、逆光画像である元画像（逆光画像模式図）が表示されている。該元画像は、矩形状の外形を有する態様に形成されると共に、中央部において円形の逆光部位を有している。図５（ｂ）は、元画像の各画素値を反射率（対数値Ｒ）に変換して形成した変換画像を示している。ここで、対数値Ｒは、注目画素の画素値とその周辺画素の平均輝度値との差を示す値、言い換えれば、注目画素と周辺画素との明るさの差を表す値である。変換画像において、白で示される領域Ａは対数値Ｒが正であることを、黒で示される領域Ｃは対数値Ｒが負であることを、灰色で示される領域Ｂは対数値Ｒが０であることをそれぞれ示している。
【０１４２】
この対数値Ｒが正の値を持つ場合、注目画素は、周辺画素よりも明るいことを示している。逆に、対数値Ｒが負の値を持つ場合、注目画素は、周辺画素よりも暗いことを示している。また、対数値Ｒが０である場合は、注目画素は、周辺画素と同じ明るさであることを示している。
【０１４３】
一般には、元画像の各部においては、その明るさが一様であることが多い。逆光部位の大部分は同じように暗く、また、逆光部位以外の他の部分については、同じように明るい。従って、変換画像に示すように、物体の輪郭周辺や、逆光部位と非逆光部位との境界周辺など、画像の一部の領域に属する一部の画素が、周辺画素よりも明るく又は暗くなるのである。
【０１４４】
図６は、図５に示した画像を含む一般的な画像についての対数値Ｒのヒストグラムを示している。該ヒストグラムは、横軸を対数値Ｒとし、縦軸を画素数として作成されており、元画像の各画素について対数値Ｒを集計した結果を表したものである。かかるヒストグラムにおいてメジアン値Ｍは０であり、対数値Ｒは、メジアン値Ｍをピークとして両側に略対称に分布している。また、対数値Ｒはメジアン値Ｍ（即ち対数値Ｒ＝０）近傍に集中しており、元画像の大部分において、注目画素と周辺画素とは同程度の明るさとなることが示されている。尚、対数値Ｒの母集団においては、モード値についても０となっている。つまり、このヒストグラムによっても、元画像における各画素の対数値Ｒの大部分が０（０近傍）となることが示されている。
【０１４５】
プリンタ１は、この対数値Ｒが０となる場合に対応するテーブルデータ（中央値テーブル１２ｄ）を用いて出力値Ｏｕｔｙの生成を行うように構成されている。多くの画素の対数値Ｒが０（０近傍）であることから、この対数値Ｒが０である場合に算出される出力値Ｏｕｔｙをテーブルデータとして有することにより、テーブルデータを用いた出力値Ｏｕｔｙ生成において、生成される値の精度を向上することができるからである。実際には、（４）式の演算における反射光成分の項に、対数値Ｒ＝０を用いて計算を行うと演算結果が無限大となってしまうので、算出された対数値Ｒに正規化を行った正規化反射率ｒｅｆｌｅが用いられている。
【０１４６】
対数値Ｒの正規化においては、正規化を行うクリップ範囲（正規化範囲）を規定する必要がある。本実施形態においては、形成されるヒストグラムにおいて、メジアン値Ｍよりも大きい側において４５％の画素が含まれる点となる値を対数値Ｒの上限値Ｕとし、メジアン値Ｍよりも小さい側において４５％の画素が含まれる点となる値を対数値Ｒの下限値Ｄとして、下限値Ｄ〜上限値Ｕの範囲がクリップ範囲とされている。そして、クリップ範囲の対数値Ｒは、予め定めた範囲（下限値ｄ〜上限値ｕ）へと正規化される。この正規化は、下限値Ｄ以下の対数値Ｒを下限値ｄとし、上限値Ｕ以上の値を上限値ｕとすると共に、下限値Ｄから上限値Ｕまでのクリップ範囲の対数値Ｒを、線形、または非線形な関数で、下限値ｄ〜上限値ｕの範囲の値へと変換することにより行われる。テーブル１２ｃ〜１２ｅに保持させる出力値Ｏｕｔｙは、かかる正規化によって求められた正規化反射率ｒｅｆｌｅを用いて算出されている。尚、クリップ範囲は、メジアン値Ｍを中心に上下４５％の画素が属する範囲としたが、これに限られるものではなく、４５％以上の画素が属する範囲であっても、４５％以下の画素が属する範囲であっても良い。
【０１４７】
本実施形態に用いられた各テーブル１２ｃ〜１２ｅの設計においては、この対数値Ｒの正規化は、次の２つの条件を満たすように行われている。１つ目の条件は、正規化して得られる正規化反射率ｒｅｆｌｅが、０を含まない値とすることである。これは、上記したように、出力値Ｏｕｔｙが算出不能となることを回避するためである。
【０１４８】
２つ目の条件は、正規化された正規化反射率ｒｅｆｌｅの値の幅を１とすることである。正規化反射率ｒｅｆｌｅの有する幅が１であると、元画像のダイナミックレンジと出力画像のダイナミックレンジとをおおよそ同じにすることができる。元画像の画素値は「０」〜「２５５」の範囲の値であるので、正規化反射率ｒｅｆｌｅの有する幅を１とすることにより、本実施形態では、同じ範囲である「０」〜「２５５」で出力画像の画素値を得ることができる。その結果、出力画像全体の色調が入力画像に比べて変化してしまうことを回避できる。
【０１４９】
このため、対数値Ｒは、０を超える値の下限値ｄから、その下限値ｄに１加算した上限値ｕの範囲に、正規化される。尚、本実施形態においては、（３）式における下限値ｄは０．３とされ、上限値ｕは１．３とされており、対数値Ｒは０．３〜１．３の値に正規化されている。言い換えれば、元画像の各画素の正規化反射率ｒｅｆｌｅは、０．３〜１．３の値となる。また、対数値Ｒを０．３〜１．３の範囲に正規化すると、対数値Ｒ「０」の正規化反射率ｒｅｆｌｅは、０．８となる。従って、正規化反射率ｒｅｆｌｅが０．８を超える画素（注目画素）は、対数値Ｒが正である、即ち、注目画素が周辺画素よりも明るい事を示しており、正規化反射率ｒｅｆｌｅが０．８未満である画素（注目画素）は、対数値Ｒが負である、即ち、注目画素が周辺画素よりも暗い事を示すこととなる。
【０１５０】
ここで、上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅには、正規化反射率ｒｅｆｌｅが１．３、正規化反射率ｒｅｆｌｅが０．８、正規化反射率ｒｅｆｌｅが０．３である場合において形成されたものである。つまり、上限値テーブル１２ｃは、正規化反射率ｒｅｆｌｅの上限値（対数値Ｒが正である）を用いて形成されたものであり、下限値テーブル１２ｅは、正規化反射率ｒｅｆｌｅの下限値（対数値Ｒが負である）を用いて形成されたものである。そして、中央値テーブル１２ｄは、上記したように、対数値Ｒ＝０である場合の正規化反射率ｒｅｆｌｅを用いて形成されたものとなっている。
【０１５１】
また、プリンタ１は、入力された元画像データから算出された対数値Ｒを、０．３〜１．３の範囲に正規化するように構成されている。つまり、プリンタ１において入力された元画像から演算される対数値Ｒの正規化反射率ｒｅｆｌｅと、各テーブル１２ｃ〜１２ｅの形成に用いた正規化反射率ｒｅｆｌｅとは、同じ範囲を有するものとなり、両者を整合させることができる。故に、かかる３つのテーブル１２ｃ〜１２ｅを用いて生成される出力値Ｏｕｔｙは、的確な値となる。
【０１５２】
その上、上限値テーブル１２ｃと下限値テーブル１２ｅとを備えていることにより、補間演算を行えば、プリンタ１に入力された元画像から算出される全ての正規化反射率ｒｅｆｌｅに対応する出力値Ｏｕｔｙを、各テーブル１２ｃ〜１２ｅに記憶されるテーブルデータを用いて導出することができる。
【０１５３】
尚、本実施形態においては、正規化反射率ｒｅｆｌｅは、０．３〜１．３の範囲としたが、正規化反射率ｒｅｆｌｅの範囲はこれに限られるものではなく、同じクリップ範囲について、正規化反射率ｒｅｆｌｅの範囲を、例えば、０．１〜１．１や、０．４〜１．４などとしても良い。また、正規化反射率ｒｅｆｌｅの幅も厳密に１である必要はなく、１より小さい範囲（例えば、０．９など）であっても良く、１より大きい範囲（例えば、１．５など）であっても良い。
【０１５４】
図１に戻って説明する。
【０１５５】
ＲＡＭ１３は、制御プログラムがＣＰＵ１１により実行される際に必要な各種レジスタ群などが記憶されるワーキングエリアや、処理中のデータを一時的に格納するテンポラリエリア等を有しランダムにアクセスできる書き換え可能なメモリであり、元画像データを記憶する元画像メモリ１３ａと、元画像を縮小し、縮小した画像のレティネックス処理において求められる反射率（対数値Ｒｓ）を記憶する縮小レティネックス画像メモリ１３ｂと、対数値Ｒｓのヒストグラム（頻度分布）が記憶されるヒストグラムメモリ１３ｃと、縮小画像の反射率（対数値Ｒｓ）の最大値を記憶する最大値メモリ１３ｄと、縮小画像の反射率（対数値Ｒｓ）の最小値を記憶する最小値メモリ１３ｅと、元画像のＲＧＢ値から生成された輝度信号Ｙを記憶する輝度値メモリ１３ｆと、元画像の反射率（反射光成分、対数値Ｒ）を記憶する対数値メモリ１３ｇと、正規化された反射率である正規化反射率ｒｅｆｌｅを記憶するｒｅｆｌｅ値メモリｈと、レティネックス処理による補正がなされた出力画像データを記憶する出力画像メモリ１３ｉとを備えている。なお、「ｓ」は、縮小画像についての接尾辞であり、元画像については、接尾辞を付さないものとする。
【０１５６】
元画像メモリ１３ａは、ＰＣ２、デジタルカメラ２１、及び外部メディア２０から、それぞれ、Ｉ／Ｆ１７、Ｉ／Ｆ１８、及び外部メディアスロット１９を介してプリンタ１へ入力された画像データであって、上記した元画像データを記憶するものである。この元画像メモリ１３ａに記憶される元画像データは、新たにプリンタ１に画像データが入力されると、入力された画像データで更新される。
【０１５７】
縮小レティネックス画像メモリ１３ｂは、元画像を縮小した縮小画像の輝度信号Ｙｓについて、レティネックス処理において求められる反射率、即ち対数値Ｒｓを記憶するメモリである。
【０１５８】
元画像を縮小する方法としては、縮小する画像の画素に対応する元画像の位置に最も近い画素の値をサンプリングし、そのサンプリングした画素の値をそのまま用いる最近傍（Nearest  Neighbor）法や、縮小する画像の画素に対応する元画像の位置の周囲の画素を用いて補間演算を行うバイキュービック法や、平均画素法などが知られている。画質より処理速度を優先する場合は、最近傍法が用いられ、処理速度より画質を優先する場合は、バイキュービック法や、平均画素法が用いられる。
【０１５９】
これらいずれかの方法により元画像が縮小され、その縮小画像の各画素（ピクセル）について対数値Ｒｓが上述の（２）式を用いて演算され、縮小画像の各画素の座標（ｘ，ｙ）に対応して縮小レティネックス画像メモリ１３ｂに記憶される。この縮小レティネックス画像メモリ１３ｂの値は、新たな補正処理の実行時に更新される。尚、対数値Ｒｓの演算は、上記（２）式における元画像の信号強度値Ｉ（ｘ，ｙ）に、輝度信号Ｙｓ（ｘ，ｙ）を用いて実行される。
【０１６０】
ヒストグラムメモリ１３ｃは、縮小レティネックス画像メモリ１３ｂに記憶される反射率（対数値Ｒｓ）について、レベルが同じものの画素数を集計した集計結果を記憶するものであり、各レベルのそれぞれに対応して各１のエリアが設けられている。言い換えれば、対数値Ｒｓのヒストグラムを形成するためのメモリである。
【０１６１】
ヒストグラムメモリ１３ｃの各エリア数及び各エリアにて管理する対数値Ｒｓのレベルは、新たに元画像が入力されることにより、ＣＰＵ１１によって設定される。具体的には、縮小画像を構成する全画素について対数値Ｒｓが求められると、求められた対数値Ｒｓの最小値と最大値とに基づいてヒストグラムの生成範囲が決定され、また、同じレベルとして集計するレベル範囲（管理するレベル）が選定される。これにより、ヒストグラムメモリ１３ｃのエリア数と各エリアのレベルが設定される。
【０１６２】
縮小レティネックス画像メモリ１３ｂに記憶される各対数値Ｒｓが、いずれのレベルに属するかが判断されると、その判断された対数値Ｒｓのレベルに対応するエリアに記憶される値に１が加算される。これにより、各レベル毎に、画素数が集計される。
【０１６３】
縮小レティネックス画像メモリ１３ｂに記憶される全ての対数値Ｒｓのレベル判断が完了すると、このヒストグラムメモリ１３ｃに記憶される集計結果から、メジアン値Ｍが検出され、上限値Ｕと下限値Ｄとが決定される。プリンタ１では、このヒストグラムメモリ１３ｃにおける集計結果にて決定された下限値Ｄから上限値Ｕに至る範囲が、元画像メモリ１３ａに記憶される元画像データのクリップ範囲とされる。
【０１６４】
このように、プリンタ１では、縮小画像から形成されたヒストグラムで元画像のクリップ範囲を決定することができるので、かかるクリップ範囲を決定するために、元画像の全画素についてのヒストグラムを生成する必要が無く、処理時間を短縮することができる。
【０１６５】
最大値メモリ１３ｄ及び最小値メモリ１３ｅは、ヒストグラムの生成に際し、縮小レティネックス画像メモリ１３ｂに記憶される対数値Ｒｓの内の、最大値のものと、最小値のものとをそれぞれ記憶するメモリである。かかる最大値メモリ１３ｄ及び最小値メモリ１３ｅには、元画像のレティネックス処理を行う補正処理の開始に際し、０が書き込まれる。対数値Ｒｓが算出されると、最大値メモリ１３ｄに記憶される値は、その算出された（縮小レティネックス画像メモリ１３ｂに記憶された）対数値Ｒｓと比較される。そして、その比較結果に基づいて、より大きな対数値Ｒｓにて、最大値メモリ１３ｄに先に記憶される値が更新される。
【０１６６】
また、最大値メモリ１３ｄに記憶される値よりも、比較した対数値Ｒｓの方が小さかった場合には、その対数値Ｒｓは、最小値メモリ１３ｅに記憶される値と比較される。そして、その比較結果に基づいて、より小さな対数値Ｒｓにて最小値メモリ１３ｅに記憶される先の値は更新される。
【０１６７】
その結果、最大値メモリ１３ｄには、縮小レティネックス画像メモリ１３ｂに記憶される対数値Ｒｓの内の最大値が保持され、最小値メモリ１３ｅには、縮小レティネックス画像メモリ１３ｂに記憶される対数値Ｒｓの内の最小値が保持される。
【０１６８】
この最大値メモリ１３ｄ及び最小値メモリ１３ｅに記憶される最大値および最小値は、ヒストグラム生成のタイミングでＣＰＵ１１に参照され、かかる最大値及び最小値に基づいて、ヒストグラム生成の範囲がＣＰＵ１１にて決定される。
【０１６９】
輝度値メモリ１３ｆは、ＲＧＢ値から（５）式に従って算出された輝度信号Ｙ（Ｙｓ）と色信号Ｃｂ，Ｃｒを記憶するメモリである。プリンタ１では、上記したように、入力された元画像の元画像データ（ＲＧＢ値）に直接レティネックス処理を行うのではなく、ＲＧＢ値を輝度信号Ｙに変換してからレティネックス処理を行うように構成されている。ＲＧＢ値から変換された輝度信号Ｙなどは、変換元のＲＧＢ値の座標（ｘ，ｙ）に対応してこの輝度値メモリ１３ｆに記憶される。そして、この輝度値メモリ１３ｆに記憶される輝度信号Ｙや輝度信号Ｙｓに基づいて、反射率や出力値Ｏｕｔｙが生成される。
【０１７０】
ここで、プリンタ１は、出力画像の出力値Ｏｕｔｙを生成するために、縮小画像と元画像との両者から、合計２回、反射率（対数値Ｒｓ及び対数値Ｒ）を算出する。反射率の算出に際しては、算出元の画像データ（縮小画像データ、元画像データ）のＲＧＢ値から輝度信号Ｙｓまたは輝度信号Ｙがそれぞれ生成され、この輝度値メモリ１３ｆに書き込まれる。元画像の輝度信号Ｙの生成に先立って、縮小画像の輝度信号Ｙｓは生成され、輝度値メモリ１３ｆに書き込まれる。輝度値メモリ１３ｆに記憶された縮小画像の輝度信号Ｙｓ等は、その後、元画像の輝度信号Ｙが生成されるタイミングで、０クリアされ、新たに、元画像データのＲＧＢ値から生成された輝度信号Ｙなどが輝度値メモリ１３ｆに記憶される。
【０１７１】
対数値メモリ１３ｇは、元画像データから算出された反射率である対数値Ｒを記憶するメモリである。具体的には、輝度値メモリ１３ｆに記憶された元画像データの輝度信号Ｙを用いて、各画素に対応する対数値Ｒ（ｘ，ｙ）が、上述の（２）式に従って算出され、算出された対数値Ｒ（ｘ，ｙ）は、その座標に対応して対数値メモリ１３ｇに記憶される。この対数値メモリ１３ｇの値は、新たな補正処理の実行時に更新される。尚、上記（２）式における元画像の信号強度値Ｉ（ｘ，ｙ）は、輝度信号Ｙ（ｘ，ｙ）を用いて演算される。
【０１７２】
ｒｅｆｌｅ値メモリ１３ｈは、対数値メモリ１３ｇに記憶される対数値Ｒが正規化された正規化反射率ｒｅｆｌｅを記憶するメモリである。このｒｅｆｌｅ値メモリ１３ｈに記憶される正規化反射率ｒｅｆｌｅは、対数値メモリ１３ｇに記憶される各対数値Ｒ（ｘ，ｙ）を、（３）式に従って下限値０．３〜上限値１．３の範囲に正規化したものである。対数値Ｒ（ｘ，ｙ）、即ち対数値Ｒの各々に対応して、各１ずつの正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が生成され、その座標に対応してこのｒｅｆｌｅ値メモリ１３ｈに書き込まれる。このｒｅｆｌｅ値メモリ１３ｈに記憶される正規化反射率ｒｅｆｌｅは、出力値Ｏｕｔｙを生成するタイミングでｒｅｆｌｅ値メモリ１３ｈから読み出され、読み出された正規化反射率ｒｅｆｌｅに対応するテーブル（テーブル１２ｃ〜１２ｅ）が、出力値Ｏｕｔｙ抽出元のテーブルとして選定される。
【０１７３】
出力画像メモリ１３ｉは、印刷部１５に出力する出力画像データを記憶するメモリである。この出力画像メモリ１３iに記憶される出力画像データは、補正処理によって元画像から生成された出力値Ｏｕｔであり、出力画像を形成する各画素のＲＧＢ値である。上記したように、本実施形態では、各テーブル１２ｃ〜１２ｅから元画像の輝度信号Ｙ（ｘ，ｙ）に応じた出力値Ｏｕｔｙが抽出される。このテーブル１２ｃ〜１２ｅから抽出される出力値Ｏｕｔｙ値は、輝度信号Ｙであるので、必要に応じて線形補間演算などが行われた後、以下に示す（６）式に従って、ＲＧＢ値に変換され、出力値Ｏｕｔとされる。
【０１７４】
【数６】
2008129797.tif 000008
元画像の各輝度信号Ｙ（ｘ，ｙ）の各々に対応して、各１ずつの出力値Ｏｕｔｙ（ｘ，ｙ）が算出されており、出力値Ｏｕｔについても、各出力値Ｏｕｔｙ（ｘ，ｙ）のそれぞれに対応する出力値Ｏｕｔｙ（ｘ，ｙ）が生成される。そして、生成された出力値Ｏｕｔ（ｘ，ｙ）が、その座標に対応して、出力画像メモリ１３ｉに書き込まれる。記憶された出力値Ｏｕｔ（出力画像データ）は、印刷を実行するタイミングでこの出力画像メモリ１３ｉから読み出され、印刷部１５へ出力される。印刷部へ出力された出力値Ｏｕｔは、出力画像メモリ１３ｉから消去される。
【０１７５】
次に、図７と図８とのフローチャートを参照して、上記のように構成されたプリンタ１で実行される補正処理について説明する。補正処理は、上記した画像処理プログラム１２ａによって実行される処理であり、入力された画像データ（元画像データ）にレティネックス処理を行って出力画像データを生成するものである。
【０１７６】
この補正処理では、まず、元画像メモリ１３ａから元画像データを読み出し（Ｓ１）、縮小画像を形成すると共にその形成された縮小画像の各ＲＧＢ値を輝度信号Ｙｓと色信号Ｃｂ，Ｃｒとに変換し、縮小画像の各ＲＧＢ値の座標（ｘ，ｙ）にそれぞれ対応させて輝度値メモリ１３ｆに書き込む（Ｓ２）。これにより、縮小画像の全画素に対応する輝度信号Ｙｓが輝度値メモリ１３ｆに記憶される。
【０１７７】
そして、輝度値メモリ１３ｆに記憶した縮小画像の輝度信号Ｙｓについて反射率（対数値Ｒｓ）を算出する。各画素の対数値Ｒｓ（ｘ，ｙ）は、（２）式の画素値Ｉ（ｘ，ｙ）に輝度信号Ｙｓ（ｘ，ｙ）を用いて算出する（Ｓ３）。つまり、座標（ｘ，ｙ）の注目画素を含むｍ×ｎの領域にガウスフィルタＦ（ｘ，ｙ）による畳み込み演算が行って、注目画素からの距離に応じた重みを加味しつつ平均された周辺画素の平均輝度値を求め、その平均輝度値にて注目画素の輝度信号Ｙｓ（ｘ，ｙ）を除したものの自然対数を求めることにより、注目画素の反射率である対数値Ｒｓ（ｘ，ｙ）を算出する。
【０１７８】
その後、算出した対数値Ｒｓ（ｘ，ｙ）を縮小レティネックス画像メモリ１３ｂに記憶し（Ｓ４）、記憶した対数値Ｒｓ（ｘ，ｙ）が最大値メモリ１３ｄに記憶される値よりも大きいかを判断する（Ｓ５）。対数値Ｒｓ（ｘ，ｙ）が最大値メモリ１３ｄに記憶される値よりも大きければ（Ｓ５：Ｙｅｓ）、算出した対数値Ｒｓ（ｘ，ｙ）を最大値メモリ１３ｄに記憶して、先に最大値メモリ１３ｄに記憶される値を更新する（Ｓ６）。また、Ｓ５の処理で確認した結果、対数値Ｒｓ（ｘ，ｙ）が最大値メモリ１３ｄに記憶される値よりも小さい場合には（Ｓ５：Ｎｏ）、その対数値Ｒｓを最小値メモリ１３ｅに記憶される値よりも小さいかを判断する（Ｓ７）。その結果、比較した対数値Ｒｓが最小値メモリ１３ｅに記憶される値よりも小さければ（Ｓ７：Ｙｅｓ）、その対数値Ｒｓを最小値メモリ１３ｅに記憶し、最小値メモリ１３ｅに先に記憶される値を更新する（Ｓ８）。
【０１７９】
Ｓ６またはＳ８の処理の後は、縮小画像の全画素について処理が終了したかを確認する（Ｓ９）。縮小画像についての対数値Ｒｓの生成と対数値Ｒｓの最大値と最小値とを判断するＳ３〜Ｓ８の処理は、１の注目画素毎（１の輝度信号Ｙｓ毎）に実行され、最終画素の輝度信号Ｙｓの処理が終了するまで、繰り返して実行される。従って、輝度値メモリ１３ｆからは、Ｓ３〜Ｓ８の処理の実行毎に、座標に従った順番で（先頭座標から最終座標へ向かうラスタ走査の順で）、輝度信号Ｙｓが読み出される。そして、Ｓ９の処理で確認した結果、全画素についての処理が終了していれば（Ｓ９：Ｙｅｓ）、縮小レティネックス画像メモリ１３ｂに記憶される対数値Ｒｓに対し、最大値メモリ１３ｄに記憶される最大値から最小値メモリ１３ｅに記憶される最小値までの範囲において、ヒストグラムを形成する（Ｓ１０）。
【０１８０】
その後、形成したヒストグラムからメジアン値Ｍを求め（Ｓ１１）、次いで、そのメジアン値Ｍとヒストグラムとから対数値Ｒｓのクリップ範囲（上限値Ｕと下限値Ｄ）を定める（Ｓ１２）。具体的には、メジアン値Ｍを中心に、メジアン値Ｍの上側において４５％の画素が含まれる点となる対数値Ｒｓを上限値Ｕとし、メジアン値Ｍの下側において４５％の画素が含まれる点となる対数値Ｒｓを下限値Ｄとし、メジアン値Ｍの上下に各４５％ずつの画素が所属する下限値Ｄ〜上限値Ｕの範囲をクリップ範囲とする。
【０１８１】
続いて、輝度値メモリ１３ｆを０クリアしてから（Ｓ１３）、元画像メモリ１３ａに記憶される元画像データの各ＲＧＢ値を輝度信号Ｙと色信号Ｃｂ，Ｃｒとに変換し、各ＲＧＢ値の座標（ｘ，ｙ）にそれぞれ対応させて輝度値メモリ１３ｆに書き込む（Ｓ１４）。その後、出力画像データを生成する出力値算出処理を実行してから（Ｓ１５）、その出力値生成処理（Ｓ１５）において元画像の全画素についての処理が終了したかを確認し（Ｓ１６）、元画像の全画素が出力値Ｏｕｔに変換されていなければ（Ｓ１６：Ｎｏ）、その処理をＳ１５の処理に移行して、元画像の全画素について出力値Ｏｕｔが生成されるまで繰り返して出力値算出処理（Ｓ１５）を実行し、一方、元画像の全画素が出力値Ｏｕｔに変換されていれば（Ｓ１６：Ｙｅｓ）、出力画像データの生成は完了であるので、この補正処理を終了する。
【０１８２】
一方、Ｓ７の処理で確認した結果、対数値Ｒｓが最小値メモリ１３ｅに記憶される値以上の値であった場合には（Ｓ７：Ｎｏ）、最小値メモリ１３ｅに記憶される値を更新する必要がないので、その処理をＳ９の処理に移行する。また、Ｓ９の処理で確認した結果、縮小画像の全画素について対数値Ｒｓの生成や、その対数値Ｒｓの最小値、最大値の判断を行う処理が終了していなければ（Ｓ９：Ｎｏ）、その処理をＳ３の処理に移行し、最終画素の輝度信号Ｙに対する処理が終了するまで、繰り返してＳ３〜Ｓ９の処理を実行する。
【０１８３】
図８は、図７の補正処理の中で実行される出力値算出処理（Ｓ１５）のフローチャートである。尚、出力値算出処理（Ｓ１５）は、１の注目画素毎（１の輝度信号Ｙ毎）に実行されるように構成されており、輝度値メモリ１３ｆからは、出力値算出処理（Ｓ１５）の実行毎に、座標に従った順番で（先頭座標から最終座標へ向かうラスタ走査の順で）、輝度信号Ｙが読み出され、最終画素の輝度信号Ｙの処理が終了するまで、繰り返して実行される。
【０１８４】
この出力値算出処理（Ｓ１５）では、まず、輝度値メモリ１３ｆに記憶される輝度信号Ｙについて反射率（対数値Ｒ）を算出する。上記したように、輝度信号Ｙは、元画像の各画素のそれぞれについて求められて、その座標（ｘ，ｙ）に対応して輝度値メモリ１３ｆに記憶されている。各画素の対数値Ｒ（ｘ，ｙ）は、（２）式の画素値Ｉ（ｘ，ｙ）に各輝度信号Ｙ（ｘ，ｙ）を用いて算出する（Ｓ２１）。
【０１８５】
次に、算出した対数値Ｒを対数値メモリ１３ｇに記憶してから（Ｓ２２）、対数値メモリ１３ｇに記憶した対数値Ｒについて、Ｓ１２の処理で設定した下限値Ｄ〜上限値Ｕの範囲を０．３〜１．３とする正規化をおこなって、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）を算出する（Ｓ２３）。
【０１８６】
この正規化は、対数値Ｒ（ｘ，ｙ）≦Ｄである場合には、０．３とし、また、対数値Ｒ（ｘ，ｙ）≧Ｕである場合には、１．３とすると共に０．３＜対数値Ｒ（ｘ，ｙ）＜１．３である場合には、（３）式に従って、対数値Ｒを正規化する。尚、本実施形態においては、（３）式におけるｄ及びｕは、それぞれ０．３と１．３となる。
【０１８７】
次に、算出した正規化反射率ｒｅｆｌｅ（ｘ，ｙ）を、その座標に対応してｒｅｆｌｅ値メモリ１３ｈに記憶してから（Ｓ２４）、その正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が１．３であるかを確認する（Ｓ２５）。ここで、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が１．３でなければ（Ｓ２５：Ｎｏ）、正規化反射率ｒｅｆｌｅは、１．３未満であるので、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が０．８を超えているかを確認する（Ｓ２６）。つまり、このＳ２６の処理により、正規化反射率ｒｅｆｌｅが０．８を超え１．３未満の範囲にあるかが判断される。そして、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が０．８を超えている場合には（Ｓ２６：Ｙｅｓ）、輝度値メモリ１３ｆから読み出した輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを、上限値テーブル１２ｃと中央値テーブル１２ｄとのそれぞれから読み出す（Ｓ２７）。上限値テーブル１２ｃから読み出した出力値ＯｕｔｙをＯｕ、中央値テーブル１２ｄから読み出した出力値ＯｕｔｙをＯｃとする。
【０１８８】
続いて、読み出した出力値Ｏｕ，Ｏｄを、（７）式に従って、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）の値に基づいた線形補間をして、輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを求める（Ｓ２８）。
【０１８９】
【数７】
2008129797.tif 000009
そして、求めた出力値Ｏｕｔｙを、（６）式に従ってＲＧＢ値に逆変換して出力値Ｏｕｔを生成し、生成元の輝度信号Ｙの座標（ｘ，ｙ）に対応させて出力画像メモリ１３ｉに書き込んで（Ｓ２９）、この出力値算出処理を終了する。
【０１９０】
一方、Ｓ２５の処理で確認した結果、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が１．３であれば（Ｓ２５：Ｙｅｓ）、輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを上限値テーブル１２ｃから読み出して（Ｓ３０）、その処理をＳ２９の処理に移行する。
【０１９１】
また、Ｓ２６の処理で確認した結果、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が０．８を超えていなければ（Ｓ２６：Ｎｏ）、正規化反射率ｒｅｆｌｅが０．８であるかを確認し（Ｓ３１）、正規化反射率ｒｅｆｌｅが０．８でなければ（Ｓ３１：Ｎｏ）、正規化反射率ｒｅｆｌｅは、０．８未満であるので、更に、０．３を超えているかを確認する（Ｓ３２）。つまり、このＳ３２の処理により、正規化反射率ｒｅｆｌｅが０．３を超え０．８未満の範囲にあるかが判断される。ここで、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が０．３を超えていれば（Ｓ３２：Ｙｅｓ）、輝度値メモリ１３ｆから読み出した輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを、下限値テーブル１２ｅと中央値テーブル１２ｄとのそれぞれから読み出す（Ｓ３３）。下限値テーブル１２ｅから読み出した出力値ＯｕｔｙをＯｄとする。次いで、読み出した出力値Ｏｃ，Ｏｄを、（８）式に従って、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）の値に基づいた線形補間をして、輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを求める（Ｓ３４）。その後、その処理をＳ２９の処理に移行する。
【０１９２】
【数８】
2008129797.tif 000010
更に、Ｓ３１の処理で確認した結果、正規化反射率ｒｅｆｌｅが０．８であれば（Ｓ３１：Ｙｅｓ）、輝度信号Ｙに対応する出力値Ｏｕｔｙを中央値テーブル１２ｄから読み出して（Ｓ３５）、Ｓ２９の処理に移行する。
【０１９３】
また、Ｓ３２の処理で確認した結果、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が、０．３を超えていなければ（Ｓ３２：Ｎｏ）、正規化反射率ｒｅｆｌｅは０．３であるので、輝度信号Ｙに対応する出力値Ｏｕｔｙを下限値テーブル１２ｅから読み出して（Ｓ３６）、Ｓ２９の処理に移行する。
【０１９４】
各テーブル１２ｃ〜１２ｅに記憶される出力値Ｏｕｔｙを生成する際に用いられた正規化反射率ｒｅｆｌｅは、１．３，０．８，０．３であるので、算出された正規化反射率ｒｅｆｌｅが１．３，０．８，０．３の場合には、線形補間演算を行う必要がない。Ｓ３０，Ｓ３５，Ｓ３６の処理は、算出された各画素の正規化反射率ｒｅｆｌｅが、１．３，０．８，０．３の場合にそれぞれ実行されるものであり、従って、線形補間演算を行うステップＳ２８，Ｓ３４を経由することなく、Ｓ２９の処理に移行するようになっている。このため、Ｓ３０，Ｓ３５，Ｓ３６を経由して実行されるＳ２９の処理では、各テーブル１２ｃ〜１２ｅから読み出された出力値Ｏｕｔｙそのものが、出力値Ｏｕｔに変換される。
【０１９５】
以上説明したように、プリンタ１は、ガンマ補正演算を含む（４）式で生成された出力値Ｏｕｔｙを「１２８」未満の輝度信号Ｙに対応して記憶すると共に、「１２８」以上の輝度信号Ｙに対しては、単調増加関数である一次関数を基本に生成された出力値Ｏｕｔｙを記憶する各テーブル１２ｃ〜１２ｅを備えており、かかるテーブル１２ｃ〜１２ｅから、注目画素の輝度信号Ｙと正規化反射率ｒｅｆｌｅとに基づいて、出力値Ｏｕｔｙを抽出し、その抽出した出力値ＯｕｔｙをＲＧＢ値に変換して出力値Ｏｕｔを生成する。
【０１９６】
ここで、下限値テーブル１２ｅでは、元画像の輝度信号Ｙ「２５５」に対する出力値Ｏｕｔｙは「２４０」とされており、変曲点（輝度信号Ｙ「１２８」）以降において、ガンマ補正演算にて求められる値よりも遥かに大きな値である「２４０」に向かって出力値Ｏｕｔｙが増大するように、下限値テーブル１２ｅは構成されている。一方で、上限値テーブル１２ｃでは、元画像の輝度信号Ｙ「２５５」に対する出力値Ｏｕｔｙは「２５５」とされ、また、変曲点（輝度信号Ｙ「１２８」）以降において「２５５」に向かって出力値Ｏｕｔｙが増大するように上限値テーブル１２ｃは構成されている。このため、明部においては（輝度信号Ｙが大きくなるほど）、出力値Ｏｕｔｙが取り得る分布範囲は、ガンマ補正演算を行う従来に比べて狭小な範囲に納めることができ、その結果、明部における過補正を大きく抑制することができる。故に、プリンタ１においては、元画像の暗部（輝度信号Ｙの小さい側、本実施形態においては「１２８」未満）における必要な輝度上昇（逆光補正）と、明部における過補正の抑制とを実現しつつ、更には、逆光補正も過補正の抑制も不要な中間領域においてはコントラスト強調を実現することができる。
【０１９７】
更に、テーブルデータを参照することによってガンマ補正演算を行うことなく、入力された元画像をレティネックス処理して出力画像を生成することができるので、画像処理を高速化することができる。その上、元画像が最も多く有する正規化反射率ｒｅｆｌｅの値にて形成されたテーブルデータ（中央値テーブル１２ｄ）を備えているので、テーブルデータを参照して作成される出力値Ｏｕｔを正確なものとすることができ、ガンマ補正演算によらずに出力画像を生成しても、画質を低下させることがない。
【０１９８】
次に、図９を参照して、本発明の第２実施形態について説明する。上記した第１実施形態のプリンタ１は、上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅを備え、入力された元画像について、その各画素の輝度信号Ｙと正規化反射率ｒｅｆｌｅとに基づき、各テーブル１２ｃ〜１２ｅから出力値Ｏｕｔｙを抽出して、出力値Ｏｕｔを生成するように構成された。つまり、プリンタ１の画像処理プログラム１２ａは、予め記憶されるテーブルデータから、出力値Ｏｕｔｙを生成するように構成された。
【０１９９】
これに代えて、第２実施形態では、元画像の各画素の輝度信号Ｙと正規化反射率ｒｅｆｌｅとから、ガンマ補正演算または一次関数による演算を行って出力値Ｏｕｔｙを生成するように画像処理プログラム１２ａが構成されている。このため、第１実施形態に設けらた上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅは非設とされている。尚、上記した第１実施形態と同じ部分には同じ符号を付し、その説明を省略する。
【０２００】
第２実施形態の画像処理プログラム１２ａは、図７と同様の補正処理が実行するように構成されているが、この図７の補正処理の中で実行される出力値算出処理（Ｓ１５）が、図９に示す出力値算出処理（Ｓ５１）に変更されている。
【０２０１】
図９は、図７の補正処理の中で実行される第２実施形態の出力値算出処理（Ｓ５１）のフローチャートである。尚、出力値算出処理（Ｓ５１）は、１の注目画素毎（１の輝度信号Ｙ毎）に実行されるように構成されており、輝度値メモリ１３ｆからは、出力値算出処理（Ｓ５１）の実行毎に、座標に従った順番で（先頭座標から最終座標へ向かうラスタ走査の順で）、輝度信号Ｙが読み出され、最終画素の輝度信号Ｙの処理が終了するまで、繰り返して実行される。
【０２０２】
この出力値算出処理（Ｓ５１）では、まず、第１実施形態の出力値算出処理（Ｓ１５）と同様に、Ｓ２１〜Ｓ２４の処理によって、輝度値メモリ１３ｆに記憶される輝度信号Ｙについて反射率（対数値Ｒ）の算出と、対数値Ｒの対数値メモリ１３ｇへの記憶と、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）の算出と、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）のｒｅｆｌｅ値メモリ１３ｈへの記憶とを行う。
【０２０３】
その後、読み出した輝度信号Ｙ（ｘ，ｙ）が１２８未満であるかを確認し（Ｓ５３）、１２８未満でなければ（Ｓ５３：Ｎｏ）、一次関数に従った出力値Ｏｕｔｙを算出する処理を、Ｓ５５以降の処理によって行う。Ｓ５５の処理では、ｒｅｆｌｅ値メモリ１３ｈへ記憶した正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が１．３であるかを確認する（Ｓ５５）。ここで、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が１．３でなければ（Ｓ５５：Ｎｏ）、正規化反射率ｒｅｆｌｅは、１．３未満であるので、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が０．８を超えているかを確認する（Ｓ５６）。つまり、このＳ５６の処理により、正規化反射率ｒｅｆｌｅが０．８を超え１．３未満の範囲にあるかが判断される。そして、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が０．８を超えている場合には（Ｓ５６：Ｙｅｓ）、輝度値メモリ１３ｆから読み出した輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを、上限値演算式と中央値演算式とのそれぞれから算出する（Ｓ５７）。上限値演算式にて算出した出力値ＯｕｔｙをＯｕ、中央値演算式から算出した出力値ＯｕｔｙをＯｃとする。
【０２０４】
尚、各演算式は、第１実施形態で用いられた演算式と同じであり、上限値演算式は、一次関数（ｙ＝０．６２ｘ＋９７．１４）であり、中央値演算式は、一次関数（ｙ＝０．７７ｘ＋５１．１３）である。また、下限値演算式は一次関数（ｙ＝１．０４ｘ−２５．３３）である。
【０２０５】
続いて、算出した出力値Ｏｕ，Ｏｄを、（７）式に従って、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）の値に基づいた線形補間をして、輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを求める（Ｓ５８）。
【０２０６】
そして、求めた出力値Ｏｕｔｙを、（６）式に従ってＲＧＢ値に逆変換して出力値Ｏｕｔを生成し、生成元の輝度信号Ｙの座標（ｘ，ｙ）に対応させて出力画像メモリ１３ｉに書き込んで（Ｓ５９）、この出力値算出処理（Ｓ５１）を終了する。
【０２０７】
また、Ｓ５３の処理で確認した結果、読み出した輝度信号Ｙ（ｘ，ｙ）が１２８未満であれば（Ｓ５３：Ｙｅｓ）、ガンマ補正演算処理を実行し（Ｓ５４）、輝度信号Ｙと正規化反射率ｒｅｆｌｅとに基づいて、ガンマ補正演算を含む（４）式にて出力値Ｏｕｔｙを算出し、その後、その処理をＳ５９の処理に移行する。
【０２０８】
一方、Ｓ５５の処理で確認した結果、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が１．３であれば（Ｓ５５：Ｙｅｓ）、輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを上限値演算式にて算出して（Ｓ６０）、その処理をＳ５９の処理に移行する。
【０２０９】
また、Ｓ５６の処理で確認した結果、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が０．８を超えていなければ（Ｓ５６：Ｎｏ）、正規化反射率ｒｅｆｌｅが０．８であるかを確認し（Ｓ６１）、正規化反射率ｒｅｆｌｅが０．８でなければ（Ｓ６１：Ｎｏ）、正規化反射率ｒｅｆｌｅは、０．８未満であるので、更に、０．３を超えているかを確認する（Ｓ６２）。つまり、このＳ６２の処理により、正規化反射率ｒｅｆｌｅが０．３を超え０．８未満の範囲にあるかが判断される。ここで、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が０．３を超えていれば（Ｓ６２：Ｙｅｓ）、輝度値メモリ１３ｆから読み出した輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを、下限値演算式と中央値演算式とのそれぞれから算出する（Ｓ６３）。ここで、下限値演算式にて算出した出力値ＯｕｔｙをＯｄとする。次いで、算出した出力値Ｏｃ，Ｏｄを、（８）式に従って、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）の値に基づいた線形補間をして、輝度信号Ｙ（ｘ，ｙ）に対応する出力値Ｏｕｔｙを求める（Ｓ６４）。その後、その処理をＳ５９の処理に移行する。
【０２１０】
更に、Ｓ６１の処理で確認した結果、正規化反射率ｒｅｆｌｅが０．８であれば（Ｓ６１：Ｙｅｓ）、輝度信号Ｙに対応する出力値Ｏｕｔｙを中央値演算式から算出して（Ｓ６５）、Ｓ５９の処理に移行する。
【０２１１】
また、Ｓ６２の処理で確認した結果、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が、０．３を超えていなければ（Ｓ６２：Ｎｏ）、正規化反射率ｒｅｆｌｅは０．３であるので、輝度信号Ｙに対応する出力値Ｏｕｔｙを下限値演算式にて算出して（Ｓ６６）、Ｓ５９の処理に移行する。
【０２１２】
各演算式は正規化反射率ｒｅｆｌｅが１．３，０．８，０．３のそれぞれに対応するものであるので、算出された正規化反射率ｒｅｆｌｅが１．３，０．８，０．３の場合には、線形補間演算を行う必要がない。Ｓ６０，Ｓ６５，Ｓ６６の処理は、算出された各画素の正規化反射率ｒｅｆｌｅが、１．３，０．８，０．３の場合にそれぞれ実行されるものであり、従って、線形補間演算を行うステップＳ５８，Ｓ６４を経由することなく、Ｓ５９の処理に移行するようになっている。このため、Ｓ６０、Ｓ６５、Ｓ６６を経由して実行されるＳ５９の処理では、各演算式にて算出されてた出力値Ｏｕｔｙそのものが、出力値Ｏｕｔに変換される。
【０２１３】
このように、第２実施形態によれば、輝度信号Ｙが１２８未満であるか否かを判定し、１２８未満であればガンマ補正演算に基づいて出力値Ｏｕｔｙを生成し、１２８以上であれば一次関数（上限値演算式、中央値演算式、下限値演算式）によって出力値Ｏｕｔｙを生成する。故に、予め出力値Ｏｕｔｙを記憶する各テーブル１２ｃ〜１２ｅが設けられていなくとも、ガンマ補正演算と一次関数演算とを組み合わせた演算によって、階調補正（逆光補正およびコントラスト強調）を行いつつその過補正（過度なコントラスト強調）については抑制することができる。
【０２１４】
次に、図１０と図１１とを参照して、本発明の第３実施形態について説明する。上記した第１実施形態における上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅは、輝度信号Ｙに対応つけて出力値Ｏｕｔｙを記憶すると共に、輝度信号Ｙが「１２８」未満では、各輝度信号Ｙに対応してガンマ補正演算に基づいて生成される出力値Ｏｕｔｙを記憶し、輝度信号Ｙが「１２８」以上では、各輝度信号Ｙに対応して一次関数に基づいて生成される出力値Ｏｕｔｙを記憶するように構成された。これに代えて、第３実施形態の上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅは、輝度信号Ｙに対応して、３次関数によって生成された出力値Ｏｕｔｙが記憶された構成とされている。尚、上記した第１実施形態と同じ部分には同じ符号を付し、その説明を省略する。
【０２１５】
また、第３実施形態においては、第１実施形態の上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅに代えて、図１０、図１１に示した各テーブル１２ｃ〜１２ｅを用いる以外は、第１実施形態と同様の画像処理プログラム１２ａによって、画像処理が実行される。
【０２１６】
図１０は、第３実施形態においてＲＯＭ１２に記憶されている上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅの構成を模式的に示した図である。図１１においては、上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅを一覧表の態様で示しており、「０」〜「２５５」の範囲において１ずつ更新された輝度信号Ｙと、その輝度信号の右方に、輝度信号Ｙに対応して３次関数にて導出された出力値Ｏｕｔｙが表示されている。出力値Ｏｕｔｙは、３つの表示欄に表示されており、かかる出力値Ｏｕｔｙの３つの表示欄は、左から順に、下限値テーブル１２ｅ、中央値テーブル１２ｄ、上限値テーブル１２ｃのそれぞれに記憶されるテーブルデータ（出力値Ｏｕｔｙ）が示されている。つまり、左から順に、正規化反射率ｒｅｆｌｅ０．３の場合に生成される出力値Ｏｕｔｙ、正規化反射率ｒｅｆｌｅ０．８の場合に生成される出力値Ｏｕｔｙ、正規化反射率ｒｅｆｌｅ１．３の場合に生成される出力値Ｏｕｔｙがそれぞれ示されている。かかる上限値テーブル１２ｃ、中央値テーブル１２ｄ、下限値テーブル１２ｅに記憶される出力値Ｏｕｔｙは、以下に示す（９）式に従って算出されている。
【０２１７】
【数９】
2008129797.tif 000011
（９）式において、Ｋは係数であり、輝度信号Ｙが「２５５」である場合に導出される出力値Ｏｕｔｙの値である。第３実施形態においては、この係数Ｋは、正規化反射率ｒｅｆｌｅが０．３の場合に「２４０」とされ、正規化反射率ｒｅｆｌｅが０．８の場合に「２５５」とされ、正規化反射率ｒｅｆｌｅが１．３の場合に「２７２」とされている。言い換えれば、係数Ｋを「２４０」とした（９）式に従って算出された出力値Ｏｕｔｙが下限値テーブル１２ｅに記憶されており、係数Ｋを「２５５」とした（９）式に従って算出された出力値Ｏｕｔｙが中央値テーブル１２ｄに記憶されており、係数Ｋを「２７２」とした（９）式に従って算出された出力値Ｏｕｔｙが上限値テーブル１２ｃに記憶されている。
【０２１８】
図１１は、図１０に示した第３実施形態の各テーブル１２ｃ〜１２ｅに記憶されるテーブルデータである輝度信号Ｙと出力値Ｏｕｔｙとの関係（輝度信号Ｙから出力値Ｏｕｔｙを求めるための関数）を示したグラフである。即ち、横軸を輝度信号Ｙとし、縦軸を出力値Ｏｕｔｙとすると共に、係数Ｋを２４０、２５５、２７２として（９）式にて生成される３次関数曲線を示したものである。
【０２１９】
これによれば、正規化反射率ｒｅｆｌｅが０．８の場合に輝度信号Ｙ「２５５」の画素は、出力値Ｏｕｔｙ「２５５」となるので、元画像中の最も明るい画素（白色画素）を出力画像においても最も明るい画素として生成することができる。ここで、元画像の大部分においては、注目画素と周辺画素とは同じ明るさであるので、正規化反射率ｒｅｆｌｅが０．８となっている。このため、元画像中の最も明るい画素（輝度信号Ｙ「２５５」）の多数について、出力値Ｏｕｔｙが「２５５」となるので、出力画像でもその輝度を維持することができることとなり、画像全体が暗くなることを的確に回避できる。
【０２２０】
図１１において二点鎖線で示した特性線（３次関数曲線）ｆ４は、上限値テーブル１２ｃに記憶される出力値Ｏｕｔｙを輝度信号Ｙから生成するための関数であって、上限値テーブル１２ｃのテーブルデータをグラフ化したものである。同様に、一点鎖線で示した特性線（３次関数曲線）ｆ５は、中央値テーブル１２ｄに記憶される出力値Ｏｕｔｙを輝度信号Ｙから生成するための関数であって、中央値テーブル１２ｄのテーブルデータをグラフ化したものである。破線で示した特性線（３次関数曲線）ｆ６は、下限値テーブル１２ｅに記憶される出力値Ｏｕｔｙを輝度信号Ｙから生成するための関数であって、下限値テーブル１２ｅのテーブルデータをグラフ化したものである。
【０２２１】
かかる特性線ｆ４〜ｆ６のそれぞれにおいて、輝度信号Ｙが「０」〜「２５５」の各値（整数値）である場合に特性線上で得られる各値が出力値Ｏｕｔｙである。そして、この得られる各出力値Ｏｕｔｙが「０」〜「２５５」の各値に対応つけられて、図１及び図１０に示した対応するテーブル１２ｃ〜１２ｅに記憶されているのである。
【０２２２】
第３実施形態においては、各テーブル１２ｃ〜１２ｅに記憶される出力値Ｏｕｔｙは、図１１に示した３次関数曲線に従って生成されているので、屈曲点（特性線の傾きが急激に変化する点）を持たない。その結果、輝度信号Ｙの変化に対してなだらかに出力値Ｏｕｔｙが変化し、輝度信号Ｙの変化に対して出力値Ｏｕｔｙが急激に変化するといった事態が発生することがない。また、輝度信号Ｙが小さい側においては、各特性線ｆ４〜ｆ６は、無変換直線（ｙ＝ｘ）を上回る値となっている。
【０２２３】
従って、かかる輝度信号Ｙが小さい領域においては、入力値である輝度信号Ｙを増大させた出力値Ｏｕｔｙが生成されるので、逆光補正（輝度上昇）を行うことができるようになっている。また、いずれの特性線ｆ４〜ｆ６においても、輝度信号Ｙが「１２８」において変曲点を有し、その変曲点以降では輝度信号Ｙが増大するにつれて、出力値Ｏｕｔｙは、最終値（最大値）に向かって緩やかに上昇している（単調増加関数による出力値Ｏｕｔｙの増大）。このため、明部側における過補正を十分に抑制することができる。
【０２２４】
このように、第３実施形態によれば、３次関数を用いることにより、必要な部分（輝度信号の小さい側）の逆光補正（輝度上昇）と、明部における過補正の抑制とを両立して行うことができる。その上、３次関数曲線は、屈曲点を持たずに変化するので、輝度信号Ｙの変化に対して、なだらかに出力値Ｏｕｔｙを変化させることができる。このため、かかる３次関数に輝度信号Ｙに基づいて出力値Ｏｕｔｙを生成した場合に、輝度信号Ｙの変化量に対して出力値Ｏｕｔｙが急激に変化してしまうといった事態を回避でき、画像全体にわたって不自然な階調変化が現出することを抑制できる。
【０２２５】
以上、上記各実施形態に基づいて本発明を説明したが、本発明は上記各実施形態に何ら限定されるものでなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０２２６】
例えば、上記各実施形態では、色表現系はＲＧＢ形式としたが、ＲＧＢ形式以外の他の色表現系、例えば、ＣＭＹ形式などに本発明を適用してもよい。また、画像処理プログラム１２ａは、正規化反射率ｒｅｆｌｅを算出し、この正規化反射率ｒｅｆｌｅにて、参照するテーブルを選定した。また、各テーブル１２ｃ〜１２ｅは、正規化反射率ｒｅｆｌｅをパラメータとして形成された。これに代えて、各テーブル１２ｃ〜１２ｅを対数値Ｒにて形成し、算出した対数値Ｒを用いて形成したテーブルを選定するようにしても良い。
【０２２７】
また、上記各実施形態では、本発明の画像処理プログラムは、プリンタ１に組み込まれたＣＰＵ１１により実行されるものとしたが、パーソナルコンピュータにアプリケーションとして供給され、パーソナルコンピュータに組み込まれたＣＰＵなどにより実行されるようにしてもよい。
【０２２８】
また、レティネックス処理は、ＳＳＲ（シングルスケール法）であってもＭＳＲ（マルチスケール法）であってもよい。
【０２２９】
また、上記各実施形態の画像処理では、ＣＰＵ１１によりレティネックス処理などを行うものとしたが、ＤＳＰ（Digital Signal Processor）により行ってもよい。ＤＳＰを用いると、より高速に積和演算などの処理を実行することができる。
【０２３０】
加えて、上記各実施形態では、演算された輝度信号および色信号は、ＲＡＭ１３（輝度値メモリ１３ｆ）に一時記憶するように構成しているが、記憶容量を削減したい場合には、これらを記憶せずに、必要な場合、元画像メモリから画素値（ＲＧＢ値）を読み出し、その都度、演算で求めてもよい。
【０２３１】
更に、反射率である対数値Ｒについて正規化を行う正規化範囲（クリップ範囲）は、ヒストグラム形成してそのメジアン値を基準に求めたが、このメジアン値に代えて、モード値や平均値を用いても良い。更には、反射光成分値にて注目画素が周辺画素と同じ明るさであることが示されているとは、注目画素の画素信号の値と注目画素周辺の周辺画素の平均輝度値とが完全同一のみならず、対数値Ｒに発生する小数点以下の端数を、例えば、切り捨て、切り上げ、四捨五入した値が０であることも含む概念である。また、注目画素の画素信号の値と注目画素周辺の周辺画素の平均輝度値とが同じ場合には、対数値Ｒは０となるが、例えば、ヒストグラム形成した場合の対数値Ｒのメジアン値、モード値、平均値は、必ずしも０とはならず、０から、ずれた値となる。このずれた値を網羅する範囲が、注目画素の画素信号の値と注目画素周辺の周辺画素の平均輝度値とが同じ（対数値Ｒ＝０とみなす、即ち同じ明るさ）であるとする領域としても良い。
【０２３２】
加えて、上記各実施形態においては、正規化反射率ｒｅｆｌｅが０．３である場合において、入力値である輝度信号Ｙが「２５５」であると、その出力値Ｏｕｔｙを「２４０」とするようにプリンタ１は構成されたが、かかる場合に、必ずしも輝度信号Ｙ「２５５」に対応する出力値Ｏｕｔｙは「２４０」とする必要はなく、出力可能な最も明るい輝度信号「２５５」近傍の値であれば良く、例えば、「２２４」〜「２５５」の任意の値とする事ができる。
【０２３３】
また、上記第１、第２実施形態においては、正規化反射率ｒｅｆｌｅが０．８である場合において、入力値である輝度信号Ｙが「２５５」であると、その出力値Ｏｕｔｙをそれぞれ「２４８」、「２５５」とするようにプリンタ１は構成されたが、これに代えて、出力可能な最も明るい輝度信号「２５５」近傍の値である「２４０」〜「２５５」の任意の値とすることができる。
【０２３４】
同様に、上記第１、第２実施形態においては、正規化反射率ｒｅｆｌｅが１．３である場合において、入力値である輝度信号Ｙが「２５５」であると、その出力値Ｏｕｔｙをそれぞれ「２５５」、「２７２」とするようにプリンタ１は構成されたが、これに代えて、出力可能な最も明るい輝度信号「２５５」近傍の値である「２５５」〜「２８０」の任意の値とすることができる。
【図面の簡単な説明】
【０２３５】
【図１】本発明の実施形態の画像処理プログラムを搭載したプリンタの電気的構成を示すブロック図である。
【図２】上限値テーブル、中央値テーブル、下限値テーブルの構成を模式的に示した図である。
【図３】図２に示した各テーブルに記憶されるテーブルデータである輝度信号Ｙと出力値Ｏｕｔｙとの関係をグラフで示した図である。
【図４】ガンマ補正演算と一次関数演算との切替点となる変曲点の設定範囲を説明する図である。
【図５】元画像データから求められる対数値Ｒと元画像との関係を説明する図である。
【図６】図５に示した画像を含む一般的な画像についての対数値Ｒのヒストグラムを示した図である。
【図７】プリンタにおいて、画像処理プログラムにより行われる補正処理を示すフローチャートである。
【図８】補正処理の中で実行される出力値算出処理のフローチャートである。
【図９】第２実施形態の補正処理の中で実行される出力値算出処理のフローチャートである。
【図１０】第３実施形態においてＲＯＭに記憶されている上限値テーブル、中央値テーブル、下限値テーブルの構成を模式的に示した図である。
【図１１】図１０に示した第３実施形態の各テーブルに記憶されるテーブルデータである輝度信号Ｙと出力値Ｏｕｔｙとの関係をグラフで示した図である。
【図１２】従来のレティネックス処理を説明する図である。
【図１３】従来のレティネックス処理における入力画像データと（４）式に従って入力画像データから生成される出力画像データとの関係を示した図である。
【符号の説明】
【０２３６】
１                        プリンタ（画像処理装置）
２                        パーソナルコンピュータ
１１                      ＣＰＵ
１２ａ                    画像処理プログラム
Ｓ２１，Ｓ２３            反射光成分算出ステップ、反射光成分算出手段
Ｓ２７〜Ｓ３６，Ｓ５３〜Ｓ６４            画素信号生成ステップ、画素信号生成手段
Ｓ３３，Ｓ３４，Ｓ３６，Ｓ５４，Ｓ６３，Ｓ６４，Ｓ６６  第１複合生成ステップ、第１複合生成手段
Ｓ３５，Ｓ５４，Ｓ６５            第２複合生成ステップ、第２複合生成手段
Ｓ２７，Ｓ２８，Ｓ３０，Ｓ５４，Ｓ５７，Ｓ５８，Ｓ６０  第３複合生成ステップ、第３複合生成手段
【図１】
2008129797.tif 000012
【図２】
2008129797.tif 000013
【図３】
2008129797.tif 000014
【図４】
2008129797.tif 000015
【図５】
2008129797.tif 000016
【図６】
2008129797.tif 000017
【図７】
2008129797.tif 000018
【図８】
2008129797.tif 000019
【図９】
2008129797.tif 000020
【図１０】
2008129797.tif 000021
【図１１】
2008129797.tif 000022
【図１２】
2008129797.tif 000023
【図１３】
2008129797.tif 000024