(57)【要約】入力点を含む面体を計算する技術をインプリメントする方法、装置、およびプログラム製品。ｎ個のカラー成分を有するカラーを表す入力カラー値は受信される。ｎ次元格子として編成されるカラールックアップテーブルは受信される。ここで、ｎはカラールックアップテーブルにおける入力チャネル数で、カラールックアップテーブルにおける各エントリは格子における頂点であり、カラールックアップテーブルは、入力値の周辺にｎ次元立方体を形成する２ｎ個の近辺格子点を有し、カラールックアップテーブルは、各格子点における出力カラー値を規定する。ｎ次元立方体の２ｎ個の頂点からのｎ＋１個の頂点は、計算され、ｎ＋１個の頂点は、入力値を囲む囲み面体を規定する。ここで、ｎ＋１個の頂点を計算する命令はブランチ演算を実行しない。囲み面体は、入力値から出力値を計算するために使用される。
2008505533.tif 000002
【特許請求の範囲】
【請求項１】
情報キャリアにおいて実際に実施されるコンピュータプログラム製品であって、
ｎ個のカラー成分を有するカラーを表す入力値を受信することと、
ｎ次元格子として編成されたカラールックアップテーブルを受信し、ここで、ｎは、該カラールックアップテーブルの入力チャネル数で、該カラールックアップテーブルへの各エントリは該格子の頂点にあり、該カラールックアップテーブルは該入力値の周辺にｎ次元立方体を形成する２ｎ個の近辺格子点を有し、該カラールックアップテーブルは各格子点における出力カラー値を規定し、および、該カラールックアップテーブルは、各次元に対する格子点間のスペーシングを有し、ｋ番目の次元用の該スペーシングは、該ｋ番目の次元における近辺格子点であり、その他のすべての次元において同一の格子座標を有する該カラールックアップテーブルにおけるエントリ間の距離である、該カラールックアップテーブルを受信することと、
該カラールックアップテーブルにおける該入力値を囲む囲み面体を規定するｎ個の頂点のアドレスと、開始頂点と呼ばれすべての入力チャネルにおいて最低値を有する立方体頂点である該囲み面体を規定するもう一方の頂点で、囲み面体の各頂点は該カラールックアップテーブルにおけるｎ次元立方体の頂点である、他方の頂点のアドレスを計算するためのスペーシングを使用することと、
該入力値から出力値を計算するための該囲み面体を使用することと
をデータ処理装置に行わせるように動作可能な命令を備える、コンピュータプログラム製品。
【請求項２】
ｓｐａｃｉｎｇ［ｋ］は、前記ｋ番目次元に対する格子点間スペーシングであり、
ｂａｓｅは、前記開始頂点であり、
ν［ｉ］は、前記入力チャネルｉの値であり、
関数（ａ＜ｂ）は、真の場合値１をリターンし、そうでない場合値０をリターンし、各頂点ｉのアドレスは、等式
【数１】
2008505533.tif 000014
ａｄｄｒｅｓｓ１［ｉ］＝ａｄｄｒｅｓｓ０［ｉ］＋ｓｐａｃｉｎｇ［ｉ］
を満足するように計算される、請求項１に記載のコンピュータプログラム製品。
【請求項３】
ｂａｓｅ［ｊ］は、前記開始点の前記アドレスにおける出力チャネルｊの値を表し、
（ａｄｄｒｅｓｓ［ｉ］）［ｊ］はアドレス値ａｄｄｒｅｓｓ［ｉ］における出力チャネルｊの値を表し、
ｏｕｔｐｕｔ［ｊ］はチャネルｊの出力値であり、
各入力値に対する該出力値は等式
【数２】
2008505533.tif 000015
を満足するように計算される、請求項２に記載のコンピュータプログラム製品。
【請求項４】
ａｄｄｒｅｓｓ［ｉ］＝ｂａｓｅ＋ｏｆｆｓｅｔ［ｉ］になるように、前記頂点アドレスはオフセットを利用することによって計算される、請求項１に記載のコンピュータプログラム製品。
【請求項５】
ｓｐａｃｉｎｇ［ｋ］は、前記ｋ番目次元に対する格子点間のスペーシングであり、
ν［ｉ］は、前記入力チャネルｉの値であり、
関数（ａ＜ｂ）は、真の場合値１をリターンし、そうでない場合値０をリターンし、各頂点ｉの前記オフセットは等式
【数３】
2008505533.tif 000016
を満足するように計算される、請求項４に記載のコンピュータプログラム製品。
【請求項６】
ｂａｓｅ［ｊ］は前記開始点の前記アドレスにおける出力チャネルｊの値を表し、
（ａｄｄｒｅｓｓ［ｉ］）［ｊ］はアドレス値ａｄｄｒｅｓｓ［ｉ］における出力チャネルｊの値を表し、
ｏｕｔｐｕｔ［ｊ］はチャネルｊの出力値であり、
各入力値に対する該出力値は等式
【数４】
2008505533.tif 000017
を満足するように計算される、請求項５に記載のコンピュータプログラム製品。
【請求項７】
前記頂点の前記アドレスは、一度に一つの入力チャネルずつ計算される、請求項１に記載のコンピュータプログラム製品。
【請求項８】
前記頂点の前記アドレスは、並行して計算される、請求項１に記載のコンピュータプログラム製品。
【請求項９】
カラー成分ｎの数は、２以上の任意の整数値である、請求項１に記載のコンピュータプログラム製品。
【請求項１０】
前記入力チャネル値の順序は、ソートされない、請求項１に記載のコンピュータプログラム製品。
【請求項１１】
情報キャリアにおいて実際に実施されるコンピュータプログラム製品であって、
ｎ個のカラー成分を有するカラーを表す入力カラー値を受信することと、
ｎ次元格子として編成されたカラールックアップテーブルを受信し、ここで、ｎは、該カラールックアップテーブルの入力チャネル数で、該カラールックアップテーブルへの各エントリは該格子の頂点にあり、該カラールックアップテーブルは該入力値の周辺にｎ次元立方体を形成する２ｎ個の近辺格子点を有し、該カラールックアップテーブルは各格子点における出力カラー値を規定することと、
該ｎ次元立方体の２ｎ個の頂点からのｎ＋１個の頂点を計算することであって、該ｎ＋１個の頂点は該入力値を囲む囲み面体を規定し、ここで、該ｎ＋１頂点を計算する命令はブランチ演算を実行しない、該ｎ＋１個の頂点を計算することと、
該入力値から出力値を計算するために、該囲み面体を使用することと
をデータ処理装置に行わせるように動作可能な命令を備える、コンピュータプログラム製品。
【請求項１２】
前記頂点の前記アドレスは、一度に一つの入力チャネルずつが計算される、請求項１１に記載のコンピュータプログラム製品。
【請求項１３】
前記頂点の前記アドレスは、並行して計算される、請求項１１に記載のコンピュータプログラム製品。
【請求項１４】
カラー成分の数ｎは、２以上の任意の整数値である、請求項１１に記載のコンピュータプログラム製品。
【請求項１５】
前記入力チャネル値の順序は、ソートされない、請求項１１に記載のコンピュータプログラム製品。
【請求項１６】
情報キャリアにおいて実際に実施されるコンピュータプログラム製品であって、
ｎ個のカラー成分を有するカラーを表す入力値を受信することと、
ｎ次元格子として編成されたカラールックアップテーブルを受信し、ここで、ｎは、該カラールックアップテーブルの入力チャネル数で、該カラールックアップテーブルへの各エントリは該格子の頂点にあり、該カラールックアップテーブルは該入力値の周辺にｎ次元立方体を形成する２ｎ個の近辺格子点を有し、該カラールックアップテーブルは各格子点における出力カラー値を規定することと、
すべてのチャネルｉに対する該面体頂点のアドレスの計算をすることであって、ここで、該面体頂点のアドレスは該入力値を囲む面体を規定し、チャネルｉの値１用に使用する該頂点の該アドレスは、チャネルｉの値０用に使用する該頂点の該アドレスを計算することによって、およびチャネルｉに対する該頂点間のアドレススペースにおける差を加算することによって決定される、アドレスの計算をすることと
をデータ処理装置に行わせるように動作可能な命令を備える、コンピュータプログラム製品。
【請求項１７】
前記囲み面体の前記面体頂点の前記アドレスを利用することによって、前記入力値に対応する出力値に対する出力カラー座標を補間すること
をデータ処理装置に行わせるように動作可能な命令をさらに備える、請求項１６に記載のコンピュータプログラム製品。
【請求項１８】
ｎ個のカラー成分を有するカラーを表す入力値を受信する手段と、
ｎ次元格子として編成されるカラールックアップテーブルを受信する手段であって、ここで、ｎは該カラールックアップテーブルにおける入力チャネル数で、該カラールックアップテーブルにおける各エントリは該格子の頂点であり、該カラールックアップテーブルは前記入力値の周辺にｎ次元立方体を形成する２ｎ個の近辺格子点を有し、該カラールックアップテーブルは各格子点において出力カラー値を規定し、および該カラールックアップテーブルは各次元に対する格子点間のスペーシングを有し、ｋ番目の次元のスペーシングは該ｋ番目の次元における近辺格子点であり、その他のすべての次元において同一の格子座標を有する該カラールックアップテーブルにおけるエントリ間の距離である、入力値を受信する手段と、
該入力値を囲む囲み面体を規定するｎ個の頂点のカラールックアップテーブルにおけるアドレスを計算するために該スペーシングを使用する手段あって、すべての入力チャネルにおける最低値を有する立方体頂点である該囲み面体を規定する他方の頂点であり、該囲み面体の各頂点は該カラールックアップテーブルにおけるｎ次元立方体の頂点である、他方の頂点アドレスを計算するために使用する手段と、
該入力値から出力値を計算するために該囲み面体を使用する手段と
を備える、装置。
【請求項１９】
ｓｐａｃｉｎｇ［ｋ］は、前記ｋ番目の次元に対する格子点間の前記スペーシングであり、
ｂａｓｅは、前記開始頂点であり、
ν［ｉ］は、前記入力チャネルｉの値であり、
関数（ａ＜ｂ）は、真の場合値１をリターンし、そうでない場合値０をリターンし、各頂点ｉの前記アドレスは、等式
【数５】
2008505533.tif 000018
ａｄｄｒｅｓｓ１［ｉ］＝ａｄｄｒｅｓｓ０［ｉ］＋ｓｐａｃｉｎｇ［ｉ］
を満足するように計算される、請求項１８に記載の装置。
【請求項２０】
ｂａｓｅ［ｊ］は、前記開始点の前記アドレスにおける出力チャネルｊの値を表し、
（ａｄｄｒｅｓｓ０［ｉ］）［ｊ］は、前記頂点のアドレスａｄｄｒｅｓｓ０［ｉ］における出力チャネルｊの値を表し、
（ａｄｄｒｅｓｓ１［ｉ］）［ｊ］は、前記頂点のアドレスａｄｄｒｅｓｓ１［ｉ］における出力チャネルｊの値を表し、
ｏｕｔｐｕｔ［ｊ］は、チャネルｊの出力値であり、
各入力値に対する該出力値は等式
【数６】
2008505533.tif 000019
を満足するように計算される、請求項１９に記載の装置。
【請求項２１】
ａｄｄｒｅｓｓ［ｉ］＝ｂａｓｅ＋ｏｆｆｓｅｔ［ｉ］になるように、前記頂点アドレスは前記オフセットを利用することによって、計算される、請求項１８に記載の装置。
【請求項２２】
ｓｐａｃｉｎｇ［ｋ］は、前記ｋ番目の次元に対する格子点間のスペーシングであり、
ν［ｉ］は、前記入力チャネルｉの値であり、
関数（ａ＜ｂ）は、真の場合値１をリターンし、そうでない場合値０をリターンし、各頂点ｉの前記オフセットは等式
【数７】
2008505533.tif 000020
を満足するように計算される、請求項２１に記載の装置。
【請求項２３】
ｂａｓｅ［ｊ］は、前記開始点の前記アドレスにおける出力チャネルｊの値を表し、
（ａｄｄｒｅｓｓ［ｉ］）［ｊ］は、アドレス値ａｄｄｒｅｓｓ［ｉ］における出力チャネルｊの値を表し、
ｏｕｔｐｕｔ［ｊ］は、チャネルｊの出力値であり、
各入力値に対する該出力値は、等式
【数８】
2008505533.tif 000021
を満足するように計算される、請求項２２に記載の装置。
【請求項２４】
前記頂点の前記アドレスは、一度に一つの入力チャネルずつ計算される、請求項１８に記載の装置。
【請求項２５】
前記頂点の前記アドレスは、並行して計算される、請求項１８に記載の装置。
【請求項２６】
カラー成分の数ｎは、２以上の任意の整数値である、請求項１８に記載の装置。
【請求項２７】
前記入力チャネル値の順序は、ソートされない、請求項１８記載の装置。
【請求項２８】
ｎ個のカラー成分を有するカラーを表す入力カラー値を受信する手段と、
ｎ次元格子として編成されるカラールックアップテーブルを受信する手段であって、ここで、ｎは該カラールックアップテーブルにおける入力チャネル数で、該カラールックアップテーブルにおける各エントリは該格子の頂点であり、該カラールックアップテーブルは前記入力値の周辺にｎ次元立方体を形成する２ｎ個の近辺格子点を有し、該カラールックアップテーブルは各格子点において出力カラー値を規定する、該カラールックアップテーブルを受信する手段と、
該ｎ次元立方体の２ｎ個の頂点からのｎ＋１個の頂点を計算する手段であって、該ｎ＋１個の頂点は該入力値を囲む囲み面体を規定し、ここで、該ｎ＋１頂点を計算する命令はブランチ演算を実行しない、該ｎ＋１個の頂点を計算する手段と、
該入力値から出力値を計算するために該囲み面体を使用する手段と
を備える、装置。
【請求項２９】
前記頂点の前記アドレスは、一度に一つの入力チャネルずつ計算される、請求項２８に記載の装置。
【請求項３０】
前記頂点の前記アドレスは、並行して計算される、請求項２８に記載の装置。
【請求項３１】
カラー成分の数ｎは、２以上の任意の整数値である、請求項２８に記載の装置。
【請求項３２】
前記入力チャネル値の順序は、ソートされない、請求項２８記載の装置。
【請求項３３】
ｎ個のカラー成分を有するカラーを表す入力カラー値を受信する手段と、
ｎ次元格子として編成されるカラールックアップテーブルを受信する手段であって、ここで、ｎは該カラールックアップテーブルにおける入力チャネル数で、該カラールックアップテーブルにおける各エントリは該格子の頂点であり、該カラールックアップテーブルは前記入力値の周辺にｎ次元立方体を形成する２ｎ個の近辺格子点を有し、該カラールックアップテーブルは各格子点において出力カラー値を規定する、該カラールックアップテーブルを受信する手段と、
すべてのチャネルｉに対する該面体頂点のアドレスの計算をする手段であって、ここで、該面体頂点のアドレスは該入力値を囲む面体を規定し、チャネルｉの値１用に使用する該頂点の該アドレスは、チャネルｉの値０用に使用する該頂点の該アドレスを計算することによって、およびチャネルｉに対する該頂点間のアドレススペースにおける差を加算することによって決定される、アドレスの計算をする手段と
を備える、装置。
【請求項３４】
前記囲み面体の前記面体頂点の前記アドレスを利用することによって、前記入力値に対応する出力値に対する出力カラー座標を補間する手段をさらに備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディジタルイメ−ジングに関する。
【背景技術】
【０００２】
ディジタルイメージの作業をしているとき、イメージを一つのカラースペ−スから第２のカラースペースへ変換、たとえば、ＲＧＢ（赤緑青）カラースペースからＣＭＹＫ（シアンマジェンタ黄黒）カラースペースへの変換がしばしば必要になる。カラー変換用に使用される多くの方法は、ｎが入力カラーチャネル数を表す、ｎ次元格子として編成されるルックアップテーブルを使用する。ルックアップテーブルにおける二つのエントリ間にある入力値に対する出力値を決定するために、ある種の補間技術が望ましい。
【０００３】
そのようなテーブルにおいて、２ｎ個の近辺格子点（ａｄｊａｃｅｎｔ  ｌａｔｔｉｃｅ）は、与えられた入力値の周辺にｎ次元立方体を形成し、その入力値に対する出力値が所望される。計算を容易にするため、すべてのチャネルにおける０をすべての入力チャネルにおける最低値を有する立方体の頂点（開始点と呼ばれる）にマップし、すべてのチャネルにおける１をすべての入力チャネルにおける最高値を有する立方体の頂点（終了点と呼ばれる）にマップするように、多くの方法は入力値を変換する。リニア補間として公知の方法は、出力値を計算するため、すべての２ｎ個の近辺格子点を使用する。しかしながら、この方法は、計算されるべき項の数がｍ×２ｎあるので、まったく遅い。ここで、ｍは出力チャネル数である。
【０００４】
面体方法において、立方体は、各々がｎ＋１個の頂点を有する面体として知られるｎ！副体積（ｓｕｂｖｏｌｕｍｅ）に再分割される。たとえば、６個の四面体は３個の入力チャネル用に使用され、２４個の四面体は、４個の入力チャネル用に使用される。開始点、終了点、およびこれらの２点間の線（立体の対角線）は、すべての面体によって共有される。入力点を囲む面体は、出力値を計算するために使用される。ｎ＋１個の頂点のみが使用されるので、出力値は、ｎ＋１個の項を計算するだけで得られ、これは、リニア補間方法を使用するよりはるかに速い。
【発明の開示】
【課題を解決するための手段】
【０００５】
（概要）
本発明は、特に、ｎが大きい場合入力点を含む面体の計算を速く行う一般的な方法のための技術をインプリメントする、コンピュータプログラム製品を含む、方法および装置を提供する。
【０００６】
一局面において、技術は以下の特徴を有する。ｎ個のカラー成分を有するカラーを表す入力値は受信される。ｎ次元格子として編成されるカラールックアップテーブルは受信され、ここで、ｎはカラールックアップテーブルにおける入力チャネル数で、カラールックアップテーブルにおける各エントリは格子の頂点であり、カラールックアップテーブルは入力値の周辺にｎ次元立方体を形成する２ｎ個の近辺格子点を有し、カラールックアップテーブルは各格子点において出力カラー値を規定し、およびカラールックアップテーブルは各次元に対する格子点間のスペーシングを有し、ｋ番目の次元のスペーシングはｋ番目の次元において近辺格子点でありその他のすべての次元において同一の格子座標を有するカラールックアップテーブルにおけるエントリ間の距離である。スペーシングは、入力値を囲む囲み面体（ｅｎｃｌｏｓｉｎｇ  ｈｅｄｒｏｎ）規定するｎ個の頂点のカラールックアップテーブルにおけるアドレスを計算するために使用され、すべての入力チャネルにおける最低値を有する立方体頂点である囲み面体を規定する他方の頂点であり、囲み面体の各頂点はカラールックアップテーブルにおけるｎ次元立方体の頂点である、他方の頂点アドレスを計算するために使用される。囲み面体は、入力値から出力値を計算するために使用される。
【０００７】
インプリメンテーションは、以下の一つ以上の特徴を含み得る。ベースは開始頂点である。ｓｐａｃｉｎｇ［ｋ］は、ｋ番目の次元の格子点間のスペーシングである。ν［ｉ］は、入力チャネルｉの値である。関数（ａ＜ｂ）は、真の場合値１を、他の場合０をリターンする。各頂点ｉのアドレスは、等式
【０００８】
【数９】
2008505533.tif 000003
および
ａｄｄｒｅｓｓ１［ｉ］＝ａｄｄｒｅｓｓ０［ｉ］＋ｓｐａｃｉｎｇ［ｉ］
を満足するように、計算される。ｂａｓｅ［ｊ］は、開始点のアドレスにおける出力チャネルｊの値を表す。（ａｄｄｒｅｓｓ０［ｉ］）［ｊ］は、頂点アドレス０［ｉ］のアドレスにおける出力チャネルｊの値を表す。（ａｄｄｒｅｓｓ１［ｉ］）［ｊ］は、頂点アドレス１［ｉ］のアドレスにおける出力チャネルｊの値を表す。ｏｕｔｐｕｔ［ｊ］は、チャネルｊ用の出力値である。各入力値に対する出力値は、等式
【０００９】
【数１０】
2008505533.tif 000004
を満足するように、計算される。頂点アドレスは、ａｄｄｒｅｓｓ［ｉ］＝ｂａｓｅ＋ｏｆｆｓｅｔ［ｉ］になるように、オフセットを利用することによって、計算される。各頂点ｉのオフセットは等式
【００１０】
【数１１】
2008505533.tif 000005
を満足するように、計算される。各入力値に対する出力値は等式
【００１１】
【数１２】
2008505533.tif 000006
を満足するように、計算される。頂点のアドレスは、一度に１入力チャネルについて計算される。頂点のアドレスは、パラレルに計算される。カラー成分ｎの数は、２より大きいかまたは２に等しい任意の整数値である。入力チャネル値の順序はソートされない。
【００１２】
別の局面において、本技術は、以下の特徴を有する。ｎ個のカラー成分を有するカラーを表す入力カラー値は受信される。ｎ次元格子として編成されたカラールックアップテーブルは受信され、ここで、ｎはカラールックアップテーブルにおける入力チャネル数であり、ルックアップテーブルにおける各エントリは格子の頂点であり、カラールックアップテーブルは、入力値の周辺にｎ次元立方体を形成する２ｎ個近辺格子点を有し、カラールックアップテーブルは、各格子点における出力カラー値を規定する。ｎ次元立方体の２ｎ個の頂点からのｎ＋１個の頂点は計算され、ｎ＋１個の頂点は入力値を囲む囲み面体を規定し、ここで、ｎ＋１個の頂点を計算する命令はブランチ演算を実行しない。囲み面体は、入力値から出力値を計算するために使用される。
【００１３】
インプリメンテーションは、以下の技術を一つ以上を含み得る。頂点のアドレスは、一度に一つの入力チャネルに対して計算される。頂点のアドレスは、並行して計算される。カラー成分ｎの数は、２より大きいかまたは２に等しい任意の値である。入力チャネル値の順序はソートされない。
【００１４】
別の局面において、本技術は、以下の特徴を有する。ｎ個のカラー成分を有するカラーを表す入力カラー値は受信される。ｎ次元格子として編成されたカラールックアップテーブルは受信され、ここで、ｎはカラールックアップテーブルにおける入力チャネル数であり、ルックアップテーブルにおける各エントリは格子の頂点であり、カラールックアップテーブルは、入力値の周辺にｎ次元立方体を形成する２ｎ個近辺格子点を有し、カラールックアップテーブルは、各格子点における出力カラー値を規定する。すべてのチャネルｉに対する面体頂点アドレスは計算され、ここで、面体頂点のアドレスは、入力値を囲む面体を規定し、チャネルｉの値１用に使用する頂点のアドレスは、チャネルｉの値０用に使用する頂点のアドレスを計算することによって、およびアドレススペースにおけるチャネルｉの頂点間の差を追加することによって決定される。
【００１５】
発明のインプリメンテーションは、以下の特徴の一つ以上を含み得る。
【００１６】
技術は、囲み面体の面体頂点アドレスを利用することによって、入力値に対応した出力値のための出力カラー座標の補間をさらに含む。
【００１７】
発明は、以下のメリットの一つ以上を実現するためにインプリメントされ得る。従来の補間方法に比較して、多次元カラーテーブルにおいてより速い補間が達成され得る。この補間は、４つ以上の次元を有するカラースペース用の従来のリニア補間よりはるかに速い。発明は、複数次元を有する任意の数の複合カラースペース用にインプリメントし易く、ソースカラースペースの次元数を知らなくてもコード化され得る。この補間を実行するに必要なコンピュータ命令数は非常に少ない。入力値を含む一つの面体用の頂点のアドレスのみが計算される必要がある。補間は、条件付きブランチなしに実行し得、このことは、単一命令複数データ処理（ＳＩＭＤ）のアーキテキチャで構成されるコンピュータプロセッサを使用するとき、効率性をさらに向上させる。
【００１８】
発明の一つ以上の実施形態の詳細は、添付の図面および以下の記述に述べられる。発明のその他の特徴、局面、およびメリットは、記述、図面、および特許請求の範囲から明らかとなる。
【００１９】
種々の図面にある同じ参照番号および記号は、同じ要素を示す。
【発明を実施するための最良の形態】
【００２０】
（詳細な説明）
図１に示すとおり、発明に従った第１のインプリメンテーション方法１００は、ｎ次元格子として編成されるカラールックアップテーブルを受信する（ステップ１０５）。そのようなカラールックアップテーブル（表２００）の簡単な例は、図２Ａに見つけられ得る。図２００は４つのテーブルセルを有し、二次元のソースカラースペースと一次元の宛先カラースペースとの間の変換を規定する。ソースカラースペースにおいて二つの入力カラー成分によって表される入力カラー２１０は、宛先カラー成分おいて表を使用して一つの出力カラー成分によって表される出力カラーに変換され得る。表は、基準ソースカラーのセットおよび基準宛先カラーの対応するセットを含む。基準ソースカラーおよび基準宛先カラーの概要は、下記の表１に見つけられる。
【００２１】
【表１】
2008505533.tif 000007
本例の表は、カラーを二次元のソースカラースペースから一次元の宛先カラースペースへマップする。しかしながら、ほとんどのデバイスは、三次元、四次元、またはさらにそれより高次元のカラースペースと共に動作する。上に提示されたカラーテーブルは、従って、例示としてのみとして見るべきである。カラーテーブルは、二つのカラースペース間のみのカラーマッピングに必ずしも限定する必要はない。いくつかのカラースペース間のマッピングは、大きな「多層」カラーテーブルに結合され得る。管理の観点からみると、多数のより小さなカラーテーブルよりむしろ、一つの大きな表を管理する方がより容易であり得る。
【００２２】
ｎ個のカラー成分を有するカラーを表す入力値は、受信される（ステップ１１０）。本例の目的のために、二次元の入力カラーＣｉｎ＝（１４，６）は、発明に従った処理を使用して、一次元の出力カラーＣｏｕｔに変換される必要があると想定されたい。テーブル２００における入力カラー２１０を含むテーブルセル２０５は、入力カラー成分値に基づき、位置づけられる。入力カラーを含むテーブルセルは、それぞれのセル次元についてセル当たりのカラー成分値の数で入力カラー成分値の各々を割ることによって、また除法の結果の整数部分を識別することによって見つけられる。この例において、各セルは２０×２０のカラー値を有し、それで、１４／２０＝０．７、および６／２０＝０．３である。これらの除法の両方の整数部分は、０に等しく、このことは、入力カラーは、Ｘ方向の第１のセル及びＹ方向の第１のセルに位置することを意味する。開始点は、各ソースカラーの最小値を有する入力カラーを含むセルの頂点である。本例において、点（０，０）が開始点である。セルは、各次元について同数のカラー成分値を有する必要はない。たとえば、二次元カラースペース用の表における各セルは、２０×２０のカラー値の代わりに１５×２０のカラー値を有し得る。
【００２３】
テーブルセルのコーナーに関する入力カラーの位置に対応する分数値のセットが、決定される（ステップ１１５）。本例において、決定分数値は、分数値が［０．．１］の範囲にあるテーブルの最後のセルを除いて、［０．．１［の範囲にあり、図２Ｂに示されるように、原点がセルの左下コーナーにありセルの長さ及び高さが１単位であるセルの局所座標系における座標値に対応する。記号［０．．１［は半閉間隔、すなわち、０を含むが１を含まず、［０．．１］は、０および１の両方を含む閉間隔を示す。
【００２４】
本例において、上記のとおり、入力値がセルにおける点の範囲［０．．１］にあるように、入力値は変換されている。入力カラー成分は（１４，６）で、カラーテーブルにおけるセルの次元は２０×２０のカラー値であるので、分数値またはセルの局所座標系における入力カラーの座標は、（０．７，０．３）である。これらの分数値は、チャネル値としても知られる。
【００２５】
図３は、コンピュータメモリにおけるアドレススペースに配置された３次元カラーテーブルの例である。本例において、アドレススペース３００は、最も速く変化するｘ値、次にｙ値、次にｚ値と共にリニアにアレンジされたｘ次元、ｙ次元、およびｚ次元用の値を含む。たとえば、特定のｙ値３２０およびｚ値３３０について、近辺ｘ値３１０のセットがある。ｙおよびｚが一定に保持される場合、ｘの各値に対してユニークなメモリアドレス３１５が存在する。同様のユニークなメモリアドレスは、ソースカラースペースにおける入力カラー成分ｘ、ｙ、およびｚのあらゆる組み合わせに関連する。一つのインプリメンテーションにおいて、このメモリアドレスは、特定の頂点に対する基準出力値が格納される場所である。換言すると、このメモリアドレスは、頂点一組（ｏｎｅ  ｖｅｒｔｅｘ  ｔｕｐｌｅ）を表す。この配置の結果として、ｘ次元（スペースｘ３１５）、ｙ次元（スペースｙ３２５）およびｚ次元（スペースｚ３３５）内のデータポイント間にスペーシングを入れるユニットがある。この明細書においては、近辺データポイント間のアドレススペースにおける距離の値は、チャネルｘ、ｙ、およびｚに対してそれぞれ、スペーシング［ｘ］、スペーシング［ｙ］、およびスペーシング［ｚ］と呼ばれる。一般に、アドレススペースにおける距離は、テーブルの次元数、アドレススペースにおいてテーブルが配置される方法、および、各テーブルセルにおいてカラー値がいくつ存在するかに依存する。
【００２６】
処理は、入力値を囲む面体を規定する頂点のアドレスを計算する（ステップ１２０）。補間するとき、チャネルｉの値０に対して使用する頂点のアドレスは、ａｄｄｒｅｓｓ０［ｉ］として示される。同様に、補間するとき、チャネルｉの値１に対して使用する頂点のアドレスは、ａｄｄｒｅｓｓ１［ｉ］として示される。従って、
【００２７】
【数１３】
2008505533.tif 000008
である。ここで、カラーテーブルにおいてｂａｓｅは開始点のアドレスで、ν［ｉ］は入力チャンネルｉ用のチャネル値である。ここで、範囲［０．．１］はテーブルセルに広がり、上記のとおり、ｓｐａｃｉｎｇ［ｋ］はアドレススペースにおけるチャネルｋに関する頂点間の距離である。入力チャネルｉは、１からｎまでに及ぶ。関数（ａ＜ｂ）は、ａ＜ｂの場合、値１をリターンし、その他の場合、０をリターンし、また、関数（ａ≦ｂ）は、ａ≦ｂの場合、値１をリターンし、その他の場合、０をリターンする。代わりに、範囲［０．．１］について関数（ａ＜ｂ）と同じ結果をリターンする任意の関数を使用し得る。たとえば、ｉｎｔ（ｂ−ａ＋１）もまた、ａ＜ｂの場合、値１をリターンし、その他の場合、０をリターンする。
【００２８】
項（ν［ｉ］≦ν［ｋ］）または（ν［ｉ］＜ν［ｋ］）のどちらが使用されてもこの方法を使用すると全く同じ結果となるが、＜および≦オペランドのミックスは、性能面でメリットを提供する。（ν［ｉ］＜ν［ｋ］）は、（ν［ｉ］≦ν［ｋ］）の逆であり、ｉおよびｋのループは、これらの関数のすべての組み合わせを起動するので、最適化するコンパイラまたはパラレルハードウェアの配置は、他の方法で必要であろう計算の半分を実行することによって、この逆関係のメリットを受け得る。
【００２９】
チャネルｉの値１用に使用する頂点のアドレスは、
ａｄｄｒｅｓｓ１［ｉ］＝ａｄｄｒｅｓｓ０［ｉ］＋ｓｐａｃｉｎｇ［ｉ］
である。
【００３０】
処理は、すべての出力チャネルｊに対して入力値から補間出力値を計算するために囲みの面体を使用する（ステップ１２５）。出力チャンネルｊは１からｍの範囲に及ぶ。各チャネルに対する補間出力値は、関数
【００３１】
【数１４】
2008505533.tif 000009
を適用することによって、計算される。ここで、（ａｄｄｒｅｓｓ０［ｉ］）［ｊ］および（ａｄｄｒｅｓｓ１［ｉ］）［ｊ］は、ａｄｄｒｅｓｓ０［ｉ］およびａｄｄｒｅｓｓ１［ｉ］それぞれにおける頂点における出力チャネルｊの内容を表す。同様に、ｂａｓｅ［ｊ］は、開始点のアドレスにおける出力チャネルｊの値を表す。従って、ｏｕｔｐｕｔ［ｊ］は出力チャネルｊの補間チャネル値である。
【００３２】
以下の表における擬似コードは、発明の代替的なインプリメンテーションを示す。
【００３３】
【数１５】
2008505533.tif 000010
示された擬似コードが「条件」文（“ｉｆ”  ｓｔａｔｅｍｅｎｔ）を含んでいるとしても、処理は、どんな条件ブランチも含まないコードでインプリメントし得る。理由は、これらの条件文は、論理計算に減少し得、その後に１または０の数によって掛け算されるからである。たとえば、コードのセクション、
ｉｆ（ν［ｉ］＜＝ν［ｋ］）
ａｄｄｒｅｓｓ０［ｉ］＋＝ｓｐａｃｉｎｇ「ｋ」；
は、以下の文によって置き換え得る。
ａｄｄｒｅｓｓ０［ｉ］＋＝（ν［ｉ］＜＝ν［ｋ］）
ここで、式（ν［ｉ］＜＝ν［ｋ］）は、真の場合１の値をリターンし、偽の場合０の値をリターンする。
【００３４】
処理はまた、ループなしでもインプリメントし得る。このことは、ｎが小さい場合特に真である。さらに上記のように、ループなしで、コンパイラは、（ｓ＜ｔ）＝！（ｔ＜＝ｓ）なので、比較の半分を速やかに最適化する。たとえば、ｎ＝４およびｍ＝３のとき、以下の擬似コードが、どのループもなしに、インプリメントし得る。
【００３５】
【数１６】
2008505533.tif 000011
上の例において、ｃ００００は、開始点を表し、ｓｐｃＳ，ｓｐｃＴ、ｓｐｃＵ、およびｓｐｃＶは、４つの入力チャネルの各々のコーナースペーシング定数を表す。
【００３６】
条件ブランチの欠如は、特に、単一命令複数データ処理（ＳＩＭＤ）のアーキテキチャを利用するプロセッサにとって、この処理のインプリメンテーションの効率性を大幅に改善する。これらの処理の処理時間は、ｎ×（ｎ＋ｍ）に比例し、これは、ｎが大きな値の場合、処理時間がｍ×２ｎに比例するリニア補間方法よりはるかに速い。すべての面体頂点が計算されなければならないために、ｎ！×（ｎ＋ｍ）のコードサイズを必要とする面体補間方法と比較し、これらの処理のインプリメントに必要なコードサイズは、ｎ×（ｎ＋ｍ）である。
【００３７】
代替のインプリメンテーションにおいて、メモリオフセットは、メモリアドレスを使用する代わりに、ａｄｄｒｅｓｓ［ｉ］＝ｂａｓｅ＋ｏｆｆｓｅｔ［ｉ］のように、計算され得る。この代替のインプリメンテーションを使用して、
【００３８】
【数１７】
2008505533.tif 000012
およびｏｆｆｓｅｔ１［ｉ］＝ｏｆｆｓｅｔ０［ｉ］＋ｓｐａｃｉｎｇ［ｉ］である。従って、各チャネルｊの補間出力値は、関数
【００３９】
【数１８】
2008505533.tif 000013
を適用することによって計算される。メモリアドレスよりはむしろオフセットを使用することは、ある種のタイプのコンピュータプロセッサに対して性能面でメリットを提供し得る。
【００４０】
上記の発明のインプリメンテーションは、４つを超える入力カラーコンポーネントを有する入力カラーの表処理用に、特に機能的で効率的である。同時にプロセッサは、二次元のみからスタートし、任意の次元数に対してうまく動作する。
【００４１】
本明細書に記載された発明および機能動作のすべては、ディジタル電子回路網、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせにおいてインプリメントされ得る。発明は、コンピュータプログラム製品、すなわち、情報キャリアにおいて実際に実施されるコンピュータプログラムとして実施され得る。たとえば、プログラマブルプロセッサ、一つまたは複数のコンピュータなどのデータ処理装置による実行またはその動作の制御のための機械可読記憶装置または伝送信号などの情報キャリアにおいてである。コンピュータプログラムは、コンパイル言語または翻訳言語などのプログラミング言語の任意の形式で書かれ得、スタンドアローンプログラムまたはモジュールとしてのコンポーネント、サブルーティン、またはコンピュータ環境における使用に適するその他のユニットを含む任意の形式で配置（ｄｅｐｌｏｙ）され得る。コンピュータプログラムは、一サイトおいてまたは複数のサイト全体に分布され、および、通信ネットワークによって相互接続される一つまたは複数のコンピュータ上で実行するように配置される。
【００４２】
発明の方法ステップは、コンピュータプログラムを実行する一つ以上のプログラマブルプロセッサによって実行され得、入力データ上で動作し、出力を生成することによって発明の機能を実行する。方法ステップはまた、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）などの特定の目的論理回路網によって実行され、また発明の装置が、特定の目的論理回路網としてインプリメントされ得る。
【００４３】
コンピュータプログラムの実行用に適するプロセッサは、例として、汎用および特定の目的マイクロプロセッサの両方、および任意の種類のディジタルコンピュータの任意の一つ以上のプロセッサを含む。一般に、プロセッサは、読出し専用メモリまたはランダムアクセスメモリまたはその両方から命令とデータを受信する。コンピュータの不可欠の要素は、命令を実行するためのプロセッサおよび命令およびデータを格納するための一つ以上のメモリデバイスである。一般に、コンピュータはまた、磁気、光磁気ディスクまたはその両方などのデータを格納するための一つ以上の大容量記憶デバイスを含み、または大容量記憶デバイスからデータを受信し、それにデータを転送し、またはその両方を行うように動作結合される。コンピュータ命令およびデータを実施するに適した情報キャリアは、不揮発性メモリの全形式を含み、不揮発性メモリは、例として、次のものを含む。ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスク。プロセッサおよびメモリは、特定目的論理回路網によって補足され、それに組み込まれる。
【００４４】
ユーザーとの対話を提供するために、発明は、ユーザーに情報を表示するためのＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）モニタなどの表示装置、ユーザーが、コンピュータに入力する手段であるマウスまたはトラックボールなどのキーボードおよびポインティングデバイスを有するコンピュータ上でインプリメントされ得る。ユーザーとの対話を提供するために、その他の種類のデバイスも同様に使用し得る。たとえば、ユーザーに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、触覚フィードバックなどの感覚フィードバックの任意の形式であり得、ユーザーからの入力は、音響入力、言語入力、または触覚入力を含む任意の形式で受け取れ得る。
【００４５】
発明は、以下のコンピュータシステムにおいてインプリメントされ得る。データサーバーとしてなどの後置コンポーネントを含むコンピュータシステム、またはアプリケーションサーバーなどのミドルウェアコンポーネントを含むコンピュータシステム、または、図表のユーザーインターフェースを有するクライアントコンピュータまたは本発明のインプリメンテーションとのユーザーの対話を可能にする手段のウェブブラウザなどの前置コンポーネントを含むコンピュータシステム、またはそのような後置、ミドルウェアまたは前置コンポーネントの任意の組み合わせを含むコンピュータシステムである。システムのコンポーネントは、任意の形式、または通信ネントワークなどのディジタルデータ通信媒体によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク（「ＬＡＮ」）およびインターネットなどの広域ネットワーク（「ＷＡＮ」）を含む。
【００４６】
コンピュータシステムは、クライアントおよびサーバーを含み得る。クライアントおよびサーバーは、一般に、互い遠くにあり、代表的には通信ネットワークを介して対話する。クライアントおよびサーバーの関係は、それぞれのコンピュータ上で、実行し互いにクライアント−サーバー関係を有するコンピュータプログラムによって生じる。
【００４７】
発明は、特定の実施形態の観点から記述されている。その他の実施形態は、以下の特許請求の範囲内である。たとえば、発明のステップは、異なる順序で実施され得、それでも望ましい結果が達成し得る。
【図面の簡単な説明】
【００４８】
【図１】図１は、発明に従った補間方法の第１のインプリメンテーションを記述するフローチャートである。
【図２Ａ】図２Ａは、二次元ソースカラースペースを一次元宛先カラースペースへマップする簡単なカラーテーブルの概略図である。
【図２Ｂ】図２Ｂは、図２Ａに示されたカラーテーブルにおけるテーブルセルの概略図である。
【図３】図３は、リニアアドレススペースにおいて配置された三次元カラーテーブルの表示である。
【図１】
2008505533.tif 000022
【図２Ａ】
2008505533.tif 000023
【図２Ｂ】
2008505533.tif 000024
【図３】
2008505533.tif 000025
【国際調査報告】
2008505533.tif 000026
2008505533.tif 000027