JP2004341765A - 3次元ルックアップテーブルを用いたデータ変換方法および装置 - Google Patents
3次元ルックアップテーブルを用いたデータ変換方法および装置 Download PDFInfo
- Publication number
- JP2004341765A JP2004341765A JP2003136801A JP2003136801A JP2004341765A JP 2004341765 A JP2004341765 A JP 2004341765A JP 2003136801 A JP2003136801 A JP 2003136801A JP 2003136801 A JP2003136801 A JP 2003136801A JP 2004341765 A JP2004341765 A JP 2004341765A
- Authority
- JP
- Japan
- Prior art keywords
- value
- instruction
- data conversion
- tetrahedral interpolation
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
Abstract
【課題】本発明は3次元ルックアップテーブルと4面体補間によるデータ変換に適した命令を使用する。これによって、特開2000ー196903の方法を補完し、入力データを所定の位置に配置する手段においても条件分岐命令を必要としないような、ソフトウェアによるデータ変換方法と装置を提供するものである。このようなデータ変換はたとえば、RGB色空間からCMYK色空間への変換に利用できる。
【解決手段】本発明による方法では、マイクロプロセッサに3個の入力値を比較するための命令を用意する。3個の整数値の入力から、そのうちの最大値、中央値、最小値を得る命令を使用することで、4面体補間に必要な情報を簡単に求めることができるようになる。
【選択図】 図1
【解決手段】本発明による方法では、マイクロプロセッサに3個の入力値を比較するための命令を用意する。3個の整数値の入力から、そのうちの最大値、中央値、最小値を得る命令を使用することで、4面体補間に必要な情報を簡単に求めることができるようになる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
3次元ベクトルの入力に対してルックアップテーブル(以下LUT)と4面体補間を適用して出力値を求めるデータ変換方法、たとえばRGB色空間からCMYK色空間への変換方法などに関する。
【0002】
【従来の技術】
特開平5−141489ではLUTを用いたデータ変換装置が提案されている。また、特開2000−196903ではソフトウェアによる高速な変換方法が提案されている。
【0003】
【発明が解決しようとする課題】
特開2000−196903では、大小関係によって決まる所定の位置に配置することで、以後の条件分岐処理を必要としない処理方法が提案されているが、前提である入力データを所定の位置に配置する手段が必要である。ソフトウェアによる処理では、従来は図3のように、場合分けのための条件分岐命令を使用する方法が一般的であった。
【0004】
一般にソフトウェアの処理では条件分岐命令の実行は比較的時間がかかるので、条件分岐命令を使用せずに補間に必要な情報を生成することが望ましい。
【0005】
本発明は3次元ルックアップテーブルと4面体補間によるデータ変換に適した命令を使用する。これによって、特開2000−196903の方法を補完し、入力データを所定の位置に配置する手段においても条件分岐命令を必要としないような、ソフトウェアによるデータ変換方法と装置を提供するものである。このようなデータ変換はたとえば、RGB色空間からCMYK色空間への変換に利用できる。
【0006】
近年では機器の小型化と省電力化に対応するために、特定用途向けの命令追加が可能なプロセッサが提供されている。こうしたプロセッサを利用すれば比較的簡単に本発明で利用する命令を持つプロセッサを得ることができる。
【0007】
【課題を解決するための手段】
本発明による方法では、マイクロプロセッサに3個の入力値を比較するための命令を用意する。3個の整数値の入力から、そのうちの最大値、中央値、最小値を得る命令を使用することで、4面体補間に必要な情報を簡単に求めることができるようになる。
【0008】
【発明の実施の形態】
本発明の第1実施例として、図1のように入力値に対して、区間幅が入力値の要素ごと、また、区間ごとに異なる可変間隔の格子点における値を格納したLUTを使用した4面体補間を以下に示す。まず、ここで用いる4面体補間の手順は以下に説明する。
【0009】
最初に、入力値X,Y,Zが何番目の区間に属するかを求め、それぞれXh,Yh,Zhとし、おのおのの区間幅をMX(Xh),MY(Yh),MZ(Zh)、区間開始点をNX(Xh),NY(Yh),NZ(Zh)とする。
【0010】
次に、各軸上で区間開始点からの距離X−NX(Xh),Y−NY(Yh),Z−NZ(Zh)それぞれの、区間幅MX(Xh),MY(Yh),MZ(Zh)に対する割合Xf,Yf,Zfを求める。
【0011】
Xf=(X−NX(Xh))/MX(Xh)…(1−1)
Yf=(Y−NY(Yh))/MY(Yh)…(1−2)
Zf=(Z−NZ(Zh))/MZ(Zh)…(1−3)
図2は図1の一部分を拡大したものであり、図2に示すとおり入力値に対応する点P(X,Y,Z)は、8個の頂点A(NX(Xh),NY(Yh),NZ(Zh)),B(NX(Xh+1),NY(Yh),NZ(Zh)),C(NX(Xh),NY(Yh+1),NZ(Zh)),D(NX(Xh+1),NY(Yh+1),NZ(Zh)),E(NX(Xh),NY(Yh),NZ(Zh+1)),F(NX(Xh+1),NY(Yh),NZ(Zh+1)),G(NX(Xh),NY(Yh+1),NZ(Zh+1)),H(NX(Xh+1),NY(Yh+1),NZ(Zh+1))からなる立方体ABCDEFGH(境界を含む)の内部に存在することになる。
【0012】
また、立方体ABCDEFGHは、4面体ABDH,ABFH,ACDH,ACGH,AEFH,AEGHのように6個の4面体に分割することが可能である。
【0013】
点Pがどの4面体に属するかは余りXf,Yf,Zfの大小関係によって決まり、そのときの補間式は以下のようになる。式中でA,B,C,D,E,F,G,Hは各頂点におけるLUTのデータ、Pは補間演算結果を表す。なお、等号が成立する場合は、条件を満たす式すべてで同じ結果になるので、それらのうちから任意の式を選んでよい。
【0014】
Xf≧Yf≧Zfの場合、
Xf≧Zf≧Yfの場合、
Zf≧Xf≧Yfの場合、
Zf≧Yf≧Xfの場合、
Yf≧Zf≧Xfの場合、
Yf≧Xf≧Zfの場合、
ここで、Xf,Yf,Zfの最大値をmax,中央値をmed,最小値をminとおくと、式1−4ないし式1−9は以下のようにまとめることが可能である。
【0015】
ただし、頂点QはXf,Yf,Zfのうちどの値が最大値かによって以下のように決まるものとする。
【0016】
Xfが最大値の場合、Q=B
Yfが最大値の場合、Q=C
Zfが最大値の場合、Q=E
また、頂点RはXf,Yf,Zfのうちどの値が最小値かによって以下のように決まるものとする。
【0017】
Xfが最小値の場合、R=G
Yfが最小値の場合、R=F
Zfが最小値の場合、R=D
最大値が複数同値の場合にはQの係数(max−med)が0となるので、同値のうちどれを最大値とみなしても結果には影響しない。同様に、最小値が複数同値の場合にはRの係数(med−min)が0となるので、同値のうちどれを最小値とみなしても結果には影響しない。
【0018】
本実施例では除算を避けるために、Xf,Yf,Zfのかわりに区間幅MX(Xh)とMY(Yh)とMZ(Zh)との積denomを分母としたときの分子の値Xfn,Yfn,Zfnの大小関係を比較する。すなわち、
Xfn=(X−NX(Xh))・FY(Yh)・FZ(Zh)…(1−11)
Yfn=(Y−NY(Yh))・FX(Xh)・FZ(Zh)…(1−12)
Zfn=(Z−NZ(Zh))・FX(Xh)・FY(Yh)…(1−13)
この場合、Xfn,Yfn,Zfnの最大値、中央値、最小値であるmax,med,minもdenomを分母とした分子の値となるので、式1−10は次のようになる。
【0019】
式1−14を整理すると次式(1−15)になる。
【0020】
図4はこのような4面体補間処理の流れ図である。このうちステップS403で本発明に特徴的な命令を使用している。
【0021】
ステップS401では、一般に知られた分類アルゴリズムを利用して入力値X,Y,Zがどの区間に属するかを求める。SECTIONX(x),SECTIONY(y),SECTIONZ(z)はx,y,zがそれぞれ何番目の区間に属するかを表すものとする。このような分類アルゴリズムとしては、ハッシュ法、2分探索法などがある。
【0022】
ステップS402では、各軸上で入力値の区間開始点からの距離X−NX(Xh),Y−NY(Yh),Z−NZ(Zh)が、区間幅MX(Xh),MY(Yh),MZ(Zh)に占める割合を求めている。ここでは除算を避けるために、区間幅MX(Xh)とMY(Yh)とMZ(Zh)との積を分母としたときの分子の値を区間割合Xfn,Yfn,Zfnとしている。
【0023】
ステップS403からステップS405までが従来例のステップS301に相当する部分である。
【0024】
ステップS403では、Compare3という命令を使用して、Xfn,Yfn,Zfnの最大値max、中央値med、および、最小値minを求める。この命令は、例えば図6のように、いわゆるSIMD命令でひとつのレジスタの中に複数のデータが入っているもとして入出力を取り扱うものである。ただし、MAX(a,b)はaとbのうち大きい値、また、MIN(a,b)はaとbのうち小さい値を意味するものである。
【0025】
このCompare3命令の結果は、最大値、中央値、最小値のほかに、後にステップS405で使用するフラグ情報を含んでいる。
【0026】
ステップS404では、頂点Aと頂点HのLUT内のアドレスを求めている。baseは頂点Aの原点Oからの相対アドレスであり、a3は頂点Hの頂点Aからの相対アドレスである。式中のdX,dY,dZはそれぞれ、X軸方向、Y軸方向、Z軸方向に対応したLUTでのアドレスの増分を示す定数である。
【0027】
ステップS405では、頂点Q,頂点RのLUT内のアドレスを求めている。a1は頂点Qの、a2は頂点Rのそれぞれ頂点Aからの相対アドレスである。
【0028】
ここで、SELECT(a,b,c)は条件aが真の場合にb、偽の場合にcの値となる命令である。
【0029】
a1については、最初に、Yfn、または、Zfnのどちらかが最大値であると仮定して仮のa1を求め、次に、仮定に反してXfnが最大値だった場合に、仮のa1を正しい値に書き換える。
【0030】
また、a2については、最初に、Xfn、または、Yfnのどちらかが最小値であると仮定して仮のa2を求め、次に、仮定に反してZfnが最小値だった場合に、仮のa2を正しい値に書き換える。
【0031】
以上の手順でa1,a2を求めることができる。
【0032】
ステップS406では頂点A,頂点Q,頂点R,頂点HそれぞれにおいてLUTを参照して格子点の値を得る。
【0033】
ステップS407では式1−15による補間演算で出力値を求める。
【0034】
以上のように本発明を利用すれば処理に時間のかかる分岐命令を使用せずに、4面体補間を実行することが可能となる。
【0035】
本発明の第2実施例として、区間幅が入力値によらず、入力のどの要素についても一定のMであり、それが2の冪(M=2m,mは非負の整数)である場合を以下に示す。本実施例では入力値X,Y,Zはどれも整数であるものとする。入力値を整数として、区間を2の冪にそろえることで、第1実施例の場合よりも途中の演算を簡略化することが可能になる。
【0036】
本実施例では、入力値は電算機での色表現としてよく用いられる赤、青、緑の各成分量で、LUT内のデータはカラー印刷機で使用するインクの色に対応して、シアン、マゼンタ、イエロー、ブラックの各成分からなる整数のベクトル量とする。
【0037】
入力値X,Y,Zが何番目の区間に属するかは、以下のように求めることができる。ただし、Quotient(a,b)はa/bの商とする。
【0038】
Xh=Quotient(X,2m)…(2−1)
Yh=Quotient(Y,2m)…(2−2)
Zh=Quotient(Z,2m)…(2−3)
また、入力値X,Y,Zと区間の開始点との距離が区間幅2mに占める割合は以下のようになる。
【0039】
Xf=(X−Xh*2m)/2m…(2−4)
Yf=(Y−Yh*2m)/2m…(2−5)
Zf=(Z−Zh*2m)/2m…(2−6)
本実施例でも、第1実施例と同様に式2−4ないし式2−6のXf,Yf,Zfにかえて、2mを分母とした分子Xfn,Yfn,Zfnの比較をすることにする。
【0040】
Xfn=X−Xh*2m=Remainder(X,2m)…(2−7)
Yfn=Y−Yh*2m=Remainder(Y,2m)…(2−8)
Zfn=Z−Zh*2m=Remainder(Z,2m)…(2−9)
ただし、Remainder(a,b)はa/bの余りとする。
【0041】
よく知られているように、ソフトウェアによる処理では2mによる除算の商と余りはシフト演算や論理積演算を利用することで簡単にできる。
【0042】
Xfn,Yfn,Zfnの最大値、中央値、最小値であるmax,med,minも2mを分母とした分子の値となるので、式1−10は次のようになる。
【0043】
式2−10を整理すると次式(2−11)になる。
【0044】
本実施例では次式(2−12)のようにPを4捨5入処理をして整数に丸めたものを出力値P’とする。
【0045】
式2−12で、eは単位ベクトルで、また、割り算において小数以下の端数は切り捨てるものとする。ここでも商はシフト演算で簡単に求めることができる。
【0046】
図5はこのような4面体補間処理の流れ図である。このうちステップS502で本発明に特徴的な命令を使用している。
【0047】
ステップS501では、式2−1ないし式2−3による格子点Aの座標(Xh,Yh,Zh)、および、式2−7ないし式2−9による入力値の格子点Aからの距離(Xfn,Yfn,Zfn)を求めている。
【0048】
ステップS502からステップS504までが、従来例のS301に相当する部分である。
【0049】
ステップS502では、後のステップS506で使用する補間重み係数(w0,w1,w2,w3)と、ステップS504で使用するフラグ情報(f0,f1,f2,f3)を求めている。ここでは図7のようなWeight命令を使用している。ただし、MAX(a,b)はaとbのうち大きい値、また、MIN(a,b)はaとbのうち小さい値を意味するものである。
【0050】
このWeight命令の結果のうち、フラグ情報は特別のフラグレジスタに保存されるものとする。
【0051】
ステップS503は、第1実施例におけるステップS404と同様である。
【0052】
ステップS504は、第1実施例におけるステップS405と同様であるが、ここでは専用のAddress1,Address2命令を用いている。以下の表のように、Address1命令は、フラグf0,f1の組み合わせによって、Address2命令はフラグf2とf3の組み合わせによって頂点Q,Rの頂点Aからの相対アドレス値を生成するものである。
【0053】
【表1】
【0054】
ステップS505は、第1実施例におけるステップS406と同様である。
【0055】
ステップS506では、式2−12のとおり補間演算結果を計算している。ここでは、ステップS502の結果のw0,w1,w2,w3をA,P,Q,Hの重み係数として使用している。
【0056】
【発明の効果】
以上のように本発明によれば実行に比較的時間のかかる条件分岐命令を使用せずに、4面体補間を実行することが可能となり、4面体補間処理において性能の向上が実現する。
【図面の簡単な説明】
【図1】3次元ルックアップテーブルの格子点
【図2】4面体補間の単位格子
【図3】4面体補間流れ図(従来例)
【図4】4面体補間流れ図(第1実施例)
【図5】4面体補間流れ図(第2実施例)
【図6】Compare3命令
【図7】Weight命令
【符号の説明】
S301 従来の4面体補間準備処理ステップ
S401,S402,S403,s404,S405,S406,S407 第1実施例による4面体補間処理を構成する各ステップ
S501,S502,S503,S504,S505,S506 第2実施例による4面体補間処理を構成する各ステップ
【発明の属する技術分野】
3次元ベクトルの入力に対してルックアップテーブル(以下LUT)と4面体補間を適用して出力値を求めるデータ変換方法、たとえばRGB色空間からCMYK色空間への変換方法などに関する。
【0002】
【従来の技術】
特開平5−141489ではLUTを用いたデータ変換装置が提案されている。また、特開2000−196903ではソフトウェアによる高速な変換方法が提案されている。
【0003】
【発明が解決しようとする課題】
特開2000−196903では、大小関係によって決まる所定の位置に配置することで、以後の条件分岐処理を必要としない処理方法が提案されているが、前提である入力データを所定の位置に配置する手段が必要である。ソフトウェアによる処理では、従来は図3のように、場合分けのための条件分岐命令を使用する方法が一般的であった。
【0004】
一般にソフトウェアの処理では条件分岐命令の実行は比較的時間がかかるので、条件分岐命令を使用せずに補間に必要な情報を生成することが望ましい。
【0005】
本発明は3次元ルックアップテーブルと4面体補間によるデータ変換に適した命令を使用する。これによって、特開2000−196903の方法を補完し、入力データを所定の位置に配置する手段においても条件分岐命令を必要としないような、ソフトウェアによるデータ変換方法と装置を提供するものである。このようなデータ変換はたとえば、RGB色空間からCMYK色空間への変換に利用できる。
【0006】
近年では機器の小型化と省電力化に対応するために、特定用途向けの命令追加が可能なプロセッサが提供されている。こうしたプロセッサを利用すれば比較的簡単に本発明で利用する命令を持つプロセッサを得ることができる。
【0007】
【課題を解決するための手段】
本発明による方法では、マイクロプロセッサに3個の入力値を比較するための命令を用意する。3個の整数値の入力から、そのうちの最大値、中央値、最小値を得る命令を使用することで、4面体補間に必要な情報を簡単に求めることができるようになる。
【0008】
【発明の実施の形態】
本発明の第1実施例として、図1のように入力値に対して、区間幅が入力値の要素ごと、また、区間ごとに異なる可変間隔の格子点における値を格納したLUTを使用した4面体補間を以下に示す。まず、ここで用いる4面体補間の手順は以下に説明する。
【0009】
最初に、入力値X,Y,Zが何番目の区間に属するかを求め、それぞれXh,Yh,Zhとし、おのおのの区間幅をMX(Xh),MY(Yh),MZ(Zh)、区間開始点をNX(Xh),NY(Yh),NZ(Zh)とする。
【0010】
次に、各軸上で区間開始点からの距離X−NX(Xh),Y−NY(Yh),Z−NZ(Zh)それぞれの、区間幅MX(Xh),MY(Yh),MZ(Zh)に対する割合Xf,Yf,Zfを求める。
【0011】
Xf=(X−NX(Xh))/MX(Xh)…(1−1)
Yf=(Y−NY(Yh))/MY(Yh)…(1−2)
Zf=(Z−NZ(Zh))/MZ(Zh)…(1−3)
図2は図1の一部分を拡大したものであり、図2に示すとおり入力値に対応する点P(X,Y,Z)は、8個の頂点A(NX(Xh),NY(Yh),NZ(Zh)),B(NX(Xh+1),NY(Yh),NZ(Zh)),C(NX(Xh),NY(Yh+1),NZ(Zh)),D(NX(Xh+1),NY(Yh+1),NZ(Zh)),E(NX(Xh),NY(Yh),NZ(Zh+1)),F(NX(Xh+1),NY(Yh),NZ(Zh+1)),G(NX(Xh),NY(Yh+1),NZ(Zh+1)),H(NX(Xh+1),NY(Yh+1),NZ(Zh+1))からなる立方体ABCDEFGH(境界を含む)の内部に存在することになる。
【0012】
また、立方体ABCDEFGHは、4面体ABDH,ABFH,ACDH,ACGH,AEFH,AEGHのように6個の4面体に分割することが可能である。
【0013】
点Pがどの4面体に属するかは余りXf,Yf,Zfの大小関係によって決まり、そのときの補間式は以下のようになる。式中でA,B,C,D,E,F,G,Hは各頂点におけるLUTのデータ、Pは補間演算結果を表す。なお、等号が成立する場合は、条件を満たす式すべてで同じ結果になるので、それらのうちから任意の式を選んでよい。
【0014】
Xf≧Yf≧Zfの場合、
Xf≧Zf≧Yfの場合、
Zf≧Xf≧Yfの場合、
Zf≧Yf≧Xfの場合、
Yf≧Zf≧Xfの場合、
Yf≧Xf≧Zfの場合、
ここで、Xf,Yf,Zfの最大値をmax,中央値をmed,最小値をminとおくと、式1−4ないし式1−9は以下のようにまとめることが可能である。
【0015】
ただし、頂点QはXf,Yf,Zfのうちどの値が最大値かによって以下のように決まるものとする。
【0016】
Xfが最大値の場合、Q=B
Yfが最大値の場合、Q=C
Zfが最大値の場合、Q=E
また、頂点RはXf,Yf,Zfのうちどの値が最小値かによって以下のように決まるものとする。
【0017】
Xfが最小値の場合、R=G
Yfが最小値の場合、R=F
Zfが最小値の場合、R=D
最大値が複数同値の場合にはQの係数(max−med)が0となるので、同値のうちどれを最大値とみなしても結果には影響しない。同様に、最小値が複数同値の場合にはRの係数(med−min)が0となるので、同値のうちどれを最小値とみなしても結果には影響しない。
【0018】
本実施例では除算を避けるために、Xf,Yf,Zfのかわりに区間幅MX(Xh)とMY(Yh)とMZ(Zh)との積denomを分母としたときの分子の値Xfn,Yfn,Zfnの大小関係を比較する。すなわち、
Xfn=(X−NX(Xh))・FY(Yh)・FZ(Zh)…(1−11)
Yfn=(Y−NY(Yh))・FX(Xh)・FZ(Zh)…(1−12)
Zfn=(Z−NZ(Zh))・FX(Xh)・FY(Yh)…(1−13)
この場合、Xfn,Yfn,Zfnの最大値、中央値、最小値であるmax,med,minもdenomを分母とした分子の値となるので、式1−10は次のようになる。
【0019】
式1−14を整理すると次式(1−15)になる。
【0020】
図4はこのような4面体補間処理の流れ図である。このうちステップS403で本発明に特徴的な命令を使用している。
【0021】
ステップS401では、一般に知られた分類アルゴリズムを利用して入力値X,Y,Zがどの区間に属するかを求める。SECTIONX(x),SECTIONY(y),SECTIONZ(z)はx,y,zがそれぞれ何番目の区間に属するかを表すものとする。このような分類アルゴリズムとしては、ハッシュ法、2分探索法などがある。
【0022】
ステップS402では、各軸上で入力値の区間開始点からの距離X−NX(Xh),Y−NY(Yh),Z−NZ(Zh)が、区間幅MX(Xh),MY(Yh),MZ(Zh)に占める割合を求めている。ここでは除算を避けるために、区間幅MX(Xh)とMY(Yh)とMZ(Zh)との積を分母としたときの分子の値を区間割合Xfn,Yfn,Zfnとしている。
【0023】
ステップS403からステップS405までが従来例のステップS301に相当する部分である。
【0024】
ステップS403では、Compare3という命令を使用して、Xfn,Yfn,Zfnの最大値max、中央値med、および、最小値minを求める。この命令は、例えば図6のように、いわゆるSIMD命令でひとつのレジスタの中に複数のデータが入っているもとして入出力を取り扱うものである。ただし、MAX(a,b)はaとbのうち大きい値、また、MIN(a,b)はaとbのうち小さい値を意味するものである。
【0025】
このCompare3命令の結果は、最大値、中央値、最小値のほかに、後にステップS405で使用するフラグ情報を含んでいる。
【0026】
ステップS404では、頂点Aと頂点HのLUT内のアドレスを求めている。baseは頂点Aの原点Oからの相対アドレスであり、a3は頂点Hの頂点Aからの相対アドレスである。式中のdX,dY,dZはそれぞれ、X軸方向、Y軸方向、Z軸方向に対応したLUTでのアドレスの増分を示す定数である。
【0027】
ステップS405では、頂点Q,頂点RのLUT内のアドレスを求めている。a1は頂点Qの、a2は頂点Rのそれぞれ頂点Aからの相対アドレスである。
【0028】
ここで、SELECT(a,b,c)は条件aが真の場合にb、偽の場合にcの値となる命令である。
【0029】
a1については、最初に、Yfn、または、Zfnのどちらかが最大値であると仮定して仮のa1を求め、次に、仮定に反してXfnが最大値だった場合に、仮のa1を正しい値に書き換える。
【0030】
また、a2については、最初に、Xfn、または、Yfnのどちらかが最小値であると仮定して仮のa2を求め、次に、仮定に反してZfnが最小値だった場合に、仮のa2を正しい値に書き換える。
【0031】
以上の手順でa1,a2を求めることができる。
【0032】
ステップS406では頂点A,頂点Q,頂点R,頂点HそれぞれにおいてLUTを参照して格子点の値を得る。
【0033】
ステップS407では式1−15による補間演算で出力値を求める。
【0034】
以上のように本発明を利用すれば処理に時間のかかる分岐命令を使用せずに、4面体補間を実行することが可能となる。
【0035】
本発明の第2実施例として、区間幅が入力値によらず、入力のどの要素についても一定のMであり、それが2の冪(M=2m,mは非負の整数)である場合を以下に示す。本実施例では入力値X,Y,Zはどれも整数であるものとする。入力値を整数として、区間を2の冪にそろえることで、第1実施例の場合よりも途中の演算を簡略化することが可能になる。
【0036】
本実施例では、入力値は電算機での色表現としてよく用いられる赤、青、緑の各成分量で、LUT内のデータはカラー印刷機で使用するインクの色に対応して、シアン、マゼンタ、イエロー、ブラックの各成分からなる整数のベクトル量とする。
【0037】
入力値X,Y,Zが何番目の区間に属するかは、以下のように求めることができる。ただし、Quotient(a,b)はa/bの商とする。
【0038】
Xh=Quotient(X,2m)…(2−1)
Yh=Quotient(Y,2m)…(2−2)
Zh=Quotient(Z,2m)…(2−3)
また、入力値X,Y,Zと区間の開始点との距離が区間幅2mに占める割合は以下のようになる。
【0039】
Xf=(X−Xh*2m)/2m…(2−4)
Yf=(Y−Yh*2m)/2m…(2−5)
Zf=(Z−Zh*2m)/2m…(2−6)
本実施例でも、第1実施例と同様に式2−4ないし式2−6のXf,Yf,Zfにかえて、2mを分母とした分子Xfn,Yfn,Zfnの比較をすることにする。
【0040】
Xfn=X−Xh*2m=Remainder(X,2m)…(2−7)
Yfn=Y−Yh*2m=Remainder(Y,2m)…(2−8)
Zfn=Z−Zh*2m=Remainder(Z,2m)…(2−9)
ただし、Remainder(a,b)はa/bの余りとする。
【0041】
よく知られているように、ソフトウェアによる処理では2mによる除算の商と余りはシフト演算や論理積演算を利用することで簡単にできる。
【0042】
Xfn,Yfn,Zfnの最大値、中央値、最小値であるmax,med,minも2mを分母とした分子の値となるので、式1−10は次のようになる。
【0043】
式2−10を整理すると次式(2−11)になる。
【0044】
本実施例では次式(2−12)のようにPを4捨5入処理をして整数に丸めたものを出力値P’とする。
【0045】
式2−12で、eは単位ベクトルで、また、割り算において小数以下の端数は切り捨てるものとする。ここでも商はシフト演算で簡単に求めることができる。
【0046】
図5はこのような4面体補間処理の流れ図である。このうちステップS502で本発明に特徴的な命令を使用している。
【0047】
ステップS501では、式2−1ないし式2−3による格子点Aの座標(Xh,Yh,Zh)、および、式2−7ないし式2−9による入力値の格子点Aからの距離(Xfn,Yfn,Zfn)を求めている。
【0048】
ステップS502からステップS504までが、従来例のS301に相当する部分である。
【0049】
ステップS502では、後のステップS506で使用する補間重み係数(w0,w1,w2,w3)と、ステップS504で使用するフラグ情報(f0,f1,f2,f3)を求めている。ここでは図7のようなWeight命令を使用している。ただし、MAX(a,b)はaとbのうち大きい値、また、MIN(a,b)はaとbのうち小さい値を意味するものである。
【0050】
このWeight命令の結果のうち、フラグ情報は特別のフラグレジスタに保存されるものとする。
【0051】
ステップS503は、第1実施例におけるステップS404と同様である。
【0052】
ステップS504は、第1実施例におけるステップS405と同様であるが、ここでは専用のAddress1,Address2命令を用いている。以下の表のように、Address1命令は、フラグf0,f1の組み合わせによって、Address2命令はフラグf2とf3の組み合わせによって頂点Q,Rの頂点Aからの相対アドレス値を生成するものである。
【0053】
【表1】
【0054】
ステップS505は、第1実施例におけるステップS406と同様である。
【0055】
ステップS506では、式2−12のとおり補間演算結果を計算している。ここでは、ステップS502の結果のw0,w1,w2,w3をA,P,Q,Hの重み係数として使用している。
【0056】
【発明の効果】
以上のように本発明によれば実行に比較的時間のかかる条件分岐命令を使用せずに、4面体補間を実行することが可能となり、4面体補間処理において性能の向上が実現する。
【図面の簡単な説明】
【図1】3次元ルックアップテーブルの格子点
【図2】4面体補間の単位格子
【図3】4面体補間流れ図(従来例)
【図4】4面体補間流れ図(第1実施例)
【図5】4面体補間流れ図(第2実施例)
【図6】Compare3命令
【図7】Weight命令
【符号の説明】
S301 従来の4面体補間準備処理ステップ
S401,S402,S403,s404,S405,S406,S407 第1実施例による4面体補間処理を構成する各ステップ
S501,S502,S503,S504,S505,S506 第2実施例による4面体補間処理を構成する各ステップ
Claims (5)
- 3次元ルックアップテーブル(以下LUT)を参照し、ソフトウェアによる4面体補間処理によって3次元ベクトルの入力値に対して出力値を求めるデータ変換方法で、入力値の各要素についてLUTの参照点との距離を比較するために3値の大小関係を比較する命令を使用することを特徴とする方法。
- 請求項1のデータ変換方法で、請求項1の命令が、3値の大小比較に加えて、補間のための重み係数を算出する機能を有することを特徴とする方法。
- 請求項1ないし請求項2の命令を有することを特徴とするマイクロプロセッサ。
- 3次元ルックアップテーブル(以下LUT)を参照し、4面体補間処理によって3次元ベクトルの入力値に対して出力値を求めるデータ変換手段として、請求項3のマイクロプロセッサを有することを特徴とするデータ変換装置。
- 3次元ルックアップテーブル(以下LUT)を参照し、4面体補間処理によって3次元ベクトルの入力値に対して出力値を求める請求項3のマイクロプロセッサのソフトウェアを記録した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003136801A JP2004341765A (ja) | 2003-05-15 | 2003-05-15 | 3次元ルックアップテーブルを用いたデータ変換方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003136801A JP2004341765A (ja) | 2003-05-15 | 2003-05-15 | 3次元ルックアップテーブルを用いたデータ変換方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004341765A true JP2004341765A (ja) | 2004-12-02 |
Family
ID=33526620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003136801A Withdrawn JP2004341765A (ja) | 2003-05-15 | 2003-05-15 | 3次元ルックアップテーブルを用いたデータ変換方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004341765A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008235981A (ja) * | 2007-03-16 | 2008-10-02 | Necディスプレイソリューションズ株式会社 | 7軸色補正装置及び方法 |
US7876330B2 (en) | 2007-03-30 | 2011-01-25 | Kabushiki Kaisha Toshiba | Color conversion apparatus, filter processing apparatus and color conversion method |
-
2003
- 2003-05-15 JP JP2003136801A patent/JP2004341765A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008235981A (ja) * | 2007-03-16 | 2008-10-02 | Necディスプレイソリューションズ株式会社 | 7軸色補正装置及び方法 |
US7876330B2 (en) | 2007-03-30 | 2011-01-25 | Kabushiki Kaisha Toshiba | Color conversion apparatus, filter processing apparatus and color conversion method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1676254B1 (en) | Method and apparatus for converting from a source color space to a target color space | |
US10118378B2 (en) | Cross-section data generating device and cross-section data generating method | |
US8094164B1 (en) | Decompression of block encoded texture data | |
EP2330560B1 (en) | Method and device for processing vector graphics | |
JP4836867B2 (ja) | 色変換装置、色変換方法、及び色変換プログラム | |
JP2010191991A (ja) | サーフェス法線ベクトルを求めるための装置又は方法 | |
EP3110129A1 (en) | Color gamut mapping based on the mapping of cusp colors obtained through simplified cusp lines | |
US6735334B2 (en) | Optimizing processing gamuts for color conversion chains | |
US20130243317A1 (en) | Method and system for predictive scaling of color mapped images | |
US20170094098A1 (en) | Image forming apparatus, storage medium, and color conversion method | |
US7706619B2 (en) | Image processing device that produces high-quality reduced image at fast processing speed | |
JP2004341765A (ja) | 3次元ルックアップテーブルを用いたデータ変換方法および装置 | |
JP2001014454A (ja) | 画像処理装置 | |
US20040051892A1 (en) | Metid if interpolation | |
US7397483B1 (en) | Image data conversion using interpolation | |
JP2004179819A (ja) | 色変換処理装置、色変換処理プログラムおよび色変換処理方法 | |
JP2008085731A (ja) | 画素データ補正装置および画素データ補正方法 | |
US20080018961A1 (en) | N-Dimensional Hedral Interpolation | |
JP5135298B2 (ja) | 画像処理装置および画像処理方法 | |
JP2005025254A (ja) | コンピュータグラフィックス描画装置 | |
JP4416415B2 (ja) | ルックアップテーブル作成方法、及びコンピュータプログラム、及び撮像装置 | |
JP2004213100A (ja) | 色変換処理装置及び色変換処理方法 | |
JP6740729B2 (ja) | データ変換装置、データ変換方法およびデータ変換プログラム | |
JP2003069841A (ja) | 色変換装置、色変換方法および記録媒体 | |
Marcu | Improving color saturation for color managed images rendered using the perceptual intent |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060801 |