(57)【要約】【課題】色変換テーブルによる色変換の不連続性を防止する。【解決手段】データ検出部２０１は、Ｎ次元の第１色空間によって表されたソース画像より、色変換テーブルの格子点値近傍の画素値を有する画素を検出する。データ比較部２０２は、データ検出部２０１で検出された画素の画素値と、ディスティネーション画像中の対応する画素の画素値の、上記第１色空間における信号値の差と、各次元毎の差とを取得する。データリミット部２０３は、取得された信号値の差が所定値以上であった場合に、色変換テーブルを用いた色変換における入力値から出力値への変化量が所定値を超えないように、各次元毎の差を調整する。テーブル作成部２０４は、必要に応じて調整された各次元毎の差に基づいて、Ｎ次元の色変換テーブルの各格子点値を決定する。【選択図】　図３
2004080100.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ次元の色空間によって画素値が表された第１及び第２の画像を格納する格納手段と、
前記第１及び第２の画像の対応画素の画素値の差に基づいてＮ次元の色変換テーブルを生成する生成手段と、
前記生成手段で生成される色変換テーブルによる画素値の変化量が所定値を超えないように、該生成手段による色変換テーブルのテーブル値の生成を調整する調整手段と
を備えることを特徴とする色変換テーブル作成装置。
【請求項２】
前記生成手段は、
前記Ｎ次元の色変換テーブルの各格子点について、
選択された格子点の格子点値から所定距離内の画素値を有する画素を前記第１の画像より検出する検出手段と、
前記検出手段で検出された画素に関して、前記第１及び第２の画像における対応画素の画素値の差の平均値を算出する算出手段と、
前記算出手段で算出された平均値に基づいて前記選択された格子点の値を決定する決定手段とを備えることを特徴とする請求項１に記載の色変換テーブル作成装置。
【請求項３】
前記調整手段は、前記対応画素の画素値の前記色空間における距離がしきい値を超える場合に、該距離としきい値とに基づいて当該対応画素の画素値の差を調整することを特徴とする請求項１に記載の色変換テーブル作成装置。
【請求項４】
前記調整手段は、前記第１の画像の画素値を（Ａ０，Ａ１，Ａ２，．．．，ＡＮ）、前記第２の画像における対応画素の画素値を（Ｂ０，Ｂ１，Ｂ２，．．．．ＢＮ）とし、前記距離をＤｉｆｆとした場合に、
Ｄｉｆｆ　＝　√（（Ａ０−Ｂ０）２＋（Ａ１−Ｂ１）２＋（Ａ２−Ｂ２）２＋．．．．＋（Ａｎ−Ｂｎ）２）
で求められる距離Ｄｉｆｆが所定のしきい値Ｔより大きい場合に、当該対応画素の各成分毎の差にしきい値Ｔと距離Ｄｉｆｆをもとに求められる値を乗じることを特徴とする請求項３に記載の色変換テーブル作成装置。
【請求項５】
前記調整手段は、前記第１及び第２の画像の対応画素について、画素値の各成分毎の差の最大値Ｄｉｆｆを前記距離とし、該距離が所定のしきい値Ｔより大きい場合に、該各成分毎の差にしきい値ＴとＤｉｆｆをもとに求められる値を乗じることを特徴とする請求項３に記載の色変換テーブル作成装置。
【請求項６】
前記調整手段は、前記生成手段で生成された前記色変換テーブルによる変換前後の画素値の前記色空間における距離がしきい値を超える場合に、該色変換テーブル中の対応するテーブル値を調整することを特徴とする請求項１に記載の色変換テーブル作成装置。
【請求項７】
前記調整手段は、前記色変換テーブルによる変換前の画素値を（Ａ０，Ａ１，Ａ２，．．．，ＡＮ）、変換後の画素値を（Ｂ０，Ｂ１，Ｂ２，．．．．ＢＮ）とし、前記距離をＤｉｆｆとした場合に、
Ｄｉｆｆ　＝　√（（Ａ０−Ｂ０）２＋（Ａ１−Ｂ１）２＋（Ａ２−Ｂ２）２＋．．．．＋（Ａｎ−Ｂｎ）２）
で求められる距離Ｄｉｆｆが所定のしきい値Ｔより大きい場合に、対応するテーブル値にしきい値Ｔと距離Ｄｉｆｆをもとに求められる値を乗じて該色変換テーブルを更新することを特徴とする請求項６に記載の色変換テーブル作成装置。
【請求項８】
前記調整手段は、前記色変換テーブルによる変換前の画素値と変換後の画素値における各成分毎の差のうちの最大値Ｄｉｆｆを前記距離とし、該距離が所定のしきい値Ｔより大きい場合に、対応するテーブル値にしきい値ＴとＤｉｆｆをもとに求められる値を乗じて該色変換テーブルを更新することを特徴とする請求項６に記載の色変換テーブル作成装置。
【請求項９】
前記調整手段は、前記生成手段で生成された色変換テーブルの格子点データと、基準テーブルの格子点データとの差が所定値以上の場合に、前記色変換テーブルの当該格子点データを調整することを特徴とする請求項１に記載の色変換テーブル作成装置。
【請求項１０】
前記調整手段は、前記色変換テーブルの格子点データを（Ａ０，Ａ１，Ａ２，．．．，Ａｎ）、前記基準テーブルの対応する格子点データを（Ｂ０，Ｂ１，Ｂ２，．．．，Ｂｎ）、前記差をＤｉｆｆとした場合に、
Ｄｉｆｆ　＝　√（（Ａ０−Ｂ０）２＋（Ａ１−Ｂ１）２＋（Ａ２−Ｂ２）２＋．．．．＋（Ａｎ−Ｂｎ）２）
で求められる差Ｄｉｆｆが所定のしきい値Ｔより大きい場合、該色変換テーブルの当該格子点データの各成分値にしきい値Ｔと差Ｄｉｆｆをもとに求められる値を乗ずることを特徴とする請求項９に記載の色変換テーブル作成装置。
【請求項１１】
前記調整手段は、前記色変換テーブルと前記基準テーブルの対応する格子点データについて、各成分毎の差のうちの最大値Ｄｉｆｆが所定のしきい値Ｔより大きい場合に、該色変換テーブルの当該格子点データの各成分にしきい値ＴとＤｉｆｆをもとに求められる値を乗じることを特徴とする請求項９に記載の色変換テーブル作成装置。
【請求項１２】
前記生成手段で生成された色変換テーブルの各格子点のデータを、Ｍ次元の色空間のデータに変換する変換手段を更に備えることを特徴とする請求項１に記載の色変換テーブル作成装置。
【請求項１３】
Ｎ次元の色空間によって画素値が表された第１及び第２の画像の対応画素の画素値の差に基づいてＮ次元の色変換テーブルを生成する生成工程と、
前記生成工程で生成される色変換テーブルによる画素値の変化量が所定値を超えないように、該生成工程による色変換テーブルのテーブル値の生成を調整する調整工程と
を備えることを特徴とする色変換テーブル作成方法。
【請求項１４】
画像データを入力する入力手段と、
請求項１乃至１２のいずれかに記載の色変換テーブル作成装置によって作成された色変換テーブルを用いて、前記入力手段で入力された画像データを変換する変換手段と、
前記変換手段で変換された画像データを出力する出力手段と
を備えることを特徴とする色変換装置。
【請求項１５】
前記変換手段は、前記画像データの各画素値について、
前記色変換テーブルより画素値に近い格子点を抽出し、
前記画素値と前記抽出された格子点との距離を算出し、
前記抽出された格子点及びその近傍の格子点の各格子点値と前記算出された距離とに基づいて前記画素値の変換後の画素値を得ることを特徴とする請求項１４に記載の色変換装置。
【請求項１６】
画像データを入力する入力工程と、
請求項１３に記載の色変換テーブル作成方法によって作成された色変換テーブルを用いて、前記入力手段で入力された画像データを変換する変換工程と、
前記変換工程で変換された画像データを出力する出力工程と
を備えることを特徴とする色変換方法。
【請求項１７】
請求項１３に記載されたテーブル作成方法をコンピュータに実現させるための制御プログラム。
【請求項１８】
請求項１３に記載されたテーブル作成方法をコンピュータに実現させるための制御プログラムを格納した記憶媒体。
【請求項１９】
請求項１３に記載された色変換テーブル作成方法を実行することを特徴とする撮像装置。
【請求項２０】
請求項１４に記載された色変換装置を搭載したことを特徴とする撮像装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、色変換テーブル作成方法及び装置並びに色変換方法及び装置及び撮像装置に関する。
【０００２】
【従来の技術】
デジタルカメラやスキャナで取り込んだ画像の色を好みの色合いに変更する等の色変換を行う手法として、色変換テーブル（ルックアップテーブル）を作成し、これを用いて色変換を行なう手法が提案されている。例えば、ＲＧＢ等の３次元の色空間で表された色は、３次元ルックアップテーブルを用意することにより、色変換を行うことができる。このようなルックアップテーブルを用いた色変換は色空間上の局所的な色だけを変換できる等、自由に色変換を行うパラメータを設計することが可能である。
【０００３】
【発明が解決しようとする課題】
しかしながら、局所的な色の変更ができる反面、極端に色を変化させるパラメータが設定された場合にはテーブルデータの連続性が失われる場合があった。例えば、ルックアップテーブル中のあるデータが入力色を極端に変化させるように設定された場合、その周辺の入力色に対しても大きな変化が生じる。このため、出力色が不自然になってしまうという課題がある。
【０００４】
本発明は上記の課題に鑑みてなされたものであり、色変換テーブルによる色変換の不連続性を防止することを目的とする。
【０００５】
【発明が解決するための手段】
上記の目的を達成するための本発明による色変換テーブル作成装置は以下の構成を備える。すなわち、
Ｎ次元の第１色空間によって表された第１及び第２の画像を格納する格納手段と、
前記第１及び第２の画像において対応する画素の画素値の差分値に基づいてＮ次元の色変換テーブルを生成する生成手段と、
前記生成手段で生成された色変換テーブルを用いた色変換における入力値から出力値への変化量が所定値を超えないように前記色変換テーブルの生成に用いられるデータを調整する調整手段とを備える。
【０００６】
また、上記の目的を達成するための本発明による色変換テーブル作成方法は、
Ｎ次元の第１色空間によって表された第１及び第２の画像において対応する画素の画素値の差分値に基づいてＮ次元の色変換テーブルを生成する生成工程と、
前記生成工程で生成された色変換テーブルを用いた色変換における入力値から出力値への変化量が所定値を超えないように前記色変換テーブルの生成に用いられるデータを調整する調整工程とを備える。
【０００７】
更に、本発明によれば、
画像データを入力する入力手段と、
上記色変換テーブル作成装置によって作成された色変換テーブルを用いて、前記入力手段で入力された画像データを変換する変換手段と、
前記変換手段で変換された画像データを出力する出力手段とを備える色変換装置が提供される。
【０００８】
更に、本発明によれば、
画像データを入力する入力工程と、
上記色変換テーブル作成方法によって作成された色変換テーブルを用いて、前記入力手段で入力された画像データを変換する変換工程と、
前記変換工程で変換された画像データを出力する出力工程とを備える色変換方法が提供される。
また、本発明によれば、上記色変換テーブルテ作成方法を実行する撮像装置、及び上記色変換装置を搭載した撮像装置が提供される。
【０００９】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【００１０】
〈第１実施形態〉
図１は第１実施形態による色変換テーブル（以下、ルックアップテーブルという）の生成と、ルックアップテーブルを用いた色変換処理を実行する情報処理装置の構成を示すブロック図である。
【００１１】
図１において、１１はＣＰＵであり、ＲＯＭ１２に記憶されているプログラム、或いはＲＡＭ１３にロードされた制御プログラムを実行することにより各種処理を実現する。１２はＲＯＭであり、当該情報処理装置の立ち上げ時に実行されるブート処理プログラムや各種データが記憶されている。１３はＲＡＭであり、ＣＰＵ１１のメインメモリとして機能する。１４はディスプレイであり、ＣＰＵ１１の制御の下、各種表示を行なう。ディスプレイ１４はＣＲＴ或いはＬＣＤにより構成される。１５は外部記憶装置であり、例えばハードディスクで構成される。外部記憶装置１５にはソース画像１５ａ、ディスティネーション画像１５ｂ、ルックアップテーブル１５ｃ、ルックアップテーブル生成処理プログラム１５ｄ、色変換処理プログラム１５ｅが格納される。各データ、処理プログラムの内容については後述の説明より明らかとなろう。
【００１２】
１６はキーボード、１７はポインティングデバイスであり、ユーザはこれらを用いて情報処理装置に対して各種操作入力を行なう。１８はインターフェースであり、周辺機器を接続する。本実施形態では、周辺機器として、ディジタルカメラ２１、スキャナ２２、プリンタ２３等を接続する。
【００１３】
本実施形態による色変換処理の概要について説明すると次のとおりである。ディジタルカメラ２１やスキャナ２２等の画像入力装置から入力された画像がソース画像１５ａとして外部記憶装置１５に格納される。また、ディスティネーション画像１５ｂはソース画像１５ａに対して別途用意されたアプリケーションによりレタッチ処理等を施して生成された画像である。ＣＰＵ１１によってルックアップテーブル生成処理プログラム１５ｄが実行されると、ソース画像１５ａとディスティネーション画像１５ｂとの間の各対応画素の変化量に基づいてルックアップテーブル１５ｃが生成される。このとき、変化量が極端に大きい場合には、その変化量に制限が加えられ、ルックアップテーブルはこの制限された変化量に基づいて生成される。
【００１４】
その後、色変換処理プログラム１５ｅを実行することにより、所望の入力画像に対してルックアップテーブル１５ｃを参照して色変換が行われ、出力画像が得られる。以下、ルックアップテーブル生成処理、色変換処理について詳細に説明する。
【００１５】
図２は、第１実施形態によるルックアップテーブル生成処理及び色変換処理の機能構成を示すブロック図である。各機能部は、ＣＰＵ１１がＲＡＭ１３にロードされたルックアップテーブル生成処理プログラム１５ｄ及び色変換処理プログラム１５ｅを実行することで実現される。以下、図２のブロック図を用いて第１実施形態によるルックアップテーブル生成処理を及び色変換処理について説明する。なお、本実施形態では説明を簡単にするために、Ｎ次元ルックアップテーブルのＮを３にして、すなわち、３次元の色空間（ＲＧＢ空間とする）におけるルックアップテーブルの生成、色変換処理を説明する。
【００１６】
図２において、テーブル作成用画像データ入力部１０１では、３次元ルックアップテーブルを作成する基となる画像データ（ソース画像１５ａ、ディスティネーション画像１５ｂ）が入力される。例えば、ユーザは、変換元となる画像データであるソース画像１５ａをディジタルカメラ２１やスキャナ２２から入力する。また、このソース画像１５ａを自分の好みに応じて局所的または、全体的に色をレタッチ処理することによりディスティネーション画像１５ｂが生成され、格納される。
【００１７】
ソース画像１５ａおよびディスティネーション画像１５ｂはカスタマイズ３次元ルックアップテーブル作成部１０２（以下、ルックアップテーブル作成部１０２と記す）へと送られ、ソース画像およびディスティネーション画像に基づき３次元ルックアップテーブルが作成される。なお、ルックアップテーブル作成部１０２はルックアップテーブル生成処理プログラム１５ｄをＣＰＵ１１が実行することで実現される。
【００１８】
カスタマイズされた３次元ルックアップテーブルが作成されると、次にこのカスタマイズされた３次元ルックアップテーブルを用いて変換する対象としての画像データが変換画像データ入力部１０３へと入力される。ここでは画像データのフォーマットに基づき信号値が読み出され、３次元色変換処理部１０４へと送られる。３次元色変換処理部１０４ではルックアップテーブル作成部１０２において作成された３次元ルックアップテーブルを用いて、色変換処理が行われる。色変換処理が行われた画像の信号値は画像データ出力部１０５において、ユーザが指定した画像データフォーマットに基づき、フォーマット変換されて出力される。以上が本実施形態におけるルックアップテーブル生成と色変換処理の簡単な流れである。次に各処理についてより詳しく説明する。
【００１９】
図３はルックアップテーブル作成部１０２の詳細な機能構成を示すブロック図である。
【００２０】
本実施形態においては、格子点間隔（ステップ間隔）を３２とすることにより９×９×９の７２９個の格子点を持つ３次元ルックアップテーブルとし、さらにＲ方向にＩ、Ｇ方向にＪ、Ｂ方向にＫ番目の３次元ルックアップテーブルの格子点値を、
Ｒｇ　＝　３２×Ｉ　　　…式（１）
Ｇｇ　＝　３２×Ｊ　　　…式（２）
Ｂｇ　＝　３２×Ｋ　　　…式（３）
とする。また、この格子点値に対応する格子点格納値を、
Ｒｔ　＝　３ＤＴｂｌＲ（Ｉ，Ｊ，Ｋ）　　　…式（４）
Ｇｔ　＝　３ＤＴｂｌＧ（Ｉ，Ｊ，Ｋ）　　　…式（５）
Ｂｔ　＝　３ＤＴｂｌＢ（Ｉ，Ｊ，Ｋ）　　　…式（６）
（ただしＩ＝０〜８、Ｊ＝０〜８、Ｋ＝０〜８）
と表現するものとする。
【００２１】
例えば、Ｉ＝１、Ｊ＝２、Ｋ＝３であれば、格子点値で（３２×１，３２×２，３２×３）＝（３２，６４，９６）にあたる格子点格納値は（３ＤＴｂｌＲ（１，２，３），　３ＤＴｂｌＧ（１，２，３），　３ＤＴｂｌＢ（１，２，３））である。そして、この３次元ルックアップテーブルを用いてデータ変換を行えば、（３２，６４，９６）という入力信号は、（３ＤＴｂｌＲ（１，２，３），　３ＤＴｂｌＧ（１，２，３），　３ＤＴｂｌＢ（１，２，３））という信号に変換されることを意味している。また、すべての格子点においてＲｔ＝　Ｒｇ、Ｇｔ　＝　Ｇｇ、Ｂｔ　＝　Ｂｇとなるよう３次元ルックアップテーブルを設定すると、入力と出力が等しくなる３次元ルックアップテーブルとなる。
【００２２】
データ検出部２０１では格子点値（Ｒｇ，Ｇｇ，Ｂｇ）近辺の信号値を有する画素が検出される。ここで、ソース画像（Ｓｒｃ画像）の信号値を（Ｒｓ（ｘ，ｙ），Ｇｓ（ｘ，ｙ），Ｂｓ（ｘ，ｙ））（ただしｘ，ｙは画像の座標値）とすると、まず格子点値と信号値の差Ｅは、
Ｅ＝√（（Ｒｇ　−Ｒｓ（ｘ，ｙ））２　＋　（Ｇｇ−Ｇｓ（ｘ，ｙ））２＋（Ｂｇ−Ｂｓ（ｘ，ｙ））２）　…式（７）
により求められる。
【００２３】
この信号値の差（色空間における距離）Ｅが予め決定されている値Ｌ以下であれば、格子点近辺の値ということになる。格子点近辺の値、すなわちＥ≦Ｌを満たす画素がソース画像からサーチされると、データ比較部２０２にてその画素の座標（ｘ，ｙ）に対応するディスティネーション画像（Ｄｓｔ画像）の信号値（Ｒｄ（ｘ，ｙ），Ｇｄ（ｘ，ｙ），Ｂｄ（ｘ，ｙ））が読みだされ、次式によりソース画像とディスティネーション画像のＲＧＢ信号値の各成分毎の差（各次元毎の差）ｄＲ，ｄＧ，ｄＢおよび、信号値差（色空間における距離）Ｄｉｆｆが、
ｄＲ　＝　Ｒｓ（ｘ，ｙ）−Ｒｄ（ｘ，ｙ）　　　…式（８）
ｄＧ　＝　Ｇｓ（ｘ，ｙ）−Ｇｄ（ｘ，ｙ）　　　…式（９）
ｄＢ　＝　Ｂｓ（ｘ，ｙ）−Ｂｄ（ｘ，ｙ）　　　…式（１０）
Ｄｉｆｆ　＝　√（（Ｒｓ（ｘ，ｙ）−Ｒｄ（ｘ，ｙ））２＋（Ｇｓ（ｘ，ｙ）−Ｇｄ（ｘ，ｙ））２＋（　Ｂｓ（ｘ，ｙ）−Ｂｄ（ｘ，ｙ））２）…式（１１）
で求められる。
【００２４】
以上のようにして求められたソース画像とディスティネーション画像のＲＧＢ信号値の成分毎の差ｄＲ、ｄＧ、ｄＢおよび信号値差Ｄｉｆｆは、データリミット部２０３へと送られる。データリミット部２０３では予め決定されたしきい値Ｔと信号値差Ｄｉｆｆが比較され、信号値差Ｄｉｆｆがしきい値Ｔを超えた場合には、次式により、ｄＲ、ｄＧ、ｄＢを補正した値ｄＲ’、ｄＧ’、ｄＢ’が求められる。
【００２５】
Ｇａｉｎ　＝　Ｔ／Ｄｉｆｆ　　　…式（１２）
ｄＲ’　＝　ｄＲ　×　Ｇａｉｎ　　　…式（１３）
ｄＧ’　＝　ｄＧ　×　Ｇａｉｎ　　　…式（１４）
ｄＢ’　＝　ｄＢ　×　Ｇａｉｎ　　　…式（１５）
なお、信号値差Ｄｉｆｆがしきい値Ｔを超えていない場合はｄＲ’＝ｄＲ、ｄＧ’＝ｄＧ、ｄＢ’＝ｄＢとなる。
【００２６】
上記の処理により、ある格子点値（Ｒｇ，Ｇｇ，Ｂｇ）に関して、ソース画像全域のｄＲ’、ｄＧ’、ｄＢ’の平均値　ｄＲａｖｅ、ｄＧａｖｅ、ｄＢａｖｅを求める。但し、ソース画像中に格子点近辺の値を持つ画素が存在しない場合は、ｄＲａｖｅ＝ｄＧａｖｅ＝ｄＢａｖｅ＝０　とする。
【００２７】
上記手法で求められたｄＲａｖｅ、ｄＧａｖｅ、ｄＢａｖｅは、テーブル作成部２０４に送られ、次式によりカスタマイズされた３次元ルックアップテーブルの格子点値（Ｒｇ，Ｇｇ，Ｂｇ）に対応する格子点格納値（Ｒｔ，Ｇｔ，Ｂｔ）が求められる。
【００２８】
Ｒｔ　＝　Ｒｇ　＋　ｄＲａｖｅ　　　…式（１６）
Ｇｔ　＝　Ｇｇ　＋　ｄＧａｖｅ　　　…式（１７）
Ｂｔ　＝　Ｂｇ　＋　ｄＢａｖｅ　　　…式（１８）
以上の処理を３次元ルックアップテーブルの全ての格子点について行うことにより、カスタマイズされた３次元ルックアップテーブルが作成される。
【００２９】
図４は第１実施形態によるルックアップテーブル生成処理を説明するフローチャートである。以下、図４のフローチャートを参照して、上述したルックアップテーブル生成処理をより詳細に説明する。
【００３０】
ステップＳ１０１において、ルックアップテーブル上の１つの格子点を選択する。ステップＳ１０２からＳ１０３はデータ検出部２０１の処理である。まず、ステップＳ１０２において、ソース画像より１つの画素を選択する。そして、ステップＳ１０３において、ステップＳ１０２で選択した画素の画素値が格子点値の近傍であるかを判定する。これは、上述の（７）式で得られるＥが、所定値Ｌ以下か否かによって判定される。選択された画素の画素値が、ステップＳ１０１で選択された格子点の格子点値近傍にない場合（Ｅ＞Ｌの場合）は、ステップＳ１０９へ進む。ステップＳ１０９では、ソース画像中の全ての画素について処理を終えたか否かを判定する。未処理の画素があればステップＳ１０２に戻り、ソース画像より次の画素が選択される。
【００３１】
ステップＳ１０３において、選択された画素の画素値が格子点値の近傍であった場合は、ステップＳ１０４へ進む。ステップＳ１０４〜Ｓ１０６はデータ比較部２０２における処理である。ステップＳ１０４では、ディスティネーション画像中の、ステップＳ１０２で選択された画素に対応する画素の画素値を取得する。そして、ステップＳ１０５において、ソース画像における画素値とディスティネーション画像における画素値とを比較し、各成分毎の差と信号値差（ｄＢ、ｄＧ、ｄＲ、Ｄｉｆｆ）を取得する（式（８）〜式（１１））。
【００３２】
ステップＳ１０６〜Ｓ１１０はデータリミット部２０３による処理内容である。ステップＳ１０６では信号値差Ｄｉｆｆと所定値Ｔが比較され、信号値差Ｄｉｆｆが所定値Ｔを超えた場合にはステップＳ１０７へ進み、式（１２）〜式（１５）によって、信号値差Ｄｉｆｆ及び閾値Ｔに基づいて成分毎の差ｄＢ、ｄＧ、ｄＲが調整される。
【００３３】
ステップＳ１０８では、ステップＳ１０５で得られ、ステップＳ１０７で必要に応じて調整された各成分毎の差（ｄＢ，ｄＧ，ｄＲ）が累積される。以上のステップＳ１０２からステップＳ１０８の処理をソース画像中の全ての画素について行なったならば（ステップＳ１０９）、ステップＳ１１０へ進み、ステップＳ１０８で累積した各変化量の平均値（ｄＢａｖｅ，ｄＧａｖｅ，ｄＲａｖｅ）が算出される。
【００３４】
ステップＳ１１１〜Ｓ１１２はテーブル作成部２０４による処理内容である。ステップＳ１１１において、ステップＳ１１０で算出された平均値を用いて格子点値を更新し、ルックアップテーブルの格子点格納値とする（式（１６）〜式（１８））。以上の処理をルックアップテーブルの全ての格子点について繰り返すことにより（ステップＳ１１２）、カスタマイズされたルックアップテーブルが生成されることになる。
【００３５】
次に、上述の如く生成されたルックアップテーブルを用いた３次元色変換処理部１０４について説明する。図５は、本実施形態による３次元色変換処理を説明するフローチャートである。
【００３６】
まず、変換画像入力部１０３から送られてくる画像のＲＧＢ信号値Ｒ、Ｇ、Ｂから格子点のインデックスを示す値Ｉ、Ｊ、Ｋが求められる（ステップＳ２０１、Ｓ２０２）。
【００３７】
Ｉ　＝　Ｒ／３２　　　…式（１９）
Ｊ　＝　Ｇ／３２　　　…式（２０）
Ｋ　＝　Ｂ／３２　　　…式（２１）
（ただしＩ，Ｊ，Ｋは小数点以下は切捨て）。
【００３８】
さらに画像のＲＧＢ信号値Ｒ，Ｇ，Ｂの値が、それぞれの格子点からどれぐらい離れているかを示す値（Ｒｆ，Ｇｆ，Ｂｆ）を次式、
Ｒｆ　＝　Ｒ　−　Ｉ×３２　　　…式（２２）
Ｇｆ　＝　Ｇ　−　Ｊ×３２　　　…式（２３）
Ｂｆ　＝　Ｂ　−　Ｋ×３２　　　…式（２４）
によって求める（ステップＳ２０３）。
【００３９】
以上の値を用いて、画像のＲＧＢ信号値Ｒ、Ｇ、Ｂを３次元ルックアップテーブルと立方体補間演算を用いて、求められる変換後の値Ｒｏ、Ｇｏ、Ｂｏは、
Ｒｏ　＝
（３ＤｔｂｌＲ　（Ｉ，Ｊ，Ｋ）×（３２　−Ｒｆ）×（３２　−Ｇｆ）×（３２　−Ｂｆ）
＋　３ＤＴｂｌＲ　（Ｉ＋１，Ｊ，Ｋ）×（Ｒｆ）×（３２　−Ｇｆ）×（３２　−Ｂｆ）
＋　３ＤＴｂｌＲ　（Ｉ，Ｊ＋１，Ｋ）×（３２−Ｒｆ）×（Ｇｆ）×（３２　−Ｂｆ）
＋　３ＤＴｂｌＲ　（Ｉ，Ｊ，Ｋ＋１）×（３２−Ｒｆ）×（３２−Ｇｆ）×（Ｂｆ）
＋　３ＤＴｂｌＲ　（Ｉ＋１，Ｊ＋１，Ｋ）×（Ｒｆ）×（Ｇｆ）×（３２−Ｂｆ）
＋　３ＤＴｂｌＲ　（Ｉ＋１，Ｊ，Ｋ＋１）×（Ｒｆ）×（３２−Ｇｆ）×（Ｂｆ）
＋　３ＤＴｂｌＲ　（Ｉ，Ｊ＋１，Ｋ＋１）×（３２−Ｒｆ）×（Ｇｆ）×（Ｂｆ）
＋　３ＤＴｂｌＲ　（Ｉ＋１，Ｊ＋１，Ｋ＋１）×（Ｒｆ）×（Ｇｆ）×（Ｂｆ））／（３２×３２×３２）　…式（２５）
Ｇｏ　＝
（３ＤＴｂｌＧ　（Ｉ，Ｊ，Ｋ）×（３２　−Ｒｆ）×（３２　−Ｇｆ）×（３２　−Ｂｆ）
＋　３ＤＴｂｌＧ　（Ｉ＋１，Ｊ，Ｋ）×（Ｒｆ）×（３２　−Ｇｆ）×（３２　−Ｂｆ）
＋　３ＤＴｂｌＧ　（Ｉ，Ｊ＋１，Ｋ）×（３２−Ｒｆ）×（Ｇｆ）×（３２　−Ｂｆ）
＋　３ＤＴｂｌＧ　（Ｉ，Ｊ，Ｋ＋１）×（３２−Ｒｆ）×（３２−Ｇｆ）×（Ｂｆ）
＋　３ＤＴｂｌＧ　（Ｉ＋１，Ｊ＋１，Ｋ）×（Ｒｆ）×（Ｇｆ）×（３２−Ｂｆ）
＋　３ＤＴｂｌＧ　（Ｉ＋１，Ｊ，Ｋ＋１）×（Ｒｆ）×（３２−Ｇｆ）×（Ｂｆ）
＋　３ＤＴｂｌＧ　（Ｉ，Ｊ＋１，Ｋ＋１）×（３２−Ｒｆ）×（Ｇｆ）×（Ｂｆ）
＋　３ＤＴｂｌＧ　（Ｉ＋１，Ｊ＋１，Ｋ＋１）×（Ｒｆ）×（Ｇｆ）×（Ｂｆ））／（３２×３２×３２）　…式（２６）
Ｂｏ　＝
（３ＤＴｂｌＢ　（Ｉ，Ｊ，Ｋ）×（３２　−Ｒｆ）×（３２　−Ｇｆ）×（３２　−Ｂｆ）
＋　３ＤＴｂｌＢ　（Ｉ＋１，Ｊ，Ｋ）×（Ｒｆ）×（３２　−Ｇｆ）×（３２　−Ｂｆ）
＋　３ＤＴｂｌＢ　（Ｉ，Ｊ＋１，Ｋ）×（３２−Ｒｆ）×（Ｇｆ）×（３２　−Ｂｆ）
＋　３ＤＴｂｌＢ　（Ｉ，Ｊ，Ｋ＋１）×（３２−Ｒｆ）×（３２−Ｇｆ）×（Ｂｆ）
＋　３ＤＴｂｌＢ　（Ｉ＋１，Ｊ＋１，Ｋ）×（Ｒｆ）×（Ｇｆ）×（３２−Ｂｆ）
＋　３ＤＴｂｌＢ　（Ｉ＋１，Ｊ，Ｋ＋１）×（Ｒｆ）×（３２−Ｇｆ）×（Ｂｆ）
＋　３ＤＴｂｌＢ　（Ｉ，Ｊ＋１，Ｋ＋１）×（３２−Ｒｆ）×（Ｇｆ）×（Ｂｆ）
＋　３ＤＴｂｌＢ　（Ｉ＋１，Ｊ＋１，Ｋ＋１）×（Ｒｆ）×（Ｇｆ）×（Ｂｆ））／（３２×３２×３２）　…式（２７）
で求められる（ステップＳ２０４）。
【００４０】
以上の変換を対象画像の全ての画素について行なう（ステップＳ２０５）。以上の処理により、変換画像データ入力部１０３に入力された画像のＲ、Ｇ、Ｂ信号は、画素毎に３次元ルックアップテーブルと補間演算を用いてＲｏ、Ｇｏ、Ｂｏへと変換され、画像データ出力部１０５へと送られる。
【００４１】
画像データ出力部１０５では、例えば、変換されたＲＧＢ値を用いてディスプレイ１４への画像表示を行なう。或いは、変換されたＲＧＢ値をＹＭＣＫ値に変換してプリンタ２３による画像出力を行なう。
【００４２】
以上のように、上記実施形態によれば、ソース画像とディスティネーション画像を用いてルックアップテーブルを生成するにおいて、変化量の大きい格子点についてその変化量が制限されるので、トーンジャンプの発生しないルックアップテーブルが生成される。
【００４３】
なお、第１実施形態においてソース画像とディスティネーション画像の信号値差Ｄｉｆｆを求めるのに式（１１）を用いたが、式（８）、（９）、（１０）で求められる値ｄＲ、ｄＧ、ｄＢのうちのいずれかが閾値Ｔを超えるか否かで変化量調整の要否を決定するようにしてもよい。この場合、信号値差Ｄｉｆｆは次式、
Ｄｉｆｆ　＝　Ｍａｘ（｜ｄＲ｜，｜ｄＧ｜，｜ｄＢ｜）　　　…式（２８）
によって求められることになる。ただし｜Ａ｜はＡの絶対値を求める関数、またＭａｘ（Ａ１，Ａ２，Ａ３）はＡ１、Ａ２、Ａ３のうちの最大値を求める関数を表す。
【００４４】
さらにソース画像とディスティネーション画像の信号値差Ｄｉｆｆを求めるにあたり、均等色空間（ＣＩＥ　Ｌ＊ａ＊ｂ＊）等の人間の視覚特性を考慮した色空間、またＹｕｖ、ＨＳＢ、ＮＴＳＣ−ＲＧＢ、ｓＲＧＢ等のさまざまな色空間に変換してから、信号値差を求めるようにしてもよい。
【００４５】
また、データリミット部２０３で求められるＧａｉｎ値の求め方は式（１２）に限定されるものではなく、例えば信号値差Ｄｉｆｆの値としきい値Ｔの値を引数としたテーブル演算を用いてもよい。また、３次元色変換処理部１０４で補間演算は立方体補間であったが、四面体補間等のデータを補間することの可能な演算であれば、どのようなものであっても構わない。また本実施形態においては信号をＲＧＢ空間で変換する例について説明したが、これに限られるものではなく、ＣＭＹＧ等の４つの値を持つ色空間等の４次元ルックアップテーブル、ひいてはＮ個の値を持つ色空間のＮ次元ルックアップテーブルで実現してもよい。
【００４６】
〈第２実施形態〉
次に、第２実施形態を説明する。第１実施形態では、ソース画像とディスティネーション画像間の各画素毎の信号値差が所定値を超えるか否かにより、変化量の調整（制限）を行なうか否かを決定した。第２実施形態では、変化量の総和が所定を超えるか否かによって変化量の調整を行なうか否かを決定する。
【００４７】
第２実施形態による装置構成（図１）と、ルックアップテーブル生成処理及び色変換処理の基本的な流れ（図２）は第１実施形態と同様である。以下では、第１実施形態と異なる部分について重点的に説明する。
【００４８】
図６は第２実施形態によるルックアップテーブル作成部１０２の詳細な機能構成を示すブロック図である。また、図７は第２実施形態によるルックアップテーブル生成処理の手順を説明するフローチャートである。データ検出部３０１では格子点値（Ｒｇ，Ｇｇ，Ｂｇ）近辺の信号値を有する画素が検出される。ここでソース画像の信号値を（Ｒｓ（ｘ，ｙ），Ｇｓ（ｘ，ｙ），Ｂｓ（ｘ，ｙ））（ただしｘ，ｙは画像の座標値）とすると、まず格子点値と信号値の差Ｅは、
Ｅ＝√（（Ｒｇ−Ｒｓ（ｘ，ｙ））２＋（Ｇｇ−Ｇｓ（ｘ，ｙ））２＋（Ｂｇ−Ｂｓ（ｘ，ｙ））２）　　…式（２９）
により求められる。
【００４９】
この信号値の差Ｅが予め決定されている値Ｌ以下であれば、格子点近辺の値ということになる。格子点近辺の値、すなわちＥ≦Ｌを満たす画像がソース画像からサーチされると、データ比較部３０２にてその画素の座標（ｘ，ｙ）に対応するディスティネーション画像の信号値（Ｒｄ（ｘ，ｙ），Ｇｄ（ｘ，ｙ），Ｂｄ（ｘ，ｙ））が読みだされ、次式によりソース画像とディスティネーション画像のＲＧＢ信号値の各成分の差ｄＲ，ｄＧ，ｄＢが求められる。
【００５０】
ｄＲ　＝　Ｒｓ（ｘ，ｙ）−Ｒｄ（ｘ，ｙ）　　　…式（３０）
ｄＧ　＝　Ｇｓ（ｘ，ｙ）−Ｇｄ（ｘ，ｙ）　　　…式（３１）
ｄＢ　＝　Ｂｓ（ｘ，ｙ）−Ｂｄ（ｘ，ｙ）　　　…式（３２）。
【００５１】
上記の処理にッより格子点値（Ｒｇ，Ｇｇ，Ｂｇ）においてソース画像全域のｄＲ、ｄＧ、ｄＢの平均値ｄＲａｖｅ、ｄＧａｖｅ、ｄＢａｖｅを求める。またソース画像中に格子点近辺の値が存在しない場合は、ｄＲａｖｅ　＝　ｄＧａｖｅ　＝　ｄＢａｖｅ　＝　０　とする。
【００５２】
上記手法で求められたｄＲａｖｅ、ｄＧａｖｅ、ｄＢａｖｅはテーブル作成部３０３に送られ、次式によりカスタマイズされた３次元ルックアップテーブルの格子点値（Ｒｇ，Ｇｇ，Ｂｇ）に対応する格子点格納値（Ｒｔ，Ｇｔ，Ｂｔ）が求められる。
【００５３】
Ｒｔ　＝　Ｒｇ　＋　ｄＲａｖｅ　　　…式（３３）
Ｇｔ　＝　Ｇｇ　＋　ｄＧａｖｅ　　　…式（３４）
Ｂｔ　＝　Ｂｇ　＋　ｄＢａｖｅ　　　…式（３５）
以上の演算を格子点すべてに行うことにより３次元ルックアップテーブルが作成される。
【００５４】
次に作成された３次元ルックアップテーブルデータは、テーブルリミット部３０４へと送られる。ここでは３次元ルックアップテーブルの格子点値（Ｒｇ，Ｇｇ，Ｂｇ）とその格子点格納値（Ｒｔ，Ｇｔ，Ｂｔ）を用いて差Ｄｉｆｆを次式、
Ｄｉｆｆ　＝　√（（Ｒｇ−Ｒｔ）２＋（Ｇｇ−Ｇｔ）２＋（　Ｂｇ−Ｂｔ）２）　…式（３６）
により求める。
【００５５】
ここで求めたＤｉｆｆが予め決定されているしきい値Ｔを超えていなければＲｔ、Ｇｔ、Ｂｔの値はそのままで用いられる。一方、Ｄｉｆｆの値がしきい値Ｔ以上であった場合の格子点格納値Ｒｔ’、Ｇｔ’、Ｂｔ’は次式により求められる。
【００５６】
Ｇａｉｎ　＝　Ｔ／Ｄｉｆｆ　　　…式（３７）
Ｒｔ’　＝　Ｒｇ　＋　（Ｒｔ　−　Ｒｇ）　×　Ｇａｉｎ　　　…式（３８）
Ｇｔ’　＝　Ｇｇ　＋　（Ｇｔ　−　Ｇｇ）　×　Ｇａｉｎ　　　…式（３９）
Ｂｔ’　＝　Ｂｇ　＋　（Ｂｔ　−　Ｂｇ）　×　Ｇａｉｎ　　　…式（４０）。
【００５７】
以上の処理をルックアップテーブルの格子点すべてに行うことにより３次元ルックアップテーブルにリミットをかけることが可能となる。
【００５８】
図７は第２実施形態によるルックアップテーブル生成処理を説明するフローチャートである。以下、図７のフローチャートを参照して、第２実施形態のルックアップテーブル生成処理をより詳細に説明する。
【００５９】
ステップＳ３０１において、ルックアップテーブル上の１つの格子点を選択する。ステップＳ３０２からＳ３０３はデータ検出部３０１の処理である。まず、ステップＳ３０２において、ソース画像より１つの画素を選択する。そして、ステップＳ３０３において、ステップＳ３０２で選択した画素の画素値が格子点値の近傍であるかを判定する。これは、上述の式（２９）で得られるＥが、所定値Ｌ以下か否かによって判定される。選択された画素の画素値が、ステップＳ１０１で選択された格子点の格子点値近傍にない場合（Ｅ＞Ｌの場合）は、ステップＳ３０７へ進む。ステップＳ３０７では、ソース画像中の全ての画素について処理を終えたか否かを判定する。未処理の画素があればステップＳ３０２に戻り、ソース画像より次の画素が選択される。
【００６０】
ステップＳ３０３において、選択された画素の画素値が格子点値の近傍であった場合は、ステップＳ３０４へ進む。ステップＳ３０４〜Ｓ３０８はデータ比較部２０２における処理である。
【００６１】
ステップＳ３０４では、ディスティネーション画像中の、ステップＳ３０２で選択された画素に対応する画素の画素値を取得する。そして、ステップＳ３０５において、ソース画像における画素値とディスティネーション画像における画素値とを比較し、それらの各成分毎の差（ｄＢ、ｄＧ、ｄＲ）を取得する（式（３０）〜式（３２））。
【００６２】
ステップＳ３０６では、ステップＳ３０５で取得された変化量の各々を累積していく。以上の処理をソース画像中の全画素について行なったならば、ステップＳ３０８へ進み、ステップＳ３０６で累積した各変化量の平均値（ｄＢａｖｅ、ｄＧａｖｅ、ｄＲａｖｅ）を算出する。ステップＳ３０９〜Ｓ３１０はテーブル作成部３０３による処理内容である。ステップＳ３０９にて、ステップＳ３０８で算出した平均値を用いて当該格子点値を更新し、カスタマイズされたルックアップテーブルの格子点格納値とする（式（３３）、（３４）、（３５））。
【００６３】
以上の処理を全てのルックアップテーブル中の全格子点について繰返したならば（ステップＳ３１０）、処理はステップＳ３１１へ進む。
【００６４】
ステップＳ３１１〜Ｓ３１５はテーブルリミット部３０４の処理である。まず、ステップＳ３１１にて格子点を選択する。次に、ステップＳ３１２において、選択された格子点について、格子点値とステップＳ３０９で更新された格子点格納値との差Ｄｉｆｆを算出する。そして、ステップＳ３１３にて、算出された差Ｄｉｆｆとしきい値Ｔを比較する。差Ｄｉｆｆが所定値Ｔを超えた場合にはステップＳ３１４へ進み、式（３７）〜式（４０）によって、差Ｄｉｆｆ及び閾値Ｔに基づいて、格子点格納値が調整される。以上のステップＳ３１１〜Ｓ３１４の処理を、全ての格子点について行い（ステップＳ３１５）、最終的なルックアップテーブルを得る。
【００６５】
なお、３次元色変換処理部１０４の動作は、上述した方法で生成されたルックアップテーブルを用いること以外は第１実施形態と同様であり、詳細な説明は省略する。
【００６６】
なお、第２実施形態において格子点値（Ｒｇ，Ｇｇ，Ｂｇ）とその格子点格納値（Ｒｔ，Ｇｔ，Ｂｔ）を用いて差Ｄｉｆｆを求めるのに式（３６）を用いたが、これに限らない。例えば、各次元毎の変化量の最大値を信号値差Ｄｉｆｆとしてもよい。この場合、式（３６）に代えて、
Ｄｉｆｆ　＝　Ｍａｘ（｜Ｒｔ　−　Ｒｇ｜，｜Ｇｔ　−　Ｇｇ｜，｜Ｂｔ　−　Ｂｇ｜）　…式（４１）
が用いられることになる。ただし｜Ａ｜はＡの絶対値を求める関数、またＭａｘ（Ａ１，Ａ２，Ａ３）はＡ１、Ａ２、Ａ３の最大値を求める関数である。
【００６７】
さらに格子点値と格子点格納値の差Ｄｉｆｆを求めるにあたり、均等色空間（ＣＩＥ　Ｌ＊ａ＊ｂ＊）等の人間の視覚特性を考慮した色空間、またＹｕｖ、ＨＳＢ、ＮＴＳＣ−ＲＧＢ、ｓＲＧＢ等のさまざまな色空間に変換してから、信号値差を求めるようにしてもよい。
【００６８】
またテーブルリミット部３０４で求められるＧａｉｎ値の求め方は式（３７）に限定されるものではなく、例えば差Ｄｉｆｆの値としきい値Ｔの値を引数としたテーブル演算を用いてもよい。また第２実施形態においては格子点値（Ｒｇ，Ｇｇ，Ｂｇ）とその格子点格納値（Ｒｔ，Ｇｔ，Ｂｔ）を用いて信号値差Ｄｉｆｆを求め、この信号値差によりリミットをかける手法を用いたが、予め基準となる３次元ルックアップテーブルを用意しておき、その基準テーブルの格子点格納値（Ｒｔｋ，Ｇｔｋ，Ｂｔｋ）を用いてリミットをかけるか否かを判定してもよい。この場合、ステップＳ３１２〜Ｓ３１４において、以下の式（４２）〜式（４６）を用いて３次元ルックアップテーブルデータ格子点格納値（Ｒｔ’、Ｇｔ’、Ｂｔ’）を求めることになる。
Ｄｉｆｆ　＝　√（（Ｒｔｋ−Ｒｔ）２＋（Ｇｔｋ−Ｇｔ）２＋（　Ｂｔｋ−Ｂｔ）２）　　…式（４２）
Ｇａｉｎ　＝　Ｔ／Ｄｉｆｆ　　…式（４３）
Ｒｔ’　＝　Ｒｔｋ　＋　（Ｒｔ　−　Ｒｔｋ）　×　Ｇａｉｎ　　…式（４４）
Ｇｔ’　＝　Ｇｔｋ　＋　（Ｇｔ　−　Ｇｔｋ）　×　Ｇａｉｎ　　…式（４５）
Ｂｔ’　＝　Ｂｔｋ　＋　（Ｂｔ　−　Ｂｔｋ）　×　Ｇａｉｎ　　…式（４６）。
【００６９】
なお、上記各実施形態において、リミットをかけるための処理として、しきい値Ｔと距離（或いは成分値の差の最大値）Ｄｉｆｆの値を用い、Ｔ／Ｄｉｆｆを各成分値やテーブル値に作用させたがこれに限られるものではない。例えば、Ｔ／Ｄｉｆｆをもとに関数ｆ（ｘ）で求められる値ｙ＝ｆ（Ｔ／Ｄｉｆｆ）を乗じるようにしてもよい。
【００７０】
〈第３実施形態〉
次に、第３実施形態を説明する。上記各実施形態では、Ｎ次元からＮ次元への変換を説明したが、第３実施形態では、Ｎ次元からＭ次元へ変換する（Ｎ≠Ｍ）場合について説明する。なお、以下では、４次元の色空間で表された色を３次元の色空間で表された色へ変換する場合を例として説明する。
【００７１】
図８は第３実施形態によるルックアップテーブル生成処理及び色変換処理の機能構成を示すブロック図である。
【００７２】
図８において、テーブル作成用画像データ入力部４０１では、４次元ルックアップテーブルを作成する基となる画像データ（ソース画像１５ａ、ディスティネーション画像１５ｂ）が入力される。例えば、ユーザは、変換元となる画像データであるソース画像１５ａをディジタルカメラ２１やスキャナ２２から入力する。また、このソース画像１５ａを自分の好みに応じて局所的または、全体的に色をレタッチ処理することによりディスティネーション画像１５ｂが生成され、格納される。
【００７３】
ソース画像１５ａおよびディスティネーション画像１５ｂはカスタマイズ４次元ルックアップテーブル作成部４０２へと送られ、ソース画像およびディスティネーション画像に基づいて４次元ルックアップテーブルが作成される。カスタマイズされた４次元ルックアップテーブルが作成されると、次にこのカスタマイズされた４次元ルックアップテーブルを用いて変換するべき画像データが、変換画像データ入力部４０３へと入力される。変換画像データ入力部４０３では画像データのフォーマットに基づき信号値が読み出され、４次元色変換処理部４０４へと送られる。この４次元色変換処理部では、カスタマイズ４次元ルックアップテーブル作成部４０２にて作成された４次元ルックアップテーブルを用いて、色変換処理が行われる。色変換処理が行われた画像の信号値は画像データ出力部４０５において、ユーザが指定した画像データフォーマットに基づき、フォーマット変換されて出力される。以上が簡単な流れである。
【００７４】
次にカスタマイズ４次元ルックアップテーブル作成部４０２と、４次元色変換処理部４０４の処理部についてより詳しく説明する。
【００７５】
図９は、カスタマイズ４次元ルックアップテーブル作成部４０２の詳細な機能構成を示すブロック図である。第３実施形態における４次元ルックアップテーブルは、格子点間隔（ステップ間隔）を３２とすることにより９×９×９×９の個の格子点を持ち、Ｃ、Ｍ、Ｙ、Ｇの４つの信号を一組とする入力信号から、Ｙ、Ｕ、Ｖの３つの信号を一組とする出力信号へ変換するものである。
【００７６】
データ検出部５０１では、格子点値（Ｃｇ，Ｍｇ，Ｙｇ，Ｇｇ）近辺の信号値が求められる。ここでソース画像の信号値を（Ｃｓ（ｘ，ｙ），Ｍｓ（ｘ，ｙ），Ｙｓ（ｘ，ｙ），Ｇｓ（ｘ，ｙ））（ただしｘ，ｙは画像の座標値）とすると、まず格子点値と信号値の差Ｅは以下の式により求められる。
【００７７】
Ｅ＝√（（Ｃｇ−Ｃｓ（ｘ，ｙ））２　＋（Ｍｇ−Ｍｓ（ｘ，ｙ））２＋（Ｙｇ−Ｙｓ（ｘ，ｙ））２＋（Ｇｇ−Ｇｓ（ｘ，ｙ））２）　　…式（４７）
この信号値の差Ｅが予め決定されている値Ｌ以下であれば、格子点近辺の値ということになる。格子点近辺の値、すなわちＥ≦Ｌを満たす画素がソース画像からサーチされると、データ比較部５０２にてその画素の座標（ｘ，ｙ）に対応するディスティネーション画像の信号値（Ｃｄ（ｘ，ｙ），Ｍｄ（ｘ，ｙ），Ｙｄ（ｘ，ｙ），Ｇｄ（ｘ，ｙ））が読みだされ、次式によりソース画像とディスティネーション画像のＣＭＹＧ信号値のそれぞれの成分の差ｄＣ，ｄＭ，ｄＹ，ｄＧおよび、信号値差Ｄｉｆｆが求められる。
【００７８】
ｄＣ　＝　Ｃｓ（ｘ，ｙ）−Ｃｄ（ｘ，ｙ）　　…式（４８）
ｄＭ　＝　Ｍｓ（ｘ，ｙ）−Ｍｄ（ｘ，ｙ）　　…式（４９）
ｄＹ　＝　Ｙｓ（ｘ，ｙ）−Ｙｄ（ｘ，ｙ）　　…式（５０）
ｄＧ　＝　Ｇｓ（ｘ，ｙ）−Ｇｄ（ｘ，ｙ）　　…式（５１）
Ｄｉｆｆ　＝　√（Ｃｓ（ｘ，ｙ）−Ｃｄ（ｘ，ｙ））２＋（Ｍｓ（ｘ，ｙ）−Ｍｄ（ｘ，ｙ））２＋（Ｙｓ（ｘ，ｙ）−Ｙｄ（ｘ，ｙ））２＋（Ｇｓ（ｘ，ｙ）−Ｇｄ（ｘ，ｙ））２）　…式（５２）。
【００７９】
求められたソース画像とディスティネーション画像のＣＭＹＧ信号値の各成分毎の差ｄＣ，ｄＭ，ｄＹ，ｄＧおよび信号値差Ｄｉｆｆは、データリミット部５０３へと送られる。データリミット部５０３では、予め決定されたしきい値Ｔと信号値差Ｄｉｆｆが比較され、信号値差Ｄｉｆｆがしきい値Ｔを超えた場合は次式により、ｄＣ，ｄＭ，ｄＹ，ｄＧを補正したｄＣ’，ｄＭ’，ｄＹ’，ｄＧ’が求められる。また、信号値差Ｄｉｆｆがしきい値Ｔを超えていない場合はｄＣ’　＝　ｄＣ、ｄＭ’　＝　ｄＭ、ｄＹ’　＝　ｄＹ、ｄＧ’　＝　ｄＧとなる。
【００８０】
Ｇａｉｎ　＝　Ｔ／Ｄｉｆｆ　　…式（５３）
ｄＣ’　＝　ｄＣ　×　Ｇａｉｎ　　…式（５４）
ｄＭ’　＝　ｄＭ　×　Ｇａｉｎ　　…式（５５）
ｄＹ’　＝　ｄＹ　×　Ｇａｉｎ　　…式（５６）
ｄＧ’　＝　ｄＧ　×　Ｇａｉｎ　　…式（５７）。
【００８１】
上記の流れで格子点値（Ｃｇ，Ｍｇ，Ｙｇ，Ｇｇ）においてソース画像全域のｄＣ’、ｄＭ’、ｄＹ’、ｄＧ’の平均値　ｄＣａｖｅ、ｄＭａｖｅ、ｄＹａｖｅ、ｄＧａｖｅを求める。またソース画像中に格子点近辺の値が存在しない場合は、ｄＣａｖｅ　＝　ｄＭａｖｅ　＝　ｄＹａｖｅ　＝　ｄＧａｖｅ　＝　０　とする。上記手法で求められたｄＣａｖｅ、ｄＭａｖｅ、ｄＹａｖｅ、ｄＧａｖｅはテーブル作成部５０４に送られ、次式によりカスタマイズされた４次元ルックアップテーブルの格子点値（Ｃｇ，Ｍｇ，Ｙｇ，Ｇｇ）に対応する格子点格納値（Ｙｔ，Ｕｔ，Ｖｔ）が求められる。
【００８２】
Ｃｔ　＝　Ｃｇ　＋　ｄＣａｖｅ　　…式（５８）
Ｍｔ　＝　Ｍｇ　＋　ｄＭａｖｅ　　…式（５９）
Ｙｔ　＝　Ｙｇ＋　ｄＹａｖｅ　　…式（６０）
Ｇｔ　＝　Ｇｇ＋　ｄＧａｖｅ　　…式（６１）
Ｒｔ　＝　ＣｏｎｖＲ（Ｃｇ，Ｍｇ，Ｙｇ，Ｇｇ）　　…式（６２）
Ｇｔ　＝　ＣｏｎｖＧ（Ｃｇ，Ｍｇ，Ｙｇ，Ｇｇ）　　…式（６３）
Ｂｔ　＝　ＣｏｎｖＢ（Ｃｇ，Ｍｇ，Ｙｇ，Ｇｇ）　　…式（６４）。
【００８３】
ただし、ＣｏｎｖＲはＣＭＹＧ信号からＲ信号を求める変換式、ＣｏｎｖＧはＣＭＹＧ信号からＧ信号を求める変換式、ＣｏｎｖＢはＣＭＹＧ信号からＢ信号を求める変換式を示す。
【００８４】
Ｙｔ　　＝　０．３×Ｒｔ　＋　０．５９×Ｇｔ　＋　０．１１×Ｂｔ　　…式（６５）
Ｕｔ　＝　（Ｂｔ　−　Ｙｔ）×０．５６４　　…式（６６）
Ｖｔ　＝　（Ｒｔ　−　Ｙｔ）×０．７１３　　…式（６７）。
【００８５】
以上の処理を格子点すべてに行うことにより４次元ルックアップテーブルが作成される。
【００８６】
また、４次元色変換処理部４０４では、作成された４次元ルックアップテーブルを参照して、変換画像データ入力部４０３に入力された画像の画素毎に、第１実施形態で説明したような補間演算を用いて、Ｃ、Ｍ、Ｙ、Ｇ信号をＹｏ、Ｕｏ、Ｖｏへと変換する。得られたＹｏ、Ｕｏ、Ｖｏ信号は画像データ出力部４０５へと送られる。
【００８７】
なお、上記実施形態では、ＣＭＹＧ信号をＹＵＶへと変換する４次元ルックアップテーブルの生成と色変換処理について説明したが、これに限られるものではなく、Ｎ次元の信号をＭ次元に変換するＮ次元ルックアップテーブルの生成と色変換処理が実現可能である。
【００８８】
以上説明したように、上記各実施形態によれば、Ｎ次元ルックアップテーブルの生成時にリミットをかけてテーブルを作成するため、Ｎ次元ルックアップテーブルデータの連続性が失われて生じるトーンジャンプ等の現象を防ぐことが可能となる。
【００８９】
また、本発明の目的は、実施形態の機能を撮像装置に搭載し、撮像装置において実行することによっても、達成される。
さらに、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００９０】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９１】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００９２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９４】
【発明の効果】
以上説明したように、本発明によれば、色変換テーブルによる色変換の不連続性が防止される。
【図面の簡単な説明】
【図１】第１実施形態による色変換テーブル（以下、ルックアップテーブルという）の生成と、ルックアップテーブルを用いた色変換処理を実行する情報処理装置の構成を示すブロック図である。
【図２】第１実施形態によるルックアップテーブル生成処理及び色変換処理の機能構成を示すブロック図である。
【図３】ルックアップテーブル作成部１０２の詳細な機能構成を示すブロック図である。
【図４】第１実施形態によるルックアップテーブル生成処理を説明するフローチャートである。
【図５】第１実施形態による３次元色変換処理を説明するフローチャートである。
【図６】第２実施形態によるルックアップテーブル作成部１０２の詳細な機能構成を示すブロック図である。
【図７】第２実施形態によるルックアップテーブル生成処理を説明するフローチャートである。
【図８】第３実施形態によるルックアップテーブル生成処理及び色変換処理の機能構成を示すブロック図である。
【図９】カスタマイズ４次元ルックアップテーブル作成部４０２の詳細な機能構成を示すブロック図である。
【図１】
2004080100.tif 000003
【図２】
2004080100.tif 000004
【図３】
2004080100.tif 000005
【図４】
2004080100.tif 000006
【図５】
2004080100.tif 000007
【図６】
2004080100.tif 000008
【図７】
2004080100.tif 000009
【図８】
2004080100.tif 000010
【図９】
2004080100.tif 000011
【手続補正書】
【提出日】平成15年7月4日(2003.7.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
Ｒｔ　＝　Ｒｇ　−　ｄＲａｖｅ　　　…式（１６）
Ｇｔ　＝　Ｇｇ　−　ｄＧａｖｅ　　　…式（１７）
Ｂｔ　＝　Ｂｇ　−　ｄＢａｖｅ　　　…式（１８）
以上の処理を３次元ルックアップテーブルの全ての格子点について行うことにより、カスタマイズされた３次元ルックアップテーブルが作成される。


【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
Ｒｔ　＝　Ｒｇ　−　ｄＲａｖｅ　　　…式（３３）
Ｇｔ　＝　Ｇｇ　−　ｄＧａｖｅ　　　…式（３４）
Ｂｔ　＝　Ｂｇ　−　ｄＢａｖｅ　　　…式（３５）
以上の演算を格子点すべてに行うことにより３次元ルックアップテーブルが作成される。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
Ｃｔ　＝　Ｃｇ　−　ｄＣａｖｅ　　…式（５８）
Ｍｔ　＝　Ｍｇ　−　ｄＭａｖｅ　　…式（５９）
Ｙｔ　＝　Ｙｇ　−　ｄＹａｖｅ　　…式（６０）
Ｇｔ　＝　Ｇｇ　−　ｄＧａｖｅ　　…式（６１）
Ｒｔ　＝　ＣｏｎｖＲ（Ｃｇ，Ｍｇ，Ｙｇ，Ｇｇ）　　…式（６２）
Ｇｔ　＝　ＣｏｎｖＧ（Ｃｇ，Ｍｇ，Ｙｇ，Ｇｇ）　　…式（６３）
Ｂｔ　＝　ＣｏｎｖＢ（Ｃｇ，Ｍｇ，Ｙｇ，Ｇｇ）　　…式（６４）