(57)【特許請求の範囲】
【請求項１】
ルックアップテーブルに補間演算を併用することによって色変換を行う色変換方法であって、
入力色データのうち、当該入力色データの補間空間における位置をその大小関係によって示すデータと、入力色データのうち、ルックアップテーブルのアドレスを示すデータおよび前記位置を大小関係によって示すデータに基づいてルックアップテーブルから読出される格子点データを、前記大小関係に応じて予じめ定められた複数のレジスタに格納し、
該複数のレジスタ間において予じめ定められた補間演算式に従い当該レジスタが格納するデータを用いて補間演算を行う、
ステップを有したことを特徴とする色変換方法。
【請求項２】
前記入力色データはそれぞれ（ｎ＋ｍ）ビットの３色のデータＸｉ，Ｙｉ，Ｚｉで構成され、該データＸｉ，Ｙｉ，Ｚｉを
Ｘｉ＝Ｘｈ・２m ＋Ｘｆ
Ｙｉ＝Ｙｈ・２m ＋Ｙｆ
Ｚｉ＝Ｚｈ・２m ＋Ｚｆ
と表わし、前記ルックアップテーブルのアドレスを示すデータをＸｈ，Ｙｈ，Ｚｈ、前記位置を大小関係によって示すデータをＸｆ，Ｙｆ，Ｚｆとするとき、
前記色変換方法は、（Ｘｈ，Ｙｈ，Ｚｈ）で規定される補間空間の８格子点の内、（Ｘｆ，Ｙｆ，Ｚｆ）の大小関係によって規定される４格子点のデータを用いて補間演算を実行する色変換方法であって、
４画素分の（Ｘｈ，Ｙｈ，Ｚｈ）格子点データをレジスタａに格納するステップと、
４画素分の（Ｘｆ，Ｙｆ，Ｚｆ）の最大値をレジスタｂに格納するステップと、
４画素分の（Ｘｈ，Ｙｈ，Ｚｈ）格子点に隣接する格子点データをレジスタｃに格納するステップと４画素分の（Ｘｆ，Ｙｆ，Ｚｆ）の中央値をレジスタｄに格納するステップと、
４画素分の（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）格子点に隣接する格子点データをレジスタｅに格納するステップと、
４画素分の（Ｘｆ，Ｙｆ，Ｚｆ）の最小値をレジスタｆに格納するステップと、
４画素分の（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）格子点データをレジスタｇに格納するステップと、
４画素分並列に（レジスタｃ−レジスタａ）・レジスタｂを演算し、その結果をレジスタｈに格納するステップと、
４画素分並列に（レジスタｅ−レジスタｃ）・レジスタｄを演算し、その結果をレジスタｉに格納するステップと、
４画素分並列に（レジスタｇ−レジスタｅ）・レジスタｆを演算し、その結果をレジスタｊに格納するステップと、
前記レジスタａの値をｍビット左へシフトして、その結果に４画素分並列して、前記レジスタｈ，レジスタｉ，レジスタｊの値の加算演算をするステップ
により４画素分並列に補間演算処理することを特徴とする請求項１に記載の色変換方法。
【請求項３】
前記レジスタａ，レジスタｃ，レジスタｅ，レジスタｇのデータをシアン，マゼンタ，イエロー，ブラック毎に変えて色変換処理することを特徴とする請求項２に記載の色変換方法。
【請求項４】
前記入力色データはそれぞれ（ｎ＋ｍ）ビットの３色のデータＸｉ，Ｙｉ，Ｚｉで構成され、該データＸｉ，Ｙｉ，Ｚｉを
Ｘｉ＝Ｘｈ・２m ＋Ｘｆ
Ｙｉ＝Ｙｈ・２m ＋Ｙｆ
Ｚｉ＝Ｚｈ・２m ＋Ｚｆ
と表わし、前記ルックアップテーブルのアドレスを示すデータをＸｈ，Ｙｈ，Ｚｈ、前記位置を大小関係によって示すデータをＸｆ，Ｙｆ，Ｚｆとするとき、
前記色変換方法は、（Ｘｈ，Ｙｈ，Ｚｈ）で規定される補間空間の８格子点の内、（Ｘｆ，Ｙｆ，Ｚｆ）の大小関係によって規定される４格子点のデータを用いて補間演算を実行する色変換方法であって、
４つのブロックに分割されたレジスタ０の最上位ブロック２m を格納するステップと、
前記レジスタ０の最上位から２番目のブロックに（Ｘｆ，Ｙｆ，Ｚｆ）の最大値を格納するステップと、
前記レジスタ０の最上位から３番目のブロックに（Ｘｆ，Ｙｆ，Ｚｆ）の中央値を格納するステップと、
前記レジスタ０の最上位から４番目のブロックに（Ｘｆ，Ｙｆ，Ｚｆ）の最小値を格納するステップと、                                                ４つのブロックに分割されたレジスタ１の最上位ブロックに０を格納するステップと、
前記レジスタ１の最上位から２番目のブロックに（Ｘｈ，Ｙｈ，Ｚｈ）格子点データを格納するステップと、
前記レジスタ１の最上位から３番目のブロックに（Ｘｈ，Ｙｈ，Ｚｈ）格子点に隣接する格子点データを格納するステップと、
前記レジスタ１の最上位から４番目のブロックに（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）格子点に隣接する格子点データを格納するステップと、
前記レジスタ１の内容をレジスタ２にロードし、そして、レジスタ２を１ブロック分左へシフトした後、最上位から４番目のブロックに（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）格子点データを格納するステップと、
４ブロック並列に前記レジスタ２−前記レジスタ１の演算を行ない、その結果をレジスタ３に格納するステップと、
（前記レジスタ０の１ブロック×前記レジスタ３の１ブロック＋前記レジスタ０の２ブロック×前記レジスタ３の２ブロック）と（前記レジスタ０の３ブロック×前記レジスタ３の３ブロック＋前記レジスタ０の４ブロック×前記レジスタ３の４ブロック）の２つの積和演算を並列に実行し、その結果を各々レジスタ４の１−２ブロックと３−４ブロックに格納するステップと、
前記レジスタ４の１−２ブロックと３−４ブロック値を加算して、ｍビット右シフトするステップ、
により並列に補間演算処理することを特徴とする請求項１に記載の色変換方法。
【請求項５】
前記レジスタ１および前記レジスタ２の格子点データをシアン，マゼンタ，イエロー，ブラック毎に変えて色変換処理することを特徴とする請求項４に記載の色変換方法。
【請求項６】
前記入力色データはそれぞれ（ｎ＋ｍ）ビットの３色のデータＸｉ，Ｙｉ，Ｚｉで構成され、該データＸｉ，Ｙｉ，Ｚｉを
Ｘｉ＝Ｘｈ・２m ＋Ｘｆ
Ｙｉ＝Ｙｈ・２m ＋Ｙｆ
Ｚｉ＝Ｚｈ・２m ＋Ｚｆ
と表わし、前記ルックアップテーブルのアドレスを示すデータをＸｈ，Ｙｈ，Ｚｈ、前記位置を大小関係によって示すデータをＸｆ，Ｙｆ，Ｚｆとするとき、
前記色変換方法は、（Ｘｈ，Ｙｈ，Ｚｈ）で規定される補間空間の８格子点の内、（Ｘｆ，Ｙｆ，Ｚｆ）の大小関係によって規定される４格子点のデータを用いて補間演算を実行する色変換方法であって、
４つのブロックに分割されたレジスタ０の最上位ブロック２m を格納するステップと、
前記レジスタ０の最上位から２番目のブロックに（Ｘｆ，Ｙｆ，Ｚｆ）の最大値を格納するステップと、
前記レジスタ０の最上位から３番目のブロックに（Ｘｆ，Ｙｆ，Ｚｆ）の中央値を格納するステップと、
前記レジスタ０の最上位から４番目のブロックに（Ｘｆ，Ｙｆ，Ｚｆ）の最小値を格納するステップと、                                                前記レジスタ０の内容をレジスタ１に格納し、１ブロック分左にシフトするステップと、
ブロック毎に並列にそのデータについて（レジスタ０−レジスタ１）の減算演算をし、その結果をレジスタ２に格納するステップと、
４つのブロックに分割されたレジスタ３の最上位ブロックに（Ｘｈ，Ｙｈ，Ｚｈ）格子点データを格納するステップと、
前記レジスタ１の最上位から２番目のブロックに（Ｘｈ，Ｙｈ，Ｚｈ）格子点に隣接する格子点データを格納するステップと、
前記レジスタ１の最上位から３番目のブロックに（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）格子点に隣接する格子点データを格納するステップと、
前記レジスタ１の最上位から４番目のブロックに（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）格子点データを格納するステップと、
（前記レジスタ２の１ブロック×前記レジスタ３の１ブロック＋前記レジスタ２の２ブロック×前記レジスタ３の２ブロック）と（前記レジスタ２の３ブロック×前記レジスタ３の３ブロック＋前記レジスタ２の４ブロック×前記レジスタ３の４ブロック）の２つの積和演算を並列に実行し、その結果を各々レジスタ４の４つに分割される第１，第２ブロックと第３，第４ブロックに格納するステップと、
前記レジスタ４の第１，第２ブロックと第３，第４ブロックのデータを加算して、ｍビット右シフトするステップ、
により並列に補間演算処理することを特徴とする請求項１に記載の色変換方法。
【請求項７】
前記レジスタ３の格子点データをシアン，マゼンタ，イエロー，ブラック毎に変えて色変換処理することを特徴とする請求項６に記載の色変換方法。
【請求項８】
前記入力色データはそれぞれ（ｎ＋ｍ）ビットの３色のデータＸｉ，Ｙｉ，Ｚｉで構成され、該データＸｉ，Ｙｉ，Ｚｉを
Ｘｉ＝Ｘｈ・２m ＋Ｘｆ
Ｙｉ＝Ｙｈ・２m ＋Ｙｆ
Ｚｉ＝Ｚｈ・２m ＋Ｚｆ
と表わし、前記ルックアップテーブルのアドレスを示すデータをＸｈ，Ｙｈ，Ｚｈ、前記位置を大小関係によって示すデータをＸｆ，Ｙｆ，Ｚｆとするとき、
前記色変換方法は、（Ｘｈ，Ｙｈ，Ｚｈ）で規定される補間空間の８格子点の内、（Ｘｆ，Ｙｆ，Ｚｆ）の大小関係によって規定される４格子点のデータを用いて補間演算を実行する色変換方法であって、
４つのブロックに分割されたレジスタ０の最上位ブロックに（Ｘｈ，Ｙｈ，Ｚｈ）格子点データを格納するステップと、
前記レジスタ０の最上位から２番目のブロックに（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）の格子点データを格納するステップと、
前記レジスタ０の最上位から３番目のブロックに（Ｘｈ，Ｙｈ，Ｚｈ）格子点に隣接する格子点データを格納するステップと、
前記レジスタ０の最上位から３番目のブロックに（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）格子点に隣接する格子点データを格納するステップと、
４つのブロックに分割されたレジスタ１の最上位ブロックに０を格納するステップと、
前記レジスタ１の最上位から２番目のブロックに（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）格子点データを格納するステップと、
前記レジスタ１の最上位から３番目のブロックに（Ｘｈ，Ｙｈ，Ｚｈ）格子点データを格納するステップと、
前記レジスタ１の最上位から４番目のブロックに（Ｘｈ，Ｙｈ，Ｚｈ）格子点に隣接する格子点データを格納するステップと、
ブロック毎に並列に（レジスタ０−レジスタ１）の減算演算をし、その結果をレジスタ２に格納するステップと、
４つのブロックに分割されたレジスタ３の最上位ブロックに２m を格納するステップと、
前記レジスタ３の最上位から２番目のブロックに（Ｘｆ，Ｙｆ，Ｚｆ）の最小値を格納するステップと、
前記レジスタ３の最上位から３番目のブロックに（Ｘｆ，Ｙｆ，Ｚｆ）の最大値を格納するステップと、
前記レジスタ３の最上位から４番目のブロックに（Ｘｆ，Ｙｆ，Ｚｆ）の中央値を格納するステップと、
（前記レジスタ２の１ブロック×前記レジスタ３の１ブロック＋前記レジスタ２の２ブロック×前記レジスタ３の２ブロック）と（前記レジスタ２の３ブロック×前記レジスタ３の３ブロック＋前記レジスタ２の４ブロック×前記レジスタ３の４ブロック）の２つの積和演算を並列に実行し、その結果を各々レジスタ４の４つに分割される第１，第２ブロックと第３，第４ブロックに格納するステップと、
前記レジスタ４の第１，第２ブロックと第３，第４ブロックのデータを加算して、ｍビットを右シフトするステップ、
により並列に補間演算処理することを特徴とする請求項１に記載の色変換方法。
【請求項９】
前記レジスタ０、前記レジスタ１の格子点データをシアン，マゼンタ，イエロー，ブラック毎に変えて色変換処理することを特徴とする前記請求項８に記載の色変換方法。
【請求項１０】
ルックアップテーブルに補間演算を併用することによって色変換を行う色変換装置であって、
入力色データのうち、当該入力色データの補間空間における位置をその大小関係によって示すデータと、入力色データのうち、ルックアップテーブルのアドレスを示すデータおよび前記位置を大小関係によって示すデータに基づいてルックアップテーブルから読出される格子点データを、前記大小関係に応じて予じめ定められた複数のレジスタに格納する格納手段と、
該複数のレジスタ間において予じめ定められた補間演算式に従い当該レジスタが格納するデータを用いて補間演算を行う演算手段と、
を有したことを特徴とする色変換装置。
【請求項１１】
ルックアップテーブルに補間演算を併用することによって色変換を行う色変換処理プログラムを情報処理装置によって読取り可能に記憶した記憶媒体であって、該色変換処理は、
入力色データのうち、当該入力色データの補間空間における位置をその大小関係によって示すデータと、入力色データのうち、ルックアップテーブルのアドレスを示すデータおよび前記位置を大小関係によって示すデータに基づいてルックアップテーブルから読出される格子点データを、前記大小関係に応じて予じめ定められた複数のレジスタに格納し、
該複数のレジスタ間において予じめ定められた補間演算式に従い当該レジスタが格納するデータを用いて補間演算を行う、
ステップを有したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ルックアップテーブル（以下、「ＬＵＴ」ともいう）に補間演算処理を併用して複数（多次元）の色信号を別の色信号に変換する色変換方法および色変換装置に関する。
【０００２】
【従来の技術】
ディジタル化された画像信号のガンマ変換やｌｏｇ変換といった非線形変換は、ＬＵＴを用いて行なわれることが多い。これは、上述のような非線形変換を演算回路で求めようとすると、その演算が比較的複雑なものになり、また、処理時間も長くなるからである。また、このようなＬＵＴは、例えば、８ビットのビデオ信号に何らかの非線形変換を行なう場合、２５６バイトの容量のメモリがあれば実現することが出来る。因に、この８ビットビデオ信号に対する変換は１つの画像信号を別の性質のもう１つの画像信号に変換するものであるため、そこで使用されるＬＵＴは１次元ＬＵＴと呼ばれる。
【０００３】
ところで、最近のデスクトップパブリッシング（以下、「ＤＴＰ」と略す）環境の著しい進歩に伴い、誰もが容易にカラー画像をあつかうことが出来るようになりつつある。ＤＴＰにおけるカラー画像の入力機器は、スキャナ、ビデオカメラ等が主であり、出力機器はインクジェット、染料熱昇華型あるいは電子写真等のそれぞれの方式による各種カラープリンタ等である。これらのカラー入，出力機器は、それぞれ固有の色空間を有しており、例えばあるスキャナで得たカラー画像データを、そのまま別のカラープリンタに転送して、画像を出力した場合、その画像の色がスキャナによって読取られたオリジナルの画像の色と一致することはほとんどない。両者の色を一致させるには、いわゆる入力デバイス（入力機器）の色空間を、出力デバイス（出力機器）の色空間に変換するといった処理が必要になる（以下では、この処理を「色変換処理」と称す）。
【０００４】
この色変換処理は、具体的には、入力γ補正，輝度濃度変換，マスキング，黒生成，ＵＣＲ，出力γ補正等の一連の画像処理の全体、もしくはその中の一定の処理をいうが、入力デバイスの３色（一般的には、Ｒｅｄ，Ｂｌｕｅ，Ｇｒｅｅｎの３色、以下、それぞれ「Ｒ」，「Ｇ」，「Ｂ」と略す）の画像信号を同時に参照して、出力デバイス側の３色（例えば、シアン，マゼンタ，イエロー）あるいは４色（例えば、シアン，マゼンタ，イエロー，ブラック）の画像信号に変換するものである。
【０００５】
この入力デバイスの３色の画像信号を、出力デバイスの複数色中の１色に変換する処理を、ＬＵＴだけを用いて行なうとすると、画像信号１色が８ビットで表わされる場合、入力２４ビット、出力８ビットのＬＵＴとなり１６Ｍ（メガ）バイトの容量のメモリが必要になる。その上、出力デバイスの色数分だけ上述のメモリが必要になるため、実際のメモリ容量は、４８〜６４Ｍバイトといった大容量になり、コスト的にも実用的ではない。
【０００６】
そこで、ＬＵＴを用いた色変換処理では、補間処理を併用してするのが一般的であり、これにより、ＬＵＴのためのメモリ容量の大幅な削減を実現している。
【０００７】
ＬＵＴを用いた入，出力の対応付けに補間演算を用いた色変換処理の一従来例を以下に説明する。
【０００８】
まず、入力色データとして、例えばＲ，Ｇ，Ｂの３つの色信号（各色ｎ＋ｍビット）をそれぞれＸｉ＝Ｘｈ・２m ＋Ｘｆ、Ｙｉ＝Ｙｈ・２m ＋Ｙｆ、Ｚｉ＝Ｚｈ・２m ＋Ｚｆと表わす。ここで、Ｘｈ，Ｙｈ，ＺｈはＸｉ，Ｙｉ，Ｚｉデータの各々の上位ｎビット信号を表わし、Ｘｆ，Ｙｆ，ＺｆはＸｉ，Ｙｉ，Ｚｉデータ各々の下位ｍビット信号を表わす。
【０００９】
ＬＵＴには、Ｘｈ＝０，１，２，・・・，２n −１、Ｙｈ＝０，１，２，・・・，２n −１、Ｚｈ＝０，１，２，・・・，２n −１の全ての組み合わせ（２3n通り）のそれぞれに対して、変換後の色データが格子点データとして格納されており、この格子点データはＸｈ，Ｙｈ，Ｚｈを連結した３ｎビットのアドレス信号によって読みだされる。
【００１０】
入力色信号データ（Ｘｉ，Ｙｉ，Ｚｉ）各々の下位ｍビット、即ちＸｆ，Ｙｆ，Ｚｆが、全て“０”の場合は、上記のアドレス信号によってＬＵＴから読みだされる格子点データが、そのまま変換後の色データとなる。そうでない場合には、Ｘｆ，Ｙｆ，Ｚｆの値に応じて補間処理が行なわれる。
【００１１】
この補間演算処理は、格子点データをいくつ用いるか、又、どのような関係の格子点データを用いるかによって、いくつかの方法がある。一般的に、格子点データを多く用いると補間精度は向上するが補間演算処理が複雑になり、処理時間が長くなる。補間精度をそれほど低下させずに比較的簡易な演算処理が可能な補間方法としては、４点補間と称されるものが従来より知られている。これは４つの格子点データを用いて補間処理を行なうものであり、例えば特公昭５８−１６１８０号公報において開示されている。以下にその概略を説明する。
【００１２】
下位ビット信号Ｘｆ，Ｙｆ，Ｚｆが３つとも０でない場合、すなわち、Ｘｆ≠０、Ｙｆ≠０、Ｚｆ≠０の場合、変換前の色データは、図１に示すように、８つの格子点で形成される立方体の中に位置する。この立方体は、上位ビット信号（Ｘｈ，Ｙｈ，Ｚｈ）で指定される部分補間空間をなすものであり、また、格子点の間隔は２m であって、下位ビット信号Ｘｆ，Ｙｆ，Ｚｆによって、この立方体の各格子点間を２m 個に分割した点の１つが規定される。
【００１３】
図１に示す立方体を３つの平面（Ｘｆ＝Ｙｆで規定される平面、Ｙｆ＝Ｚｆで規定される平面、およびＺｆ＝Ｘｆで規定される平面）で分割すると、６つの４面体が定義され、各４面体は、例えば図２に示すように、４つの格子点を有する。変換される入力色データにより定義される上述の部分補間空間上の点（Ｘｉ，Ｙｉ，Ｚｉ）はこの６つの４面体のどれか１つに含まれることになる（境界面はその境界を共有する４面体のいずれかに含まれるものとする）。入力色データ（Ｘｉ，Ｙｉ，Ｚｉ）がいずれの４面体に属するかは、Ｘｆ，Ｙｆ，Ｚｆの大小関係で定まる。例えば入力色データにＸｆ＞Ｙｆ＞Ｚｆの関係がある場合、入力色データは図２に示す４面体内に位置し、補間処理に用いられる格子点の座標は（Ｘｈ，Ｙｈ，Ｚｈ）、（Ｘｈ＋１，Ｙｈ，Ｚｈ）、（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ）、（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）の４点となる。各々の格子点座標についてＬＵＴにより対応付けられるデータ、すなわち格子点データをｄｄ（Ｘ座標，Ｙ座標，Ｚ座標）と表わし、入力色データ（Ｘｉ，Ｙｉ，Ｚｉ）に対してＬＵＴを用いた補間後のデータをＰ（Ｘｉ，Ｙｉ，Ｚｉ）と表わすとき、この補間後のデータＰは、
0003927715.tif 000002
となる。上記補間式は、前述した６つの４面体毎に異なることは勿論である。
【００１４】
以上のように、補間演算処理は、（１）式に示すように、各々の４面体に対応する４つの格子点データと入力色データの下位ビット信号から生成される係数データとの積ならびに４つの項の加算処理からなる。
【００１５】
【発明が解決しようとする課題】
しかしながら、上記（１）式からも明らかなように、補間演算処理には、（Ｘｈ，Ｙｈ，Ｚｈ），……，（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）等、ＬＵＴから格子点データを読み出す際に必要なアドレスを演算したり、Ｘｆ，Ｙｆ，Ｚｆの大小関係を判定したりする比較処理が必要である。この大小関係により、用いる格子点データや処理内容が異なり、このため、例えば複数画素について補間演算を並列に行うことが困難であるという問題がある。
【００１６】
すなわち、上記（１）式の演算精度は１６ビットもあれば十分である。具体的には、格子点データのビット数は８〜１０ビット、入力下位ビットデータＸｆ，Ｙｆ，Ｚｆのビット数は３〜５ビットである。また、一般的なその他の画像処理についてもほとんどの場合、演算精度は１６ビットもあれば、十分であり、場合によっては、８ビットの演算精度があればよいこともある。
【００１７】
これに対して、最近のＣＰＵの性能向上には著しいものがあり、その汎用レジスタが３２ビットあるいは６４ビットの長さを有したものであることが通常となりつつある。このようなレジスタ長は上記補間に係る画像処理においては、オーバースペックであり、ＣＰＵの性能を有効に活用していないことにもなる。
【００１８】
一方で、情報処理に関してやりとりされる情報は、以前のテキストベースから、画像ベースへ変わりつつある。このような環境では、ＪＰＥＧやＭＰＥＧといった画像圧縮伸張処理といったものがより重要になると共に、処理の高速性も要求されることになる。こうしたニーズに応えるため、マルチメディアに対応した機能を有するＣＰＵが提供されている。すなわち、これらのＣＰＵでは、６４ビットのレジスタを、３２ビット×２、１６ビット×４あるいは８ビット×８という構成で使用することにより、精度の低い演算を一度に複数個並列処理したり、一度に積和演算を行なうことができる。
【００１９】
例えば、上述のＪＰＥＧやＭＰＥＧ等の処理に、上述のマルチメディア対応機能を有効に活用した例は、よく知られたところである。また、画像中の各画素に同じような演算処理を行なうフィルタリング等は、並列処理化が容易で、上記マルチメディア対応機能を有効に活用することもできる。
【００２０】
しかしながら、下位ビットデータの大小関係のような条件分岐処理を伴う上述の補間演算は、上記マルチメディア対応機能を有効に活用することができず、処理の高速化を図ることが比較的難しいという問題があった。
【００２１】
本発明は、このような問題を解消するためになされたものであり、その目的とするところは、例えばマルチメディア対応機能を有するＣＰＵ性能を十分に活用して補間演算の並列処理を実現することが可能な色変換方法および色変換装置を提供することにある。
【００２２】
【課題を解決するための手段】
そのために本発明では、ルックアップテーブルに補間演算を併用することによって色変換を行う色変換方法であって、入力色データのうち、当該入力色データの補間空間における位置をその大小関係によって示すデータと、入力色データのうち、ルックアップテーブルのアドレスを示すデータおよび前記位置を大小関係によって示すデータに基づいてルックアップテーブルから読出される格子点データを、前記大小関係に応じて予じめ定められた複数のレジスタに格納し、該複数のレジスタ間において予じめ定められた補間演算式に従い当該レジスタが格納するデータを用いて補間演算を行う、ステップを有したことを特徴とする。
【００２３】
また、ルックアップテーブルに補間演算を併用することによって色変換を行う色変換装置であって、入力色データのうち、当該入力色データの補間空間における位置をその大小関係によって示すデータと、入力色データのうち、ルックアップテーブルのアドレスを示すデータおよび前記位置を大小関係によって示すデータに基づいてルックアップテーブルから読出される格子点データを、前記大小関係に応じて予じめ定められた複数のレジスタに格納する格納手段と、該複数のレジスタ間において予じめ定められた補間演算式に従い当該レジスタが格納するデータを用いて補間演算を行う演算手段と、を有したことを特徴とする。
【００２４】
以上の構成によれば、入力色データのうちその補間空間における位置を大小関係によって示す、例えば下位ビットデータと、この大小関係に応じてルックアップテーブルから読出される格子点データとが、上記大小関係に応じて予じめ定められた複数のレジスタに格納され、これらのレジスタ間で予じめ定められた補間演算式に従い、それらのレジスタに格納されるデータを用いて補間演算を行うので、本来、上記大小関係に応じて異なる補間演算式もしくはこの式の各項の演算は、各レジスタ間の演算関係を規定する一つの式に統一でき、これにより、例えば複数画素間の補間演算や演算式の各項の計算を並列に行うことができる。
【００２５】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００２６】
図３は、本発明の一実施形態として以下で示す実施形態１〜４の色変換処理で行われる処理やハードウェア構成の概略を示すブロック図である。
【００２７】
同図に示すように、本発明の一実施形態による色変換処理は、後述のように補間演算に用いられるレジスタ群３０１と格子点データを格納したイエロー（Ｙ），マゼンタ（Ｍ），シアン（Ｃ），ブラック（Ｋ）のそれぞれに対応したルックアップテーブル（以下、「ＬＵＴ」という）３０２Ｙ，３０２Ｍ，３０２Ｃ，３０２Ｋを用いて行われる。
【００２８】
大小判別部３０３では、例えば、Ｒ，Ｇ，Ｂ各色毎の８ビットの入力色データＸｉ，Ｙｉ，Ｚｉのうち、ｍビットの下位ビットデータＸｆ，Ｙｆ，Ｚｆに基づいて、それらの大小関係が判別される。また、アドレス生成部３０４では、入力色データのうちｎビットの上位ビットデータに基づき、上記大小関係情報を参照して４点補間に係る格子点データをＬＵＴから読出すためのアドレスが生成される。なお、この大小判別部３０３およびアドレス生成部３０４は、ＣＰＵの実行によるソフトウェアとして構成されてもよく、あるいは、ハードウェアとして構成されてもよい。
【００２９】
アドレス生成部３０４によって生成された各４つのアドレスに基づき、それぞれの色のＬＵＴ３０２Ｙ，３０２Ｍ，３０２Ｃ，３０２Ｋからはそれぞれ４つの格子点データが読出されて、後述のようにレジスタ群３０１の所定のレジスタに格納される。また、レジスタ群３０１には、下位ビットデータＸｆ，Ｙｆ，Ｚｆも、後述のように大小関係に応じて入力し所定のレジスタに格納される。
【００３０】
レジスタ群３０１では、以下の各実施形態で詳述されるように、ＣＰＵの制御の下、レジスタ間での減算、積和演算、シフト等が行われることによって補間演算が行われ、最終的に変換色データＰを得ることができる。
【００３１】
ここで、以下で説明する各実施形態で用いる補間演算式について説明する。まず、補間演算式を簡潔に表現するため、着目する補間立方体の頂点に位置する格子点データを図１のように、Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈと表わす。そして、この補間演算式は、３つの入力色データＸｉ，Ｙｉ，Ｚｉ各々に下位ｍビットデータＸｆ，Ｙｆ，Ｚｆ間の大小関係によって、すなわち、図２に示すような図面体のうち入力色データＸｉ，Ｙｉ，Ｚｉがいずれの４面体に属するかによって、次の異なる６つの補間式のいずれかによって表わされる。
【００３２】
0003927715.tif 000003
また、上記６つの補間式は、それらを単に変形することによって以下の様に表わすこともできる。
【００３３】
0003927715.tif 000004
同様に、さらなる変形によって以下の様に表わすこともできる。
【００３４】
0003927715.tif 000005
（ｃ−１）〜（ｃ−６）は、（ｂ−１）〜（ｂ−６）における第２〜４項を、単にＸｆ，Ｙｆ，Ｚｆの順に並び替えたものである。
【００３５】
並列処理を実現するための方法は、（ａ−１）〜（ａ−６）、（ｂ−１）〜（ｂ−６）、（ｃ−１）〜（ｃ−６）のどの式に基づくかによって、その実現方法は異なるが、以下の第１、第２の実施形態では、（ｂ−１）〜（ｂ−６）式に基づき、第３実施形態では、（ａ−１）〜（ａ−６）式に基づき、そして、第４実施形態では、（ｃ−１）〜（ｃ−６）式に基づき、それぞれレジスタを利用して補間演算を行う方法について説明する。
【００３６】
（第１の実施形態）
上述したように、本実施形態では、（ｂ−１）〜（ｂ−６）式に基づき、並列処理を実現する方法について説明する。本実施形態の並列処理の概要は次の通りである。
【００３７】
（ｄ−１）図３にて上述したＣＰＵの並列演算可能な演算レジスタを用い、そのレジスタ長を６４ビットとし、これを、１６ビット×４個のレジスタとして使用する。
【００３８】
（ｄ−２）色変換される入力色データは、３色（Ｘｉ，Ｙｉ，Ｚｉ）とする。
【００３９】
（ｄ−３）処理に係る画像の連続する４画素の色変換処理について並列に処理する。
【００４０】
なお、以下の説明では、上記４画素を区別するため、連続する４画素のいずれに係るデータかを添字１，２，３および４で示す。例えば図１に示す格子点データＡは、Ａ１，Ａ２，Ａ３，Ａ４と表記する。
【００４１】
本実施形態の色変換処理は、以下の手順を行なわれる。図４（ａ）〜（ｊ）は、それぞれこの手順で用いられるレジスタおよびその内容を示す図である。
【００４２】
（１）４つの各画素ごとに、入力色データＸｉ，Ｙｉ，Ｚｉの上位ビットデータから部分補間空間（立方体、図１参照）を定め、各立方体中のＡに位置する格子点データｄｄ（Ｘｈ，Ｙｈ，Ｚｈ）を、図３に示すＬＵＴから読出し、図４（ａ）に示すように、各々１６ビットデータとして、Ａ１，Ａ２，Ａ３，Ａ４の順に連結し、上述したようにＣＰＵの並列演算可能なレジスタ４０１に格納する。
【００４３】
（２）次に、各画素ごとに入力色データの下位ビットデータの最大値を求め、図４（ｂ）に示すように、それを４つ連結し、レジスタ４０２に格納する。図４（ｂ）は、１画素目の最大値がＹｆ、２画素目の最大値がＸｆ、３画素目の最大値がＺｆ、４画素目の最大値がＸｆである例を示している。
【００４４】
（３）さらに、各画素毎の上記最大値に応じて、最大値がＸｆの場合は、（１）の処理で定めた部分補間空間の格子点データＢ＝ｄｄ（Ｘｈ＋１，Ｙｈ，Ｚｈ）を、最大値がＹｆの場合は格子点データＣ＝ｄｄ（Ｘｈ，Ｙｈ＋１，Ｚｈ）を、最大値がＺｆの場合は格子点データＥ＝ｄｄ（Ｘｈ，Ｙｈ，Ｚｈ＋１）を、それぞれ選択してＬＵＴから読出し、図４（ｃ）に示すように、それらを４つ連結し、レジスタ４０３に格納する。図４（ｃ）に示す例では、図４（ｂ）に示す画素毎の最大値となる下位ビットデータに対応して、Ｃ１，Ｂ２，Ｅ３，Ｂ４がレジスタ４０３に格納される。
【００４５】
（４）同様に各画素ごとに入力色データの下位ビットデータの中央値を求め、図４（ｄ）に示すようにそれらを４つ連結し、レジスタ４０４に格納する。図４（ｄ）に示す例は、１画素目の中央値がＺｆ、２画素目の中央値がＹｆ、３画素目の中央値がＸｆ、４画素目の中央値がＺｆである場合を示している。
【００４６】
（５）次に、最大値と中央値が、Ｘｆ，Ｙｆ，Ｚｆのいずれの組合せになるかに基づいて、格子点データＤ＝ｄｄ（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ），Ｆ＝ｄｄ（Ｘｈ＋１，Ｙｈ，Ｚｈ＋１），Ｇ＝ｄｄ（Ｘｈ，Ｙｈ＋１，Ｚｈ＋１）のいずれかを各画素ごとに選択し、ＬＵＴから読出し、図４（ｅ）に示すように、それらを４つ連結し、レジスタ４０５に格納する。例えば図４（ｅ）に示す１画素目の内容は、図４（ｂ），（ｄ）に示すＹｆとＺｆの組合せに対応してＧが選択される。同様に、２画素目から４画素目については、Ｄ２，Ｆ３，Ｆ４がレジスタ４０５に格納される。
【００４７】
（６）同様に各画素ごとに入力色データの下位ビットデータの最小値を求め、図４（ｆ）に示すように、それらを４つ連結しレジスタ４０６に格納する。図４（ｆ）に示す例は、１画素目の最小値がＸｆ、２画素目の最小値がＺｆ、３画素目の最小値がＹｆ、４画素目の最小値がＹｆである場合を示している。
【００４８】
（７）最後に、各画素毎に、部分補間空間の格子点データＨ＝ｄｄ（Ｘｈ＋１，Ｙｈ＋１，Ｚｈ＋１）を、図４（ｇ）に示すように、４つ連結したＨ１，Ｈ２，Ｈ３，Ｈ４をレジスタに格納する。
【００４９】
以上説明した（１）〜（７）の処理は、その説明からも明らかなように、入力色データで定まる部分補間空間の中から、入力色データの下位ビットデータの大小関係に基づいて補間演算に用いる、４面体を定める処理、もしくはその４面体の格子点データを用意する処理である。本実施形態では、このような処理を所定のレジスタに格納する処理によって置き換えたものともいえる。
【００５０】
（８）以上の格納処理の後、各対応する画素のレジスタ毎に、まず、図４（ｃ）に示すレジスタ４０３の値から、図４（ａ）に示すレジスタ４０１の値を引き、次に図４（ｂ）に示すレジスタ４０２の値を掛け、これをレジスタ４０８に保持する（図４（ｈ））。
【００５１】
（９）同様に、図４（ｅ）に示すレジスタ４０５の値から、図４（ｃ）に示すレジスタ４０３の値を引き、次に、図４（ｄ）に示すレジスタ４０４の値を掛け、これをレジスタ４０９に保持する（図４（ｉ））。
【００５２】
（１０）さらに、図４（ｇ）に示すレジスタ４０７の値から、図４（ｅ）に示すレジスタ４０５の値を引き、図４（ｆ）に示すレジスタ４０６の値を掛け、これをレジスタ４１０に保持する（図４（ｊ））。
【００５３】
以上の（８）〜（１０）の処理によって、各レジスタ間の差を演算し、その後、レジスタ間の積を演算する処理によって、上記（ｂ−１）〜（ｂ−６）式におけるかっこ内の第２〜４項がそれぞれ求められたことになる。
【００５４】
（１１）次に、図４（ａ）に示すレジスタの値を、それぞれ１６ビットの中でｍビット左へシフトして、上記（ｂ−１）〜（ｂ−６）式のかっこ内第１項、すなわち２m Ａが形成され上記で求めた図４（ｈ）、（ｉ）および（ｊ）でそれぞれ示すレジスタ４０８，４０９および４０９の値を加算する。さらに、この結果について、ｍビット右へシフトする。これによって、４画素分の補間演算が並列に処理されることにより４画素分同時に変換後の例えばシアンについての色データＰを得ることができる。
【００５５】
以上説明したように、本実施形態では、入力色データの下位ビットデータの大小関係（最大値，中央値，最小値）に応じて、格子点データおよびその大小関係に係る数である下位ビットデータを格納するレジスタを定めていることにより、これら所定のレジスタに上記大小関係に応じてそれぞれのデータを格納する処理（（１）〜（７）の処理）を行うだけで、その後の補間演算（（８）〜（１１）の処理）自体には、上記大小関係もしくはその判別処理が現われないようにすることができる。このことは、本実施形態の上記（８）〜（１１）で行われる補間処理が、上記大小関係に応じて異なる６つの（ｂ−１）〜（ｂ−６）式を、１つの統一的な補間式として扱かい、これに従い演算を行うことと等価であることを意味する。この結果、画素毎に入力色データ、従って、その下位ビットデータで定まる大小関係が異なるにもかかわらず、１つの上記統一的な補間式に従い４画素分の補間演算を並列に行うことを可能としている。
【００５６】
なお、以上の説明からも明らかなように、並列に処理される画素数は、レジスタのレジスタ長によって制約を受けて定まるものであり、本発明の本質をなすものではない。従って、レジスタ長が許せば、４画素以上の並列処理に可能であり、また、レジスタ長に応じて４画素より少ない画素数での並列処理も本発明の適用範囲である。
【００５７】
以上のようにして得る、色変換データが、１画素４色（シアン（ｃ）、マゼンタ（ｍ）、イエロー（ｙ）、ブラック（ｋ））の場合は、上記処理がさらに３色分実行される。例えば、以上説明した処理がシアンに相当し、次の色がマゼンタの場合、図４（ａ）のレジスタ４０１にはマゼンタに相当する格子点データ（Ａｍ１Ａｍ２Ａｍ３Ａｍ４）がロードされ、図４（ｃ）レジスタ４０３には（Ｃｍ１Ｂｍ２Ｅｍ３Ｂｍ４）が、図４（ｅ）のレジスタ４０５には（Ｇｍ１Ｄｍ２Ｆｍ３Ｆｍ４）が、そして、図４（ｇ）のレジスタ４０７には、（Ｈｍ１Ｈｍ２Ｈｍ３Ｈｍ４）データがロードされ、また、その他のレジスタに対応する下位ビットデータがロードされる。その後は、上記（８）〜（11）と同様な並列演算がなされてマゼンタ色の補間演算が実行される。次に、イエロー、ブラック色の補間処理が同様になされる。以下、次４画素（１画素４色）毎に並列処理がなされ、色変換が行われていく。
【００５８】
以上の本実施形態の並列処理によって、従来のシーケンシャルな処理に比べて単純計算で４倍の高速化を計ることができる。
【００５９】
（第２実施形態）
本発明の第２の実施形態は、上述した第１実施形態のように４つの画素に対してこれらの色変換処理を並列に行なうのではなく、１画素づつ色変換処理を行なうものであるが、前述したＣＰＵの並列演算機能を有効に活用し、補間演算処理を高速に行なう方法に関するものである。
【００６０】
本実施形態では、前述の（ｂ−１）〜（ｂ−６）式に基づいて補間演算処理を行ない、その場合の１画素毎に行なう処理は、以下のようになる。
【００６１】
（１）４つの格子点データをアクセスするためのアドレスを計算する。
【００６２】
（２）格子点データの差分値に掛ける係数を大きい順に並べレジスタに格納する。
【００６３】
（３）上記アドレスに基づいて４つの格子点データを読み出しレジスタに格納する。
【００６４】
（４）並列演算機能を用いて補間演算処理を行ない、変換色データを求める。
【００６５】
上記（１）および（２）の処理は、Ｘｆ，Ｙｆ，Ｚｆの大小関係に基づいて条件分岐して行なう処理であり、（３）および（４）の処理は、大小関係に基づく条件分岐を必要としないで行なう処理である。すなわち、下位ビットデータの大小関係による条件分岐が現われる処理は、上述の第１実施形態と同様、それぞれの所定のレジスタへ格子点データ等を格納する処理によって置き換えるものである。
【００６６】
上述（１）および（２）の処理を示すフローチャートを図５に示す。
【００６７】
同図に示すように、まずステップＳ５０１では、格子点データＡを読み出すためのアドレス情報Ａｄｒ Ａを生成する。すなわち、入力色データＸｉ，Ｙｉ，Ｚｉの各上位ｎビットデータＸｈ，Ｙｈ，Ｚｈを連結して得た３ｎビットの値をＡｄｒ Ａとする。次に、ステップＳ５０３では、格子点データＨを読み出すためのアドレス情報Ａｄｒ Ｈを生成する。この処理は、上記Ａｄｒ Ａに（２2n＋２n ＋１）を加算してＡｄｒ Ｈとする。
【００６８】
次に、ステップＳ５０５〜５１３では、下位ビットデータＸｆ，Ｙｆ，Ｚｆの大小関係を判別する処理を行う。すなわち、ステップＳ５０５は、Ｘｆ≧Ｙｆが成り立つか否かを判定する比較処理、ステップＳ５０７は、Ｙｆ≧Ｚｆが成り立つか否かを判定する比較処理、ステップＳ５０９は、Ｘｆ≧Ｚｆが成り立つか否かを判定する比較処理、ステップＳ５１１は、Ｚｆ≧Ｙｆが成り立つか否かを判定する比較処理、ステップＳ５１３は、Ｘｆ≧Ｚｆが成り立つか否かを判定する比較処理である。
【００６９】
以上の各判定に基づき、それぞれステップＳ５２１では、ステップＳ５０５とステップＳ５０７が成り立つ（肯定判断）時に行なう処理、ステップＳ５２２では、ステップＳ５０５が成り立ち、ステップＳ５０７が成り立たたず、ステップＳ５０９が成り立つ時に行なう処理、ステップＳ５２３では、ステップＳ５０５が成り立ち判定５０７と判定５０９が成り立たたない時に行なう処理、ステップＳ５２４では、ステップＳ５０５が成り立たたず、ステップＳ５１１が成り立つ時に行なう処理、ステップＳ５２５では、ステップＳ５０５とステップＳ５０１が成り立たたず、ステップＳ５１３が成り立つ時に行なう処理、ステップＳ５２６では、ステップＳ５０５とステップＳ５０７とステップＳ５０９が全て成り立たない時に行なう処理を行う。
【００７０】
すなわち、Ｘｆ，Ｙｆ，Ｚｆの大小関係が、Ｘｆ≧Ｙｆ≧Ｚｆの時はステップＳ５２１で上記大小関係に応じた四面体の残りの２つの格子点アドレスが生成されるとともに下位ビットデータの大小関係に応じたレジスタへの格納が行われる。同様に、Ｘｆ≧Ｚｆ＞Ｙｆの時はステップＳ５２２の処理、Ｚｆ＞Ｘｆ≧Ｙｆの時はステップＳ５２３の処理、Ｚｆ≧Ｙｆ＞Ｘｆの時はステップＳ５２４の処理、Ｙｆ＞Ｘｆ≧Ｚｆの時はステップＳ５２５の処理、Ｙｆ＞Ｚｆ＞Ｘｆの時はステップＳ５２６の処理がそれぞれ行われる。
【００７１】
図６は本実施形態におけるレジスタの構成を示す図である。以上のステップＳ５２１〜Ｓ５２６の処理で求められた下位ビットデータ等は、同図に示すレジスタＲ０に格納される。すなわち、レジスタＲ０（６４ビット）の値は、ステップＳ５２１では、２ｍ，Ｘｆ，Ｙｆ，Ｚｆの値（各１６ビット）を連結した値、ステップＳ５２２では、２ｍ，Ｘｆ，Ｚｆ，Ｙｆの値を連結した値、ステップＳ５２３では、２ｍ，Ｚｆ，Ｘｆ，Ｙｆの値を連結した値、ステップＳ５２４では、２ｍ，Ｚｆ，Ｙｆ，Ｘｆの値を連結した値、ステップＳ５２５では、２ｍ，Ｙｆ，Ｘｆ，Ｚｆの値を連結した値、ステップＳ５２６では、２ｍ，Ｙｆ，Ｚｆ，Ｘｆの値を連結した値となる。
【００７２】
また、上記（１）に述べたアドレスの計算結果は、格子点Ａに隣接する格子点データを読み出すアドレスをＡdr next Ａ、格子点Ｈに隣接する格子点データを読み出すアドレスをＡdr before Ｈとすると、ステップＳ５２１では、Ａdr next Ａ＝Ａdr Ａ＋２2n，Ａdr before Ｈ＝Ａdr next Ａ＋２n ，ステップＳ５２２では、Ａdr next Ａ＝Ａdr Ａ＋２2n，Ａdr before Ｈ＝Ａdr next Ａ＋１，ステップＳ５２３では、Ａdr next Ａ＝Ａdr Ａ＋１，Ａdr before Ｈ＝Ａdr next Ａ＋２2n，ステップＳ５２４では、Ａdr next Ａ＝Ａdr Ａ＋１，Ａdr before Ｈ＝Ａdr next Ａ＋２n ，ステップＳ５２５では、Ａdr next Ａ＝Ａdr Ａ＋２n ，Ａdr before Ｈ＝Ａdr next Ａ＋２2n，ステップＳ５２６では、Ａdr next Ａ＝Ａdr Ａ＋２n ，Ａdr before Ｈ＝Ａdr next Ａ＋１となる。
【００７３】
以上のステップＳ５２１〜５２６の処理のいずれかが下位ビットデータの大小関係に応じて行われた後は、上述の（３）の処理を行なう。すなわち、ステップＳ５２７において、以上の処理で選択された４面体の４つの格子点データを読み出しこれらをレジスタに格納する処理を行う。
【００７４】
この処理では、途中結果と最終読み出し結果の２つの値を図６に示すレジスタＲ１，Ｒ２にそれぞれ格納する。すなわち、アドレス値Ａdr Ａで読み出される格子点データを［Ａdr Ａ］とすると、レジスタＲ１には、０，［Ａdr Ａ］［Ａdr next Ａ］［Ａdr before Ｈ］（各１６ビット）を連結した値、レジスタＲ２には、［Ａdr Ａ］［Ａdr next Ａ］，［Ａdr before Ｈ］，［Ａdr Ｈ］を連結した値をそれぞれ格納する。ここで、レジスタＲ１の内容を１６ビット左へシフトした後に、Ａdr Ｈから読み出した格子点データＨを挿入したものがレジスタＲ２の内容である。
【００７５】
最後にステップＳ５２８において、上記（４）に述べた補間演算処理を行なう。図６に示すように、まず、Ｒ３＝Ｒ２−Ｒ１の処理を１６ビット単位で行なう。これによって前述の（ｂ−１）〜（ｂ−６）式におけるかっこ内の各項がレジスタＲ３に格納されたことになる。これにより、下位ビットデータの大小関係に基づく異なる６つの補間式にかかわらず、補間演算自体を１つの統一的な処理によって行うことが可能となる。
【００７６】
次に、上記のレジスタＲ３とレジスタＲ０との間でそれぞれの内容の積和演算を行ない、その結果をレジスタＲ４に格納する。これにより、レジスタＲ４の上位３２ビットには、対応する２つの１６ビットデータの積和演算結果が格納され、下位３２ビットにも、対応する２つの１６ビットデータの積和演算結果が格納される。そして、この２つの積和を加算し、ｍビット左へシフトすることによって、変換された色データＰを得ることができる。
【００７７】
以上説明した１つの入力データ（Ｘｉ，Ｙｉ，Ｚｉ）に対する色変換処理は、変換によって生成される。例えば黄色、シアン、マゼンタ、黒の４色について点順次で行うが、この場合、前述の（１）および（２）の処理は、４色共通で１回のみ行なえば済む。これは、ＬＵＴから格子点データを読出すためのアドレスは、入力色データ（例えばＲ，Ｇ，Ｂの各値）がこれら４色の変換データを得る間変化しないためである。一方、前述の（３）および（４）の処理は変換して得られる色毎にＬＵＴの内容（格子点データ）が異なることから、これらの処理を４色分繰り返すことで、４色分の変換色データを求めることができる。
【００７８】
この場合に、上記繰り返し処理を図７に示すように、ループ制御によるものとすると、条件判定（ステップＳ７０７）が存在するので処理時間が増す。これに対し、本実施形態では、図８のように、格子点データを読み出して各色毎の図６に示すレジスタへ格納する処理を４色分まとめて行ない（ステップＳ８０１〜Ｓ８０７）、その後補間演算処理を４色分まとめて行なうようにすればよい。
【００７９】
これにより、１画素４色の補間演算を、従来方式に比べ大幅な高速化を図ることができる。
【００８０】
（第３の実施形態）
本発明の第３の実施形態は、前述の（ａ−１）〜（ａ−６）式に基づいて補間演算処理を行なうものである。
【００８１】
図９は、下位ビットデータの大小関係の判別がなされた後の本実施形態の補間演算処理のうち、Ｙｆ≧Ｚｆ≧Ｘｆの場合の処理をレジスタ構成によって説明する図である。
【００８２】
レジスタＲ１０には、大きさの順に、下位ビットデータ等２m ，Ｙｆ，Ｚｆ，Ｘｆがロードされる。そしてレジスタＲ１１は、レジスタＲ１０の内容を１６ビット左にシフトして、Ｙｆ，Ｚｆ，Ｘｆ，０を格納したものである。次に、レジスタＲ１０−レジスタＲ１１をその内容について実行し、その結果をレジスタＲ１２に格納する。次に、式（ａ−５）に示されている格子点データＡ，Ｃ，Ｇ，ＨがレジスタＲ３に格納される。そして、以上のレジスタ間で積和演算（２m −Ｙｆ）・Ａ＋（Ｙｆ−Ｚｆ）・Ｃおよび（Ｚｆ−Ｘｆ）・Ｃ＋Ｘｆ・Ｈがなされ、その結果がレジスタＲ１４に格納される。さらに、レジスタＲ１４の上位３２ビットの値と下位３２ビットの値の加算演算がなされた後、ｍビット右シフト演算されて、変換色データが得られる。
【００８３】
なお、上記演算においては、減算演算結果と積和演算結果は、説明を分かり易くするために各々レジスタＲ１２，Ｒ１４に格納されるが、演算結果の格納レジスタは、Ｒ１２，Ｒ１４に限られたことではなく、空いているレジスタならばどこでも良い。
【００８４】
以上の演算についてシアン，マゼンタ，イエロー，ブラックの各色について行う場合、各色のＡ，Ｃ，Ｇ，Ｈに相当すめ格子点データがロードされる点や下位ビットデータが大小関係に応じて格納される処理は、上述の第２実施形態と同様である。これにより、１画素４色の補間演算について、従来方式に比べ大幅な高速化を図ることができる。
【００８５】
（第４の実施形態）
本発明の第４の実施形態は、前述の（ｃ−１）〜（ｃ−６）式に基づいて補間演算処理を行なうものである。
【００８６】
図１０は、下位ビットデータがＹｆ≧Ｚｆ≧Ｘｆの場合について本実施形態の補間演算をレジスタ構成によって示す図である。
【００８７】
前述の（ｃ−１）〜（ｃ−６）式に示されているように、レジスタＲ１００には、格子点データＡ，Ｈ，Ｃ，Ｇが、またレジスタＲ１０１には、格子点データ０，Ｇ，Ａ，Ｃが格納される。そして、その内容についてレジスタＲ０−レジスタＲ１が演算され、その結果が、レジストＲ１０２に書き込まれる。
【００８８】
また、レジストＲ３には、２m ，Ｘｆ，Ｙｆ，Ｚｆが格納される。そして、積和演算Ａ＋Ｘｆ（Ｈ−Ｇ）およびＹｆ（Ｃ−Ａ）＋Ｚｆ（Ｇ−Ｃ）が並列に実行される。さらに、それらの結果の加算演算およびｍビット右シフト演算がなされて、変換色データが得られる。
【００８９】
なお、上記演算において、減算演算結果と積和演算結果は、説明を分かり易くするために各々レジストＲ１０２，Ｒ１０４に格納されるが、演算結果の格納レジストは、Ｒ１０２，Ｒ１０４に限られたことではなく、空いているレジスタならばどこでも良い。
【００９０】
以上の演算について、シアン，マゼンタ，イエロー，ブラックの各色について行う場合、各色毎の格子点データおよび下位ビットデータの格納処理は、上述した第２実施形態と同様になされる。これにより、１画素４色の補間演算を従来方式に比べ大幅に高速化することができる。
【００９１】
＜他の実施形態＞
本発明は上述のように、複数の機器（たとえばホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても一つの機器（たとえば複写機、ファクシミリ装置）からなる装置に適用してもよい。
【００９２】
また、前述した実施形態の機能を実現するように各種のデバイスを動作させるように該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前記実施形態機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）を格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。
【００９３】
またこの場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、およびそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。
【００９４】
かかるプログラムコードを格納する記憶媒体としては例えばフロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００９５】
またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００９６】
さらに供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
【００９７】
【発明の効果】
以上説明したように、本発明によれば、入力色データのうちその補間空間における位置を大小関係によって示す、例えば下位ビットデータと、この大小関係に応じてルックアップテーブルから読出される格子点データとが、上記大小関係に応じて予じめ定められた複数のレジスタに格納され、これらのレジスタ間で予じめ定められた補間演算式に従い、それらのレジスタに格納されるデータを用いて補間演算を行うので、本来、上記大小関係に応じて異なる補間演算式もしくはこの式の各項の演算は、各レジスタ間の演算関係や規定する一つの式に統一でき、これにより、例えば複数画素間の補間演算が演算式の各項の計算を並列に行うことができる。
【００９８】
この結果、マルチメディア対応機能を有するＣＰＵの並列処理機能を有効に活用することが可能となり、シーケンシャルに色変換処理する場合に比べ処理速度を大幅に高速化できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る、色変換処理で用いるＬＵＴにおける入力色データと格子点データとの関係を示す模式図である。
【図２】上記ＬＵＴのうち補間演算に用いる４面体（４つの格子点）の一例を示す模式図である。
【図３】本発明の一実施形態に係る色変換処理の概略構成を示すブロック図である。
【図４】（ａ）〜（ｊ）は、本発明の第１の実施形態に係り、４画素分の入力色データから４画素分の変換色データを並列に補間演算処理して求める処理をレジスタの構成によって示す図である。
【図５】本発明の第２の実施形態に係り、４つの格子点データをアクセスするためのアドレスを計算する処理と、格子点データの差分値に掛ける係数を大きい順に並べレジストに格納する処理を示すフローチャートである。
【図６】上記第２実施形態の色変換処理における補間演算処理をレジスタ構成によって説明する図である。
【図７】上記第２実施形態との比較例を示し、ループ処理を用いて１画素の入力色データを４色の色データに変換する処理を示すフローチャートである。
【図８】上記第２実施形態に係り、図７に示すループ処理を用いないで１画素の色データを４色の色データに変換する処理を示すフローチャートである。
【図９】本発明の第３実施形態に係る補間演算処理をレジスタ構成によって示す図である。
【図１０】本発明の第４実施形態に係る補間演算処理のレジスタ構成によって示す図である。
【符号の説明】
３０１  レジスタ群
３０２Ｙ，３０２Ｍ，３０２Ｃ，３０２Ｋ  ＬＵＴ（ルックアップテーブル）３０３  大小判別部
３０４  アドレス生成部
４０１，４０２，４０３，４０４，４０５，４０６，４０７，４０８，４０９，４１０，Ｒ０，Ｒ１，Ｒ２，Ｒ３，Ｒ４，Ｒ１０，Ｒ１１，Ｒ１２，Ｒ１３，Ｒ１４，Ｒ１００，Ｒ１０１，Ｒ１０２，Ｒ１０３，Ｒ１０４  レジスタ
【図１】
0003927715.tif 000006
【図２】
0003927715.tif 000007
【図３】
0003927715.tif 000008
【図４】
0003927715.tif 000009
【図５】
0003927715.tif 000010
【図６】
0003927715.tif 000011
【図７】
0003927715.tif 000012
【図８】
0003927715.tif 000013
【図９】
0003927715.tif 000014
【図１０】
0003927715.tif 000015