(57)【要約】【課題】  キャッシュ機構を用いた色空間変換において、ヒット率を維持しつつ、キャッシュ容量を小さくすることで、色空間変換のコストパフォーマンスの向上を図る。【解決手段】  入力されるデータの色空間を変換する情報処理装置であって、ＬＵＴを保持するメモリと、メモリに保持されたＬＵＴに含まれるデータの一部を、キャッシュ値としてキャッシュメモリと、キャッシュメモリに保持されたデータにアクセスするためのアドレスを、順次生成するＬＵＴアドレス生成部３０１と、生成されたアドレスの特性を検出するビット順決定部３０３と、キャッシュメモリに一時保持されたキャッシュ値のヒット率が所定値未満となった場合に、ＬＵＴアドレス生成部３０１において生成されたアドレスを構成する各ビットの並び順序を、アドレスの特性に応じて変更するビット順変換部３０４と、を備える。【選択図】  図３
2007158968.tif 000002
【特許請求の範囲】
【請求項１】
入力されるデータの色空間を変換する情報処理装置であって、
色空間変換に用いられるＬＵＴを保持する保持手段と、
前記保持手段に保持されたＬＵＴに含まれるデータの一部を、キャッシュ値として一時保持するキャッシュ保持手段と、
前記キャッシュ保持手段に保持されたデータにアクセスするためのアドレスを、前記入力されるデータに対応して、順次生成するアドレス生成手段と、
前記アドレス生成手段において生成されたアドレスの特性を検出する検出手段と、
前記キャッシュ保持手段に一時保持されたキャッシュ値のヒット率が予め定められた値未満となった場合に、前記アドレス生成手段において生成されたアドレスを構成する各ビットの並び順序を、前記アドレスの特性に応じて変更する変更手段と、を備え、
前記ヒット率が予め定められた値未満となった後は、前記変更手段により変更されたアドレスにて前記キャッシュ保持手段に保持されたデータにアクセスすることで、前記入力されるデータの色空間を変換することを特徴とする情報処理装置。
【請求項２】
前記アドレスの特性とは、アドレス生成手段において順次生成されたアドレスのうち、連続する２つのアドレス間の各ビットを比較することによりカウントされるビットごとの変化頻度であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記変更手段は、前記ビットごとの変化頻度に応じて、前記キャッシュ値のタグとインデックスの割り当てを変更するように前記アドレスを構成する各ビットの並び順序を変更することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記変更手段において前記アドレスを構成する各ビットの並び順序が変更された場合に、前記カウントされた変化頻度を初期化し、前記キャッシュ値のタグを無効化することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
入力されるデータの色空間を変換する情報処理装置における情報処理方法であって、
色空間変換に用いられるＬＵＴを保持する保持工程と、
前記保持工程に保持されたＬＵＴに含まれるデータの一部を、キャッシュ値として一時保持するキャッシュ保持工程と、
前記キャッシュ保持工程に保持されたデータにアクセスするためのアドレスを、前記入力されるデータに対応して、順次生成するアドレス生成工程と、
前記アドレス生成工程において生成されたアドレスの特性を検出する検出工程と、
前記キャッシュ保持工程に一時保持されたキャッシュ値のヒット率が予め定められた値未満となった場合に、前記アドレス生成工程において生成されたアドレスを構成する各ビットの並び順序を、前記アドレスの特性に応じて変更する変更工程と、を備え、
前記ヒット率が予め定められた値未満となった後は、前記変更工程により変更されたアドレスにて前記キャッシュ保持工程に保持されたデータにアクセスすることで、前記入力されるデータの色空間を変換することを特徴とする情報処理方法。
【請求項６】
請求項５に記載の情報処理方法をコンピュータによって実現させるための制御プログラムを格納した記憶媒体。
【請求項７】
請求項５に記載の情報処理方法をコンピュータによって実現させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの色空間変換におけるデータ処理技術に関するものである。
【背景技術】
【０００２】
近年、入力機器として、スキャナ、デジタルカメラ、ビデオカメラなどのカラー入力機器が普及している。一方、出力機器として、インクジェット方式、染料熱昇華型あるいは電子写真方式のカラープリンタ等の各種カラー出力機器が普及している。これらのカラー入出力機器は、それぞれ固有の色空間（デバイス色空間）を有しており、入力機器で読み取ったデータを出力機器にて印刷するには、入力機器の色空間を出力機器の色空間に変換する処理（“色空間変換”と呼ぶ）が必要となる。
【０００３】
例えば、スキャナで読み取ったＲＧＢ画像データを印刷する場合、まず、スキャナのＲＧＢ色空間から標準ＲＧＢ色空間（例えばＡｄｏｂｅＲＧＢ）に変換する。その後、プリンタの色材（インクまたはトナー）の色空間であるシアン、マゼンタ、イエローおよびブラックで構成されるＣＭＹＫ色空間への変換が行われる。
【０００４】
また、同じＲＧＢ色空間においても、例えばスキャナのＲＧＢ色空間とモニタのＲＧＢ色空間とでは、色空間特性（色再現範囲）が異なっており、その場合にも色空間変換が行われる。具体的には、スキャナで読み込んだ画像をモニタに表示する際に、カラーマッチングのために、スキャナＲＧＢ色空間からモニタＲＧＢ色空間への変換が必要になる。
【０００５】
こうした色空間変換の手法として、三次元ルックアップテーブル(３Ｄ−ＬＵＴ）と補間演算とを組み合わせた手法がある。更に、その補間演算手法として、演算量及び隣接する直方体間での色の連続性、グレー軸の再現特性の良好さから、特開昭５３−１２３２０１号公報や特開２０００−２２９７３号公報などに開示された四面体補間が優れた手法として知られている。
【０００６】
しかしながら、上述のようにＬＵＴと補間演算とを組み合わせる色空間変換手法の場合、色変換の精度を向上させるため、ＬＵＴの１軸当たりの格子点数（以下「グリッド数」と記す）を増加させると、ＬＵＴの容量は３次元では３乗で増加することとなる。また、色再現性向上の為、ＲＧＢ以外の色フィルタを追加したデジタルカメラも登場してきており、この場合、上記ＬＵＴの容量はグリッド数の４乗となり、膨大なメモリ容量が必要となる。
【０００７】
また、カラープリンタ等の出力機器においても、色再現性や階調性、粒状性の向上の為、多数の色材（インク）を用いるものがあり、この場合、ＬＵＴの容量は色材の数に比例して増加することとなる。
【０００８】
このため、これまでＬＵＴのコストを削減するための種々の提案がなされてきた。例えば、ＬＵＴを階層化し、ＬＵＴの全格子点データを低コストだが低速度のストレージ（メモリ）に格納する一方、演算に必要な部分のみ高速なキャッシュにロードして、コストパフォーマンスを満足する色空間変換手法が提案されている。
【特許文献１】特開昭５３−１２３２０１号公報
【特許文献２】特開２０００−２２９７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記キャッシュ機構では、キャッシュのヒット率が全体のパフォーマンスを決定しており、あらゆる入力データに対しても、所定の時間内に処理を終了させるためには、キャッシュ容量を大きめに確保しておく必要があった。このためコストパフォーマンスが十分でないという問題があった。
【００１０】
本発明は、上記課題に鑑みてなされたものであり、ヒット率を維持しつつ、キャッシュ容量を小さくすることで、色空間変換におけるコストパフォーマンスの向上を図る。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために本発明に係る情報処理装置は以下のような構成を備える。即ち、
入力されるデータの色空間を変換する情報処理装置であって、
色空間変換に用いられるＬＵＴを保持する保持手段と、
前記保持手段に保持されたＬＵＴに含まれるデータの一部を、キャッシュ値として一時保持するキャッシュ保持手段と、
前記キャッシュ保持手段に保持されたデータにアクセスするためのアドレスを、前記入力されるデータに対応して、順次生成するアドレス生成手段と、
前記アドレス生成手段において生成されたアドレスの特性を検出する検出手段と、
前記キャッシュ保持手段に一時保持されたキャッシュ値のヒット率が予め定められた値未満となった場合に、前記アドレス生成手段において生成されたアドレスを構成する各ビットの並び順序を、前記アドレスの特性に応じて変更する変更手段と、を備え、
前記ヒット率が予め定められた値未満となった後は、前記変更手段により変更されたアドレスにて前記キャッシュ保持手段に保持されたデータにアクセスすることで、前記入力されるデータの色空間を変換することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ヒット率を維持しつつ、キャッシュ容量を小さくさせることが可能となり、色空間変換におけるコストパフォーマンスが向上する。
【発明を実施するための最良の形態】
【００１３】
以下、必要に応じて添付図面を参照しながら本発明の各実施形態を詳細に説明する。
【００１４】
［第１の実施形態］
１．情報処理装置のハードウェア構成
図１は、本発明の第１の実施形態にかかる情報処理装置のハードウェア構成を示す図である。
【００１５】
図１において、１０１はメモリ（ＲＯＭ）、１０２はＣＰＵ、１０３はメモリ（ＲＡＭ）、１０４は入力装置、１０５は出力装置、１０６は外部記憶装置、１０７はバスである。本実施形態にかかる情報処理機能を実現するための制御プログラムやその制御プログラムで用いるデータは、ＲＯＭ１０１に記憶される。これらの制御プログラムやデータは、ＣＰＵ１０２の制御のもと、バス１０７を通じて適宜メモリ１０３に取り込まれ、ＣＰＵ１０２によって実行される。なお、ＣＰＵ１０２には、キャッシュメモリ１０９が備えられており、後述する色空間変換の処理速度の高速化を実現している。
【００１６】
入力装置１０４は、各種情報を入力するための装置である。なお、各種情報には、ユーザの指示を入力するためのキーボードやマウス等からの入力信号のほか、スキャナ、デジタルカメラ、ビデオカメラ等のカラー入力機器からの画像データ（入力データ）が含まれるものとする。
【００１７】
また、出力装置１０５は、色空間変換された画像データ（出力データ）を出力するための装置であり、出力装置１０５を介して出力される出力先としては、カラープリンタやモニタ等のカラー出力機器が含まれるものとする。
【００１８】
２．情報処理装置の機能構成
図１に示す情報処理装置において、１０８に示す各部により実現される情報処理機能についての機能ブロックを図２に示す。同機能ブロックにより実現される情報処理機能としては、色空間変換機能と、ＬＵＴアドレス変換機能とがあり、それぞれの機能を実現するための各機能ブロックの動作について以下に説明する。
【００１９】
図２において、２０１はメモリアドレス生成部であり、色空間変換の際、メモリ２０２にアクセスするためのアドレス（メモリアドレス）を生成する。なお、メモリ２０２へのアクセスは、キャッシュ部２０４に所望の格子点データが格納されていない場合において、キャッシュ部２０４からのリクエスト信号を受信した場合に実行される。
【００２０】
２０２はメモリ部（図１のＲＡＭ１０３に対応）であり、ＬＵＴの全格子点データが格納されている。
【００２１】
２０３はＬＵＴアドレス変換部であり、色空間変換の際、入力データに基づいて、キャッシュ部２０４にアクセスするためのアドレス（ＬＵＴアドレス）を生成する。また、ＬＵＴアドレス変換処理（後述）の際、キャッシュ部２０４に出力されるｄｉｒｔｙ制御信号を生成する。
【００２２】
２０４はキャッシュ部（図１のキャッシュメモリ１０９に対応）であり、色空間変換の際、ＬＵＴアドレスの上位ビット（アドレスのタグ）と、下位ビット（インデックス）とに基づいて、対応するキャッシュデータ（格子点データ）を選択する。
【００２３】
具体的には、アドレスタグとキャッシュのタグとを比較し、すでにキャッシュ部２０４内に格子点データが格納されているか否かを判断する。つまり、キャッシュ部２０４内に格子点データが格納されているか否かは、ＬＵＴアドレスの上位ビット（アドレスのタグ）と一致するキャッシュのタグの有無により判断する。キャッシュ部２０４内に格子点データが格納されていると判断した場合には、キャッシュ部２０４に格納されている格子点データを出力する。
【００２４】
一方、キャッシュ部２０４内に格子点データが格納されていないと判断した場合には、メモリアドレス生成部２０１にて生成されるメモリアドレスにてメモリ部２０２をアクセスするよう、メモリアドレス生成部２０１に対して、リクエスト信号を出力する。
【００２５】
また、リクエスト信号に対応してメモリ部２０２より出力された格子点データを読み取り、アドレスタグと共にキャッシュ部２０４内にキャッシュデータとして格納する。この場合、キャッシュ部２０４からは、メモリ部２０２より読み取った格子点データが出力される。
【００２６】
なお、通常、メモリ部２０２のアドレスはＬＵＴアドレスにメモリ部２０４のベースアドレスを加算することによりメモリアドレス生成部２０１にて簡単に求まる。しかし、１７グリッドのＬＵＴのように各入力軸の格子点数が２のべき乗でない場合は、無駄なメモリ空間を無くすべく、メモリアドレスの生成に複雑な演算が必要となる場合もある。
【００２７】
２０５は補間部であり、色空間変換の際、上記キャッシュ部２０４より出力された格子点データを各入力軸の下位ビットより加重平均し、変換されたデータを出力データとして出力する。
【００２８】
２０６はヒット率判定部であり、色空間変換の際、キャッシュ部２０４におけるヒット率を算出する。算出されたヒット率は、ＬＵＴアドレス変換部２０３にてビット並びを変更するＬＵＴアドレス変換処理を行う際に参照される。
【００２９】
３．ＬＵＴアドレス変換部２０３の機能構成
図２の機能ブロックに含まれるＬＵＴアドレス変換部２０３の詳細な機能構成について図３を用いて説明する。
【００３０】
上記ＬＵＴアドレス変換部２０３は、ＬＵＴアドレス生成部３０１、ＬＵＴアドレス比較部３０２、ビット順決定部３０３、ビット順変換部３０４とを備える。また、ビット順決定部３０３は、更にビット毎の変化頻度カウンタ３１１とアドレス変換信号生成部３１２とを備える。
【００３１】
ＬＵＴアドレス生成部３０１は、色空間変換の際に、入力データに基づいてＬＵＴアドレスを生成する。
【００３２】
ビット順変換部３０４は、後述するビット順決定部３０３よりアドレス変換信号を受信した場合に、ＬＵＴアドレス生成部３０１にて生成されたＬＵＴアドレスのビット順序を変換したうえで、ＬＵＴアドレスを出力する。一方、アドレス変換信号を受信しなかった場合には、ＬＵＴアドレス生成部３０１にて生成されたＬＵＴアドレスを出力する。なお、本実施形態では、ＬＵＴアドレスはビット順変換部３０１より１５ビット単位で順次出力されるよう制御されているものとする。
【００３３】
また、ビット順変換部３０４では、アドレス変換信号を受信した際に、後述する変化頻度カウンタ３１１をリセットすべく、変化頻度カウンタ３１１に対して初期化信号を出力する。更に、キャッシュ部２０４に対してキャッシュのタグを無効化すべくｄｉｒｔｙ制御信号を出力する。
【００３４】
ＬＵＴアドレス比較部３０２は、今回ビット順変換部３０４より出力されたＬＵＴアドレス（１５ビット）と、前回ビット順変換部３０４より出力されたＬＵＴアドレス（１５ビット）とをビット単位で比較する。なお、前回ビット順変換部３０４より出力されたＬＵＴアドレスは、ＬＵＴアドレス比較部３０２内のアドレス格納レジスタに格納されているものとする。ビット単位での比較の結果、ＬＵＴアドレスが一致していたビットについては、‘０’を出力し、一致していなかったビットについては、‘１’を出力する。
【００３５】
ビット順決定部３０３は、ビット毎の変化頻度カウンタ３１１を備え、ＬＵＴアドレス比較部３０２より出力されたビット毎の比較結果（‘０’または‘１’）をカウントする。これにより、ＬＵＴアドレス生成部３０１において生成されるＬＵＴアドレスの特性（変化頻度の大きいビット）を検出することができる。カウント結果は、ビット順決定部３０３内のアドレス変換信号生成部３１２に入力される。
【００３６】
アドレス変換信号生成部３１２は、ヒット率判定部２０６において算出されたヒット率を監視し、所定のヒット率未満になったと判定された場合に、変化頻度カウンタ３１１のカウント結果をソートする。そして、カウント数が大きい上位の所定数ビット（当該数は、上記インデックスのビット数に依存する）を選択し、当該ビット位置を示すビット番号をアドレス変換信号として出力する。
【００３７】
４．情報処理装置における処理の流れ
４．１  色空間変換処理の流れ
本実施形態にかかる情報処理装置における色空間変換の流れについて図４を用いて説明する。
【００３８】
ステップＳ４０１では、入力装置１０４を介して色空間変換の対象となる入力データが入力される。ステップＳ４０２では、ＬＵＴアドレス生成部３０１にて、当該入力データに基づいてＬＵＴアドレスが生成される。
【００３９】
ステップＳ４０３では、当該ＬＵＴアドレスに基づいて、キャッシュ部１４０がアクセスされ、キャッシュ部２０４より、対応する格子点データが取得される。
【００４０】
ステップＳ４０４では、１５ビットのＬＵＴアドレスについてキャッシュ部２０４から対応する格子点データを取得することができたか否かを判定する。ステップＳ４０４において、キャッシュ部２０４から対応する格子点データを取得することができたと判定された場合には、ステップＳ４０６に進む。
【００４１】
一方、ステップＳ４０４において、キャッシュ部２０４から対応する格子点データを取得することができなかったと判定された場合には、ステップＳ４０５に進む。ステップＳ４０５では、ＬＵＴアドレスに対応する格子点データをメモリ部２０２から取得すべく、メモリアドレス生成部２０１にリクエスト信号を送信する。リクエスト信号を受信したメモリアドレス生成部２０１では、取得することができなかった格子点データが格納されたメモリアドレスを生成し、メモリ部２０２にアクセスする。なお、上述のようにメモリ部２０２のアドレスは、ＬＵＴアドレスにメモリ部２０４のベースアドレスを加算することにより求まる。
【００４２】
メモリ部２０２では、当該メモリアドレスに格納された格子点データをキャッシュ部２０４に送信する。これにより、キャッシュ部２０４では、ステップＳ４０３にて取得できなかった格子点データをメモリ部２０２より取得することができるとともに、当該格子点データをキャッシュデータとしてキャッシュ部２０４に格納することができる。
【００４３】
ステップＳ４０６では、キャッシュ部２０４にて取得された格子点データを補間部２０５に送信する。補間部２０５では、所定の補間演算を実行する。
【００４４】
ステップＳ４０７では、補間演算がなされた格子点データを出力データとして出力する。更にステップＳ４０８では、ヒット率を算出する。上述のように本実施形態では、ＬＵＴアドレスがキャッシュ部２０４に入力され、キャッシュ部２０４内に対応する格子点データがない場合には、リクエスト信号が出力される。したがって、ヒット率判定部２０６では、当該リクエスト信号を監視することで、ヒット率を算出することができる。
【００４５】
ステップＳ４０９では、ＬＵＴアドレス変換処理を行う。なお、ＬＵＴアドレス変換処理の詳細は、以下に説明する。
【００４６】
４．２  ＬＵＴアドレス変換処理の流れ
本実施形態にかかる情報処理装置におけるＬＵＴアドレス変換処理（ステップＳ４０９）の流れについて図５を用いて説明する。
【００４７】
ステップＳ５０１では、今回生成された１５ビット分のＬＵＴアドレスと、前回生成された１５ビット分のＬＵＴアドレスとをＬＵＴアドレス比較部３０２にてビット単位で比較する。比較処理が終わると、今回生成された１５ビット分のＬＵＴアドレスは、アドレス格納レジスタに格納され、次回ＬＵＴアドレス１５ビット分が生成された際、前回のＬＵＴアドレス１５ビット分として、比較処理に用いられる。
【００４８】
ステップＳ５０２では、比較処理の結果、対応するビットが一致していた場合には、当該ビットについて、‘０’を変化頻度カウンタ３１１に入力する。一方、比較処理の結果、対応するビットが一致していなかった場合には、当該ビットについて、‘１’を変化頻度カウンタ３１１に入力する。これにより、対応するビットが一致していなかった場合には、変化頻度カウンタ３１１の対応するビットがインクリメントされることとなる。
【００４９】
ステップＳ５０４では、今回の１５ビット分のＬＵＴアドレスについての色空間変換がなされた時点でのヒット率（図４のステップＳ４０８において算出）を参照する。ヒット率が所定値以上あった場合には、ＬＵＴアドレス変換処理を終了する。
【００５０】
一方、ヒット率が所定値未満であると判定された場合には、ステップＳ５０５に進み、アドレス変換信号生成部３１２にて、変化頻度カウンタのカウント数の大きい上位ビットのビット番号をアドレス変換信号として出力する。
【００５１】
アドレス変換信号生成部３１２より出力されたアドレス変換信号は、ビット順変換部３０４に入力される。ステップＳ５０６では、ビット順変換部３０４にて、次回、色空間変換を行う１５ビット分のＬＵＴアドレスについてビット順序を入れ替える。具体的には、アドレス変換信号が示すビット位置のビット（変化頻度の大きいビット）にてインデックスを生成し、残りのビットにてタグを生成する。つまり、アドレス変換信号が示すビット位置のビットは、下位ビットに、残りのビットは上位ビットへと入れ替えられる。なお、このとき、タグとインデックスの振り分けが重要であり、タグの中あるいはインデックスの中でのビット順序は任意でかまわない。
【００５２】
更に、ステップＳ５０７では、ビット順変換部３０４より変化頻度カウンタ３１１に対して初期化信号が出力され、変化頻度カウンタ３１１では、当該初期化信号を受けて、変化頻度カウンタを初期化する。
【００５３】
更に、ステップＳ５０８では、ビット順変換部３０４よりキャッシュ部２０４に対してｄｉｒｔｙ制御信号を出力する。ｄｉｒｔｙ制御信号を受信したキャッシュ部２０４では、キャッシュ内のタグを無効化する。これは、ＬＵＴアドレスが変換されてしまったため、タグメモリに格納されている上位アドレスと対応しなくなるためである。
【００５４】
以上のように、本実施形態に係る情報処理装置では、ヒット率が所定値未満であると判定された場合に、変化頻度カウンタのカウント数の大きいビット位置のビットが、ＬＵＴアドレスの下位ビットにくるようにビット順序を入れ替える。
【００５５】
これにより、ヒット率の向上を図ることができる。これは、そもそもキャッシュ部がタグとインデックスとの階層的な構成となっており、ＬＵＴアドレスのタグ（上位ビット）に該当するキャッシュ部のタグが存在しなかった場合に、キャッシュデータがないものと判断するという特性に基づくものである。
【００５６】
つまり、キャッシュ部２０４からみた場合、ＬＵＴアドレスは、変化頻度の高いビットが下位ビット（ＬＵＴのインデックス）に、変化頻度の低いビットが上位ビット（ＬＵＴのタグ）に入れ替えられることとなる。この結果、ＬＵＴアドレスのタグに一致するキャッシュのタグが存在する確率が上がり、ヒット率が向上することとなる。
【００５７】
５．実施例
以下、本実施形態にかかる情報処理装置におけるＬＵＴアドレス変換処理の実施例について説明する。実施例として、ビット順変換部３０４より出力されたＬＵＴアドレスＡ１（１５ビット）を下記のように定義する。
【００５８】
ＬＵＴアドレスＡ１＝[ｂ１４，ｂ１３，ｂ１２，ｂ１１，ｂ１０，ｂ９，ｂ８，ｂ７，ｂ６，ｂ５，ｂ４，ｂ３，ｂ２，ｂ１，ｂ０]
なお、‘[]’の番号は１ビットを表し、‘,’は左端をＭＳＢとし、右端をＬＳＢとしたビット連結を表す。また、ｂ１４，ｂ１３，・・ｂ７をＬＵＴアドレスのタグ、ｂ６，ｂ５・・・ｂ０をＬＵＴアドレスのインデックスとする。
【００５９】
図６にビット順変換部２０４より出力されたＬＵＴアドレスと、アドレス格納レジスタで格納されているＬＵＴアドレスのタイミングチャートを示す。図６の時間ｎ＋１において、アドレス格納レジスタに格納されているＬＵＴアドレスＡ０（１サイクル前にビット順変換部２０４から出力されたＬＵＴアドレス）を下記のように定義する。
【００６０】
ＬＵＴアドレスＡ０＝[ｒ０，ｒ１，ｒ２，ｒ３，ｒ４，Ｒ５、Ｒ６、Ｒ７、Ｒ８、Ｒ９、ｒ１０、ｒ１１，ｒ１２，ｒ１３，ｒ１４]
したがって時間ｎ＋１においては、ＬＵＴアドレス比較部２０２では、ｂ０とｒ０、ｂ１とｒ１、ｂ２とｒ２、・・・、ｂ１４とｒ１４が比較される。
【００６１】
ビット毎に比較した結果が一致した場合は、ビット毎に‘０’が、また一致しなかった場合は‘１’が出力される。なお、ＬＵＴアドレスＡ１（ビット順変換部２０４から出力されたＬＵＴアドレス）は、次のサイクルでアドレス格納レジスタに書き込まれる。そして、また上述と同じように、ＬＵＴアドレスＡ１と、ビット順変換部２０４から出力されたＬＵＴアドレスＡ２とがビット毎に比較され、比較結果の出力が繰り返される。
【００６２】
ここで、ＬＵＴアドレスの各ビットに対応する１５のビット毎の変化頻度カウンタ２１１（カウント数：ｃ０，ｃ１，ｃ２・・・ｃ１４）のカウント数が下記のようになっているものとする。
【００６３】
変化頻度カウンタのカウント数：ｃ６＞ｃ１４＞ｃ３＞ｃ４＞ｃ１１＞ｃ１３＞ｃ１２＞ｃ０＞ｃ２＞ｃ５＞ｃ８＞ｃ９＞ｃ７＞ｃ１０＞ｃ１
また、インデックスのビット数が７ビットであるとする。その場合、アドレス変換信号生成部３０２では、カウント数が大きい上位の７ビット（ｃ６，ｃ１４，ｃ３，ｃ４，ｃ１１，ｃ１３，ｃ１２）を選択し、そのビット位置を示すビット番号を図７のようにアドレス変換信号として出力する。
【００６４】
ビット順変換部２０４では、図７のアドレス変換信号から、図８のようにＬＵＴアドレスのインデックスとなるビット位置を生成し、そのビット位置に対応するＬＵＴアドレスのビットをＬＵＴアドレスのインデックスにする。また、その他のビット位置に対応するＬＵＴアドレスのビットをＬＵＴアドレスのタグに変更することで、ビット順変換部２０４で新しく生成したＬＵＴアドレスは、下記のようになる。
【００６５】
変換後のＬＵＴアドレスＡ１＝[ｂ１，ｂ２，ｂ０，ｂ５，ｂ１０，ｂ９，ｂ８，ｂ７，ｂ６，ｂ１１，ｂ４，ｂ３，ｂ１３，ｂ１４，ｂ１２]
以上の説明から明らかなように、本実施形態にかかる情報処理装置では、ヒット率が所定値未満になった場合、ＬＵＴアドレスを入力データの特性に応じて変換した後、キャッシュ部にアクセスする。このため、キャッシュ部を効率的に使用でき、少ないキャッシュメモリで所定の時間内に処理を終了させるために必要なヒット率を確保することが可能となる。つまり、ヒット率を維持しつつ、キャッシュ容量を小さくさせることが可能となり、色空間変換におけるコストパフォーマンスが向上する。
【００６６】
[第２の実施形態]
上記第１の実施形態では、ＬＵＴアドレスの全ビット（例えば、１５ビット）からアドレス変換信号を生成することとしたが、本発明は特にこれに限られない。
【００６７】
例えば、上記第１の実施形態では、キャッシュのフィル効率を上げるために、所定単位（「ライン」と呼ぶ）でキャッシュのフィルを行ったが、この場合、キャッシュのタグを格納しているタグメモリのエントリ数は削減されることとなる。例えば、所定単位が１６なら、ｂ＝４となり下位４ビットがタグメモリ２のアドレス入力から削除される（以下、これをバーストビットと呼ぶ）。
【００６８】
そこで、バーストビットを除いたＬＵＴアドレスをＬＵＴアドレス比較部２０２に入力するようにしてもよい。つまり、バーストビットを除いたＬＵＴアドレスのビット幅を持つアドレス格納レジスタと、バーストビットを除いたＬＵＴアドレスとを比較し、当該ビット数と同じビット数の変化頻度カウンタ２１１に基づいて、アドレス変換信号を生成するようにしてもよい。この場合も、上記第１の実施形態と同様の効果が期待できる。
【００６９】
具体的には、例えば、ＬＵＴアドレスが１５ビットで、バーストビットが４ビットであるならば、１１ビットのＬＵＴアドレスをＬＵＴアドレス比較部２０２に入力する。そして、１１ビットのアドレス格納レジスタと、１１ビットの変化頻度カウンタ２１１とを用いてアドレス変換信号を生成することで同様の効果が期待できる。これにより、キャッシュのフィルデータはバースト転送できるので、ＬＵＴアドレス変換を行った場合でもフィル効率は殆ど変わらない。
【００７０】
[第３の実施形態]
上記第１及び第２の実施形態では、プレスキャン無しの場合の処理について説明したが、本発明はこれに限られない。プレスキャン有り（または同一画像の変換）の場合は、プレスキャンの開始時から終了時までのビット毎の変化頻度カウンタ２１１の値によって、本スキャンのＬＵＴアドレスの生成方法が決定されることとなる。そのため、ＬＵＴアドレス生成部８０１が出力するＬＵＴアドレスは、プレスキャン終了時のみ生成されるので、ビット順変換部２０４は、ｄｉｒｔｙ制御信号を出力しない。
【００７１】
また、プレスキャン時は上記ビット毎の変化頻度カウンタ２１１とヒット率判定部１０６のみが動作すればよいので、キャッシュをフィルする必要がない。そのため、高速に処理できるという効果がある。
【００７２】
［他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給するよう構成することによっても達成されることはいうまでもない。この場合、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することにより、上記機能が実現されることとなる。なお、この場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７４】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００７５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７６】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。
【図面の簡単な説明】
【００７７】
【図１】本発明の一実施形態にかかる情報処理装置のハードウェア構成を示す図である。
【図２】本発明の一実施形態にかかる情報処理装置の機能ブロックを示す図である。
【図３】本発明の一実施形態にかかる情報処理装置を構成するＬＵＴアドレス変換部２０３の構成を示す図である。
【図４】本発明の一実施形態にかかる情報処理装置における色空間変換の流れを示す図である。
【図５】本発明の一実施形態にかかる情報処理装置におけるＬＵＴアドレス変換処理の流れを示す図である。
【図６】本発明の一実施形態にかかる情報処理装置を構成するＬＵＴアドレス比較部３０２の動作タイミングを示す図である。
【図７】本発明の一実施形態にかかる情報処理装置のアドレス変換信号の例を示す図である。
【図８】本発明の一実施形態にかかる情報処理装置を構成するＬＵＴアドレス変換部２０３の動作例を示す図である。
【図１】
2007158968.tif 000003
【図２】
2007158968.tif 000004
【図３】
2007158968.tif 000005
【図４】
2007158968.tif 000006
【図５】
2007158968.tif 000007
【図６】
2007158968.tif 000008
【図７】
2007158968.tif 000009
【図８】
2007158968.tif 000010