(57)【要約】【課題】安価で高速な精度の高いダイレクトマッピング方式の色変換装置を提供する。【解決手段】３次元ルックアップテーブルを安価なダイナミックメモリに格納し、色変換処理装置には高価なＳＲＡＭを全て用いず、小容量のキャッシュメモリを設けることで、安価で高速な精度の高い色変換装置を実現する。【選択図】        図１
2004274131.tif 000002
【特許請求の範囲】
【請求項１】
ダイレクトマッピング方式を採る色変換装置であって、
ルックアップテーブルを格納するメモリと、
ルックアップテーブルの一部をキャッシュするキャッシュメモリとを設けたことを特徴とする色変換装置。
【請求項２】
キャッシュミス時に、当該装置に接続された上流の画像出力装置に、出力を停止させる機能を設けたことを特徴とする請求項１記載の色変換装置。
【請求項３】
補間に用いる頂点それぞれに、独立にキャッシュメモリを設けたことを特徴とする請求項２記載の色変換装置。
【請求項４】
補間に用いる頂点それぞれに独立したキャッシュメモリによって共有される、２次キャッシュメモリを設けたことを特徴とする請求項３記載の色変換装置。
【請求項５】
ルックアップテーブルを格納するメモリが、ダイナミックラムで構成されたことを特徴とする請求項２記載の色変換装置。
【請求項６】
ルックアップテーブルを格納するメモリが、ダイナミックラムで構成されたことを特徴とする請求項３記載の色変換装置。
【請求項７】
ルックアップテーブルを格納するメモリが、ダイナミックラムで構成されたことを特徴とする請求項４記載の色変換装置。
【請求項８】
ルックアップテーブルを格納するメモリが、スタティックラムで構成されたことを特徴とする請求項２記載の色変換装置。
【請求項９】
ルックアップテーブルを格納するメモリが、スタティックラムで構成されたことを特徴とする請求項３記載の色変換装置。
【請求項１０】
ルックアップテーブルを格納するスタティックラムを複数も受けたことを特徴とする請求項９記載の色変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ダイレクトマッピング方式を採用した色変換装置に関するものであり、特に、格子点数を多くとった精密な色変換を、高速処理で、かつ安価に実現するものである。
【０００２】
【従来の技術】
カラーコピー機やカラープリンタなど、カラー画像を扱う入出力機器では、ＣＣＤの色域補正やカラーマッチング、ＲＧＢ色空間からＣＭＹＫ色空間への変換など、非線形の色空間変換に、ルックアップテーブル（以下ＬＵＴ）と補間処理を併用したダイレクトマッピング方式の色変換処理が用いられる。
【０００３】
ダイレクトマッピング方式では、格子点数を増やしＬＵＴを大きくとれば変換の精度が上がる。しかしＬＵＴサイズが大きくなると、メモリコストが上昇するため、これまで限られたメモリコストの中で色変換の精度を高めるための工夫がなされてきた。例えば、格子点数は増加させずに、変換精度が要求される色域の変換精度を高めることを行ってきた（例えば、特許文献１、特許文献２参照。）。
【０００４】
図２は従来の色変換装置の構成を示したブロック図である。入力されたカラーデータは３次元ＬＵＴ２０１と補間係数生成回路２０２に入力され、３次元ＬＵＴ２０１からは注目カラー近傍のＬＵＴ内容が補間処理に必要な４頂点分出力され、補間係数生成器２０２からは補間係数が出力され、３次元４点補間処理器２０３にて補間処理され、最終のカラーデータが出力される。３次元ＬＵＴ２０１は、ＬＵＴアドレス生成器２０１ａと、ＬＵＴが格納されたメモリ２０１ｂ，２０１ｃ，２０１ｄ，２０１ｅからなる。メモリ２０１ｂ，２０１ｃ，２０１ｄ，２０１ｅは同一の内容を保持し、同時リードされる４頂点のアドレスが異なるために、補間に必要な頂点分複製されている。より精度の高い８頂点を参照する補間の場合、メモリは８つとなる。
【０００５】
各色８ｂｉｔ、格子点数１６、出力ＣＭＹＫ４色の場合のＬＵＴのサイズは、ひとつが４色ｘ１６ｘ１６ｘ１６＝１６ＫＢｙｔｅであり、これを４頂点設けるため、１６ＫＢｙｔｅｘ４頂点＝６４ＫＢｙｔｅとなる。より精度の高い格子点数３２の場合にはこれが８倍の４色ｘ３２ｘ３２ｘ３２ｘ４頂点＝５１２ＫＢｙｔｅとなる。
【０００６】
色変換装置をＬＳＩ上に構成しようとすると、ＬＵＴを格納するメモリはＳＲＡＭで構成することになる。現在のＬＳＩ製造プロセスでは、５１２ＫＢｙｔｅのＳＲＡＭを実装するには多大なコストを要する。
【０００７】
コストを抑えるために複製されたＬＵＴの数を減らし、各頂点のＬＵＴ参照を時分割で行うことも考えられた。しかし、これは色変換処理装置の処理性能を１／Ｎに低下させるといった問題があった。４点補間の場合にＬＵＴメモリを２つにすれば、２頂点が１つのメモリに時分割でアクセスするため、性能は１／２に、ＬＵＴメモリを１つにすれば、４頂点が１つのメモリに時分割でアクセスするため、性能は１／４になる。
【０００８】
【特許文献１】
特開平８−１８１８７４号公報
【特許文献２】
特開平８−１６１４６８号公報
【０００９】
【発明が解決しようとする課題】
本発明が解決しようとする課題は、性能の低下を抑え、少ないメモリコストで、格子点数の多い精度の高いダイレクトマッピング方式の色変換装置を提供することである。
【００１０】
【課題を解決するための手段】
本課題を解決するために、まず各頂点に独立の、小容量のメモリで構成されるキャッシュメモリを設け、これらのキャッシュメモリに共有され、時分割にてアクセスされるメモリを設ける。この共有されるメモリにはＬＵＴの全てを格納する。このことにより、ＬＵＴのメモリの総容量が減り、コストが少なくなるとともに、性能の低下を抑えられる。
【００１１】
次に、格子点数の多いＬＵＴを実現するために、ＬＵＴを安価なＤＲＡＭ上に置き、前記の共有メモリを２次キャッシュとすることで、少ないメモリコストで、格子点数の多い色変換装置を実現する。ある頂点で参照されたＬＵＴのエントリは、続く色変換で別の頂点で参照される可能性が高く、２次キャッシュはこの場合の１次キャッシュミスレイテンシを低減することが出来る。
【００１２】
さらに、ＬＵＴの並びを、３次元的に隣接したＬＵＴのエントリを、ＬＵＴインデックスの近い位置に配置することにより、色が連続的に変化する写真画像処理時のキャッシュメモリのヒット率を高くし、高い性能を得る。色が連続的に変化する写真画像は、３次元の色空間上で連続の軌跡を描くことになる。そのため、一度参照された頂点の近傍は、続くカラーの変換時に参照される可能性が高く、キャッシュのヒット率を向上させる。
【００１３】
【発明の実施の形態】
（実施例１）
図１は本実施例のシステム構成を示したブロック図である。
【００１４】
本実施例のデジタル機器は、スキャナ１０６とプリンタ１０８とコントローラ１１１から成り、ネットワークに接続される。
【００１５】
スキャナ１０６でスキャンされた画像は、コントローラ１１１のスキャナインターフェース１０７、クロスバースイッチ１０４を介してメインメモリ１０３へと格納される。
【００１６】
全体を制御するＣＰＵ１０２は、色変換処理ＤＭＡＣ１０１を起動し、スキャンされた画像をＲＧＢカラーからＣＭＹＫカラーに変換する。色変換処理ＤＭＡＣ１０１が起動されると、まずラスタリードＤＭＡＣ１０１ａがクロスバースイッチ１０４経由でメインメモリ１０３からスキャン画像をリードし、色変換装置１０１ｂへ送る。色変換処理装置１０１ｂはメインメモリ１０３に格納された３次元ＬＵＴをリードし、色変換処理装置１０１ｂ内のキャッシュメモリに３次元ＬＵＴの一部をキャッシュし、３次元ＬＵＴを用いて、ラスタリードＤＭＡＣ１０１ａから入力されたカラー画素をＲＧＢからＣＭＹＫに色変換し、ラスタライトＤＭＡＣ１０１ｃに送る。ラスタライトＤＭＡＣ１０１ｃは色変換後の画素をラスタデータとして、メインメモリ１０３へクロスバースイッチ１０４経由でライトする。
【００１７】
色変換処理が終わると、色変換処理ＤＭＡＣ１０１はＣＰＵ１０２へ割り込みを発生し、処理の終了を知らせる。割り込みを感知したＣＰＵ１０２は、プリンタインターフェース１０９を起動し、色変換されたカラー画像のプリント出力を開始する。プリンタインターフェース１０９は、クロスバースイッチ１０４、画像処理装置１１０経由でメインメモリ１０３からカラー画像を取得し、プリンタエンジン１０８へ転送する。プリンタエンジン１０８はプリンタインターフェース１０９から受信したカラー画像を、記録媒体に記録することで、コピー処理が終了する。
【００１８】
ホスト１１５がＰＤＬデータを生成し、ネットワーク経由でコントローラ１１１に転送すると、ＰＤＬデータはネットワークインターフェース１０５、クロスバースイッチ１０４を介してメインメモリ１０３にいったん格納される。ＣＰＵ１０２は、メインメモリ１０３に格納されたＰＤＬデータの解釈を開始し、ディスプレイリストをメインメモリ１０３へ生成する。
【００１９】
ＰＤＬデータを解釈する際に、ＰＤＬデータ内にカラーイメージ画像を認識すると、レンダリングを行う色空間に合わせるため、ＣＰＵ１０２は色変換処理ＤＭＡＣ１０１を起動して、色変換処理を開始する。色変換処理ＤＭＡＣ１０１が起動されると、まずラスタリードＤＭＡＣ１０１ａがクロスバースイッチ１０４経由でメインメモリ１０３からスキャン画像をリードし、色変換装置１０１ｂへ送る。色変換処理装置１０１ｂはメインメモリ１０３に格納された３次元ＬＵＴをリードし、色変換処理装置１０１ｂ内のキャッシュメモリに３次元ＬＵＴの一部をキャッシュし、３次元ＬＵＴを用いて、ラスタリードＤＭＡＣ１０１ａから入力されたカラー画素を入力の色空間からレンダリングする色空間へ色変換し、ラスタライトＤＭＡＣ１０１ｃに送る。ラスタライトＤＭＡＣ１０１ｃは色変換後の画素をラスタデータとして、メインメモリ１０３へクロスバースイッチ１０４経由でライトする。色変換処理が終わると、色変換処理ＤＭＡＣ１０１はＣＰＵ１０２へ割り込みを発生し、処理の終了を知らせる。
【００２０】
割り込みを感知したＣＰＵ１０２は、色変換後のカラーイメージ画像をひとつのオブジェクトとしてディスプレイリストに結合する。ディスプレイリスト生成が終了すると、ＣＰＵ１０２はディスプレイリストに従ってレンダリング処理を開始し、レンダリング後の画像をメインメモリ１０３へ格納していく。レンダリング処理が終了すると、ＣＰＵ１０２はプリンタインターフェース１０９を起動し、レンダリングされたカラー画像のプリント出力を開始する。プリンタインターフェース１０９は、クロスバースイッチ１０４、画像処理装置１１０経由でメインメモリ１０３からカラー画像を取得し、プリンタエンジン１０８へ転送する。プリンタエンジン１０８はプリンタインターフェース１０９から受信したカラー画像を、記録媒体に記録することで、ＰＤＬプリント処理が終了する。
【００２１】
図３は本実施例の色変換処理装置１０１ｂの構成を示したブロック図である。
【００２２】
入力されたカラー画素は、３次元ＬＵＴ３０１と補間係数生成器２０２へ入力される。３次元ＬＵＴ３０１に入力されたカラーデータは、アドレス生成器３０１ａに入力され、補間に用いる４頂点のＬＵＴのアドレスを生成し、それぞれの頂点に対応するＬＵＴの１ＫＢの１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅへ入力される。それぞれの１次キャッシュにおいて、参照されたＬＵＴの内容がキャッシュ内に存在し、キャッシュヒットすると、ＬＵＴの内容が出力され３次元４点補間器２０３へと送られる。
【００２３】
３次元４点補間器２０３は、３次元ＬＵＴ３０１からのＬＵＴの内容と、補間係数生成器２０２からの補間係数を用いて、補間処理を行い、最終のカラーデータを生成し、出力する。１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅがキャッシュミスを発生すると、まず、色変換装置１０１ｂの上流モジュールへｓｔａｌｌ信号３０３を生成し、続くカラー画素の入力を止める。同時に１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅは８ＫＢの２次キャッシュ３０２へＬＵＴのリード要求を行う。
【００２４】
リード要求を受けた２次キャッシュ３０２は、順番に１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅそれぞれからの要求を処理し、もし２次キャッシュ３０２内に要求のＬＵＴの内容が保持されていれば、キャッシュヒットとしてＬＵＴの内容を１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅに返し、要求のＬＵＴの内容が保持されていなければ、キャッシュミスとしてメインメモリ１０３にリード要求を発行し、メインメモリからのリードデータが返るのを待ち、リードデータが返ってくると２次キャッシュ３０２に内容をキャッシュするとともに１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅにリードデータを送る。１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅは、キャッシュミスしたデータが全てフィルされると、ＬＵＴの内容を３次元４点補間器２０３に出力し、色変換装置１０１ｂの上流モジュールへｓｔａｌｌ信号３０３を解消し、続くカラー画素の処理を可能とする。
【００２５】
図４はメインメモリ１０３に格納されたＬＵＴの構成を示した模式図である。
【００２６】
本実施例のＬＵＴでは、出力色空間の全てのコンポーネントがＬＵＴのひとつのエントリに格納されており、配列ＬＵＴ［ｉｎｄｅｘ］がメインメモリ１０３上に連続に置かれている。配列ＬＵＴ［ｉｎｄｅｘ］のインデックスは、入力カラーデータにビットがインターリーブされた形式で生成されており、この形式に相当するならびに配列ＬＵＴ［ｉｎｄｅｘ］が並べられている。ビットがインターリーブされたインデックスを採用することにより、３次元空間で隣接するＬＵＴのエントリがメモリ上で隣接するアドレスに存在することになる。例をあげると、Ｒ＝０ｘ０，Ｇ＝０ｘ０，Ｂ＝０ｘ０のＬＵＴエントリのインデックスはｉｎｄｅｘ＝０であり、Ｒ＝０ｘ１０，Ｇ＝０ｘ１０，Ｂ＝０ｘ１０の画素は、格子点数１６の場合、ｉｎｄｅｘ＝７となる。１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅ、２次キャッシュ３０２のキャッシュラインサイズが３２Ｂｙｔｅとすると、ｉｎｄｅｘ＝０はバイトアドレスで、ＬＵＴの先頭に置かれており、ｉｎｄｅｘ＝７は７ｘ４ｂｙｔｅ＝２８ｂｙｔｅのアドレスオフセットにおかれるから、この２つの３次元空間の隣接カラーは、キャッシュヒットすることを示している。
【００２７】
図５は、キャッシュのヒットする状況を示す模式図である。
【００２８】
入力のカラー画素が、はじめに色αが入力され、続いて色βが入力される。はじめ入力された色αの色変換処理において、補間処理のために４頂点が選択され、ＬＵＴが引かれる。色αに対して参照される４頂点のＩｎｄｅｘは、ｉｎｄｅｘ＝０，ｉｎｄｅｘ＝６，ｉｎｄｅｘ＝２，ｉｎｄｅｘ＝７である。キャッシュラインサイズが３２バイトであるから、ｉｎｄｅｘ＝０が参照された１次キャッシュ３０１ｂではｉｎｄｅｘ＝０からｉｎｄｅｘ＝７までのＬＵＴがキャッシュされる。同様に１次キャッシュ３０１ｃ，３０１ｄ，３０１ｅでもｉｎｄｅｘ＝０からｉｎｄｅｘ＝７までのＬＵＴがキャッシュされる。続く色βを処理する際には、参照される４頂点のｉｎｄｅｘがｉｎｄｅｘ＝０，ｉｎｄｅｘ＝１，ｉｎｄｅｘ＝３，ｉｎｄｅｘ＝７となる。１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅともにｉｎｄｅｘ＝０からｉｎｄｅｘ＝７までがキャッシュされているため、キャッシュヒットが得られる。
【００２９】
【表１】
2004274131.tif 000003
【００３０】
本実施例では、図３に示したように、キャッシュメモリ構成をとることにより、メモリのサイズが１ＫＢｘ４＋８ＫＢ＝１２ＫＢとなり、従来例の６４ＫＢのメモリに対して大幅に容量を削減してメモリコストを低減させるとともに、高速の色変換処理を実現できる。
【００３１】
（実施例２）
図６は本実施例の色変換装置の構成を示したブロック図である。
【００３２】
入力されたカラー画素は、３次元ＬＵＴ３０１と補間係数生成器２０２へ入力される。３次元ＬＵＴ３０１に入力されたカラーデータは、アドレス生成器３０１ａに入力され、補間に用いる４頂点のＬＵＴのアドレスを生成し、それぞれの頂点に対応するＬＵＴの１ＫＢの１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅへ入力される。それぞれの１次キャッシュにおいて、参照されたＬＵＴの内容がキャッシュ内に存在し、キャッシュヒットすると、ＬＵＴの内容が出力され３次元４点補間器２０３へと送られる。３次元４点補間器２０３は、３次元ＬＵＴ３０１からのＬＵＴの内容と、補間係数生成器２０２からの補間係数を用いて、補間処理を行い、最終のカラーデータを生成し、出力する。１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅがキャッシュミスを発生すると、まず、色変換装置１０１ｂの上流モジュールへｓｔａｌｌ信号３０３を生成し、続くカラー画素の入力を止める。同時に１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅは１６ＫＢのＬＵＴメモリ６０１，６０２へＬＵＴのリードを行い、１次キャッシュ３０１ｂ，３０１ｃ，３０１ｄ，３０１ｅのキャッシュラインを置き換えるとともにＬＵＴの内容を３次元４点補間器２０３に出力し、色変換後のカラーを出力する。また、同時に色変換装置１０１ｂの上流モジュールへｓｔａｌｌ信号３０３を解消し、続くカラー画素の処理を可能とする。
【００３３】
実施例１との相違は、２次キャッシュ３０２の替りにメモリ６０１，６０２を設けたことである。キャッシュ構成をとった場合のデメリットは、最悪の場合のスループット性能が大きく低下することである。本実施例は、キャッシュが常にミスするデータが流れた場合の性能低下を、ある一定性能に保たなければならないシステムの実施例である。本実施例のメモリ容量は、１ＫＢｘ４＋１６ＫＢｘ２＝３６ＫＢであり、実施例１の１２ＫＢよりは大きくなるが、従来例の６４ＫＢよりも小さく、実施例１よりも高い性能を保証できることが出来る。
【００３４】
【発明の効果】
以上説明したように、本発明によれば、少ないメモリコストで、格子点数の多いＬＵＴを使用したダイレクトマッピング方式の色変換処理が実現できるため、高速で精度の高い色変換装置を、低コストで実現できる。
【図面の簡単な説明】
【図１】実施例１のシステム構成を示すブロック図
【図２】従来例の色変換装置の構成を示すブロック図
【図３】実施例１の色変換装置の構成を示すブロック図
【図４】実施例１のルックアップテーブルの構造を示した模式図
【図５】実施例１の色遷移における参照頂点を説明するための模式図
【図６】実施例２の色変換装置の構成を示すブロック図
【符号の説明】
１０１  色変換処理ＤＭＡＣ
１０１ａ  ラスタリードＤＭＡＣ
１０１ｂ  色変換装置
１０１ｃ  ラスタライトＤＭＡＣ
１０２  ＣＰＵ
１０３  メモリ
１０４  クロスバースイッチ
１０５  ネットワークインターフェース
１０６  スキャナ
１０７  スキャナインターフェース
１０８  プリンタ
１０９  プリンタインターフェース
１１０  イメージ処理回路（画像処理装置）
１１１  コントローラ
１１５  ホスト
２０１  ３次元ＬＵＴ
２０１ａ  アドレス生成装置（ＬＵＴアドレス生成器）
２０１ｂ−２０１ｅ  ＬＵＴメモリ
２０２  補間係数生成器（補間係数生成回路）
２０３  ３次元４点補間器
３０１  ３次元ＬＵＴ
３０１ａ  アドレス生成装置
３０１ｂ−３０１ｅ  １次キャッシュ
３０２  ２次キャッシュ
３０３  ストール信号
６０１，６０２  ＬＵＴメモリ
【図１】
2004274131.tif 000004
【図２】
2004274131.tif 000005
【図３】
2004274131.tif 000006
【図４】
2004274131.tif 000007
【図５】
2004274131.tif 000008
【図６】
2004274131.tif 000009