(57)【要約】【課題】レティネックス処理を高速且つ高精度に行うことができ、メモリ使用量を節約できる画像処理装置および画像処理プログラムを提供すること。【解決手段】縮小画像用マスクＦｓの参照ポイントの配置を定める関数ｒ＝ｆ（θ）と、元画像用マスクＦの参照ポイントを定める関数ｒ＝ｇ（θ）とは、ｇ（θ）＝ＢＲ・ｆ（θ）の関係を満たすので、縮小画像用マスクＦｓの参照ポイントの配置と、元画像用マスクＦの参照ポイントの配置とが近似する。よって、縮小画像からでも適切なクリップ範囲を得ることができ、高精度のレティネックス処理を行うことができる。【選択図】図８
2008118208.tif 000002
【特許請求の範囲】
【請求項１】
画像の補正処理を行う画像処理装置により実行される画像処理プログラムにおいて、
元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値を求め、その周辺平均値と縮小画像の各画素の値とから反射率を求める縮小画像反射率取得ステップと、
その縮小画像反射率取得ステップにより求められた反射率が取る値の全範囲における各値の頻度を集計し、正規化を行う際のパラメータ値を設定する正規化パラメータ設定ステップと、
元画像の各画素について、元画像用フィルタを用いて周辺平均値を求め、その周辺平均値と元画像の画素値とから反射率を求める元画像反射率取得ステップと、
その元画像反射率取得ステップにより取得した反射率を前記正規化パラメータ設定ステップにより設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正ステップとを備え、
縮小画像用フィルタおよび元画像用フィルタは、それぞれ周辺平均値の演算範囲に対応する所定サイズの領域を有し、且つ、その所定サイズの領域内に定められた参照ポイントと、その参照ポイントに対応付けられたフィルタ係数とを有するものであって、
縮小画像用フィルタの参照ポイントの配置および元画像用フィルタの参照ポイントの配置は、同一の関数に基づいて定まるものであることを特徴とする画像処理プログラム。
【請求項２】
画像の補正処理を行う画像処理装置により実行される画像処理プログラムにおいて、
元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値を求め、その周辺平均値と縮小画像の各画素の値とから反射率を求める縮小画像反射率取得ステップと、
その縮小画像反射率取得ステップにより求められた反射率が取る値の全範囲における各値の頻度を集計し、正規化を行う際のパラメータ値を設定する正規化パラメータ設定ステップと、
元画像の各画素について、元画像用フィルタを用いて周辺平均値を求め、その周辺平均値と元画像の画素値とから反射率を求める元画像反射率取得ステップと、
その元画像反射率取得ステップにより取得した反射率を前記正規化パラメータ設定ステップにより設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正ステップとを備え、
縮小画像用フィルタおよび元画像用フィルタは、それぞれ周辺平均値の演算範囲に対応する所定サイズの領域を有し、且つ、その所定サイズの領域内に定められた参照ポイントと、その参照ポイントに対応付けられたフィルタ係数とを有するものであって、
縮小画像用フィルタの参照ポイントの配置は、縮小画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｆ（θ）に基づいて定まるものであり、
元画像用フィルタの参照ポイントの配置は、元画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｇ（θ）に基づいて定まるものであり、
関数ｒ＝ｆ（θ）と関数ｒ＝ｇ（θ）とは、その関数に含まれる定数のみが異なる関係にあることを特徴とする画像処理プログラム。
【請求項３】
元画像用フィルタが定める領域の一辺の長さが縮小画像用フィルタが定める領域の一辺の長さのＢＲ倍であるとき、ｇ（θ）＝ＢＲ・ｆ（θ）の関係を満たすことを特徴とする請求項２記載の画像処理プログラム。
【請求項４】
前記縮小画像用フィルタのサイズに基づいて、元画像用フィルタのサイズを決定し、元画像用フィルタを生成する元画像用フィルタ生成ステップを備えることを特徴とする請求項３記載の画像処理プログラム。
【請求項５】
前記元画像用フィルタのサイズに基づいて、縮小画像用フィルタのサイズを決定し、縮小画像用フィルタを生成する縮小画像用フィルタ生成ステップを備えることを特徴とする請求項３記載の画像処理プログラム。
【請求項６】
縮小画像のサイズに対する縮小画像用フィルタのサイズの比は、元画像のサイズに対する元画像用フィルタのサイズの比と略同一であることを特徴とする請求項１から５のいずれかに記載の画像処理プログラム。
【請求項７】
前記関数は、螺旋関数であることを特徴とする請求項１から６のいずれかに記載の画像処理プログラム。
【請求項８】
前記螺旋関数は、対数螺旋関数であることを特徴とする請求項７記載の画像処理プログラム。
【請求項９】
前記螺旋関数は、アルキメデスの渦巻き関数であることを特徴とする請求項７記載の画像処理プログラム。
【請求項１０】
前記関数は、正葉曲線関数であることを特徴とする請求項１から６のいずれかに記載の画像処理プログラム。
【請求項１１】
画像の補正処理を行う画像処理装置において、
元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値を求め、その周辺平均値と縮小画像の各画素の値とから反射率を求める縮小画像反射率取得手段と、
その縮小画像反射率取得手段により求められた反射率が取る値の全範囲における各値の頻度を集計し、正規化を行う際のパラメータ値を設定する正規化パラメータ設定手段と、
元画像の各画素について、元画像用フィルタを用いて周辺平均値を求め、その周辺平均値と元画像の画素値とから反射率を求める元画像反射率取得手段と、
その元画像反射率取得手段により取得した反射率を前記正規化パラメータ設定手段により設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正手段とを備え、
縮小画像用フィルタおよび元画像用フィルタは、それぞれ周辺平均値の演算範囲に対応する所定サイズの領域を有し、且つ、その所定サイズの領域内に定められた参照ポイントと、その参照ポイントに対応付けられたフィルタ係数とを有するものであって、
縮小画像用フィルタの参照ポイントの配置および元画像用フィルタの参照ポイントの配置は、同一の関数に基づいて定まるものであることを特徴とする画像処理装置。
【請求項１２】
画像の補正処理を行う画像処理装置において、
元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値を求め、その周辺平均値と縮小画像の各画素の値とから反射率を求める縮小画像反射率取得手段と、
その縮小画像反射率取得手段により求められた反射率が取る値の全範囲における各値の頻度を集計し、正規化を行う際のパラメータ値を設定する正規化パラメータ設定手段と、
元画像の各画素について、元画像用フィルタを用いて周辺平均値を求め、その周辺平均値と元画像の画素値とから反射率を求める元画像反射率取得手段と、
その元画像反射率取得手段により取得した反射率を前記正規化パラメータ設定手段により設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正手段とを備え、
縮小画像用フィルタおよび元画像用フィルタは、それぞれ周辺平均値の演算範囲に対応する所定サイズの領域を有し、且つ、その所定サイズの領域内に定められた参照ポイントと、その参照ポイントに対応付けられたフィルタ係数とを有するものであって、
縮小画像用フィルタの参照ポイントの配置は、縮小画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｆ（θ）に基づいて定まるものであり、
元画像用フィルタの参照ポイントの配置は、元画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｇ（θ）に基づいて定まるものであり、
関数ｒ＝ｆ（θ）と関数ｒ＝ｇ（θ）とは、その関数に含まれる定数のみが異なる関係にあることを特徴とする画像処理装置。
【請求項１３】
元画像用フィルタが定める領域の一辺の長さが縮小画像用フィルタが定める領域の一辺の長さのＢＲ倍であるとき、ｇ（θ）＝ＢＲ・ｆ（θ）の関係を満たすことを特徴とする請求項１２記載の画像処理装置。
【請求項１４】
前記縮小画像用フィルタのサイズに基づいて、元画像用フィルタのサイズを決定し、元画像用フィルタを生成する元画像用フィルタ生成手段を備えることを特徴とする請求項１３記載の画像処理装置。
【請求項１５】
前記元画像用フィルタのサイズに基づいて、縮小画像用フィルタのサイズを決定し、縮小画像用フィルタを生成する縮小画像用フィルタ生成手段を備えることを特徴とする請求項１３記載の画像処理装置。
【請求項１６】
縮小画像のサイズに対する縮小画像用フィルタのサイズの比は、元画像のサイズに対する元画像用フィルタのサイズの比と略同一であることを特徴とする請求項１１から１５のいずれかに記載の画像処理装置。
【請求項１７】
前記関数は、螺旋関数であることを特徴とする請求項１１から１６のいずれかに記載の画像処理装置。
【請求項１８】
前記螺旋関数は、対数螺旋関数であることを特徴とする請求項１７記載の画像処理装置。
【請求項１９】
前記螺旋関数は、アルキメデスの渦巻き関数であることを特徴とする請求項１７記載の画像処理装置。
【請求項２０】
前記関数は、正葉曲線関数であることを特徴とする請求項１１から１６のいずれかに記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラムおよび画像処理装置に関し、特にレティネックス処理を高速且つ高精度に行うことができ、メモリ使用量を節約できる画像処理プログラムおよび画像処理装置に関するものである。
【背景技術】
【０００２】
逆光条件下で被写体が撮像された場合、被写体部分の画像は、詳細な態様が判別困難となるほど明度やコントラストの低い不明瞭な逆光画像となる。かかる逆光画像のみならず、露光の過不足や、撮像時のぶれやぼけ、ノイズ、光量不足などによる劣悪な画像を、画像処理によって明度やコントラストを向上させて画質を改良することが行われている。かかる画像処理の１手法として、レティネックス処理（Ｒｅｔｉｎｅｘ処理）が知られている。
【０００３】
レティネックス処理は、高画質部分については元画像データを保持し、主に低画質部分の画質改良を行うものである。このレティネックス処理では、ガウスフィルタにより、元の画像の各画素データを周辺画素の画素データを反映させた値に補正し、その補正された画素データの自然対数から元の画像の反射率（リフレクタンス）成分データを算出し、元画像の画素成分で元の画像の画素データを除してイルミナンス成分データを算出する。つまり、元の画像を、反射率成分とイルミナンス成分との２の構成成分に分けるのである。そして、イルミナンス成分に対してガンマ補正等の明度や階調（コントラスト）を補正する処理を行った後、その補正されたイルミナンス成分と、反射率成分とを合成することにより、元の画像に対し逆光画像部分などの低画質部分の画質が改良された画像データを生成することができる。反射率成分を求めるには、反射率Ｒ（ｘ，ｙ）の正規化を行う。反射率Ｒ（ｘ，ｙ）は、次式により算出される。
【０００４】
【数１】
2008118208.tif 000003
ここで、ｘは、横方向の座標を、ｙは、縦方向の座標を、Ｉ（ｘ，ｙ）は、座標（ｘ，ｙ）における強度値を、Ｆ（ｘ，ｙ）は、座標（ｘ，ｙ）のフィルタ係数を、＊は、畳み込み演算（コンボリューション）をそれぞれ示し、この畳み込み演算により周辺平均輝度（周辺平均値）が求められる。ここで、ｌｏｇは、ｅを底とする自然対数である。畳み込み演算では、マスクを構成する複数のフィルタ係数と画像を構成する画素値とが乗算され、その積が累算される。なお、この畳み込み演算には多大な時間を要するので、フィルタ係数を間引き、演算数を減らすことが行われている。
【０００５】
図１３（ａ）は、マスクＭと画像Ｇとを模式的に示す図であり、マスクＭの各要素内に記載した数値が、その要素のフィルタ係数である。マスクＭは、９×９の要素により構成され、このマスクＭの中央の要素が、画像Ｇの注目画素に対応してフィルタ処理が行われる。この図１３（ａ）に示すマスクＭは、９×９＝８１個の要素を有するので、フィルタ処理においては、それぞれの要素が対応する画素の値と乗算され、その積が累算されることによって畳み込み演算が行われる。
【０００６】
図１３（ｂ）は、図１３（ａ）に示すマスクＭの、最外側の周囲の要素と、一列飛ばした内側の一周のフィルタ係数を間引いたマスクＭを示す。なお、フィルタ係数がある要素（すなわちフィルタ係数が間引かれていない要素）を参照ポイントと称する。このようにして、参照ポイントの個数を減らすことにより、畳み込み演算の演算数が減るので、フィルタ係数を高速に行うことができる。
【０００７】
このようにして求められた反射率Ｒ（ｘ，ｙ）を正規化することにより、反射率成分が得られる。図１４を参照して、反射率Ｒ（ｘ，ｙ）の正規化について説明する。
【０００８】
図１４は、ある静止画像について、上式により求められた反射率Ｒ（ｘ，ｙ）の最小値を０、最大値を２５５とする０から２５５の範囲の整数値に正規化し、各整数の出現頻度を集計したヒストグラムである。
【０００９】
このヒストグラムからメディアン値Ｍを求め、メディアン値から大きい側へ４５％の画素数を含む範囲の上限値をＵ、メディアン値から小さい側へ４５％の画素数を含む範囲の下限値をＤとする。
【００１０】
ＵおよびＤの値に対応するＲ（ｘ，ｙ）の値を、ＵｐＲ、ＤｏｗｎＲとし、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）は、Ｒ（ｘ，ｙ）の値がＤｏｗｎＲ以下の場合は、０．０とし、Ｒ（ｘ，ｙ）の値がＵｐＲ以上の場合は、１．０とし、Ｒ（ｘ，ｙ）の値がＤｏｗｎＲより大きくＵｐＲより小さい場合は、
【００１１】
【数２】
2008118208.tif 000004
とする。
【００１２】
このようにしてｒｅｆｌｅ（ｘ，ｙ）が求められるので、クリップされる範囲（ＵｐＲとＤｏｗｎＲとの間）を求めるため、Ｒ（ｘ，ｙ）を全画素分記憶しなければならない。尚かつ、Ｒ（ｘ，ｙ）は、対数演算により求まる数値であるので、小数点を用いて記録する必要があり、膨大な記憶容量が必要である。
【００１３】
特開２００１−６９５２５号公報（特許文献１）には、このレティネックス処理をＲＧＢの各プレーンで独立に行った場合に、カラーバランスが崩れたり色ずれが発生するという問題点を解決するために、ＲＧＢ値をＹＣｂＣｒやＹＩＱという輝度成分と色成分により構成される座標空間に変換し、輝度成分Ｙに対してのみレティネックス処理を施し、色成分を維持したまま、ＲＧＢに戻すという方法が開示されている。この方法を用いると輝度成分のみが調整され、色成分は調整されないのでカラーバランスが崩れたり色ずれが発生することがない。また、この方法では、輝度成分のみにレティネックス処理を行うので、ＲＧＢの各プレーンそれぞれにレティネックス処理を行う場合に比べ、計算量が少なく、高速で処理を実行することができとともに、Ｒ（ｘ，ｙ）を正規化するために、ＲＧＢそれぞれについて記憶する必要がなく、輝度のみについて記憶すればよいので、必要な記憶容量は少なくなる。
【００１４】
また、特許３７３１５７７号（特許文献２）には、このレティネックス処理の処理速度を高速にする方法が開示されている。この方法は、元画像を平均画素法などの方法により縮小画像（解像度が低い）を形成し、その縮小画像の各画素について周辺平均輝度を求めた周辺平均輝度画像（ボケ画像）を形成し、そのボケ画像を拡大した画像と元画像からレティネックス処理画像を形成し、更に、そのレティネックス処理画像と元画像とから出力画像を形成している。
【特許文献１】特開２００１−６９５２５号公報
【特許文献２】特許３７３１５７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、従来の文献に開示された処理では、元画像の全画素について、それぞれ反射率を演算して記憶し、全画素分の反射率を得た後に、その反射率を集計して正規化パラメータを決定していたから、全画素分の反射率を記憶するための膨大なメモリ容量が必要という問題点があった。また、従来の処理では、全画素分の反射率を演算してから正規化パラメータを決定し、その後、反射率を正規化して得られるレティネックス値によって画素値を補正し出力していたから、処理を開始してから画素値の出力開始までの時間が長いという問題点もあった。
【００１６】
本発明は、上記問題点を解決するためになされたものであり、レティネックス処理を高速且つ高精度に行うことができ、メモリ使用量を節約することができる画像処理プログラムおよび画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【００１７】
本発明者は、上記問題点を解決するために鋭意検討した結果、元画像の反射率を演算するのに先立って、縮小画像の反射率を取得し、その縮小画像の反射率を用いて正規化パラメータを決定することを想到した。正規化パラメータを求めるために、縮小画像を用いた方が、反射率を演算すべき画素の数を低減することができるので、メモリ使用量を小さくすることができる。また、正規化パラメータを事前に決定しておくことにより、元画像について演算された反射率は、他の画素の反射率の演算終了を待たずに、正規化して直ぐに出力することができるので、画像の出力開始までの時間が短縮し、処理を高速化することができる。
【００１８】
このように、縮小画像から正規化パラメータを導出することにより処理を高速化する場合、縮小画像から得られる正規化パラメータと、元画像から得られる正規化パラメータの差が大きいと画質が劣化するおそれがあるため、これらの値の差は小さいことが望ましい。
【００１９】
本発明者は、さらに検討を重ねた結果、縮小画像用マスクにおける参照ポイントの配置と、元画像用マスクにおける参照ポイントの配置とを近似させることにより、縮小画像からでも、好適な正規化パラメータが導出できることを知見した。本発明は、以上の知見に基づいてなされたものである。
【００２０】
上記目的を達成するために、請求項１記載の画像処理プログラムは、画像の補正処理を行う画像処理装置により実行されるものであって、元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値を求め、その周辺平均値と縮小画像の各画素の値とから反射率を求める縮小画像反射率取得ステップと、その縮小画像反射率取得ステップにより求められた反射率が取る値の全範囲における各値の頻度を集計し、正規化を行う際のパラメータ値を設定する正規化パラメータ設定ステップと、元画像の各画素について、元画像用フィルタを用いて周辺平均値を求め、その周辺平均値と元画像の画素値とから反射率を求める元画像反射率取得ステップと、その元画像反射率取得ステップにより取得した反射率を前記正規化パラメータ設定ステップにより設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正ステップとを備え、縮小画像用フィルタおよび元画像用フィルタは、それぞれ周辺平均値の演算範囲に対応する所定サイズの領域を有し、且つ、その所定サイズの領域内に定められた参照ポイントと、その参照ポイントに対応付けられたフィルタ係数とを有するものであって、縮小画像用フィルタの参照ポイントおよび元画像用フィルタの参照ポイントは、同一の関数に基づいて定まるものであることを特徴とする。
【００２１】
なお、特許請求の範囲および明細書でいう「同一の関数に基づいて定まる」とは、縮小画像用フィルタの参照ポイントの配置と、元画像用フィルタの参照ポイントの配置とが、同一の関数から定まり得る関係にあることを意味するものであり、実際に関数を用いて参照ポイントの配置を定める場合に限定するものではない。例えば、縮小画像用フィルタの参照ポイント及び元画像用フィルタの参照ポイントのうち、いずれか一方の参照ポイントの配置が予め定められており、他方の参照ポイントのみが、関数から定められる場合も含む。また、縮小画像用フィルタの参照ポイント及び元画像用フィルタの参照ポイントが共に予め定められているが、その定められている配置が、同一の関数から定まり得る関係にある場合も含む。
【００２２】
請求項２記載の画像処理プログラムは、画像の補正処理を行う画像処理装置により実行されるものであって、元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値を求め、その周辺平均値と縮小画像の各画素の値とから反射率を求める縮小画像反射率取得ステップと、その縮小画像反射率取得ステップにより求められた反射率が取る値の全範囲における各値の頻度を集計し、正規化を行う際のパラメータ値を設定する正規化パラメータ設定ステップと、元画像の各画素について、元画像用フィルタを用いて周辺平均値を求め、その周辺平均値と元画像の画素値とから反射率を求める元画像反射率取得ステップと、その元画像反射率取得ステップにより取得した反射率を前記正規化パラメータ設定ステップにより設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正ステップとを備え、縮小画像用フィルタおよび元画像用フィルタは、それぞれ周辺平均値の演算範囲に対応する所定サイズの領域を有し、且つ、その所定サイズの領域内に定められた参照ポイントと、その参照ポイントに対応付けられたフィルタ係数とを有するものであって、縮小画像用フィルタの参照ポイントの配置は、縮小画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｆ（θ）に基づいて定まるものであり、元画像用フィルタの参照ポイントの配置は、元画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｇ（θ）に基づいて定まるものであり、関数ｒ＝ｆ（θ）と関数ｒ＝ｇ（θ）とは、その関数に含まれる定数のみが異なる関係にあることを特徴とする。
【００２３】
なお、特許請求の範囲および明細書でいう、「縮小画像用フィルタの参照ポイントの配置は、縮小画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｆ（θ）に基づいて定まるものであり」、とは、仮に、縮小画像用フィルタの所定位置を原点として座標系を設定した場合に、縮小画像用フィルタの参照ポイントの配置が、関数ｒ＝ｆ（θ）に基づいて定まり得る関係にあることを意味しており、実際に座標系を設定し、参照ポイントの配置の演算に関数ｒ＝ｆ（θ）を用いることに限定するものではない。例えば、縮小画像用フィルタの参照ポイントの配置が予め定められており、その予め定められている配置が、関数ｒ＝ｆ（θ）から定まり得る関係にある場合も含む。
【００２４】
また、「元画像用フィルタの参照ポイントの配置は、元画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｇ（θ）に基づいて定まるものであり、」も同様に、仮に、元画像用フィルタの所定位置を原点として座標系を設定した場合、元画像用フィルタの参照ポイントの配置が、関数ｒ＝ｇ（θ）に基づいて定まり得る関係にあることを意味しており、実際に座標系を設定し、参照ポイントの配置の演算に関数ｒ＝ｇ（θ）を用いることに限定するものではない。
【００２５】
請求項３記載の画像処理プログラムは、請求項２記載の画像処理プログラムにおいて、元画像用フィルタが定める領域の一辺の長さが縮小画像用フィルタが定める領域の一辺の長さのＢＲ倍であるとき、ｇ（θ）＝ＢＲ・ｆ（θ）の関係を満たすことを特徴とする。
【００２６】
請求項４記載の画像処理プログラムは、請求項３記載の画像処理プログラムにおいて、前記縮小画像用フィルタのサイズに基づいて、元画像用フィルタのサイズを決定し、元画像用フィルタを生成する元画像用フィルタ生成ステップを備える。
【００２７】
請求項５記載の画像処理プログラムは、請求項３記載の画像処理プログラムにおいて、前記元画像用フィルタのサイズに基づいて、縮小画像用フィルタのサイズを決定し、縮小画像用フィルタを生成する縮小画像用フィルタ生成ステップを備えることを特徴とする。
【００２８】
請求項６記載の画像処理プログラムは、請求項１から５のいずれかに記載の画像処理プログラムにおいて、縮小画像のサイズに対する縮小画像用フィルタのサイズの比は、元画像のサイズに対する元画像用フィルタのサイズの比と略同一であることを特徴とする。
【００２９】
請求項７記載の画像処理プログラムは、請求項１から６のいずれかに記載の画像処理プログラムにおいて、前記関数は、螺旋関数であることを特徴とする。
【００３０】
請求項８記載の画像処理プログラムは、請求項７記載の画像処理プログラムにおいて、前記螺旋関数は、対数螺旋関数であることを特徴とする。
【００３１】
請求項９記載の画像処理プログラムは、請求項７記載の画像処理プログラムにおいて、前記螺旋関数は、アルキメデスの渦巻き関数であることを特徴とする。
【００３２】
請求項１０記載の画像処理プログラムは、請求項１から６のいずれかに記載の画像処理プログラムにおいて、前記関数は、正葉曲線関数であることを特徴とする。
【００３３】
請求項１１記載の画像処理装置は、画像の補正処理を行うものであって、元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値を求め、その周辺平均値と縮小画像の各画素の値とから反射率を求める縮小画像反射率取得手段と、その縮小画像反射率取得手段により求められた反射率が取る値の全範囲における各値の頻度を集計し、正規化を行う際のパラメータ値を設定する正規化パラメータ設定手段と、元画像の各画素について、元画像用フィルタを用いて周辺平均値を求め、その周辺平均値と元画像の画素値とから反射率を求める元画像反射率取得手段と、その元画像反射率取得手段により取得した反射率を前記正規化パラメータ設定手段により設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正手段とを備え、縮小画像用フィルタおよび元画像用フィルタは、それぞれ周辺平均値の演算範囲に対応する所定サイズの領域を有し、且つ、その所定サイズの領域内に定められた参照ポイントと、その参照ポイントに対応付けられたフィルタ係数とを有するものであって、縮小画像用フィルタの参照ポイントの配置および元画像用フィルタの参照ポイントの配置は、同一の関数に基づいて定まるものである。
【００３４】
請求項１２記載の画像処理装置は、画像の補正処理を行うものであって、元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値を求め、その周辺平均値と縮小画像の各画素の値とから反射率を求める縮小画像反射率取得手段と、その縮小画像反射率取得手段により求められた反射率が取る値の全範囲における各値の頻度を集計し、正規化を行う際のパラメータ値を設定する正規化パラメータ設定手段と、元画像の各画素について、元画像用フィルタを用いて周辺平均値を求め、その周辺平均値と元画像の画素値とから反射率を求める元画像反射率取得手段と、その元画像反射率取得手段により取得した反射率を前記正規化パラメータ設定手段により設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正手段とを備え、縮小画像用フィルタおよび元画像用フィルタは、それぞれ周辺平均値の演算範囲に対応する所定サイズの領域を有し、且つ、その所定サイズの領域内に定められた参照ポイントと、その参照ポイントに対応付けられたフィルタ係数とを有するものであって、縮小画像用フィルタの参照ポイントの配置は、縮小画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｆ（θ）に基づいて定まるものであり、元画像用フィルタの参照ポイントの配置は、元画像用フィルタの所定位置を原点として設定される座標系において、関数ｒ＝ｇ（θ）に基づいて定まるものであり、関数ｒ＝ｆ（θ）と関数ｒ＝ｇ（θ）とは、その関数に含まれる定数のみが異なる関係にあることを特徴とする。
【００３５】
請求項１３記載の画像処理装置は、請求項１２記載の画像処理装置において、元画像用フィルタが定める領域の一辺の長さが縮小画像用フィルタが定める領域の一辺の長さのＢＲ倍であるとき、ｇ（θ）＝ＢＲ・ｆ（θ）の関係を満たすことを特徴とする。
【００３６】
請求項１４記載の画像処理装置は、請求項１３記載の画像処理装置において、前記縮小画像用フィルタのサイズに基づいて、元画像用フィルタのサイズを決定し、元画像用フィルタを生成する元画像用フィルタ生成手段を備えることを特徴とする。
【００３７】
請求項１５記載の画像処理装置は、請求項１３記載の画像処理装置において、前記元画像用フィルタのサイズに基づいて、縮小画像用フィルタのサイズを決定し、縮小画像用フィルタを生成する縮小画像用フィルタ生成手段を備えることを特徴とする。
【００３８】
請求項１６記載の画像処理装置は、請求項１１から１５のいずれかに記載の画像処理装置において、縮小画像のサイズに対する縮小画像用フィルタのサイズの比は、元画像のサイズに対する元画像用フィルタのサイズの比と略同一であることを特徴とする。
【００３９】
請求項１７記載の画像処理装置は、請求項１１から１６のいずれかに記載の画像処理装置において、前記関数は、螺旋関数であることを特徴とする。
【００４０】
請求項１８記載の画像処理装置は、請求項１７記載の画像処理装置において、前記螺旋関数は、対数螺旋関数であることを特徴とする。
【００４１】
請求項１９記載の画像処理装置は、請求項１７記載の画像処理装置において、前記螺旋関数は、アルキメデスの渦巻き関数であることを特徴とする。
【００４２】
請求項２０記載の画像処理装置は、請求項１１から１６のいずれかに記載の画像処理装置において、前記関数は、正葉曲線関数であることを特徴とする。
【発明の効果】
【００４３】
請求項１記載の画像処理プログラムによれば、縮小画像反射率取得ステップにより、元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値が求められ、その周辺平均値と縮小画像の各画素の値とから反射率が求められる。そして、正規化パラメータ設定ステップにより、反射率が取る値の全範囲における各値の頻度が集計され、正規化を行う際のパラメータ値が設定される。そして、元画像反射率取得ステップにより、元画像の各画素について、元画像用フィルタを用いて周辺平均値が求められ、その周辺平均値と元画像の画素値とから反射率が求められる。そして、補正ステップにより、設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求められ、その正規化レティネックス値と、元画像の画素値とに基づいて補正が行われるので、正規化パラメータを求める際の演算数が少なく、処理を高速で行うことができると共に、メモリ使用量を節約できるという効果がある。
【００４４】
また、縮小画像用フィルタの参照ポイントの配置および元画像用フィルタの参照ポイントの配置は、同一の関数に基づいて定まるものであるので、縮小画像用フィルタにおける参照ポイントの配置と、元画像用フィルタにおける参照ポイントの配置とを近似させることができる。よって、縮小画像から得られるパラメータ値と、元画像から得られるパラメータ値とが近似したものとなり、縮小画像から得られたパラメータ値を用いた場合であっても、高精度のレティネックス処理を行うことができるという効果がある。
【００４５】
請求項２記載の画像処理プログラムによれば、縮小画像反射率取得ステップにより、元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値が求められ、その周辺平均値と縮小画像の各画素の値とから反射率が求められる。そして、正規化パラメータ設定ステップにより、反射率が取る値の全範囲における各値の頻度が集計され、正規化を行う際のパラメータ値が設定される。そして、元画像反射率取得ステップにより、元画像の各画素について、元画像用フィルタを用いて周辺平均値が求められ、その周辺平均値と元画像の画素値とから反射率が求められる。そして、補正ステップにより、設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求められ、その正規化レティネックス値と、元画像の画素値とに基づいて補正が行われるので、正規化パラメータを求める際の演算数が少なく、レティネックス処理を高速で行うことができると共に、メモリ使用量を節約できるという効果がある。
【００４６】
また、縮小画像用マスクの参照ポイントの配置を定める関数ｒ＝ｆ（θ）と、元画像用マスクの参照ポイントの配置を定める関数ｒ＝ｇ（θ）とは、その関数に含まれる定数のみが異なる関係にあるので、縮小画像用フィルタにおける参照ポイントの配置と、元画像用フィルタにおける参照ポイントの配置とを近似させることができる。よって、縮小画像から得られるパラメータ値と、元画像から得られるパラメータ値とが近似したものとなり、縮小画像から得られたパラメータ値を用いた場合であっても、レティネックス処理を高精度に行うことができるという効果がある。
【００４７】
請求項３記載の画像処理プログラムによれば、請求項２記載の画像処理プログラムの奏する効果に加え、元画像用フィルタが定める領域の一辺の長さが縮小画像用フィルタの定める領域の一辺の長さのＢＲ倍であるとき、ｇ（θ）＝ＢＲ・ｆ（θ）の関係を満たすので、縮小画像から得られるパラメータ値と、元画像から得られるパラメータ値とがより近似したものとなり、縮小画像から得られたパラメータ値を用いた場合であっても、より高精度のレティネックス処理を行うことができるという効果がある。
【００４８】
請求項４記載の画像処理プログラムによれば、請求項３記載の画像処理プログラムの奏する効果に加え、縮小画像用フィルタのサイズに基づいて、元画像用フィルタのサイズが決定され、元画像用フィルタが生成されるので、予め元画像用フィルタをメモリに記憶しておく場合に比較して、メモリ使用量を節約することができるという効果がある。また、縮小画像用フィルタの適切なサイズを確保することができるという効果がある。
【００４９】
請求項５記載の画像処理プログラムによれば、請求項３記載の画像処理プログラムの奏する効果に加え、前記元画像用フィルタのサイズに基づいて、縮小画像用フィルタのサイズを決定し、縮小画像用フィルタを生成する縮小画像用フィルタ生成ステップを備えるので、予め縮小画像用フィルタをメモリに記憶しておく場合に比較して、メモリ使用量を節約することができるという効果がある。また、縮小画像用フィルタは元画像用フィルタよりもサイズが小さいので、生成した縮小画像用フィルタを格納するために確保しておくべきメモリ量も小さくて良いという効果がある。
【００５０】
請求項６記載の画像処理プログラムによれば、請求項１から５のいずれかに記載の画像処理プログラムの奏する効果に加え、縮小画像のサイズに対する縮小画像用フィルタのサイズの比は、元画像のサイズに対する元画像用フィルタのサイズの比と略同一であるので、縮小画像の反射率を用いた場合でも好適なパラメータを得ることができ、レティネックス処理を高精度に行うことができるという効果がある。
【００５１】
請求項７から１０に記載の画像処理プログラムによれば、請求項１から６のいずれかに記載の画像処理プログラムの奏する効果に加え、参照ポイントが曲線状の軌跡を有する関数に基づいて配置されるので、直線を有する画像において疑似輪郭の発生を抑制することができ、画質の劣化を抑制することができるという効果がある。すなわち、参照ポイントが直線状に配置されていると、画像に同じような直線が存在する場合に、疑似輪郭が発生し、レティネックス処理を行った結果、画質不良が発生するおそれがあるのである。画像が有する曲線が、関数で表される曲線状の軌跡とほぼ一致する場合も考えられるが、曲線状で疑似輪郭が発生しても、直線状に発生する場合に比べ、画質の劣化が目立たないという特性があるのである。
【００５２】
請求項１１記載の画像処理装置によれば、縮小画像反射率取得手段により、元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値が求められ、その周辺平均値と縮小画像の各画素の値とから反射率が求められる。そして、正規化パラメータ設定手段により、反射率が取る値の全範囲における各値の頻度が集計され、正規化を行う際のパラメータ値が設定される。そして、元画像反射率取得手段により、元画像の各画素について、元画像用フィルタを用いて周辺平均値が求められ、その周辺平均値と元画像の画素値とから反射率が求められる。そして、補正手段により、設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求められ、その正規化レティネックス値と、元画像の画素値とに基づいて補正が行われるので、正規化パラメータを求める際の演算数が少なく、レティネックス処理を高速で行うことができると共に、メモリ使用量を節約できるという効果がある。
【００５３】
また、縮小画像用フィルタの参照ポイントの配置および元画像用フィルタの参照ポイントの配置は、同一の関数に基づいて定まるものであるので、縮小画像用フィルタにおける参照ポイントの配置と、元画像用フィルタにおける参照ポイントの配置とを近似させることができる。よって、縮小画像から得られるパラメータ値と、元画像から得られるパラメータ値とが近似したものとなり、縮小画像から得られたパラメータ値を用いた場合であっても、高精度のレティネックス処理を行うことができるという効果がある。
【００５４】
請求項１２記載の画像処理装置によれば、縮小画像反射率取得手段により、元画像を縮小した縮小画像の各画素について、縮小画像用フィルタを用いて周辺平均値が求められ、その周辺平均値と縮小画像の各画素の値とから反射率が求められる。そして、正規化パラメータ設定手段により、反射率が取る値の全範囲における各値の頻度が集計され、正規化を行う際のパラメータ値が設定される。そして、元画像反射率取得手段により、元画像の各画素について、元画像用フィルタを用いて周辺平均値が求められ、その周辺平均値と元画像の画素値とから反射率が求められる。そして、補正手段により、設定されたパラメータ値に基づいて正規化した正規化レティネックス値を求められ、その正規化レティネックス値と、元画像の画素値とに基づいて補正が行われるので、正規化パラメータを求める際の演算数が少なく、レティネックス処理を高速で行うことができると共に、メモリ使用量を節約できるという効果がある。
【００５５】
また、縮小画像用マスクの参照ポイントの配置を定める関数ｒ＝ｆ（θ）と、元画像用マスクの参照ポイントの配置を定める関数ｒ＝ｇ（θ）とは、その関数に含まれる定数のみが異なる関係にあるので、縮小画像用フィルタにおける参照ポイントの配置と、元画像用フィルタにおける参照ポイントの配置とを近似させることができる。よって、縮小画像から得られるパラメータ値と、元画像から得られるパラメータ値とが近似したものとなり、縮小画像から得られたパラメータ値を用いた場合であっても、レティネックス処理を高精度に行うことができるという効果がある。
【００５６】
請求項１３記載の画像処理装置によれば、請求項１２記載の画像処理装置の奏する効果に加え、元画像用フィルタが定める領域の一辺の長さが縮小画像用フィルタが定める領域の一辺の長さのＢＲ倍であるとき、ｇ（θ）＝ＢＲ・ｆ（θ）の関係を満たすので、縮小画像から得られるパラメータ値と、元画像から得られるパラメータ値とがより近似したものとなり、縮小画像から得られたパラメータ値を用いた場合であっても、より高精度のレティネックス処理を行うことができるという効果がある。
【００５７】
請求項１４記載の画像処理装置によれば、請求項１３記載の画像処理装置の奏する効果に加え、縮小画像用フィルタのサイズに基づいて、元画像用フィルタのサイズが決定され、元画像用フィルタが生成されるので、予め元画像用フィルタをメモリに記憶しておく場合に比較して、メモリ使用量を節約することができるという効果がある。また、縮小画像用フィルタの適切なサイズを確保することができるという効果がある。
【００５８】
請求項１５記載の画像処理装置によれば、請求項１３記載の画像処理装置の奏する効果に加え、前記元画像用フィルタのサイズに基づいて、縮小画像用フィルタのサイズを決定し、縮小画像用フィルタを生成する縮小画像用フィルタ生成手段を備えるので、予め縮小画像用フィルタをメモリに記憶しておく場合に比較して、メモリ使用量を節約することができるという効果がある。また、縮小画像用フィルタは元画像用フィルタよりもサイズが小さいので、生成した縮小画像用フィルタを格納するために確保しておくべきメモリ量も小さくて良いという効果がある。
【００５９】
請求項１６記載の画像処理装置によれば、請求項１１から１５のいずれかに記載の画像処理装置の奏する効果に加え、縮小画像のサイズに対する縮小画像用フィルタのサイズの比は、元画像のサイズに対する元画像用フィルタのサイズの比と略同一であるので、縮小画像の反射率を用いた場合でも好適なパラメータを得ることができ、レティネックス処理を高精度に行うことができるという効果がある。
【００６０】
請求項１７から２０に記載の画像処理装置によれば、請求項１１から１６のいずれかに記載の画像処理装置の奏する効果に加え、参照ポイントが曲線状の軌跡を有する関数に基づいて配置されるので、直線を有する画像において疑似輪郭の発生を抑制することができ、画質の劣化を抑制することができるという効果がある。すなわち、参照ポイントが直線状に配置されていると、画像に同じような直線が存在する場合に、疑似輪郭が発生し、レティネックス処理を行った結果、画質不良が発生するおそれがあるのである。画像が有する曲線が、関数で表される曲線状の軌跡とほぼ一致する場合も考えられるが、曲線状で疑似輪郭が発生しても、直線状に発生する場合に比べ、画質の劣化が目立たないという特性があるのである。
【発明を実施するための最良の形態】
【００６１】
以下、本発明の好ましい実施形態について添付図面を参照して説明する。図１は、本実施形態の画像処理を行う機能を有するプリンタ１の電気的な構成を示したブロック図である。本実施形態においては、プリンタ１に搭載された画像処理プログラムは、パーソナルコンピュータ（以下「ＰＣ」と称する）２や、デジタルカメラ２１や、外部メディア２０から入力された画像データ（元画像データ）に対しレティネックス処理（Ｒｅｔｉｎｅｘ処理）などを実行して、画像データの逆光画像部分などの低画質領域の補正を実行するように構成されている。
【００６２】
図１に示すように、プリンタ１には、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、印刷ヘッドなどから構成され、印刷媒体（例えば、紙媒体など）への印刷（出力）を行う印刷部１５、出力画像サイズなどの入力値をユーザが入力可能なユーザ操作部（例えば、テンキーなど）を有する操作パネル１６とを備えている。
【００６３】
また、プリンタ１は、ケーブル５を介してＰＣ２と接続可能なインターフェイス（以下「Ｉ／Ｆ」と称する）１７と、ケーブル６を介してデジタルカメラ２１と接続可能なＩ／Ｆ１８と、外部メディア２０（例えば、ＳＤメモリカード、メモリスティックなどのフラッシュメモリにより構成される）を着脱自在に装着可能な外部メディアスロット１９とを備えている。これらのＩ／Ｆ１７、１８により行われる通信方法としてＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）が使用される。
【００６４】
よって、プリンタ１は、ＰＣ２に記憶されている画像データをケーブル５及びＩ／Ｆ１７を介して入力することが可能であると共に、デジタルカメラ２１によって撮影された画像データをケーブル６及びＩ／Ｆ１８を介して入力することが可能である。さらに、外部メディアスロット１９に装着された外部メディア２０から、その外部メディア２０に記憶されている画像データを入力することが可能である。
【００６５】
ＣＰＵ１１は、プリンタ１全体を制御する演算処理装置である。ＲＯＭ１２は、ＣＰＵ１１により実行される各種制御プログラムやそのプログラムを実行する際に用いられる固定値などを記憶するものであり、レティネックス処理などの画像の処理を行う画像処理プログラムを記憶する画像処理プログラムメモリ１２ａや、印刷を行うための印刷制御プログラムを記憶する印刷制御プログラムメモリ１２ｂ、ルックアップテーブルメモリ（ＬＵＴメモリ）１２ｃ等が備えられている。
【００６６】
ＲＡＭ１３は、制御プログラムがＣＰＵ１１により実行される際に必要な各種レジスタ群などが記憶されるワーキングエリアや、処理中のデータを一時的に格納するテンポラリエリア等を有しランダムにアクセスできる書き換え可能なメモリであり、元画像データを記憶する元画像メモリ１３ａと、元画像を縮小し、縮小した画像のレティネックス処理において求められる反射率を記憶する縮小レティネックス画像メモリ１３ｂと、ヒストグラム処理において各画素値の頻度が記憶されるヒストグラムメモリ１３ｃと、元画像のサイズを記憶する元画像サイズメモリ１３ｄと、使用者などにより設定される印刷を行う際の印刷パラメータを記憶する印刷パラメータメモリ１３ｅと、印刷パラメータなどに基づいて決定される縮小画像サイズと縮小アルゴリズムがそれぞれ記憶される縮小画像サイズメモリ１３ｆと、縮小アルゴリズムメモリ１３ｇと、周辺平均輝度を求める際に用いられるマスク（フィルタ）を記憶するマスクメモリ１３ｈ等を備えている。
【００６７】
元画像データメモリ１３ａは、ＰＣ２、デジタルカメラ２１、及び外部メディア２０から、それぞれ、Ｉ／Ｆ１７、Ｉ／Ｆ１８、及び外部メディアスロット１９を介して入力した画像データを記憶するものである。元画像データを１ライン単位で記憶し、縮小画像を形成することができるライン数のデータを読み込むと、縮小画像を形成する。縮小アルゴリズムが、最近傍法である場合には、１ラインのデータを記憶し、バイリニア法である場合には、２ライン、バイキュービック法である場合には、３ライン、平均画素法の場合は、縮小率に応じたライン数の元画像データが記憶される。なお、本実施形態では、元画像データ及び出力画像データはいずれも、ＲＧＢ値から構成され、これらの各ＲＧＢ値は、８ビット（１バイト）のデータサイズにより表され、１０進数では、「０」〜「２５５」の範囲の値をとる。
【００６８】
ＲＧＢ値は、光の３原色である赤を表すＲ値と、緑を表すＧ値と、青を示すＢ値とを構成成分とする値である。光の３原色の混色により各種の色は生成されるので、元画像の各画素の色は、Ｒ値とＧ値とＢ値との組合せ（ＲＧＢ値）により１の色（色相や階調など）が示される。このＲＧＢ値の値が大きいほど、輝度（明度）は高くなる。
【００６９】
縮小レティネックス画像メモリ１３ｂは、元画像を縮小し、その縮小した画像の輝度信号のみについてレティネックス処理において求められる反射率Ｒｓ（ｘ，ｙ）を記憶するメモリである。元画像を縮小する方法としては、縮小する画像の画素に対応する元画像の位置に最も近い画素の値をサンプリングし、そのサンプリングした画素の値をそのまま用いる最近傍（Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒ）法や、縮小する画像の画素に対応する元画像の位置の周囲の画素を用いて補間演算を行うバイリニア法、バイキュービック法や、平均画素法などが知られている。画質より処理速度を優先する場合は、最近傍法が用いられ、処理速度より画質を優先する場合は、バイキュービック法や、平均画素法が用いられる。
【００７０】
これらいずれかの方法により元画像が縮小され、その縮小された画像の各画素（ピクセル）について反射率が上述の数式１を用いて演算され、この縮小レティネックス画像メモリ１３ｂに記憶される。
【００７１】
ヒストグラムメモリ１３ｃは、縮小画像の各画素の反射率Ｒｓ（ｘ，ｙ）の頻度を集計してヒストグラムを形成するためのメモリである。ヒストグラムが作成されると、そのヒストグラムに基づいて、正規化を行うためのパラメータである上限値および下限値（クリップ範囲）が定められる。
【００７２】
元画像サイズメモリ１３ｄは、元画像のサイズを記憶するもので、元画像データをＰＣ２などから読み込む際に、元画像データに付随して読み込まれ、この元画像サイズメモリ１３ｄに記憶される。縮小画像のサイズおよび縮小アルゴリズムを決定する際には、この元画像サイズメモリ１３ｄに記憶された元画像サイズが参照される。
【００７３】
印刷パラメータメモリ１３ｅは、印刷を行う際の印刷モードを高画質の写真モードとするか、普通画質の普通モードとするか、また、記録媒体の種類を光沢紙、インクジェット紙、普通紙のいずれにするか、また、記録媒体のサイズをＡ４，Ｂ５、レターなどのいずれにするかなどを使用者が設定し、その設定されたパラメータを記憶する。印刷モードが選択されると、選択された印刷モードに設定された印刷の解像度や液滴サイズなどがパラメータとして記憶され、印刷が実行される際には、これらのパラメータに従って印刷が行われる。
【００７４】
これらの印刷パラメータや、元画像のサイズに基づいて、縮小画像のサイズと縮小するアルゴリズムが決定され、縮小画像サイズメモリ１３ｆと縮小アルゴリズメモリ１３ｇにそれぞれ記憶される。主として、処理速度より画質が優先される場合は、縮小画像サイズとして大きいサイズが設定され、画質より処理速度が優先される場合は、縮小画像サイズとして小さいサイズが設定される。縮小アルゴリズムとしては、上記、最近傍法、バイリニア法、平均画素法などの中から選択される。
【００７５】
これらの印刷パラメータは、ＰＣ２において使用者により設定され、プリンタ１に入力されるとともに、操作パネル１６に備えられる操作子によっても設定することができる。
【００７６】
マスクメモリ１３ｈは、各画素の周辺平均輝度を求める際に用いられるマスク（フィルタ）を記憶するメモリである。
【００７７】
操作パネル１６には、印刷パラメータなどを表示するＬＣＤと、印刷パラメータや画像処理に関するパラメータを設定したり、画像処理や印刷処理の実行を指示する各種操作子が備えられている。
【００７８】
次に、図２を参照してプリンタ１に接続されたＰＣ２おいて設定される種々の印刷パラメータについて説明する。図２は、ＰＣ２において、印刷パラメータの設定を選択した際に表示器に表示される印刷パラメータ設定画面２８である。
【００７９】
印刷パラメータ設定画面２８には、印刷を行う記録媒体である印刷用紙を選択設定する用紙種類選択ボックス２８ａと、印刷用紙のサイズを選択設定する用紙サイズ設定ボックス２８ｂと、印刷モードを設定する印刷モード設定ボックス２８ｃと、印刷を行う部数を設定する部数設定ボックス２８ｄなどが表示される。
【００８０】
用紙種類選択ボックス２８ａは、選択された用紙種類を表示する表示エリアと、そのエリアの右端に下方に向いた三角形が描かれたアイコンとを有し、このアイコンにマウスを操作してカーソル合わせ、クリックすると図２に示すようにプルダウンメニューが表示される。つぎに表示されたプルダウンメニューのいずれかの項目にカーソルを移動し、マウスに備えられたスイッチをクリックすると、カーソルにより指定される項目が選択される。
【００８１】
この実施形態では、印刷用紙の種類として、普通紙、光沢紙のいずれかを選択することができ、図２に示す例では、普通紙が選択された状態を示している。
【００８２】
同様に、用紙サイズ設定ボックス２８ｂは、選択された用紙のサイズを表示するエリアと、選択を行うためのプルダウンメニューの表示を指示するアイコンとを有し、用紙のサイズとしては、Ａ４，レター，５”×７”および４”×６”のいずれかを選択することができる。
【００８３】
印刷モード設定ボックス２８ｃも同様に、選択された印刷モードを表示するエリアと、選択を行うためのプルダウンメニューの表示を指示するアイコンとを有し、印刷モードとして、写真モードと普通モードのいずれかを選択することができる。写真モードは、普通モードに比べ、高画質で印刷を行うモードであり、高解像度で印刷が行われる。例えば、写真モードの解像度は、１２００×１２００ｄｐｉであり、普通モードの解像度は、低解像度であって、６００×６００ｄｐｉである。なお、インクジェット方式のプリンタでは解像度に応じて液滴サイズや、使用されるインクの種類が異なるようにしてもよい。
【００８４】
印刷部数設定ボックス２８ｄは、設定された部数を数値で表示するエリアからなり、そのエリアの右側に、数値を増加させるための上向きの三角形を表示したインクリメントアイコンと、数値を減少させるための下向きの三角形を表示したデクリメントアイコンを備え、これらのアイコンにカーソルを移動してマウスを操作することにより、印刷部数を設定することができる。
【００８５】
この印刷パラメータ設定画面２８には、上記アイコン以外に、用紙に対する印刷の向きを設定するラジオボタンや、設定を有効にして設定画面の消去を指示するＯＫボタンや、設定を無効にして設定画面の消去を指示するキャンセルボタンや設定の説明画面の表示を指示するヘルプボタンが表示される。
【００８６】
このようにしてＰＣ２によって設定された印刷パラメータは、ケーブル５およびＩ／Ｆ１７を介してプリンタ１に入力され、印刷パラメータメモリ１３ｅに記憶される。
【００８７】
次に、図３および図４を参照してＣＰＵ１１により実行される画像処理について説明する。図３および図４は、画像処理を示すフローチャートである。図３に示す処理は、前処理と呼ばれる処理であり、この処理では、元画像を縮小し、縮小した画像に基づいて反射率Ｒの正規化を行うためのクリップ範囲が設定される。
【００８８】
この前処理では、まず、元画像データに付随している元画像のサイズを示すデータを元画像サイズメモリ１３ｄに記憶する（Ｓ１）。この画像のサイズを示すデータは、通常長方形の画像を構成する縦と横のピクセル数により表される値である。
【００８９】
次に、印刷パラメータメモリ１３ｅに記憶された印刷パラメータの中から縮小画像サイズと縮小アルゴリズムを設定する際に必要なパラメータを読み出す（Ｓ２）。この、実施形態では、印刷パラメータのうち、印刷モード、用紙種類、用紙サイズが必要なパラメータである。
【００９０】
次に、これらのパラメータなどに基づいて縮小画像サイズと縮小アルゴリズムを決定し、決定した縮小画像サイズを縮小画像サイズメモリ１３ｆ、縮小アルゴリズムを１３ｇにそれぞれ記憶する（Ｓ３）。この処理については、図５〜７を参照して後述する。
【００９１】
次に、縮小画像用マスクＦｓと元画像用マスクＦを生成する（Ｓ４）。このマスク生成処理の詳細は、図８および図９を参照して後述する。
【００９２】
次に、縮小画像を形成する。縮小画像を形成する処理では、まず、元画像を記憶しているＰＣ２などから、１ライン単位で読み込み、ＲＡＭ１３の元画像メモリ１３ａに記憶する（Ｓ６）。デジタルカメラなどにより形成された画像データは、ＪＰＥＧなどの圧縮法により圧縮されて記憶され、長方形の画像の横方向のピクセルのライン順に記憶されている。
【００９３】
次に、元画像メモリ１３ａに記憶された画像データのライン数が、縮小画像アルゴリズムメモリ１３ｇに記憶された縮小アルゴリズムにより縮小することができるライン数のデータが記憶されたか否かを判断し（Ｓ７）、縮小できるライン数が記憶されていない場合は（Ｓ７：Ｎｏ）、Ｓ４の処理に戻り、縮小できるライン数が記憶されている場合は（Ｓ７：Ｙｅｓ）、その縮小アルゴリズムに従って縮小画像データを形成し（Ｓ８）、その縮小画像をＲＡＭに記憶する（Ｓ９）。縮小画像データをＲＡＭに記憶し、次に１ライン分の元画像を読み込んで元画像メモリ１３ａに記憶する場合は、先に記憶したデータに上書きする。このことにより、元画像メモリ１３ａの記憶容量を削減することができる。
【００９４】
次に、元画像の全てのラインについて走査を行って縮小画像を形成したか否かを判断し（Ｓ１０）、まだ、未処理のラインが残っている場合は（Ｓ１０：Ｎｏ）、Ｓ４の処理に戻り、全ラインについて処理を終了した場合は（Ｓ１０：Ｙｅｓ）、縮小画像の各画素について輝度信号Ｙと色信号Ｃｂ，Ｃｒに変換する（Ｓ１１）。
【００９５】
輝度信号Ｙおよび色信号Ｃｂ，Ｃｒは、元の画素のＲＧＢ値から次式により演算される。
【００９６】
【数３】
2008118208.tif 000005
輝度信号Ｙと色信号Ｃｂ，Ｃｒの値をそれぞれ記憶し、後の演算で使用するようにしてもよいが、記憶容量が小さい場合は、ＲＧＢ値のみを記憶し、必要に応じて演算して求めるようにしてもよい。
【００９７】
次に、上式により演算された輝度信号Ｙについて、反射率Ｒｓ（ｘ，ｙ）を算出する。（Ｓ１２）なお、「ｓ」は、縮小画像についての接尾辞であり、元画像については、接尾辞を付さないものとする。反射率Ｒｓは、縮小画像の各画素の輝度値をＩｓ（ｘ，ｙ）、縮小画像用のフィルタをＦｓ（ｘ，ｙ）として、次式により演算される。
【００９８】
【数４】
2008118208.tif 000006
なお、「＊」は、畳み込み演算（コンボリューション）を示し、この畳み込み演算により周辺平均輝度（周辺平均値）が求められる。なお、ｌｏｇは、ｅを底とする自然対数である。
【００９９】
次に、上記演算により求められた反射率Ｒｓ（ｘ，ｙ）をＲＡＭ１３の縮小レティネックス画像メモリ１３ｂに記憶する（Ｓ１３）。
【０１００】
次に、Ｒｓ（ｘ，ｙ）を最大値および最小値と比較する（Ｓ１４）。詳細には、最初の座標について求めた反射率Ｒｓ（ｘ，ｙ）を最大値および最小値とし、そのつぎから求めた反射率Ｒｓ（ｘ，ｙ）と最大値および最小値とをそれぞれ比較し、今回求めた反射率Ｒｓ（ｘ，ｙ）が、最大値より大きい場合は、今回求めた反射率Ｒｓ（ｘ，ｙ）を新たな最大値とし、今回求めた反射率Ｒｓ（ｘ，ｙ）が、最小値より小さい場合は、今回求めた反射率Ｒｓ（ｘ，ｙ）を新たな最小値とし、今回求めた反射率Ｒｓ（ｘ，ｙ）が、最大値より小さく、最小値より大きい場合は、最大値、最小値を変更しないという処理である。
【０１０１】
次に、縮小画像の全ての座標についてＳ１２〜Ｓ１４の処理を行ったか否かを判断し（Ｓ１５）、まだ、未処理の座標がある場合は（Ｓ１５：Ｎｏ）、Ｓ１２の処理に戻り、全ての座標についての処理を終了した場合は（Ｓ１５：Ｙｅｓ）、Ｓ１４の処理により求めた最大値と最小値に基づいて、反射率Ｒｓ（ｘ，ｙ）を正規化し、ヒストグラムを形成する（Ｓ１６）。
【０１０２】
次に、その形成されたヒストグラムからメディアン値を求め（Ｓ１７）、そのメディアン値とヒストグラムとから反射率Ｒｓ（ｘ，ｙ）のクリップされる範囲（クリップ範囲）を定める（Ｓ１８）。このクリップ範囲は、例えば、メディアン値より大きい値で、全標本の４５％の標本が含まれる上限値をクリップ範囲の上限値とし、メディアン値より小さい値で、全標本の４５％が含まれる下限値をクリップ範囲の下限値とするものである。
【０１０３】
以上の前処理により、元画像を縮小した縮小画像の反射率により構成される縮小レティネックス画像を形成し、その縮小レティネックス画像から、元画像の反射率を正規化する際のクリップ範囲が求められる。このことにより、クリップ範囲を求めるための演算の回数が、元画像について求める演算の回数より非常に少なくすることができ、処理速度が速くなる。また、縮小された画像のレティネックス画像を記憶するので、元画像のレティネックス画像を記憶する場合に比べ、少ない記憶容量で処理することができるという利点がある。また、縮小画像を用いて求めたクリップ範囲と、元画像を用いて求めたクリップ範囲とは、大差がない。次表は、縮小画像により求めたクリップ範囲（上限値と下限値）と元画像により求めたクリップ範囲との差異を示すものである。
【０１０４】
【表１】
2008118208.tif 000007
この表が示すように、元画像により求めた最大値は、２．７１２、最小値は、−４．０６３であり、縮小画像により求めた最大値は、１．７２９、最小値は、−２．６０７である。よって、元画像により求めた最大値と縮小画像により求めた最大値との差は、０．９８３であり、元画像により求めた最小値と縮小画像により求めた最小値との差は、１．４５６であって、かなり大きな差が認められる。
【０１０５】
一方、元画像により求めたクリップ範囲の上限値は、０．８２５、下限値は、−０．８２２であり、縮小画像により求めた上限値は、０．７４２、下限値は、−０．７５５である。よって、元画像により求めた上限値と縮小画像により求めた上限値との差は、０．０８３であり、元画像により求めた下限値と縮小画像により求めた下限値との差は、０．０６７であって、これらの差が小さいことが分かる。
【０１０６】
次に、図３に示す処理により求められたクリップ範囲に基づいて行う後処理である元画像のレティネックス処理について説明する。図４は、元画像のレティネックス処理を示すフローチャートである。なお、この後処理では、元画像の各画素について処理が行われ、処理された画素値は、順次印刷部１５に出力される。
【０１０７】
まず、元画像について、反射率Ｒ（ｘ，ｙ）を数式１を用いて算出する（Ｓ２１）。この演算において、フィルタＦ（ｘ，ｙ）は、マスクメモリ１３ｈに記憶された元画像用のマスクである。
【０１０８】
次に、縮小画像を用いて求めたクリップ範囲に基づいて、Ｒ（ｘ，ｙ）を正規化し、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）を得る（Ｓ２２）。
【０１０９】
次に、このｒｅｆｌｅ（ｘ，ｙ）を用いて、次式により輝度についてレティネックス処理を行った画素の値Ｏｕｔ（ｘ，ｙ）を得る（Ｓ２３）。なお、数５の項のうち、Ｉ（ｘ，ｙ）／ｒｅｆｌｅ（ｘ，ｙ）が正規化レティネックス値に相当する。
【０１１０】
【数５】
2008118208.tif 000008
次に、このＯｕｔ（ｘ，ｙ）と、色信号Ｃｂ、Ｃｒとに基づいて、ＲＧＢ値に変換する（Ｓ２４）。この変換は、次式により算出される。
【０１１１】
【数６】
2008118208.tif 000009
以上の処理により元画像の輝度信号にレティネックス処理が施され、色信号に基づいてＲＧＢ値に戻した画素値が求められる。次に、この処理された画素値を印刷部１５に出力する（Ｓ２５）。よって、前処理により、正規化を行うクリップ範囲が特定されているので、後処理では、順次各画素について処理を行い印刷部１５に出力することができる。その結果、処理を開始してから、印刷が開始されるまでの時間を短縮することができる。
【０１１２】
次に、元画像の全画素について処理を終了したか否かを判断し（Ｓ２６）、まだ処理を終了していない画素がある場合は（Ｓ２６：Ｎｏ）、Ｓ２１の処理に戻り、全ての画素について処理を終了した場合は（Ｓ２６：Ｙｅｓ）、この後処理を終了する。
【０１１３】
次に、図５、図６および図７を参照して、Ｓ３の処理である縮小画像サイズと縮小アルゴリズムを決定する処理について説明する。元画像を縮小し、その縮小画像を用いてクリップ範囲を決定し、そのクリップ範囲に基づいて元画像の各画素について補正処理を行うので、クリップ範囲を速く決定することができるとともに、少ない記憶容量で処理することができる。しかしながら、縮小画像のサイズが小さい場合や、縮小された画像の画質の劣化が大きい場合には、適切なクリップ範囲を設定できない場合がある。また、縮小画像サイズを必要以上に大きくしたり、縮小画像の画質を必要以上に高くすれば、処理時間が長くかかり、処理速度が低下する。従って、使用者が設定する印刷パラメータなどに応じた適切な縮小画像のサイズや縮小アルゴリズムを選択する必要がある。
【０１１４】
図５および図６は、印刷モード、用紙種類、用紙サイズ、元画像のサイズに応じて縮小画像サイズと縮小アルゴリズムを設定するためのルックアップテーブルであり、図５は、写真モード用のもの、図６は、普通モード用のものである。これらのテーブルは、ＲＯＭ１２のテーブルメモリ１２ｃに記憶され、図７に示すフローチャートの処理において参照される。
【０１１５】
図５は、印刷モードが写真モードである場合に選択されるテーブルであって、まず、用紙の種類により分類される。この実施形態では、光沢紙と普通紙の２種類で分類しているが、これら以外に、インクジェット紙などにより分類してもよい。
【０１１６】
用紙種類の次に、用紙サイズにより分類される。用紙サイズは、用紙サイズが小さい方から順に、４”×６”、５”×７”、レター、Ａ４の４種類に分類され、さらに、各用紙サイズについて元画像サイズにより分類される。元画像のサイズとしては、６００×８００、１２００×１６００、２４００×３２００（ピクセル）の３種類に分類され、それぞれのサイズについて、縮小画像サイズと縮小アルゴリズムとが設定される。
【０１１７】
この実施形態では、縮小画像サイズは、１５０×２００、３００×４００、４５０×６００の３種類、縮小アルゴリズムは、平均画素法（ＭＥ）、バイリニア法（ＢＬ）、最近傍法（ＮＮ）の３類のいずれかが設定される。図６は、印刷モードが普通モードである場合に選択されるテーブルであって、写真モードと同様に、用紙種類、用紙サイズ、元画像サイズにより分類され、縮小画像サイズと縮小アルゴリズムとが設定される。
【０１１８】
図７は、図３に示すフローチャートのＳ３の処理の詳細を示すフローチャートである。この処理では、まず印刷パラメータとして選択された印刷モードが写真モードであるか普通モードであるかを判定する（Ｓ３１）。印刷モードが、写真モードである場合は、写真モード用のテーブルを選択し（Ｓ３２）、印刷モードが、普通モードである場合は、写真モード用のテーブルを選択し（Ｓ３３）、印刷パラメータとして設定されている用紙種類、用紙サイズ、および元画像サイズメモリ１３ｄに記憶されている元画像サイズとから、設定されている縮小画像サイズと縮小アルゴリズムとを読み出し、縮小画像サイズメモリ１３ｆと縮小アルゴリズムメモリ１３ｇとにそれぞれ記憶する（Ｓ３４）。
【０１１９】
次に、図８を参照して、マスク生成処理（Ｓ４）にて生成される縮小画像用マスクＦｓおよび元画像用マスクＦについて、それぞれ説明する。マスクは、周辺平均輝度を算出するための所定領域を有するフィルタであって、その所定領域で定められる範囲内の画素の輝度とフィルタ係数との畳み込み演算により、周辺平均輝度が算出される。しかしながら、所定領域内の全ての要素についてフィルタ係数を有し、畳み込み演算を行うと計算量が膨大になる。そこでフィルタ係数を間引くことにより、計算量を削減することが行われている。
【０１２０】
図８（ａ）は、縮小画像用マスクＦｓが、領域内のいずれの要素にフィルタ係数を有するのかを示す模式図である。なお、図８では、フィルタ係数が存在する要素（以下、参照ポイントと称する）をグレイ色で示し、フィルタ係数が存在しない要素（以下、間引きポイントと称する）を白色で示す。各参照ポイントには、フィルタ係数が対応付けられている。
【０１２１】
図８（ａ）に縮小画像用マスクＦｓは、縦方向の要素数が５、横方向の要素数が５であって、合計の要素数が２５である。そのうち、９の要素が、フィルタ係数が対応付けられた参照ポイントであり、１６の要素が、フィルタ係数が存在しない間引きポイントである。この縮小画像用マスクＦｓによれば、１つの周辺平均輝度を演算する際に、縮小画像の５画素×５画素の領域を覆うことができる。そして、参照ポイントに対応する９個の画素の輝度は畳み込み演算により、周辺平均輝度に値が反映されると共に、間引きポイントに対応する１６個の画素の輝度は間引かれ、その輝度が周辺平均輝度に反映されない。￥すなわち、周辺画像用マスクＦｓによれば、残りの１６個の画素の輝度は間引いて、周辺平均輝度を演算することができる。
【０１２２】
図８（ａ）向かって右側の図は、縮小画像用マスクＦｓにおける参照ポイントの配置の決定条件を説明する図である。これに示すように、仮に、縮小画像用マスクＦｓの中央を原点Ｏとして極座標を設定し、縮小画像用マスクＦｓの各位置を動径ｒと偏角θ（偏角θは変数）とで表すと、関数ｒ＝ｆ（θ）で表される軌跡に基づいて、縮小画像用マスクＦｓの参照ポイントの配置を定めることができる。なお、図８（ａ）に示す関数ｒ＝ｆ（θ）は、原点Ｏを中心とした半径ｒが２の円であるから、動径ｒは偏角θの値に拘わらず常に「２」であって、関数２＝ｆ（θ）で表されるものである。
【０１２３】
図８（ｂ）は、元画像用マスクＦが、領域内のいずれの要素にフィルタ係数を有するかを示す模式図である。図８（ｂ）に示すように、元画像マスクＦは、縦方向の要素数が１５、横方向の要素数が１５であって、合計の要素数が２２５である。すなわち、図８（ａ）に示す縮小画像用マスクＦｓの３倍のサイズを有する。図８（ａ）に示す縮小画像用マスクＦｓと、図８（ｂ）に示す元画像用マスクＦとは、縮小画像に対し、元画像が３倍のサイズを有する場合に用いられる。換言すれば、縮小画像のサイズに対する縮小画像用マスクＦｓのサイズの比が、元画像のサイズに対する元画像用マスクＦのサイズの比と略同一となるように、縮小画像用マスクＦｓおよび元画像用マスクＦのサイズが決定される。
【０１２４】
このようにすれば、縮小画像用マスクＦｓと元画像用マスクＦとで、周辺平均輝度を演算する際の演算領域が一致する。すなわち、画像全体に対し、一回の畳み込み演算でマスクによりカバーされる領域が一致するので、縮小画像から得られる周辺平均輝度の分布と、元画像から得られる周辺平均輝度の分布とが近似する。よって、縮小画像から得られる反射率の分布と、元画像から得られる反射率の分布とが近似し、縮小画像からでも好適な正規化パラメータを得ることができる。なお、ここでいう「元画像のサイズ」、または「縮小画像のサイズ」は、本実施例では横方向の画素数×縦方向の画素数で表記するものとする。また、「元画像用マスクのサイズ」または「縮小画像用マスクのサイズ」は、周辺平均輝度を演算する際の演算領域の大きさであり、本実施例では、演算領域に含まれる横方向の画素数×縦方向の画素数で、各マスクのサイズを表記する。なお、マスクの形状は矩形には限られず、円など、矩形以外の形状であっても良いが、その場合、そのマスクを内接する矩形領域の大きさを、マスクのサイズと称することとする。
【０１２５】
図８（ｂ）の向かって右側に示す図は、元画像用マスクＦｓにおける参照ポイントの配置の決定条件を説明する図である。図８（ｂ）に示すように、元画像用マスクＦの参照ポイントの配置は、縮小画像用マスクＦｓの参照ポイントの配置と同様に、仮に、元画像用マスクＦの中央を原点Ｏとして極座標を設定した場合、関数ｒ＝ｇ（θ）（ｒは動径であり、θは偏角である）で表される軌跡に基づいて定められ得る。なお、図８（ｂ）に示す関数ｒ＝ｇ（θ）は、原点Ｏを中心とした半径ｒが６の円であるから、関数６＝ｇ（θ）で表される。すなわち、縮小画像用マスクＦｓにおける参照ポイントの配置を決定する軌跡と、元画像用マスクＦにおける参照ポイントの配置を決定する軌跡とは、相似の関係にある。このようにすれば、縮小画像から得られる周辺平均輝度の分布と、元画像から得られる周辺平均輝度の分布とがより近似する。その結果、縮小画像から得られる反射率の分布と、元画像から得られる反射率の分布とも近似し、縮小画像からでもより好適な正規化パラメータを得ることができる。
【０１２６】
図９は、マスク生成処理を示すフローチャートである。マスク生成処理は、縮小画像用マスクＦｓと元画像用マスクＦとを生成する処理である。
【０１２７】
まず、縮小画像用マスクＦｓのサイズを決定する（Ｓ４０１）。この縮小画像用マスクＦｓのサイズは、前処理（図３参照）のＳ３のステップで決定された縮小画像のサイズに基づいて決定されるものであり、ここでは、縮小画像用マスクＦｓのサイズとして、例えば５×５が決定されたものとして説明する。
【０１２８】
次に、パラメータＲｓｍａｌｌを決定する（Ｓ４０２）。このパラメータＲｓｍａｌｌは、関数ｒ＝ｆ（θ）の動径ｒに相当するパラメータである。例えば、図８（ａ）に示すように円状の軌跡に沿って縮小画像用マスクＦｓの参照ポイントを決定する場合、Ｒｓｍａｌｌ＝２が決定される。
【０１２９】
次に、偏角θを「０」とする（Ｓ４０３）。そして、偏角θとパラメータＲｓｍａｌｌを用いて定まる極座標系の位置を、縮小画像用マスクＦｓの中央を原点とする直交座標系の座標に変換し、座標値（ｘ，ｙ）を決定する（Ｓ４０４）。なお、この座標値（ｘ，ｙ）は、下記（２）式により得たｘ，ｙの小数点以下を切り捨てて得られる値である。
ｘ＝Ｒｓｍａｌｌ×ｃｏｓ（θ）
ｙ＝Ｒｓｍａｌｌ×ｓｉｎ（θ）    ・・・（２）
次に、得られた座標値（ｘ，ｙ）が、縮小画像用マスクＦｓの参照ポイント記憶用構造体にないか否かを判断する（Ｓ４０５）。ここで、縮小画像用マスクＦｓの参照ポイント記憶用構造体は、参照ポイントの座標およびそのフィルタ係数を記憶する構造体であり、マスクメモリ１３ｈ（図１参照）に設けられている。
【０１３０】
得られた座標値（ｘ，ｙ）が、縮小画像用マスクＦｓの参照ポイント記憶用構造体にない場合（Ｓ４０５：Ｙｅｓ）、その座標値（ｘ，ｙ）を、縮小画像用マスクＦｓの参照ポイント記憶用構造体に記憶する（Ｓ４０６）。そして、ガウス関数を用いて、その座標値（ｘ，ｙ）のフィルタ係数を演算し、縮小画像用マスクＦｓの参照ポイント記憶用構造体に記憶し（Ｓ４０７）、Ｓ４０８の処理に移行する。
【０１３１】
一方、得られた座標値（ｘ，ｙ）が、縮小画像用マスクＦｓの参照ポイント記憶用構造体に既にある場合（Ｓ４０５：Ｎｏ）、Ｓ４０６およびＳ４０７の処理をスキップし、Ｓ４０８に移行する。
【０１３２】
次に、偏角θをインクリメントし（Ｓ４０８）、θが３６０より小であるか否かを判断する（Ｓ４０９）。θが３６０より小である間は（Ｓ４０９：Ｙｅｓ）、Ｓ４０４に戻り処理を繰り返す。
【０１３３】
このようにして処理を繰り返す内に、θが３６０となり（Ｓ４０９：Ｎｏ）、全ての参照ポイントの座標およびフィルタ係数が、参照ポイント記憶用構造体に記憶されるので、縮小画像用マスクＦｓの生成を終了する。
【０１３４】
次のステップからは、元画像用マスクＦが生成される。まず、元画像に対する縮小画像の縮小率を読み出す（Ｓ４１０）。縮小率は、元画像の片辺長に対する縮小画像の片辺長の比に相当する値であり、例えば、ＲＡＭ１３に格納されている元画像サイズと縮小画像サイズとから求めることができる。次に、読み出した縮小率と、縮小画像用マスクＦｓのサイズとから、元画像用マスクＦのサイズを決定する（Ｓ４１１）。具体的には、縮小画像用マスクＦｓのサイズに、縮小率の逆数を乗算した値を、元画像用マスクＦのサイズとする。このようにすれば、縮小画像のサイズと縮小画像用フィルタのサイズとの比が、元画像のサイズと元画像用マスクＦのサイズとの比と同じとなるように、元画像用マスクＦのサイズを決定する（図８参照）。なお、縮小率の逆数が、特許請求の範囲におけるＢＲに相当する。
【０１３５】
次に、パラメータＲｌａｒｇｅを決定する（Ｓ４１２）。このパラメータＲｌａｒｇｅは、関数ｒ＝ｇ（θ）の動径ｒに相当するパラメータである。このパラメータＲｌａｒｇｅは、縮小率の逆数ＢＲと縮小画像用マスクＦｓのパラメータＲｓｍａｌｌを用いて、以下の（３）式により決定される。
Ｒｌａｒｇｅ＝ＢＲ・Ｒｓｍａｌｌ  ・・・（３）
【０１３６】
すなわち、縮小画像用マスクＦｓの参照ポイントの配置を関数ｒ＝ｆ（θ）に基づいて定め、元画像用マスクＦの参照ポイントの配置を関数ｒ＝ｇ（θ）に基づいて定めるとき、ｆ（θ）＝ＢＲ・ｇ（θ）の関係が満たされるよう、パラメータＲｌａｒｇｅが決定される。
【０１３７】
次に、偏角θを「０」とする（Ｓ４１３）。そして、偏角θとパラメータＲｌａｒｇｅを用いて定まる極座標系の位置を、直交座標系に変換し、座標値（ｘ，ｙ）を決定する（Ｓ４１４）。なお、この座標値（ｘ，ｙ）は、下記（４）式により得たｘ，ｙの小数点以下を切り捨てて得られる値である。
ｘ＝Ｒｌａｒｇｅ×ｃｏｓ（θ）
ｙ＝Ｒｌａｒｇｅ×ｓｉｎ（θ）    ・・・（４）
【０１３８】
次に、得られた座標値（ｘ，ｙ）が、元画像用マスクＦの参照ポイント記憶用構造体にないか否かを判断する（Ｓ４１５）。ここで、元画像用マスクＦの参照ポイント記憶用構造体は、参照ポイントの座標およびそのフィルタ係数を記憶する構造体であり、マスクメモリ１３ｈ（図１参照）に設けられている。
【０１３９】
得られた座標値（ｘ，ｙ）が、元画像用マスクＦの参照ポイント記憶用構造体にない場合（Ｓ４１５：Ｙｅｓ）、その座標値（ｘ，ｙ）を、元画像用マスクＦの参照ポイント記憶用構造体に記憶する（Ｓ４１６）。そして、ガウス関数を用いて、その座標値（ｘ，ｙ）のフィルタ係数を演算し、元画像用マスクＦの参照ポイント記憶用構造体に記憶し（Ｓ４１７）、Ｓ４１８の処理に移行する。
【０１４０】
一方、得られた座標値（ｘ，ｙ）が、元画像用マスクＦの参照ポイント記憶用構造体に既にある場合（Ｓ４１５：Ｎｏ）、Ｓ４１６およびＳ４１７の処理をスキップし、Ｓ４１８に移行する。
【０１４１】
次に、偏角θをインクリメントし（Ｓ４１８）、θが３６０より小であるか否かを判断する（Ｓ４１９）。θが３６０より小である間は（Ｓ４１９：Ｙｅｓ）、Ｓ４１４に戻り処理を繰り返す。
【０１４２】
このようにして処理を繰り返す内に、θが３６０となると（Ｓ４１９：Ｎｏ）、全ての参照ポイントの座標およびフィルタ係数が、参照ポイント記憶用構造体に記憶されるので、元画像用マスクＦの生成を終了し、マスク生成処理（Ｓ４）を終了する。
【０１４３】
本実施形態によれば、前処理（図３参照）により、縮小画像を用いて設定されたパラメータ値に基づいてクリップ範囲が求められ、そのクリップ範囲を用いて、元画像の反射率が正規化されるので、クリップ範囲を求める際の演算数が少なく、レティネックス処理を高速で行うことができる。
【０１４４】
また、縮小画像用マスクＦｓの参照ポイントの配置を定める関数ｒ＝ｆ（θ）と、元画像用マスクＦの参照ポイントを定める関数ｒ＝ｇ（θ）とは、ｇ（θ）＝ＢＲ・ｆ（θ）の関係を満たすので、縮小画像用マスクＦｓの参照ポイントの配置と、元画像用マスクＦの参照ポイントの配置とが近似する。よって、縮小画像から得られる反射率の分布が、元画像から得られる反射率の分布と極めて近くなり、縮小画像からでも適切なクリップ範囲（元画像から得られるクリップ範囲と極めて近似するクリップ範囲）を得ることができ、高精度のレティネックス処理を行うことができる。
【０１４５】
また、マスク生成処理（Ｓ４）によれば、縮小画像用マスクＦｓおよび元画像用マスクＦは動的に生成されるので、予めメモリに記憶しておく場合に比較して、メモリの使用量を節約することができる。特に、コストの問題から、プリンタ１が有する不揮発性のメモリ量に制限がある場合には、縮小画像用マスクＦｓおよび元画像用マスクＦを動的に生成することの効果が大きい。
【０１４６】
また、マスク生成処理（Ｓ４）によれば、縮小画像用マスクＦｓのサイズを先に決定し、そのサイズに基づいて、元画像用マスクＦのサイズを決定しているので、縮小画像用マスクＦｓの適切なサイズを確保することができる。すなわち、これとは逆に、元画像用マスクＦのサイズを決定し、そのサイズを、縮小率に応じて小さくして縮小画像マスクＦｓのサイズを決定することとすると、その縮小率によっては、縮小画像用マスクＦｓのサイズが小さくなりすぎ、畳み込み演算のための適正なサイズを確保できないおそれがあるのである。
【０１４７】
また、マスク生成処理（Ｓ４）によれば、縮小画像用マスクＦｓおよび元画像用マスクＦの参照ポイントが曲線状の軌跡に基づいて配置されるので、直線を有する画像において疑似輪郭の発生を抑制することができ、画質の劣化を抑制することができる。すなわち、参照ポイントが直線状に配置されていると、画像に同じような直線が存在する場合に、疑似輪郭が発生し、レティネックス処理を行った結果、画質不良が発生するおそれがあるのである。
【０１４８】
なお、請求項に記載の縮小画像反射率取得ステップおよび縮小画像反射率取得手段は、図３に示すフローチャートのＳ１２の処理が該当し、正規化パラメータ取得ステップおよび正規化パラメータ取得手段は、図３に示すフローチャートのＳ１６〜Ｓ１８の処理が該当し、元画像反射率取得ステップおよび元画像反射率取得手段は、図４に示すフローチャートのＳ２３の処理が該当し、補正ステップおよび補正手段は、図４に示す後処理が該当し、元画像用フィルタ生成ステップおよび元画像用フィルタ生成手段は、図９に示すフローチャートのＳ４１０〜Ｓ４１９の処理が該当し、縮小画像用フィルタ生成ステップおよび縮小画像用フィルタ生成手段は、後述する図１０に示すフローチャートのＳ５１０〜Ｓ５１９の処理が該当する。
【０１４９】
以上、実施形態に基づいて本発明を説明したが、本発明は上記各実施形態に何ら限定されるものでなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０１５０】
例えば、上記実施形態では、マスク生成処理（Ｓ４）において、縮小画像用マスクＦｓを先に生成し、その後、元画像用マスクＦを生成していたが、これに替えて、元画像用マスクＦを先に生成し、その後に縮小画像用マスクＦｓを生成してもよい。
【０１５１】
図１０は、マスク生成処理（Ｓ４）の変形例を示すフローチャートである。この変形例のマスク生成処理（Ｓ４）は、先に元画像用マスクＦを生成し、その元画像用マスクＦに基づいて縮小画像用マスクＦｓを生成する点において、上記実施形態のマスク生成処理と異なる。
【０１５２】
まず、元画像用マスクＦのサイズを決定する（Ｓ５０１）。この元画像用マスクＦのサイズは、元画像サイズメモリ１３ｄ（図１参照）に記憶された元画像のサイズに基づいて決定される。
【０１５３】
次に、パラメータＲｌａｒｇｅを決定する（Ｓ５０２）。このパラメータＲｌａｒｇｅは、関数ｒ＝ｇ（θ）の動径ｒに相当するパラメータである。
【０１５４】
次に、偏角θを「０」とする（Ｓ５０３）。そして、偏角θとパラメータＲｌａｒｇｅを用いて定まる極座標系の位置を、直交座標系に変換し、座標値（ｘ，ｙ）を決定する（Ｓ５０４）。なお、この座標値（ｘ，ｙ）は、上記（４）式により得たｘ，ｙの小数点以下を切り捨てて得られる値である。
【０１５５】
次に、得られた座標値（ｘ，ｙ）が、元画像用マスクＦの参照ポイント記憶用構造体にないか否かを判断する（Ｓ５０５）。
【０１５６】
得られた座標値（ｘ，ｙ）が、元画像用マスクＦの参照ポイント記憶用構造体にない場合（Ｓ５０５：Ｙｅｓ）、その座標値（ｘ，ｙ）を、元画像用マスクＦの参照ポイント記憶用構造体に記憶する（Ｓ５０６）。そして、ガウス関数を用いて、その座標値（ｘ，ｙ）のフィルタ係数を演算し、元画像用マスクＦの参照ポイント記憶用構造体に記憶し（Ｓ５０７）、Ｓ５０８の処理に移行する。
【０１５７】
一方、得られた座標値（ｘ，ｙ）が、元画像用マスクＦの参照ポイント記憶用構造体に既にある場合（Ｓ５０５：Ｎｏ）、Ｓ５０６およびＳ５０７の処理をスキップし、Ｓ５０８に移行する。
【０１５８】
次に、偏角θをインクリメントし（Ｓ５０８）、θが３６０より小であるか否かを判断する（Ｓ５０９）。θが３６０より小である間は（Ｓ５０９：Ｙｅｓ）、Ｓ５０４に戻り処理を繰り返す。
【０１５９】
このようにして処理を繰り返す内に、θが３６０となり（Ｓ５０９：Ｎｏ）、全ての参照ポイントの座標およびフィルタ係数が、参照ポイント記憶用構造体に記憶されるので、元画像用マスクＦの生成を終了し、次に、縮小画像用マスクの生成を行う。
【０１６０】
まず、元画像に対する縮小画像の縮小率を読み出す（Ｓ５１０）。次に、読み出した縮小率と、元画像用マスクＦのサイズとから、縮小画像用マスクＦｓのサイズを決定する（Ｓ５１１）。具体的には、元画像用マスクＦのサイズに、縮小率を乗算した値を、縮小画像用マスクＦｓのサイズとする。
【０１６１】
次に、パラメータＲｓｍａｌｌを決定する（Ｓ５１２）。このパラメータＲｓｍａｌｌは、関数ｒ＝ｆ（θ）の動径ｒに相当するパラメータである。このパラメータＲｓｍａｌｌは、上記の（３）式に従って決定される。
【０１６２】
次に、偏角θを「０」とする（Ｓ５１３）。そして、偏角θとパラメータＲｓｍａｌｌを用いて定まる直交座標系の位置を、直交座標系に変換し、座標値（ｘ，ｙ）を決定する（Ｓ５１４）。なお、この座標値（ｘ，ｙ）は、上記（２）式により得たｘ，ｙの小数点以下を切り捨てて得られる値である。
【０１６３】
次に、得られた座標値（ｘ，ｙ）が、縮小画像用マスクＦｓの参照ポイント記憶用構造体にないか否かを判断する（Ｓ５１５）。得られた座標値（ｘ，ｙ）が、縮小画像用マスクＦｓの参照ポイント記憶用構造体にない場合（Ｓ５１５：Ｙｅｓ）、その座標値（ｘ，ｙ）を、縮小画像用マスクＦｓの参照ポイント記憶用構造体に記憶する（Ｓ５１６）。そして、ガウス関数を用いて、その座標値（ｘ，ｙ）のフィルタ係数を演算し、縮小画像用マスクＦｓの参照ポイント記憶用構造体に記憶し（Ｓ５１７）、Ｓ５１８の処理に移行する。
【０１６４】
一方、得られた座標値（ｘ，ｙ）が、縮小画像用マスクＦｓの参照ポイント記憶用構造体に既にある場合（Ｓ５１５：Ｎｏ）、Ｓ５１６およびＳ５１７の処理をスキップし、Ｓ５１８に移行する。
【０１６５】
次に、変数θをインクリメントし（Ｓ５１８）、θが３６０より小であるか否かを判断する（Ｓ５１９）。θが３６０より小である間は（Ｓ５１９：Ｙｅｓ）、Ｓ５１４に戻り処理を繰り返す。
【０１６６】
このようにして処理を繰り返す内に、θが３６０となると（Ｓ５１９：Ｎｏ）、全ての参照ポイントの座標およびフィルタ係数が、参照ポイント記憶用構造体に記憶されるので、縮小画像用マスクＦｓの生成を終了し、マスク生成処理（Ｓ４）を終了する。
【０１６７】
変形例のマスク生成処理（Ｓ４）によれば、元画像用マスクＦのサイズに基づいて、縮小画像用マスクＦｓのサイズを決定するので、生成した縮小画像用マスクＦｓを格納するために確保しなければならないＲＡＭ１３の領域を小さくすることができる。すなわち、縮小画像用マスクＦｓを先に決定し、縮小画像用マスクＦｓのサイズと縮小率とに基づいて元画像用マスクＦのサイズを決定し、元画像用マスクＦを生成することとすると、縮小率によっては、元画像用マスクＦのサイズが非常に大きいものとなるおそれがある。そのため、生成した元画像用マスクＦの参照ポイントおよびフィルタ係数を格納するために、十分に大きなメモリ容量を確保しておかなければならないのである。
【０１６８】
なお、元画像用マスクＦのサイズが所定値以上となる場合には、変形例のマスク生成処理（Ｓ４）で縮小画像用マスクＦｓおよび元画像用マスクＦを生成し、元画像用マスクＦのサイズが所定値より小である場合は、実施形態で説明したマスク生成処理（Ｓ４）を実行することとするなど、場合に応じて使い分けるように構成しても良い。
【０１６９】
また、上記実施形態で説明した縮小画像用マスクＦｓおよび元画像用マスクＦの参照ポイントは、円状の軌跡に沿って配置されていた。すなわち、縮小画像用マスクＦｓの参照ポイントを決定するための関数ｒ＝ｆ（θ）、ｒ＝ｇ（θ）は、θの値に拘わらず、動径ｒが常に一定であった。しかしながら、当然のことながら、ｆ（θ）およびｇ（θ）は、定数と、変数θから構成されるものであっても良い。
【０１７０】
図１１は、関数ｒ＝ｆ（θ）および関数ｒ＝ｇ（θ）が、螺旋関数である場合に描かれる軌跡を示す図である。図１１においては、螺旋関数が関数ｒ＝ａ・θで表される対数螺旋の軌跡を波線で示し、螺旋関数が関数ｒ＝ａ・ｅｂθで表されるアルキメデスの渦巻きとよばれる軌跡を実線で示す（但し、ａ，ｂは定数）。このような螺旋関数を用いて参照ポイントの配置を決定すれば、縮小画像用マスクおよび元画像用マスクの参照ポイントを、螺旋状の軌跡に沿って配置することができる。
【０１７１】
また、上記実施形態では、縮小画像用マスクＦｓの参照ポイントの配置を定める関数ｒ＝ｆ（θ）と、元画像用マスクＦの参照ポイントの配置を定める関数ｒ＝ｇ（θ）とは、ｇ（θ）＝ＢＲ・ｆ（θ）の関係を満たすものとして説明したが、必ずしもこの関係を満たすものでなくても良い。例えば、縮小画像用マスクの参照ポイントを定める関数ｒ＝ｆ（θ）が、ｒ＝ａ・ｅｂθ であるとき、元画像用マスクの参照ポイントを定める関数ｒ＝ｇ（θ）が、ｒ＝ａ・ｅｃθ（但し、ｃは定数であり、ｂ≠ｃ）であるなど、同じ種類の関数であって、少なくとも１つの定数が異なる関係にあっても良い。このようにしても、縮小画像用マスクの参照ポイントの配置と、元画像用マスクの参照ポイントの配置とは近似したものとなるので、同様の効果が得られる。
【０１７２】
図１２は、関数ｒ＝ａ・ｓｉｎ２θで表される正葉曲線関数の軌跡を示す図である。縮小画像用マスクの参照ポイントを決定する関数ｒ＝ｆ（θ）、元画像用マスクの参照ポイントを決定する関数ｒ＝ｇ（θ）は、この正葉曲線関数であっても良い。
【０１７３】
また、関数ｒ＝ｆ（θ）と、関数ｒ＝ｇ（θ）は、定数も等しい同一の関数であっても良い。また、上記実施形態のマスク生成処理（Ｓ４）では、偏角θを１ずつ増加して参照ポイントの座標を決定していたが、例えば、図１２に示すように、所定の間隔を空けて、参照ポイントを配置しても良く、縮小画像用マスクと、元画像用マスクとで、その間隔を異ならせるものであっても良い。
【０１７４】
また、上記実施形態では、本発明の画像処理プログラムは、プリンタ１に組み込まれたＣＰＵ１１により実行されるものとしたが、パーソナルコンピュータにアプリケーションとして供給され、パーソナルコンピュータに組み込まれたＣＰＵなどにより実行されるようにしてもよい。
【０１７５】
また、レティネックス処理は、ＳＳＲ（シングルスケール法）であってもＭＳＲ（マルチスケール法）であってもよい。また、計算は極座標系を用いたが、直交座標系を用いてもよい。
【０１７６】
また、上記実施形態の画像処理では、ＣＰＵ１１によりレティネックス処理などを行うものとしたが、ＤＳＰ（Ｄｉｇｉｔａｌ
Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓｏｒ）により行ってもよい。ＤＳＰを用いると、より高速に積和演算などの処理を実行することができる。
【図面の簡単な説明】
【０１７７】
【図１】本発明の実施形態の画像処理プログラムを搭載したプリンタの電気的構成を示すブロック図である。
【図２】印刷パラメータを設定する画面を示す図である。
【図３】画像処理プログラムにより行われる前処理を示すフロー図である。
【図４】前処理に続いて実行される後処理を示すフローチャートである。
【図５】印刷モードが写真モードである場合に参照される写真モード用テーブルである。
【図６】印刷モードが普通モードである場合に参照される普通モード用テーブルである。
【図７】テーブルを参照する処理を示すフローチャートである。
【図８】（ａ）は、縮小画像用マスクＦｓが、領域内のいずれの座標にフィルタ係数を有するのかを示す模式図であり、（ｂ）は、元画像用マスクＦが、領域内のいずれの座標にフィルタ係数を有するかを示す模式図である。
【図９】マスク生成処理を示すフローチャートである。
【図１０】変形例のマスク生成処理を示すフローチャートである。
【図１１】関数ｒ＝ｆ（θ）および関数ｒ＝ｇ（θ）が、螺旋関数である場合に描かれる軌跡を示す図である。
【図１２】関数ｒ＝ａ・ｓｉｎ２θで表される正葉曲線関数の軌跡を示す図である。
【図１３】（ａ）は、マスクＭと画像Ｇとを模式的に示す図であり、（ｂ）は（ａ）に示すマスクＭの、最外側の周囲の要素と、一列飛ばした内側の一周のフィルタ係数を間引いたマスクＭを示す図である。
【図１４】正規化を行うためのクリップ範囲について説明するためのヒストグラム図である。
【符号の説明】
【０１７８】
１                        プリンタ（画像処理装置）
２                        パーソナルコンピュータ
１１                      ＣＰＵ
１２                      ＲＯＭ
１２ａ                    画像処理プログラムメモリ
１３                      ＲＡＭ
１３ａ                    元画像メモリ
１３ｈ                    マスクメモリ
Ｆ                        元画像用マスク
Ｆｓ                      縮小画像用マスク
【図１】
2008118208.tif 000010
【図２】
2008118208.tif 000011
【図３】
2008118208.tif 000012
【図４】
2008118208.tif 000013
【図５】
2008118208.tif 000014
【図６】
2008118208.tif 000015
【図７】
2008118208.tif 000016
【図８】
2008118208.tif 000017
【図９】
2008118208.tif 000018
【図１０】
2008118208.tif 000019
【図１１】
2008118208.tif 000020
【図１２】
2008118208.tif 000021
【図１３】
2008118208.tif 000022
【図１４】
2008118208.tif 000023