(57)【特許請求の範囲】
【請求項１】
格子間隔が等しくない三次元ルックアップテーブルを用いて、画像を表す三次元の入力データを変換処理するデータ変換方法であって、
補間処理に先立ち、前記三次元の入力データの各次元に対応する重みテーブルを生成する生成ステップと、
前記入力データを包含する単位直方体の八つの格子点のうち四つの格子点を用いて補間処理を行う演算ステップを有し、前記演算ステップは、
前記入力データの値(X, Y, Z)に対応する重み値(u', v', w')を前記重みテーブルから取得する取得ステップと、
前記重み値の間の関係を判定する判定ステップと、
前記判定ステップの判定結果に基づき、前記四つの格子点の出力値と前記重み値を用いる四面体補間により、前記入力データに対する出力データPを計算する計算ステップとを有し、
前記八つの格子点の出力値はP000 = P(X0, Y0, Z0)、P001 = P(X0, Y0, Z1)、P010 = (X0, Y1, Z0)、P011 = P(X0, Y1, Z1)、P100 = P(X1, Y0, Z0)、P101 = P(X1, Y0, Z1)、P110 = P(X1, Y1, Z0)、P111 = P(X1, Y1, Z1)、ただし、X0≦X≦X1、Y0≦Y≦Y1、Z0≦Z≦Z1、
前記生成ステップは、次式によって前記各次元に対応する重みテーブルを生成し
u' = INT[{(X-X0)/(X1-X0)}L]
v' = INT[{(Y-Y0)/(Y1-Y0)}L]
w' = INT[{(Z-Z0)/(Z1-Z0)}L]
ここで、Lは、前記三次元ルックアップテーブルの格子点間隔(X1-X0, Y1-Y0, Z1-Z0)よりも大きい、予め定められた2のべき乗数、
前記計算ステップは、次式によって前記出力データPを計算する
u'＞v'＞w'の場合はP = {(L-u')P000 + (u'-v')P100 + (v'-w')P110 + w'P111}/L、
u'＞w'≧v'の場合はP = {(L-u')P000 + (u'-w')P100 + (w'-v')P101 + v'P111}/L、
w'≧u'＞v'の場合はP = {(L-w')P000 + (w'-u')P001 + (u'-v')P101 + v'P111}/L、
w'≧v'≧u'の場合はP = {(L-w')P000 + (w'-v')P001 + (v'-u')P011 + u'P111}/L、
v'＞w'≧u'の場合はP = {(L-v')P000 + (v'-w')P010 + (w'-u')P011 + u'P111}/L、
v'≧u'＞w'の場合はP = {(L-v')P000 + (v'-u')P010 + (u'-w')P110 + w'P111}/L
ことを特徴とするデータ変換方法。
【請求項２】
前記三次元のそれぞれに対する前記格子点の位置は等しいことを特徴とする請求項1に記載されたデータ変換方法。
【請求項３】
前記入力データはRGB、CMYまたはXYZ色空間の画像データであることを特徴とする請求項1または請求項2に記載されたデータ変換方法。
【請求項４】
さらに、前記三次元ルックアップテーブルの格子点位置を設定する設定ステップを有することを特徴とする請求項1から請求項3の何れかに記載されたデータ変換方法。
【請求項５】
格子間隔が等しくない三次元ルックアップテーブルを用いて、画像を表す三次元の入力データを変換処理するデータ変換装置であって、
補間処理に先立ち、前記三次元の入力データの各次元に対応する重みテーブルを生成する生成手段と、
前記入力データを包含する単位直方体の八つの格子点のうち四つの格子点を用いて補間処理を行う演算手段を有し、前記演算手段は、
前記入力データの値(X, Y, Z)に対応する重み値(u', v', w')を前記重みテーブルから取得する取得手段と、
前記重み値の間の関係を判定する判定手段と、
前記判定手段の判定結果に基づき、前記四つの格子点の出力値と前記重み値を用いる四面体補間により、前記入力データに対する出力データPを計算する計算手段とを有し、
前記八つの格子点の出力値はP000 = P(X0, Y0, Z0)、P001 = P(X0, Y0, Z1)、P010 = (X0, Y1, Z0)、P011 = P(X0, Y1, Z1)、P100 = P(X1, Y0, Z0)、P101 = P(X1, Y0, Z1)、P110 = P(X1, Y1, Z0)、P111 = P(X1, Y1, Z1)、ただし、X0≦X≦X1、Y0≦Y≦Y1、Z0≦Z≦Z1、
前記生成手段は、次式によって前記各次元に対応する重みテーブルを生成し
u' = INT[{(X-X0)/(X1-X0)}L]
v' = INT[{(Y-Y0)/(Y1-Y0)}L]
w' = INT[{(Z-Z0)/(Z1-Z0)}L]
ここで、Lは、前記三次元ルックアップテーブルの格子点間隔(X1-X0, Y1-Y0, Z1-Z0)よりも大きい、予め定められた2のべき乗数、
前記計算手段は、次式によって前記出力データPを計算する
u'＞v'＞w'の場合はP = {(L-u')P000 + (u'-v')P100 + (v'-w')P110 + w'P111}/L、
u'＞w'≧v'の場合はP = {(L-u')P000 + (u'-w')P100 + (w'-v')P101 + v'P111}/L、
w'≧u'＞v'の場合はP = {(L-w')P000 + (w'-u')P001 + (u'-v')P101 + v'P111}/L、
w'≧v'≧u'の場合はP = {(L-w')P000 + (w'-v')P001 + (v'-u')P011 + u'P111}/L、
v'＞w'≧u'の場合はP = {(L-v')P000 + (v'-w')P010 + (w'-u')P011 + u'P111}/L、
v'≧u'＞w'の場合はP = {(L-v')P000 + (v'-u')P010 + (u'-w')P110 + w'P111}/L
ことを特徴とするデータ変換装置。
【請求項６】
データ処理装置を制御して、請求項1から請求項4の何れかに記載されたデータ変換処理を実現するコンピュータプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル演算処理に適したデータ変換処理に関する。
【０００２】
【従来の技術】
コンピュータなどによりディジタル処理される画像データの量は年々増加している。そして、カラー画像の形成に要求される品質も年々高まっている。高品質なカラー画像を形成するためには色変換処理が不可欠であり、色変換処理には高い精度と柔軟な変換特性の実現に加え、高速な処理が必要である。
【０００３】
色情報は一般に三次元空間を成すため、色変換処理は、空間から空間への対応付けを行うことになる。このような変換を行う手法は幾多も存在するが、それらの中でも特開昭53-123201号公報や特開平8-237497号公報に示されるルックアップテーブル(LUT)を用いた補間がよく用いられている。LUTを用いた補間による色変換にも様々な手法が存在するが、必要なデータ量、必要な演算量、単位直方体間での出力の連続性、および、グレイラインの補間特性などを考慮すると、特開昭53-123201号公報に開示された四面体補間が最も適しているといえる。
【０００４】
【発明が解決しようとする課題】
しかし、特開昭53-123201号に開示された四面体補間がそのまま適用できるのはLUTを構成する単位直方体が立方体である場合に限定され、色変換をディジタル演算処理装置において実現する場合、単位直方体を立方体に限定することは変換処理装置の実現において無視できない制限である。
【０００５】
この制限を具体的に説明すると、まず、ディジタル処理を行う変換処理装置において、すべての単位直方体を立方体にするためには取り得る格子間隔が限定されてしまい、変換精度とデータ量（格子点数）を最適なものにすることができない。例えば、入力が8ビット(0〜255)の場合、すべての単位直方体を立方体にするには格子間隔を、85（格子点数4）、51（同6）、17（同16）、15（同18）、5（同52）および3（同86）の何れかに設定しなければならない。
【０００６】
また、色空間は全領域で均一ではないため、特定領域の格子間隔を意図的に狭くすることは、その領域の変換精度を上げるのに有効である。例えば、RGBからCMYKへ変換する場合、暗い領域つまり(R,G,B)≒(0,0,0)において下色除去(UCR)処理に起因する格子間での濃度の低下が発生し易い。しかし、この問題は、その領域の格子間隔を小さくすることにより効果的に防ぐことができる。特開平7-131668号公報や特開平10-70669号公報などには、格子間隔を小さくすることによって特定色領域の補間精度を上げる手法が示されている。しかし、これらの公報に開示された手法では、入力された色情報の領域により処理を変更するために領域判別処理を必要とし、処理速度および回路規模の点で前述した特開昭53-123201号公報に開示された技術と比較して劣っている。
【０００７】
本発明は、格子間隔が等しくない三次元ルックアップテーブルを用いた、画像を表す三次元の入力データの変換処理に好適なデータ変換処理を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００９】
本発明にかかるデータ変換方法は、格子間隔が等しくない三次元ルックアップテーブルを用いて、画像を表す三次元の入力データを変換処理するデータ変換方法であって、補間処理に先立ち、前記三次元の入力データの各次元に対応する重みテーブルを生成する生成ステップと、前記入力データを包含する単位直方体の八つの格子点のうち四つの格子点を用いて補間処理を行う演算ステップを有し、前記演算ステップは、前記入力データの値(X, Y, Z)に対応する重み値(u', v', w')を前記重みテーブルから取得する取得ステップと、前記重み値の間の関係を判定する判定ステップと、前記判定ステップの判定結果に基づき、前記四つの格子点の出力値と前記重み値を用いる四面体補間により、前記入力データに対する出力データPを計算する計算ステップとを有し、前記八つの格子点の出力値はP000 = P(X0, Y0, Z0)、P001 = P(X0, Y0, Z1)、P010 = (X0, Y1, Z0)、P011 = P(X0, Y1, Z1)、P100 = P(X1, Y0, Z0)、P101 = P(X1, Y0, Z1)、P110 = P(X1, Y1, Z0)、P111 = P(X1, Y1, Z1)、ただし、X0≦X≦X1、Y0≦Y≦Y1、Z0≦Z≦Z1、前記生成ステップは、次式によって前記各次元に対応する重みテーブルを生成し
u' = INT[{(X-X0)/(X1-X0)}L]
v' = INT[{(Y-Y0)/(Y1-Y0)}L]
w' = INT[{(Z-Z0)/(Z1-Z0)}L]
ここで、Lは、前記三次元ルックアップテーブルの格子点間隔(X1-X0, Y1-Y0, Z1-Z0)よりも大きい、予め定められた2のべき乗数、
前記計算ステップは、次式によって前記出力データPを計算する
u'＞v'＞w'の場合はP = {(L-u')P000 + (u'-v')P100 + (v'-w')P110 + w'P111}/L、
u'＞w'≧v'の場合はP = {(L-u')P000 + (u'-w')P100 + (w'-v')P101 + v'P111}/L、
w'≧u'＞v'の場合はP = {(L-w')P000 + (w'-u')P001 + (u'-v')P101 + v'P111}/L、
w'≧v'≧u'の場合はP = {(L-w')P000 + (w'-v')P001 + (v'-u')P011 + u'P111}/L、
v'＞w'≧u'の場合はP = {(L-v')P000 + (v'-w')P010 + (w'-u')P011 + u'P111}/L、
v'≧u'＞w'の場合はP = {(L-v')P000 + (v'-u')P010 + (u'-w')P110 + w'P111}/L
ことを特徴とする。
【００１０】
本発明にかかるデータ変換装置は、格子間隔が等しくない三次元ルックアップテーブルを用いて、画像を表す三次元の入力データを変換処理するデータ変換装置であって、補間処理に先立ち、前記三次元の入力データの各次元に対応する重みテーブルを生成する生成手段と、前記入力データを包含する単位直方体の八つの格子点のうち四つの格子点を用いて補間処理を行う演算手段を有し、前記演算手段は、前記入力データの値(X, Y, Z)に対応する重み値(u', v', w')を前記重みテーブルから取得する取得手段と、前記重み値の間の関係を判定する判定手段と、前記判定手段の判定結果に基づき、前記四つの格子点の出力値と前記重み値を用いる四面体補間により、前記入力データに対する出力データPを計算する計算手段とを有し、前記八つの格子点の出力値はP000 = P(X0, Y0, Z0)、P001 = P(X0, Y0, Z1)、P010 = (X0, Y1, Z0)、P011 = P(X0, Y1, Z1)、P100 = P(X1, Y0, Z0)、P101 = P(X1, Y0, Z1)、P110 = P(X1, Y1, Z0)、P111 = P(X1, Y1, Z1)、ただし、X0≦X≦X1、Y0≦Y≦Y1、Z0≦Z≦Z1、前記生成手段は、次式によって前記各次元に対応する重みテーブルを生成し
u' = INT[{(X-X0)/(X1-X0)}L]
v' = INT[{(Y-Y0)/(Y1-Y0)}L]
w' = INT[{(Z-Z0)/(Z1-Z0)}L]
ここで、Lは、前記三次元ルックアップテーブルの格子点間隔(X1-X0, Y1-Y0, Z1-Z0)よりも大きい、予め定められた2のべき乗数、
前記計算手段は、次式によって前記出力データPを計算する
u'＞v'＞w'の場合はP = {(L-u')P000 + (u'-v')P100 + (v'-w')P110 + w'P111}/L、
u'＞w'≧v'の場合はP = {(L-u')P000 + (u'-w')P100 + (w'-v')P101 + v'P111}/L、
w'≧u'＞v'の場合はP = {(L-w')P000 + (w'-u')P001 + (u'-v')P101 + v'P111}/L、
w'≧v'≧u'の場合はP = {(L-w')P000 + (w'-v')P001 + (v'-u')P011 + u'P111}/L、
v'＞w'≧u'の場合はP = {(L-v')P000 + (v'-w')P010 + (w'-u')P011 + u'P111}/L、
v'≧u'＞w'の場合はP = {(L-v')P000 + (v'-u')P010 + (u'-w')P110 + w'P111}/L
ことを特徴とする。
【００１２】
【発明の実施の形態】
以下、本発明にかかる一実施形態の変換装置およびその方法を図面を参照して詳細に説明する。
【００１３】
［四面体補間の問題点］
特開昭53-123201号に開示された補間（四面体補間）処理をディジタル演算処理装置により実現し、すべての次元で格子間隔が等しくないLUTに適用する際に発生する問題点を明らかにするために、二次元の補間処理を例にして説明を行う。以下の補間処理において使用される手法は、特開昭53-123201号公報に開示された三次元における四面体補間を一般化して二次元に適応させたものであり、以下の例における問題点は三次元の四面体補間処理に対してより顕著なものになる。なお、二次元において説明を行うのは、図を簡素にして紙面上での説明をよりわかり易くするためである。
【００１４】
図1は二次元LUTの全体を表す図、図2は二次元LUTの、ある単位長方形を抜き出して示す図である。なお、三次元の四面体補間における単位直方体は、二次元においては単位長方形になることは言うまでもない。
【００１５】
二次元における補間処理は、図2において、入力点が三角形P00-P10-P11およびP00-P01-P11のどちらに含まれるかを判別し、入力点を含む三角形の頂点における値（格子値）に重みを乗算することにより行われる。P00 = P(X0,Y0)、P10 = P(X1,Y0)、P01 = P(X0,Y1)およびP11 = P(X1,Y1)とし、(X1 - X0≠Y1 - Y0)、X0≦X≦X1およびY0≦Y≦Y1なる入力点(X,Y)に対する出力Pを算出する処理を以下に説明する。
【００１６】
式(1a)および(1b)によりuおよびvを定義すると、入力点(X,Y)がどちらの三角形に含まれるかはuおよびvの大小関係により決定され、補間に使用される格子値も異なる。
u = (X - X0)/(X1 - X0)    …(1a)
v = (Y - Y0)/(Y1 - Y0)    …(1b)
【００１７】
ケース1: u > vのとき入力点(X,Y)は三角形P00-P10-P11に含まれる。よって、
P = [(X1 - X)(Y1 - Y0)・P00
+ {(X - X0)(Y1-Y0) - (X1 - X0)(Y - Y0)}・P10
+ (X1 - X0)(Y - Y0)・P11] / (X1 - X0) / (Y1 - Y0) …(2a)
【００１８】
ケース2: v > uのとき入力点(X,Y)は三角形P00-P01-P11に含まれる。よって、
P = [(X1 - X0)(Y1 - Y)・P00
+ {(X1 - X0)(Y - Y0) - (X - X0)(Y1 - Y0)}・P01
+ (X - X0)(Y1 - Y0)・P11] / (X1 - X0) / (Y1 - Y0) …(2b)
【００１９】
ケース3: u = vのとき入力点(X,Y)は線分P00-P11に含まれる。よって、
P = {(X1 - X)・P00 + (X - X0)・P11) / (X1 - X0)    …(2c)
【００２０】
ここで式(2c)は、u = vのときの式(2a)あるいは式(2b)と等価であるため、ケース3はケース1あるいはケース2に含めることができる。もし、(X1 - X0) = (Y1 - Y0)、つまり単位長方形が正方形であれば、式(2a)および式(2b)はそれぞれ次式のように大幅に簡素化される。
P = [(X1 - X)・P00
+ {(X - X0) - (Y - Y0)}・P10
+ (Y - Y0)・P11] / (X1 - X0)      …(2a')
P = [(Y1 - Y)・P00
+ {(Y - Y0) - (X - X0)}・P10
+ (X-X0)・P11] / (X1 - X0)        …(2b')
【００２１】
このように、二次元における四面体補間において単位長方形が正方形である場合は、出力Pの算出に、例えば(X1 - X0)(Y1 - Y)のような乗算を必要としないため、演算量を大幅に低減することができる。同様に、三次元における四面体補間おいても単位直方体が立方体である場合は、出力Pを算出する演算量を低減することができる。しかし、単位直方体が立方体でない場合は、一つの出力Pの算出に例えば(X1 - X0)(Y1 - Y0)(Z1 - Z0)のような乗算が必要になるため、大幅に演算量が増加し、高速な処理および回路規模の大きい装置が要求されることになる。
【００２２】
勿論、ディジタル処理においても浮動小数点演算を行うとするならば式(2a)は次式のようになり、(X1 - X0)≠(Y1 - Y0)の場合でも、式(2a')と同等に簡素なものにすることができる。
P = {(1 - XX)・P00 + (XX - YY)・P10 + YY・P11}    …(2a")
ただし、XXはXX = (X - X0) / (X1 - X0)なる実数(0≦XX≦1) …(3a)
YYはYY = (Y - Y0) / (Y1 - Y0)なる実数(0≦YY≦1) …(3b)
【００２３】
しかしながら、浮動小数点演算は整数演算と比較して著しく処理に時間を要し、また膨大な規模の回路を必要とする。そのため、式(2a)を整数演算処理するよりも、式(2a")を浮動小数点演算処理する方が、処理時間あるいは回路規模を増大させることが多く、簡素な回路で高速な補間処理を実現することはできない。
【００２４】
［一次元の補間処理］
まず、本実施形態の基本概念を、最も単純な一次元の補間処理に本実施形態を適応した場合を例として説明する。
【００２５】
図3に示すようなP0 = P(X0)およびP1 = P(X1)が与えられたとき、X0≦X≦X1なる入力点Xに対する出力Pは、線形補間により補間を行うとすると、次式で与えられる。
P = {(X1 - X)・P0 + (X - X0)・P1} / (X1 - X0)    …(4)
【００２６】
しかし、式(4)において意味をなすのは(X1 - X0)、(X1 - X)および(X - X0)といった個々の値ではなく、(X1 - X) / (X1 - X0)および(X - X0) / (X1 - X0)の二つの値の比が重みとして意味をなしている。従って、任意の数値Lにより式(5)に示すuを算出し、uを用いて式(4)を表すと式(6)のようになる。
u = {(X - X0) / (X1 - X0)}・L    …(5)
P = {(L - u)・P0 + u・P1} / L     …(6)
【００２７】
式(5)および(6)を浮動挿入点少数演算する場合はuは実数になり式(6)は式(4)と等価である。しかし、前述したように浮動小数点演算を行うのは適当ではない。そのため、同等の処理を整数演算によって行う場合、式(5)により得られるuは近似値になる。つまり、実際の装置によって行われる演算をより正確に式で表せば次式のようになる。
u' = INT[{(X - X0) / (X1 - X0)}・L]    …(5')
P  = {(L - u')・P0 + u'・P1} / L        …(6')
ただし、INT(x)は実数xの小数点以下を四捨五入する関数
【００２８】
従って、式(6')により得られる出力Pと、式(4)により得られる出力Pとは完全には一致しない。しかし、Lを(X1 - X0)に比べて充分に大きな値にすることにより、その誤差は実用上問題ないものにすることができる。しかも、Lは、(X1 - X0)とその大きさとを除けば、何ら関係なく設定することができるため、Lを2のべき乗数にすれば式(6')の除算は右シフト演算により実現される。一般に、ディジタル演算装置においては、除算よりもシフトの方が簡素な回路で、しかも、高速に処理することができる。だから、Lを2のべき乗数にすることにより、処理時間の短縮および回路規模の縮小を図ることができる。
【００２９】
ここでu'はXにのみ依存するため、実際の処理においては、Xをアドレスとしてu'を出力するテーブル、X-u'テーブルを補間処理に先立って作成する。X-u'テーブルの内容をグラフ化して図4に示す。比較のために、Lを用いない場合のXと格子までの距離の関係をグラフ化したものを図5に示す。このX-u'テーブルは、補間処理を実行する直前に作成してもよいし、それぞれの格子位置が予め定まっていれば、格子位置ではなくX-u'テーブルを予め装置に格納しておくことも可能である。
【００３０】
このように、X-u'テーブルが作成されていれば、入力Xに対する出力Pは、式(6')により極めて簡素な演算により算出することができる。
【００３１】
［二次元の補間処理］
一次元の補間処理においては、除算演算をシフト演算に置換えられるという効果が得られるが、二次元以上の補間処理において四面体補間を用いる場合にはそれ以上の大きな効果が期待される。それを示すために、図1に示す二次元の四面体補間処理を例として説明する。以下の補間処理の説明において使用する手法は、三次元における四面体補間を二次元に適用したものであり、以下の例における効果は三次元の四面体補間処理においてより顕著なものになる。
【００３２】
一次元の場合の式(5)に示されるu'と同様に、二次元の場合のu'およびv'を定義すると次式のようになる。
u' = INT[{(X - X0) / (X1 - X0)}・L]    …(7a)
v' = INT[{(Y - Y0) / (Y1 - Y0)}・L]    …(7b)
【００３３】
そして、uおよびv、並びに、u'およびv'の大小関係には以下の関係がある。
u > vであればu・L > v・LなのでINT(u・L)≧INT(v・L)
よって u'≧v'
v > uであればv・L > u・LなのでINT(v・L)≧INT(u・L)
よって v'≧u'
u = vであればu・L = v・LなのでINT(u・L) = INT(v・L)
よって u' = v'
【００３４】
以上により、uおよびvをu',およびv'に変換することで、u'およびv'の関係は不等号が等号に変化することはあるが、大小関係そのものはuおよびvと同じ関係が維持されることがわかる。従って、入力点が含まれる三角形が変わることはないため、u'およびv'の大小関係により出力Pを算出することが妥当であることがわかる。従って、式(2a)および(2b)に、式(7a)および(7b)を適用すると次式が得られる。
u' > v'のとき
P = {(L - u')・P00 + (u' - v')・P10 + v'・P11}/ L    …(8a)
v' ≧ u'のとき
P = {(L - v')・P00 + (v' - u')・P01 + u'・P11}/ L    …(8b)
【００３５】
式(8a)および(8b)に示されるように、式(2a')および(2b')において格子間隔が等しい場合、つまり単位長方形を正方形とする場合と同等の演算量により、任意の格子間隔の補間処理が実現される。勿論、Lを2のべき乗数にすることにより、式(8a)および(8b)におけるLによる除算は、右シフト演算により実現される。
【００３６】
［三次元の補間処理］
次に、三次元LUTを用いて四面体補間を行う場合に、本実施形態を適用するときの処理手順を説明する。図6は三次元LUTの全体像を表す図、図7は図6に示す三次元LUTの一部である単位直方体を表す図である。
【００３７】
以下では、P000 = P(X0,Y0,Z0)、P001 = P(X0,Y0,Z1)、P010 = P(X0,Y1,Z0)、P011 = P(X0,Y1,Z1)、P100 = P(X1,Y0,Z0)、P101 = P(X1,Y0,Z1)、P110 = P(X1,Y1,Z0)、P111 = P(X1,Y1,Z1)として、X0≦X≦X1、Y0≦Y≦Y1、Z0≦Z≦Z1なる入力(X,Y,Z)に対する出力Pを算出する処理を例として、三次元の四面体補間に本実施形態を適用する場合の効果を説明する。
u' = INT[{(X - X0) / (X1 - X0)}・L]    …(9a)
v' = INT[{(Y - Y0) / (Y1 - Y0)}・L]    …(9b)
w' = INT[{(Z - Z0) / (Z1 - Z0)}・L]    …(9c)
【００３８】
先に説明した二次元の場合と同様に、u'はXにのみ依存するため、Xをアドレスとしてu'を得るテーブル、X-u'テーブルを補間処理に先立って作成する。同様に、Yをアドレスとしてv'を得るY-v'テーブル、および、Zをアドレスとしてw'を得るZ-w'テーブルも補間処理に先立って作成しておく。これらのテーブルは、補間処理を実行する直前に作成してもよいし、X、YおよびZそれぞれの格子位置が予め定まっている場合は、格子位置ではなくX-u'テーブル、Y-v'テーブルおよびZ-w'テーブルをあらかじめ装置に格納しておくことも可能である。これらのテーブルが作成されていれば、入力(X,Y,Z)に対する出力Pは、以下に示すように極めて簡素な演算により算出される。
u' > v' > w'のとき
P = {(L - u')・P000 + (u' - v')・P100
+ (v' - w')・P110 + w'・P111}/ L      …(10a)
u' >w' ≧v'のとき
P = {(L - u')・P000 + (u' - w')・P100
+ (w' - v')・P101 + v'・P111}/ L      …(10b)
w'≧u' > v'のとき
P = {(L - w')・P000 + (w' - u')・P001
+ (u' - v')・P101 + v'・P111}/ L      …(10c)
w'≧v'≧u'のとき
P = {(L - w')・P000 + (w' - v')・P001
+ (v' - u')・P011 + u'・P111}/ L      …(10d)
v' > w'≧u'のとき
P = {(L - v')・P000 + (v' - w')・P010
+ (w' - u')・P011 + u'・P111}/ L      …(10e)
v'≧u' > w'のとき
P = {(L - v')・P00 + (v' - u')・P010
+ (u' - w')・P110 + w'・P111}/ L      …(10f)
【００３９】
上に示すように、本実施形態によれば、三次元LUTにおける補間処理を簡素な演算によって行うことができるため、容易に高速な処理を実現することができる。
【００４０】
なお、上記では出力を一次元として説明したが、本実施形態の処理は、出力の次元が幾つあっても各出力次元を独立に処理するため、任意の出力次元の変換に本実施形態を適用できることは明白である。
【００４１】
実際の三次元LUTは、図6に示すように、複数の単位直方体により構成されていて、単位直方体それぞれの形状は、それぞれの次元に対する格子位置により決定される。本実施形態は、図6に示すように、三次元入力のそれぞれの格子の位置を独立に設定したLUTによる補間処理にもそのまま適用することができるが、すべての次元の格子位置を同じにした場合は、X-u'テーブルをY-v'テーブルおよびZ-w'テーブルとして使用できるため、それらのテーブルを作成する処理およびそれらを格納するメモリを省略することができる。
【００４２】
色変換に本実施形態を適用する場合、RGB、CMY、CMYK、CIE XYZおよびCIE Labなどの色空間のうち、入力がRGB、CMYおよびCIE XYZであれば、すべての次元の格子位置を同じ位置にすることによりLUTの対角線をグレイラインにすることができるので、グレイラインの補間の精度を向上させることができる。前述したように、すべての次元の格子位置を同じ位置にすれば、テーブル作成処理およびそれを格納するメモリを省略できるため、本実施形態がとくに効果を発揮する。
【００４３】
［変換装置の構成］
図8は変換装置の構成例を示すブロック図である。CPU 102は、ROM 101に格納されたプログラムおよびデータに従い、バス107を介して変換装置全体の動作を制御するとともに、RAM 103をワークメモリとして、本実施形態にかかる色変換処理を、例えばI/O 104またはNIC(Network Interface Card)105を介して入力される画像データに施し、その処理結果をI/O 104またはNIC 105を介して出力したり、ハードディスク(HD)107などの記憶媒体に記憶させる。
【００４４】
例えばI/O 104の先には、所定のインタフェイスを介して、CRTやLCDのモニタ、プリンタ、イメージリーダ、フィルムリーダ、ディジタルスチルカメラまたはディジタルビデオカメラなどの画像入出力デバイス、あるいは、磁気ディスクや光ディスクなどの記憶媒体を備えた記憶装置が接続される。また、上記の画像入出力デバイスや記憶装置が接続されたコンピュータ機器とNIC 105を介して画像データのやり取りを行うこともできる。そのようなネットワークとしては、Ethernet、FDDI(Fiber Distributed Data Interface)を用いるネットワーク、IEEE1394に規定されるシリアルバス、USB(Universal Serial Bus)などがあげられる。
【００４５】
図9はCPU102によって実行される変換処理の一例を示すフローチャートである。ステップS1で格子位置が設定されると、ステップS2からS4でX-u'、Y-v'およびZ-w'の各テーブルを作成する。作成されたテーブルは例えばRAM 103に格納される。
【００４６】
続いて、ステップS5で画像データを入力し、ステップS6で、作成されたテーブルを用いて入力された画像データに対応するu'、v'およびw'を得る。そして、ステップS7でu'、v'およびw'の大小関係を判定し、その判定結果に応じた演算式、つまり式(10a)から(10f)の何れかを用いて、変換処理された画像データを計算する。なお、図9には示さないが、画像データすべての変換処理が終了するまで、ステップS5からS8が繰り返される。
【００４７】
図8には、例えばパーソナルコンピュータのようなコンピュータ機器により本実施形態の変換装置を実現する例を示したが、本実施形態はこれに限定されず、例えば、CPU 102のほかにDSP(Digital Signal Processor)を組み込み、図9に示す変換処理を実現するプログラムをDSPに供給し、DSPに変換処理を実行させることもできる。さらに、プリンタや複写機などの画像形成装置に本実施形態の変換装置を組み込むことでき、その場合、画像データバスに設けられらLUT用RAMにX-u'、Y-v'およびZ-w'の各テーブルを格納し、その出力に基づきDSPなどにより変換結果を演算し、その演算結果を画像データバスへ出力すればよい。なお、本実施形態の変換処理を画像形成装置に適用する場合、その変換処理には、入力マスキング、輝度-濃度変換、UCR(Under Color Remove)、出力マスキング、ガンマ補正、階調補正、色空間変換および色空間圧縮・伸長などの処理が適応する。
【００４８】
以上説明したように、本実施形態によれば、入力値をアドレスとして、充分に大きな数値によって正規化された格子点から前記入力値までの距離を得るルックアップテーブルを用いることにより、格子位置の設定に制限が加えられることなく、すべての格子間隔が等しい場合と同じ演算量で実用上充分な精度の補間処理を実現することができる。従って、本実施形態にかかる変換装置によれば、柔軟な変換特性を、演算量と回路規模を増加させることなく実現することができる。
【００４９】
本実施形態は、とくに入力が二次元以上で、補間方法が四面体補間である場合に、重みの算出に必要な乗算回数を減らすことができ、処理時間の短縮および回路規模の縮小に効果を発揮する。
【００５０】
また、前述した入力値と格子点との距離を正規化する充分に大きな数値を2のべき乗数とすることにより、補間処理の最後で行われる全重みによる除算をシフト演算により実現することができるので、さらに処理時間の短縮および回路規模の縮小を図ることができる。
【００５１】
さらに、入力のすべての次元に対する格子位置を等しくすることによって、本発明を実現するために必要な処理およびメモリ量をより減少させることができる。
【００５２】
なお、本実施形態は、入力の色空間がRGB、CMYおよびCIE XYZの何れかである場合に、グレーラインの補間精度をより高いものにすることができるためとくに有効である。
【００５３】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００５４】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５５】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５６】
【発明の効果】
以上説明したように、本発明によれば、格子間隔が等しくない三次元ルックアップテーブルを用いた、画像を表す三次元の入力データの変換処理に好適なデータ変換処理を提供することができる。
【図面の簡単な説明】
【図１】二次元LUTの全体を表す図、
【図２】図1に示す二次元LUTの、ある単位長方形を抜き出して示す図、
【図３】一次元における線形補間の概念図、
【図４】  X-u'テーブルの内容を説明するための図、
【図５】  Xと格子までの距離の関係を説明するための図、
【図６】三次元LUTの全体像を表す図、
【図７】図6に示す三次元LUTの一部である単位直方体を表す図、
【図８】変換装置の構成例を示すブロック図、
【図９】変換処理の一例を示すフローチャートである。
【図１】
0003912903.tif 000002
【図２】
0003912903.tif 000003
【図３】
0003912903.tif 000004
【図４】
0003912903.tif 000005
【図５】
0003912903.tif 000006
【図６】
0003912903.tif 000007
【図７】
0003912903.tif 000008
【図８】
0003912903.tif 000009
【図９】
0003912903.tif 000010