(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
処理対象である第１の画像データの画像を縮小して第２の画像データを生成する縮小画像データ生成部と、
前記第２の画像データを解析して、前記解析の結果に基づいて、画像データの少なくとも一部の色を改変する変換を行うためのルックアップテーブルを生成するルックアップテーブル生成部と、
前記ルックアップテーブルを参照しつつ前記第１の画像データの変換を行う画像変換部と、を含み、
前記第１の画像データは、ｎ種類（ｎは２または３）の色成分の階調値を含み、
前記ルックアップテーブルは、入力値および出力値としてそれぞれｎ種類の前記色成分の階調値の組み合わせを有するｎ次元ルックアップテーブルであり、
前記ルックアップテーブル生成部は、
それぞれ入力値および出力値として同一種類の前記色成分の離散的な階調値を有するｎ個のトーンカーブを、前記解析の結果に基づいて生成し、
少なくとも一つの色成分について、前記トーンカーブよりも入力値の階調の数が少ない前記ｎ次元ルックアップテーブルを、前記ｎ個のトーンカーブに基づいて生成し、
前記ｎ次元ルックアップテーブルを生成する際には、前記ｎ次元ルックアップテーブルが有すべき入力階調値の候補としてあらかじめ定められた前記トーンカーブの複数の入力階調値のうち、対応する出力階調値の増加率が所定のしきい値よりも大きい入力階調値の少なくとも一部を、前記ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部として決定する、画像処理装置。
【請求項２】
請求項１記載の装置であって、
前記ルックアップテーブル生成部は、
前記候補としての入力階調値であって前記トーンカーブの入力階調値のうち一定の間隔を有する複数の入力階調値について、各入力階調値に対応づけて、前記増加率として前記各入力階調値と隣り合う入力階調値との間の出力階調値の差分を計算し、
対応づけられた前記差分が前記しきい値よりも大きい入力階調値を、前記ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部として決定する、画像処理装置。
【請求項３】
請求項２記載の画像処理装置であって、
前記ルックアップテーブル生成部は、前記一定の間隔を有する複数の入力階調値の中から、前記対応づけられた差分が大きい順に最大でＬ個（Ｌは正の整数）の入力階調値を、前記ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部として選択する、画像処理装置。
【請求項４】
請求項２記載の画像処理装置であって、
前記ルックアップテーブル生成部は、前記トーンカーブを生成する際には、
少なくとも一つの色成分のトーンカーブについて、特定の値を有する基準入力階調値に対応する基準出力階調値を、前記解析の結果に基づいて決定し、
前記少なくとも一つの色成分のトーンカーブについて、入力階調値を大きさの順に並べたときに前記基準入力階調値に対して同じ側にある入力階調値に関しては、前記基準入力階調値に近い入力階調値ほど出力階調値として前記基準出力階調値に近い値を有するように、前記基準入力階調値以外の各入力階調値に対する出力階調値を決定する、画像処理装置。
【請求項５】
請求項２記載の画像処理装置であって、
前記ルックアップテーブル生成部は、前記トーンカーブを生成する際には、
少なくとも一つの色成分のトーンカーブについて、特定の値を有する第１の基準入力階調値に対応する第１の基準出力階調値を、前記解析の結果に基づいて減少させ、
前記少なくとも一つの色成分のトーンカーブについて、前記第１の基準入力階調値よりも大きな値を有する第２の基準入力階調値に対応する第２の基準出力階調値を、前記解析の結果に基づいて増大させ、
前記少なくとも一つの色成分のトーンカーブについて、入力階調値を大きさの順に並べたときに、前記第１の基準入力階調値に対して同じ側にある入力階調値に関しては、前記第１の基準入力階調値に近い入力階調値ほど出力階調値として前記第１の基準出力階調値に近い値を有し、前記第２の基準入力階調値に対して同じ側にある入力階調値に関しては、前記第２の基準入力階調値に近い入力階調値ほど出力値として前記第２の基準出力階調値に近い値を有するように、前記第１および第２の基準入力階調値以外の各入力階調値に対する出力階調値を決定する、画像処理装置。
【請求項６】
請求項２記載の画像処理装置であって、
前記ルックアップテーブル生成部は、前記トーンカーブを生成する際には、
前記ｎ個のトーンカーブについて、同一の基準入力階調値にそれぞれ対応する基準出力階調値として、所定の範囲内に含まれる基準出力階調値を決定し、
前記ｎ個のトーンカーブについて、入力階調値を大きさの順に並べたときに前記基準入力階調値に対して同じ側にある入力階調値に関しては、前記基準入力階調値に近い入力階調値ほど出力階調値として前記基準出力階調値に近い値を有するように、前記基準入力階調値以外の各入力階調値に対する出力階調値を決定する、画像処理装置。
【請求項７】
画像処理方法であって、
（a）処理対象である第１の画像データの画像を縮小して第２の画像データを生成する工程と、
（b）前記第２の画像データを解析する工程と、
（c）前記第２の画像データの解析の結果に基づいて、画像データの少なくとも一部の色を改変する変換を行うためのルックアップテーブルを生成する工程と、
（d）前記ルックアップテーブルを参照しつつ前記第１の画像データの変換を行う工程と、を含み、
前記第１の画像データは、ｎ種類（ｎは２または３）の色成分の階調値を含み、
前記ルックアップテーブルは、入力値および出力値としてそれぞれｎ種類の前記色成分の階調値の組み合わせを有するｎ次元ルックアップテーブルであり、
前記工程（c）は、
それぞれ入力値および出力値として同一種類の前記色成分の離散的な階調値を有するｎ個のトーンカーブを、前記解析の結果に基づいて生成し、
少なくとも一つの色成分について、前記トーンカーブよりも入力値の階調の数が少ない前記ｎ次元ルックアップテーブルを、前記ｎ個のトーンカーブに基づいて生成し、
前記ｎ次元ルックアップテーブルを生成する際には、前記ｎ次元ルックアップテーブルが有すべき入力階調値の候補としてあらかじめ定められた前記トーンカーブの複数の入力階調値のうち、対応する出力階調値の増加率が所定のしきい値よりも大きい入力階調値の少なくとも一部を、前記ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部として決定する、工程を含む、方法。
【請求項８】
画像処理をおこなうためのコンピュータプログラムであって、
処理対象である第１の画像データの画像を縮小して第２の画像データを生成する機能と、
前記第２の画像データを解析する機能と、
前記第２の画像データの解析の結果に基づいて、画像データの少なくとも一部の色を改変する変換を行うためのルックアップテーブルを生成する機能と、
前記ルックアップテーブルを参照しつつ前記第１の画像データの変換を行う機能と、をコンピュータに実現させるためのコンピュータプログラムであり、
前記第１の画像データは、ｎ種類（ｎは２または３）の色成分の階調値を含み、
前記ルックアップテーブルは、入力値および出力値としてそれぞれｎ種類の前記色成分の階調値の組み合わせを有するｎ次元ルックアップテーブルであり、
前記ルックアップテーブルを生成する機能は、
それぞれ入力値および出力値として同一種類の前記色成分の離散的な階調値を有するｎ個のトーンカーブを、前記解析の結果に基づいて生成し、
少なくとも一つの色成分について、前記トーンカーブよりも入力値の階調の数が少ない前記ｎ次元ルックアップテーブルを、前記ｎ個のトーンカーブに基づいて生成し、
前記ｎ次元ルックアップテーブルを生成する際には、前記ｎ次元ルックアップテーブルが有すべき入力階調値の候補としてあらかじめ定められた前記トーンカーブの複数の入力階調値のうち、対応する出力階調値の増加率が所定のしきい値よりも大きい入力階調値の少なくとも一部を、前記ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部として決定する、機能を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像データを処理する技術に関する。
【背景技術】
【０００２】
従来より、処理対象の画像データの内容に応じて自動的な画像処理が行われている。たとえば、特許文献１の技術においては、画像ファイルＧＦの中に含まれる画像データＧＤに基づくパラメータＳＶと、同じく画像ファイルＧＦの中に含まれる撮影時の画質調整処理条件である画像処理制御情報ＧＣとが取得される。そして、それらから計算したパラメータＦＰに基づいてＲＧＢそれぞれのトーンカーブを決定し、そのトーンカーブを使用して自動画質調整を行う。
【０００３】
また、特許文献２の技術においては、画像データ中のＥｘｉｆデータ領域に含まれる被写体焦点距離とレンズ焦点距離、ならびに画像中において記憶色が占める領域の大きさに基づいて、自動的にカラーバランス調整処理が行われる。
【０００４】
【特許文献１】特開２００２−３４４９８９号公報
【特許文献２】特開２００４−１７２７４５号公報
【０００５】
しかし、上記の技術においては、対象とする画像に応じた処理を行いつつ、画像処理において取り扱うデータ量を低減する点については考慮されていなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、対象とする画像に応じた処理を行いつつ、画像処理において取り扱うデータ量を低減することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明は、画像処理を行う際に以下のような処理を実行する。すなわち、まず、処理対象である第１の画像データの画像を縮小して第２の画像データを生成する。そして、第２の画像データを解析する。その後、第２の画像データの解析の結果に基づいて、画像データの少なくとも一部の色を改変する変換を行うためのルックアップテーブルを生成する。そして、ルックアップテーブルを参照しつつ第１の画像データの変換を行う。
【０００８】
このような態様においては、第１の画像データの内容を反映した第２の画像データに基づいてルックアップテーブルが生成され、そのルックアップテーブルを参照して画像変換が行われる。このため、画像処理の対象とする画像に応じた処理を行うことができる。一方で、第２の画像データは第１の画像データの画像を縮小して得た、第１の画像データよりもデータ量の少ない画像データである。このため、上記のような態様においては、画像処理の際に第１の画像データをそのまま解析する態様に比べて、処理負荷が小さい。
【０００９】
なお、第１の画像データが、ｎ種類（ｎは２以上の整数）の色成分の階調値を含む場合には、ルックアップテーブルは、入力値および出力値としてそれぞれｎ種類の色成分の階調値の組み合わせを有するｎ次元ルックアップテーブルとすることが好ましい。そして、そのルックアップテーブルを生成する際には、以下のような処理を行うことが好ましい。
【００１０】
すなわち、まず、それぞれ入力値および出力値として同一種類の色成分の離散的な階調値を有するｎ個のトーンカーブを、第２の画像データの解析の結果に基づいて生成する。そして、少なくとも一つの色成分について、同じ色成分のトーンカーブよりも入力値の階調の数が少ないｎ次元ルックアップテーブルを、ｎ個のトーンカーブに基づいて生成する。そして、ルックアップテーブルが有する入力階調値の少なくとも一部を決定する際には、トーンカーブの各入力階調値に対応する出力階調値の増加率に基づいて、トーンカーブの入力階調値の中から、ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部を決定することが好ましい。
【００１１】
また、ｎ次元ルックアップテーブルを生成する際に、以下のような処理を行う態様とすることができる。すなわち、その態様においては、ｎ次元ルックアップテーブルが有すべき入力階調値の候補としてあらかじめ定められたトーンカーブの複数の入力階調値を、第１のグループと、第１のグループよりも対応する出力階調値の増加率が大きい第２のグループとに分けたときに、第２のグループに含まれる入力階調値を、ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部として決定する。
【００１２】
このような態様とすれば、トーンカーブのすべての入力階調値をそのまま入力階調値とするｎ次元ルックアップテーブルを生成する態様に比べて、ルックアップテーブルの情報量を少なくすることができる。また、トーンカーブの各入力階調値に対応する出力階調値の増加率が大きい入力階調値をｎ次元ルックアップテーブルの入力階調値として決定しているため、入力階調値を減らすことによる画像処理中の品質の低下の程度を少なくすることができる。なお、この態様においては、第２のグループに含まれる入力階調値の少なくとも一部を、ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部として決定するものであればよい。
【００１３】
ｎ次元ルックアップテーブルを生成する際には、以下のような処理を行うことができる。すなわち、上述の候補としての入力階調値であってトーンカーブの入力階調値のうち一定の間隔を有する複数の入力階調値について、各入力階調値に対応づけて、増加率として各入力階調値と隣り合う入力階調値との間の出力階調値の差分を計算する。そして、第１のグループよりも対応づけられた差分が大きい第２のグループの入力階調値を、ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部として決定する。
【００１４】
このような態様においては、入力階調値の候補の出力階調値を使用して増加率としての差分を計算する。よって、各入力階調値について、別途、入力階調値の区間を設定して増加率を計算する態様に比べて、簡単にルックアップテーブルの入力階調値を決定することができる。
【００１５】
また、一定の間隔を有する複数の入力階調値の中から、ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部を決定する際には、以下のような処理を行うことも好ましい。すなわち、所定のしきい値よりも大きな差分と対応づけられた入力階調値を、ｎ次元ルックアップテーブルが有する入力階調値として選択する。
【００１６】
このような態様においては、トーンカーブの入力階調値のうち、所定の基準よりも変化が小さい部分にある入力階調値については、ルックアップテーブルの入力階調値として選択されない。よって、画像処理における画像の品質の低下を低減しつつ、ルックアップテーブルのデータ量を低減することができる。なお、しきい値よりも大きな差分と対応づけられた入力階調値が上述の第２のグループの入力階調値である。
【００１７】
また、一定の間隔を有する複数の入力階調値の中から、ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部を決定する際には、以下のような処理を行うことも好ましい。すなわち、一定の間隔を有する複数の入力階調値の中から、対応づけられた差分が大きい順に最大でＬ個（Ｌは正の整数）の入力階調値を、ｎ次元ルックアップテーブルが有する入力階調値の少なくとも一部として選択する。
【００１８】
このような態様とすれば、しきい値に基づいて入力階調値を選択する上記の態様に比べて、より確実にルックアップテーブルのデータ量を低減することができる。なお、対応づけられた差分が大きい順に最大Ｌ個の入力階調値が、上述の第２のグループの入力階調値である。
【００１９】
なお、トーンカーブを生成する際には、以下のような処理を行うことが好ましい。すなわち、少なくとも一つの色成分のトーンカーブについて、特定の値を有する基準入力階調値に対応する基準出力階調値を、第２の画像データの解析の結果に基づいて決定する。そして、そのトーンカーブについて、基準入力階調値に対して同じ側にある入力階調値に関しては、基準入力階調値に近い入力階調値ほど出力階調値として基準出力階調値に近い値を有するように、基準入力階調値以外の各入力階調値に対する出力階調値を決定する。
【００２０】
このような態様とすれば、画像処理の対象とする画像の特質を反映して画像の色の明るさが改変されるように、トーンカーブの形状を決定することができる。その結果、画像処理の対象とする画像の特質を反映して画像の色の明るさを改変するようなルックアップテーブルを生成することができる。
【００２１】
また、トーンカーブを生成する際には、以下のような処理を行うことも好ましい。すなわち、少なくとも一つの色成分のトーンカーブについて、特定の値を有する第１の基準入力階調値に対応する第１の基準出力階調値を、第２の画像データの解析の結果に基づいて減少させる。そして、そのトーンカーブについて、第１の基準入力階調値よりも大きな値を有する第２の基準入力階調値に対応する第２の基準出力階調値を、第２の画像データの解析の結果に基づいて増大させる。その後、そのトーンカーブについて、第１の基準入力階調値に対して同じ側にある入力階調値に関しては、第１の基準入力階調値に近い入力階調値ほど出力階調値として第１の基準出力階調値に近い値を有し、第２の基準入力階調値に対して同じ側にある入力階調値に関しては、第２の基準入力階調値に近い入力階調値ほど出力値として第２の基準出力階調値に近い値を有するように、第１および第２の基準入力階調値以外の各入力階調値に対する出力階調値を決定する。
【００２２】
このような態様とすれば、画像処理の対象とする画像の特質に応じて画像のコントラストが強調されるように、トーンカーブの形状を決定することができる。その結果、画像処理の対象とする画像の特質に応じて画像のコントラストが強調されるようなルックアップテーブルを生成することができる。
【００２３】
さらに、トーンカーブを生成する際には、以下のような処理を行うことも好ましい。すなわち、ｎ個のトーンカーブについて、同一の基準入力階調値にそれぞれ対応する基準出力階調値として、所定の範囲内に含まれる基準出力階調値を決定する。そして、ｎ個のトーンカーブについて、基準入力階調値に対して同じ側にある入力階調値に関しては、基準入力階調値に近い入力階調値ほど出力階調値として基準出力階調値に近い値を有するように、基準入力階調値以外の各入力階調値に対する出力階調値を決定する。
【００２４】
このような態様とすれば、色変換によって色相が大きく変わってしまわないようなルックアップテーブルを生成することができる。
【００２５】
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像処理方法および画像処理装置、画像データ生成方法および画像データ生成装置、色変換方法および色変換装置、印刷方法および印刷装置、印刷制御方法および印刷制御装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００２６】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１実施例：
Ａ１．装置の全体構成：
Ａ２．ＬＵＴ生成モジュールにおける処理：
Ｂ．第２実施例：
Ｃ．変形例：
【００２７】
Ａ．第１実施例：
Ａ１．装置の全体構成：
図１は、第１の実施形態の印刷システムのソフトウェアの構成を示すブロック図である。コンピュータ９０では、所定のオペレーティングシステムの下で、アプリケーションプログラム９５が動作している。また、オペレーティングシステムには、ビデオドライバ９１やプリンタドライバ９６が組み込まれている。
【００２８】
アプリケーションプログラム９５は、マウス１３０やキーボード１２０から入力されるユーザの指示に応じて、レッド（Ｒ），グリーン（Ｇ），ブルー（Ｂ）の３色の色成分からなる原画像データＯＲＧをＣＤ−Ｒ１４０から読み込む。そして、ユーザの指示に応じて、原画像データＯＲＧに画像のレタッチなどの処理を行う。アプリケーションプログラム９５は、処理を行った画像を、ビデオドライバ９１を介してＣＲＴディスプレイ２１に画像を表示する。また、アプリケーションプログラム９５は、ユーザからの印刷指示を受け取ると、プリンタドライバ９６に印刷指示を出し、処理を行った画像を初期画像データＰＩＤとしてプリンタドライバ９６に出力する。初期画像データＰＩＤは、各画素の色がｓＲＧＢ表色系で表された画像データである。より具体的には、初期画像データＰＩＤは、各画素について、レッド（Ｒ），グリーン（Ｇ），ブルー（Ｂ）の色成分の階調値（０〜２５５）を有する画像データである。
【００２９】
プリンタドライバ９６は、初期画像データＰＩＤをアプリケーションプログラム９５から受け取り、これをプリンタ２２が処理可能な印刷画像データＦＮＬ（ここではシアン、マゼンダ、イエロー、ブラック、ライトシアン、ライトマゼンタの６色についての多値化された信号）に変換する。
【００３０】
図１に示した例では、プリンタドライバ９６の内部には、縮小画像生成モジュール１０１と、ルックアップテーブル生成モジュール１０２と、色調調整モジュール１０３と、解像度変換モジュール９７と、色変換モジュール９８と、ハーフトーンモジュール９９と、並べ替えモジュール１００とが備えられている。
【００３１】
縮小画像生成モジュール１０１は、アプリケーションプログラム９５から受け取った初期画像データＰＩＤに基づいて縮小画像データＰＩＤ２を生成する。縮小画像データＰＩＤ２は、初期画像データＰＩＤと同一の対象を表し、初期画像データＰＩＤよりも画像を構成する画素の数が少ない画像データである。
【００３２】
ルックアップテーブル生成モジュール１０２（以下では「ＬＵＴ生成モジュール１０２」と表記する）は、縮小画像データＰＩＤ２を解析し、その解析結果に基づいて３次元ルックアップテーブル１０４ａを生成する。３次元ルックアップテーブル１０４ａは、入力値としてレッド、グリーン、ブルーの階調値Ｖｒｉ，Ｖｇｉ，Ｖｂｉの組み合わせを有し、出力値としてレッド、グリーン、ブルーの階調値Ｖｒｏ，Ｖｇｏ，Ｖｂｏの組み合わせを有するルックアップテーブルである。３次元ルックアップテーブル１０４ａは、少なくとも一部の入力値（Ｖｒｉ，Ｖｇｉ，Ｖｂｉ）については、入力値とは異なる色を表す出力値（Ｖｒｏ，Ｖｇｏ，Ｖｂｏ）を有する。
【００３３】
色調調整モジュール１０３は、アプリケーションプログラム９５から受け取った初期画像データＰＩＤを、３次元ＬＵＴ１０４ａを参照しつつ変換して、画像データＰＩＤｒを生成する。画像データＰＩＤｒは、各画素についてレッド（Ｒ），グリーン（Ｇ），ブルー（Ｂ）の色成分の階調値を有し、初期画像データＰＩＤと同じ画素数の画像データである。
【００３４】
なお、縮小画像生成モジュール１０１、ルックアップテーブル生成モジュール１０２、色調調整モジュール１０３における画像処理においては、ユーザが所定のタイミングで、マウス１３０やキーボード１２０を介して指示を入力することもできる。しかし、ユーザからの指示がない場合にも、縮小画像生成モジュール１０１、ルックアップテーブル生成モジュール１０２、色調調整モジュール１０３における画像処理は自動的に行われる。
【００３５】
解像度変換モジュール９７は、画像データＰＩＤｒの解像度をプリンタ２２で印刷を行う際の解像度に変換する。
【００３６】
色変換モジュール９８は、色変換テーブル１０４の３次元ルックアップテーブル１０４ｂを参照しつつ、画像データＭＩＤ１を画像データＭＩＤ２に変換する。画像データＭＩＤ２は、プリンタ２２が使用するシアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、ライトシアン（ＬＣ）、ライトマゼンタ（ＬＭ）の濃度の階調値で各画素の色が表された画像データである。なお、３次元ルックアップテーブル１０４ｂは、入力値としてレッド、グリーン、ブルーの階調値の組み合わせを有し、出力値としてシアン、マゼンダ、イエロー、ブラック、ライトシアン、ライトマゼンタの階調値の組み合わせを有するルックアップテーブルである。この３次元ルックアップテーブル１０４ｂは、縮小画像データＰＩＤ２や初期画像データＰＩＤに基づいて生成されるものではなく、初期画像データＰＩＤによらず、あらかじめ用意されたものである。
【００３７】
ハーフトーンモジュール９９は、各画素の各色の濃度が各色の階調値で表された画像データＭＩＤ２にハーフトーン処理を行うことによって、各色の濃度が各画素におけるドットの有無で表される画像データＭＩＤ３（「印刷データ」または「ドットデータ」とも呼ぶ）に変換する。
【００３８】
こうして生成された画像データＭＩＤ３は、並べ替えモジュール１００によりプリンタ２２に転送すべきデータ順に並べ替えられて、最終的な印刷画像データＦＮＬとして出力される。
【００３９】
プリンタ２２は、紙送りモータによって用紙Ｐを搬送する機構と、キャリッジモータによってキャリッジ３１を用紙Ｐの搬送方向ＳＳと垂直な方向ＭＳに往復動させる機構と、キャリッジ３１に搭載されインクの吐出およびドット形成を行う印刷ヘッド２８と、各種の設定データを格納しているＰ−ＲＯＭ４２と、これらの紙送りモータ，キャリッジモータ，印刷ヘッド２８、Ｐ−ＲＯＭ４２および操作パネル３２を制御するＣＰＵ４１とから構成されている。プリンタ２２は、印刷画像データＦＮＬを受け取って、印刷画像データＦＮＬに応じてシアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、ライトシアン（ＬＣ）、ライトマゼンタ（ＬＭ）で印刷媒体上にドットを形成し、印刷を実行する。
【００４０】
なお、「ライトシアン」は、シアンと色相が同じでシアンよりも明度が高いインク色である。ライトシアンとシアンは、一部の色を再現する際に互いに置き換え可能である。すなわち、ライトシアンとシアンは、それぞれ異なる記録率で記録することで、同程度の濃度のシアンの色成分を表現することができる。
【００４１】
また、「ライトマゼンタ」は、マゼンタと色相が同じでマゼンタよりも明度が高いインク色である。ライトマゼンタとマゼンタは、一部の色を再現する際に互いに置き換え可能である。すなわち、ライトマゼンタとマゼンタは、それぞれ異なる記録率で記録することで、同程度の濃度のマゼンタの色成分を表現することができる。
【００４２】
なお、本明細書においては、「印刷装置」とは、狭義にはプリンタ２２のみをさすが、広義にはコンピュータ９０とプリンタ２２とを含む印刷システム全体を表す。
【００４３】
Ａ２．ＬＵＴ生成モジュールにおける処理：
図２は、ＬＵＴ生成モジュール１０２における処理を表すフローチャートである。ステップＳ１００では、ＬＵＴ生成モジュール１０２は、まず、縮小画像データＰＩＤ２を解析して、縮小画像データＰＩＤ２の特性を表すパラメータを計算する。
【００４４】
ステップＳ１００では、ＬＵＴ生成モジュール１０２は、たとえば、縮小画像データＰＩＤ２の各画素について、以下の式で明度Ｖｙを求める。なお、Ｖｒは各画素のレッドの階調値であり、Ｖｇは各画素のグリーンの階調値であり、Ｖｂは各画素のブルーの階調値である。
【００４５】
Ｖｙ＝０．３０Ｖｒ＋０．５９Ｖｇ＋０．１１Ｖｂ  ・・・  （１）
【００４６】
そして、縮小画像データＰＩＤ２について、明度Ｖｙの平均値Ｖｙａと標準偏差σyを求める。このようにして得られた縮小画像データＰＩＤ２の明度Ｖｙの平均値Ｖｙａと標準偏差σyは、縮小画像データＰＩＤ２の特性を表し、ひいては初期画像データＰＩＤの特性を表すパラメータである。
【００４７】
また、ステップＳ１００では、ＬＵＴ生成モジュール１０２は、記憶色に基づく調整を行う色範囲を決定し、その色範囲に対応する対象記憶色パラメータＰｍｃを決定する。対象記憶色パラメータＰｍｃも、縮小画像データＰＩＤ２の特性に基づいて定められ、縮小画像データＰＩＤ２の特性を表すパラメータである。
【００４８】
図３は、記憶色テーブル１０５の内容の一部を示す図である。ＬＵＴ生成モジュール１０２は、記憶色テーブル１０５を有している。ＬＵＴ生成モジュール１０２は、この記憶色テーブル１０５に基づいて、対象記憶色パラメータＰｍｃを決定する。記憶色テーブル１０５は、Ｍ個（Ｍは２以上の整数）の色範囲Ｃｍ１〜ＣｍＭについて、色相（Ｈ）、彩度（Ｓ）、明るさ（Ｂ）の範囲を格納している。たとえば、図３において、色範囲Ｃｍ１は、Ｈ＝１９０〜２７０°、Ｓ＝３０〜９０％、Ｂ＝０〜１００％の範囲の色である。なお、色範囲Ｃｍ１は青空の色である。記憶色テーブル１０５は、同様に、木の緑の色、人間の肌の色などについて、それぞれ複数の色範囲Ｃｍ２〜ＣｍＭを格納している。
【００４９】
図４は、記憶色に関する調整の内容を表す対象記憶色パラメータを決定する手順を示すフローチャートである。ステップＳ１１０では、ＬＵＴ生成モジュール１０２は、まず、ｓＲＧＢ表色系で表された縮小画像データＰＩＤ２をＨＳＢ表色系で表されたＨＳＢ画像データＰＩＤ３に変換する。そして、ステップＳ１２０では、記憶色の色範囲Ｃｍ１〜ＣｍＭに含まれる色（図３参照）がそれぞれＨＳＢ画像データＰＩＤ３の画像中で占める領域の大きさを計算する。領域の大きさは画素数で表す。
【００５０】
その後、ステップＳ１３０では、ＨＳＢ画像データＰＩＤ３の画像中で最も大きな領域を占める記憶色の色範囲を、記憶色に関する調整の対象とする対象記憶色として決定する。ＨＳＢ画像データＰＩＤ３は、縮小画像データＰＩＤ２を変換して生成されたデータであり、縮小画像データＰＩＤ２は、初期画像データＰＩＤを縮小して生成された画像である。よって、対象記憶色として決定された色範囲は、初期画像データＰＩＤの画像中および縮小画像データＰＩＤ２の画像中においても最も広い領域を占める。
【００５１】
図４のステップＳ１４０では、対象記憶色の番号を対象記憶色パラメータＰｍｃとして記憶する。たとえば、色範囲Ｃｍ１が対象記憶色として選択された場合には、Ｐｍｃ＝１である。色範囲Ｃｍｉ（ｉ＝１〜Ｍ）が対象記憶色として選択された場合には、Ｐｍｃ＝ｉである。図２のステップＳ１００では、ＬＵＴ生成モジュール１０２は、たとえば以上のような処理を行って、縮小画像データの特性を表すパラメータＶｙａ，σy，Ｐｍｃを決定する。
【００５２】
図２のステップＳ２００では、ＬＵＴ生成モジュール１０２は、ステップＳ１００における縮小画像データＰＩＤ２の解析の結果得られた複数のパラメータＶｙａ，σy，Ｐｍｃに基づいて、３次元ルックアップテーブル１０４ａを生成する。
【００５３】
第１実施例では、初期画像データＰＩＤそのものを解析するのではなく、縮小画像データＰＩＤ２を解析して、その解析結果に基づいて３次元ルックアップテーブル１０４ａを生成する。このため、初期画像データＰＩＤそのものを解析して３次元ルックアップテーブルを生成する態様に比べて処理の負荷が小さい。また、縮小画像データＰＩＤ２は、初期画像データＰＩＤを縮小して得られた画像である。このため、３次元ルックアップテーブル１０４ａは、初期画像データＰＩＤの特質を反映して生成される。
【００５４】
図５は、図２のステップＳ２００における３次元ルックアップテーブル１０４ａの生成手順を示すフローチャートである。ステップＳ２１０では、まず、ステップＳ１００で得られた明度Ｖｙの平均値Ｖｙａと標準偏差σyに基づいて、トーンカーブの形状を決定するための設定パラメータを計算する。
【００５５】
ＬＵＴ生成モジュール１０２は、トーンカーブの設定パラメータとしての明度調整パラメータｄｌを以下の式（２）で計算する。明度調整パラメータｄｌは、最終的に生成される３次元ルックアップテーブル１０４ａによって、画像の明るさが目標とする明るさに調整されるようにするためのパラメータである。なお、式（２）中のａは、正の定数である。Ｖｙｃは、平均明度の目標値であり、たとえば、明度階調値の中央の値である。第１実施例では明度の階調値は式（１）より０〜２５５であるので、Ｖｙｃは１２８である。
【００５６】
ｄｌ＝ａ×（Ｖｙｃ−Ｖｙａ）  ・・・  （２）
【００５７】
また、ＬＵＴ生成モジュール１０２は、ステップＳ２１０において、以下の式（３）または（４）で設定パラメータとしてのコントラスト調整パラメータｄｃを計算する。コントラスト調整パラメータｄｃは、最終的に生成される３次元ルックアップテーブル１０４ａによって画像のコントラストを調整するためのパラメータである。なお、式（３）中のｂおよびσy0は、正の定数である。σy0は、明度の階調値の標準偏差の目標値である。
【００５８】
ｄｃ＝ｂ×（σy0−σy）  （σy＜σy0のとき）  ・・・  （３）  
ｄｃ＝０                 （σy≧σy0のとき）  ・・・  （４）
【００５９】
ステップＳ２２０では、ＬＵＴ生成モジュール１０２は、明度調整パラメータｄｌおよびコントラスト調整パラメータｄｃに基づいて、トーンカーブを生成する。ステップＳ２２０で生成されるトーンカーブは、離散的な入力値および出力値を有する。なお、第１実施例では、レッド、グリーン、ブルーの階調値変換に関して同じトーンカーブが使用されるものとする。
【００６０】
図６（ａ），（ｂ）は、図５のステップＳ２２０におけるトーンカーブの生成方法の一例を示す図である。各グラフの横軸がレッド、グリーン、およびブルーの入力階調値Ｖｉを表し、縦軸がそれらの出力階調値Ｖｏを表す。ＬＵＴ生成モジュール１０２は、図５のステップＳ２２０において、まず、入力階調値がとりうる範囲の下から１／４の階調値である基準入力階調値Ｖｉｒ１＝６４の暫定的な出力階調値Ｖｏｒ１’を以下の式（５）で決定する。
【００６１】
Ｖｏｒ１’＝Ｖｉｒ１＋ｄｌ  ・・・  （５）
【００６２】
すなわち、明度の平均値ＶｙａがＶｙｃ（１２８）未満であるときには、基準入力階調値Ｖｉｒ１を｜ｄｌ｜だけ増加させる。一方、明度の平均値ＶｙａがＶｙｃより大きいときには、基準入力階調値Ｖｉｒ１を｜ｄｌ｜だけ減少させる。そして、暫定的なトーンカーブＣ１ｐを点Ｏ（０，０）、点ｐ１’（Ｖｉｒ１，Ｖｏｒ１’）、および点ｐｍａｘ（Ｖｉｍａｘ，Ｖｏｍａｘ）を通るスプライン曲線として生成する。Ｖｉｍａｘは入力階調値の最大値であり、Ｖｏｍａｘは出力階調値の最大値である。なお、図６（ａ）では、明度の平均値ＶｙａがＶｙｃ＝１２８より小さい場合の例を示す。
【００６３】
その後、ＬＵＴ生成モジュール１０２は、さらに、下から１／４の階調値である基準入力階調値Ｖｉｒ１＝６４に対応する基準出力階調値Ｖｏｒ１を以下の式（６）で決定する。
【００６４】
Ｖｏｒ１＝Ｖｏｒ１’−ｄｃ  ・・・  （６）
【００６５】
式（３）、（４）、（６）より、明度の標準偏差σyがσy0未満であるときには、基準入力階調値Ｖｉｒ１の出力階調値をｄｃだけ減少させる。一方、明度の標準偏差がσy0以上であるときには、基準入力階調値Ｖｉｒ１の出力階調値は、暫定的な出力階調値Ｖｏ１’のままである。なお、図６（ｂ）では、明度の標準偏差σyがσy0未満である場合の例を示す。
【００６６】
また、ＬＵＴ生成モジュール１０２は、入力階調値がとりうる範囲の上から１／４の階調値である基準入力階調値Ｖｉｒ２＝１９２の出力階調値Ｖｏ２を以下の式（７）で決定する。なお、Ｖｏ２’は、明度調整パラメータｄｌに基づいて生成した暫定的なトーンカーブＣ１ｐ（図６（ａ）参照）における基準入力階調値Ｖｉｒ２の出力階調値である。
【００６７】
Ｖｏｒ２＝Ｖｏｒ２’＋ｄｃ  ・・・  （７）
【００６８】
式（３）、（４）、（７）より、明度の標準偏差σyがσy0未満であるときには、基準入力階調値Ｖｉｒ２の出力階調値をｄｃだけ増加させる。一方、明度の標準偏差がσy0以上であるときには、基準入力階調値Ｖｉｒ２の出力階調値は、暫定的な出力階調値Ｖｏ２’のままである。なお、図６（ｂ）では、明度の標準偏差σyがσy0未満である場合の例を示している。
【００６９】
一方、ＬＵＴ生成モジュール１０２は、下から１／２の階調値である基準入力階調値Ｖｉｒ３＝１２８の出力階調値Ｖｏ３を、暫定的なトーンカーブＣ１ｐにおける基準入力階調値Ｖｉｒ３の出力階調値Ｖｏ３’と同じ値とする。
【００７０】
そして、ＬＵＴ生成モジュール１０２は、トーンカーブＣ１を点Ｏ（０，０）、点ｐ１（Ｖｉｒ１，Ｖｏｒ１）、点ｐ３（Ｖｉｒ３，Ｖｏｒ３）、点ｐ２（Ｖｉｒ２，Ｖｏｒ２）、および点ｐｍａｘ（Ｖｉｍａｘ，Ｖｏｍａｘ）を通るスプライン曲線として生成する。その結果、基準入力階調値Ｖｉｒ１に対して同じ側にある入力階調値に関しては、基準入力階調値Ｖｉｒ１に近い入力階調値ほど、基準出力階調値Ｖｏｒ１に近い値を出力値として有するように、トーンカーブが決定される。また、基準入力階調値Ｖｉｒ２に対して同じ側にある入力階調値に関しては、基準入力階調値Ｖｉｒ２に近い入力階調値ほど、基準出力階調値Ｖｏｒ２に近い値を出力値として有するように、トーンカーブが決定される。そして、基準入力階調値Ｖｉｒ３に対して同じ側にある入力階調値に関しては、基準入力階調値Ｖｉｒ３に近い入力階調値ほど、基準入力階調値Ｖｉｒ３に対応する基準出力階調値Ｖｏｒ３に近い値を出力値として有するようにトーンカーブが決定される。図５のステップＳ２２０では、以上のようにしてトーンカーブが生成される。
【００７１】
図５のステップＳ２３０では、ステップＳ２２０で生成したトーンカーブを解析して３次元ルックアップテーブル１０４ａの入力階調値を決定する。
【００７２】
図７は、図５のステップＳ２３０において３次元ルックアップテーブル１０４ａの入力階調値を決定する手順を示すフローチャートである。図８は、トーンカーブＣ１上において３次元ルックアップテーブル１０４ａの入力階調値を決定する方法を示す図である。図７のステップＳ２３１では、まず、トーンカーブについて、互いに一定の間隔ｄｉを有する複数の入力階調値について、それぞれが対応する出力階調値と、次に小さい入力階調値の出力階調値と、の差分を求める。たとえば、０〜２５５まで互いに１６階調の間隔を有する入力階調値Ｖｉk（ｋ＝１〜１７）について、それぞれが対応する出力階調値Ｖｏkと、１６階調大きい次の入力階調値Ｖｉk+1の出力階調値Ｖｏk+1と、の差分ｄｖkを求める。各差分ｄｖkは、それぞれ入力階調値Ｖｉkと対応づけられる。なお、図８では、トーンカーブＣ１を破線で示し、入力階調値Ｖｉkに対応するトーンカーブ上の点を黒い点で示す。
【００７３】
図７のステップＳ２３２では、入力階調値Ｖｉkのうち差分ｄｖkがしきい値Ｔｈよりも大きいものを選択する。ステップＳ２３３では、差分ｄｖkがしきい値Ｔｈよりも大きい入力階調値Ｖｉkの数がＬ個（Ｌは正の整数）よりも大きいか否かを判定する。判定結果がＹｅｓである場合は、ステップＳ２３４に進む。ステップＳ２３４では、ステップＳ２３２で選択された入力階調値Ｖｉkを差分ｄｖkの大きい順に順位付けする。そして、ステップＳ２３５で、差分ｄｖkが大きいものからＬ個の入力階調値を３次元ルックアップテーブル１０４ａの入力階調値として決定する。
【００７４】
Ｌは、３次元ルックアップテーブル１０４ａの入力階調値の最大数として予め定められた数Ｎｍａｘよりも２だけ少ない数である。なお、Ｎｍａｘは３以上の整数である。第１実施例では、たとえば、Ｎｍａｘは９とし、Ｌは７とする。図８の例では、図７のステップＳ２３５において、Ｖｉ6〜Ｖｉ12の７個の入力階調値が差分ｄｖkの大きさに基づいて選択される。
【００７５】
また、図７のステップＳ２３５では、最小の入力階調値Ｖｉｍｉｎと最大の入力階調値Ｖｉｍａｘも、３次元ルックアップテーブル１０４ａの入力階調値として選択する。その後、処理は終了する。図８の例では、Ｖｉ1とＶｉ17がそれぞれＶｉｍｉｎとＶｉｍａｘであることから、Ｖｉ6〜Ｖｉ12に加えて、Ｖｉ1とＶｉ17が３次元ルックアップテーブル１０４ａの入力階調値として選択される。図８において、入力階調値Ｖｉkのうち３次元ルックアップテーブル１０４ａの入力階調値として選択されたものに対応するトーンカーブ上の点に丸を付して示す。
【００７６】
一方、ステップＳ２３３において、ステップ２３２で選択された入力階調値がＬ個以下であるとされた場合は、処理は、ステップＳ２３６に進む。ステップＳ２３６では、ステップＳ２３２で選択されたすべての入力階調値と、最小の入力階調値Ｖｉｍｉｎと最大の入力階調値Ｖｉｍａｘを、第１の候補階調値として選択する。すなわち、図７の手順では、最大Ｌ個の入力階調値が差分ｄｖkに基づいて選択される。図５のステップＳ２３０では、以上のようにして、３次元ルックアップテーブル１０４ａの最大Ｎｍａｘ個の入力階調値が決定される。
【００７７】
図５のステップＳ２４０では、ステップＳ２３０で決定された入力階調値と、それらに対応する出力階調値と、から、３次元ルックアップテーブル１０４ｃを生成する。３次元ルックアップテーブル１０４ｃは、入力値として、レッド、グリーン、ブルーの階調値を有し、出力値として、レッド、グリーン、ブルーの階調値を有する。
【００７８】
図９は、３次元ルックアップテーブル１０４ｃにおいて、ブルーの入力階調値Ｖｂｉ＝０の平面上に位置するグリッドを丸で囲まれた黒点で示す図である。「グリッド」とは、入力階調値の組み合わせで色空間内において特定される点である。３次元ルックアップテーブル１０４ｃのレッド、グリーン、ブルー入力階調値は、ステップＳ２３０で決定されたＮｍａｘ個の入力階調値である。図８の例では、Ｖｉ1，Ｖｉ6〜Ｖｉ12，Ｖｉ17の９個の階調値である。図９では、レッドの入力階調値は、Ｖｒｉ1，Ｖｒｉ6〜Ｖｒｉ12，Ｖｒｉ17で示し、グリーンの入力階調値は、Ｖｇｉ1，Ｖｇｉ6〜Ｖｇｉ12，Ｖｇｉ17で示す。
【００７９】
３次元ルックアップテーブル１０４ｃの各グリッドにおける各色成分の出力階調値は、その色成分のトーンカーブに基づいて定められる。たとえば、ブルーの入力階調値がＶｂｉ＝Ｖｉ1、すなわち０であるグリッドについては、いずれも、ブルーの出力階調値は、図５のステップＳ２２０で定めたブルーのトーンカーブにおいてＶｉ1に対応するＶｏ1、すなわち０である。ブルーの入力階調値がＶｉ6であるグリッドについては、いずれも、ブルーの出力階調値は、ブルーのトーンカーブにおいてＶｉ6に対応するＶｏ6である。レッド、グリーンの出力階調値についても同様である。
【００８０】
図５のステップＳ２５０では、３次元ルックアップテーブル１０４ｃに対して記憶色に関する調整を行って、３次元ルックアップテーブル１０４ａを生成する。具体的には、Ｓ２４０で生成した３次元ルックアップテーブル１０４ｃのうち記憶色の範囲に含まれるグリッドの出力階調値について改変を行って、３次元ルックアップテーブル１０４ａを生成する。
【００８１】
図１０は、３次元ルックアップテーブル１０４ｃのうち記憶色の範囲に含まれるグリッドの出力階調値について改変を行う手順を示すフローチャートである。ステップＳ２５２では、まず、３次元ルックアップテーブル１０４ｃのグリッドのうち調整対象の記憶色の色範囲に含まれるグリッドを特定する。この色範囲は、図２のステップＳ１００で決定された対象記憶色パラメータＰｍｃに対応する記憶色の色範囲である。具体的には、ｓＲＧＢ色空間において、対象記憶色パラメータＰｍｃの色範囲Ｃｍｉに対応する８個の点ｐｃ１（Ｖｃｒ１，Ｖｃｇ１，Ｖｃｂ１）〜ｐｃ８（Ｖｃｒ８，Ｖｃｇ８，Ｖｃｂ８）を頂点とする多面体が定める範囲である。
【００８２】
図１１は、３次元ルックアップテーブル１０４ｃのうち記憶色の範囲を示す図である。点ｐｃ１〜ｐｃ８は以下のように定められる。
【００８３】
図３の記憶色テーブル１０５に示したように、記憶色の色範囲は、Ｈ，Ｓ，Ｂについての範囲で定められている。記憶色の色範囲が、Ｈ＝Ｈｍｉｎ〜Ｈｍａｘ、Ｓ＝Ｓｍｉｎ〜Ｓｍａｘ、Ｂ＝Ｂｍｉｎ〜Ｂｍａｘであるとすると、これらの範囲の両端の数値の組み合わせで以下の８色（＝２n）の色ｃ１〜ｃ８が定められる。
【００８４】
ｃ１：（Ｈ，Ｓ，Ｂ）＝（Ｈｍｉｎ，Ｓｍｉｎ，Ｂｍｉｎ）  
ｃ２：（Ｈ，Ｓ，Ｂ）＝（Ｈｍｉｎ，Ｓｍｉｎ，Ｂｍａｘ）  
ｃ３：（Ｈ，Ｓ，Ｂ）＝（Ｈｍｉｎ，Ｓｍａｘ，Ｂｍｉｎ）  
ｃ４：（Ｈ，Ｓ，Ｂ）＝（Ｈｍｉｎ，Ｓｍａｘ，Ｂｍａｘ）  
ｃ５：（Ｈ，Ｓ，Ｂ）＝（Ｈｍａｘ，Ｓｍｉｎ，Ｂｍｉｎ）  
ｃ６：（Ｈ，Ｓ，Ｂ）＝（Ｈｍａｘ，Ｓｍｉｎ，Ｂｍａｘ）  
ｃ７：（Ｈ，Ｓ，Ｂ）＝（Ｈｍａｘ，Ｓｍａｘ，Ｂｍｉｎ）  
ｃ８：（Ｈ，Ｓ，Ｂ）＝（Ｈｍａｘ，Ｓｍａｘ，Ｂｍａｘ）  
【００８５】
図１１に示した点ｐｃ１〜ｐｃ８は、これらの色ｃ１〜ｃ８をそれぞれｓＲＧＢ表色系で表した点である。言い換えれば、点ｐｃ１〜ｐｃ８は、ＨＳＢ表色系の色空間における点ｃ１〜ｃ８であって、Ｈ，Ｓ，Ｂについて改変を行う対象となる範囲の最大値または最小値を各成分の階調値として有する点ｃ１〜ｃ８に対応する点である。なお、ＨＳＢ表色系で表された色ｃ１〜ｃ８とｓＲＧＢ色空間における点（ｓＲＧＢ表色系で表された色）ｐｃ１〜ｐｃ８においては、ｃ１とｐｃ１など同一の番号を有するものが対応関係を有しているわけではない。すなわち、たとえば、ｃ２とｐｃ７などの異なる番号を有する色が対応する場合もある。点ｐｃ１〜ｐｃ８のＲＧＢの階調値（Ｖｒｉ１，Ｖｇｉ１，Ｖｂｉ１）〜（Ｖｒｉ８，Ｖｇｉ８，Ｖｂｉ８）は、あらかじめ各記憶色Ｃｍ１〜ＣｍＭに対応づけられて記憶色テーブル１０５に格納されている（図３において図示せず）。
【００８６】
図１０のステップＳ２５２では、ステップＳ１００で決定された対象記憶色パラメータＰｍｃの記憶色に対応する点ｐｃ１〜ｐｃ８を頂点とする多面体で囲まれた範囲に含まれるグリッドを特定する。そして、点ｐｃ１〜ｐｃ８で囲まれた範囲に含まれるグリッドについて以下のステップＳ２５４〜Ｓ２５８の処理を行う。
【００８７】
ステップＳ２５４では、グリッドが有している出力階調値（Ｖｒｏ，Ｖｇｏ，Ｖｂｏ）をＨＳＢ表色系の階調値に変換する。そして、ステップＳ２５６では、ＨＳＢ表色系で表されたＨ，Ｓ，Ｂの階調値を改変する。
【００８８】
図１２は、ステップＳ２５６における階調値の改変の内容の一例を示す図である。図１２は、青空の色範囲であるＣｍ１に含まれるグリッドの色の改変内容を示している。記憶色の範囲は、Ｈ＝Ｈ１〜Ｈ４，Ｓ＝Ｓ１〜Ｓ４，Ｂ＝Ｂ１〜Ｂ４であるものとする（図３参照）。図中、Ｈ２，Ｈ３は、Ｈ１〜Ｈ４の範囲に含まれる色相の階調値である。Ｓ２，Ｓ３は、Ｓ１〜Ｓ４の範囲に含まれる彩度の階調値である。Ｂ２，Ｂ３は、Ｂ１〜Ｂ４の範囲に含まれる明るさの階調値である。
【００８９】
グリッドの出力色（グリッドが有している出力階調値によって特定される色をいう）の色相Ｈが、Ｈ＝Ｈ２〜Ｈ３の範囲にある場合は、Ｈは、（Ｈ＋ｄＨ）に改変される。図１２の例では、ｄＨ＝−５である。そして、Ｈ＝Ｈ１〜Ｈ２の範囲については、Ｈの値がＨ１に近いほど改変量が少なくなるように、すなわち０に近づくように改変量が設定される。そして、Ｈの値がＨ２に近いほど改変量がｄＨに近づくように改変量が設定される。また、Ｈ＝Ｈ３〜Ｈ４の範囲については、Ｈの値がＨ４に近いほど改変量が少なく、Ｈの値がＨ３に近いほどｄＨに近づくように改変量が設定される。
【００９０】
このような方法で改変を行うことで、生成される３次元ルックアップテーブル１０４ａを参照して画像の色の調整を行った場合に、画像の色、特に色相が不自然とならないように、３次元ルックアップテーブル１０４ａの出力値を定めることができる。
【００９１】
また、図１２の中段に示すように、グリッドの出力色の彩度Ｓが、Ｓ＝Ｓ２〜Ｓ３の範囲にある場合は、Ｓは、（Ｓ＋ｄＳ）に改変される。図１２の例では、ｄＳ＝＋１５である。そして、Ｓ＝Ｓ１〜Ｓ２の範囲については、Ｓの値がＳ１に近いほど改変量が少なく、Ｓの値がＳ２に近いほどｄＳに近づくように改変量が設定される。また、Ｓ＝Ｓ３〜Ｓ４の範囲については、Ｓの値がＳ４に近いほど改変量が少なく、Ｓの値がＳ３に近いほどｄＳに近づくように改変量が設定される。
【００９２】
このような方法で改変を行うことで、生成される３次元ルックアップテーブル１０４ａを参照して画像の色の調整を行った場合に、画像の色、特に彩度が不自然とならないように、３次元ルックアップテーブル１０４ａの出力値を定めることができる。
【００９３】
明るさＢについても同様である。ただし、色範囲Ｃｍ１においては、改変量ｄＢが０であるので、図１２の例では、Ｂ＝Ｂ１〜Ｂ４の範囲についてＢの改変は行われていない。ただし、明るさの改変を行う場合には、上記の色相や彩度と同様な方法で改変を行うことで、生成される３次元ルックアップテーブル１０４ａを参照して画像の色の調整を行った場合に、画像の色、特に明るさが不自然とならないように、３次元ルックアップテーブル１０４ａの出力値を定めることができる。
【００９４】
図１３は、記憶色テーブル１０５を示す図である。上記の記憶色の調整に使用されるＨ１〜Ｈ４，ｄＨ，Ｓ１〜Ｓ４，ｄＳ，Ｂ１〜Ｂ４，ｄＢの値、そして、上述の点ｐｃ１〜ｐｃ８のＲＧＢの階調値（Ｖｃｒ１，Ｖｃｇ１，Ｖｃｂ１）〜（Ｖｃｒ８，Ｖｃｇ８，Ｖｃｂ８）は、あらかじめ記憶色テーブル１０５に格納されている。すなわち、記憶色テーブル１０５は、図１３に示すような情報を格納している。ＬＵＴ生成モジュール１０２は、このような記憶色テーブル１０５に基づいて各記憶色の領域の大きさを計算し（図４のステップＳ１２０参照）、記憶色の範囲に含まれるグリッドを特定し（図１０のステップＳ２５２参照）、グリッドが有する出力色を改変する（同、ステップＳ２５６参照）
【００９５】
図１０のステップＳ２５８では、ステップＳ２５６で改変したグリッドの出力色をｓＲＧＢ表色系の階調値に変換して、グリッドの出力色を得る。ステップＳ２６０では、調整対象の記憶色の色範囲に含まれるグリッドのすべてについてステップＳ２５４〜Ｓ２５８の処理を行ったか否かを判定する。そして、まだ、ステップＳ２５４〜Ｓ２５８の処理を行っていないグリッドが存在する場合は、ステップＳ２５４に戻ってそれらのグリッドについて出力色の改変を行う。点ｐｃ１〜ｐｃ８で囲まれた調整対象の記憶色の色範囲に含まれるグリッドのすべてについてステップＳ２５４〜Ｓ２５８の処理を行った場合には、処理を終了する。
【００９６】
図５のステップＳ２５０では、以上のような手順で３次元ルックアップテーブル１０４ｃのグリッドのうち記憶色の色範囲に含まれるグリッドの出力色が調整され、３次元ルックアップテーブル１０４ａが生成される（図１および図２のステップＳ２００参照）。
【００９７】
第１実施例で生成した３次元ルックアップテーブル１０４ａは、すべての階調値（０〜２５５）についての入力階調値を有しているわけではない。すなわち、３次元ルックアップテーブル１０４ａは、各色成分について９個の入力階調値しか有していない（図９参照）。色調調整モジュール１０３（図１参照）が３次元ルックアップテーブル１０４ａを参照しつつ初期画像データＰＩＤを変換して、画像データＰＩＤｒを生成する際には、３次元ルックアップテーブル１０４ａが有していない入力階調値を変換する場合には、補間演算を行う。すなわち、３次元ルックアップテーブル１０４ａが有しているグリッドのうち、変換を行おうとする色に最も近いグリッドを４個選択し、四面体補間を行って、それらのグリッドが有している各色成分の出力階調値から、変換しようとする入力階調値の出力階調位置を計算する。
【００９８】
第１実施例においては、３次元ルックアップテーブル１０４ａは、各色成分の入力階調値がとりうるすべての値について出力階調値を有しているのではなく、一部の入力階調値についてのみ出力階調値を有している。このため、各色成分の入力階調値がとりうるすべての値について出力階調値を有している態様に比べて、データ量が少ない。
【００９９】
また、初期画像データＰＩＤを画像データＰＩＤｒに変換する際には、補間演算が行われる。第１実施例においては、３次元ルックアップテーブル１０４ａのもとになる３次元ルックアップテーブル１０４ｃを生成する際に、トーンカーブにおいて出力階調値の増分が大きい領域については、出力階調値の増分が小さい領域に比べてより多くの入力階調値（グリッド）を有している（図８参照）。このため、ルックアップテーブル１０４ａを参照する際に、出力階調値の変化率が大きい領域において補間演算を行って出力階調値を得ても、均等間隔の入力階調値について出力階調値を有している３次元ルックアップテーブルに比べて、誤差が少ない。
【０１００】
Ｂ．第２実施例：
第１実施例では、ＲＧＢの各トーンカーブは同一であった（図６および図８参照）。しかし、第２実施例では、色調を調整するための各色成分のトーンカーブは、互いに異なっている。第２実施例のトーンカーブの生成方法以外の部分は、第１実施例と同じである。
【０１０１】
第２実施例では、ＬＵＴ生成モジュール１０２は、縮小画像データＰＩＤ２の解析において（図２のステップＳ１００参照）、レッド、グリーン、ブルーの各階調値の平均値Ｖｒａ，Ｖｇａ，Ｖｂａと、標準偏差σｒ，σｇ，σｂを計算する。
【０１０２】
そして、ＬＵＴ生成モジュール１０２は、トーンカーブの設定パラメータの計算において（図５のステップＳ２１０参照）、以下の式（８），（９），（１０）にしたがって、レッド、グリーン、ブルーについての平均階調値調整パラメータｄｌｒ，ｄｌｇ，ｄｌｂを計算する。なお、Ｖｒｃ，Ｖｇｃ，Ｖｂｃは、それぞれレッド、グリーン、ブルーの平均階調値の目標値であり、たとえば、各階調値の中央の値（第２実施例においては１２８）である。
【０１０３】
ｄｌｒ＝ａ×（Ｖｒｃ−Ｖｒａ）  ・・・  （８）  
ｄｌｇ＝ａ×（Ｖｇｃ−Ｖｇａ）  ・・・  （９）  
ｄｌｂ＝ａ×（Ｖｂｃ−Ｖｂａ）  ・・・  （１０）
【０１０４】
また、ＬＵＴ生成モジュール１０２は、ステップＳ２１０において、以下の式（１１）〜（１６）で設定パラメータとしてのコントラスト調整パラメータｄｃｒ，ｄｃｇ，ｄｃｂを計算する。コントラスト調整パラメータｄｃｒ，ｄｃｇ，ｄｃｂは、最終的に生成される３次元ルックアップテーブル１０４ａにおいて画像のコントラストを調整するためのパラメータである。なお、式（１１）〜（１６）中のｂおよびσｒ0，σｇ0，σｂ0は、正の定数である。σｒ0，σｇ0，σｂ0は、レッド、グリーン、ブルーの階調値の標準偏差の目標値である。
【０１０５】
ｄｃｒ＝ｂｒ×（σｒ0−σｒ）  （σｒ＜σｒ0のとき）  ・・・  （１１）  
ｄｃｒ＝０                     （σｒ≧σｒ0のとき）  ・・・  （１２）  
ｄｃｇ＝ｂｇ×（σｇ0−σｇ）  （σｇ＜σｇ0のとき）  ・・・  （１３）  
ｄｃｇ＝０                     （σｇ≧σｇ0のとき）  ・・・  （１４）  
ｄｃｂ＝ｂｂ×（σｇ0−σｇ）  （σｂ＜σｂ0のとき）  ・・・  （１５）  
ｄｃｂ＝０                     （σｂ≧σｂ0のとき）  ・・・  （１６）
【０１０６】
図１４は、第２実施例におけるトーンカーブの生成方法の手順を示すフローチャートである。このフローチャートは、第２実施例における図５のステップＳ２２０の内容を示すものである。以下では、レッド、グリーン、ブルーの各色成分についての処理のうち、レッドを例に説明する。
【０１０７】
図１５（ａ），（ｂ）は、図１４のステップＳ２２２におけるレッドのトーンカーブの生成方法の一例を示す図である。各グラフの横軸がレッドの入力階調値Ｖｒｉを表し、縦軸がレッドの出力階調値Ｖｒｏを表す。ＬＵＴ生成モジュール１０２は、ステップＳ２２２では、平均階調値調整パラメータｄｌｒおよびコントラスト調整パラメータｄｃｒに基づいて、レッドのトーンカーブを生成する。設定パラメータに基づくトーンカーブの生成方法は、第１実施例において明度に基づいてトーンカーブを生成した方法と略同様である。すなわち、まず、レッドの入力階調値がとりうる範囲の下から１／４の階調値である基準入力階調値Ｖｒｉｒ１＝６４の暫定的な出力階調値Ｖｒｏｒ１’を以下の式（１７）で決定する。
【０１０８】
Ｖｒｏｒ１’＝Ｖｒｉｒ１＋ｄｌｒ  ・・・  （１７）
【０１０９】
そして、暫定的なトーンカーブＣ１ｐｒを点Ｏ（０，０）、点ｐｒ１’（Ｖｒｉｒ１，Ｖｒｏｒ１’）、および点ｐｒｍａｘ（Ｖｒｉｍａｘ，Ｖｒｏｍａｘ）を通るスプライン曲線として生成する（図１５（ａ）参照）。なお、ＶｒｉｍａｘおよびＶｒｏｍａｘはレッドの階調値の最大値であり、２５５である。
【０１１０】
その後、ＬＵＴ生成モジュール１０２は、さらに、レッドの下から１／４の階調値である基準入力階調値Ｖｒｉｒ１＝６４の出力階調値Ｖｒｏｒ１を以下の式（１８）で決定する。
【０１１１】
Ｖｒｏｒ１＝Ｖｒｏｒ１’−ｄｃｒ  ・・・  （１８）
【０１１２】
また、ＬＵＴ生成モジュール１０２は、レッドの入力階調値がとりうる範囲の上から１／４の階調値である基準入力階調値Ｖｒｉｒ２＝１９２の出力階調値Ｖｒｏｒ２を以下の式（１９）で決定する。なお、Ｖｒｏｒ２’は、平均階調値調整パラメータｄｌｒに基づいて生成した暫定的なトーンカーブＣ１ｐｒにおける基準入力階調値Ｖｒｉｒ２の出力階調値である。
【０１１３】
Ｖｒｏｒ２＝Ｖｒｏｒ２’＋ｄｃｒ  ・・・  （１９）
【０１１４】
一方、ＬＵＴ生成モジュール１０２は、下から１／２の階調値である基準入力階調値Ｖｒｉｒ３＝１２８の出力階調値Ｖｒｏｒ３を、上記の暫定的なトーンカーブにおける基準入力階調値Ｖｒｉｒ３の出力階調値Ｖｒｏｒ３’と等しい値とする。
【０１１５】
そして、ＬＵＴ生成モジュール１０２は、レッドのトーンカーブＣ１ｒを点Ｏ（０，０）、点ｐｒ１（Ｖｒｉｒ１，Ｖｒｏｒ１）、点ｐ３ｒ（Ｖｒｉｒ３，Ｖｒｏｒ３）、点ｐ２ｒ（Ｖｒｉｒ２，Ｖｒｏｒ２）、および点ｐｒｍａｘ（Ｖｒｉｍａｘ，Ｖｒｏｍａｘ）を通るスプライン曲線として生成する。
【０１１６】
以上では、レッドのトーンカーブの生成について説明したが、グリーン、ブルーのトーンカーブについても同様である。各色成分のトーンカーブは、それぞれの色成分の階調値の平均値および標準偏差に基づいて生成される。このため、各トーンカーブの形状は異なる。
【０１１７】
ステップＳ２２２でレッド、グリーン、ブルーの各トーンカーブを生成すると、ＬＵＴ生成モジュール１０２は、レッド、グリーン、ブルーの各トーンカーブの形状を調整する。
【０１１８】
図１６は、図１４のステップＳ２２４におけるトーンカーブの改変方法の一例を示す図である。ＬＵＴ生成モジュール１０２は、ステップＳ２２２で生成したレッド、グリーン、ブルーの各トーンカーブに基づいて、所定の入力階調値Ｖｃｂｉに対応するレッド、グリーン、ブルーのトーンカーブの出力階調値Ｖｃｂｒｏ，Ｖｃｂｇｏ，Ｖｃｂｂｏを計算する。そして、出力階調値Ｖｃｂｒｏ，Ｖｃｂｇｏ，Ｖｃｂｂｏの平均値ＶｃｂｏＡを計算する。なお、第２実施例では、入力階調値Ｖｃｂｉは、各色成分の入力階調値が採りうる範囲の中央の値１２８とする。
【０１１９】
そして、入力階調値Ｖｃｂｉに対応するレッド、グリーン、ブルーのトーンカーブの出力階調値Ｖｃｂｒｏ，Ｖｃｂｇｏ，Ｖｃｂｂｏが、平均値ＶｃｂｏＡを中心としてプラスマイナスＶｗの範囲にないときには、その範囲にない出力階調値を改変する。
【０１２０】
あるトーンカーブの入力階調値Ｖｃｂｉに対応する出力階調値Ｖｃｂｏが（ＶｃｂｏＡ＋Ｖｗ）よりも大きい場合には、ＬＵＴ生成モジュール１０２は、その出力階調値Ｖｃｂｏを（ＶｃｂｏＡ＋Ｖｗ）に改変する。そして、他の入力階調値に対応する出力階調値については、それぞれｃ１倍（ｃ１＞０）する。ｃ１は、その入力階調値がＶｃｂｉに近いほど（ＶｃｂｏＡ＋Ｖｗ）／Ｖｃｂｏに近く、その入力階調値が０またはＶｉｍａｘにちかいほど、１に近い数である。
【０１２１】
図１６の例では、グリーンのトーンカーブＣｇｏについてこのような改変が行われる。図１６において、改変前のグリーンのトーンカーブＣｇｏで示し、改変後のグリーンのトーンカーブＣｇｒで示す。図１６において、入力階調値Ｖｃｂｉに対応する改変前のトーンカーブＣｇｏ上の点をｐｇｏで示し、その出力階調値をＶｃｂｇｏで示す。入力階調値Ｖｃｂｉに対応する改変後のトーンカーブＣｇｒ上の点をｐｇｒで示す。
【０１２２】
あるトーンカーブの入力階調値Ｖｃｂｉに対応する出力階調値Ｖｃｂｏが（ＶｃｂｏＡ−Ｖｗ）よりも小さい場合には、ＬＵＴ生成モジュール１０２は、その出力階調値Ｖｃｂｏを（ＶｃｂｏＡ−Ｖｗ）に改変する。そして、他の入力階調値に対応する出力階調値については、それぞれｃ２倍（ｃ２＞０）する。ｃ２は、その入力階調値がＶｃｂｉに近いほど（ＶｃｂｏＡ−Ｖｗ）／Ｖｃｂｏに近く、その入力階調値が０またはＶｉｍａｘにちかいほど、１に近い数である。
【０１２３】
図１６の例では、ブルーのトーンカーブＣｂｏについてこのような改変が行われる。図１６において、改変前のブルーのトーンカーブＣｂｏで示し、改変後のブルーのトーンカーブＣｂｒで示す。図１６において、入力階調値Ｖｃｂｉに対応する改変前のブルーのトーンカーブＣｂｏ上の点をｐｂｏで示し、その出力階調値をＶｃｂｂｏで示す。入力階調値Ｖｃｂｉに対応する改変後のトーンカーブＣｂｒ上の点をｐｂｒで示す。
【０１２４】
このように、図１４のステップＳ２２４では、各トーンカーブにおける入力階調値の中央近傍における出力階調値のばらつきが所定の範囲内となるようにトーンカーブが改変される。このような処理を行うことで、トーンカーブに従った色の調整が行われた際、すなわち、最終的に生成される３次元ルックアップテーブル１０４ａにしたがった色変換が行われた際、変換前後で色相が大きく変わってしまう事態を防止することができる。
【０１２５】
以下、生成されたレッド、グリーン、ブルーのトーンカーブに基づいて、第１実施例と同じ手順で３次元ルックアップテーブル１０４ａが生成される。なお、レッド、グリーン、ブルーのトーンカーブは互いに形状が異なっていることから、３次元ルックアップテーブル１０４ｃの入力階調値として選択される各トーンカーブの入力階調値の数も異なる場合がある。このような態様としても、データ量の小さい３次元ルックアップテーブル１０４ａを使用して、誤差の少ない画像処理を行うことができる。
【０１２６】
Ｃ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１２７】
Ｃ１．変形例１：
上記実施例では、しきい値Ｔｈよりも大きな差分ｄｖkと対応する入力階調値が所定数Ｌよりも多く存在する場合に、差分が大きいものから所定数Ｌの入力階調値を選択して、ルックアップテーブルが有する入力階調値の少なくとも一部とした（図７のステップＳ２３８参照）。しかし、入力階調値の決定は、このような方法に限られず、他の方法で決定してもよい。
【０１２８】
たとえば、しきい値Ｔｈよりも大きな差分と対応づけられた入力階調値を、すべてルックアップテーブルの入力階調値として選択してもよい。また、しきい値に対する大小の判定は行わずに、最初から、対応づけられた差分が大きい順に所定数の入力階調値をルックアップテーブルの入力階調値として選択してもよい。
【０１２９】
すなわち、ルックアップテーブルの入力階調値の選択は、ある段階において候補となっている入力階調値を、各入力階調値に対応づけられた出力階調値の増加率が大きな第１のグループと、第１のグループよりも増加率が小さなグループとに分けたときに、増加率の大きな第１のグループの少なくとも一部の入力階調値がルックアップテーブルの入力階調値の少なくとも一部として選択されるものであればよい。そのような態様とすれば、入力階調値の変化分に対して出力階調値の変化分が大きい部分については、ルックアップテーブルの入力階調値が設定されることになる。その結果、色調の調整においてルックアップテーブルを使用する際に（図１の色調調整モジュール１０３参照）、補間処理を行っても、画質が低下しにくい。
【０１３０】
Ｃ２．変形例２：
上記実施例においては、ルックアップテーブルの入力階調値を決定する際には、トーンカーブの入力階調値のうち一定の間隔を有する複数の入力階調値に対応づけて、次に小さい入力階調値との間における出力階調値の差分を求めていた。そして、その差分の大きさに基づいて、ルックアップテーブルの入力階調値を決定していた。しかし、ルックアップテーブルの入力階調値は他の方法で決定してもよい。
【０１３１】
たとえば、候補となった所定間隔を有する各入力階調値と対応づけて、次に大きい入力階調値との間における出力階調値の差分を求め、その差分の大きさに基づいて、ルックアップテーブルの入力階調値を決定することもできる。また、候補である各入力階調値の間隔よりも小さい入力階調値の増分に対する出力階調値の増分を求め、その出力階調値の増分の大きさに基づいてルックアップテーブルの入力階調値を決定してもよい。すなわち、ルックアップテーブルの入力階調値は、トーンカーブの出力階調値の増加率に基づいて定めることができる。ここで、出力階調値の「増加率」とは、入力階調値の一定の増加量に対する出力階調値の増加量である。
【０１３２】
Ｃ３．変形例３：
ルックアップテーブルの入力階調値は、トーンカーブの出力階調値の増加率に基づいて定められたもの以外の入力階調値を含むこともできる。たとえば、３次元ルックカップテーブル生成後に、３次元空間の一部の領域に含まれるグリッドの出力階調値を改変する場合には（図５のステップＳ２５０、図１０および図１１参照）、３次元ルックカップテーブル生成時に、その領域の境界に位置する入力階調値を、ルックアップテーブルの入力階調値として決定することができる。
【０１３３】
Ｃ４．変形例４：
上記実施例では、縮小画像データの解析結果に基づいて各色成分のトーンカーブを決定する際には、明度の調整を目的とする処理と、コントラストの調整を目的とする処理と、が行われた（図６および図１５参照）。しかし、各色成分のトーンカーブを決定する際には、他の処理を行うこともできる。たとえば、最小の入力階調値Ｖｉｍｉｎを含む所定の入力階調値の範囲については、最小の出力階調値Ｖｏｍｉｎを出力するように、トーンカーブを形成することもできる。そして、最大の入力階調値Ｖｉｍａｘを含む所定の入力階調値の範囲については、最大の出力階調値Ｖｏｍａｘを出力するように、トーンカーブを形成することもできる。
【０１３４】
また、上記実施例では、明度や色成分の階調値に関して、目標とする平均値と、目標とする分散と、を使用してトーンカーブの形状を決定する際の操作量を決定していた（式（２），（４），（８）〜（１１），（１３）および（１５）参照）。しかし、トーンカーブの形状を決定する際の操作量は、他の量に基づいて決定することもできる。たとえば、明度や色成分の階調値の最大値や最小値に基づいて操作量を決定することもできる。すなわち、トーンカーブは、画像処理の対象とする画像データの直接的または間接的な解析の結果に基づいて、生成することができる。
【０１３５】
Ｃ５．変形例５：
上記実施例においては、初期画像データＰＩＤおよび縮小画像データＰＩＤ２は、ｓＲＧＢ表色系で各画素の色が表された画像データであった。しかし、処理対象である画像データは、ｘｙｚ表色系やＬ*ａ*ｂ*表色系、Ｌ*ｕ*ｖ*表色系など、他の表色系で色が表された画像データであってもよい。
【０１３６】
Ｃ６．変形例６：
上記実施例では、記憶色に関する色の調整は、ｓＲＧＢ表色系の出力階調値の組み合わせを、いったんＨＳＢ表色系の出力階調値の組み合わせに変換し、ＨＳＢ表色系の出力階調値を改変して、ｓＲＧＢ表色系の出力階調値の組み合わせに逆変換して行っていた。しかし、記憶色に関する色の調整などの一部の色の改変を行う際には、Ｌ*ａ*ｂ*表色系やＬ*ｕ*ｖ*表色系、など他の表色系に変換することもできる。ただし、変換後の表色系は、一つの階調値として明度に関する階調値を含む表色系であることが好ましい。そのような態様とすれば、明るさと、彩度を含む他のパラメータと、を人間の感覚に応じて変更するように、色の調整を行うことができる。
【０１３７】
Ｃ７．変形例７：
各色成分のトーンカーブに基づいてルックアップテーブルの入力階調値を決定する際には、しきい値Ｔｈや入力階調値の数Ｎｍａｘは、色成分ごとに異ならせることができる。たとえば、トーンカーブにおいて出力階調値の増加率の変化が小さい色成分については、トーンカーブにおいて出力階調値の増加率の変化が大きい色成分よりも、入力階調値の数Ｎｍａｘを少なく設定することもできる。
【０１３８】
Ｃ８．変形例８：
上記実施例では、各色成分のトーンカーブを生成する際に、入力階調値がとりうる範囲の下から１／４の階調値に対する出力階調値を改変して、画像の明るさを調整する機能をトーンカーブに付与していた（図６（ａ）参照）。しかし、明るさの調整機能をトーンカーブに付与する際には、下から１／３や１／２の階調値に対する出力階調値を改変するなど、他の入力階調値に対応する出力階調値を改変することによって行ってもよい。すなわち、明るさの調整機能をトーンカーブに付与する際には、所定の入力階調値に対応する出力階調値を改変することによって行うことができる。
【０１３９】
また、上記実施例では、各色成分のトーンカーブを生成する際に、入力階調値がとりうる範囲の下から１／４と上から１／４の階調値に対する出力階調値と、を改変して、コントラストの調整機能をトーンカーブに付与していた（図６（ｂ）参照）。しかし、画像のコントラストを調整する機能をトーンカーブに付与する際には、下から１／３や１／２の階調値、そして、上から１／３や１／２の階調値に対する出力階調値を改変するなど、他の入力階調値に対応する出力階調値を改変することによって行ってもよい。
【０１４０】
すなわち、コントラストの調整機能をトーンカーブに付与する際には、所定の第１の入力階調値に対応する出力階調値を減少させ、第１の入力階調値よりも大きい所定の第２の入力階調値に対応する出力階調値を増大させることによって行うことができる。なお、その際、第１の入力階調値より大きく第２の入力階調値よりも小さい第３の入力階調値については、第１および第２の入力階調値を改変する際に、出力階調値を改変しないことが好ましい。
【０１４１】
さらに、トーンカーブの形状を決定する際には、肌色などの所定の範囲の色を表す各色成分の入力階調値が、目標とする色を表す各色成分の階調値に近づくように、トーンカーブの形状を決定するなど、他の要素を考慮してトーンカーブの形状を決定することができる。すなわち、トーンカーブの自動生成は、初期画像データＰＩＤまたは縮小画像データＰＩＤ２に基づいて行われるものとすることができる。
【０１４２】
Ｃ９．変形例９：
第１実施例では、まず、トーンカーブの形状に基づく第１の候補階調値を決定し、その後、対象記憶色に基づく第２の候補階調値を決定していた（図７のステップＳ３１０とＳ３２０参照）。しかし、第１と第２の候補階調値は、いずれを先に決定することもでき、また、並行して決定することもできる。
【０１４３】
Ｃ１０．変形例１０：
第１実施例では、第２の候補階調値は、記憶色に基づく出力階調値の改変を行う色範囲を定める色の階調値であった（図１１および図１３参照）。しかし、第２の候補階調値は、他の要因に基づいて決定される階調値とすることもできる。すなわち、第２の候補階調値は、３次元ルックアップテーブルを生成した後、一部の色範囲について出力階調値の改変を行う態様において、その改変を行う色範囲を定めるパラメータに基づいて決定される階調値とすることができる。
【０１４４】
たとえば、出力階調値の改変を行う色範囲が、中心点の色を表す各色成分の階調値と、半径の大きさと、で決定される球状の色範囲である場合には、第２の候補階調値は、中心点の色を表す各色成分の階調値と、半径の大きさとに基づいて定められる階調値とすることができる。ただし、ルックアップテーブルの入力階調値で定められる色空間において、上記改変を行う色範囲の境界上に位置する色の階調値を、第２の候補階調値とすることが好ましい。
【０１４５】
Ｃ１１．変形例１１：
第１実施例においては、第２の候補階調値のプラスマイナスｄｎの範囲内にある第１の候補階調値が、第１の候補階調値から除外されていた（図７のステップＳ３４０参照）。そして、ｄｎは４であった。しかし、第２の候補階調値に近い値を有する第１の候補階調値を除外する際には、他の基準を使用することもできる。たとえば、第２の候補階調値の近傍にあるか否かの基準となる値ｄｎは、第１の候補階調値の間隔ｄｉに対する割合で定めることもできる。ｄｎは、第１の候補階調値の間隔ｄｉの３０％未満の値であることが好ましく、ｄｉの２０％未満の値であることがより好ましい。そして、ｄｎは、第１の候補階調値の間隔ｄｉの１５％未満の値であることが、さらに好ましい。
【０１４６】
Ｃ１２．変形例１２：
上記実施例では、トーンカーブを生成する際には、基準となる点を通るようなスプライン曲線によって生成していた。しかし、トーンカーブを生成する際には、基準となるｍ個（ｍは３以上の整数）の点を通るような（ｍ＋１）次曲線など、他の曲線で生成することもできる。
【０１４７】
Ｃ１３．変形例１３：
上記実施例では、差分ｄｖkに基づいて第１の候補階調値の最大数Ｌ２は、７個であった。そして、３次元ルックアップテーブル１０４ａの入力階調値の最大数Ｎｍａｘは１７であった。しかし、第１の候補階調値の最大数Ｌ２および３次元ルックアップテーブル１０４ａの入力階調値の最大数Ｎｍａｘは、他の数とすることもできる。ただし、Ｌ２＝Ｎｍａｘ−２−２nの関係にあることが好ましい。ここで、ｎは、初期画像データＰＩＤが有する色成分の数である。よって、２nは、各色範囲Ｃｍｉを定める点の数である（図１３参照）。たとえば、処理対象である初期画像データＰＩＤがｓＲＧＢ表色系の画像データである場合は、ｎ＝３であるので、Ｌ２＝Ｎｍａｘ−１０である。
【０１４８】
Ｃ１４．変形例１４：
上記実施例においては、縮小画像データを解析し、解析結果に基づいてトーンカーブの形状を決定して、トーンカーブに基づいてルックアップテーブルを生成していた（図５参照）。しかし、縮小画像データの解析結果に基づいてルックアップテーブルを生成する際には、解析結果に基づいてトーンカーブの形状を改変せずに、ルックアップテーブルを生成する態様とすることもできる。
【０１４９】
たとえば、第１実施例において説明したように、木の緑や空の青など、特定の範囲の色について特有の改変を行う場合がある（図３および図１１参照）。そのような場合に、処理対象とする画像データから生成した縮小画像データを解析して、どの範囲の色について処理を行い、どの範囲の色について処理を行わないかを決定し（図１のステップＳ１００参照）、その決定に基づいてｎ次元ルックアップテーブルを生成してもよい。その際、ｎ次元ルックアップテーブルのもととなるトーンカーブは、縮小画像データの解析結果に基づかずに生成する態様とすることができる。
【０１５０】
すなわち、本発明の一態様として、画像変換に使用するルックアップテーブルを生成する際に、変換対象とする画像データの縮小画像データの解析結果を直接的または間接的に反映させて、ルックアップテーブルを生成する態様を採用することができる。
【０１５１】
Ｃ１５．変形例１５：
上記実施例では、初期画像データＰＩＤを縮小して生成した縮小画像データＰＩＤ２に基づいて３次元ルックアップテーブル１０４ａを生成した。しかし、他の態様において、初期画像データＰＩＤの一部をサンプリングして解析し、その解析結果に基づいて画像を調整する際に使用するルックアップテーブルを生成してもよい。すなわち、画像データの色の調整を行うためのルックアップテーブルは、直接または間接的に、処理対象である画像データに基づいて生成することができる。
【０１５２】
Ｃ１６．変形例１６：
上記実施例では、ルックアップテーブル１０４ａを参照する際には、四面体補間を行っていた。しかし、ルックアップテーブル１０４ａを参照する際には、変換対象の色の点を囲む６個のグリッドの出力階調値を使用して補間を行う立方体補間など、他の補間を行う態様とすることもできる。
【０１５３】
Ｃ１７．変形例１７：
上記実施例のように、色調の調整におけるＨＳＢ表色系の階調値の改変量は（図１４参照）、あらかじめ、ＨＳＢ表色系の各階調値に対して定められた値であってもよい。また、あらかじめ計算式が定められており、その計算式にＨＳＢ表色系の各階調値を代入して改変量を計算する態様であってもよい。後者の態様も、階調値に応じて「予め定められた量」で大きさの改変を行う態様に含まれる。なお、階調値に応じて「予め定められた量」は、０であってもよい。
【０１５４】
Ｃ１８．変形例１８：
上記実施例では、明度の階調を含む表色系であるＨＳＢ表色系の、色相（Ｈ）、彩度（Ｓ）、明るさ（Ｂ）の改変を行う範囲の端（図１４のＨ１，Ｈ４，Ｓ１，Ｓ４，Ｂ１，Ｂ４参照）の組み合わせに対応するｓＲＧＢ表色系の色空間上の点がグリッドとなるように、３次元ルックアップテーブル１０４ｃが決定されていた。しかし、色の調整の際に参照されるｎ次元ルックアップテーブルを生成する際には、一定量の改変を行う範囲の端（図１４のＨ２，Ｈ３，Ｓ２，Ｓ３，Ｂ２，Ｂ３参照）の組み合わせに対応する色空間上の点がグリッドとなるように、入力階調値を決定して、ｎ次元ルックアップテーブルを生成することも好ましい。そのような態様とすれば、色の改変の方法が変わる境界部分において、正確な出力階調値を使用することができる。
【０１５５】
なお、ｎ次元ルックアップテーブルは、以下のような態様としうる。すなわち、ｎ次元ルックアップテーブルは、すべての入力階調値の組み合わせについて出力階調値を有しているのではなく、一部の入力階調値の組み合わせについて出力階調値を有している。そして、ｎ次元ルックアップテーブルが参照される際には、ｎ次元ルックアップテーブルが有している複数の出力階調値が読み出され、それらを使用して補間演算を行って、画像処理に使用される。そのような態様において、上記のように、色の改変を行う色範囲に基づいてルックアップテーブルの入力階調値を定めることが特に好ましい。
【０１５６】
Ｃ１９．変形例１９：
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、プリンタドライバ９６（図２参照）の機能の一部をハードウェア回路が実行するようにすることもできる。
【０１５７】
このような機能を実現するコンピュータプログラムは、フロッピディスクやＣＤ−ＲＯＭ等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。ホストコンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してプログラム供給装置からホストコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがホストコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをホストコンピュータが直接実行するようにしてもよい。
【０１５８】
この明細書において、ホストコンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。コンピュータプログラムは、このようなホストコンピュータに、上述の各部の機能を実現させる。なお、上述の機能の一部は、アプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。
【０１５９】
なお、この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種のＲＡＭやＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【０１６０】
【図１】第１の実施形態の印刷システムのソフトウェアの構成を示すブロック図
【図２】ＬＵＴ生成モジュール１０２における処理を表すフローチャート。
【図３】記憶色テーブル１０５の内容の一部を示す図。
【図４】記憶色に関する調整の内容を表す対象記憶色パラメータを決定する手順を示すフローチャート。
【図５】図２のステップＳ２００における３次元ルックアップテーブル１０４ａの生成手順を示すフローチャート。
【図６】図５のステップＳ２２０におけるトーンカーブの生成方法の一例を示す図。
【図７】図５のステップＳ２３０において３次元ルックアップテーブル１０４ａの入力階調値を決定する手順を示すフローチャート。
【図８】トーンカーブＣ１上において３次元ルックアップテーブル１０４ａの入力階調値を決定する方法を示す図。
【図９】３次元ルックアップテーブル１０４ｃにおいて、ブルーの入力階調値Ｖｂｉ＝０の平面上に位置するグリッドを丸で囲まれた黒点で示す図。
【図１０】３次元ルックアップテーブル１０４ｃのうち記憶色の範囲に含まれるグリッドの出力階調値について改変を行う手順を示すフローチャート。
【図１１】３次元ルックアップテーブル１０４ｃのうち記憶色の範囲を示す図。
【図１２】ステップＳ２５６における階調値の改変の内容の一例を示す図。
【図１３】記憶色テーブル１０５を示す図。
【図１４】第２実施例におけるトーンカーブの生成方法の手順を示すフローチャート。
【図１５】図１４のステップＳ２２２におけるレッドのトーンカーブの生成方法の一例を示す図。
【図１６】図１４のステップＳ２２４におけるトーンカーブの改変方法の一例を示す図。
【符号の説明】
【０１６１】
２１…ＣＲＴディスプレイ
２２…プリンタ
２８…印刷ヘッド
３１…キャリッジ
３２…操作パネル
４１…ＣＰＵ
４２…ＲＯＭ
９０…コンピュータ
９１…ビデオドライバ
９５…アプリケーションプログラム
９６…プリンタドライバ
９７…解像度変換モジュール
９８…色変換モジュール
９９…ハーフトーンモジュール
１００…並べ替えモジュール
１０１…縮小画像生成モジュール
１０２…ＬＵＴ生成モジュール（ルックアップテーブル生成モジュール）
１０３…色調調整モジュール
１０４ａ，１０４ｂ…色変換テーブル
１０５…記憶色テーブル
１２０…キーボード
１３０…マウス
Ｃ１…トーンカーブ
Ｃ１ｒ…レッドのトーンカーブ
Ｃ１ｐ…暫定的なトーンカーブ
Ｃ１ｐｒ…レッドの暫定的なトーンカーブ
Ｃｂｏ…改変前のブルーのトーンカーブ
Ｃｂｒ…改変後のブルーのトーンカーブ
Ｃｇｏ…改変前のグリーンのトーンカーブ
Ｃｇｒ…改変後のグリーンのトーンカーブ
Ｃｍ１〜ＣｍＭ…記憶色の色範囲
ＦＮＬ…印刷画像データ
ＭＩＤ１…画像データＰＩＤｒを解像度変換した画像データ
ＭＩＤ２…画像データＭＩＤ１を色変換した画像データ
ＭＩＤ３…ドットのオン／オフで画像が表された画像データ（印刷画像データ）
ＭＳ…ヘッドの搬送方向（主走査方向）
Ｏ…入力階調値と出力階調値がともに最低値の点
ＯＲＧ…原画像データ
Ｐ…印刷用紙
ＰＩＤ…初期画像データ
ＰＩＤ２…縮小画像データ
ＰＩＤｒ…初期画像データの色調を調整した画像データ
Ｐｍｃ…対象記憶色パラメータ
ＳＳ…印刷用紙の搬送方向（副走査方向）
Ｖｉｒ１…トーンカーブの基準入力階調値
Ｖｏｒ１…基準入力階調値Ｖｉｒ１に対応する基準出力階調値
Ｖｏｒ１’…基準入力階調値Ｖｉｒ１に対応する暫定的な出力階調値
Ｖｉｒ２…トーンカーブの基準入力階調値
Ｖｏｒ２…基準入力階調値Ｖｉｒ２に対応する基準出力階調値
Ｖｏｒ２’…基準入力階調値Ｖｉｒ２に対応する暫定的な出力階調値
Ｖｉｒ３…トーンカーブの基準入力階調値
Ｖｏｒ３…基準入力階調値Ｖｉｒ３に対応する基準出力階調値
Ｖｏｒ３’…基準入力階調値Ｖｉｒ３に対応する暫定的な出力階調値
Ｖｒｉ…レッドの入力階調値
Ｖｇｉ…グリーンの入力階調値
Ｖｂｉ…ブルーの入力階調値
Ｖｒｉｒ１…レッドのトーンカーブの基準入力階調値
Ｖｒｏｒ１…レッドの基準入力階調値Ｖｒｉｒ１に対応する基準出力階調値
Ｖｒｏｒ１’…レッドの基準入力階調値Ｖｒｉｒ１に対応する暫定的な出力階調値
Ｖｒｉｒ２…レッドのトーンカーブの基準入力階調値
Ｖｒｏｒ２…レッドの基準入力階調値Ｖｒｉｒ２に対応する基準出力階調値
Ｖｒｏｒ２’…レッドの基準入力階調値Ｖｒｉｒ２に対応する暫定的な出力階調値
Ｖｒｉｒ３…レッドのトーンカーブの基準入力階調値
Ｖｒｏｒ３…レッドの基準入力階調値Ｖｒｉｒ３に対応する基準出力階調値
Ｖｒｏｒ３’…レッドの基準入力階調値Ｖｒｉｒ３に対応する暫定的な出力階調値
Ｖｗ…入力階調値Ｖｃｂｉに対応する出力階調値Ｖｃｂｒｏ，Ｖｃｂｇｏ，Ｖｃｂｂｏ画素の範囲の中に位置すべき範囲の幅を規定する量
Ｖｙ…明度
ｄＢ…明るさ（Ｂ）の改変量
ｄｃ…コントラスト調整パラメータ
ｄｃｒ…レッドのコントラスト調整パラメータ
ｄｌ…明度調整パラメータ
ｄｌｒ…レッドの平均階調調整パラメータ
ｄｖk…所定間隔を有する入力階調値に対応する出力階調値の差分
ｐ１…トーンカーブにおいて第１の基準入力階調値に対応する点
ｐ２…トーンカーブにおいて第２の基準入力階調値に対応する点
ｐ３…トーンカーブにおいて第３の基準入力階調値に対応する点
ｐｒ１…レッドのトーンカーブにおいて第１の基準入力階調値に対応する点
ｐｒ２…レッドのトーンカーブにおいて第２の基準入力階調値に対応する点
ｐｒ３…レッドのトーンカーブにおいて第３の基準入力階調値に対応する点
ｐｍａｘ…トーンカーブにおいて最大の入力階調値Ｖｍａｘに対応する点
σy…明るさの標準偏差
σｒ…レッドの階調値の標準偏差
【図１】
0004682814.tif 000002
【図２】
0004682814.tif 000003
【図３】
0004682814.tif 000004
【図４】
0004682814.tif 000005
【図５】
0004682814.tif 000006
【図６】
0004682814.tif 000007
【図７】
0004682814.tif 000008
【図８】
0004682814.tif 000009
【図９】
0004682814.tif 000010
【図１０】
0004682814.tif 000011
【図１１】
0004682814.tif 000012
【図１２】
0004682814.tif 000013
【図１３】
0004682814.tif 000014
【図１４】
0004682814.tif 000015
【図１５】
0004682814.tif 000016
【図１６】
0004682814.tif 000017