(57)【特許請求の範囲】
【請求項１】
入力画素値を色変換装置本体へ入力する画素値入力手段と、
入力画素値から入力画素値が属する部分空間を示すインデックス信号を出力するインデックス変換手段と、
入力画素値から部分空間内部での入力画素値の位置を示すデルタ信号を出力するデルタ変換手段と、
インデックス信号から対応する部分空間の頂点に位置する格子点の補間係数を出力する係数保持手段と、
補間係数およびデルタ信号から補間処理により出力画素値を求め出力する補間手段と、
上記係数保持手段から読み出された補間係数と、対応するインデックス信号とを一時記憶し、一時記憶してある補間係数の読み出し指示があった場合には、上記係数保持手段に代わって補間係数を出力し、一時記憶していない補間係数の読み出し指示があった場合には、インデックス信号を上記係数保持手段に出力し補間係数を読み出す係数キャッシュ手段と、
上記インデックス変換手段および上記デルタ変換手段からそれぞれ出力されたインデックス信号およびデルタ信号を対で一時記憶したのち出力する入力バッファ手段と、
上記入力バッファ手段に指示し一時記憶されているインデックス信号を読み出し、上記係数キャッシュ手段に指示し一時記憶されているインデックス信号を読み出し、上記入力バッファ手段および上記係数キャッシュ手段からそれぞれ読み出されるインデックス信号を比較し、一致しているときにキャッシュされた補間係数を用いて補間処理できると判断し、補間できるものから先に、上記入力バッファ手段から取り出し指示し、上記補間手段に出力させるアウト・オブ・オーダ制御手段と、
上記アウト・オブ・オーダ制御手段が上記入力バッファ手段へ取り出し指示した位置に対応する位置に、補間された出力画素値を一時記憶し、上記画素入力手段が入力したのと同じ順序で出力画素値を出力する出力バッファ手段とを有することを特徴とする色変換装置。
【請求項２】
入力画素値を線順次で色変換装置本体へ入力する画素値入力手段と、
入力画素値の線順次の順番を、隣接画素からなるブロックごとにブロック内で予め定められたスキャン順でスキャンするブロック順次の順番に変換して画素値を出力するスキャン順変換手段と、
入力画素値から、入力画素値が属する部分空間を示すインデックス信号を出力するインデックス変換手段と、
入力画素値から、部分空間内部での入力画素値の位置を示すデルタ信号を出力するデルタ変換手段と、
インデックス信号から、対応する部分空間の頂点に位置する格子点の補間係数を出力する係数保持手段と、
補間係数およびデルタ信号から、補間処理により出力画素値を求め、出力する補間手段と、
出力画素値のブロック順次の順番を、上記画素入力手段が出力した線順次の順番になるように逆変換し、出力画素値を出力するスキャン順逆変換手段と、
上記係数保持手段から読み出しがあった補間係数と、対応するインデックス信号とを一時記憶し、一時記憶してある補間係数の読み出し指示があった場合には、上記係数保持手段に代わって補間係数を出力し、一時記憶していない補間係数の読み出し指示があった場合には、インデックス信号を上記係数保持手段に出力し補間係数を読み出す係数キャッシュ手段とを有することを特徴とする色変換装置。
【請求項３】
入力画素値を色変換装置本体へ入力する画素値入力手段と、
入力画素値から、入力画素値が属する部分空間を示すインデックス信号を出力するインデックス変換手段と、
入力画素値から、部分空間内部での入力画素値の位置を示すデルタ信号を出力するデルタ変換手段と、
インデックス信号から、対応する部分空間の頂点に位置する格子点の補間係数を出力する係数保持手段と、
補間係数およびデルタ信号から、補間処理により出力画素値を求め、出力する補間手段と、
上記係数保持手段から読み出しがあった補間係数と、対応するインデックス信号とを一時記憶し、一時記憶してある補間係数の読み出し指示があった場合には、上記係数保持手段に代わって補間係数を出力し、一時記憶していない補間係数の読み出し指示があった場合は、対応するインデックス信号を制御手段に通知する係数一時記憶手段と、
上記インデックス変換手段および上記デルタ変換手段からそれぞれ出力されたインデックス信号およびデルタ信号を対で一時記憶したのち出力する入力バッファ手段と、
上記入力バッファ手段に指示し一時記憶されているインデックス信号およびデルタ信号を所定の順序で読み出し、上記係数一時記憶手段に補間係数の読み出し指示を行ない、上記係数一時記憶手段から一時記憶している補間係数の出力を行わせ、上記係数一時記憶手段から一時記憶していないインデックス信号が通知された場合は、上記係数保持手段に、対応するインデックス信号を出力し、上記係数保持手段から対応する補間係数を受け取った時点で、対応する補間係数を上記係数一時記憶手段に一時記憶させ、さらに、上記入力バッファ手段に指示し対応するインデックス信号およびデルタ信号を出力させる制御手段と、
上記制御手段が上記入力バッファ手段へ取り出し指示した位置に対応する位置に、補間された出力画素値を一時記憶し、上記画素入力手段が入力したのと同じ順序で出力画素値を出力する出力バッファ手段とを有することを特徴とする色変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、所定の色空間で表現された画素値を、異なる色空間で表現した画素値に変換して出力する色変換装置に関する。
【０００２】
【従来の技術】
所定の色空間で表現された入力画素値を、異なる色空間で表現した画素値に変換し、出力画素値として出力する装置がある。以下、入力画素値が表現された色空間を入力色空間、同様に、出力画素値が表現された色空間を出力色空間と言う。画素値を変換する装置は、様々な方式のものがある。
【０００３】
例えば、テレビジョン装置で良く知られているように、ＲＧＢで表現される入力色空間を、ＹＣｂＣｒで表現される出力色空間に変換する装置がある。ＲＧＢからＹＣｂＣｒへの色空間処理は、Ｙ＝０．６Ｇ＋０．３Ｒ＋０．１Ｂ、Ｃｂ＝Ｙ−Ｂ、Ｃｒ＝Ｙ−Ｒという簡単な変換式で表わすことができる。したがって、ＲＧＢからＹｃｂＣｒへの色変換装置は、前記変換式を処理する演算装置により実現することができる。
【０００４】
ところが、入力色空間から出力色空間への変換処理が複雑で、簡単な変換式で表現できない場合がある。例えば、スキャナ装置で入力したＲＧＢを印刷装置のＹＭＣに変換する場合である。前記ＲＧＢは、スキャナの光センサのスペクトル特性に応じた色空間であり、前記ＹＭＣは、印刷機のインクのスペクトル特性や、網点の階調特性に応じた色空間であるため、両者の関係は非線形となることが多く、変換式は複雑になる。したがって、変換式を実行する演算装置を用いて変換装置を実現すると、装置規模が大きくなる、あるいは、処理時間が長くなるなどの問題が生じる。
【０００５】
入力色空間から出力色空間への変換が複雑な場合に対応するために、入力画素値に対する出力画素値を予め変換テーブルに保持しておき、単なる変換テーブルを参照する処理により色変換を実現する装置がある。
【０００６】
ところが、入力画素値の種類、すなわち階調数が増大すると、変換テーブルの容量が急激に増大するという問題がある。例えば、入力色空間がＲＧＢ各々ｎ階調で表現される場合、変換テーブルの容量は、ｎ3となる。
【０００７】
入力画素値の階調数が多い場合に対応するために、変換テーブルを複数の部分に分割し、部分空間の格子点の位置だけに出力画素値を保持しておき、入力画素値に対応する格子点が無い場合は、周辺の格子点の値から補間して用いる装置がある。すなわち、図１３に示すように、このような変換装置は、画素値入力手段１０１、インデックス変換手段１０２、デルタ変換手段１０３、係数保持手段１０６、補間手段１０８を有してなる。そして、入力色空間の部分空間の境界に位置する格子点について、対応する出力画素値（以下、補間係数）を変換テーブルとして予め係数保持手段１０６に保持しておき、入力画素値１１０を所属する部分空間の位置（インデックス）１１１と、部分空間内部の位置（デルタ信号）１１２とに変換する。部分空間を構成する格子点に対応する補間係数１２０をインデックスに基づいて変換テーブルから取り出し、補間係数１２０と部分空間内部の位置（デルタ信号）１１２とを用いて、補間手段１０８が補間を行い出力画素値１２３を求める。このような構成によれば、変換テーブルの容量を削減することができる。このような色変換装置としては、例えば、特公昭５８−１６１８０号公報に開示されたものがある。
【０００８】
ところが、補間方法によっては、変換テーブルの参照回数が増えるという問題がある。参照する格子点の数をＧとすると、変換テーブルの参照回数は、Ｇに比例する。例えば、ＲＧＢなどの３色の入力色空間の場合、入力色空間を複数の直方体に分割し、直方体を構成する８点の格子点を用いて線形補間する場合を考える。このとき、入力画素値をひとつ処理するために、変換テーブルを８回参照しなければならない。
【０００９】
変換テーブルを参照する回数を減らすために、格子点の取り方を工夫した装置がある。例えば、特開平５−４６７５０号公報あるいは特公平８−１４８４３号公報に開示された色変換装置は、３色の入力色空間で、入力画素値が属する三角柱の頂点を格子点として用いている。直方体の頂点８点に比べて、三角柱の頂点６点に削減することにより、変換テーブに参照回数も１入力画素当り８回を６回に削減している。
【００１０】
ところが、補間処理で参照する格子点を減らすと、補間誤差が大きくなるという問題がある。補間誤差が大きくなると、色変換誤差が大きくなり、色変換装置としての性能が低下する。
【００１１】
また、前記変換テーブルによる色変換装置では、入力色空間の色数が増える場合にも、変換テーブルの参照回数が増えるという問題がある。入力色空間の数をＤとすると、変換テーブルの参照回数は、２Dとなる。ただし、Ｄ次元直方体の頂点を格子点として使用するとする。例えば、ＹＭＣからなる３色の入力色空間では、１画素当り８回であるのに対して、ＹＭＣＫからなる４色の入力色空間では１画素当り１６回の参照が必要となる。
【００１２】
４色の入力色空間に対応するために、例えば、特開平８−１１６４５６号公報に開示される色変換装置のように、入力色空間をＹＭＣＫに限定して、ＹＭＣからなる３色の変換テーブルと、Ｋ単独の変換を行う装置がある。この装置は、入力色空間と出力色空間の間でＫの生成方法を大きく変えないという前提条件の下、少ない装置規模で比較的精度の高い色変換を実現できる。しかし、出力色空間でＫ生成方法を大きく変える機能は持ち得ない。
【００１３】
【発明が解決しようとする課題】
従来の色変換装置は、入力色空間から出力色空間への複雑な変換を、少ない装置規模で実現するために、変換方法を簡略化するものであった。その結果、色変換精度が少なからず低下するが、装置規模を削減する効果を優先させていた。
【００１４】
しかしながら、印刷装置やプリンタ装置などの画像出力装置の高画質化が進んでいる。従来技術の変換精度では、これらの高画質な画像出力装置に対応できない可能性があるため、変換精度を低下させる要因となりうる技術を回避することが肝要となる。具体的に以下の２点を考慮する。
（１）三角柱補間など補間方法の簡略化による補間精度の低下を避ける。
（２）ＹＭＣＫなど４色で表現された入力画素を精度良く色変換する。
【００１５】
上記を達成するためには、４色の入力色空間で十分な数の格子点を参照して補間すればよい。しかし、前述した通り、入力色数と格子点数を増やすと、いずれも変換テーブルを参照する回数が増大し、問題となる。例えば、ＹＭＣＫからなる入力色空間で、４次元の超立方体の頂点を格子点として参照する場合、一つの入力画素を色変換するために、変換テーブルを１６回参照しなければならない。ここで、２４［ｄｏｔｓ／ｍｍ］の解像度で標本化され、ＹＭＣＫ各色８［ｂｉｔ／ｐｉｘｅｌ］の階調精度で量子化されたＪＩＳのＡ４サイズの画像データを１秒でＹＭＣＫの出力色空間へ変換することを考える。画像データは、総計３５［Ｍｐｉｘｅｌ］であるから、入力画素値値は、３５［Ｍｐｉｘｅｌ／ｓｅｃ］の速度で色変換装置に入力される。このとき、変換テーブルの読み出し帯域は、３５［Ｍｐｉｘｅｌ／ｓｅｃ］＊１６＊４［Ｂｙｔｅ］＝２．２４［Ｇｂｙｔｅ／ｓｅｃ］に達する。また、変換テーブルの容量は、入力色空間の分割数を各色当り２5＝３２分割とすると、３２4＊４［Ｂｙｔｅ］＝４［Ｍｂｙｔｅ］となる。しかも、変換テーブルのアクセス順序は入力画素値に依存して決まり、必ずしも連続したアドレスにはなり得ないため、バースト・アクセスのような高速読み出し手法が適用できない。このような、高速で、大容量で、アクセス・パタンに規則性がない記憶手段を実現することは困難である。あるいは、実現できたても装置規模が大きいという問題がある。図１４に、ページ当りの処理速度と必要な変換テーブルの読み出し帯域を示す。図の様に、毎分６０ページを超えるとギガ・バイト級の読み出し帯域を持った、ランダム・アクセス可能なメモリ・デバイスが必要となり、このままでは実現することが困難である。
【００１６】
本発明の課題は、４色の入力色空間で十分な数の格子点を参照して補間する色変換装置において、変換精度を低下させることなく、変換テーブルへの参照回数を減らし、装置規模の増大を抑えることである。
【００１７】
【課題を解決するための手段】
変換テーブルは、一般的なメモリ・デバイスで実現できる。メモリ・デバイスは、高速アクセス可能なものは、記憶容量が小さく、逆に、記憶容量が大きいものはアクセス速度が遅い傾向がある。汎用コンピュータでは、高速アクセスと大容量記憶を両立させるために、メモリを階層的に構成している。例えば、演算器の近辺に小容量だが高速なメモリすなわちキャッシュ・メモリを置き、これよりも遠いところに大容量だが低速なメモリすなわち主記憶を配置する。もともとのデータは主記憶にあり、演算器が一度、主記憶から読み出したデータは、キャッシュ・メモリにキャッシュしておく。同じデータを演算器が読み出す場合、データは主記憶の代わりにキャッシュ・メモリから読み出される。こうすることで、演算器が主記憶から一度読み込んだデータを繰り返し読み出す場合に、高速に読み出すことができる。
【００１８】
汎用計算機の階層メモリ構成と同様の考え方で、色変換装置の変換テーブルと補間手段との間に係数キャッシュ・メモリを設け、補間手段が変換テーブルから一度読み出した補間係数を係数キャッシュ・メモリに蓄えておき、同じ補間係数を読み出す場合は、変換テーブルの代わりに係数キャッシュ・メモリから読み出す。こうすることで、変換テーブルの実効的なアクセス回数を減らすことができるため、色変換速度を低下せせることなく、変換テーブルをより低速度なメモリで構成することができる。
【００１９】
ただし、汎用計算機の階層メモリ構成と考え方が似ているだけで、以下に示すような違いがある。
（１）読み出したデータだけをキャッシュすればよい。汎用計算機のように書き込みに起因してキャッシュと主記憶との間のデータの一貫性を保つための複雑な動作は不要である。
（２）単純に係数キャッシュ・メモリを設けただけでは、入力画像データの特性に依存して、キャッシュのヒット率が上がらない。逆に、入力画像の特性を利用してヒット率を向上させ得る。
したがって、以下に示すように色変換装置に特化した階層メモリ構成となる。先ず、それぞれの手法について概要を記す。
【００２０】
アウト・オブ・オーダ手法は、係数キャッシュのヒット率を向上させるために、既にキャッシュされている係数を用いて補間できる入力画素値から先に色変換する。入力画素値の色変換は、その画素だけに依存する独立した処理であるため、入力画素データの処理順は、任意で構わない。ヒット率が向上するように色変換する順序を積極的に変える手法である。
【００２１】
ビット混合手法は、変換テーブルをメモリで構成するときに、入力色空間で距離の近い格子点の補間係数をメモリ・アドレス空間においても近いアドレスに配置することにより、キャッシュのヒット率を向上させる手法である。一般的な画像データの特性として、ある画素値があるとき、その周囲に同じような値の画素値があることが期待できる。すなわち、ある部分空間に属する入力画素値があった場合、近い将来その近辺の部分空間に属する画素値が入力されやすい。したがって、補間係数をキャッシュする場合、ミス・ヒットを起こした補間係数といっしょに、その周辺の補間係数もキャッシュすることが有効である。キャッシュは、通常、メモリの連続したアドレスに対してライン・サイズ分だけのデータを一度にキャッシュする。従って、入力色空間で距離の近い格子点の補間係数をメモリ・アドレス空間においても近いアドレスに配置することによって、ミス・ヒットを起こした補間係数といっしょに、その周辺の補間係数もキャッシュすることが可能になる。
【００２２】
スキャン順序変更手法は、入力画素値の変換処理の順序を、画素間相関が高くなるような順序に変更することにより、係数キャッシュのヒット率を向上させる手法である。前述したように、一般的な画像データの特性として、ある画素値があるとき、その周囲に同じような値の画素値があることが期待できる。すなわち、隣合う画素間の画素値の相関が高い。入力画素値の入力順序は、画像の右から左、上から下へ走査する、ラスタ走査順が多い。ところが、ラスタ走査順だと、画像の１次元方向の画素間相関しか利用していない。したがって、走査順を２次元的な走査順にすることで、画像の２次元方向の画素間相関も利用し、よりヒット率を高めることができる。
【００２３】
先読み手法は、係数キャッシュのヒット率を向上させるために、入力画素値を先読みし、将来必要となる補間係数を予め読み込んでおく手法である。汎用コンピュータのキャッシュは、インストラクション・キャッシュであれデータ・キャッシュであれ、インストラクションを実行した結果として、初めて将来必要となるインストラクション、あるいは、データが確定する。しかし、補間係数の場合は、入力画素値だけに依存して一意に決まる。したがって、入力画素値の入力順序が決まれば、将来必要となる補間係数が確定される。通常のキャシュでは、キャッシュに一時記憶されていないデータの読み出しがあった場合、読み出し速度の遅い主記憶からデータが読みだされる。したがって、その間、全ての処理が待たされる。画像データの一般的な性質として、似たような画素値が連続することが期待できるが、キャッシュにヒットするかいなかは、当然のことながら入力画像に依存してゆらぐ。例えば、数画素連続してキャッシュにヒットした後、数画素連続して、ミス・ヒットするかもしれない。先読み手法は、このようなゆらぎを緩衝し、平均的な補間係数の読み出し速度を向上させるものである。
【００２４】
さらに、本発明を説明する。
【００２５】
請求項１の発明によれば（図１を参照して後述する実施例の参照符号を用いて説明する）、色変換装置に、入力画素値を色変換装置本体へ入力する画素値入力手段１と；入力画素値から、入力画素値が属する部分空間を示すインデックス信号を出力するインデックス変換手段２と；入力画素値から、部分空間内部での入力画素値の位置を示すデルタ信号を出力するデルタ変換手段３と；インデックス信号から、対応する部分空間の頂点に位置する格子点の補間係数を出力する係数保持手段６と；補間係数およびデルタ信号から、補間処理により出力画素値を求め、出力する補間手段８と；上記係数保持手段から読み出された補間係数と、対応するインデックス信号とを一時記憶し、一時記憶してある補間係数の読み出し指示があった場合には、上記係数保持手段に代わって補間係数を出力し、一時記憶していない補間係数の読み出し指示があった場合には、インデックス信号を上記係数保持手段に出力し補間係数を読み出す係数キャッシュ手段７とを設けている。
【００２６】
この構成によれば、キャッシュ手段を設けることにより、変換テーブルの読み出し帯域を増大させることなく、高い精度で色変換を行なうことができる。
【００２７】
また、請求項２の発明によれば（図１を参照して後述する実施例の参照符号を用いて説明する）、色変換装置に、入力画素値を色変換装置本体へ入力する画素値入力手段１と；入力画素値から入力画素値が属する部分空間を示すインデックス信号を出力するインデックス変換手段２と；入力画素値から部分空間内部での入力画素値の位置を示すデルタ信号を出力するデルタ変換手段３と；インデックス信号から対応する部分空間の頂点に位置する格子点の補間係数を出力する係数保持手段６と；補間係数およびデルタ信号から補間処理により出力画素値を求め出力する補間手段８と；上記係数保持手段から読み出された補間係数と、対応するインデックス信号とを一時記憶し、一時記憶してある補間係数の読み出し指示があった場合には、上記係数保持手段に代わって補間係数を出力し、一時記憶していない補間係数の読み出し指示があった場合には、インデックス信号を上記係数保持手段に出力し補間係数を読み出す係数キャッシュ手段７と；上記インデックス変換手段および上記デルタ変換手段からそれぞれ出力されたインデックス信号およびデルタ信号を対で一時記憶したのち出力する入力バッファ手段５と；上記入力バッファ手段に指示し一時記憶されているインデックス信号を読み出し、上記係数キャッシュ手段に指示し一時記憶されているインデックス信号を読み出し、上記入力バッファ手段および上記係数キャッシュ手段からそれぞれ読み出されるインデックス信号を比較し、一致しているときにキャッシュされた補間係数を用いて補間処理できると判断し、補間できるものから先に、上記入力バッファ手段から取り出し指示し、上記補間手段に出力させるアウト・オブ・オーダ制御手段４と；上記アウト・オブ・オーダ制御手段が上記入力バッファ手段へ取り出し指示した位置に対応する位置に、補間された出力画素値を一時記憶し、上記画素入力手段が入力したのと同じ順序で出力画素値を出力する出力バッファ手段９とを設けている。
【００２８】
この構成は、上述アウト・オブ・オーダ手法に従うものであり、ヒットするインデックスから先に係数を読み出すようにして積極的にヒット率を向上させることができる。
【００２９】
また、請求項３の発明によれば（図７を参照して後述する実施例の参照符号を用いて説明する）、色変換装置に、入力画素値を色変換装置本体へ入力する画素値入力手段１と；入力画素値から、入力画素値が属する部分空間を示すインデックス信号を出力するインデックス変換手段２と；入力画素値から、部分空間内部での入力画素値の位置を示すデルタ信号を出力するデルタ変換手段３と；インデックス信号から、対応する部分空間の頂点に位置する格子点の補間係数を出力する係数保持手段６であって、入力色空間において距離の近い格子点に対する補間係数を、メモリ・アドレス空間において近いアドレスに保持するものと；補間係数およびデルタ信号から、補間処理により出力画素値を求め、出力する補間手段８と；上記係数保持手段から読み出しがあった補間係数と、対応するインデックス信号とを一時記憶し、一時記憶してある補間係数の読み出し指示があった場合には、上記係数保持手段に代わって補間係数を出力し、一時記憶していない補間係数の読み出し指示があった場合には、インデックス信号を上記係数保持手段に出力し補間係数を読み出す係数キャッシュ手段７とを設けている。
【００３０】
この構成は、上述のビット混合手法に従うものであり、隣接画素の色の相関をメモリ・アドレスに反映させることにより、ヒット率を向上させることができる。
【００３１】
請求項４の発明によれば（図９を参照して後述する実施例の参照符号を用いて説明する）、色変換装置に、入力画素値を色変換装置本体へ入力する画素値入力手段１と；スキャン順を画素間相関が高くなるように、入力画素値の順番を変更して画素値を出力するスキャン順変換手段５１と；入力画素値から、入力画素値が属する部分空間を示すインデックス信号を出力するインデックス変換手段２と；入力画素値から、部分空間内部での入力画素値の位置を示すデルタ信号を出力するデルタ変換手段３と；インデックス信号から、対応する部分空間の頂点に位置する格子点の補間係数を出力する係数保持手段６と；補間係数およびデルタ信号から、補間処理により出力画素値を求め、出力する補間手段と；出力画素値の順番を、上記画素入力手段が出力した順番になるように逆変換し、出力画素値を出力するスキャン順逆変換手段５３と；上記係数保持手段から読み出しがあった補間係数と、対応するインデックス信号とを一時記憶し、一時記憶してある補間係数の読み出し指示があった場合には、上記係数保持手段に代わって補間係数を出力し、一時記憶していない補間係数の読み出し指示があった場合には、インデックス信号を上記係数保持手段に出力し補間係数を読み出す係数キャッシュ手段７とを設けている。
【００３２】
この構成は、スキャン順序変更手法に従うものであり、ヒット率が向上するようなスキャン順序で処理を行なう。
【００３３】
また、請求項５の発明によれば（図１１を参照して後述する実施例の参照符号を用いて説明する）、色変換装置に、入力画素値を色変換装置本体へ入力する画素値入力手段１と；入力画素値から、入力画素値が属する部分空間を示すインデックス信号を出力するインデックス変換手段２と；入力画素値から、部分空間内部での入力画素値の位置を示すデルタ信号を出力するデルタ変換手段３と；インデックス信号から、対応する部分空間の頂点に位置する格子点の補間係数を出力する係数保持手段６と；補間係数およびデルタ信号から、補間処理により出力画素値を求め、出力する補間手段８と；上記係数保持手段から読み出しがあった補間係数と、対応するインデックス信号を一時記憶し、一時記憶してある補間係数の読み出し指示があった場合には、上記係数保持手段に代わって補間係数を出力し、一時記憶していない補間係数の読み出し指示があった場合には、インデックス信号を上記係数保持手段に出力し補間係数を読み出す係数キャッシュ手段７と；インデックス信号およびデルタ信号を対で一時記憶し、インデックス信号およびデルタ信号を、ファースト・イン・ファースト・アウトの態様で出力する入力バッファ手段５とを設けている。
【００３４】
この構成は、上述先読み手法に従うものであり、先行して読み出しを行なってヒット率を向上させるものである。
【００３５】
また、請求項６の発明によれば（図４を参照して後述する実施例の参照符号を用いて説明する）、色変換装置に、入力画素値を色変換装置本体へ入力する画素値入力手段１と；入力画素値から、入力画素値が属する部分空間を示すインデックス信号を出力するインデックス変換手段２と；入力画素値から、部分空間内部での入力画素値の位置を示すデルタ信号を出力するデルタ変換手段３と；インデックス信号から、対応する部分空間の頂点に位置する格子点の補間係数を出力する係数保持手段５６と；補間係数およびデルタ信号から、補間処理により出力画素値を求め、出力する補間手段８と；上記係数保持手段から読み出しがあった補間係数と、対応するインデックス信号とを一時記憶し、一時記憶してある補間係数の読み出し指示があった場合には、上記係数保持手段に代わって補間係数を出力し、一時記憶していない補間係数の読み出し指示があった場合は、対応するインデックス信号を制御手段に通知する係数一時記憶手段５７と；上記インデックス変換手段および上記デルタ変換手段からそれぞれ出力されたインデックス信号およびデルタ信号を対で一時記憶したのち出力する入力バッファ手段５５と、；上記入力バッファ手段に指示し一時記憶されているインデックス信号およびデルタ信号を所定の順序で読み出し、上記係数一時記憶手段から一時記憶していないインデックス信号が通知された場合は、上記係数保持手段に、対応するインデックス信号を出力し、上記係数保持手段から対応する補間係数を受け取った時点で、対応する補間係数を上記係数一時記憶手段に一時記憶させ、さらに、上記入力バッファ手段に指示し対応するインデックス信号およびデルタ信号を出力させる制御手段５４と；上記制御手段が上記入力バッファ手段へ取り出し指示した位置に対応する位置に、補間された出力画素値を一時記憶し、上記画素入力手段が入力したのと同じ順序で出力画素値を出力する出力バッファ手段９とを設けている。
【００３６】
この構成は、アウト・オブ・オーダの他の手法に従うものであり、先の構成と同様にヒット率を向上させる。
【００３７】
本明細書にいおては、色変換には色補正も含まれるものとする
【００３８】
【発明の実施の形態】
以下、この発明の実施例について説明する。
［実施例１］
この実施例はアウト・オブ・オーダ手法を利用したものである。図１は、この実施例の構成を示すものであり、この図において、色変換装置は、画素値入力部１、出力するインデックス変換部２、デルタ変換部３、アウト・オブ・オーダ制御部４、入力バッファ５、係数保持メモリ６、係数キャッシュ７、補間部８および出力バッファ９を含んで構成されている。
【００３９】
画素値入力部１は、入力画素値１０を色変換装置本体へ入力するものである。インデックス変換部２は、入力画素値１０から、入力画素値が属する部分空間を示すインデックス信号１１を出力するものである。デルタ変換部３は、入力画素値１０から、部分空間内部での入力画素値の位置を示すデルタ信号１２を出力するものである。係数保持メモリ６は、インデックス信号２１から、対応する部分空間の頂点に位置する格子点の補間係数２０を出力するものである。補間部８は、補間係数２２とデルタ信号１９から、補間処理により出力画素値２３を求め、出力するものである。係数キャッシュ７は、一度、係数保持メモリ６から読み出しがあった補間係数２０と対応するインデックス信号２１を一時記憶し、一時記憶してある補間係数の読み出しがあった場合には、係数保持メモリ６に代わって補間係数２２を出力し、一時記憶していない補間係数の読み出しがあった場合には、インデックス信号２１を係数保持メモリ６に出力し補間係数２０を読み出すものである。入力バッファ５は、インデックス信号１１とデルタ信号１２を対で一時記憶し、アウト・オブ・オーダ制御部４の指示１７に従ってインデックス信号１８とデルタ信号１９を出力するものである。アウト・オブ・オーダ制御部４は、入力バッファ５に指示し（指示を１３で示す）一時記憶されているインデックス信号１４を読み出し、係数キャッシュ７に指示し（指示を１５で示す）一時記憶されているインデックス信号１６を読み出し、両者を比較し、一致しているときにキャッシュされた補間係数で補間できると判断し、補間できるものから先に、入力バッファから取り出し指示し（指示を１７で示す）、補間部に出力させるものである。出力バッファ９は、制御部４が入力バッファへ取り出し指示した（指示を１７で示す）位置に対応して補間された出力画素値２３を一時記憶し、画素入力手段１が入力したのと同じ順序で出力画素値２４を出力するものである。
【００４０】
次に、図２を参照しながら動作を説明する。図２は、一ページ分の入力画素値を色変換処理して、出力する動作の流れを示す。
【００４１】
［ステップＳ３１］：画素入力手段１から入力画素値１０が読み出され、入力画素値１０はインデックス変換部２でインデックス信号１１に変換され、同時に入力画素値１０はデルタ変換部３でデルタ信号１２に変換され、各々入力バッファ５に書き込まれる。
［ステップＳ３２］：ステップＳ３１で処理した入力画素数を計数し、所定の画素数に達するまで処理ステップＳ３１を繰り返す。
［ステップＳ３３］：アウト・オブ・オーダ制御部４が係数キャッシュ７に指示し（指示を１５で示す）、一時記憶しているインデックス１６を出力させる。
［ステップＳ３４］：アウト・オブ・オーダ制御部４が入力バッファ５に指示し（指示を１３で示す）、一時記憶しているインデックス１４を出力させる。
［ステップＳ３５］：アウト・オブ・オーダ制御部４がインデックス１６とインデックス１４を比較し、一致しているか否か、すなわち、キャッシュされている補間係数で補間処理できるか否かを判断する。
［ステップＳ３６］：ステップＳ３５でインデックスが一致している場合は、アウト・オブ・オーダ制御部４が入力バッファ５に指示し（指示を１７で示す）、ステップＳ３４で指示した（指示を１３で示す）のと同じ入力画素に対応するインデックス信号１８とデルタ信号１９を読み出す。
［ステップＳ３７］：係数キャッシュ７がインデックス信号１８を受けて、対応する補間係数２２を出力する。
［ステップＳ３８］：補間部８が補間係数２２とデルタ信号１９から補間処理を行い、結果を出力画素値２３として出力し、アウト・オブ・オーダ制御部４の指示１７に対応して出力画素値２３が出力バッファ９に書き込まれる。すなわち、入力バッファ５から取り出したのと同じ位置に書き込むことにより、入力画素値を入力した順序と同じ並びで出力バッファ９に出力画素値を書き込む。
［ステップＳ３９］：ステップＳ３５でインデックスが一致していない場合は、入力バッファ５からすべてのインデックスを読み出して比較したか否かを判断し、比較していないものが残っていれば、ステップＳ３４へ処理が移る。
［ステップＳ４０］：ステップＳ３９ですべてのインデックスを比較し終わっている場合は、係数キャッシュ７から全てのインデックスを読み出して比較したか否かを判断し、比較していないものが残っていればステップＳ３３へ処理が移る。
［ステップＳ４４］：ステップＳ４０ですべてのインデックスを比較し終わっている場合は、入力バッファ５に一時記憶したインデックスとデルタに対して、すべてを変換処理し終えたか否かを判断し、変換していないものが残っていれば４１へ処理が移る。
［ステップＳ４１］：アウト・オブ・オーダ制御部４が入力バッファ５に指示し（指示を１７で示す）、まだ変換処理されていないインデックス１８とデルタ１９を読み出す。
［ステップＳ４２］：係数キャッシュ７がインデックス信号１８を受けて、一時記憶されていないインデックスの場合は、係数保持メモリ６に対してインデックス信号２１を出力し、対応する補間係数２０を受け取り、これを一時記憶すると同時に、補間部８に対して補間係数２２を出力する。一時記憶されているインデックスの場合は、係数キャッシュ７が直接、対応する補間係数２２を出力する。
［ステップＳ４３］：ステップＳ３８と同様の処理がされる。
［ステップＳ４５］：ステップＳ４４ですべての変換が終了している場合は、出力バッファ９から出力画素値が出力される。
［ステップＳ４６］：一ページの変換処理が終了したか判断し、終了するまで、以上の動作を繰り返す。
【００４２】
図３は、実施例１の具体的な構成例（画像処理装置）を示すものであり、この構成例は、とくに、アオウト・オブ・オーダ制御部４を比較器２５および制御部２６から構成するものである。図３の画像処理装置は、画素値入力部１より入力された印刷用のＣＭＹＫ信号１０を色変換しカラープリンタのような画像出力装置に出力２４するものである。
【００４３】
入力されたＣＭＹＫ信号１０はＣ、Ｍ、Ｙ、Ｋ各８ビットのデータである。Ｃ、Ｍ、Ｙ、Ｋ各データ１０はインデックス変換部２およびデルタ変換部３に入力され、各データの上位５ビットによって２０ビットで表現されるテーブル参照値１１と、各データの下位３ビットによって１２ビットで表現される部分空間位置１２が生成され、テーブル参照値１１と部分空間位置１２の対を複数保存することが可能である入力バッファ５に保存される。
【００４４】
係数キャッシュ７には以前に係数保持メモリ６の参照に使用されたテーブル参照値２１および参照の結果得られた補間係数２０の対が保持されており、比較器２５は入力バッファ５に保存されたテーブル参照値が係数キャッシュに含まれているか否かの真偽を制御部２６に入力２８し、制御部２６は係数キャッシュ７に含まれているテーブル参照値をもつテーブル参照値１１と部分空間位置１２を優先的に係数キャッシュ７及び補間処理部１９に入力するように入力バッファ５を制御する。
【００４５】
係数キャッシュ７は入力されたテーブル参照値１８に対し、同じテーブル参照値をもつテーブル参照値と補間係数の対を保持している場合には保持している補間係数を補間処理部８に入力し、保持していない場合には係数保持メモリ６よりテーブル参照値に対応する補間係数を取得し補間処理部８に入力するとともに、新たに取得した補間係数とテーブル参照値の対を保持する。
【００４６】
補間処理部８は入力された補間係数２２および内部位置１９から色変換されたＣＭＹＫ信号２３を補間演算により生成し、出力バッファ９に入力する。
【００４７】
出力バッファ９は制御部２６の制御１７を受けて、入力バッファ５により変更されたデータ順を復元する。
【００４８】
以上で、アウト・オブ・オーダ手法の実施例の説明を終了する。
【００４９】
［実施例２］
図４はこの発明の実施例２の構成を示しており、この実施例２は、もうひとつのアウト・オブ・オーダ手法を実装したものである。なお、図４において、図１と対応する箇所には対応する符号を付した。
【００５０】
図４において、実施例２の色変換装置は、画素値入力部１、インデックス変換部２、デルタ変換部３、補間部８、出力バッファ９、制御部５４、入力バッファ５５、係数保持メモリ５６および係数一時記憶部５７を含んで構成されている。
【００５１】
この構成でも、画素入力手段１は、入力画素値１０を色変換装置本体へ入力する。インデックス変換部２は、入力画素値１０から、入力画素値が属する部分空間を示すインデックス信号１１を出力する。デルタ変換部３は、入力画素値１０から、部分空間内部での入力画素値の位置を示すデルタ信号１２を出力する。係数保持メモリ５６は、インデックス信号６１から、対応する部分空間の頂点に位置する格子点の補間係数６０を出力する。補間部８は、補間係数２２とデルタ信号６９から、補間処理により出力画素値２３を求め、出力する。係数一時記憶部５７は、一度係数保持メモリ５６から読み出しがあった補間係数６０と対応するインデックス信号６１を一時記憶し、一時記憶してある補間係数の読み出しがあった場合には、係数保持メモリ５６に代わって補間係数２２を出力し、一時記憶していない補間係数の読み出しがあった場合は、対応するインデックス信号６６を制御部５４に通知する。入力バッファ５５は、インデックス信号１１とデルタ信号１２を対で一時記憶し、制御部５４の指示６７に従ってインデックス信号６８とデルタ信号６９を出力する。制御部５４は、入力バッファ５５に指示し（指示を６７で示す）一時記憶されているインデックス信号６８とデルタ信号６９を所定の順序で読み出し、係数一時記憶部５７から一時記憶していないインデックス信号６６が通知された場合は、係数保持メモリ５６に対応するインデックス信号６１を出力し、係数保持メモリ５６から対応する補間係数６０を受け取った時点で、対応する補間係数６５を係数一時記憶部５７に一時記憶させ、さらに、入力バッファ５５に指示し（指示を６７で示す）対応するインデックス信号６８とデルタ信号６９を出力させる。出力バッファ９は、制御部５４が入力バッファ５５へ取り出し指示した（指示を６７で示す）位置に対応して補間された出力画素値２３を一時記憶し、画素入力手段１が入力したのと同じ順序で出力画素値２４を出力する。
【００５２】
つぎに実施例２の動作について図５を参照して説明する。
［ステップＳ７０］：入力画素値１０がインデックス信号１１とデルタ信号１２に変換される。
［ステップＳ７１］：入力バッファ５５の空き状態を確認し、入力可能であれば、ステップＳ７２へ進む。
［ステップＳ７２］：インデックス信号１１とデルタ信号１２が入力バッファ５５に入力される。
［ステップＳ７３］：ページを構成するすべての入力画素を処理するまで以上の処理を繰り返す。
【００５３】
［ステップＳ７４］：出力バッファ９の空き状態を確認し、出力可能であれば、ステップＳ７５へ進む。
［ステップＳ７５］：出力画素値２４が出力バッファ９から出力される。
［ステップＳ７７］：ステップＳ７５でページを構成するすべての出力画素を処理するまで以上の処理を繰り返す。
【００５４】
［ステップＳ７８］：制御部５４が係数保持メモリ５６に読み出し指示していた補間係数の読み出しが終了しているかいなかを判断し、終了していなければ、ステップＳ７９へ進む。
［ステップＳ７９］：入力バッファ５５から所定の順序でインデックス信号６８とデルタ信号６９が指示される（指示を６７で示す）。
［ステップＳ８０］：ステップＳ７８で終了していれば、読み出した補間係数と対応するインデックス信号６５が係数一時記憶部５７に一時記憶される。さらにステップＳ８１へ進む。
［ステップＳ８１］：読み出した補間係数に対応するインデックス信号６８とデルタ信号６９が指示される（指示を６７で示す）。
［ステップＳ８２］：指示（６７）が指すインデックス信号６８とデルタ信号６９を入力バッファ５５から読み出す事が可能であることを確認し、ステップＳ８３へ進む。
［ステップＳ８３］：実際にインデックス信号６８とデルタ信号６９が読み出される。
［ステップＳ８４］：インデックス信号６８に対応する補間係数が係数一時記憶部５６に一時記憶されているかどうか判断し、一時記憶されていれば、ステップＳ８５へ進む。
［ステップＳ８５］：補間係数２２が係数一時記憶部５７から読み出され、既に入力バッファ５５から出力されているデルタ信号６９とともに、補間部８に入力され、補間部８により出力画素値２３が生成、出力される。
［ステップＳ８６］：ステップＳ８４で一時記憶されていなければ、係数一時記憶部５７が対応するインデックス信号６６が制御部５４に通知され、制御部５４によりインデックス信号６６に対応する補間係数の読み出し指示６１がなされる。
［ステップＳ８７］：出力バッファ９の空き状態を確認し、入力可能であればステップＳ８８へ進む。
［ステップＳ８８］：出力画素値２３が出力バッファ９に入力される。
［ステップＳ８９］：ページを構成するすべての出力画素値を処理するまで処理を繰り返す。
【００５５】
さらに、画素値入力部１より入力された印刷用のＣＭＹＫ信号１０を色変換しカラープリンタのような画像出力装置に出力（２４で示す）する場合を例にして説明する。
【００５６】
入力されたＣＭＹＫ信号１０はＣ、Ｍ、Ｙ、Ｋ各８ビットのデータである。Ｃ、Ｍ、Ｙ、Ｋ各データ１０はインデックス変換部２およびデルタ変換部３に入力され、各データの上位５ビットによって２０ビットで表現されるテーブル参照値１１と、各データの下位３ビットによって１２ビットで表現される部分空間位置１２が生成され、テーブル参照値１１と部分空間位置１２の対を複数保存することが可能である入力バッファ５５に保存される。
入力バッファ５５はテーブル参照値６８を係数キャッシュ５７に、部分空間位置６９を補間処理部８に入力する。
【００５７】
係数キャッシュ５７には以前に係数保持メモリ５６の参照に使用されたテーブル参照値６６および参照の結果得られた補間係数６５の対が保持されており、入力されたテーブル参照値が係数キャッシュ５７に保持されていれば対応する補間係数２２を補間処理部に出力する。
【００５８】
係数キャッシュ５７に入力されたテーブル参照値が係数キャッシュ５７に保持されていなければ制御部にテーブル参照値６６が入力され、制御部は係数保持メモリ５６に対しテーブル参照値６１を入力し補間係数６０を取得し、制御部５４は補間係数６０を係数キャッシュ５７に入力する。
【００５９】
係数キャッシュ５７は入力された補間係数を補間処理部８に入力するとともに、入力された補間係数６５とテーブル参照値６６の対を保持する。
【００６０】
補間処理部８は入力された補間係数２２および部分空間位置６９から色変換されたＣＭＹＫ信号２３を補間演算により生成し、出力バッファ９に入力する。
係数保持メモリにテーブル参照値６１が入力されてから補間係数６０を制御部５４に入力するまでの間、入力バッファ５５はあらたな入力画素値に対するテーブル参照値６８および部分空間位置６９を出力し続け、それゆえ補間処理部８から出力される色変換されたＣＭＹＫ信号２３の順序は画素値入力部１から入力されたＣＭＹＫ信号１０の順序と異なる。
【００６１】
出力バッファ９は制御部５４の制御を受けて、出力信号のデータ順が入力信号のデータ順と同じになるよう復元する。
【００６２】
つぎに実施例２の具体的な構成例を、図６を参照して説明する。図６において図４と対応する箇所には対応する符号を付した。この例では、入力バッファ５５は８ビットのデータを入力するようになっている。すなわち、ＹＭＣＫについて上位４ビットをインデックスとし、下位４ビットをデルタ信号として受け取る。１つの画素について８ビットのデータを４個（ＹＭＣＫ）受け取る。入力バッファおよび出力バッファはリングアドレスでアドレスされ循環的に利用される。図の例では、説明の便宜上、入力バッファ５５、出力バッファ９とも４個分の画素についてのインデックス、デルタ信号、出力色データを保持できるようになっている。図の状態では、入力バッファ５５のアドレスＡ０、Ａ１、Ａ２、Ａ３に、０番目、１番目、２番目、３番目の画素のインデックス（４ビット×４）およびデルタ信号（４ビット×４）ならびに出力色データが記憶される。そののち出力バッファ９のアドレスＡ０、Ａ１、Ａ２、Ａ３に出力色データが記憶される。入力バッファ５５および出力バッファ９の内部には入力順序（０、１、２、３）が表示されている。この例では、１番目の画素の色データの係数が係数保持メモリに保持されていないので入力順番を後にしている。すなわち、０番目、２番目、１番目、３番目の画素に順に、インデックスおよびデルタ信号が入力されている。そしてこれに応じて、対応する順番で出力色データが入力され、正しい順番で出力色データが出力されるようになっている。
【００６３】
以上で実施例２の説明を終了する。
【００６４】
［実施例３］
つぎにビット混合手法を実装した実施例３について説明する。
【００６５】
図７は、実施例３の色変換装置の構成を示しており、この図において図１と対応する箇所には対応する符号を付した。図７において、色変換装置は、画素値入力部１、インデックス変換部２、デルタ変換部３、係数保持メモリ６、係数キャッシュ７および補間部８を含んで構成されている。この構成においても、画素値入力部１は、入力画素値１０を色変換装置へ入力する。インデックス変換部２は、入力画素値１０から、入力画素値が属する部分空間を示すインデックス信号１１を出力する。デルタ変換部３は、入力画素値１０から、部分空間内部での入力画素値の位置を示すデルタ信号１２を出力する。係数保持メモリ６は、インデックス信号２１から、対応する部分空間の頂点に位置する格子点の補間係数２０を出力する。補間部８は、補間係数２２とデルタ信号１２から、補間処理により出力画素値２３を求め、出力する。係数キャッシュ７は、一度、係数保持メモリ６から読み出しがあった補間係数２０と対応するインデックス信号２１を一時記憶し、一時記憶してある補間係数の読み出しがあった場合には、係数保持メモリ６に代わって補間係数２２を出力し、一時記憶していない補間係数の読み出しがあった場合には、インデックス信号２１を係数保持メモリ６に出力し補間係数２０を読み出す。とくに、係数保持メモリ６は、格子点の補間係数を保持する場合に、入力色空間で距離の近い格子点を、係数保持メモリのメモリ・アドレス空間の近いアドレスに保持する。
【００６６】
図８は、係数保持メモリのアドレス構成の一例を示す。この例は、インデックス変換部２がＣ、Ｍ、Ｙ、Ｋ各８ビットより成るＣＭＹＫ信号１０のＣ、Ｍ、Ｙ、Ｋ各上位５ビットよりテーブル参照値１１を生成するための機構である。Ｃ、Ｍ、Ｙ、Ｋ各信号線の上位５本の信号線が交互に混ぜられることによって、テーブル参照値１１を出力する信号線に変換される。
【００６７】
以上で実施例３の説明を終了する。
【００６８】
［実施例４］
つぎにスキャン順序変更手法を実装した実施例４について説明する。図９は、実施例４の色変換装置の構成を示しており、この図において、図１と対応する箇所には対応する符号を付した。図９において、色変換装置は、画素値入力部１、インデックス変換部２、デルタ変換部３、係数保持メモリ６、係数キャッシュ７、補間部８、スキャン順変換部５１、スキャン順逆変換部５３を含んで構成されている。この構成においても、画素値入力部１は、入力画素値１０を色変換装置へ入力する。スキャン順変換部５１は、入力画素値１０の順番を変更して画素値５２を出力する。インデックス変換部２は、入力画素値５２から、入力画素値が属する部分空間を示すインデックス信号１１を出力する。デルタ変換部３は、入力画素値１０から、部分空間内部での入力画素値の位置を示すデルタ信号１２を出力する。係数保持メモリ６は、インデックス信号２１から、対応する部分空間の頂点に位置する格子点の補間係数２０を出力する。補間部８は、補間係数２２とデルタ信号１２から、補間処理により出力画素値２３を求め、出力する。スキャン順逆変換部５３は、出力画素値２３の順番を、画素入力手段１が出力した順番になるように逆変換し、出力画素値５４を出力する。係数キャッシュ７は、一度係数保持メモリ６から読み出しがあった補間係数２０と対応するインデックス信号２１を一時記憶し、一時記憶してある補間係数の読み出しがあった場合には、係数保持メモリ６に代わって補間係数２２を出力し、一時記憶していない補間係数の読み出しがあった場合には、インデックス信号２１を係数保持メモリ６に出力し補間係数２０を読み出す。
【００６９】
図１０は、スキャン順の一例を示す。この例では、スキャン順変換部５１が、ライン順次のスキャンを４行４列単位のブロックごとに画素をスキャンする。このように、ライン順次でなく、近接して画素を連続してスキャンするようにしているので、キャッシュヒットが増大する。スキャン順逆変換部５３はスキャン順をライン順次に戻して出力を行なう。他の動作は実施例１と同様である。
【００７０】
［実施例５］
つぎに先読み手法を実装した実施例５について説明する。図１１は実施例５の構成を示しており、この図においても図１と対応する箇所には対応する符号を付した。図１１において、色変換装置は、画素値入力部１、インデックス変換部２、デルタ変換部３、入力バッファ５、係数保持メモリ６、係数キャッシュ７および補間部８を含んで構成されている。この構成においても、画素値入力部１は、入力画素値１０を色変換装置へ入力する。インデックス変換部２は、入力画素値１０から、入力画素値が属する部分空間を示すインデックス信号１１を出力する。デルタ変換部３は、入力画素値１０から、部分空間内部での入力画素値の位置を示すデルタ信号１２を出力する。係数保持メモリ６は、インデックス信号２１から、対応する部分空間の頂点に位置する格子点の補間係数２０を出力する。補間部８は、補間係数３１とデルタ信号３２から、補間処理により出力画素値２４を求め、出力する。係数キャッシュ７は、一度係数保持メモリ６から読み出しがあった補間係数２０と対応するインデックス信号２１を一時記憶し、一時記憶してある補間係数の読み出しがあった場合には、係数保持メモリ６に代わって補間係数２２を出力し、一時記憶していない補間係数の読み出しがあった場合には、インデックス信号２１を係数保持メモリ６に出力し補間係数２０を読み出す。入力バッファ５はファースト・イン・ファースト・アウトで動作するものであり、インデックス信号１１とデルタ信号１２を対で一時記憶し、インデックス信号３１とデルタ信号３２を出力する。
【００７１】
つぎに、画素値入力部１より入力された印刷用のＣＭＹＫ信号１０を色変換しカラープリンタのような画像出力装置に出力２４する場合を例にしてさらに説明する。
【００７２】
入力されたＣＭＹＫ信号１０はＣ、Ｍ、Ｙ、Ｋ各８ビットのデータである。Ｃ、Ｍ、Ｙ、Ｋ各データ１０はインデックス変換部２およびデルタ変換部３に入力され、各データの上位５ビットによって２０ビットで表現されるテーブル参照値１１と、各データの下位３ビットによって１２ビットで表現される部分空間位置１２が生成され、テーブル参照値１１は係数キャッシュ７に入力され、部分空間位置１２は入力バッファ５に保存される。
【００７３】
係数キャッシュ７は入力されたテーブル参照値１１に対し、同じテーブル参照値をもつテーブル参照値と補間係数の対を保持している場合には保持している補間係数を入力バッファ５に入力し、保持していない場合には係数保持メモリ６よりテーブル参照値に対応する補間係数を取得し入力バッファ５に入力するとともに、新たに取得した補間係数とテーブル参照値の対を保持する。
【００７４】
入力バッファ５は補間係数と部分空間位置の対を補間処理部８に入力し、補間処理部８は入力された補間係数３１および内部位置３２から色変換されたＣＭＹＫ信号２４を補間演算により生成し、出力する。
【００７５】
入力バッファは補間係数と部分空間位置の対を補間処理部８に入力した後に、画素値入力部１に対し新たな画素値を出力するよう画素値要求信号５０を出力し、補間処理部８が補間演算を行なう間に、次の画素における補間係数と部分空間位置を取得するための処理を進行させる。
【００７６】
つぎに実施例５の具体的な構成について説明する。図１２は、この構成例を示しており、図において図１１と対応する箇所には対応する符号を付した。図１２において、インデックスおよびデルタ信号は併せて３２ビットのデータとして供給される。すなわち、ＹＭＣＫのそれぞれについて４ビットのインデックスと同じく４ビットのデルタ信号があり、３２（＝４×４＋４×４）ビットとなる。係数保持メモリ（変換テーブル）６はＹＭＣＫのそれぞれについて１つのバンクを割当て４ビットのアドレスを４回受け取ってＹＭＣＫのそれぞれの係数を出力する。係数キャッシュ７も同様にバンク構成としてもよいが、この例では、ＹＭＣＫの１６（＝４×４）ビットのアドレスでエントリをアクセスするようになっている。係数キャッシュ７は、タグ部とデータ部とからなり、タグ部は４（ＹＭＣＫ）×４ビットのインデックス（変換テーブル用の）を保持している。データ部は８ビット×４色×１６の係数データを保持している。係数キャッシュ７は比較器７ａおよび制御部７ｂをさらに有している。読み出されるタグ部のインデックスが入力インデックスと一致するかどうかが判別され、一致する場合にはこれがＦＩＦＯ構成の入力バッファ５に入力される。一致しない場合には、制御部７ｂが係数保持メモリ（変換テーブル）６をイネーブルにして入力インデックスによりアクセスされるようになっている。この結果、インデックスに対応する係数が係数保持メモリ６から出力され、入力バッファ５に入力されるとともに、対応するインデックスとともに係数キャッシュ７に書込まれる。
【００７７】
なお、デルタ信号（下位４ビット×４色）はバッファ３ａを介して補間部８に供給される。このバッファ３ａの遅延分だけ係数の先読みが行なわれ、全体として持ち時間が少なくなる。
【００７８】
以上で実施例の説明を終了する。
【００７９】
【発明の効果】
以上説明したように、この発明によれば、係数の読み出しにキャッシングを採用しているので、係数保持メモリ（変換テーブル）の読み出し帯域を大きくしなくても、高精度に色変換を行なうことができる。
【００８０】
とくに、アウト・オブ・オーダ手法によれば、既にキャッシュされている係数を用いて補間できる入力画素値から先に色変換するため、キャッシュのヒット率を高めることができる。
【００８１】
また、ビット混合手法によれば、変換テーブルをメモリで構成するときに、入力色空間で距離の近い格子点の補間係数をメモリ・アドレス空間においても近いアドレスに配置することにより、入力画像の一般的な特性、すなわち、似たような画素値が連続しやすいという性質からキャッシュのヒット率を向上させることができる。
【００８２】
また、スキャン順序変更手法によれば、入力画素値の変換処理の順序を、画素間相関が高くなるような順序に変更することにより、係数キャッシュのヒット率を向上させることができる。
【００８３】
また、先読み手法によれば、キャッシにヒットして高速なキャッシュ・メモリから読み出す場合と、ミス・ヒットして遅い主記憶から読み出す場合の、補間係数の読み出し速度の揺らぎを緩衝し、平均の読み出し速度を向上させることができる。
【００８４】
したがって、いずれの手法においても、同じキャッシュ容量であれば、高速処理が可能であり、あるいは、同じ処理速度であれば、より少ないキャッシュ容量に削減することができる。
【図面の簡単な説明】
【図１】  この発明の実施例１（アウト・オブ・オーダ手法）の構成を示すブロック図である。
【図２】  上述実施例１の動作を説明するフローチャートである。
【図３】  上述実施例１の具体的な構成例を示すブロック図である。
【図４】  この発明の実施例２（他のアウト・オブ・オーダ手法）の構成を示すブロック図である。
【図５】  上述実施例２の動作を説明するフローチャートである。
【図６】  上述実施例２の具体的な構成例を示すブロック図である。
【図７】  この発明の実施例３（ビット混合手法）の構成を示すブロック図である。
【図８】  上述実施例３を具体的に説明する図である。
【図９】  この発明の実施例４（スキャン変換手法）の構成を示すブロック図である。
【図１０】  上述実施例４を具体的に説明する図である。
【図１１】  この発明の実施例５（先読み手法）の構成を示すブロック図である。
【図１２】  上述実施例５の具体的な構成例を示すブロック図である。
【図１３】  従来技術を説明する図である。
【図１４】  従来技術における係数の読み出し帯域に関する問題点を説明する図である。
【符号の説明】
１    画素値入力部
２    インデックス変換部
３    デルタ変換部
４    アウト・オブ・オーダ制御部
５    入力バッファ
６    係数保持メモリ
７    係数キャッシュ
８    補間部
９    出力バッファ
１０    入力画素値
１１    インデックス信号
１２    デルタ信号
５０    画素値要求信号
５１    スキャン順変換部
５３    スキャン順逆変換部
５４    制御部
５５    入力バッファ
５６    係数保持メモリ
５７    係数一時記憶部
【図１】
0003931461.tif 000002
【図２】
0003931461.tif 000003
【図３】
0003931461.tif 000004
【図４】
0003931461.tif 000005
【図５】
0003931461.tif 000006
【図６】
0003931461.tif 000007
【図７】
0003931461.tif 000008
【図８】
0003931461.tif 000009
【図９】
0003931461.tif 000010
【図１０】
0003931461.tif 000011
【図１１】
0003931461.tif 000012
【図１２】
0003931461.tif 000013
【図１３】
0003931461.tif 000014
【図１４】
0003931461.tif 000015