(57)【要約】【課題】容易に実施でき、柔軟性と性能に優れた補間方法を得る。【解決手段】既知ノードの関数値に基づいて入力ノードの関数値を演算する方法及びシステム。既知ノード及び対応する既知ノード関数値のデータベースを作成する。既知ノードは、任意の２つの隣接した既知ノード間の距離が２の整数乗の数となるように位置される。入力ノードが、第一のノードと、第一のノードに隣接する第二のノードの間に位置するように、既知ノードのデータベースから第一のノードを検索する。入力ノードと第一のノードの差δを演算する。第一のノードと第二のノードの間の距離の、底を２とした対数であるｋ位置だけδを右にシフトする。第一のノード関数値を、シフトされたδと、第二のノード関数値と第一のノード関数値の差との積と組み合わせることで入力ノードの関数値を演算する。【選択図】　図４
2004030608.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）任意の２つの隣接した既知ノード間の距離が２の整数乗の数となるように位置される既知ノード、及び対応する既知ノード関数値のデータベースを作成するステップと、
（ｂ）入力ノードが、第一のノード関数値を有する第一のノードと、前記第一のノードに隣接する、第二のノード関数値を有する第二のノードの間に位置するように、既知ノードの前記データベースから前記第一のノードを検索するステップと、
（ｃ）前記入力ノードと前記第一のノードとの差δを演算するステップと、
（ｄ）前記δをｋ位置だけ右にシフトするステップであって、前記ｋは、前記第一のノードと前記第二のノードの間の距離の、底を２とした対数であるステップと、
（ｅ）前記第一のノード関数値を、シフトされた前記δと、前記第二のノード関数値と前記第一のノード関数値の差との積と組み合わせることで前記入力ノードの関数値を演算するステップと、
を含む、既知ノードの関数値に基づいて入力ノードの関数値を演算する方法。
【請求項２】
前記ステップ（ａ）が、
第一のルックアップテーブルと第二のルックアップテーブルを生成するステップと、
前記第一及び第二のルックアップテーブルをデータベースへロードするステップと、
を含み、
前記第一のルックアップテーブルは、前記既知ノードに対応するノードインデックス及びこれに対応するノード関数値を含み、前記第二のルックアップテーブルは、前記既知ノードに対応するノードインデックス、前記既知ノード及びノード間指数を含み、前記第二のルックアップテーブルの境界に位置しない各既知ノードは、対応する既知ノードとそれぞれの隣接既知ノードとの間の各距離の、底を２とした対数を表す２つのノード間指数と関連づけられる、
請求項１に記載の方法。
【請求項３】
前記ステップ（ａ）が、
ルックアップテーブルを生成することと、
前記ルックアップテーブルをデータベースへロードすることと、
を含み、
前記ルックアップテーブルは、前記既知ノードに対応するノードインデックス、前記既知ノード、対応するノード関数値及びノード間指数を含み、前記ルックアップテーブルの境界に位置しない各既知ノードは、前記対応する既知ノードとそれぞれの隣接既知ノードとの間の各距離の、底を２とした対数を表す２つのノード間指数と関連づけられる、
請求項１に記載の方法。
【請求項４】
既知ノード、対応する既知ノード関数値及びノード間指数のリストを記憶しているデータベースと、
入力ノードが、第一のノード関数値を有する第一のノードと、前記第一のノードに隣接する、第二のノード関数値を有する第二のノードの間に位置するように前記データベースから前記第一のノードを検索する、検索モジュールと、
前記検索モジュールと連絡する演算モジュールと、
を含み、
前記既知ノードは、任意の２つの隣接した既知ノード間の距離が２の整数乗の数となるように位置され、前記リストの境界に位置しない各既知ノードは、対応する既知ノードとそれぞれの隣接既知ノードとの間の各距離の、底を２とした対数を表す２つのノード間指数と関連づけられ、
前記演算モジュールは、
前記入力ノードと前記第一のノードの差δ、及び前記第二のノード関数値と前記第一のノード関数値の差ΔＶを演算する組合せモジュールと、
前記δをｋ位置分だけ右にシフトするシフトモジュールであって、前記ｋは、前記第二のノードに対して前記第一のノードに関連づけられたノード間指数であるシフトモジュールと、
シフトされた前記δと前記差ΔＶを乗算し、積値を出力する乗算モジュールと、を含み、
前記組合せモジュールは前記第一ノード関数値と、前記積とを組み合わせ、前記入力ノードの関数値を生成する、
既知ノードの関数値に基づいて入力ノードの関数値を演算するシステム。
【請求項５】
対応する既知ノード関数値を有する既知ノードのデータベースであって、
既知ノードに対応するノードインデックス及び対応するノード関数値を含む第一のルックアップテーブルであって、前記各既知ノードが、任意の２つの隣接した既知ノード間の距離が２の整数乗の数となるように位置された第一のルックアップテーブルと、
前記ノードインデックス、前記既知ノード及びノード間指数を含む第二のルックアップテーブルであって、前記第二のルックアップテーブルの境界に位置しない各既知ノードは、対応する既知ノードとそれぞれの隣接既知ノードとの間の各距離の、底を２とした対数を表す２つのノード間指数に関連づけられる第二のルックアップテーブルと、
を含むデータベース。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、隣接ポイントの既知もしくは測定された関数値を補間することで、１つのポイントの関数値を演算する方法及びシステムに関する。より詳細には色空間変換のための多次元補間方法及びシステムに関する。
【０００２】
【従来の技術】
多次元空間における１つのポイントの関数値を、一連の他のポイントの既知の関数値に基づいて決定することが要求される信号処理や画像処理の多くの分野で、多次元補間を行うことが必要となっている。既知関数値を有するポイントを一般に「ノード」と呼んでいるが、本明細書においては、便宜上、用語「ポイント」と「ノード」は互換性をもつものとし、用語「既知ノード」は既知関数値を有するポイントを表すものとする。これまでの多くの特許出願では、便宜上既知ノードは等間隔に離間された固定的なグリッド位置にあるよう選択され、それらのグリッド位置を測定することで既知関数値を得ていた。同数のノードの位置を必ずしも規則的なグリッド位置に制限せず、任意の位置とするように最適化すれば、非直線空間における補間精度が著しく向上することは周知である。しかし、任意のノード位置を可能とするには一層複雑な演算が必要となるため、このような方式は一般に実用化されていない。
【０００３】
【発明が解決しようとする課題】
上記のことから、容易に実施でき、規則的なグリッド位置にノードが位置される従来の方法と比べて柔軟性と性能に優れた補間方法が求められている。
【０００４】
【課題を解決するための手段】
既知のノードの関数値に基づいて入力ノードの関数値を演算する方法及びシステムが開示される。既知ノード及び対応する既知ノード関数値のデータベースが作成される。既知ノードは、任意の２つの隣接既知ノード間の距離が２の整数乗の数となる位置に置かれる。入力ノードが、第一のノード関数値を有する第一のノードと、第一のノードに隣接する、第二のノード関数値を有する第二のノードの間に位置するよう、既知ノードのデータベースから第一のノードが検索される。入力ノードと第一のノードの差δが演算される。次いで、δは、第一のノードと第二のノードの間の距離の、底を２とした対数であるｋ位置だけ右にシフトされる。入力ノードの関数値は、第一のノード関数値を、シフトされたδと、第二のノード関数値と第一のノード関数値の差との積と組み合わせることで演算される。
【０００５】
【発明の実施の形態】
本発明の方法をＳＣＣ（スキャナ色空間変換）に応用すると、（測定規準法ΔＥで測定した場合、）従来の方法に比べて色補間精度がほぼ２倍に向上することが実験によりわかった。
【０００６】
本発明の方法は、隣接ノード間の（非正規化）距離を２の整数乗の数に限定することで、任意のノード位置に関連する複雑性を低減する。本発明の新規な方法は、簡単で容易に実施でき、既知ノードのノードインデックス、既知ノード、及び隣接する既知ノード間の距離の、底を２とした対数であるノード間指数を記憶する、小さなルックアップテーブル（例えば、図５乃至図８を参照のこと。）を追加するだけでよい。
【０００７】
本発明の方法は、特に色空間変換のための多次元補間に適している。デジタル情報化の進んだ今日では、カラードキュメントはＲＧＢで走査され、ＣＭＹＫで印刷されることが多い。このため、印刷工程の一部でデータの色空間を（例えば、ＲＧＢからＣＭＹＫへ）変換することが必要である。ＣＭＹＫ印刷工程の大部分が、マーキングデバイスの特性や、多色トナー／インクの複雑な相互作用のために、著しく非直線的であることはよく知られている。
【０００８】
わかりやすくするため、色空間変換の具体例を用いて本発明を説明する。但し、本発明は汎用であり、信号処理及び画像処理を含む多くの他の分野に適用できる。
【０００９】
色空間変換の問題に対処する方法の１つは、特定のマーキングエンジンに適用されると所与のＲＧＢ値を最もよく再現する、好適なＣＭＹＫ値をテーブルに記憶させるものである。テーブルの内容は、試行錯誤的な実験により決定してもよい。このようなテーブルをいったん作成すれば、所望のＣＭＹＫ値をリアルタイムでルックアップすることは容易である。しかし、可能なＲＧＢカラーは無数にあり、テーブル全体のサイズが大きくなりすぎるため、このようなテーブルは実用性に欠ける。例えば、ＲＧＢ及びＣＭＹＫの各色の８ビットの通常表示は、（ＣＭＹＫの各色に１つずつの）４つのテーブル（各２２４バイト）を必要とする。１０ビットのＲＧＢ入力の場合、この数字は２３０バイトとなる。このように大きなメモリはコストが高く、実用的でない。
【００１０】
メモリサイズの問題を解決する一般的な方法は、ノードに粗い三次元テーブルを用い、次いで細かい三次元補間段階を利用する方法である。ノード数（所望の品質に応じて９、１７、３３など）は可能な色数よりもずっと少ないため、テーブルサイズは管理しやすいサイズにとどめることができる。テーブルは、現在のＲＧＢポイントに最も近いノードについての所望のＣＭＹＫ値をルックアップするために使われる。次いで、補間段階で、ＣＭＹＫ空間が隣接ノード間で概ね区分的直線であるという仮定の下で、最も近いノードのＣＭＹＫ値に基づいて、（推定された）出力ＣＭＹＫ値を計算する。近似精度は、ノード数、ノードの相対位置及びカラー変換の非直線性により異なる。
【００１１】
数種類の補間方式が文献において提案されている。周知の多直線補間方式を選択するのが自然であるが、多直線補間方式よりもずっと効率的に実施できる多面体補間方式などの技術もある。これらの相違を、上述した三次元補間を例に取って説明する。三直線補間の場合、まず最も近い８つのノード（図１に、所与の注目ポイントを包囲する立方体のコーナー部分として示されている）を識別し、それぞれ対応するＣＭＹＫ値をテーブルでルックアップする。次に、所与のポイントから各ノードへの距離分数に基づいた推定値を決定するため、ＣＭＹＫ値を（直接又は一連の対で）直線的に補間する。あるいは、四面体補間法では、立方体を更に多数の四面体に分割する（本明細書では、四面体とは体積がゼロでない、ノード数が最少の物体をいう）。第一のステップで、所与のポイントが上記の四面体のいずれに位置するかを決定する。次に、この決定された四面体のコーナーに対応する４つのノード（帯域幅とテーブルルックアップ数は三直線補間の場合の半分である。）のＣＭＹＫ値のみをテーブルでルックアップすればよい。最後に、所与のポイントから四面体の各コーナーへの距離分数に基づいた推定値を決定するため、ＣＭＹＫ値を（直接又は一連の対で）直線的に補間する。最終的な補間フェーズを実施するために必要な乗算器及び加算器の数は、三直線補間の場合に比べてずっと少なくてすむ。従って四面体補間法は三直線補間法に比べてずっと効率的に実施でき、補間速度は約２倍となる。
【００１２】
本発明の方法は、上記の三直線補間法や四面体補間法を含む多様な補間方式に適用できる。
【００１３】
次元数がいくつであっても、区分的直線近似による多次元補間段階を順次低減して複数の一次元補間とすることができる。
【００１４】
図１は、三直線補間の例示的な一連の３つの段階を示す。例えば、三直線の場合、図１のステップ１で示されるように、まず４つの一次元直線補間を必要とする第一の次元に沿って対で補間する。得られた４つの値を、更に２つの一次元直線補間（ステップ２）を必要とする、第二の次元に沿って対で使用する。最後に、得られた２つの値を、更に１つの一次元補間を必要とする第三の次元に沿って補間し、最終結果（ステップ３）を得る。従って、三直線補間では、３段階のシーケンスで実施される合計７つの一次元直線補間回路が必要である。多次元補間を同一直線上で行う限りこの結果は正しく、どの次元を最初に補間するかという順序は最終結果とは無関係である。
【００１５】
色空間の非直線性は非常に複雑である場合が多く、簡単なモデルで容易に表現することができないため、実際にはルックアップテーブルと一次元直線補間による上記の一般的な補間方法が広く利用されている。従来の手法は、測定するルックアップテーブルのノードを固定的で一様なグリッド上に制限するものであった。ノードが等距離に配置されていると仮定すれば実施は容易であろうが、実用上これを正当化するのは難しい。視覚的重要性が高い空間領域や、非直線性の程度がより高い領域、すなわち区分的直線近似が粗いままではその精度が十分でない領域により多くのノードを割り当てることが望ましい。固定ノード方式の利点の１つは、ベースノードまでの距離分数の計算がかなり容易であるという点と、立方体（三直線補間法の場合）又は特定の四面体（四面体補間法の場合）の体積が空間のどこにおいても一定であるという点である。
【００１６】
他方で、ノード位置を完全に任意に選択できるようにすると、従来の方式ではその複雑性が著しく増加する。この理由として、ノード間の距離が変化する可能性があること、及び立方体や四面体のサイズの変化を補償するため、除算を必要とする多次元正規化演算を行う必要があることが挙げられる。このような除算の実施はコストが高いことは周知である。
【００１７】
本発明の方法では、任意の隣接ノード間の整数により非正規化された距離を２進の２の乗数とするという制約付きで、ノード間の距離を任意に設定することができる。この考え方は、２の整数乗の数による除算は単純なシフト演算として実施できることに基づく。２乗の２の乗数システムは、小さいステップと大きいステップとを同時に記述するのに好都合な対数目盛であることから、上記の更なる制約はあまり大きな制約とはならない。また、本発明の方法では、所望の再生忠実度を満たすためのノード位置を、最大限に柔軟に選択できる。本発明の方法では、均一なグリッドを使用する方法と比べ、一般に少ないノード数で同様な精度を得ることができる。更に、実施が容易であるため、ノード位置を完全に任意に設定する方法に対し、コスト（ＡＳＩＣ設計のシリコンゲート数や演算上の複雑さなど）を大幅に削減することができる。
【００１８】
従来の方法で使用するルックアップテーブルは、入力ドメインから出力ドメインへ非直線にマッピングすることを含む。色空間変換への応用では、いくつかの用途で好適であるように、入力ドメインを例えばＲＧＢ空間、もしくはよりデバイスインディペンダントな中間的空間（例えばＹＣｂＣｒ空間やＣＩＥ−Ｌａｂ空間、ここでＣＩＥ−Ｌａｂ空間とは、１９３１年にＣｏｍｍｉｓｓｉｏｎ　Ｉｎｔｅｒｎａｔｉｏｎａｌｅ　ｄ’Ｅｃｌａｉｒａｇｅにより最初に導入されたカラーモデルの１９７６年のアップデート版を指す）とし、出力ドメインをデバイス（マーキングエンジン）ＣＭＹＫ空間としてもよい。デバイスＲＧＢから任意の上記色空間への非直線マッピング関数は一般的に知られておらず、また複雑であるため簡単な方法では実施できない。このため、ルックアップテーブルの内容は、通常は較正工程の一部として実験により決定される。
【００１９】
一般に、ルックアップテーブルが与えられたときの基本的な一次元補間ステップは次のように表せる（図２参照のこと）。
【００２０】
【数１】
2004030608.tif 000003
【００２１】
式中、ｘは入力ポイント、Ｖ［ｉ＋１］及びＶ［ｉ］はそれぞれノード［ｉ＋１］及びノード［ｉ］における関数値、ｉ及びｉ＋１はノードインデックスである。δｉはポイントｘからベースノードｉまでの距離、Δｉはノード（ｉ）とノード（ｉ＋１）との間の距離、Ｖ０は入力ポイントｘでの補間値である。等式（１）の実施は、次の３つの演算を含む。
（１）ベースノードの検索
この演算は、ノード［ｉ］　＜　ｘ　＜ノード［ｉ＋１］となるような「最も近い」ベースノードであるノード［ｉ］を検索するための比較ロジックを含む。解の一義性を保証するため、ノードの関数値は一般にノードインデックスに対して単調であるとみなす。）
（２）分数部の演算
この演算は、ハードウェアで実施するにはコストの高い一般的な除算を必要とする、正規化距離の分数部δｉ／Δｉを計算する。
（３）補間
最終補間値Ｖ０を演算するには乗算１回と加算２回（減算は加算として計数）が必要である。
【００２２】
単純な固定的直線ノード間隔を利用する従来の方法では、任意の２つのノード間の空間は一定（すなわちΔｉ　＝　Δ＝　定数（ｉ））である。間隔が一定である場合、因数δｉ／Δは既知であり、正規化因数として予め算出することができる。しかし、間隔を均一とするという制約があるため、上記のように最高品質を達成するために色空間のノード分布を柔軟に変更することはできない。他方、完全にプログラム可能なノード間隔では最大限の柔軟性が得られるが、上記のように任意の除算を行うことが必要なため、実施コストが高く、複雑である。
【００２３】
本発明は完全にプログラム可能なノード間隔方式のもつ柔軟性（すなわち、高品質）と、上述の固定的な直線ノード間隔方式のもつ単純性（すなわち、低コスト）の両方に対処する。本発明は、２の乗数のノード間隔設定を行うプログラム可能なノードアーキテクチャを含む。
【００２４】
【数２】
2004030608.tif 000004
【００２５】
式中、Ｎは自然数の群、ｋｉはノードの対毎に異なる整数定数である。ノード間隔Δｉを２の乗数で表すと、除算は単純に実施できる次式のような右シフト演算で行われる。
【００２６】
【数３】
2004030608.tif 000005
【００２７】
図３は、本発明の方法の１つの実施形態３００のフローチャートである。既知のノードのデータベースが作成される。既知ノードは、任意の隣接する既知ノード間の距離が２の整数乗の数となるよう選択される（ブロック３０２）。所与の入力ノードｘについて、入力ノードｘがノード１と、隣接するノード２の間に位置するよう、データベースからベースノードであるノード１が検索される（ブロック３０４）。ノード２とノード１の差は、２ｋである。ノード１とノード２の関数値はそれぞれＶ（ノード１）とＶ（ノード２）である（これらの関数値はデータベースに記憶されている。）。関数値Ｖ（ノード１）から補間が開始されることから、ノード１をベースノードと呼ぶ。入力ノードｘとノード１の差δが演算される（ブロック３０６）。値δはｋ位置だけ右に対数的にシフトされる（ブロック３０８）。ｋはベースノードであるノード１と第二のノードであるノード２の間の距離の、底を２とした対数である。関数値Ｖ（ｘ）は、Ｖ（ノード１）を、シフトされたδと、Ｖ（ノード２）とＶ（ノード１）の差との積と組み合わせることで演算される（ブロック３１０）。
【００２８】
ベースノードは、一般に入力色空間の起点に応じて選択される。入力色空間の起点が０である応用例の場合（例えば、Ｒ、Ｇ、Ｂの範囲が０から２５５であるＲＧＢ色空間の場合）、ベースノードは通常入力ノードよりも正でないように選択される。このとき、Ｖ（ノード２）　−　Ｖ（ノード１）は正である。入力色空間の起点が０でなく、中間範囲のいずれかにある応用例の場合（例えば（ａ，　ｂ）又は（ｃｂ，　ｃｒ）が−１２８から＋１２７の範囲にあるＣＩＥ−Ｌａｂ空間又はＹＣｂＣｒ色空間の場合）、ベースノードは、通常入力ノードｘが起点より大きい場合は入力ノードｘより正でないよう、また入力ノードｘが起点より小さい場合は入力ノードｘより正であるように選択される（例えば、図７を参照のこと）。このとき、Ｖ（ノード２）　−　Ｖ（ノード１）は、起点よりも大きい入力ノードｘについては正であり、起点よりも小さい入力ノードｘについては負である。
【００２９】
多くの用例において、ｋ値（すなわち、ノード間指数）は予め演算し、データベースに記憶させることができる。用例によってはｋ値を必要に応じてリアルタイムで演算してもよい。
【００３０】
次の例は、ＲＧＢからＣＭＹＫへの色空間変換応用例に関してデータベースがどのように構築されるかを示す。まず、任意のＲＧＢノードとそれに対応する好適なＣＭＹＫ値のテーブルを作成する。好適なＣＭＹＫ値とは、特定のマーキングエンジンに適用されると、対応するＲＧＢ値を最適に再現するものである。テーブルの内容は、マーキングエンジンの出力の特定のポイント（複数）の実際のカラー値を測定する精密機器を用いて試行錯誤的な実験によって決定することができる。テーブルが作成されると、選択されたＲＧＢポイントのセットについて、ＣＭＹＫ値を得るためにテーブルの内容に対して上述した四面体法などの補間法を利用することができる。これらのＲＧＢポイント（複数）は、任意の２つの隣接するＲＧＢポイント間の間隔が２の整数乗の数となるように選択される。選択されたＲＧＢノード及びそれらの対応するＣＭＹＫ値のみを使用してデータベースが作成される。
【００３１】
図４は、本発明のシステムの１つの実施形態４００のブロック図である。システム４００は、データベース４１０、検索モジュール４２０及び演算モジュール４３０を含む。演算モジュール４３０は、組合せモジュール４３２、シフトモジュール４３４及び乗算モジュール４３６を含む。
【００３２】
データベース４１０は、既知ノード、対応する既知ノード関数値及びノード間指数のリストを記憶している。既知ノードは、任意の２つの隣接する既知ノード間の距離が２の整数乗の数となるように位置される。リストの境界に位置しない既知ノードは、各々、対応する既知ノードとそれぞれの隣接既知ノードとの間の各距離の、底を２とした対数を表す２つのノード間指数と関連づけられる。
【００３３】
検索モジュール４２０は、入力ノードがベースノードと、ベースノードに隣接する第二のノードの間に位置するよう、データベースからベースノードを検索する。検索方向は、入力ノードの上下に関係なく、起点位置に基づいてプログラム可能である。
【００３４】
組合せモジュール４３２は、入力ノードとベースノードの差（及び第二のノード関数値とベースノード関数値の差ΔＶを演算する。シフトモジュール４３４は、δをｋ位置分（ｋは第二のノードについてベースノードと関連したノード間指数）右にシフトする。乗算モジュール４３６は、シフトされたδと差ΔＶを乗算し、積値を出力する。組合せモジュール４３２は、ベースノード関数値を得られた積値と組み合わせ、入力ノードの関数値Ｖ（ｘ）を生成する。
【００３５】
図４に示すように、演算モジュール４３０はデータベースと通信してもよい。これは、検索モジュール４２０が検索により得た全データを演算モジュール４３０に送らない場合に当てはまる。例えば、検索モジュール４２０は、ベースノードのノードインデックスのみを送ることもできる。演算モジュールは、送られたノードインデックスを利用して、データベース４１０で他のデータをルックアップする。検索モジュール４２０が演算モジュール４３０に全ての所要データを送る実施形態では、演算モジュール４３０はデータベース４１０にアクセスする必要はない。
【００３６】
第一実施形態では、データベース４１０は、既知ノードに対応するノードインデックス、既知ノード、対応するノード関数値及びノード間指数を含む、１つのルックアップテーブルを含む。
【００３７】
第二実施形態では、ノード間指数はルックアップテーブルに記憶されず、必要に応じて算出される。
【００３８】
第三実施形態では、データベース４１０は、メインルックアップテーブル及びエキストラルックアップテーブルを含む。メインルックアップテーブルは、既知ノードに対応するノードインデックス及びこれに対応するノード関数値を含む。エキストラルックアップテーブルは、既知ノードに対応するノードインデックス、既知ノード及びノード間指数を含む。
【００３９】
ノード間指数は、任意の２つの隣接ノード間の距離の、底を２とした対数である。
【００４０】
【数４】
2004030608.tif 000006
【００４１】
このエキストラルックアップテーブルを、色空間の各次元と関連したメインルックアップテーブルに加えて使用することができる。メインルックアップテーブルは、従来のルックアップテーブルと同様に、既知ノードに対応するノードインデックス及び対応するノード関数値を含む。従来の補間法ではノード間隔が一定であるため、従来のルックアップテーブルはノードインデックスのみを含み、ノード値は含まない。（メインルックアップテーブル及びエキストラルックアップテーブルを使用する）このような実施形態では、ベースノードの検索はまずエキストラルックアップテーブルで行われる。得られたベースノードインデックスを利用して、メインルックアップテーブルのベースノード関数値と隣接ノードの関数値がルックアップされる。
【００４２】
図５は、本発明の新規なアーキテクチャで使用できる小さいエキストラルックアップテーブルの一例を示す。以下の例示的な擬似コードは、所与の入力ｘに対し、補間出力Ｖ０がどのように演算されるかを説明している。この擬似コードで使用する二分探索アルゴリズムは、ベースノードを探索するサーチエンジンとして利用できる多くの周知のサーチアルゴリズムの一例である。
【００４３】
【数５】
2004030608.tif 000007
【００４４】
理論上、本発明のアーキテクチャは、任意のビット−精度入力を任意のビット−精度出力にマッピングすることができる。ルックアップテーブルでは入力と出力が表にされているので、任意のビット−精度表現をテーブルに収容することができる。実際には、ビット−精度の選択は、信号（色）を表示するのに使われるビット数及び実施コストに応じて異なる。本発明の新規なアーキテクチャでは、ビット−精度の選択に制限を設けない。
【００４５】
図５は、（ノード値カラムに＊で示す）起点０の付近に密度の高いサンプルを必要とする色空間変換の一例を示す。起点に近いノードでは、ノード間隔が、起点から遠いノードに比べて狭くなっている点に注意されたい。図５では、ノード間隔は起点付近では４、起点から離れるに従い８、１６、３２となっている。ＲＧＢ入力色空間を用いる（実際には平方根ルールが使われることが多い）場合には、このようなノード分布が望ましいことがわかっている。図５の「指数」カラムの行はノードインデックス及びノード値カラムの行と位置合わせされていない。これは、ルックアップテーブルの境界に位置しない各ノードが２つのノード間指数に関連づけられることを示している。例えば、ノードインデックスが２、ノード値が８であるノードは、隣接するノードインデックスが１、ノード値が４であるノードに対してはノード間指数２に、ノードインデックスが３、ノード値が１６であるノードについてはノード間指数３に関連づけられている。なお、ノード値は、ノードの関数値ではなくノード自体を表している（ノード関数値はこのエキストラルックアップテーブルにではなく、メインルックアップテーブルに記憶されている）。図５は８ビットの数字で表された入力ノードに関して使用される。
【００４６】
図６は、図５に示した８ビット入力ではなく、１０ビット入力を適用したエキストラルックアップテーブルの一例を示している。図６でも、起点は０である。
【００４７】
場合により、システムは異なる入力色空間、例えばＣＩＥ（Ｌ，ａ，ｂ）、Ｆａｘ（Ｌ，ａ，ｂ）などをサポートする必要がある。ＣＩＥ（Ｌ，ａ，ｂ）では、ａ及びｂチャネルの起点は共に１２８である。Ｆａｘ（Ｌ，ａ，ｂ）では、ａチャネルの起点は１２８、ｂチャネルの起点は９６である。本発明の新規なアーキテクチャは非常に柔軟であり、起点が様々に異なる場合や、異なる入力色空間が必要である場合に、実施形態を変更することなくこれらを容易にサポートできる。それゆえに、アーキテクチャは実施においては不変且つ汎用である。異なるルックアップテーブルを使用すれば異なる要求を満たすことができる。
【００４８】
図７及び図８は、それぞれ起点が１２８及び９６の信号用のエキストラルックアップテーブルの一例を示す。図７のテーブルは、ＣＩＥ（Ｌ，ａ，ｂ）空間のａ，ｂチャネル、及びＦａｘ（Ｌ，ａ，ｂ）空間のａチャネルに対して使用される。図８のテーブルは、Ｆａｘ（Ｌ，ａ，ｂ）空間のｂチャンネルに対して使用される。Ｆａｘ（Ｌ，ａ，ｂ）空間については、図７に示したテーブルをａチャネル用にルックアップテーブルにロードし、次いでｂチャネル用に図８に示したテーブルを再ロードしてもよい。
【００４９】
本発明の新規な方法を、スキャナＲＧＢ入力をＣＩＥ（Ｌ，ａ，ｂ）カラー出力に変換するスキャナ色変換への応用でテストした。較正目標として、標準のＩＴＵ−８チャートを使用した。本発明の２の乗数によるノード間隔方式の性能を、従来の固定的直線ノード間隔方式の性能と比較するため、（より高密度な補間を行うべく）ノード数を２倍とした非直線ノード間隔の基準実施形態をベンチマークとして使用した。従来の方法と本発明の方法によりそれぞれ得られた出力ＣＩＥ−Ｌａｂ値と、ベンチマークにより得られた出力ＣＩＥ−Ｌａｂ値との間の色差信号ΔＥによって、変換精度を測定した。
【００５０】
従来の固定的直線ノード間隔方式と本発明の新規な２の乗数のノード間隔方式の両方について、ノード数を同一とし、１７×１７×１７のルックアップテーブルと四面体補間を利用した。非常に高密度な補間を行う基準実施形態について、非直線的な立方根ノード間隔とした３２×３２×３２のルックアップテーブルを使用した。これらの２つの方法のノード位置を次に示す。
直線：０　１６　３２　４８　６４　８０　９６　１１２　１２８　１４４　１６０　１７６　１９２　２０８　２２４　２４０　２５５
２乗：０　４　８　１６　３２　４８　６４　８０　９６　１１２　１２８　１４４　１６０　１７６　１９２　２２４　２５５
【００５１】
直線ノード間隔方式と２の乗数ノード間隔方式について得られた平均ΔＥは、それぞれ２．６７、１．５３であった。この実験で、本発明の新規な２の乗数アーキテクチャは、固定的直線ノード間隔アーキテクチャに比べて変換精度が著しく高く、且つ余分な演算量が少なくて済むことがわかった。また、この実験により、本発明の方法をスキャナ色空間変換に応用すると、従来の方法と比べて色の忠実度が約２倍に向上することがわかった。このように、新規な２の乗数ノード間隔アーキテクチャは、柔軟性と複雑性の間で良好なトレードオフ（バランスの取れた考量）をもたらす。本発明のアーキテクチャは、固定的直線ノード間隔アーキテクチャとは異なり、画像品質要求を更に満たすべく、非直線ノード間隔を柔軟に選択することが可能である。また、本発明の新規なアーキテクチャは、完全にプログラム可能なノードアーキテクチャに比べて単純で、実施上の費用対効果が大きい。
【００５２】
特定の例示的実施形態を詳述し、添付図面に示したが、これらの実施形態はあくまで例であり、包括的な発明を制限するものではない。包括的な発明の範囲から逸脱することなく、本発明の上記の又は他の実施形態に種々の修正を加えることができる。ゆえに、本発明は開示された特定の実施形態や配列に限定されず、請求の範囲で定義される本発明の範囲及び精神から逸脱しない変更、改変及び修正は全て本発明に含まれる。
【図面の簡単な説明】
【図１】三直線補間の３つのステップを示す図である。
【図２】１つの次元における補間ステップを示す図である。
【図３】本発明の方法の一実施形態を示すフローチャートである。
【図４】本発明のシステムの一実施形態を示すブロック図である。
【図５】本発明の新規なアーキテクチャにおいて、メインルックアップテーブルと連動させて使用できる小さいエキストラルックアップテーブルの一例を示す図である。
【図６】図５に示す８ビット入力ではなく、１０ビット入力を用いたエキストラルックアップテーブルの一例を示す図である。
【図７】１２８を起点とする信号用の例示的なルックアップテーブルを示す図である。
【図８】９６を起点とする信号用の例示的なルックアップテーブルを示す図である。
【図１】
2004030608.tif 000008
【図２】
2004030608.tif 000009
【図３】
2004030608.tif 000010
【図４】
2004030608.tif 000011
【図５】
2004030608.tif 000012
【図６】
2004030608.tif 000013
【図７】
2004030608.tif 000014
【図８】
2004030608.tif 000015