(57)【要約】【課題】レティネックス処理による画像補正を高速で行うことができる上、レティネックス処理の実行に通常必要なメモリ量を確保することが困難な状況下にあっても、レティネックス処理を行うことができる画像処理装置および画像処理プログラムを提供すること。【解決手段】通常のレティネックス処理を行うために必要な空き容量がＲＡＭにない場合（Ｓ３２：Ｎｏ）、空き容量フラグをオフのままとして、通常のレティネックス処理が実行不能であることを示し、Ｓ３５〜Ｓ３９の処理を回避して、（４）式の反射光成分値の項（ｒｅｆｌｅ）に最頻度値メモリに記憶される正規化反射率ｒｅｆｌｅを代入して、出力値Ｏｕｔｙを算出する（Ｓ４３）。つまり、必要なメモリ領域を確保できない場合には、フィルタ演算を行う工程３、対数値Ｒの算出を行う工程４、対数値Ｒの正規化を行う工程７をスキップして、出力値Ｏｕｔを生成する工程８を実行する。【選択図】図６
2008252766.tif 000002
【特許請求の範囲】
【請求項１】
元画像の注目画素を含む周辺画素領域に対するフィルタ演算を行って各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する元画像平均画素値生成手段と、前記元画像平均画素値生成手段により生成された平均画素値と元画像の注目画素の画素値とに対する対数演算処理に基づいて、注目画素と周辺画素との明るさの比を示す反射光成分値を元画像の各画素について算出する元画像反射光成分値算出手段と、前記元画像反射光成分値算出手段により算出された元画像の各反射光成分値と、注目画素の画素値とに基づくと共に、反射光成分値に応じて変化する画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換する変換手段とを有し、前記変換手段により、元画像の注目画素の画素値を、注目画素と周辺画素との明るさの比に応じて補正する画像処理装置において、
元画像を縮小して縮小画像を形成する縮小画像形成手段と、
前記縮小画像形成手段により形成された縮小画像の各画素を注目画素とし、前記注目画素を含む周辺画素領域に対するフィルタ演算を行って、縮小画像の各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する縮小平均画素値生成手段と、
前記縮小平均画素値生成手段により生成された平均画素値と縮小画像の注目画素の画素値とに対する対数演算処理に基づいて、縮小画像の各画素の反射光成分値を算出する縮小反射光成分値算出手段と、
前記縮小反射光成分値算出手段により算出された反射光成分値の各値の頻度を集計する頻度集計手段と、
前記頻度集計手段により集計された頻度分布から求められる反射光成分値の最頻度値を記憶する最頻度値記憶手段とを備えており、
前記変換手段は、前記元画像反射光成分値算出手段により元画像から算出される反射光成分値に代えて、前記最頻度値記憶手段に記憶される最頻度値を用い、前記最頻度値と元画像の注目画素の画素値とに基づくと共に、前記最頻度値にて規定される画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換することにより、前記元画像平均画素値生成手段による元画像の平均画素値の生成と前記元画像反射光成分値算出手段による元画像の反射光成分値の算出とを省略して、元画像の明度を補正する簡易補正手段を備えていることを特徴とする画像処理装置。
【請求項２】
前記頻度集計手段により集計された頻度分布に基づいて反射光成分値の正規化を行う際のパラメータを設定する正規化パラメータ設定手段と、
前記正規化パラメータ設定手段によって設定されたパラメータに基づいて、前記元画像反射光成分値算出手段により算出された反射光成分値および前記最頻度値記憶手段に記憶される最頻度値を正規化する正規化手段とを備えており、
前記変換手段は、前記正規化手段により正規化された反射光成分値を用いて元画像の画素値を変換するものであり、
前記簡易補正手段は、前記正規化手段により正規化された最頻度値を用いて元画像の画素値を変換するものであることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記元画像平均画素値生成手段による元画像の平均画素値の生成と、前記元画像反射光成分値算出手段による元画像の反射光成分値の算出と、その算出された元画像の反射光成分値を用いた前記変換手段による画素値の変換とを行って元画像を補正するために必要なメモリ容量を確保できるかを判断する判断手段を備えており、
前記判断手段により必要なメモリ容量を確保できないと判断された場合に、前記変換手段は、前記簡易補正手段によって元画像の画素値の変換を実行するものであることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記判断手段により必要なメモリ容量を確保できると判断されると、
前記元画像平均画素値生成手段は、元画像の平均画素値を生成し、
前記元画像反射光成分値算出手段は、前記元画像平均画素値生成手段にて生成された平均画素値を用いて元画像の反射光成分値の算出を実行し、
前記変換手段は、前記簡易補正手段によらず、前記元画像反射光成分値算出手段にて算出された元画像の反射光成分値を用いて元画像の画素値の変換を実行することを特徴とする請求項３記載の画像処理装置。
【請求項５】
注目画素を含む周辺画素領域に対するフィルタ演算を行って各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する平均画素値生成手段と、前記平均画素値生成手段により生成された平均画素値と注目画素の画素値とに対する対数演算処理に基づいて、注目画素と周辺画素との明るさの比を示す反射光成分値を各画素について算出する反射光成分値算出手段と、前記反射光成分値算出手段により算出された反射光成分値と、注目画素の画素値とに基づくと共に、反射光成分値に応じて変化する画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換する変換手段とを有し、前記変換手段により、元画像の注目画素の画素値を、注目画素と周辺画素との明るさの比に応じて補正する画像処理装置において、
元画像を縮小して縮小画像を形成する縮小画像形成手段を有し、
前記平均画素値生成手段は、前記縮小画像形成手段により形成された縮小画像の各画素を注目画素とし、前記注目画素を含む周辺画素領域に対するフィルタ演算を行って、縮小画像の各注目画素に対応する周辺画素の平均画素値をそれぞれ生成するものであり、
前記反射光成分値算出手段は、前記平均画素値生成手段により生成された縮小画像の平均画素値と縮小画像の注目画素の画素値とに対する対数演算処理に基づいて、縮小画像の各画素の反射光成分値を算出するものであり、
更に、前記反射光成分値算出手段により算出された反射光成分値の各値の頻度を集計する頻度集計手段と、
前記頻度集計手段により集計された頻度分布から求められる反射光成分値の最頻度値を記憶する最頻度値記憶手段とを備え、
前記変換手段は、前記最頻度値記憶手段に記憶される最頻度値を反射光成分値として用い、前記最頻度値と元画像の注目画素の画素値とに基づくと共に、前記最頻度値にて規定される画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換することにより、元画像の明度の補正を行うものであることを特徴とする画像処理装置。
【請求項６】
元画像の補正処理を行う画像処理装置で実行され、元画像の注目画素を含む周辺画素領域に対するフィルタ演算を行って各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する元画像平均画素値生成ステップと、前記元画像平均画素値生成ステップにより生成された平均画素値と元画像の注目画素の画素値とに対する対数演算処理に基づいて、注目画素と周辺画素との明るさの比を示す反射光成分値を元画像の各画素について算出する元画像反射光成分値算出ステップと、前記元画像反射光成分値算出ステップにより算出された元画像の各反射光成分値と、注目画素の画素値とに基づくと共に、反射光成分値に応じて変化する画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換する変換ステップとを有し、前記変換ステップにより、元画像の注目画素の画素値を、注目画素と周辺画素との明るさの比に応じて補正する画像処理プログラムにおいて、
元画像を縮小して縮小画像を形成する縮小画像形成ステップと、
前記縮小画像形成ステップにより形成された縮小画像の各画素を注目画素とし、前記注目画素を含む周辺画素領域に対するフィルタ演算を行って、縮小画像の各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する縮小平均画素値生成ステップと、
前記縮小平均画素値生成ステップにより生成された平均画素値と縮小画像の注目画素の画素値とに対する対数演算処理に基づいて、縮小画像の各画素の反射光成分値を算出する縮小反射光成分値算出ステップと、
前記縮小反射光成分値算出ステップにより算出された反射光成分値の各値の頻度を集計する頻度集計ステップと、
前記頻度集計ステップにより集計された頻度分布から求められる反射光成分値の最頻度値を記憶する最頻度値記憶ステップとを備えており、
前記変換ステップは、前記元画像反射光成分値算出ステップにより元画像から算出される反射光成分値に代えて、前記最頻度値記憶ステップによって記憶された最頻度値を用い、前記最頻度値と元画像の注目画素の画素値とに基づくと共に、前記最頻度値にて規定される画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換することにより、前記元画像平均画素値生成ステップによる元画像の平均画素値の生成と前記元画像反射光成分値算出ステップによる元画像の反射光成分値の算出とを省略して、元画像の明度を補正する簡易補正ステップを備えていることを特徴とする画像処理プログラム。
【請求項７】
前記頻度集計ステップにより集計された頻度分布に基づいて反射光成分値の正規化を行う際のパラメータを設定する正規化パラメータ設定ステップと、
前記正規化パラメータ設定ステップによって設定されたパラメータに基づいて、前記元画像反射光成分値算出ステップにより算出された反射光成分値および前記最頻度値記憶ステップにて記憶された最頻度値を正規化する正規化ステップとを備えており、
前記変換ステップは、前記正規化ステップにより正規化された反射光成分値を用いて元画像の画素値を変換するものであり、
前記簡易補正ステップは、前記正規化ステップにより正規化された最頻度値を用いて元画像の画素値を変換するものであることを特徴とする請求項６記載の画像処理プログラム。
【請求項８】
前記元画像平均画素値生成ステップによる元画像の平均画素値の生成と、前記元画像反射光成分値算出ステップによる元画像の反射光成分値の算出と、その算出された元画像の反射光成分値を用いた前記変換ステップによる画素値の変換とを行って元画像を補正するために必要なメモリ容量を確保できるかを判断する判断ステップを備えており、
前記判断ステップにより必要なメモリ容量を確保できないと判断された場合に、前記変換ステップは、前記簡易補正ステップによって元画像の画素値の変換を実行するものであることを特徴とする請求項６又は７に記載の画像処理プログラム。
【請求項９】
前記判断ステップにより必要なメモリ容量を確保できると判断されると、
前記元画像平均画素値生成ステップは、元画像の平均画素値を生成し、
前記元画像反射光成分値算出ステップは、前記元画像平均画素値生成ステップにて生成された平均画素値を用いて元画像の反射光成分値の算出を実行し、
前記変換ステップは、前記簡易補正ステップによらず、前記元画像反射光成分値算出ステップにて算出された元画像の反射光成分値を用いて元画像の画素値の変換を実行することを特徴とする請求項８記載の画像処理プログラム。
【請求項１０】
元画像の補正処理を行う画像処理装置で実行され、注目画素を含む周辺画素領域に対するフィルタ演算を行って各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する平均画素値生成ステップと、前記平均画素値生成ステップにより生成された平均画素値と注目画素の画素値とに対する対数演算処理に基づいて、注目画素と周辺画素との明るさの比を示す反射光成分値を各画素について算出する反射光成分値算出ステップと、前記反射光成分値算出ステップにより算出された反射光成分値と、注目画素の画素値とに基づくと共に、反射光成分値に応じて変化する画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換する変換ステップとを有し、前記変換ステップにより、元画像の注目画素の画素値を、注目画素と周辺画素との明るさの比に応じて補正する画像処理プログラムにおいて、
元画像を縮小して縮小画像を形成する縮小画像形成ステップを有し、
前記平均画素値生成ステップは、前記縮小画像形成ステップにより形成された縮小画像の各画素を注目画素とし、前記注目画素を含む周辺画素領域に対するフィルタ演算を行って、縮小画像の各注目画素に対応する周辺画素の平均画素値をそれぞれ生成するものであり、
前記反射光成分値算出ステップは、前記平均画素値生成ステップにより生成された縮小画像の平均画素値と縮小画像の注目画素の画素値とに対する対数演算処理に基づいて、縮小画像の各画素の反射光成分値を算出するものであり、
更に、前記反射光成分値算出ステップにより算出された反射光成分値の各値の頻度を集計する頻度集計ステップと、
前記頻度集計ステップにより集計された頻度分布から求められる反射光成分値の最頻度値を記憶する最頻度値記憶ステップとを備え、
前記変換ステップは、前記最頻度値記憶ステップによって記憶される最頻度値を反射光成分値として用い、前記最頻度値と元画像の注目画素の画素値とに基づくと共に、該最頻度値にて規定される画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換することにより、元画像の明度の補正を行うものであることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理プログラムに関し、特に、レティネックス処理による画像補正を高速で行うことができる上、レティネックス処理の実行に通常必要なメモリ量を確保することが困難な状況下にあっても、レティネックス処理を行うことができる画像処理装置および画像処理プログラムに関するものである。
【背景技術】
【０００２】
逆光条件下で被写体が撮像された場合、被写体部分の画像は、詳細な態様が判別困難となるほど明度やコントラストの低い不明瞭な逆光画像となる。かかる逆光画像のみならず、露光の過不足や、撮像時のぶれやぼけ、ノイズ、光量不足などによる劣悪な画像を、画像処理によって明度やコントラストを向上させて画質を改良することが行われている。かかる画像処理の１手法として、レティネックス処理（Ｒｅｔｉｎｅｘ処理）が知られている。レティネックス処理は、主に低画質部分の画質改良を行うものである。このレティネックス処理では、元の画像は、リフレクタンス成分（反射光成分）とイルミナンス成分（照明光成分）との２の構成成分で成り立っているとされる。
【０００３】
レティネックス処理は、大略的には、元の画素値から反射光成分値と照明光成分値とを算出し、照明光成分値に対し反射光成分値に応じた補正を施した後、その補正された照明光成分値と元の画素値とを用いて出力値を生成することで画像補正を達成するものである。
【０００４】
図７は、かかるレティネックス処理の概要を示したものである。この図７を参照して、具体的にレティネックス処理の内容を説明する。
【０００５】
レティネックス処理では、まず、元の画像の各画素（注目画素）の反射光成分値を求めるために周辺画素の平均輝度値が求められる。周辺画素は、注目画素を含む注目画素周辺の領域に属する画素である。この周辺画素の平均輝度値は、周辺画素に対し、注目画素からの距離に応じた重みを加味してその画素値を平均（積和演算）したものであり、換言すれば、周辺画素の値を反映させることで元の注目画素の画素値を補正した値となっている。
【０００６】
この周辺画素の平均輝度値を求めるためには、まず、周辺画素の平均輝度値を算出するためのＭＳＲマスク（ガウスフィルタ）が生成される（図７（ａ））。元画像（入力画像）の各画素を注目画素として（１）式に従ったガウスフィルタ処理によって、周辺画素の平均輝度値が算出される（図７（ｂ））。
【０００７】
図７の（ｂ−１）には、ｍ×ｎのマトリクスで形成されたガウスフィルタ（ＭＳＲマスク）を模式的に示している。また、図７の（ｂ−２）には、このガウスフィルタのマトリクスの各要素に格納されるフィルタ係数（重み）の内容を示している。尚、図７の（ｂ−２）におけるグラフは、横軸に各要素の位置（フィルタサイズ）、縦軸にフィルタ係数を示している。横軸の中心付近に示した「０」は、注目画素に重ねられるフィルタ中心位置であり、「０」から遠ざかるほどフィルタ中心から遠い要素の位置となる。図７の（ｂ−２）に示すように、ガウスフィルタは、中心値を１とすると共に、中心から四方へ向かって正規分布関数に従って次第にフィルタ係数が小さくなるように設計されている。
【０００８】
【数１】
2008252766.tif 000003
ここで、ｘは、横方向の座標を、ｙは、縦方向の座標を、Ｉ（ｘ，ｙ）は、座標（ｘ、ｙ）における信号強度値（画素値，画素信号の値）を、Ｆ（ｘ，ｙ）は、ガウスフィルタを、＊は、畳み込み演算（コンボリューション）をそれぞれ示す。
【０００９】
フィルタを用いてなされるこのようなフィルタ処理、即ち、演算は、フィルタ処理する元画像の注目画素とフィルタ中心とを重ね合わせ、フィルタの各要素に配置（格納）されたフィルタ係数（重み）と元画像の対応する位置の画素値とを乗算すると共にその乗算で得られた各値の総和を算出する積和演算を、各画素について行う畳み込み演算である。尚、フィルタ演算は、求めた総和をフィルタ係数の合計値で除す演算を含むものであってもよい。
【００１０】
ガウスフィルタ処理により、各画素をそれぞれ注目画素としてｍ×ｎの領域にガウスフィルタＦ（ｘ，ｙ）による畳み込み演算が行われると、注目画素からの距離に応じた重みを加味しつつ平均された周辺画素の平均輝度値が、各画素のそれぞれに対応して算出されることとなる。上記したように、ガウスフィルタではマトリクスの各要素に配置された重みが距離に応じて異なる値となっているので、算出される平均輝度値は、周辺画素領域に属する各画素値を単純に平均したものとは異なる。
【００１１】
平均輝度値が求められると、反射光成分値が求められる。具体的には、（２）式に従って、元画像の各画素値を、算出された対応する平均輝度値で除し、得られた値を自然対数化する（図７（ｃ））。
【００１２】
【数２】
2008252766.tif 000004
この対数化された値（対数値）をＲとする。かかる対数演算では、元画像の各画素毎に、対応する対数値Ｒ（即ち、Ｒ（ｘ，ｙ））が求められる。求められた対数値Ｒは、注目画素と周辺画素との相対的な明るさを示すものであって、元の画素の反射光成分値に相当するが、計算機処理でき、且つ、画素値として取り扱える値に変換する必要がある。
【００１３】
（２）式からわかるように、この対数値Ｒは、注目画素から周辺画素の画素値を差分したものの対数である。つまり、両者の相対的明るさを示すものである。従って、注目画素と周辺画素との明るさに差が無ければ、対数値Ｒは「０」となるが、レティネックス処理では、後半の演算処理で反射光成分値は分母に挿入されるので、反射光成分値が「０」であると演算不能となってしまうのである。
【００１４】
故に、この対数値Ｒが求められると、対数値Ｒを正規化するために全対数値Ｒの最大値から最小値までの範囲で対数値Ｒのヒストグラム（頻度分布）が作成される（図７（ｄ））。
【００１５】
その後、ヒストグラムの補正を行う（図７（ｅ））。かかるヒストグラム補正では、作成されたヒストグラムからメジアン値Ｍを求め、そのメジアン値Ｍから大きい側へ所定％（例えば４５％）の画素数を含む範囲の上限値をＵ、メジアン値Ｍから小さい側へ所定％（例えば４５％）の画素数を含む範囲の下限値をＤとする。
【００１６】
続いて、対数値Ｒを正規化した正規化反射率（正規化レティネックス値）ｒｅｆｌｅを求める（図７（ｆ））。具体的には、求められた上限値Ｕおよび下限値Ｄの値を、それぞれ予め定めた上限値ｕおよび下限値ｄとして、先に算出された上限値Ｕ〜下限値Ｄの範囲の対数値Ｒを上限値ｕ〜下限値ｄの範囲の値に正規化する（正規化反射率ｒｅｆｌｅの算出）。この正規化は、例えば、（３）式に従って実行される。
【００１７】
【数３】
2008252766.tif 000005
尚、下限値Ｄ以下である対数値Ｒは下限値ｄに、上限値Ｕ以上である対数値Ｒは、上限値ｕとされる。ここで、下限値ｄを「０」を超える値とすることで、先に求められた対数値Ｒは、計算機処理できるように正規化された正規化反射率ｒｅｆｌｅとされるのである。得られた正規化反射率ｒｅｆｌｅは、元画像の反射光成分値（正規化された反射光成分値）であって、最終的な反射光成分値（出力値Ｏｕｔ）を求めるためのパラメータとなる値である。
【００１８】
その後、正規化反射率ｒｅｆｌｅに対し、カラー補正処理であるＣＲ処理が実行された後（図７（ｇ））、出力値Ｏｕｔが生成される。出力値Ｏｕｔは、（４）式に従って算出される。この出力値Ｏｕｔは、出力画像の各画素の画素値（出力画像データ）となる。
【００１９】
【数４】
2008252766.tif 000006
レティネックス処理では、上記したように、画素値は、照明光成分値と反射光成分値との合成値とされており、照明光成分値は輝度を反映し、反射光成分値は色を反映するものとされている。ここで、照明光成分値は、元画像の画素値を反射光成分値で除して求められるので、（４）式においては、分母が照明光成分値に相当する。尚、元画像の画素値は「０」〜「２５５」とされているので、算出された正規化反射率ｒｅｆｌｅ（ｘ，ｙ）についても「０」〜「２５５」で取り扱うべく、２５５が乗算されて画素値として取り扱われる値に変換されている。
【００２０】
（４）式では、元画像の画素値を照明光成分値で除しているので、算出される出力値Ｏｕｔは、反射光成分値となる。出力画像データの画素値としては、色を形成する値が必要であるので、反射光成分値で出力値Ｏｕｔが求められるのである。当然の事ながら、（４）式からも解るように、算出される出力値Ｏｕｔは、ガンマ補正によって明度や階調（コントラスト）が補正された照明光成分が反映された値となっている。
【００２１】
この（４）式に従えば、元画像の画素値と出力画像の画素値との対応関係は、反射光成分値（正規化反射率ｒｅｆｌｅ）に応じて変化するグラフ曲線となる。（４）式で示される関数では、一般に、入力された元画像の画素値は、画素値が小さい側、即ち暗部においては増大（伸張）される補正がなされて、出力値Ｏｕｔとして出力されるように設計されている。その結果、入力値の僅かな変化が大きく出力値Ｏｕｔに反映され、階調変化を増大させるコントラストの強調が行われることとなる。従って、レティネックス処理を行えば、入力された元画像に対し逆光画像部分などの低画質部分の画質が改良された出力画像を生成することができる。
【００２２】
更に、（４）式で示される関数は、元画像の画素値が大きい側、即ち、明部においては、入力された画素値は、正規化反射率ｒｅｆｌｅが小さくなるほどより大きく減少（圧縮）されて出力されるように設計されている。
【００２３】
つまり、レティネックス処理において正規化反射率が小さな値であるほど（言い換えれば対数値Ｒが正であるよりも負であるほうが）、元画像データの画素値が大きくなるにつれ、生成される出力値Ｏｕｔが大きく圧縮される傾向にある。言い換えれば、正規化反射率ｒｅｆｌｅが大きくなるほど、元画像の画素値が同じでも出力値Ｏｕｔは大きくなる。このように、同じ入力値でも、正規化反射率ｒｅｆｌｅ（対数値Ｒ）に応じて、即ち周辺画素との相対的な明るさに応じて、その出力値Ｏｕｔは広い範囲の値を取り得るので、明部において階調変化を増長（形成）し、コントラストを向上させることができるのである。尚、画素値と輝度（明るさ）とは連動しており、画素値が大きいほど輝度は高く（明るく）なり、逆に画素値が小さいほど輝度は低く（暗く）なる。
【００２４】
特開２００１−６９５２５号公報（特許文献１）には、このレティネックス処理をＲＧＢの各プレーンで独立に行った場合に、カラーバランスが崩れたり色ずれが発生するという問題点を解決するために、ＲＧＢ値をＹＣｂＣｒやＹＩＱという輝度成分と色成分により構成される座標空間に変換し、輝度成分Ｙに対してのみレティネックス処理を施し、色成分を維持したまま、ＲＧＢに戻すという方法が開示されている。この方法を用いると輝度成分のみが調整され、色成分は調整されないのでカラーバランスが崩れたり色ずれが発生することがない。また、この方法では、輝度成分のみにレティネックス処理を行うので、ＲＧＢの各プレーンそれぞれにレティネックス処理を行う場合に比べ、計算量が少なく、高速で処理を実行することができとともに、Ｒ（ｘ，ｙ）を正規化するために、ＲＧＢそれぞれについて記憶する必要がなく、輝度のみについて記憶すればよいので、必要な記憶容量は少なくなる。
【００２５】
また、特許３７３１５７７号（特許文献２）には、このレティネックス処理の処理速度を高速にする方法が開示されている。この方法は、元画像を平均画素法などの方法により縮小画像（解像度が低い）を形成し、その縮小画像の各画素について周辺平均輝度を求めた周辺平均輝度画像（ボケ画像）を形成し、そのボケ画像を拡大した画像と元画像からレティネックス処理画像を形成し、更に、そのレティネックス処理画像と元画像とから出力画像を形成している。
【特許文献１】特開２００１−６９５２５号公報
【特許文献２】特許３７３１５７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２６】
しかしながら、従来の文献に開示された処理では、元画像の全画素について、それぞれ反射光成分値を演算して記憶し、全画素分の反射光成分値を得た後に、その反射光成分値を集計して正規化パラメータを決定するので、全画素分の反射光成分値を記憶するための膨大な記憶容量が必要という問題点があった。
【００２７】
尚かつ、反射光成分値（対数値Ｒ）は、対数演算により求まる数値であるので、小数点を用いて記録する必要がある。浮動小数点では、４バイト、倍精度実数の場合には８バイトで画素毎に記憶されるので、汎用的に用いられる他の画像処理に比べて、必要とされる記憶容量を更に増加させることとなっている。
【００２８】
データを記憶するために確保できる記憶容量は、基本的には装置に搭載されているＲＡＭの容量によって規定されるので、その結果、搭載されているＲＡＭの容量によっては、必要なメモリ量を確保することができず、レティネックス処理を行うことができないという問題点があった。
【００２９】
また、ファクシミリ動作や印刷動作を行う多機能周辺装置や、プリンタなどをレティネックス処理を搭載した構成とする場合、画像処理以外に、印刷動作の制御や通信動作の制御にもＲＡＭを割り当てる必要がある。プリンタや多機能周辺装置においては、印刷動作、通信動作は、装置の役割からして必須のものであり、画像処理よりも優先して実行されるように設計されることが多い。このため、印刷動作、通信動作、画像処理がそれぞれ単独で実行されるには十分な容量のＲＡＭが備えられた場合であっても、印刷動作あるいは通信動作と並行して画像処理を実行しようとすれば、当然、レティネックス処理に使用できるメモリ量は制限されるので、レティネックス処理が実行不能となってしまうという問題点があった。
【００３０】
また、従来の処理では、全画素分の反射光成分値を演算してから正規化パラメータを決定し、その後、反射光成分値を正規化して得られるレティネックス値によって画素値を補正し出力するので、処理を開始してから画素値の出力開始までに多大な処理時間が必要となり、画像処理全体の処理速度の低下させてしまうという問題点があった。
【００３１】
本発明は、上記問題点を解決するためになされたものであり、レティネックス処理による画像補正を高速で行うことができる上、レティネックス処理の実行に通常必要なメモリ量を確保することが困難な状況下にあっても、レティネックス処理を行うことができる画像処理装置および画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【００３２】
上記目的を達成するために、請求項１記載の画像処理装置は、元画像の注目画素を含む周辺画素領域に対するフィルタ演算を行って各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する元画像平均画素値生成手段と、前記元画像平均画素値生成手段により生成された平均画素値と元画像の注目画素の画素値とに対する対数演算処理に基づいて、注目画素と周辺画素との明るさの比を示す反射光成分値を元画像の各画素について算出する元画像反射光成分値算出手段と、前記元画像反射光成分値算出手段により算出された元画像の各反射光成分値と、注目画素の画素値とに基づくと共に、反射光成分値に応じて変化する画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換する変換手段とを有し、前記変換手段により、元画像の注目画素の画素値を、注目画素と周辺画素との明るさの比に応じて補正するものであり、元画像を縮小して縮小画像を形成する縮小画像形成手段と、前記縮小画像形成手段により形成された縮小画像の各画素を注目画素とし、前記注目画素を含む周辺画素領域に対するフィルタ演算を行って、縮小画像の各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する縮小平均画素値生成手段と、前記縮小平均画素値生成手段により生成された平均画素値と縮小画像の注目画素の画素値とに対する対数演算処理に基づいて、縮小画像の各画素の反射光成分値を算出する縮小反射光成分値算出手段と、前記縮小反射光成分値算出手段により算出された反射光成分値の各値の頻度を集計する頻度集計手段と、前記頻度集計手段により集計された頻度分布から求められる反射光成分値の最頻度値を記憶する最頻度値記憶手段とを備えており、前記変換手段は、前記元画像反射光成分値算出手段により元画像から算出される反射光成分値に代えて、前記最頻度値記憶手段に記憶される最頻度値を用い、前記最頻度値と元画像の注目画素の画素値とに基づくと共に、前記最頻度値にて規定される画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換することにより、前記元画像平均画素値生成手段による元画像の平均画素値の生成と前記元画像反射光成分値算出手段による元画像の反射光成分値の算出とを省略して、元画像の明度を補正する簡易補正手段を備えている。
【００３３】
請求項２記載の画像処理装置は、請求項１記載の画像処理装置において、前記頻度集計手段により集計された頻度分布に基づいて反射光成分値の正規化を行う際のパラメータを設定する正規化パラメータ設定手段と、前記正規化パラメータ設定手段によって設定されたパラメータに基づいて、前記元画像反射光成分値算出手段により算出された反射光成分値および前記最頻度値記憶手段に記憶される最頻度値を正規化する正規化手段とを備えており、前記変換手段は、前記正規化手段により正規化された反射光成分値を用いて元画像の画素値を変換するものであり、前記簡易補正手段は、前記正規化手段により正規化された最頻度値を用いて元画像の画素値を変換するものである。
【００３４】
請求項３記載の画像処理装置は、請求項１又は２に記載の画像処理装置において、前記元画像平均画素値生成手段による元画像の平均画素値の生成と、前記元画像反射光成分値算出手段による元画像の反射光成分値の算出と、その算出された元画像の反射光成分値を用いた前記変換手段による画素値の変換とを行って元画像を補正するために必要なメモリ容量を確保できるかを判断する判断手段を備えており、前記判断手段により必要なメモリ容量を確保できないと判断された場合に、前記変換手段は、前記簡易補正手段によって元画像の画素値の変換を実行するものである。
【００３５】
請求項４記載の画像処理装置は、請求項３記載の画像処理装置において、前記判断手段により必要なメモリ容量を確保できると判断されると、前記元画像平均画素値生成手段は、元画像の平均画素値を生成し、前記元画像反射光成分値算出手段は、前記元画像平均画素値生成手段にて生成された平均画素値を用いて元画像の反射光成分値の算出を実行し、前記変換手段は、前記簡易補正手段によらず、前記元画像反射光成分値算出手段にて算出された元画像の反射光成分値を用いて元画像の画素値の変換を実行する。
【００３６】
請求項５記載の画像処理装置は、注目画素を含む周辺画素領域に対するフィルタ演算を行って各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する平均画素値生成手段と、前記平均画素値生成手段により生成された平均画素値と注目画素の画素値とに対する対数演算処理に基づいて、注目画素と周辺画素との明るさの比を示す反射光成分値を各画素について算出する反射光成分値算出手段と、前記反射光成分値算出手段により算出された反射光成分値と、注目画素の画素値とに基づくと共に、反射光成分値に応じて変化する画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換する変換手段とを有し、前記変換手段により、元画像の注目画素の画素値を、注目画素と周辺画素との明るさの比に応じて補正するものであり、元画像を縮小して縮小画像を形成する縮小画像形成手段を有し、前記平均画素値生成手段は、前記縮小画像形成手段により形成された縮小画像の各画素を注目画素とし、前記注目画素を含む周辺画素領域に対するフィルタ演算を行って、縮小画像の各注目画素に対応する周辺画素の平均画素値をそれぞれ生成するものであり、前記反射光成分値算出手段は、前記平均画素値生成手段により生成された縮小画像の平均画素値と縮小画像の注目画素の画素値とに対する対数演算処理に基づいて、縮小画像の各画素の反射光成分値を算出するものであり、更に、前記反射光成分値算出手段により算出された反射光成分値の各値の頻度を集計する頻度集計手段と、前記頻度集計手段により集計された頻度分布から求められる反射光成分値の最頻度値を記憶する最頻度値記憶手段とを備え、前記変換手段は、前記最頻度値記憶手段に記憶される最頻度値を反射光成分値として用い、前記最頻度値と元画像の注目画素の画素値とに基づくと共に、前記最頻度値にて規定される画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換することにより、元画像の明度の補正を行うものである。
【００３７】
請求項６記載の画像処理プログラムは、元画像の補正処理を行う画像処理装置で実行され、元画像の注目画素を含む周辺画素領域に対するフィルタ演算を行って各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する元画像平均画素値生成ステップと、前記元画像平均画素値生成ステップにより生成された平均画素値と元画像の注目画素の画素値とに対する対数演算処理に基づいて、注目画素と周辺画素との明るさの比を示す反射光成分値を元画像の各画素について算出する元画像反射光成分値算出ステップと、前記元画像反射光成分値算出ステップにより算出された元画像の各反射光成分値と、注目画素の画素値とに基づくと共に、反射光成分値に応じて変化する画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換する変換ステップとを有し、前記変換ステップにより、元画像の注目画素の画素値を、注目画素と周辺画素との明るさの比に応じて補正するものであり、元画像を縮小して縮小画像を形成する縮小画像形成ステップと、前記縮小画像形成ステップにより形成された縮小画像の各画素を注目画素とし、前記注目画素を含む周辺画素領域に対するフィルタ演算を行って、縮小画像の各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する縮小平均画素値生成ステップと、前記縮小平均画素値生成ステップにより生成された平均画素値と縮小画像の注目画素の画素値とに対する対数演算処理に基づいて、縮小画像の各画素の反射光成分値を算出する縮小反射光成分値算出ステップと、前記縮小反射光成分値算出ステップにより算出された反射光成分値の各値の頻度を集計する頻度集計ステップと、前記頻度集計ステップにより集計された頻度分布から求められる反射光成分値の最頻度値を記憶する最頻度値記憶ステップとを備えており、前記変換ステップは、前記元画像反射光成分値算出ステップにより元画像から算出される反射光成分値に代えて、前記最頻度値記憶ステップによって記憶された最頻度値を用い、前記最頻度値と元画像の注目画素の画素値とに基づくと共に、前記最頻度値にて規定される画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換することにより、前記元画像平均画素値生成ステップによる元画像の平均画素値の生成と前記元画像反射光成分値算出ステップによる元画像の反射光成分値の算出とを省略して、元画像の明度を補正する簡易補正ステップを備えている。
【００３８】
請求項７記載の画像処理プログラムは、請求項６記載の画像処理プログラムにおいて、前記頻度集計ステップにより集計された頻度分布に基づいて反射光成分値の正規化を行う際のパラメータを設定する正規化パラメータ設定ステップと、前記正規化パラメータ設定ステップによって設定されたパラメータに基づいて、前記元画像反射光成分値算出ステップにより算出された反射光成分値および前記最頻度値記憶ステップにて記憶された最頻度値を正規化する正規化ステップとを備えており、前記変換ステップは、前記正規化ステップにより正規化された反射光成分値を用いて元画像の画素値を変換するものであり、前記簡易補正ステップは、前記正規化ステップにより正規化された最頻度値を用いて元画像の画素値を変換するものである。
【００３９】
請求項８記載の画像処理プログラムは、請求項６又は７に記載の画像処理プログラムにおいて、前記元画像平均画素値生成ステップによる元画像の平均画素値の生成と、前記元画像反射光成分値算出ステップによる元画像の反射光成分値の算出と、その算出された元画像の反射光成分値を用いた前記変換ステップによる画素値の変換とを行って元画像を補正するために必要なメモリ容量を確保できるかを判断する判断ステップを備えており、
前記判断ステップにより必要なメモリ容量を確保できないと判断された場合に、前記変換ステップは、前記簡易補正ステップによって元画像の画素値の変換を実行するものである。
【００４０】
請求項９記載の画像処理プログラムは、請求項８記載の画像処理プログラムにおいて、前記判断ステップにより必要なメモリ容量を確保できると判断されると、前記元画像平均画素値生成ステップは、元画像の平均画素値を生成し、前記元画像反射光成分値算出ステップは、前記元画像平均画素値生成ステップにて生成された平均画素値を用いて元画像の反射光成分値の算出を実行し、前記変換ステップは、前記簡易補正ステップによらず、前記元画像反射光成分値算出ステップにて算出された元画像の反射光成分値を用いて元画像の画素値の変換を実行する。
【００４１】
請求項１０記載の画像処理プログラムは、元画像の補正処理を行う画像処理装置で実行され、注目画素を含む周辺画素領域に対するフィルタ演算を行って各注目画素に対応する周辺画素の平均画素値をそれぞれ生成する平均画素値生成ステップと、前記平均画素値生成ステップにより生成された平均画素値と注目画素の画素値とに対する対数演算処理に基づいて、注目画素と周辺画素との明るさの比を示す反射光成分値を各画素について算出する反射光成分値算出ステップと、前記反射光成分値算出ステップにより算出された反射光成分値と、注目画素の画素値とに基づくと共に、反射光成分値に応じて変化する画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換する変換ステップとを有し、前記変換ステップにより、元画像の注目画素の画素値を、注目画素と周辺画素との明るさの比に応じて補正するものであり、元画像を縮小して縮小画像を形成する縮小画像形成ステップを有し、前記平均画素値生成ステップは、前記縮小画像形成ステップにより形成された縮小画像の各画素を注目画素とし、前記注目画素を含む周辺画素領域に対するフィルタ演算を行って、縮小画像の各注目画素に対応する周辺画素の平均画素値をそれぞれ生成するものであり、前記反射光成分値算出ステップは、前記平均画素値生成ステップにより生成された縮小画像の平均画素値と縮小画像の注目画素の画素値とに対する対数演算処理に基づいて、縮小画像の各画素の反射光成分値を算出するものであり、更に、前記反射光成分値算出ステップにより算出された反射光成分値の各値の頻度を集計する頻度集計ステップと、前記頻度集計ステップにより集計された頻度分布から求められる反射光成分値の最頻度値を記憶する最頻度値記憶ステップとを備え、前記変換ステップは、前記最頻度値記憶ステップによって記憶される最頻度値を反射光成分値として用い、前記最頻度値と元画像の注目画素の画素値とに基づくと共に、該最頻度値にて規定される画素値と出力値との対応関係に従って注目画素の画素値を出力値に変換することにより、元画像の明度の補正を行うものである。
【発明の効果】
【００４２】
請求項１記載の画像処理装置によれば、変換手段により、元画像の注目画素が、反射光成分値に応じて変化する画素値と出力値との対応関係に従って出力値に変換されるが、そのためには、元画像の注目画素の画素値と反射光成分値とが必要となる。一方で、本装置では、縮小画像を形成し、その縮小画像に対してフィルタ演算を実行して、縮小画像の各注目画素に対応する周辺画素の平均画素値を生成する。そして、生成された縮小画像の平均画素値に基づいて縮小画像の各画素の反射光成分値を算出すると共に、その反射光成分値の頻度を集計し、その頻度分布から求まる反射光成分値の最頻度値を最頻度値記憶手段に記憶する。本装置には簡易補正手段が設けられており、元画像から算出される反射光成分値に代えて、最頻度値記憶手段に記憶される最頻度値を用い、当該最頻度値にて規定される画素値と出力値との対応関係に従って、注目画素の画素値を変換することができる。このため、元画像からの平均画素値および反射光成分値の算出を省略して、元画像の補正を簡易に行うことができ、元画像の全画素についていちいち反射光成分値を生成して画像補正をする場合に比べて、使用するメモリ量を削減することができるという効果がある。
【００４３】
最頻度値を得るために算出される反射光成分値は、元画像に比べて大幅に画素数の少ない縮小画像から求められるので、平均画素値を生成するためのフィルタ演算や反射光成分値を生成するための対数演算などを展開するためのメモリ量や、演算結果を記憶するためのメモリ量を大幅に抑制することができるからである。
【００４４】
これによれば、簡易補正手段による画像の補正処理を実行できるだけのメモリ量が確保されれば、画像の補正処理を実行できるので、装置に搭載されているメモリの容量不足のために画像の補正処理が不能になるといった事態を回避できるという効果がある。
【００４５】
更には、縮小画像は元画像から形成されたものであるので、元画像の状態が反映されている。そして、この縮小画像から求められる反射光成分値の頻度分布に基づいて最頻度値が設定されるので、元画像の反射光成分値に代えて用いる該最頻度値を、元画像全体に対して幅広く適用できる適切な値とすることができる。故に、元画像の反射光成分値の代わりに最頻度値を代用して画像の補正処理を行っても、良好な補正結果を得ることができるという効果がある。
【００４６】
また、補正を行う元画像は、多種多様であるが、簡易補正手段は、元画像の状態を反映した縮小画像から生成される最頻度値を元画像の反射光成分値の代替値として用いるので、例えば、設計値として初期設定された固定値を代替値として用いるよりも、より元画像に応じた適正な補正結果を得ることができるという効果がある。
【００４７】
請求項２記載の画像処理装置によれば、請求項１記載の画像処理装置の奏する効果に加え、頻度集計手段により集計された頻度分布に基づいて反射光成分値の正規化を行う際のパラメータを設定し、その設定されたパラメータに基づいて、元画像の反射光成分値および縮小画像の最頻度の反射光成分値である最頻度値を正規化する。そして、変換手段にて元画像の画素値を変換する場合および簡易補正手段にて元画像の画素値を変換する場合のいずれの場合においても正規化された反射光成分値を用いて行う。尚、最頻度値は、縮小画像の反射光成分値の最頻度値であって、反射光成分値である。
【００４８】
よって、適正な反射光成分値で元画像の画素値の変換を実行することができ、元画像の補正処理において演算不能となる事態を回避して的確に補正処理を実行できる上、補正後の画像品質を良好なものとすることができるという効果がある。例えば、正規化前の反射光成分値としては、他の値から大きく外れた値や、「０」が算出されることもある（不適正な反射光成分値の算出）。しかし、本装置では、算出された反射光成分値を正規化することができるので、演算に用いる反射光成分値を、適正な値、即ち、０を含まない範囲で且つ適正な大きさの値にすることができ、演算過程に反射光成分値が関わる除算があっても演算不能とならず、補正処理を的確に実行することができる。
【００４９】
また、正規化のパラメータを設定するために頻度集計手段にて集計される反射光成分値は、元画像ではなく、縮小画像に基づいて生成される。このため、反射光成分値の正規化のパラメータを的確に設定するべく、反射光成分値の頻度集計を行っても、その演算回数は、縮小画像の画素数に対応する分で良いので、演算数を低減して処理を高速で行うことができると共に、必要なメモリ量を節約できるという効果がある。その上、縮小画像は元画像を反映したものであるので、縮小画像に基づいて正規化のパラメータを設定することで、元画像に適応した適正なパラメータを設定することができる。
【００５０】
請求項３記載の画像処理装置によれば、請求項１又は２に記載の画像処理装置の奏する効果に加え、元画像の平均画素値の生成と、元画像の反射光成分値の算出と、その算出された元画像の反射光成分値を用いた変換手段による画素値の変換とを行って元画像を補正するために必要なメモリ容量を確保できるかが判断手段によって判断され、ここで必要なメモリ容量を確保できないと判断されると、簡易補正手段によって元画像の画素値の変換を実行する。
【００５１】
メモリの空き容量は、装置の動作状況に応じて変動し、常に同じとは限らないので、必要なメモリ容量を確保できるか判断することで、簡易補正手段によらなければ画像補正ができない状況下であるか否かを的確に判別することができるという効果がある。また、その判断結果に応じて簡易補正手段による画像補正処理を行うことで、必要時に的確に簡易補正手段による画像補正（簡易補正）を実行することが出来るという効果がある。
【００５２】
例えば、簡易補正手段によって画像補正を行うことを、出荷時にデフォルトで指定する構成や、ユーザが装置の使用状況を踏まえて指定する構成とすることもできるが、かかる構成では、「簡易補正を行う」又は「簡易補正を行わない」のいずれかの設定に規制されることとなり、装置の動作状況とは無関係に、設定に従った画像の補正処理が行われる。しかし、本装置では、必要なメモリ容量を確保できるかを判断して簡易補正を行うので、装置の動作状況に臨機応変に対応して簡易補正を実行できる。故に、簡易補正手段が本装置に搭載されているにも関わらず、必要時に動作させることができずに画像の補正処理が実行不能となってしまうといった事態が生じることがない。
【００５３】
請求項４記載の画像処理装置によれば、請求項３記載の画像処理装置の奏する効果に加え、判断手段により必要なメモリ容量を確保できると判断されると、簡易補正手段によらず、変換手段により、元画像反射光成分値算出手段にて算出された元画像の反射光成分値を用いて元画像の画素値の変換を実行するので、メモリの空き容量に応じて、臨機応変に、元画像の反射光成分値を用いた画像補正と、縮小画像の反射光成分値の最頻度値を用いた画像補正（簡易補正）とを切り換えて行うことができる。よって、必要なメモリ容量を確保できる場合には、元画像の反射光成分値を用いた画像補正を行うことができ、十分にメモリに空き容量がある場合おいてまで簡易補正が行われてしまうといった事態を確実に回避することができるという効果がある。
【００５４】
ここで、元画像の反射光成分値を用いて元画像の画素値の変換を行うほうが、簡易補正よりも高画質の補正結果を得ることができる。このため、元画像の反射光成分値を用いて元画像の画素値の変換を行うために必要なメモリ容量を確保できない場合の緊急的な措置として簡易補正を行う一方で、必要なメモリ容量を確保できる場合には、元画像の反射光成分値を用いた画像補正を行うことにより、高画質な画像生成を実現できるというという効果がある。
【００５５】
請求項５記載の画像処理装置によれば、縮小画像を形成し、その縮小画像に対してフィルタ演算を実行して、縮小画像の各注目画素に対応する周辺画素の平均画素値を生成する。そして、生成された縮小画像の平均画素値に基づいて縮小画像の各画素の反射光成分値を算出すると共に、その反射光成分値の頻度を集計し、その頻度分布から求まる反射光成分値の最頻度値を最頻度値記憶手段に記憶する。そして、最頻度値記憶手段に記憶される最頻度値を用い、当該最頻度値にて規定される画素値と出力値との対応関係に従って、注目画素の画素値を出力値に変換するので、元画像からの平均画素値および反射光成分値の算出を行うことなく、元画像の補正を簡易に行うことができ、元画像の全画素についていちいち反射光成分値を生成して画像補正をする場合に比べて、使用するメモリ量を削減することができるという効果がある。
【００５６】
最頻度値を得るために算出される反射光成分値は、元画像に比べて大幅に画素数の少ない縮小画像から求められるので、平均画素値を生成するためのフィルタ演算や反射光成分値を生成するための対数演算などを展開するためのメモリ量や、演算結果を記憶するためのメモリ量を大幅に抑制することができるからである。
【００５７】
これによれば、簡易補正手段による画像の補正処理を実行できるだけのメモリ量が確保されれば、画像の補正処理を実行できるので、装置に搭載されているメモリの容量不足のために画像の補正処理が不能になるといった事態を回避できるという効果がある。
【００５８】
更には、縮小画像は元画像から形成されたものであるので、元画像の状態が反映されている。そして、この縮小画像から求められる反射光成分値の頻度分布に基づいて最頻度値が設定されるので、元画像の反射光成分値に代えて用いる該最頻度値を、元画像全体に対して幅広く適用できる適切な値とすることができる。故に、元画像の反射光成分値の代わりに最頻度値を代用して画像の補正処理を行っても、良好な補正結果を得ることができるという効果がある。
【００５９】
また、補正を行う元画像は、多種多様であるが、簡易補正手段は、元画像の状態を反映した縮小画像から生成される最頻度値を元画像の反射光成分値の代替値として用いるので、例えば、設計値として初期設定された固定値を代替値として用いるよりも、より元画像に応じた適正な補正結果を得ることができるという効果がある。
【００６０】
請求項６記載の画像処理プログラムによれば、変換ステップにより、元画像の注目画素が、反射光成分値に応じて変化する画素値と出力値との対応関係に従って変換されるが、そのためには、元画像の注目画素の画素値と反射光成分値とが必要となる。一方で、本プログラムでは、縮小画像を形成し、その縮小画像に対してフィルタ演算を実行して、縮小画像の各注目画素に対応する周辺画素の平均画素値を生成する。そして、生成された縮小画像の平均画素値に基づいて縮小画像の各画素の反射光成分値を算出すると共に、その反射光成分値の頻度を集計し、その頻度分布から求まる反射光成分値の最頻度値を最頻度値記憶ステップにて記憶し、本プログラムの実行される画像処理装置内部に保持する。本プログラムには簡易補正ステップが設けられているので、元画像から算出される反射光成分値に代えて、保持されている最頻度値を用い、当該最頻度値にて規定される画素値と出力値との対応関係に従って、注目画素の画素値を変換することができる。このため、元画像からの平均画素値および反射光成分値の算出を省略して、元画像の補正を簡易に行うことができ、元画像の全画素についていちいち反射光成分値を生成して画像補正をする場合に比べて、画像補正を実行するために必要となるメモリ量を削減することができるという効果がある。
【００６１】
最頻度値を得るために算出される反射光成分値は、元画像に比べて大幅に画素数の少ない縮小画像から求められるので、平均画素値を生成するためのフィルタ演算や反射光成分値を生成するための対数演算などを展開するためのメモリ量や、演算結果を記憶するためのメモリ量を大幅に抑制することができるからである。
【００６２】
これによれば、簡易補正ステップによる画像の補正処理を実行できるだけのメモリ量が確保されれば、画像の補正処理を実行できるので、本プログラムが実行される装置に搭載されているメモリの容量不足のために画像の補正処理が不能になるといった事態を回避できるという効果がある。
【００６３】
更には、縮小画像は元画像から形成されたものであるので、元画像の状態が反映されている。そして、この縮小画像から求められる反射光成分値の頻度分布に基づいて最頻度値が設定されるので、元画像の反射光成分値に代えて用いる該最頻度値を、元画像全体に対して幅広く適用できる適切な値とすることができる。故に、元画像の反射光成分値の代わりに最頻度値を代用して画像の補正処理を行っても、良好な補正結果を得ることができるという効果がある。
【００６４】
また、補正を行う元画像は、多種多様であるが、簡易補正ステップでは、元画像の状態を反映した縮小画像から生成される最頻度値を元画像の反射光成分値の代替値として用いるので、例えば、設計値として一概に設定された値を代替値として用いるよりも、より元画像に応じた適正な補正結果を得ることができるという効果がある。
【００６５】
更に、本プログラムは、元画像の反射光成分値を用いた画像補正を行うためのステップと共に、縮小画像の反射光成分値の最頻度値を用いた画像補正（簡易補正）を行うためのステップとを備えている。故に、画像処理を行う画像処理装置のＲＡＭ容量が異なるものであっても同じプログラムを使用（プログラムを共通化）することができ、画像処理装置のＲＡＭ容量に応じてプログラムを変更する必要がない。その結果、プログラム開発の負担を軽減できる。
【００６６】
請求項７記載の画像処理プログラムによれば、請求項６記載の画像処理プログラムの奏する効果に加え、頻度集計ステップにより集計された頻度分布に基づいて反射光成分値の正規化を行う際のパラメータを設定し、その設定されたパラメータに基づいて、元画像の反射光成分値および縮小画像の最頻度の反射光成分値である最頻度値を正規化する。そして、変換ステップにて元画像の画素値を変換する場合および簡易補正ステップにて元画像の画素値の変換するいずれの場合においても正規化された反射光成分値を用いて行う。尚、最頻度値は、縮小画像の反射光成分値の最頻度値であって、反射光成分値の１つである。
【００６７】
よって、適正な反射光成分値で元画像の画素値の変換を実行することができ、元画像の補正処理において演算不能となる事態を回避して的確に補正処理を実行できる上、補正後の画像品質を良好なものとすることができるという効果がある。例えば、正規化前の反射光成分値としては、他の値から大きく外れた値や、「０」が算出されることもある（不適正な反射光成分値の算出）。しかし、本プログラムでは、算出された反射光成分値を正規化することができるので、演算に用いる反射光成分値を、適正な値、即ち、０を含まない範囲で且つ適正な大きさの値にすることができ、演算過程に反射光成分値が関わる除算があっても演算不能とならず、補正処理を的確に実行することができる。
【００６８】
また、正規化のパラメータを設定するために頻度集計ステップにて集計される反射光成分値は、元画像ではなく、縮小画像に基づいて生成される。このため、反射光成分値の正規化のパラメータを的確に設定するべく、反射光成分値の頻度集計を行っても、その演算回数は、縮小画像の画素数に対応する分で良いので、演算数を低減して処理を高速で行うことができると共に、画像補正の実行のために必要なメモリ量を節約できるという効果がある。その上、縮小画像は元画像を反映したものであるので、縮小画像に基づいて正規化のパラメータを設定することで、元画像に適応した適正なパラメータを設定することができる。
【００６９】
請求項８記載の画像処理プログラムによれば、請求項６又は７に記載の画像処理プログラムの奏する効果に加え、元画像の平均画素値の生成と、元画像の反射光成分値の算出と、その算出された元画像の反射光成分値を用いた変換ステップによる画素値の変換とを行って元画像を補正するために必要なメモリ容量を確保できるかが判断ステップによって判断され、ここで必要なメモリ容量を確保できないと判断されると、簡易補正ステップによって元画像の画素値の変換を実行する。
【００７０】
画像処理プログラムにて制御される画像処理装置に搭載されたメモリの空き容量は、装置の動作状況に応じて変動し、常に同じとは限らないので、必要なメモリ容量を確保できるか判断することで、簡易補正ステップによらなければ画像補正ができない状況下であるか否かを的確に判別することができるという効果がある。また、その判断結果に応じて簡易補正ステップによる画像補正処理を行うことで、必要時に的確に簡易補正ステップによる画像補正（簡易補正）を実行することが出来るという効果がある。
【００７１】
例えば、簡易補正ステップによって画像補正を行うことを、デフォルトで指定しておくことや、ユーザが装置の指定に応じて実行するようにプログラムを構成とすることもできるが、かかる構成では、「簡易補正を行う」又は「簡易補正を行わない」のいずれかの設定に規制されることとなり、装置の動作状況とは無関係に、設定に従った画像の補正処理が行われる。しかし、本プログラムでは、必要なメモリ容量を確保できるかを判断して簡易補正を行うので、装置の動作状況に臨機応変に対応して簡易補正を実行できる。故に、、簡易補正ステップが本プログラムに備えられているにも関わらず、当該ステップを必要時に動作させることができずに画像の補正処理が実行不能となってしまうといった事態が生じることがない。
【００７２】
請求項９記載の画像処理プログラムによれば、請求項８記載の画像処理プログラムの奏する効果に加え、判断ステップにより必要なメモリ容量を確保できると判断されると、簡易補正ステップによらず、変換ステップにより、元画像反射光成分値算出ステップにて算出された元画像の反射光成分値を用いて元画像の画素値の変換を実行するので、メモリの空き容量に応じて、臨機応変に、元画像の反射光成分値を用いた画像補正と、縮小画像の反射光成分値の最頻度値を用いた画像補正（簡易補正）とを切り換えて行うことができる。よって、本プログラムが搭載される画像処理装置において、元画像の反射光成分値を用いた画像補正に必要なメモリ容量を確保できる場合には、元画像の反射光成分値を用いた画像補正を行うことができ、十分にメモリに空き容量がある場合おいてまで簡易補正が行われてしまうといった事態を確実に回避することができるという効果がある。
【００７３】
ここで、元画像の反射光成分値を用いて元画像の画素値の変換を行うほうが、簡易補正よりも高画質の補正結果を得ることができる。このため、元画像の反射光成分値を用いて元画像の画素値の変換を行うために必要なメモリ容量を確保できない場合の緊急的な措置として簡易補正を行う一方で、必要なメモリ容量を確保できる場合には、元画像の反射光成分値を用いた画像補正を行うことにより、高画質な画像生成を実現できるというという効果がある。
【００７４】
請求項１０記載の画像処理プログラムによれば、縮小画像を形成し、その縮小画像に対してフィルタ演算を実行して、縮小画像の各注目画素に対応する周辺画素の平均画素値を生成する。そして、生成された縮小画像の平均画素値に基づいて縮小画像の各画素の反射光成分値を算出すると共に、その反射光成分値の頻度を集計し、その頻度分布から求まる反射光成分値の最頻度値を最頻度値記憶ステップにて記憶し、本プログラムの実行される画像処理装置内部に保持する。そして、最頻度値記憶ステップにて記憶した最頻度値を用い、当該最頻度値にて規定される画素値と出力値との対応関係に従って、注目画素の画素値を出力値に変換するので、元画像からの平均画素値および反射光成分値の算出を行うことなく、元画像の補正を簡易に行うことができ、元画像の全画素についていちいち反射光成分値を生成して画像補正をする場合に比べて、使用するメモリ量を削減することができるという効果がある。
【００７５】
最頻度値を得るために算出される反射光成分値は、元画像に比べて大幅に画素数の少ない縮小画像から求められるので、平均画素値を生成するためのフィルタ演算や反射光成分値を生成するための対数演算などを展開するためのメモリ量や、演算結果を記憶するためのメモリ量を大幅に抑制することができるからである。
【００７６】
これによれば、簡易補正ステップによる画像の補正処理を実行できるだけのメモリ量が確保されれば、画像の補正処理を実行できるので、本プログラムの実行される画像処理装置に搭載されているメモリの容量不足のために、画像の補正処理が不能になるといった事態を回避できるという効果がある。
【００７７】
更には、縮小画像は元画像から形成されたものであるので、元画像の状態が反映されている。そして、この縮小画像から求められる反射光成分値の頻度分布に基づいて最頻度値が設定されるので、元画像の反射光成分値に代えて用いる該最頻度値を、元画像全体に対して幅広く適用できる適切な値とすることができる。故に、元画像の反射光成分値の代わりに最頻度値を代用して画像の補正処理を行っても、良好な補正結果を得ることができるという効果がある。
【００７８】
また、補正を行う元画像は、多種多様であるが、簡易補正ステップは、元画像の状態を反映した縮小画像から生成される最頻度値を元画像の反射光成分値の代替値として用いるので、例えば、設計値として初期設定された固定値を代替値として用いるよりも、より元画像に応じた適正な補正結果を得ることができるという効果がある。
【発明を実施するための最良の形態】
【００７９】
以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図１は、本発明における実施形態の複合機１の外観構成を示す斜視図である。なお、以下の実施形態は本発明を具体化した一例にすぎず、本発明の要旨を変更しない範囲で、実施例を適宜変更できることは言うまでもない。
【００８０】
図１に示すように、本複合機１は、下部に設けられたプリンタ２と、上部に設けられたスキャナ３と、スキャナ３の正面側に設けられた操作パネル４とを一体的に備えたＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）であり、コピー機能、ファクシミリ機能、パーソナルコンピュータ（以下単に「ＰＣ」と称す）など外部のコンピュータ（図示せず）から受信したデータを記録用紙に記録（印刷）するプリンタ機能など複数の機能を実現するものである。
【００８１】
スキャナ３は、ＦＢＳ（Ｆｌａｔｂｅｄ  Ｓｃａｎｎｅｒ）として機能する原稿読取台６に対して、自動原稿搬送機構（ＡＤＦ：Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ、以下「ＡＤＦ」という。）７を備えた原稿カバー８が、背面側の蝶番を介して開閉自在に取り付けられてなる。横長の直方体に形成された原稿読取台６の上面にはプラテンガラスが配設されており、原稿読取台６の内部には、図示しない画像読取ユニットが内蔵されている。
【００８２】
原稿読取台６の内部には、上記画像読取ユニットの移動スペースや、画像読取ユニット或いはそれを支持する部材および駆動させる機構などを配設するスペースが確保されているため、原稿読取台６の上面はプラテンガラスよりも大きく形成されているが、原稿読取台６は、プラテンガラスと平面視で概ね相似形（平面視で横方向に長い矩形状）に形成されている。
【００８３】
このように構成されたスキャナ３をＦＢＳとして使用する場合は、原稿カバー８を開いてプラテンガラス上に原稿を載置し、その後、原稿カバー８を閉じて当該原稿を固定する。そして、読取開始指令が入力されると、上記画像読取ユニットがプラテンガラスの裏面に沿って走査される。これにより、ＦＢＳによる原稿の画像読取りが行われる。
【００８４】
上記画像読取ユニットは、複合機１の奥行き方向を主走査方向とするラインイメージセンサを備えたものであり、光源を発光させて原稿に光を照射し、原稿からの反射光をレンズにより光電変換素子に導き、光電変換素子が反射光強度に応じた電気信号を出力することによって画像を読み取る。ラインイメージセンサとしては、密着型のＣＩＳ（Ｃｏｎｔａｃｔ  Ｉｍａｇｅ  Ｓｅｎｓｏｒ）、或いは、縮小光学系のＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）や、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ：相補型金属酸化膜半導体）などを適用することができる。なお、画像読取ユニットやスキャナ３の内部構成の構成は本発明に直接関係がないので、ここでは詳細な説明は省略する。
【００８５】
ＡＤＦ７は、原稿トレイ９から原稿排出トレイ１０へ原稿搬送路を通じて原稿を搬送するものである。ＡＤＦ７による原稿の搬送過程において、原稿が原稿読取台６上の読取面を通過され、該読取面の下方に待機する上記画像読取ユニットによって該原稿の画像が読み取られる。このようなＡＤＦ７による画像読取りは、原稿カバー８が原稿読取台６に対して閉じられた状態で行われる。なお、本発明においてＡＤＦ７は任意の構成であり、スキャナ３がＡＤＦ７を具備せず、ＦＢＳとしてのみ画像読取を行うものであってもよい。したがって、ＡＤＦ７の詳細な説明については省略する。
【００８６】
プリンタ２は、スキャナ３で読み取られた画像データ或いは外部から入力された画像データに基づいて、記録用紙上に画像を記録する画像記録装置である。このプリンタ２は、上述したように、スキャナ３の下方に配設されている。スキャナ３とプリンタ２は、それらの背面が同一面となるように位置決めされているため、複合機１の背面は凸凹のない平坦形状となっている。なお、プリンタ２は、画像記録方式にインクジェット方式を用いたインクジェットプリンタで構成されているが、電子写真方式や熱転写方式などの種々の画像記録方式を採用することができるのはもちろんである。
【００８７】
複合機１の正面側、換言すれば、プリンタ２の正面側には開口５が形成されている。この開口５内に給紙トレイ１４及び排紙トレイ１５が完全に内包されるように設けられている。給紙トレイ１４と排紙トレイ１５は上下二段となるように配設されており、上段に排紙トレイ１５が設けられ、その下方に給紙トレイ１４が設けられている。
【００８８】
プリンタ２の正面側の端面１７は、上述したように原稿読取台６が横長の直方体に形成されているため、スキャナ３の正面側の端面１８から所定幅だけ正面側に突出している。以下、このように正面側に突出したプリンタ２の正面側の端部を突出部１６と称する。なお、プリンタ２の横幅はスキャナ３の横幅に合わせて形成されている。従って、複合機１は平面視で略正方形をなしている。
【００８９】
プリンタ２には、給紙トレイ１４の奥側から上方へ延びた後に正面側へＵ字状に湾曲して排紙トレイ１５に連結される用紙搬送路が設けられている。給紙トレイ１４に収容された記録用紙は、その短辺を先頭にして用紙搬送路に送り出され、Ｕターン搬送されることによって用紙搬送路中に設けられた画像記録位置に案内される。そして、該画像記録位置で、画像が記録用紙に記録される。画像記録後の記録用紙は排紙トレイ１５に排出される。
【００９０】
プリンタ２の上記開口５の上側には、接続パネル７０が設けられている。この接続パネル７０には、その左端側にＵＳＢ端子７１が配設されている。ＵＳＢ端子７１は、外部機器とＵＳＢ接続することにより該外部機器と本複合機１とを通信可能に接続するコネクタ端子である。また、接続パネル７０の右端側にはスロット部７２が配設されている。スロット部７２はメモリカード（カード型メモリ）を装填可能な複数のカードスロットが設けられている。カードスロットにメモリカードが装填され、該装填されたメモリカードから画像データが後述の制御部２０（図２参照）により読み出される。
【００９１】
複合機１の正面側には、操作パネル４が設けられている。操作パネル４は、突出部１６の上方の空きスペースに適合するよう、横長形状に形成されている。換言すれば、操作パネル４は、その縦幅が、スキャナ３の縦幅からプリンタ２の縦幅を減じた長さ(空きスペースの縦幅)に収まる寸法に形成されている。操作パネル４は、プリンタ２やスキャナ３を操作するためのものであり、各種操作キー４０と液晶ディスプレイ（ＬＣＤ：Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）４１とを具備する。ユーザは、操作パネル４を用いて、所望の指令を入力することができる。複合機１に所定の指令が入力されると、その入力された情報に基づいて該複合機１の動作が制御部２０によって制御される。
【００９２】
特に、本実施形態の複合機１は、操作キー４０として、コピーモードキー、ＦＡＸモードキーなどの各種モードキーを備えている。これらのモードキーにより、ユーザはいずれかのモードを選択する。コピーモードが選択されている場合、スキャナ３により読み取った画像データは、プリンタ２により記録される。ＦＡＸモードキーが選択されている場合、スキャナ３により読み取った画像データは、通信回線を介して他のファクシミリ装置に送信される。
【００９３】
なお、複合機１は、操作パネル４から入力された指令のほか、ＰＣなどのコンピュータに接続されて該コンピュータからプリンタドライバやスキャナドライバ等を介して送信される指令に基づいて動作するようにシステム構成されている。
【００９４】
図１に示すように、ＬＣＤ４１は、操作パネル４に配置可能な最大の縦幅に大型化されている。一方、ＬＣＤ４１の横幅（横寸法）は、その縦幅の４／３倍よりも長いものである。換言すれば、ＬＣＤ４１の縦幅に対する横幅の寸法の比率が４／３より大きく設定されている。ＬＣＤ４１の縦幅に対する横幅の比率は８／３となっている。
【００９５】
図２は、上記のように構成された複合機１の電気的構成を示すブロック図である。この
複合機１は、ケーブルを介してＰＣと接続可能なインターフェイス（以下「Ｉ／Ｆ」と称する）であるパラレルＩ／Ｆ２９と、デジタルカメラと接続可能なＵＳＢ端子７１と、外部メディア（例えば、メモリカードなどフラッシュメモリにより構成される記録媒体）を着脱自在に装着可能なスロット部７２とを備えている。このため、ＰＣ、デジタルカメラ、外部メディアから画像データを入力することができるようになっている。そして、入力された画像データに対して、レティネックス処理による画像処理（画像補正）を行うことができるように構成されている。
【００９６】
制御部２０は、プリンタ２、スキャナ３及び操作パネル４を含む複合機１の動作を統括的に制御するものである。制御部２０は、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）２４を主とするマイクロコンピュータとして構成されており、バス２５を介してＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）２６に接続されている。
【００９７】
ＣＰＵ２１は、この複合機１を総括的に制御する中央演算処理装置である。ＲＯＭ２２は、ＣＰＵ２１により実行される各種制御プログラムやそのプログラムを実行する際に用いられる固定値などを記憶するものであり、コピー動作、プリンタ動作、ファクシミリ動作などを行うための制御プログラム２２ａと、レティネックス処理などの画像処理を行う画像処理プログラムを２２ｂとを備えている。画像処理プログラム２２ｂは、パラレルＩ／Ｆ２９、ＵＳＢ端子７１、スロット部７２を介して、ＰＣ、デジタルカメラ、外部メディアから入力された画像データ（元画像データ）に対しレティネックス処理（Ｒｅｔｉｎｅｘ処理）を実行して、画像データの逆光画像部分などの低画質領域の補正を行った出力画像データを生成するように構成されている。図４から図６のフローチャートに示すプログラムは、画像処理プログラムの一部としてこのＲＯＭ２２に記憶されている。
【００９８】
ＲＡＭ２３は、ＣＰＵ２１が上記プログラムを実行する際に用いる各種データを一時的に記録する記憶領域又は作業領域として使用される書き換え可能なメモリである。ＲＡＭ２３には、複合機１の起動に伴って読み込みが指示されているプログラムやメイン処理のプログラムのためのロードエリア、及びメイン処理に必須の固定値などを記憶するためのエリア等として固定的に確保される領域以外に、実行されるプログラムに対して動的に割り当てられる可変領域が設けられている。各プログラムの実行時には、この可変領域の空き領域（使用されていない領域）において、そのプログラム動作に必要なメモリ領域（記憶領域や作業領域）が確保される。
【００９９】
一般にプログラムは、実行に際し、そのプログラム動作のために必要なメモリ領域を、必要最小量から最大量までの範囲でＣＰＵ２１に要求する。そして、十分な空き領域があれば、プログラムを実行するために必要なメモリ領域が、要求された範囲内で、割り当てられる。複数のプログラムが並行して実行される場合には、各プログラムに割り当てられるメモリ領域は、要求された必要最小量から最大量までの範囲内で、状況に応じて変更される。
【０１００】
また、例えば、新たにプログラムが動作された場合には、現在動作中の他のプログラムに割り当てられているメモリ領域は圧縮され、作動中のプログラムが終了した場合には、現在動作中の他のプログラムに割り当てられているメモリ領域は拡張されるなど、メモリ領域は動的に割り当てられる。
【０１０１】
画像処理の実行時には、画像処理プログラム２２ｂを実行するために必要なメモリ領域が、画像処理用バッファ２３ａとしてＲＡＭ２３に確保される。尚、当然のことながら、プログラムの実行に必要なメモリ領域よりも空き領域が少なければ、プログラムを実行するのに必要なメモリ領域を確保できないので、プログラムは実行不能となる。
【０１０２】
この画像処理用バッファ２３ａは、元画像メモリ２３ａ１と、縮小率メモリ２３ａ２と、輝度値メモリ２３ａ３と、縮小レティネックス画像メモリ２３ａ４と、ヒストグラムメモリ２３ａ５と、最大値メモリ２３ａ６と、最小値メモリ２３ａ７と、クリップ値メモリ２３ａ８と、最頻度値メモリ２３ａ９と、対数値メモリ２３ａ１０と、ｒｅｆｌｅ値メモリ２３ａ１１と、出力画像メモリ２３ａ１２と、空き容量フラグ２３ａ１３とを備えている。なお、「ｓ」は、縮小画像についての接尾辞であり、元画像については、接尾辞を付さないものとする。
【０１０３】
元画像メモリ２３ａ１は、画像処理を行う前の元画像データを記憶するメモリであり、ＰＣ、デジタルカメラ、外部メディアから、それぞれ、パラレルＩ／Ｆ２９、ＵＳＢ端子７１、及びスロット部７２を介してプリンタ２へ入力された画像データ（元画像データ）を記憶するものである。この元画像メモリ２３ａ１に記憶される元画像データは、新たに複合機１に画像データが入力されると、入力された画像データで更新される。尚、元画像データには、そのサイズを示すサイズデータが付加されており、元画像メモリ２３ａ１には、この元画像のサイズデータについても記憶されている。
【０１０４】
ここで、元画像データは、ラスタデータであって元画像を形成する各画素の画素値（信号強度値、ＲＧＢ値）で構成されている。なお、本実施形態では、元画像データ及び出力画像データはいずれも、ＲＧＢ値から構成され、これらの各ＲＧＢ値は、「０」〜「２５５」の範囲の値である。
【０１０５】
ＲＧＢ値は、光の３原色である赤を表すＲ値と、緑を表すＧ値と、青を示すＢ値とを構成成分とする値である。光の３原色の混色により各種の色は生成されるので、元画像の各画素の色は、Ｒ値とＧ値とＢ値との組合せ（ＲＧＢ値）により１の色（色相や階調など）が示される。このＲＧＢ値の値が大きいほど、輝度（明度）は高くなる。
【０１０６】
本実施形態においては、かかる元画像データ（ＲＧＢ値）に対して直接的にレティネックス処理を行うのではなく、元画像データのＲＧＢ値を輝度信号Ｙに変換してからレティネックス処理を実行するように構成されている。従って、ＲＧＢ値のそれぞれに対してレティネックス処理を行う場合に比べて、レティネックス処理後の出力画像において元画像のカラーバランスを維持することができる。
【０１０７】
縮小率メモリ２３ａ２は、元画像から縮小画像を作成する際の縮小率を記憶するメモリである。本複合機１では、元画像データに対してレティネックス処理を行うが、元画像から求められる反射率（対数値Ｒ）を正規化するパラメータは、縮小画像の反射率（対数値Ｒｓ）から求められる。故に、縮小画像を形成する必要がある。用いられる縮小画像はサイズが小さい程、対数値Ｒｓを求めるために必要なメモリ量や、算出された各対数値を記憶するためのメモリ量を低減できる。しかし、縮小画像が小さくなるほど画像精度が低下するので、求められるパラメータも不正確なものとなる。つまり、正確なパラメータを算出できる縮小画像サイズには、下限値がある。従って、正確なパラメータを算出し得る最も小さなサイズが縮小画像の最適サイズとなり、本複合機１は、かかる最適サイズで縮小画像を形成するように、縮小画像の画像サイズは予め定めた固定サイズとされている。
【０１０８】
縮小画像のサイズが固定されている一方で、入力される元画像（元画像データ）はユーザ任意のサイズであるので、固定サイズの縮小画像を形成するために、元画像のサイズに応じて縮小率は変更されることとなる。このため、元画像データの入力毎（異なる元画像に対する画像処理の実行毎）に縮小率が算出され、この縮小率メモリ２３ａ２に記憶される。
【０１０９】
この縮小率は、元画像のサイズと縮小画像のサイズとの比、つまり、元画像データに付加されたサイズデータと、既知である縮小画像のサイズデータとの比で導出される。サイズデータは、画像のＸ軸方向の画素数と、画像のＹ軸方向の画素数とで形成されている。一般に画像においては、Ｘ軸方向とＹ軸方向とで画素数が異なることが多いので、本実施形態においては、縮小率は、元画像および縮小画像の長辺の画素数の比と、短辺の画素数の比との２種類で求められる。そして、求められた値が縮小率としてこの縮小率メモリ２３ａ２に記憶されている。縮小画像は、かかるＸ軸方向の縮小率とＹ軸方向の縮小率とのそれぞれに基づいて、元画像を縮小して形成される。
【０１１０】
輝度値メモリ２３ａ３は、ＲＧＢ値から（５）式に従って算出された輝度信号Ｙ（Ｙｓ）と色信号Ｃｂ，Ｃｒを記憶するメモリである。
【０１１１】
【数５】
2008252766.tif 000007
複合機１では、上記したように、入力された元画像の元画像データ（ＲＧＢ値）に直接レティネックス処理を行うのではなく、ＲＧＢ値を輝度信号Ｙに変換してからレティネックス処理を行うように構成されている。ＲＧＢ値から変換された輝度信号Ｙなどは、変換元のＲＧＢ値の座標（ｘ，ｙ）に対応してこの輝度値メモリ２３ａ３に記憶される。そして、この輝度値メモリ２３ａ３に記憶される輝度信号Ｙや輝度信号Ｙｓに基づいて、反射率や出力値Ｏｕｔｙが生成される。
【０１１２】
ここで、複合機１は、出力画像の出力値Ｏｕｔｙを生成するために、縮小画像と元画像との両者から、合計２回、反射率（対数値Ｒｓ及び対数値Ｒ）を算出する。反射率の算出に際しては、算出元の画像データ（縮小画像データ、元画像データ）のＲＧＢ値から輝度信号Ｙｓまたは輝度信号Ｙがそれぞれ生成され、この輝度値メモリ２３ａ３に書き込まれる。元画像の輝度信号Ｙの生成に先立って、縮小画像の輝度信号Ｙｓは生成され、輝度値メモリ２３ａ３に書き込まれる。輝度値メモリ２３ａ３に記憶された縮小画像の輝度信号Ｙｓ等は、その後、元画像の輝度信号Ｙが生成されるタイミングで、０クリアされ、新たに、元画像データのＲＧＢ値から生成された輝度信号Ｙなどが輝度値メモリ２３ａ３に記憶される。
【０１１３】
輝度信号Ｙおよび色信号Ｃｂ，Ｃｒは、ＲＧＢ値から（５）式に従って算出されるが、ＲＧＢ値は、予め定められた範囲「０」〜「２５５」であるので、輝度信号Ｙも予め定められた範囲の値となり、実際には「０」〜「２５５」となる。このため、本実施形態では上記（４）式における元画像の信号強度値Ｉ（ｘ，ｙ）は、輝度信号Ｙ（ｘ，ｙ）又は輝度信号Ｙｓ（ｘ，ｙ）とされて、レティネックス処理がなされた輝度信号Ｙ（輝度信号Ｙｓ）が、出力値Ｏｕｔｙとして生成されることとなる。
【０１１４】
尚、この輝度信号Ｙ及び輝度信号Ｙｓが請求項記載の画素値に該当する。また、本実施形態においては、輝度信号Ｙ（輝度信号Ｙｓ）に対しレティネックス処理を行う構成としたが、これに代えて、ＲＧＢ値をそのまま用いてレティネックス処理を行うようにしても良い。
【０１１５】
縮小レティネックス画像メモリ２３ａ４は、元画像を縮小した縮小画像において求められる反射率（反射光成分値、対数値Ｒｓ）を記憶するものであり、縮小画像の輝度信号Ｙｓから求められる反射率を記憶するメモリである。
【０１１６】
元画像を縮小する方法としては、縮小する画像の画素に対応する元画像の位置に最も近い画素の値をサンプリングし、そのサンプリングした画素の値をそのまま用いる最近傍（Nearest  Neighbor）法や、縮小する画像の画素に対応する元画像の位置の周囲の画素を用いて補間演算を行うバイキュービック法や、平均画素法などが知られている。画質より処理速度を優先する場合は、最近傍法が用いられ、処理速度より画質を優先する場合は、バイキュービック法や、平均画素法が用いられる。
【０１１７】
これらいずれかの方法により、縮小率メモリ２３ａ２に記憶される縮小率で、元画像が縮小され、その縮小画像の各画素（ピクセル）について対数値Ｒｓが上述の（２）式を用いて演算され、縮小画像の各画素の座標（ｘ，ｙ）に対応して縮小レティネックス画像メモリ２３ａ４に記憶される。この縮小レティネックス画像メモリ２３ａ４に記憶される値は、新たな補正処理の実行時に更新される。尚、対数値Ｒｓの演算は、上記（２）式における元画像の信号強度値Ｉ（ｘ，ｙ）に、輝度信号Ｙｓ（ｘ，ｙ）を代入して実行される。つまり、この対数値Ｒｓは、ガウスフィルタ（マスク）を用い、各画素をそれぞれ注目画素としてｍ×ｎの領域にガウスフィルタＦ（ｘ，ｙ）による畳み込み演算を行って平均輝度値を算出し、その算出された平均輝度値で縮小画像の輝度値Ｙｓを除して得られた値を自然対数化することで得る。
【０１１８】
ヒストグラムメモリ２３ａ５は、縮小レティネックス画像メモリ２３ａ４に記憶される反射率（対数値Ｒｓ）についてのヒストグラム（頻度分布）が記憶されるものである。このヒストグラムメモリ２３ａ５には、対数値Ｒｓのレベルが同じものの数を集計した集計結果を記憶するために、各レベルのそれぞれに対応して各１のエリアが設けられている。言い換えれば、ヒストグラムメモリ２３ａ５は、対数値Ｒｓのヒストグラムを形成するためのメモリである。
【０１１９】
ヒストグラムメモリ２３ａ５の各エリア数及び各エリアにて管理する対数値Ｒｓのレベルは、新たに元画像が入力されることにより、ＣＰＵ２１によって設定される。具体的には、縮小画像を構成する全画素について対数値Ｒｓが求められると、求められた対数値Ｒｓの最小値と最大値とに基づいてヒストグラムの生成範囲が決定され、また、同じレベルとして集計するレベル範囲（管理するレベル）が選定される。これにより、ヒストグラムメモリ２３ａ５のエリア数と各エリアのレベルが設定される。
【０１２０】
そして、縮小レティネックス画像メモリ２３ａ４に記憶される各対数値Ｒｓが、いずれのレベルに属するかが判断されると、その判断された対数値Ｒｓのレベルに対応するエリアに記憶される値に１が加算される。これにより、各レベル毎に、その頻度が集計される。
【０１２１】
最大値メモリ２３ａ６及び最小値メモリ２３ａ７は、ヒストグラムの生成に際し、縮小レティネックス画像メモリ２３ａ４に記憶される対数値Ｒｓの内の、最大値のものと、最小値のものとをそれぞれ記憶するメモリである。かかる最大値メモリ２３ａ６及び最小値メモリ２３ａ７には、元画像のレティネックス処理の開始に際し、０が書き込まれる。対数値Ｒｓが算出されると、最大値メモリ２３ａ６に記憶される値は、その算出された（縮小レティネックス画像メモリ２３ａ４に記憶された）対数値Ｒｓと比較される。そして、その比較結果に基づいて、より大きな対数値Ｒｓにて、最大値メモリ２３ａ６に先に記憶される値が更新される。
【０１２２】
また、最大値メモリ２３ａ６に記憶される値よりも、比較した対数値Ｒｓの方が小さかった場合には、その対数値Ｒｓは、最小値メモリ２３ａ７に記憶される値と比較される。そして、その比較結果に基づいて、より小さな対数値Ｒｓにて最小値メモリ２３ａ７に記憶される先の値は更新される。
【０１２３】
これにより、最大値メモリ２３ａ６には、縮小レティネックス画像メモリ２３ａ４に記憶される対数値Ｒｓの内の最大値が保持され、最小値メモリ２３ａ７には、縮小レティネックス画像メモリ２３ａ４に記憶される対数値Ｒｓの内の最小値が保持される。
【０１２４】
この最大値メモリ２３ａ６及び最小値メモリ２３ａ７に記憶される最大値および最小値は、ヒストグラム生成のタイミングでＣＰＵ２１によって参照され、かかる最大値及び最小値に基づいて、ヒストグラム生成の範囲がＣＰＵ２１にて決定される。
【０１２５】
クリップ値メモリ２３ａ８は、ヒストグラムから求められるクリップ範囲を記憶するメモリであり、具体的には、ヒストグラムメモリ２３ａ５における集計結果に基づいて決定された下限値Ｄと上限値Ｕとが記憶されている。上限値Ｕは、ヒストグラムメモリ２３ａ５に記憶される集計結果（頻度分布）から検出されるメジアン値Ｍよりも大きい側において４５％の画素が含まれる点となる値であり、下限値Ｄは、メジアン値Ｍよりも小さい側において４５％の画素が含まれる点となる値である。そして、下限値Ｄ〜上限値Ｕの範囲がクリップ範囲となり、元画像データの対数値Ｒに対し、このクリップ範囲に属するものが、予め定めた下限値ｄ〜上限値ｕに正規化される（正規化反射率ｒｅｆｌｅの生成）。つまり、下限値Ｄおよび上限値Ｕのそれぞれは、元画像データの対数値Ｒを正規化するパラメータとなっている。
【０１２６】
このように、複合機１では、縮小画像から形成されたヒストグラムで元画像のクリップ範囲を決定することができるので、かかるクリップ範囲を決定するために、元画像の全画素についての反射率のヒストグラムを生成する必要が無く、処理時間を短縮することができる。
【０１２７】
最頻度値メモリ２３ａ９は、ヒストグラムメモリ２３ａ５に記憶されるヒストグラムにおける最頻度値の反射率Ｒｓの正規化反射率ｒｅｆｌｅ、即ち、縮小画像において最も高頻度で出現する正規化反射率ｒｅｆｌｅを記憶するメモリである。ヒストグラムが形成されると、最も頻度の高かった対数値Ｒｓの値、即ち、ヒストグラムから求められるメジアン値Ｍが、クリップ値メモリ２３ａ８に記憶されるクリップ範囲に基づいて正規化され、この最頻度値メモリ２３ａ９に記憶される。
【０１２８】
本装置は、コピー動作、プリンタ動作、ファクシミリ動作を行うことができる複合機で形成されている。このため、往々にして、画像処理と並行してかかる動作が実行される。コピー動作においては、制御プログラム２２ａに従ってスキャナ３が制御される。プリンタ動作においては、プリンタ２に設けられた記録ヘッド２０１などが、制御プログラム２２ａに従って制御される。ファクシミリ動作においては、受信したデータが逐次記憶される。一般的な複合機は、画像処理に優先してコピー動作、プリンタ動作、ファクシミリ動作を行うように設計されている。このため、かかるコピー動作、プリンタ動作、ファクシミリ動作の制御（機械部品の制御）を行う際には、ＲＡＭ２３において、その制御を行うために必要なメモリ量が優先的に確保され、それ以外の処理に割当てできるメモリ量が削減（圧縮）されてしまう。その結果、通常のレティネックス処理を行うために必要なメモリを、ＲＡＭ２３に確保することができないことが多い。
【０１２９】
本複合機１は、縮小画像から導出される最頻度の対数値Ｒｓの正規化反射率ｒｅｆｌｅをこの最頻度値メモリ２３ａ９に保持させることで、ＲＡＭ２３の割当可能な空き領域が緊縮されて通常のレティネックス処理が実行不能となった場合であっても、最頻度値の正規化反射率ｒｅｆｌｅを用いて簡易的にレティネックス処理を実行することができるようになっている。つまり、通常のレティネックス処理が実行不能である場合には、元画像データの各画素ごとに算出される正規化反射率ｒｅｆｌｅに代えて、この最頻度値メモリ２３ａ９に記憶される最頻度値の正規化反射率ｒｅｆｌｅを用いて、（４）式に従った画像補正が実行される。かかる補正では、元画像から正規化反射率ｒｅｆｌｅを生成しないので、その実行に多量のメモリが使用される対数値Ｒの生成を不要とできる。故に、通常のレティネックス処理に必要なメモリ量の確保が困難な状況下にあっても、簡易的にレティネックス処理を実現することができ、画像の補正処理が不能となることを回避できる。
【０１３０】
特に、プリンタ２によって印刷を実行する場合には、多くの場合、ＲＡＭ２３においてイメージデータをドットデータ（ビットマップデータ）に展開する必要があるので多量のメモリ領域が必要となり、また、機械部品である記録ヘッド２０１の動作を制御するためにも多くのメモリ領域が割り当てられる必要がある。従って、印刷動作と並行して画像処理（レティネックス処理）を行う場合には、これまでは、画像処理が不能となりがちであった。しかし、本複合機１では、多くのメモリ領域が必要となる元画像に対するレティネックス処理（通常のレティネックス処理、後処理）が実行不能である場合には、簡易的なレティネックス処理を実行するので、印刷動作と並行して画像処理を実現することができる。
【０１３１】
対数値メモリ２３ａ１０は、元画像の反射率（反射光成分値、対数値Ｒ）を記憶するものである。具体的には、輝度値メモリ２３ａ３に記憶された元画像データの輝度信号Ｙを用いて、各画素に対応する対数値Ｒ（ｘ，ｙ）が、上述の（２）式に従って算出され、算出された対数値Ｒ（ｘ，ｙ）は、その座標に対応して対数値メモリ２３ａ１０に記憶される。この対数値メモリ２３ａ１０の値は、新たなレティネックス処理が実行された場合に新たに算出された対数値Ｒによって更新される。尚、対数値Ｒ（ｘ，ｙ）は、上記（２）式における元画像の信号強度値Ｉ（ｘ，ｙ）に、輝度信号Ｙ（ｘ，ｙ）を用いて演算される。この対数値Ｒは、対数値Ｒｓと同様にガウスフィルタ（マスク）を用いたフィルタ演算を行って平均輝度値を算出し、その算出された平均輝度値で元画像の輝度値Ｙを除して得られた値を自然対数化することで得る。
【０１３２】
ｒｅｆｌｅ値メモリ２３ａ１１は、元画像の正規化反射率ｒｅｆｌｅを記憶するものであり、対数値メモリ２３ａ１０に記憶される対数値Ｒ（元画像の反射率）を正規化した正規化反射率ｒｅｆｌｅを記憶するメモリである。このｒｅｆｌｅ値メモリ２３ａ１１に記憶される正規化反射率ｒｅｆｌｅは、対数値メモリ２３ａ１０に記憶される各対数値Ｒ（ｘ，ｙ）を、（３）式に従い、クリップ値メモリ２３ａ８に記憶されるクリップ範囲について、下限値０．３〜上限値１．３の範囲に正規化したものである。対数値Ｒ（ｘ，ｙ）、即ち対数値Ｒの各々に対応して、各１ずつの正規化反射率ｒｅｆｌｅ（ｘ，ｙ）が生成され、その座標に対応してこのｒｅｆｌｅ値メモリ２３ａ１１に書き込まれる。このｒｅｆｌｅ値メモリ２３ａ１１に記憶される正規化反射率ｒｅｆｌｅは、出力値Ｏｕｔｙを生成するタイミングでｒｅｆｌｅ値メモリ２３ａ１１から読み出され、読み出された正規化反射率ｒｅｆｌｅを用いて出力値Ｏｕｔｙが算出される。
【０１３３】
印刷またはプレビュー画像表示に際し、出力値Ｏｕｔｙを生成するためには、対数値Ｒ（又は対数値Ｒｓ）を正規化する必要があるが、対数値Ｒの正規化は、次の２つの条件を満たすように行われている。１つ目の条件は、正規化して得られる正規化反射率ｒｅｆｌｅが、０を含まない値とすることである。これは、出力値Ｏｕｔｙが算出不能となることを回避するためである。
【０１３４】
２つ目の条件は、正規化された正規化反射率ｒｅｆｌｅの値の幅を１とすることである。正規化反射率ｒｅｆｌｅの有する幅が１であると、元画像のダイナミックレンジと出力画像のダイナミックレンジとをおおよそ同じにすることができる。元画像の画素値は「０」〜「２５５」の範囲の値であるので、正規化反射率ｒｅｆｌｅの有する幅を１とすることにより、本実施形態では、同じ範囲である「０」〜「２５５」で出力画像の画素値を得ることができる。その結果、出力画像全体の色調が入力画像に比べて変化してしまうことを回避できる。
【０１３５】
このため、対数値Ｒは、０を超える値の下限値ｄから、その下限値ｄに１加算した上限値ｕの範囲に、正規化される。尚、本実施形態においては、（３）式における下限値ｄは０．３とされ、上限値ｕは１．３とされており、対数値Ｒは０．３〜１．３の値に正規化されている。言い換えれば、元画像の各画素の正規化反射率ｒｅｆｌｅは、０．３〜１．３の値となる。また、対数値Ｒを０．３〜１．３の範囲に正規化すると、対数値Ｒ「０」の正規化反射率ｒｅｆｌｅは、０．８となる。従って、正規化反射率ｒｅｆｌｅが０．８を超える画素（注目画素）は、対数値Ｒが正である、即ち、注目画素が周辺画素よりも明るい事を示しており、正規化反射率ｒｅｆｌｅが０．８未満である画素（注目画素）は、対数値Ｒが負である、即ち、注目画素が周辺画素よりも暗い事を示すこととなる。
【０１３６】
レティネックス処理において出力値Ｏｕｔを算出する（４）式によれば、ガンマ係数は任意の定数であるので、変数（パラメータ）は、画素値（輝度信号Ｙまたは輝度信号Ｙｓ）と正規化反射率ｒｅｆｌｅとの２つである。このため、正規化反射率ｒｅｆｌｅが算出されれば、「０」〜「２５５」の各輝度信号Ｙ（Ｙｓ）に対応する各出力値Ｏｕｔｙを導出することができる。
【０１３７】
出力画像メモリ２３ａ１２は、プリンタ２に出力する出力画像データ、即ち、レティネックス処理による補正がなされた出力画像データを記憶するメモリである。この出力画像メモリ２３ａ１２に記憶される出力画像データは、レティネックス処理（補正処理）によって元画像から生成された出力値Ｏｕｔであり、出力画像を形成する各画素のＲＧＢ値である。上記したように、本実施形態では、補正処理により、まず、元画像の輝度信号Ｙ（ｘ，ｙ）に応じた出力値Ｏｕｔｙが生成され、以下に示す（６）式に従って、出力値ＯｕｔｙがＲＧＢ値に変換されて出力値Ｏｕｔとされる。
【０１３８】
【数６】
2008252766.tif 000008
元画像の各輝度信号Ｙ（ｘ，ｙ）の各々に対応して、各１ずつの出力値Ｏｕｔｙ（ｘ，ｙ）が算出されており、出力値Ｏｕｔについても、各出力値Ｏｕｔｙ（ｘ，ｙ）のそれぞれに対応する出力値Ｏｕｔｙ（ｘ，ｙ）が生成される。そして、生成された出力値Ｏｕｔ（ｘ，ｙ）が、その座標に対応して、出力画像メモリ２３ａ１２に書き込まれる。記憶された出力値Ｏｕｔ（出力画像データ）は、印刷を実行するタイミングでこの出力画像メモリ２３ａ１２から読み出され、プリンタ２へ出力される。プリンタ２へ出力された出力値Ｏｕｔは、出力画像メモリ２３ａ１２から消去される。
【０１３９】
空き容量フラグ２３ａ１３は、元画像に対し通常のレティネックス処理を行うために必要な空き容量がＲＡＭ２３にあるかを判別するためのフラグである。後述するＲｅｔｉｎｅｘ後処理（図６参照）において、元画像のレティネックス処理を行うタイミングで、ＲＡＭ２３の空き容量がＣＰＵ２１によって確認され、ＲＡＭ２３に、元画像に対する通常のレティネックス処理（対数値Ｒの生成、その対数値Ｒを正規化した正規化反射率ｒｅｆｌｅの算出、算出された正規化反射率ｒｅｆｌｅを用いた出力値Ｏｕｔｙおよび出力値Ｏｕｔの生成）を行うことができる空き容量があれば、この空き容量フラグ２３ａ１３はオンされる。また、ＲＡＭ２３に、元画像に対する通常のレティネックス処理を行うことができる空き容量があれば、この空き容量フラグ２３ａ１３はオフとされる。元画像のレティネックス処理を開始すると、この空き容量フラグ２３ａ１３の状態によって元画像に対して通常のレティネックス処理を行うことができるかの可否がＣＰＵ２１にて判別され、可である場合には、通常のレティネックス処理が実行される。一方、否である場合には、元画像データから対数値Ｒ及びその正規化反射率ｒｅｆｌｅの生成は行われず、最頻度値メモリ２３ａ９に記憶される正規化反射率ｒｅｆｌｅを用いて出力値Ｏｕｔｙの生成が実行される。
【０１４０】
制御部２０とバス２５を介して接続されるＡＳＩＣ２６には、複合機１に所望の指令を入力する操作キー４０を制御するパネルゲートアレイ（パネルＧＡ）２７が接続されている。パネルゲートアレイ２７は、操作キー４０の押下（入力）を検出して、所定のコード信号を出力する。このキーコードは、複数の操作キー４０に対応して割り当てられている。ＣＰＵ２１は、パネルゲートアレイ２７から所定のキーコードを受信すると、所定のキー処理テーブルに従って、実行すべき制御処理を行う。キー処理テーブルは、キーコードと制御処理とを対応させてテーブル化したものであり、例えば、ＲＯＭ２２に記憶されている。
【０１４１】
ＡＳＩＣ２６には、ＬＣＤ４１の画面表示を制御するＬＣＤコントローラ２８が接続されている。ＬＣＤコントローラ２８は、ＣＰＵ２１の指令に基づいて、ＬＣＤ４１にプリンタ２又はスキャナ３の動作に関する情報を画面に表示させる。また、スキャナ３により読み取られたデータに対応する画像を画面に表示させ、または、接続された外部装置やスロット部７２に挿入されたメモリカードから受け取ったデータに対応する画像を画面に表示させる。
【０１４２】
さらに、ＡＳＩＣ２６には、一般公衆回線３３に接続されファクシミリ機能を実現するためのＮＣＵ（Ｎｅｔｗｏｒｋ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）３１や、ＮＣＵ３１を介してモデム３２が接続されている。また、ネットワーク上に存在するコンピュータとデータの送受信を行うための、図示しないネットワークインターフェースを備えていてもよい。更には、ＮＣＵ３１に送受話器を接続し、複合機１を通話（電話）機能を備えた構成としてもよい。
【０１４３】
また、ＡＳＩＣ２６には、アンプ７３が接続されている。アンプ７３は、そのアンプ７３に接続されたスピーカ７４を鳴動して、呼出音や拒否音、メッセージなどを出力するためのものである。
【０１４４】
ＡＳＩＣ２６に接続されたプリンタ２は、インクジェットプリンタで構成されており、記録ヘッド２０１と、ＣＲモータ２０３と、ＬＦモータ２０５と、駆動回路２０２，２０４，２０６とを備えている。
【０１４５】
記録ヘッド２０１は、ノズル面に形成された複数のノズル口からインクを吐出して、記録用紙に印字を形成するものである。この記録ヘッド２０１は、非図示のキャリッジに搭載されており、記録用紙の搬送方向に対して直交する方向へ往復移動可能に構成されている。駆動回路２０２は、非図示のゲートアレイから出力される信号に応じて、その信号に合った波形の駆動パルスを、記録ヘッド２０１の各ノズルに対応した駆動素子に印加する駆動回路である。記録ヘッド２０１は、駆動回路から出力される駆動パルス信号によって動作され、インクを吐出する。
【０１４６】
ＣＲモータ２０３は、上記したキャリッジを往復移動させるためのモータである。駆動回路２０４は、ＣＲモータ２０３に電圧を印加する回路である。駆動回路２０４から出力される電圧によってＣＲモータ２０３が駆動されると、ＣＲモータ２０３に接続された例えばプーリなどの各部が動作され、キャリッジ、即ち、記録ヘッド２０１を記録用紙の搬送方向に対して直交する方向に往復移動させることができる。
【０１４７】
ＬＦモータ２０５は、記録用紙を搬送するためのモータである。駆動回路２０６は、ＬＦモータ２０５に電圧を印加する回路である。駆動回路２０６から出力される電圧によってＬＦモータ２０５が駆動されると、ＬＦモータ２０５に連結された給紙ローラや搬送ローラなどが駆動され、記録用紙が、給紙トレイ１４の奥側から上方へ延びた後に正面側へＵ字状に湾曲して排紙トレイ１５に連結される用紙搬送路を搬送される。
【０１４８】
尚、本複合機１のプリンタ２が電子写真方式のもので構成される場合には、記録ヘッド２０１に代えて感光体ユニットが設けられ、ＣＲモータ２０３に代えて感光体ユニットを回動させるモータが設けられる。
【０１４９】
次に、上記のように構成された複合機１において実行される画像処理（レティネックス処理）を、本複合機１でのレティネックス処理の流れを示した概念図である図３と、図４から図６のフローチャートとを参照して説明する。
【０１５０】
図４は、本複合機１で実行されるレティネックス処理（Ｒｅｔｉｎｅｘ処理）のフローチャートである。複合機１にて実行されるＲｅｔｉｎｅｘ処理では、まず、元画像を縮小し、その縮小した画像に基づいて元画像の反射率Ｒの正規化を行うためのクリップ範囲の設定とプレビュー画像の表示を行うＲｅｔｉｎｅｘ前処理を実行した後（Ｓ１）、元画像のレティネックス処理を行うＲｅｔｉｎｅｘ後処理を実行して（Ｓ２）、このレティネックス処理を終了する。Ｒｅｔｉｎｅｘ後処理（Ｓ２）にて補正処理された元画像データはプリンタ２によって印刷される。
【０１５１】
このように、本複合機１において実行されるレティネックス処理は、縮小画像に対してレティネックス処理を行う前処理と、元画像に対してレティネックス処理を行う後処理の大別して２の処理から成り立っており、図３においては、紙面左側の工程が前処理を行うＲｅｔｉｎｅｘ前処理（Ｓ１）を示しており、紙面右側の工程が後処理を行うＲｅｔｉｎｅｘ後処理（Ｓ２）を示している。
【０１５２】
図５は、図４に示したＲｅｔｉｎｅｘ処理の中で実行されるＲｅｔｉｎｅｘ前処理（Ｓ１）のフローチャートである。Ｒｅｔｉｎｅｘ前処理（Ｓ１）では、図３に示すように、元画像からの縮小画像の形成（工程１）、縮小画像のＲＧＢ値から輝度値Ｙｓの生成（工程２）、平均輝度値を算出するための畳み込み演算（ガウスフィルタを用いたフィルタ演算）（工程３）、得られた平均輝度値を用いた対数値の算出（工程４）、対数値Ｒｓのヒストグラム形成（工程５）、ヒストグラムの端部カット（工程６）、対数値の正規化（工程７）、出力値Ｏｕｔの生成（工程８）を経て、出力工程であるプレビュー画像の表示（工程９）に至る。
【０１５３】
具体的には、Ｒｅｔｉｎｅｘ前処理（Ｓ１）では、まず、縮小画像のサイズデータ（縮小画像の長辺の画素数および短辺の画素数）と元画像メモリ２３ａ１に記憶されている（元画像データに付随している）元画像のサイズデータ（元画像の長辺の画素数および短辺の画素数）との比によりＸ軸方向およびＹ軸方向それぞれの縮小率を算出し、算出した縮小率を縮小率メモリ２３ａ２に記憶する（Ｓ１１）。なお、長辺側をＸ軸、短辺側をＹ軸とする。故に、元画像および縮小画像の長辺同士の比がＸ軸方向の縮小率、短辺同士の比がＹ軸方向の縮小率となる。
【０１５４】
次いで、縮小画像及び元画像に対して行われるフィルタ演算（畳み込み演算）に用いるガウスフィルタ（マスク）を生成するマスク生成処理を行う（Ｓ１２）。その後、元画像メモリ２３ａ１から元画像データを読み出し（Ｓ１３）、縮小率メモリ２３ａ２に記憶される縮小率で元画像データを縮小して縮小画像データを生成する（Ｓ１４）（図３、工程１参照）。尚、外部から入力された元画像データは、その入力時或いはユーザの指示によって実行される所定の処理より、Ｒｅｔｉｎｅｘ前処理（Ｓ１）に先立って、元画像メモリ２３ａ１に記憶されている。
【０１５５】
その後、生成された縮小画像データの各ＲＧＢ値を輝度信号Ｙｓと色信号Ｃｂ，Ｃｒとに変換し（図３、工程２参照）、縮小画像の各ＲＧＢ値の座標（ｘ，ｙ）にそれぞれ対応させて輝度値メモリ２３ａ３に書き込む（Ｓ１５）。これにより、縮小画像の全画素に対応する輝度信号Ｙｓが輝度値メモリ２３ａ３に記憶される。
【０１５６】
そして、輝度値メモリ２３ａ３に記憶した縮小画像の輝度信号Ｙｓについて反射率（対数値Ｒｓ）を算出する。各画素の対数値Ｒｓ（ｘ，ｙ）は、（２）式の画素値Ｉ（ｘ，ｙ）に輝度信号Ｙｓ（ｘ，ｙ）を用いて算出する（Ｓ１６）。つまり、座標（ｘ，ｙ）の注目画素を含むｍ×ｎの領域にガウスフィルタＦ（ｘ，ｙ）による畳み込み演算を行って（フィルタ演算の実行、図３、工程３参照）、注目画素からの距離に応じた重みを加味しつつ平均された周辺画素の平均輝度値を求め、その平均輝度値にて注目画素の輝度信号Ｙｓ（ｘ，ｙ）を除したものの自然対数を求めることにより、注目画素の反射率である対数値Ｒｓ（ｘ，ｙ）を算出する（図３、工程４参照）。なお、Ｓ１６の処理において使用されるマスクには、マスク生成処理（Ｓ１２）において生成された縮小画像用のマスク（縮小マスク）が用いられる。
【０１５７】
その後、算出した対数値Ｒｓ（ｘ，ｙ）を縮小レティネックス画像メモリ２３ａ４に記憶し（Ｓ１７）、記憶した対数値Ｒｓ（ｘ，ｙ）が最大値メモリ２３ａ６に記憶される値よりも大きいかを判断する（Ｓ１８）。対数値Ｒｓ（ｘ，ｙ）が最大値メモリ２３ａ６に記憶される値よりも大きければ（Ｓ１８：Ｙｅｓ）、算出した対数値Ｒｓ（ｘ，ｙ）を最大値メモリ２３ａ６に記憶して、先に最大値メモリ２３ａ６に記憶される値を更新する（Ｓ１９）。また、Ｓ１８の処理で確認した結果、対数値Ｒｓ（ｘ，ｙ）が最大値メモリ２３ａ６に記憶される値よりも小さい場合には（Ｓ１８：Ｎｏ）、その対数値Ｒｓが最小値メモリ２３ａ７に記憶される値よりも小さいかを判断する（Ｓ２０）。その結果、比較した対数値Ｒｓが最小値メモリ２３ａ７に記憶される値よりも小さければ（Ｓ２０：Ｙｅｓ）、その対数値Ｒｓを最小値メモリ２３ａ７に記憶し、最小値メモリ２３ａ７に先に記憶される値を更新する（Ｓ２１）。
【０１５８】
Ｓ１９またはＳ２１の処理の後は、縮小画像の全画素について処理が終了したかを確認する（Ｓ２２）。縮小画像についての対数値Ｒｓの生成および対数値Ｒｓの最大値と最小値とを判断するＳ１６〜Ｓ２２の処理は、１の注目画素毎（１の輝度信号Ｙｓ毎）に実行され、最終画素の輝度信号Ｙｓの処理が終了するまで、繰り返して実行される。従って、輝度値メモリ２３ａ３からは、Ｓ１６〜Ｓ２２の処理の実行毎に、座標に従った順番で（先頭座標から最終座標へ向かうラスタ走査の順で）、輝度信号Ｙｓが読み出される。そして、Ｓ２２の処理で確認した結果、全画素についての処理が終了していれば（Ｓ２２：Ｙｅｓ）、縮小レティネックス画像メモリ２３ａ４に記憶される対数値Ｒｓに対し、最大値メモリ２３ａ６に記憶される最大値から最小値メモリ２３ａ７に記憶される最小値までの範囲において、ヒストグラムを形成する（Ｓ２３）（図３、工程５参照）。
【０１５９】
その後、形成したヒストグラムからメジアン値Ｍを求め（Ｓ２４）、次いで、そのメジアン値Ｍとヒストグラムとから対数値Ｒｓのクリップ範囲（上限値Ｕと下限値Ｄ）を定め、下限値Ｄ及び上限値Ｕをクリップ値メモリ２３ａ８に記憶する（Ｓ２５）。具体的には、メジアン値Ｍを中心に、メジアン値Ｍの上側において４５％の画素が含まれる点となる対数値Ｒｓを上限値Ｕとし、メジアン値Ｍの下側において４５％の画素が含まれる点となる対数値Ｒｓを下限値Ｄとし、メジアン値Ｍの上下に各４５％ずつの画素が所属する下限値Ｄ〜上限値Ｕの範囲をクリップ範囲とする。これによりヒストグラムの端部がカットされる（図３、工程６参照）。尚、このＳ２５のステップで設定されたクリップ範囲は、Ｒｅｔｉｎｅｘ後処理（Ｓ２）において元画像のクリップ範囲として適用される。
【０１６０】
続いて、縮小レティネックス画像メモリ２３ａ４に記憶される対数値Ｒｓに対し、クリップ値メモリ２３ａ８に記憶されるクリップ範囲（下限値Ｄ〜上限値Ｕ）を０．３〜１．３とする正規化をおこなって（図３、工程７参照）、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）を算出する（Ｓ２６）。尚、この正規化は、対数値Ｒｓ（ｘ，ｙ）≦Ｄである場合には、０．３とし、また、対数値Ｒ（ｘ，ｙ）≧Ｕである場合には、１．３とすると共に０．３＜対数値Ｒ（ｘ，ｙ）＜１．３である場合には、（３）式に従って、対数値Ｒを正規化するものである。尚、本実施形態においては、（３）式におけるｄ及びｕは、それぞれ０．３と１．３とされている。
【０１６１】
その後、Ｓ２６の処理で算出された縮小画像の正規化反射率ｒｅｆｌｅを用い、（４）式に従ってプレビュー画像の出力値Ｏｕｔｙを算出する（Ｓ２７）。尚、Ｓ２７の処理では、上記（４）式において元画像の信号強度値Ｉ（ｘ，ｙ）に輝度信号Ｙｓ（ｘ，ｙ）を用いて演算が実行される（図３、工程８参照）。
【０１６２】
レティネックス処理において出力値Ｏｕｔを算出する（４）式によれば、ガンマ係数は任意の定数であるので、変数（パラメータ）は、元画像の画素値（輝度信号Ｙ）と正規化反射率ｒｅｆｌｅとの２つである。このため、正規化反射率ｒｅｆｌｅを算出すれば、「０」〜「２５５」の各輝度信号Ｙに対応する各出力値Ｏｕｔｙを導出することができるのである。なお、算出された出力値Ｏｕｔｙが取り得る最高値は「２５５」とされているので、「２５５」を超えた出力値Ｏｕｔｙは、全て「２５５」で出力される。
【０１６３】
尚、この輝度信号Ｙが請求項記載の画素値に該当する。また、本実施形態においては、輝度信号Ｙに対しレティネックス処理を行う構成としたが、これに代えて、ＲＧＢ値をそのまま用いてレティネックス処理を行うようにしても良い。
【０１６４】
そして、求めた出力値Ｏｕｔｙを、（６）式に従ってＲＧＢ値に逆変換して出力値Ｏｕｔを生成し、生成元の輝度信号Ｙの座標（ｘ，ｙ）に対応させて出力画像メモリ２３ａ１２に書き込み（Ｓ２８）、縮小画像の全画素について出力値Ｏｕｔを生成したかを確認する（Ｓ２９）。
【０１６５】
Ｓ２６〜Ｓ２９の処理は、１の注目画素毎（１の対数値Ｒｓ毎）に実行され、最終画素の対数値Ｒｓの処理が終了するまで、繰り返して実行される。従って、縮小レティネックス画像メモリ２３ａ４からは、Ｓ２６〜Ｓ２９の処理の実行毎に、座標に従った順番で（先頭座標から最終座標へ向かうラスタ走査の順で）、対数値Ｒｓが読み出される。そして、Ｓ２９の処理で確認した結果、全画素についての処理が終了していれば（Ｓ２９：Ｙｅｓ）、Ｓ２４の処理で求めたメジアン値Ｍをクリップ値メモリ２３ａ８に記憶されるクリップ範囲と（３）式とに基づいて正規化した正規化反射率ｒｅｆｌｅを最頻度値メモリ２３ａ９に記憶して（Ｓ３０）、このＲｅｔｉｎｅｘ前処理（Ｓ１）を終了する。
【０１６６】
一方、Ｓ２０の処理で確認した結果、対数値Ｒｓが最小値メモリ２３ａ７に記憶される値以上の値であった場合には（Ｓ２０：Ｎｏ）、最小値メモリ２３ａ７に記憶される値を更新する必要がないので、その処理をＳ２２の処理に移行する。また、Ｓ２２の処理で確認した結果、縮小画像の全画素について対数値Ｒｓの生成や、その対数値Ｒｓの最小値、最大値の判断を行う処理が終了していなければ（Ｓ２２：Ｎｏ）、その処理をＳ１６の処理に移行し、最終画素の輝度信号Ｙｓに対する処理が終了するまで、繰り返してＳ１６〜Ｓ２２の処理を実行する。更に、Ｓ２９の処理で確認した結果、未だ縮小画像の全画素について出力値Ｏｕｔが生成されていなければ（Ｓ２９：Ｎｏ）、その処理をＳ２６の処理に移行して、縮小画像の全画素について出力値Ｏｕｔが生成されるまで、Ｓ２６〜Ｓ２９の処理を繰り返す。
【０１６７】
このＲｅｔｉｎｅｘ前処理（Ｓ１）により、元画像に対するクリップ範囲（正規化パラメータ）が縮小画像を用いて求められる。また、縮小画像をレティネックス処理した画像、即ち、出力画像メモリ２３ａ１２に記憶される出力値Ｏｕｔは、このＲｅｔｉｎｅｘ前処理（Ｓ１）終了後に、所定のタイミングでＬＣＤ４１にプレビュー画像として出力される（図３、工程９参照）。
【０１６８】
図６は、図４のＲｅｔｉｎｅｘ処理の中で実行されるＲｅｔｉｎｅｘ後処理（Ｓ２）を示すフローチャートである。このＲｅｔｉｎｅｘ後処理（Ｓ２）では、図３に示すように、元画像のＲＧＢ値から輝度値Ｙの生成（工程２）、平均輝度値を算出するための畳み込み演算（ガウスフィルタを用いたフィルタ演算）（工程３）、得られた平均輝度値を用いた対数値の算出（工程４）、対数値の正規化（工程７）、出力値Ｏｕｔの生成（工程８）を経て、出力工程である印刷処理（工程９）に至る。
【０１６９】
具体的には、Ｒｅｔｉｎｅｘ後処理（Ｓ２）では、まず、元画像メモリ２３ａ１に記憶される元画像データの各ＲＧＢ値を輝度信号Ｙｓと色信号Ｃｂ，Ｃｒとに変換し（図３、工程２参照）、縮小画像の各ＲＧＢ値の座標（ｘ，ｙ）にそれぞれ対応させて輝度値メモリ２３ａ３に書き込む（Ｓ３１）。これにより、元画像の全画素に対応する輝度信号Ｙが輝度値メモリ２３ａ３に記憶される。尚、輝度値メモリ２３ａ３は、Ｒｅｔｉｎｅｘ前処理（Ｓ１）終了後、Ｒｅｔｉｎｅｘ後処理（Ｓ２）開始前に、非図示のステップにより０クリアされている。
【０１７０】
そして、元画像に対する通常のレティネックス処理に必要な空き容量がＲＡＭ２３にあるかを確認し（Ｓ３２）、その結果、必要な空き容量をＲＡＭ２３に確保できる場合（Ｓ３２：Ｙｅｓ）、空き容量フラグ２３ａ１３をオンして（Ｓ３３）、通常のレティネックス処理が実行可能であることを示す。尚、ここで、ＣＰＵ２１は、元画像データの画素値を輝度値Ｙに変換してフィルタ演算を行うために必要なメモリ領域と、フィルタ演算にて求められた平均輝度値に対する対数演算を行うために必要なメモリ領域とを合計したメモリ領域を確保できるかを判断する。尚、必要な空き容量は元画像サイズとマスクサイズによって変化するが、例えば、元画像サイズが１６００×１２００画素、マスクサイズが１２１×１２１画素である場合に、元画像を１ラインずつＲＧＢの各値について処理するとすれば、必要な空き容量は、１６００×１２１×３で算出される５８０８００バイトとなる。
【０１７１】
本複合機１のＲｅｔｉｎｅｘ処理は、このＲＡＭ２３の空き容量の確認を、元画像に対するレティネックス処理の開始直前に行うように構成されている。従って、刻々と変化する複合機１の動作状態に応じて、的確に、通常のレティネックス処理を実行し得るか否かを判断することができる。複合機１の動作状態は常に変化するので、ＲＡＭ２３の可変領域において確保可能なメモリ領域も常に変動するからである。このように、ＲＡＭ２３の空き容量を判断したタイミングと、実際にＲＡＭ２３を使用して元画像に対するレティネックス処理を行うタイミングとのタイムラグを小さくすることで、十分な空き容量があると判断されたにも関わらず通常のレティネックス処理を行うことができないといった事態を回避できる。つまり、エラーとなってレティネックス処理（画像処理）そのものが不能となるといった事態を適切に回避できる。
【０１７２】
Ｓ３３の処理の後は、空き容量フラグ２３ａ１３がオンかを確認し（Ｓ３４）、空き容量フラグ２３ａ１３がオンであれば（Ｓ３４：Ｙｅｓ）、元画像に対し通常のレティネックス処理を実行可能であるので、輝度値メモリ２３ａ３に記憶した元画像の輝度信号Ｙについて反射率（対数値Ｒ）を算出する。各画素の対数値Ｒ（ｘ，ｙ）は、（２）式の画素値Ｉ（ｘ，ｙ）に輝度信号Ｙ（ｘ，ｙ）を用いて算出する（Ｓ３５）。
【０１７３】
つまり、座標（ｘ，ｙ）の注目画素を含むｍ×ｎの領域にガウスフィルタＦ（ｘ，ｙ）による畳み込み演算を行って（フィルタ演算の実行、図３、工程３参照）、注目画素からの距離に応じた重みを加味しつつ平均された周辺画素の平均輝度値を求め、その平均輝度値にて注目画素の輝度信号Ｙ（ｘ，ｙ）を除したものの自然対数を求めることにより、注目画素の反射率である対数値Ｒ（ｘ，ｙ）を算出する（図３、工程４参照）。なお、Ｓ３５の処理において使用されるフィルタ（マスク）には、マスク生成処理（Ｓ１２）において生成された元画像用のマスク（入力マスク）が用いられる。
【０１７４】
その後、算出した対数値Ｒ（ｘ，ｙ）を対数値メモリ２３ａ１０に記憶し（Ｓ３６）、続いて、対数値メモリ２３ａ１０に記憶される対数値Ｒに対し、クリップ値メモリ２３ａ８に記憶されるクリップ範囲（下限値Ｄ〜上限値Ｕ）を０．３〜１．３とする正規化をおこなって（図３、工程７参照）、正規化反射率ｒｅｆｌｅ（ｘ，ｙ）を算出する（Ｓ３７）。これにより、縮小画像から求めたクリップ範囲（正規化パラメータ）によって元画像の対数値Ｒを正規化することができる。
【０１７５】
尚、この正規化は、縮小画像の場合と同様に、対数値Ｒ（ｘ，ｙ）≦Ｄである場合には、０．３とし、また、対数値Ｒ（ｘ，ｙ）≧Ｕである場合には、１．３とすると共に０．３＜対数値Ｒ（ｘ，ｙ）＜１．３である場合には、（３）式に従って、対数値Ｒを正規化するものである。
【０１７６】
これによれば、図３に示す工程５、工程６を省略することができ、元画像の対数値Ｒについてはヒストグラムの形成を不要とできるので、ＲＡＭ２３の使用量を削減することができる上、レティネックス処理全体の処理速度を向上することができる。
【０１７７】
そして、算出した元画像の正規化反射率ｒｅｆｌｅをｒｅｆｌｅ値メモリ２３ａ１１に記憶した後（Ｓ３８）、ｒｅｆｌｅ値メモリ２３ａ１１に記憶した正規化反射率ｒｅｆｌｅを用い、（４）式に従って出力値Ｏｕｔｙを算出する（Ｓ３９）（図３、工程８参照）。尚、Ｓ３９の処理では、上記（４）式において元画像の信号強度値Ｉ（ｘ，ｙ）に輝度信号Ｙ（ｘ，ｙ）を用いて演算が実行される。
【０１７８】
その後、求めた出力値Ｏｕｔｙを、（６）式に従ってＲＧＢ値に逆変換して出力値Ｏｕｔを生成し、生成元の輝度信号Ｙの座標（ｘ，ｙ）に対応させて出力画像メモリ２３ａ１２に書き込み（Ｓ４０）、元画像の全画素について出力値Ｏｕｔを生成したかを確認する（Ｓ４１）。
【０１７９】
Ｓ３４〜Ｓ４１の処理は、１の注目画素毎（１の輝度信号Ｙ毎）に実行され、最終画素の輝度信号Ｙの処理が終了するまで、繰り返して実行される。従って、輝度値メモリ２３ａ３からは、Ｓ３４〜Ｓ４１の処理の実行毎に、座標に従った順番で（先頭座標から最終座標へ向かうラスタ走査の順で）、輝度信号Ｙが読み出される。そして、Ｓ４１の処理で確認した結果、全画素についての処理が終了していれば（Ｓ４１：Ｙｅｓ）、空き容量フラグ２３ａ１３をオフして（Ｓ４２）、このＲｅｔｉｎｅｘ後処理（Ｓ２）を終了する。
【０１８０】
尚、Ｓ４０の処理において出力画像メモリ２３ａ１２に記憶された出力値Ｏｕｔは、このＲｅｔｉｎｅｘ後処理（Ｓ２）終了後に、所定のタイミングでプリンタ２に出力される（図３、工程９参照）。
【０１８１】
一方、Ｓ３２の処理で確認した結果、通常のレティネックス処理を行うために必要な空き容量がＲＡＭ２３にない場合（Ｓ３２：Ｎｏ）、空き容量フラグ２３ａ１３をオフのままとして、通常のレティネックス処理が実行不能であることを示し、Ｓ３５〜Ｓ３９の処理を回避して、（４）式の反射光成分値の項（ｒｅｆｌｅ）に最頻度値メモリ２３ａ９に記憶される正規化反射率ｒｅｆｌｅを代入して、出力値Ｏｕｔｙを算出する（Ｓ４３）。
【０１８２】
つまり、必要なメモリ領域を確保できない場合には、図３において破線の矢印で示すように、フィルタ演算を行う工程３、対数値Ｒの算出を行う工程４、対数値Ｒの正規化を行う工程７をスキップして、出力値Ｏｕｔを生成する工程８を実行する。つまり、簡易的にレティネックス処理を実行するのである。
【０１８３】
画像処理が不能となることを回避するべく簡易的なレティネックス処理のみを行うように構成した場合には、通常のレティネックス処理を行うように構成される複合機とは別でプログラムを設計しなくてはならないが、ＲＡＭ２３の空き容量に応じて、元画像に対する通常のレティネックス処理と簡易的なレティネックス処理とを切り換えて行うことで、製造する複合機の種類（搭載されるＲＡＭ２３の容量）が異なっても、共通のプログラムを利用することができ、プログラム開発の労力を軽減することができる。
【０１８４】
尚、空き容量フラグ２３ａ１３は、Ｒｅｔｉｎｅｘ処理の開始時において、非図示のステップによってオフされている。従って、通常のレティネックス処理を行うために必要な空き容量がＲＡＭ２３にない場合には、空き容量フラグ２３ａ１３は必ずオフとなり、Ｓ４３の処理が実行される。Ｓ４３の処理の後は、その処理をＳ４０の処理に移行する。
【０１８５】
更に、Ｓ３４の処理で確認した結果、空き容量フラグ２３ａ１３がオンでなければ（Ｓ３４：Ｎｏ）、元画像に対し通常のレティネックス処理を実行不能であることが示されているので、簡易的なレティネックス処理を行うべく、その処理をＳ４３の処理に移行する。また、Ｓ４１の処理で確認した結果、未だ元画像の全画素について出力値Ｏｕｔが生成されていなければ（Ｓ４１：Ｎｏ）、その処理をＳ３４の処理に移行して、元画像の全画素について出力値Ｏｕｔが生成されるまで、Ｓ３４〜Ｓ４１，Ｓ４３の処理を繰り返す。
【０１８６】
以上説明したように、複合機１においては、ＲＡＭ２３に十分な空き容量がない場合には、多量のメモリが必要となる平均輝度値を算出するフィルタ演算（畳み込み演算）処理と、対数演算処理（対数値Ｒの算出）とを省略し使用するメモリ量を低減した簡易的なレティネックス処理を行うことができるので、ＲＡＭ２３に十分な空き容量がない場合であっても画像補正が不能となることを回避できる。また、ＲＡＭ２３に十分な空き容量がある場合には、元画像に対し通常のレティネックス処理を行うことができる。故に、通常のレティネックス処理に比べて補正後の画質を低下させかねない簡易的なレティネックス処理が、不必要に行われることはない。
【０１８７】
以上、実施形態に基づいて本発明を説明したが、本発明は上記各実施形態に何ら限定されるものでなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【０１８８】
例えば、上記実施形態では、複合機１は、レティネックス処理を、ＲＡＭ２３の空き容量に応じて、通常のレティネックス処理と簡易的なレティネックス処理とを切り換えて行うように構成されたが、これに代えて、全ての画像処理を簡易的なレティネックス処理で行うように構成しても良い。これによれば、レティネックス処理に必要なＲＡ（Ｘ，Ｙ）〜（α，β）の範囲でＭ２３の容量を低減することができるので、安価なＲＡＭを装置に搭載することができ、装置コストを抑制することができる。
【０１８９】
また、上記実施形態では、複合機１は、ＲＡＭ２３の空き容量に応じて通常のレティネックス処理と簡易的なレティネックス処理とを切り換えて行うように構成された。これに代えて、プリンタ２が動作状態にあるかを、例えば、プリンタ動作を監視するステップや、プリンタ動作開始時にオンされ、プリンタ動作終了時にオフされるフラグ（或いはスイッチや、動作信号の出力手段）を設けることで判別し、プリンタ２が動作状態にあるか否かに応じて通常のレティネックス処理と簡易的なレティネックス処理とを切り換えて行うように構成しても良い。更には、スキャナ３が動作状態にあるか否かや、ファクシミリ動作が行われているか否かに応じて通常のレティネックス処理と簡易的なレティネックス処理とを切り換えて行うように構成しても良い。これによれば、ＲＡＭの空き容量を調べるといった煩雑な処理を行うことなく、迅速に、簡易補正ステップによる補正を行うべきかを判断することができ、ＣＰＵ２１の制御負担を軽減することができる。
【０１９０】
また、上記したＲｅｔｉｎｅｘ後処理（Ｓ２）は、後処理の開始タイミングにおいてＲＡＭの空き容量を判断し、その判断結果に応じて通常のレティネックス処理（後処理）と簡易的なレティネックス処理とを切り換えて行うように構成した。このため、判断結果が導出されると、元画像の処理が終了するまで、通常のレティネックス処理（後処理）か簡易的なレティネックス処理かのいずれか一方でレティネックス処理が行われた。
【０１９１】
これに代えて、Ｓ４１の処理の後は、Ｓ３２の処理へ移行して、元画像の１画素に対する処理が行われる毎にＲＡＭ２３の空き容量の判断し、その結果に応じて通常のレティネックス処理（後処理）と簡易的なレティネックス処理とを切り換えて行うように構成しても良い。複合機１の動作状態は刻々と変化するので、画像処理の途中で、印刷動作やファクシミリ動作が実行される事態や、実行中のかかる動作が終了する事態が想定される。このため、元画像の１画素に対する処理が行われる毎にＲＡＭ２３の空き容量を判断することで、必要時に、より的確に、元画像に対する簡易的なレティネックス処理を行うことができる。また、ＲＡＭ２３の空き容量が回復すると、直ちに、通常のレティネックス処理を行うことができるので、簡易補正によってレティネックス処理が行われる範囲を縮小して、精度の高い画像補正を実現することができる。
【図面の簡単な説明】
【０１９２】
【図１】本発明の一実施形態の複合機の外観図である。
【図２】複合機の電気的構成を示すブロック図である。
【図３】複合機でのレティネックス処理の流れを示した概念図である。
【図４】複合機において画像処理プログラムにより行われるＲｅｔｉｎｅｘ処理（レティネックス処理）のフローチャートである。
【図５】図４のＲｅｔｉｎｅｘ処理の中で実行されるＲｅｔｉｎｅｘ前処理を示すフローチャートである。
【図６】図４のＲｅｔｉｎｅｘ処理の中で実行されるＲｅｔｉｎｅｘ後処理を示すフローチャートである。
【図７】従来のレティネックス処理の概要を示した図である。
【符号の説明】
【０１９３】
１              複合機（画像処理装置）
２              プリンタ
２１            ＣＰＵ
２２            ＲＯＭ
２２ｂ          画像処理プログラム
２３ａ９        最頻度値記憶手段
Ｓ１４          縮小画像形成手段、縮小画像形成ステップ
Ｓ１６          縮小平均画素値生成手段、平均画素値生成手段、縮小平均画素値生成ステップ、平均画素値生成ステップ
Ｓ１６          縮小反射光成分値算出手段、反射光成分値算出手段、縮小反射光成分値算出ステップ、反射光成分値算出ステップ
Ｓ２３          頻度集計手段、頻度集計ステップ
Ｓ２５          正規化パラメータ設定手段、正規化パラメータ設定ステップ
Ｓ３０，Ｓ３７  正規化手段、正規化ステップ
Ｓ３０          最頻度値記憶ステップ
Ｓ３２          判断手段、判断ステップ
Ｓ３５          元画像平均画素値生成手段、元画像平均画素値生成ステップ
Ｓ３５          元画像反射光成分値算出手段、元画像反射光成分値算出ステップ
Ｓ３９，Ｓ４３  変換手段、変換ステップ
Ｓ４３          簡易補正手段、簡易補正ステップ
【図１】
2008252766.tif 000009
【図２】
2008252766.tif 000010
【図３】
2008252766.tif 000011
【図４】
2008252766.tif 000012
【図５】
2008252766.tif 000013
【図６】
2008252766.tif 000014
【図７】
2008252766.tif 000015