(57)【特許請求の範囲】
【請求項１】
画像の特徴量に基づいて、前記画像を補正するための第１のルックアップテーブルを生成する第１の生成手段と、
前記画像に含まれる特定オブジェクトの属性情報を前記第１のルックアップテーブルを用いて更新する更新手段と、
前記更新手段によって更新された属性情報に基づいて、前記特定オブジェクトを補正するための第２のルックアップテーブルを生成する第２の生成手段と、
前記生成された第１および第２のルックアップテーブルを用いて、前記画像を補正する補正手段とを有することを特徴とする画像処理装置。
【請求項２】
前記特定オブジェクトの属性情報は、前記特定オブジェクトの輝度値であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の生成手段は、前記更新手段によって更新された前記特定オブジェクトの輝度値を目標輝度値に変換する第２のルックアップテーブルを生成することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第１のルックアップテーブルは、前記画像のカラーバランスを補正するためのテーブルであることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記第２のルックアップテーブルは、前記特定オブジェクトの明るさを補正するためのテーブルであることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記第２の生成手段は、前記更新された属性情報と前記画像の輝度情報とを用いて前記第２のルックアップテーブルを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記第１のルックアップテーブルと前記第２のルックアップテーブルは、その格子点数やテーブルのビット精度が相異なることを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記第２のルックアップテーブルのビット数は、前記第１のルックアップテーブルのビット数よりも大きいことを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記第２のルックアップテーブルの格子点数は、前記第１のルックアップテーブルの格子点数よりも大きいことを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
前記特定オブジェクトは、人物の顔であることを特徴とする請求項１に記載の画像処理装置。
【請求項１１】
前記第１のルックアップテーブル、または、前記第２のルックアップテーブルは、多次元ルックアップテーブルであることを特徴とする請求項１乃至１０のいずれか一項に記載の画像処理装置。
【請求項１２】
前記第１のルックアップテーブル、または、前記第２のルックアップテーブルは、RGB成分による３次元ルックアップテーブルであることを特徴とする請求項１に記載の画像処理装置。
【請求項１３】
画像の特徴量に基づいて、前記画像を補正するための第１のルックアップテーブルを生成する第１の生成工程と、
前記画像に含まれる特定オブジェクトの属性情報を前記第１のルックアップテーブルを用いて更新する更新工程と、
前記更新工程によって更新された属性情報に基づいて、前記特定オブジェクトを補正するための第２のルックアップテーブルを生成する第２の生成工程と、
前記生成された第１および第２のルックアップテーブルを用いて、前記画像を補正する補正工程とを有することを特徴とする画像処理方法。
【請求項１４】
請求項１乃至１２のいずれか一項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された画像の明るさを補正する画像処理装置および方法に関する。
【背景技術】
【０００２】
従来より、デジタルカメラで撮影された写真画像データに対して様々な補正を行い、好適な写真画像を表示・プリントする方法が、様々提案されている。このような画像補正方法は、大別すると、画像全体に均一的な補正を行う均一補正と、画像の局所的な性質に応じて補正量が変化する局所的補正の二つに分けて考えることができる。
【０００３】
前者の均一補正の例を挙げると、特許文献１に示されているようなカラーバランス補正がある。特許文献１では、画像の輝度ヒストグラムを算出し、累積度数に応じて画像中のハイライト・シャドーポイントを算出する。ハイライト・シャドーポイントの色差成分が0であれば、該画像データのカラーバランスは適正と判断する。一方で、色差成分が0ではない場合、カラーバランスが崩れていると判断し、輝度・色差空間において、ハイライト・シャドーポイントの色差を0とするような回転行列を画像に対して一律に処理する。
【０００４】
一方、後者の局所的補正については、覆い焼きに代表されるような、画像の空間的な位置に応じて補正量が変化する種類の画像処理が挙げられる。覆い焼き処理とは、例えば、人物などの被写体が暗く、背景が明るい場合に、暗い人物領域の輝度は大きく上昇させ、明るい背景領域の輝度はさほど変化させないことにより、背景の白トビを抑えて人物領域の明るさを適正に補正するというものである。このような覆い焼き処理としては、従来より、特許文献２や特許文献３が提案されている。両者とも、入力画像に対してフィルタ処理を施して低周波画像、すなわちボケ画像を生成し、該ボケ画像を空間的な明るさの制御因子として用いることで、デジタル処理における覆い焼き処理を実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−０１３６１６
【特許文献２】特開２００１−２９８６１９
【特許文献３】特許第３２３３１１４号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
画像全体の補正と、画像の局所的な補正を行う場合、例えば、画像全体の補正後の画素値から明るさ成分のみを抽出し、該成分を局所的に制御することが考えられるが、演算量が大きくなってしまう。上記従来技術では、画像全体の補正と画像の局所的な補正を行う場合に、画像の特徴量に基づいて画像全体を補正するための第１のルックアップテーブルを生成し、生成された第１のルックアップテーブルを用いて画像に含まれる特定オブジェクトの属性情報を更新し、更新された属性情報に基づいて第２のルックアップテーブルを生成する技術の開示がなかった。
【０００７】
本発明は上記課題を鑑みたもので、画像全体の補正と画像の局所的な補正を、低演算量で実現することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、画像の特徴量に基づいて、前記画像を補正するための第１のルックアップテーブルを生成する第１の生成手段と、前記画像に含まれる特定オブジェクトの属性情報を前記第１のルックアップテーブルを用いて更新する更新手段と、前記更新手段によって更新された属性情報に基づいて、前記特定オブジェクトを補正するための第２のルックアップテーブルを生成する第２の生成手段と、前記生成された第１および第２のルックアップテーブルを用いて、前記画像を補正する補正手段とを有することを特徴とする画像処理装置を提供する。
他の発明は、上記画像処理装置における画像処理方法、及び該方法を実行するためのプログラムを記憶した記憶媒体に関するものである。
【発明の効果】
【０００９】
本発明は、画像全体の補正と画像の局所的な補正を低演算量で行うことができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施例におけるブロック図
【図２】本発明が実施可能なハードウェア構成例
【図３】本発明における画像解析部のフローチャート
【図４】輝度ヒストグラムの説明図
【図５】露出適正度判定処理の例を示したフローチャート
【図６】第１の3DLUT生成処理のフローチャート
【図７】被写体属性情報更新処理のフローチャート
【図８】制御パラメータ生成処理のフローチャート
【図９】第２の3DLUT生成処理のフローチャート
【図１０】被写体を適正化するためのトーンカーブの説明図
【図１１】第２の3DLUT生成処理のフローチャート
【図１２】強度調整補間部における処理のフローチャート
【図１３】本発明の効果を説明するための図
【図１４】本発明の第２の実施例における処理のブロック図
【図１５】第２の実施例におけるトーンカーブ修正処理のフローチャート
【図１６】修正後のトーンカーブを説明するための図
【図１７】第３の実施例における処理のブロック図
【発明を実施するための形態】
【００１１】
［実施例］
（第１の実施例）
以下に、本発明における好適な第１の実施例について説明する。なお、以下の記載はプリンタ本体内部の画像処理部を想定して説明を行うが、これはあくまで実施の１つの形態を例として示したものであり、本発明は以下の実施に限定されるものではない。
【００１２】
（ハードウェアの説明）
図２は、本実施例の画像処理方法が実行可能なハードウェア200の構成例を示している。201はCPU、202はRAM、203は各種制御プログラム・テーブルが格納されているROM、204は2次記憶装置（例えばハードディスク）である。205はユーザーインターフェース（例えばボタン、表示装置）である。206は外部インターフェース（例えばUSB（商標）、メモリカードリーダー）であり、該インターフェース（以下「IF206」と記す）を介して、メモリカード209から画像データを読み込んだり、パーソナルコンピュータ210に接続される。207は原稿読取装置（例えばスキャナ）、208はプリントエンジンである。
【００１３】
（処理のブロック図）
図１は、本実施例における処理のブロック図を示している。図１はハードウェア200におけるブロック図である。同図を見るとわかるように、本実施例においては、入力画像を２つの補間部107,108を直列に接続した構成により補正する。後に詳細は説明するが、後段の補間部108は、その補間強度を制御パラメータにて制御することが可能である。
【００１４】
ユーザーより、例えばプリンタにおける印刷処理などの指示がIF206を介して入力された場合、まず101において、該IFに接続されたメモリカードや、画像読取装置207から、処理対象となる画像データを読み込む。次に、画像解析部102において、画像の解析処理を行なって、画像データから特徴量を算出する。本実施例における画像解析部では、人物の顔領域を公知の顔検出技術を用いて検出し、該顔領域の属性値（平均輝度、色差成分等）を算出して顔領域が露出不足か否か判定する。さらに、画像全体のヒストグラムを算出し、その結果を解析して、画像のカラーバランスの適正度合いも判定する。上記解析結果は、第１の多次元LUT生成部104（第１の多次元ルックアップテーブル生成手段）に入力され、画像全体のカラーバランスを補正するための第１の3DLUT（第１の多次元ルックアップテーブル、ここでは３次元ルックアップテーブル）を生成する。
【００１５】
次に、被写体属性更新部105において、画像解析部102で解析した被写体（特定オブジェクト）の属性情報（例えば、被写体の顔の平均輝度値）と該第１の3DLUTを用いて、被写体属性情報の更新を行う。具体的には、被写体属性情報に対して第１の3DLUTを公知の補間方法によって適用し、第１の3DLUTによる補正後の属性情報を算出する。
【００１６】
該更新された属性情報は、第２の多次元LUT生成部106（第２の多次元ルックアップテーブル生成手段）に入力される。第２の多次元LUT生成部106において、被写体を適正化することに特化した第２の3DLUT（第２の多次元ルックアップテーブル、ここでは３次元ルックアップテーブル）を生成する。該第２の3DLUTは、同部に入力された更新後の被写体属性情報を基に生成する。
【００１７】
補正処理前の最後の準備として、制御パラメータ生成部103（制御パラメータ生成手段）において、強度調整補間部108において補間強度を制御するためのパラメータを生成する。具体的には、入力画像に対してフィルタリング処理によりボケ画像を生成し、生成したボケ画像を制御パラメータ113として、強度調整補間部108入力する。
【００１８】
以上で、２つの3DLUTおよび制御パラメータの生成が終了する。
【００１９】
以降では、補正処理に関する処理の流れを説明する。画像読み込み部101で読み込んだ画像データは、各画素毎に補間部107に入力され、同部において公知の補間方法によって、前記第１の3DLUTを適用する。適用後の画素値は補間部108に入力され、同部において公知の補間方法によって、前記第２の3DLUTを適用する。このとき、前記制御パラメータに応じて、画像の局所領域毎に、第２の3DLUTの補間強度を制御する。以上の処理で補正が完了した画像データは、色変換部109においてCMYKインク色に変換され、擬似階調処理部110において、誤差拡散やディザ等の擬似階調処理が施され、その後プリントエンジン部111において、印字媒体上に画像として形成される。
【００２０】
以上が、本実施例における処理のブロック図の説明である。
【００２１】
以下では、各ブロック内の詳細な処理に関して、フローチャートを参照しながら説明を行う。
【００２２】
（画像読み込み部）
画像読み込み部101では、処理対象画像データの読み込みを行う。読み込みは、IF206を介して接続されているメモリカード内に含まれている画像データを読み込んだり、読み取り装置207によって原稿を光学的にスキャンして得られたデータを読み込むことで実現できる。読み込んだ画像データは、その色空間が、例えばsRGB空間であるのか、あるいはadobe RGB（米アドビ社の登録商標）空間であるのか、さらにはその他の色空間であるかを識別するためのフラグ情報と共に、次段の処理に送られる。
【００２３】
（画像解析部）
図３は、画像解析部102で実行されるフローチャートを示している。この処理を実行するプログラムは、実行時に二次記憶装置204からRAM202にロードされ、CPU201の制御の下に実行される。
まずS301において、入力画像のリサイズを行う。以降のヒストグラム算出や顔検出処理は、例えば入力画像が4000×3000画素の場合、全ての画素に対して処理を行うと膨大な処理量が必要となる。上記顔検出処理やヒストグラム算出処理は、画像の特徴を捉えるだけの解像度に縮小し、該縮小画像に対して処理を行うことで、全体の処理量を低減することができる。縮小解像度は特に規定しないが、例えば、VGAサイズ（640×480画素相当）に縮小すると効果的である。
【００２４】
次に、該縮小画像に対して、色変換処理を行う。これは、以降の解析処理において、共通の色空間で処理を行う方が、露出適正度判定部などにおけるパラメータ設計が容易になるからである。本実施例においては、共通色空間をsRGB空間とし、その他の色空間が入力された場合には、S302において公知の変換手段を用いてsRGB空間に変換する。
【００２５】
次に、S303において、画像全体のヒストグラム算出を行う。ヒストグラム算出はどのような方法を用いてもよいが、ここでは、各画素のsRGB値を輝度色差空間（例えば、YCbCr空間）に変換し、各成分毎にヒストグラムを算出するものとする。入力画像が全体的に露出不足の状態で撮影された場合、輝度成分ヒストグラム（8bit精度とする）は図４に示すように、暗部に偏った分布となる。
【００２６】
次に、S304において、画像中から所望の被写体を検出する。本実施例において被写体は特に限定するものではないが、ここでは人物の顔を例に挙げて説明する。人物顔の検出に関しては、これまで様々な手法が提案されており、本実施例においてはそのいずれを用いても構わない。
【００２７】
次に、S305において、上述したヒストグラム情報、および顔検出情報を用いて、画像撮影時の露出の適正度判定を行う。図５は本実施例における簡単な適正度判定の例を示している。S501において、顔が検出できたか否かの判定を行う。顔が検出できていれば、S502において顔領域内の輝度色差成分の平均値（ObjY,ObjCb, ObjCr）を算出し、そのうち平均輝度ObjYを、予め定められた露出の適正度合いを決定するための閾値と比較する。比較の結果、顔領域内の平均輝度値が閾値を上回っていれば、適正露出と判断し、下回っていれば、露出不足と判断する。顔が検出できなかった場合、S503において、該ヒストグラムから算出した画像全体の平均輝度値を予め定められた閾値と比較し、閾値を上回っていれば適正露出と判断し、下回っていれば、露出不足と判断する。ここで算出した顔領域内部の平均（ObjY、ObjCb, ObjCr）値や検出した顔領域の画像上での座標位置等は、被写体領域の属性情報として、以降の処理で利用される。
【００２８】
次に、S306において、カラーバランスの適正度判定を行う。カラーバランスの適正度判定に関しては様々な手法が提案されており、本実施例の中ではどのような手法を用いても構わない。ここでは例として、特許文献１に記載されているような方法によって、カラーバランスの適正度合いを判定すると共に、カラーバランス補正のための回転行列を生成する例を説明する。
【００２９】
特許文献１によれば、カラーバランスの適正度合いは画像中のハイライト・シャドーポイントの色差成分によって判定できるとしている。ハイライト・シャドーポイントとは、図４で示した輝度ヒストグラムに対して輝度の低いほうから度数を積算した累積度数分布を算出し、該累積度数が99%のポイントをハイライトポイント、1%のポイントをシャドーポイントと定義している。ハイライト・シャドーポイントと決定された輝度値に該当する画素のみを対象として色差の平均値を算出し、色差が0に近ければカラーバランスは適正、0から遠ざかるほどカラーバランスが不適正であると判定する。不適正と判定された場合には、輝度色差空間において、ハイライト・シャドーポイントの色差を0に近づけるような3×3の回転行列を生成し、該回転行列を対象画素値の輝度色差成分に乗じることで、カラーバランスの補正が可能となる。なお、該回転行列の生成に関する詳細説明は、上記文献に開示されているため、ここでの詳細説明は割愛する。
以上が、本実施例における画像解析部102の説明である。
【００３０】
（第１の多次元LUT生成部）
図６は、第１の多次元LUT生成部104で実行されるフローチャートを示している。この処理を実行するプログラムは、実行時に二次記憶装置204からRAM202にロードされ、CPU201の制御の下に実行される。本実施例においては、生成するのはRGB各成分が8bit精度の3DLUTであり、格子点間隔は32とする。この場合、全体の格子点数は、9×9×9=729点となる。これら全ての格子点に関して、図６に示した処理を行う。
【００３１】
まず、S601において、カラーバランス補正用回転行列MTX[3][3]を生成する。生成方法は上述した特許文献1に記載されているため、ここでの詳細説明は割愛する。もし、S306におけるカラーバランス適正度判定の結果が、適正であると判定されたなら、MTX[3][3]は以下のような単位行列とする。
【数１】
0005632937.tif 000002
【００３２】
次にS602において、注目格子点のRGB値を公知の変換式により、YCbCr成分に変換する。さらに、S603において、該YCbCr値に対して、次式によりMTXを適用し、カラーバランス補正後のY’Cb’Cr’値を算出する。なお、m00〜m22は、S601で生成した回転行列の各要素値を示している。
【数２】
0005632937.tif 000003
S604において、算出したY’Cb’Cr’値に対して、公知の変換式によりR’G’B’値に変換し、補正後の格子点として3DLUTに格納し、RAM202に記憶されることになる。
以上説明したS602〜S604の処理を729点全ての格子点に対して処理することで、第１の3DLUTを生成する（第一の生成）ことができる。
【００３３】
（被写体属性更新部）
被写体属性更新部105は、後述する第２の3DLUTを生成するための準備として、画像解析部102で求めた被写体の属性情報112を更新する。属性情報の更新処理は、図７に示したフローで行われる。属性情報更新部105に入力された被写体の属性情報112（例えば、顔領域内部の平均輝度と平均色差）（ObjY、ObjCb、ObjCr）は、S701において公知の変換式により、RGB値に変換される。S702において、該RGB値に対して、公知の補間方法、ここでは例として四面体補間方法を用いて、前記第１の3DLUTを適用し、その結果、第1の3DLUT適用後のR’G’B’値を得る。さらにS703において、該R’G’B’値を公知の変換式により、ObjY’、ObjCb’、ObjCr’値に変換する（第一の補正）。該ObjY’、ObjCb’、ObjCr’値が更新された属性情報として、次段の処理である第２の多次元LUT生成部106に入力される。
【００３４】
（制御パラメータ生成部）
次に、制御パラメータ生成部103が実行するフローチャートについて説明する。この処理を実行するプログラムは、実行時に二次記憶装置204からRAM202にロードされ、CPU201の制御の下に実行される。制御パラメータは、上述したように、強度調整補間部108の補間強度を制御するためのパラメータである。本実施例では、覆い焼き処理を想定しているため、ここでは制御パラメータとして、入力画像に対する低周波画像、すなわちボケ画像を生成する。
【００３５】
図８は、制御パラメータ生成部103が実行するフローチャートである。本実施例においては、低周波画像生成方法については特に限定するものではないが、ここでは例として、入力画像を一度縮小して、縮小画像に対してフィルタリング処理を行い、その後元の解像度に戻す処理について説明する。一般的にフィルタリング処理は大量の演算を必要とするため、縮小画像に対して処理することで、その演算コストを低減することができる。
【００３６】
S801において、入力画像RGB画像に対して、低解像度画像にリサイズする。リサイズ方法は特に限定しないが、処理速度が優先される場合には、最近隣による間引き処理が有効である。
【００３７】
その後、S802において、リサイズ後のRGB画像データを、公知の変換式により輝度画像に変換する。輝度画像は、各画素あたり輝度情報しか保持しない画像のことであり、モノクロ画像となる。
【００３８】
その後、S803において、該輝度画像に対して、公知のフィルタリング処理（平滑化フィルタリング処理）により低周波画像を生成する。フィルタリング処理の方法は特に限定しないが、最も簡単な例は、次式のような平滑化フィルタを、縮小画像中の各画素に施すことが考えられる。
【数３】
0005632937.tif 000004
【００３９】
S804において、得られた低周波画像は元の解像度に拡大する。このとき、最近隣補間を用いて拡大処理を行うと、リサイズ後の画像に高周波成分が発生してしまうので、線形補間による拡大処理が望ましい。
【００４０】
従来開示されている覆い焼き方法においては、色成分も含んだ低周波画像を生成する例についてのみ言及しているが、本実施例は、上記説明したように低周波画像は輝度成分のみ保持するため、保持に必要なメモリ量が少ないという利点が存在する。
【００４１】
（第２の多次元LUT生成部）
図９および図１１は、第２の多次元LUT生成部106が実行するフローチャートを示している。
まずS901において、該露出適正度判定の結果に応じて、輝度補正用のトーンカーブTc[256]を生成する。なお、Tc[256]は8bit精度の配列を意味しており、補正前の輝度値に対する補正後の輝度値が格納されている1次元ルックアップテーブルである。
【００４２】
図１０に、本実施例において被写体領域が露出不足と判定された場合のトーンカーブの生成例を示す。同図において、横軸は補正前の輝度、縦軸は補正後の輝度を示している。同図において、ObjY’は被写体属性更新部105において更新された顔領域内平均輝度を示し、TarYが予め設定されている顔領域の目標輝度値を意味する。トーンカーブTc[256]は、点（ObjY’, TarY）を通るような曲線として形成する。本実施例においては、曲線の形成方法については特に限定するものではない。例えば同図のように必ずしも原点（0,0）や白点（255,255）に結ぶ必要もないし、曲線である必要もなく、場合によっては数本の直線によって同様のトーンカーブを形成したとしても構わない。もし、被写体領域が露出不足ではないと判定された場合には、該トーンカーブは、補正前輝度値と補正後輝度値が一致するような直線としてもよい。
【００４３】
被写体補正用トーンカーブが生成されると、次に、S902において、被写体補正用の第２の3DLUTを生成する。図１１は、S902の詳細なフローを表している。
【００４４】
図１１において、まずS1101で、3DLUTの注目格子点のRGB値を公知の変換式により、YCbCr値に変換する。次にS1102において、輝度値Yに対して、以下のようにステップS901で算出したトーンカーブTcを適用し、Y’値を算出する。
Y’ = Tc[Y]
【００４５】
次に、S1103で、輝度上昇量に応じた彩度補正を行う。一般的に、輝度色差空間において、輝度のみ上昇させると、その結果得られた画像は彩度が低下した見栄えの良くない画像となってしまう。本実施例においてはこの問題を解決するため、以下の式で表される彩度強調係数Eを算出する。
E = (Y’/Y)×α＋β  ただし、E は必ず1.0以上
【００４６】
上式において、α、βは任意の係数であり、例としてα=0.4、β=0.6とする。上式は、輝度上昇率（Y’/Y）が1.0に場合には、E=1.0となり、輝度上昇率（Y’/Y）が2.0の場合には、E=1.4となるような式である。Eは必ず1.0以上として、彩度低下は生じないものとする。
【００４７】
S1103では、以下の式により、注目格子点の彩度補正を行う。
Cb’ = Cb × E
Cr’ = Cr × E
上記処理により算出された補正後のY’Cb’Cr’値は、S1105において公知の変換式によりR’G’B’に変換され、第2の3DLUTに格納される。
【００４８】
上記S1101〜S1104を全ての格子点に対して処理することにより、第2の3DLUTを生成する（第二の生成）ことができる。
【００４９】
（補間部）
入力画像は補間部107に入力され、同部において、公知の補間方法により上記第1の3DLUTが適用される。補間部107では、入力画像の色みが補正される（第二の補正）。本発明においては、補間方法については特に限定するものではなく、公知の四面体補間や、三角柱補間、立方体補間などどのような補間方法を用いても構わない。それぞれの補間方法については、公知文献に数多く記載されているため、ここでの詳細説明は割愛する。
【００５０】
上記補間処理によって、第1の3DLUTが施された画像データ（R’,G’,B’）が次段の強度調整補間部108に入力される。
【００５１】
（強度調整補間部）
強度調整補間部108において、該画像データ（R’,G’,B’）に対して、制御パラメータ113を参照しながら、上記第2の3DLUTを適用してゆく。強度調整補間部108においても、特にその方法を限定するものではなく、公知の補間方法であれば、そのいずれを用いても構わない。
【００５２】
ここでは、強度調整補間部108の強度調整方法について説明する。図１２は、強度調整補間部108の処理のフローを表している。
【００５３】
まず、S1201において、入力画像中の注目画素位置（x,y）に格納されている画素値（R’,G’,B’）に対して、公知の補間方法により第2の3DLUTを適用し、適用後の値（TempR, TempG, TempB）を得る。
【００５４】
次に、S1202において、補間部108に入力された制御パラメータ1206、すなわち低周波輝度画像を参照し、注目画素位置（x,y）に対応する制御パラメータ値、すなわち輝度値BY（x,y）を取得（抽出）する。
【００５５】
次に、S1203において、次式により、補間強度制御後の画素値（R’’、G’’、B’’）を得る（第三の補正）。
R’’ = ( TempR - R’ )×（1.0 - BY（x,y）/ 255）+ R’
G’’ = ( TempG - G’ )×（1.0 - BY（x,y）/ 255）+ G’
B’’ = ( TempB - B’ )×（1.0 - BY（x,y）/ 255）+ B’
【００５６】
上式において、BY（x,y）は0〜255の値を持つと想定しているため、BY(x,y)/255は、0.0〜1.0の値を持つことになる。上式を参照するとわかるように、注目画素が暗い領域に含まれる場合には、BY(x,y)が0に近い値となり、その場合、R’’=TempRとなって、第2の3DLUTが最大強度で適用されることにある。一方で、注目画素が明るい領域に含まれる場合には、BY(x,y)が255に近い値となり、その場合、R’’=R’となり、第2の3DLUTがほとんど適用されないことになる。
【００５７】
上記のような構成を用いることで、第2の3DLUTの適用強度を制御パラメータ113で制御することが可能となり、画像中の局所的な補正量制御が実現できる。
【００５８】
（以降の処理）
上記補正処理後画像データ（R’’,G’’,B’’）は、色変換部109においてインク色であるCMYK成分に変換され、誤差拡散、ディザ等の擬似階調処理110を経て、プリントエンジン部111で印字媒体上に画像として形成される。
【００５９】
（効果）
以上説明したように、本発明の第１の実施例によれば、複数の補間部を直列接続し、一方の補間部（補間部107）で画像全体に対して均一な補正処理を行い、他方の補間部（強度調整補間部108）でその補間強度を制御パラメータ113で制御する。このことにより、極めて簡単な構成で、従来の課題であった、均一補正と局所補正を同時に行う処理を実現させることができる。
【００６０】
また、本実施例では、様々な種類の補正処理をあくまで複数の3DLUTを用いて行うことから、課題のところで述べたような、3DLUT方式の利点を最大限利用することができる。
【００６１】
また、本実施例では、画像全体を均一補正することに特化した第1の3DLUTを生成し、該第1の3DLUTを用いて被写体の属性情報（例えば、顔の輝度値）を更新する。そして、該更新された被写体情報を元に、今度は被写体を適正化することに特化した第2の3DLUTを生成する。このような構成にすることで、双方の3DLUTの独立性が高くなるため、両者の補正パラメータの設定が、極めて容易に行えるという利点がある。
【００６２】
また、上述したように、本実施例においては、制御用パラメータ、すなわち低周波画像は、色成分を保持しない構成となっているため、色成分も保持する従来例と比して、制御用パラメータを保持するためのメモリが少ないという利点も存在する。
【００６３】
また、本実施例においては、第1の3DLUTは、画像全体のカラーバランス補正のみを取り上げて説明したが、本実施例はこれに限定されるものではない。例えば、第1の3DLUTでは、画像全体が露出不足の場合、レベル補正処理を組み込み、カラーバランスと全体の明るさを明るくした後、さらに被写体の明るさを適正化するような第2の3DLUTを生成することも考えられる。
【００６４】
このように、画像全体が露出不足で被写体の顔も暗い場合、従来のように１つの3DLUTのみで、被写体の明るさを適正化しようとすると問題が発生する場合がある。すなわち、図１３に示したように、輝度補正トーンカーブの暗部側の傾きが急峻になりすぎて、暗部でトーンジャンプ等の画像不具合が発生する場合がある。また、トーンカーブ中間調のコントラストの傾きを一定以上保とうとすると、1302に示したように、白トビ領域が拡大するという不具合もある。この点、本実施例で示したような複数の3DLUTで分担して輝度補正を行えば、上記不具合が発生しにくいという格別な利点が存在する。
【００６５】
以上が第１の実施例の説明であるが、本発明は上記実施例に限定されるものではない。例えば、3DLUTの格子点数は729点に限定されるものではなく、それ以上でも以下でも構わない。
【００６６】
また、LUTを簡単のため３次元に固定して説明を行ったが、例えばCMYK4成分に対して同様の処理を行うことも考えられ、この場合には４次元LUTを生成することになる。また、本実施例においては、簡単のため輝度色差空間をYcbCr空間に限定して説明したが、他の色空間、例えばCIE Labであってもよい。また、本実施例においては、簡単のため、補間部２個に限定して説明したが、必要に応じてさらに複数個の補間部を直列接続しても構わない。また、本実施例においては、該補間部はハードウェア200に搭載されているCPUによるソフト処理を前提に説明を行ったが、必要に応じて同部のみをハードウェア回路としたとしても、本発明の目的を達成することができる。また、本実施例においては、補間部に入出力される画像データは、画像一面分のフレームを想定していたが、例えば、補間部への入出力は画素単位でもよいし、所定数のラインをまとめたバンド単位でもよい。
【００６７】
（第２の実施例）
第１の実施例においては、第１の3DLUTを施した後の被写体属性情報（ObjY’, ObjCb’, ObjCr’）を用いて、顔の平均輝度値ObjY’が目標輝度値TarYに補正されるようなトーンカーブを用いて第２の3DLUTを生成した。
【００６８】
ただし、この3DLUTを用いて、第１の実施例に記載されたような強度調整補間部108で補正を行っても、顔の平均輝度値が正しく目標輝度値TarYにはならないという問題がある。
【００６９】
例えば、ObjY’=60、TarY=140であると仮定する。このとき強度調整補間部108において、第２の3DLUTが最大強度で適用されれば、顔領域は正しく目標輝度値Tar=140に変換されることになる。しかし、実際には第１の実施例で説明したように、強度調整補間部108は制御パラメータ113、すなわち低周波輝度画像（低解像度画像）でその適用強度を制御することになる。そのため、例えば、制御パラメータ113が示す低周波輝度画像（ボケ画像）における顔領域の平均輝度値が50だった場合、強度調整補間部108の制御式によれば、第２の3DLUTの適用強度は1.0-(50/255)=0.8となる。すなわちおよそ80%の適用強度となる。
【００７０】
すなわち、輝度値60だったObjY’は、124までしか補正されないことになる。
【００７１】
本実施例では本問題を鑑み、制御パラメータで第２の3DLUTの適用強度を制御した際においても、被写体の明るさを目標の明るさに適切に制御する画像処理装置について説明する。
【００７２】
図１４は、本実施例における処理のブロック図を示している。第１の実施例と異なる点は、制御パラメータ生成部1408で生成した制御パラメータ1413が、第２の多次元LUT生成部1405に入力されている点である。
【００７３】
図１５は、本実施例における第２の多次元LUT生成部1405が実行するフローチャートを示している。
【００７４】
S1501において、第１の実施例と同様に、被写体補正用のトーンカーブを生成する。
【００７５】
次に、S1502において、同部に入力された制御パラメータ、すなわち低周波輝度画像1506上において、被写体領域の平均輝度FBYを算出する。平均輝度は、被写体属性情報1505に含まれる画像上での被写体領域の座標位置を元に算出することができる。
【００７６】
次に、S1503において、該トーンカーブを、前記FBY値を用いて修正する。
この修正ステップを、図１６を用いて説明する。
【００７７】
同図において、Tc[256]が、第１の実施例で説明した被写体補正用トーンカーブである。該トーンカーブ自身は更新後の被写体輝度値であるObjY’値を目標輝度値TarYに補正することが可能であるが、上述したように、制御パラメータとの関係により、最終的にはTarYに到達しない可能性が高い。
【００７８】
本実施例では、以下の式によりTarY’値を算出し、該TarY’値を経由するトーンカーブTc’[256]を用いて、第２の3DLUTを生成することとする。
【数４】
0005632937.tif 000005
【００７９】
上式より、
【数５】
0005632937.tif 000006
【００８０】
上式より、
Tc’[k] = Tc[k]×（TarY’/TarY）  k= 0〜255
【００８１】
上式は、FBYが0であれば、TarY’ = TarYであるし、FBYが128であれば、TarY’=2×TarY-ObjY’となることを示している。Tc’[k]は、Tc[k]に倍率（TarY’/TarY）を乗じることにより、図１６に示すようなトーンカーブ1601を生成することができる。
【００８２】
上述した例について具体的に説明すると、ObjY’=60、TarY=140であり、かつFYB=51であったと仮定する。
【００８３】
この場合、TarY’=160となる。FYB=51の場合、第２の3DLUTの効き率は80%となるため、最終的な顔平均値は、(160-60)×0.8+60=140となり、当初の目標輝度値に到達することになる。
【００８４】
以降の処理は第１の実施例と同様のため、ここでの詳細な処理は割愛する。
【００８５】
以上説明したように、本実施例によれば、一度生成した被写体補正用トーンカーブを、制御用パラメータの被写体領域平均値を用いて修正することにより、最終的な出力を、画質目標として想定通りの結果とすることが可能となる。
【００８６】
なお本実施例においては、第１の実施例を踏襲し、被写体補正用トーンカーブTc[256]を算出した後、同カーブを修正する方法について説明したが、本発明はこれに限定されるものではない。例えば、Tcを算出する際に、予めTarY’を算出し、点（ObjY’, TarY’）を通過するトーンカーブを生成し、該トーンカーブをTcとしてもよい。
【００８７】
（第３の実施例）
第１の実施例では、簡単のために２つの補間部に入力される２つの3DLUTは、同じ729格子点で、かつRGB各成分が8bit精度の3DLUTを想定して説明を行ったが、本発明はこれに限定されるものではない。
【００８８】
例えば、それぞれの3DLUTが担う補正の種類・性格によっては、それぞれの格子点数やビット精度が異なっていた方が、全体システムとして効率的に動作する場合がある。本実施例では、このことについて説明する。
【００８９】
図１７は、本実施例における処理のブロック図を示している。第１の実施例と異なる点は、1701において生成する3DLUTが各成分8bit、格子点数729点であり、1702において生成する3DLUTが各成分10bit、格子点数4096点となっている。この理由について以下に説明する。
【００９０】
上述したように、第１の3DLUTは画像全体を適正化することに特化するという性格を持っているため、一般的にRGB色空間の中で非線形な挙動を起こす可能性は低くなる。例えば、第１の実施例で説明したような回転行列を用いた色かぶり補正も線形変換であるし、レベル補正や彩度強調についても、極端な非線形性を保持するものではない。このような変換を行う際に用いる3DLUTは、その格子点数やビット精度が少なかったとしても、補間後の画素値は、目標値に対して十分な精度を保つことができる。
【００９１】
一方で、第２の3DLUTは、画像全体ではなく、被写体を適正化することに特化するという性格を持っているため、例えば階調補正のためのトーンカーブが急峻であるため、暗部側においてトーンジャンプなどの画像弊害を発生することが考えられる。そのためには、例えば第２の3DLUTの各RGB成分値を8bitではなく10bitで保持することにより、より階調性を高めることができ、上記画像弊害を起こりにくくすることができる。また、被写体が人物である場合、例えば肌色領域のみを所望の彩度に修正するといった非線形処理が要求される場合がある。この際に、本実施例のように第２の3DLUTの格子点数を、729点よりも多い4096点用意して、各格子点間の距離を短くすることで、該非線形処理に対しても精度の高い補正処理を行うことができる。
【００９２】
その他の処理は第１の実施例と同様であるため、ここでの詳細な説明は割愛する。
【００９３】
以上説明したように、本実施例によれば、複数の多次元LUTを保持する画像処理装置において、それぞれのLUTが担う処理の内容に応じて、多次元LUTの格子点数やビット精度を相異なるものとする。これにより、例えばLUT保持のために使用する全体のRAM容量を削減することが可能となる。例えば、RGB各成分16bitで格子点数4096のLUTを２個保持する場合には、48KBのRAMが必要となる。一方で、１つはRGB成分各8bitで格子点数729のLUTとすることにより、LUTを保持するRAM容量は26KBとなり、上記に対して約46%の削減となる。
【００９４】
また、補間部1701,1702をハードウェア回路として実装する場合においても、双方16bit精度の補間処理を実装するより、一方を8bit精度とすることで、補間回路全体の規模を縮小させ、かつ同等の出力結果が得られるという効果も存在する。
【００９５】
なお、本実施例においては、簡単のため、補間回路は２つで、双方の格子点数、ビット精度を限定して説明したが、本発明はこれに限定されるものではない。補間回路の数、格子点数、ビット数がいかなる組み合わせであったとしても、本発明の効果を実現できるものであれば、本発明の範疇に含まれる。
【００９６】
以上が第３の実施例の説明である。
【００９７】
（その他の実施例）
以上の実施例では、簡単のためRGB成分を保持する3DLUTを例に説明を行ったが、本発明はこれに限定されるものではない。例えば、輝度色差成分であるYCbCr値の3DLUTで構成することも可能であるし、インク色成分であるCMYK４次元ＬＵＴでも同様に構成することは可能であり、さらなる多次元ＬＵＴを想定した場合にも、本発明の範疇に含まれることは言うまでもない。
【００９８】
また、以上の実施例では、簡単のため、補間方法として四面体補間を例に挙げて説明を行ったが、本発明はこれに限定されるものではない。例えば、公知の立方体補間や三角柱補間など、他のいかなる補間方法を用いたとしても、本発明の範疇に含まれることは言うまでもない。
【００９９】
また、以上の実施例では、簡単のため、被写体は人物顔領域であり、その数は１つを前提に説明を行ったが、本発明はこれに限定されるものではない。例えば、被写体は人間の顔以外のオブジェクト（例えば動物や建物）であっても構わないし、その数は一つとは限らない。もし複数あれば、そのうちの特徴的な１つに限定して処理を行ってもよいし、全ての被写体の属性情報を平均して処理を行っても構わない。
【０１００】
また、本発明は簡単のため、局所的画像補正として覆い焼き処理を代表例として説明を行ってきたが、本発明はこれに限定されるものではない。例えば、青空領域を検出し、該領域のみ色相・彩度を好ましい方向に補正する処理と局所的補正と考えたとしても、本発明の構成によって、極めて効率的に実現することが可能となる。
【０１０１】
また、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用しても良い。
【０１０２】
また、本発明の目的は、以下によっても達成できる。まず、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給する。次に、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行すればよい。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０３】
さらに、まず、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、該プログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【０１０４】
101・・・画像読み込み部
102・・・画像解析部
103・・・制御パラメータ生成部
104・・・第１の多次元LUT生成部
105・・・被写体属性更新部
106・・・第２の多次元LUT生成部
107・・・補間部
108・・・強度調整補間部
109・・・色変換部
110・・・擬似階調処理部
111・・・プリンタエンジン
112・・・被写体属性情報
113・・・制御パラメータ
【図１】
0005632937.tif 000007
【図２】
0005632937.tif 000008
【図３】
0005632937.tif 000009
【図４】
0005632937.tif 000010
【図５】
0005632937.tif 000011
【図６】
0005632937.tif 000012
【図７】
0005632937.tif 000013
【図８】
0005632937.tif 000014
【図９】
0005632937.tif 000015
【図１０】
0005632937.tif 000016
【図１１】
0005632937.tif 000017
【図１２】
0005632937.tif 000018
【図１３】
0005632937.tif 000019
【図１４】
0005632937.tif 000020
【図１５】
0005632937.tif 000021
【図１６】
0005632937.tif 000022
【図１７】
0005632937.tif 000023