(57)【特許請求の範囲】
【請求項１】
第１の表色系で表現された第１の画像データを第２の表色系で表現された第２の画像データに変換する画像処理装置であって、
前記第１の表色系を表す色空間内に格子状に配置された複数の格子点のそれぞれについての前記第１の表色系における階調値と前記第２の表色系における階調値との対応を示す色変換データを含む色変換テーブルを格納するテーブル格納部と、
前記第１の画像データを構成する画素を１つずつ対象画素として選択し、前記対象画素の階調値を前記第２の表色系における階調値に変換する色変換部と、
前記テーブル格納部からのデータの読み出しよりも高速に読み出し可能にデータをキャッシュするキャッシュ部と、を備え、
前記色変換部は、
前記色空間内における前記対象画素の階調値に対応する点を、前記色空間内の複数の格子点の内の１つである相当格子点に確率的に割り当て、前記対象画素の階調値を、割り当てられた前記相当格子点の階調値に変換する第１の変換部と、
前記対象画素の相当格子点についての色変換データを用いて、前記相当格子点の階調値を前記第２の表色系における階調値に変換する第２の変換部と、を含み、
前記キャッシュ部は、前記第２の変換部が前記対象画素の相当格子点についての色変換データを前記テーブル格納部から読み出した場合には、前記対象画素の相当格子点についての色変換データと前記色空間において前記対象画素の相当格子点に近接する所定の範囲の格子点についての色変換データとを、キャッシュし、
前記対象画素の相当格子点に近接する所定の範囲の格子点は、前記相当格子点を含む所定の大きさの六面体に含まれる格子点の内の前記相当格子点を除く格子点であり、
前記キャッシュ部は、前記第１の変換部により設定された前記対象画素の相当格子点が、前記キャッシュ部にキャッシュされている色変換データに対応する格子点であって、前記色空間の各軸方向に沿って当該格子点と隣接する少なくとも１つの格子点についての色変換データが前記キャッシュ部にキャッシュされていない格子点に該当することとなる場合には、前記隣接する少なくとも１つの格子点についての色変換データがキャッシュされるように、色変換データのキャッシュ状態の更新を行う、画像処理装置。
【請求項２】
請求項１記載の画像処理装置であって、
前記第１の表色系を表す色空間は３次元空間であり、
前記相当格子点は、前記色空間内の８つの格子点を頂点とする六面体であって前記対象画素の階調値を表す点を含む最小の六面体の頂点のいずれか１つである、画像処理装置。
【請求項３】
請求項１記載の画像処理装置であって、
前記所定の大きさの六面体は、内部に前記対象画素の相当格子点を含む８個の格子点を含むと共に、表面に５６個の格子点を含む六面体である、画像処理装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の画像処理装置であって、
前記第２の表色系は、画像の印刷に用いるインク色で表現された表色系である、画像処理装置。
【請求項５】
第１の表色系で表現された第１の画像データを第２の表色系で表現された第２の画像データに変換する画像処理方法であって、
（ａ）前記第１の表色系を表す色空間内に格子状に配置された複数の格子点のそれぞれについての前記第１の表色系における階調値と前記第２の表色系における階調値との対応を示す色変換データを含む色変換テーブルを所定の記憶領域に格納する工程と、
（ｂ）前記第１の画像データを構成する画素を１つずつ対象画素として選択し、前記対象画素の階調値を前記第２の表色系における階調値に変換する工程と、
（ｃ）前記所定の記憶領域からのデータの読み出しよりも高速に読み出し可能にデータをキャッシュする工程と、を備え、
前記工程（ｂ）は、
（ｉ）前記色空間内における前記対象画素の階調値に対応する点を、前記色空間内の複数の格子点の内の１つである相当格子点に確率的に割り当て、前記対象画素の階調値を、割り当てられた前記相当格子点の階調値に変換する第１の変換工程と、
（ｉｉ）前記対象画素の相当格子点についての色変換データを用いて、前記相当格子点の階調値を前記第２の表色系における階調値に変換する第２の変換工程と、を含み、
前記工程（ｃ）は、前記第２の変換工程において前記対象画素の相当格子点についての色変換データが前記所定の記憶領域から読み出された場合には、前記対象画素の相当格子点についての色変換データと前記色空間において前記対象画素の相当格子点に近接する所定の範囲の格子点についての色変換データとを、キャッシュする工程であり、
前記対象画素の相当格子点に近接する所定の範囲の格子点は、前記相当格子点を含む所定の大きさの六面体に含まれる格子点の内の前記相当格子点を除く格子点であり、
前記工程（ｃ）は、前記第１の変換工程により設定された前記対象画素の相当格子点が、前記工程（ｃ）においてキャッシュされた色変換データに対応する格子点であって、前記色空間の各軸方向に沿って当該格子点と隣接する少なくとも１つの格子点についての色変換データがキャッシュされていない格子点に該当することとなる場合には、前記隣接する少なくとも１つの格子点についての色変換データがキャッシュされるように、色変換データのキャッシュ状態の更新を行う、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、色変換テーブルを用いて画像データの色変換を行う技術に関する。
【背景技術】
【０００２】
カラー画像処理の１つとして、第１の表色系（例えばＲＧＢ表色系）で表現された画像データを第２の表色系（例えばＣＭＹＫ表色系）で表現された画像データへと変換する色変換処理がある。色変換処理は、一般に、色変換三次元ルックアップテーブル（以下「色変換ＬＵＴ」と呼ぶ）を用いて実行される。色変換ＬＵＴは、第１の表色系を表す色空間内に格子状に配置された複数の格子点のそれぞれについての第１の表色系における入力階調値と第２の表色系における出力階調値との対応を示す色変換データを含むテーブルである。
【０００３】
一般に、色変換処理では、画像データを構成する画素の変換前の階調値が色変換ＬＵＴの格子点の入力階調値と一致する場合には、当該格子点の出力階調値そのものが変換後の階調値とされる。また、変換前の階調値が色変換ＬＵＴの格子点の入力階調値と一致しない場合には、色空間において変換前の階調値を表す点に近接する複数の格子点についての色変換データを用いた所定の補間演算により、変換後の階調値が算出される。補間演算の方法としては、四面体補間や立方体（または直方体）補間等が用いられる。
【０００４】
色変換処理において、ＲＯＭやＲＡＭ上に格納された色変換ＬＵＴに含まれる色変換データの内、ある対象画素についての補間演算に用いた格子点の色変換データをＣＰＵのキャッシュメモリ上にキャッシュする技術が知られている。この技術では、他の対象画素についての補間演算を行う際に必要な色変換データがキャッシュメモリ上にキャッシュされている場合には、ＲＯＭやＲＡＭからの色変換データの読み出しを行うことなく補間演算を実行することができるため、色変換処理の高速化を図ることができる。
【０００５】
【特許文献１】特開２００４−２４２２１３
【特許文献２】特開２００４−１８５５３３
【特許文献３】特開２００３−２８９４４９
【特許文献４】特開２００４−２７４１３１
【特許文献５】特開２０００−２０１２７８
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来の技術では、他の対象画素についての補間演算を行う際に、補間演算に必要な複数の格子点の色変換データのすべてがキャッシュメモリ上にキャッシュされている場合に限り、キャッシュヒットとなる。すなわち、必要な複数の色変換データの内の１つでもキャッシュメモリ上にキャッシュされていない場合にはキャッシュミスとなり、ＲＯＭやＲＡＭからの色変換データの読み出し処理が発生する。そのため、上記従来の技術では、色変換処理の高速化を十分に図ることが困難であるという問題があった。
【０００７】
本発明は、上述した従来の課題を解決するためになされたものであり、色変換処理の高速化を十分に実現することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題の少なくとも一部を解決するために、本発明の画像処理装置は、
第１の表色系で表現された第１の画像データを第２の表色系で表現された第２の画像データに変換する画像処理装置であって、
前記第１の表色系を表す色空間内に格子状に配置された複数の格子点のそれぞれについての前記第１の表色系における階調値と前記第２の表色系における階調値との対応を示す色変換データを含む色変換テーブルを格納するテーブル格納部と、
前記第１の画像データを構成する画素を１つずつ対象画素として選択し、前記対象画素の階調値を前記第２の表色系における階調値に変換する色変換部と、
前記テーブル格納部からのデータの読み出しよりも高速に読み出し可能にデータをキャッシュするキャッシュ部と、を備え、
前記色変換部は、
前記対象画素の階調値を、前記色空間内の複数の格子点の内の１つである相当格子点の階調値に確率的に変換する第１の変換部と、
前記対象画素の相当格子点についての色変換データを用いて、前記相当格子点の階調値を前記第２の表色系における階調値に変換する第２の変換部と、を含み、
前記キャッシュ部は、前記第２の変換部が前記対象画素の相当格子点についての色変換データを前記テーブル格納部から読み出した場合には、前記対象画素の相当格子点についての色変換データと前記色空間において前記対象画素の相当格子点に近接する所定の範囲の格子点についての色変換データとを、キャッシュする、画像処理装置。
【０００９】
この画像処理装置では、対象画素の相当格子点についての色変換データと相当格子点に近接する所定の範囲の格子点についての色変換データとが、キャッシュ部にキャッシュされる。また、第１の変換部では、対象画素の階調値が複数の格子点の内の１つである相当格子点の階調値に確率的に変換される。さらに、第２の変換部では、対象画素の相当格子点についての色変換データを用いて、相当格子点の階調値が第２の表色系における階調値に変換される。そのため、この画像処理装置では、対象画素の相当格子点についての色変換データさえキャッシュ部にキャッシュされていればキャッシュヒットとなる。従って、この画像処理装置では、補間演算に用いる複数の格子点のすべてについての色変換データがキャッシュされている場合のみキャッシュヒットとなる従来の画像処理装置と比較して、キャッシュヒットの確率を大幅に向上させることができ、色変換処理の高速化を十分に実現することができる。
【００１０】
上記画像処理装置において、
前記第１の表色系を表す色空間は３次元空間であり、
前記相当格子点は、前記色空間内の８つの格子点を頂点とする六面体であって前記対象画素の階調値を表す点を含む最小の六面体の頂点のいずれか１つであるとしてもよい。
【００１１】
このようにすれば、色変換に伴う画質の低下を抑制しつつ第１の変換部による変換を実行することができる。
【００１２】
また、上記画像処理装置において、
前記対象画素の相当格子点に近接する所定の範囲の格子点は、前記相当格子点を含む所定の大きさの六面体に含まれる格子点の内の前記相当格子点を除く格子点であるとしてもよい。
【００１３】
このようにすれば、キャッシュ部にキャッシュする色変換データを迅速に特定することができ、キャッシュ処理の高速化を図ることができる。
【００１４】
また、上記画像処理装置において、
前記所定の大きさの六面体は、内部に前記対象画素の相当格子点を含むと共に、表面に２６個の格子点を含む六面体であるとしてもよい。
【００１５】
このようにすれば、キャッシュ部にキャッシュする色変換データを比較的少なくすることができ、キャッシュヒットの確率の向上を確保しつつ、キャッシュ処理を原因とする色変換処理速度の低減を抑制することができる。
【００１６】
また、上記画像処理装置において、
前記キャッシュ部は、前記第１の変換部により設定された前記対象画素の相当格子点が、前記キャッシュ部にキャッシュされている色変換データに対応する格子点であって、前記色空間の各軸方向に沿って当該格子点と隣接する少なくとも１つの格子点についての色変換データが前記キャッシュ部にキャッシュされていない格子点に該当することとなる場合には、前記隣接する少なくとも１つの格子点についての色変換データがキャッシュされるように、色変換データのキャッシュ状態の更新を行うとしてもよい。
【００１７】
このようにすれば、キャッシュヒットの確率のさらなる向上を図ることができ、色変換処理の高速化をより十分に実現することができる。
【００１８】
また、上記画像処理装置において、
前記所定の大きさの六面体は、内部に前記対象画素の相当格子点を含む８個の格子点を含むと共に、表面に５６個の格子点を含む六面体であるとしてもよい。
【００１９】
このようにすれば、キャッシュ部にキャッシュする色変換データの数を比較的少なく抑えつつ、キャッシュ状態の更新の頻度を少なくして色変換処理速度の低減を抑制することができる。
【００２０】
また、上記画像処理装置において、
前記第２の表色系は、画像の印刷に用いるインク色で表現された表色系であるとしてもよい。
【００２１】
このようにすれば、画像の印刷に伴う色変換処理の高速化を十分に実現することができる。
【００２２】
なお、本発明は、種々の態様で実現することが可能であり、例えば、画像処理方法および装置、画像色変換方法および装置、画像補正方法および装置、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００２３】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１実施例：
Ｂ．第２実施例：
Ｃ．変形例：
【００２４】
Ａ．第１実施例：
図１は、本発明の第１実施例における画像処理装置としてのプリンタ１００の構成を概略的に示す説明図である。プリンタ１００は、ＣＰＵ１１０と、例えばＳＤＲＡＭによって構成されたＲＡＭ１２０と、ＲＯＭ１３０と、ボタンやタッチパネル等の操作部１４０と、液晶モニタ等の表示部１５０と、プリンタエンジン１６０と、カードインターフェース（カードＩ／Ｆ）１７０と、を備えている。
【００２５】
プリンタエンジン１６０は、印刷データＰＤに基づき印刷を行う印刷機構である。カードインターフェース１７０は、カードスロット１７２に挿入されたメモリカード１７４との間でデータのやり取りを行うインターフェースである。
【００２６】
ＣＰＵ１１０は、キャッシュ部１１２を備えている。キャッシュ部１１２は、例えばＳＲＡＭによって構成された図示しないキャッシュメモリと、キャッシュメモリを制御する図示しないキャッシュコントローラとを含んでいる。キャッシュ部１１２は、ＣＰＵ１１０がＲＡＭ１２０やＲＯＭ１３０からのデータの読み出しよりも高速に読み出し可能にデータをキャッシュすることができる。
【００２７】
ＲＯＭ１３０には、印刷処理プログラム２００が格納されている。印刷処理プログラム２００は、画像データＩＭＧに基づく画像の印刷を実行するためのコンピュータプログラムである。ＣＰＵ１１０は、ＲＯＭ１３０から直接またはＲＡＭ１２０を介して印刷処理プログラム２００を読み出して実行することにより、画像の印刷を実現する。なお、本実施例における画像の印刷では、メモリカード１７４に格納された画像データＩＭＧが用いられるものとする。また、この画像データＩＭＧは、各画素の階調値がＲＧＢ表色系で表現されたＲＧＢデータであるものとする。
【００２８】
印刷処理プログラム２００は、モジュールとして、解像度変換部２１０と、色変換部２２０と、ハーフトーン処理部２３０と、データ配列部２４０と、を含んでいる。解像度変換部２１０は、カードインターフェース１７０を介してメモリカード１７４から読み出された画像データＩＭＧの解像度を、色変換部２２０以降の処理に適した解像度に変換する。色変換部２２０は、解像度変換後の画像データＩＭＧを、プリンタエンジン１６０における印刷に用いられる複数のインク色で階調表現されたインク色画像データＩＮＫに変換する。なお、本実施例では、プリンタエンジン１６０における印刷に用いられる複数のインク色は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の４色であるものとする。
【００２９】
ハーフトーン処理部２３０は、インク色画像データＩＮＫにおける各インク色の階調値に基づいてハーフトーン処理を実行することによって、印刷画素毎のインクドットの形成状態を示すドットデータを生成する。データ配列部２４０は、生成されたドットデータを配列して、印刷データＰＤとして出力する。
【００３０】
印刷処理プログラム２００により生成された印刷データＰＤは、プリンタエンジン１６０に供給される。印刷データＰＤは、印刷解像度を有する主走査ライン上の各画素についてインクドットの記録状態を表すドットデータと、副走査送り量を特定する副走査送り量データを含んでいる。
【００３１】
ＲＯＭ１３０には、また、プレ変換テーブル３１０と、色変換三次元ルックアップテーブル（以下「色変換ＬＵＴ」と呼ぶ）３２０と、が格納されている。プレ変換テーブル３１０および色変換ＬＵＴ３２０は、画像の印刷処理の際にＲＡＭ１２０上の所定のアドレスに読み出される。
【００３２】
図２は、色変換ＬＵＴ３２０の一例を示す説明図である。色変換ＬＵＴ３２０は、第１の表色系を表す３次元の色空間内に格子状に配置された複数の格子点Ｐのそれぞれについての第１の表色系における階調値と第２の表色系における階調値との対応を示す色変換データＣＤを含むテーブルである。本実施例では、第１の表色系は、画像データＩＭＧの表現に用いられるＲＧＢ表色系であり、第２の表色系は、インク色画像データＩＮＫの表現に用いられるＣＭＹＫ表色系である。
【００３３】
図２（ａ）には、色変換ＬＵＴ３２０における格子点Ｐの配置の一例を示している。格子点Ｐは、第１の表色系を表す色空間の各軸（Ｒ軸、Ｇ軸、Ｂ軸）のそれぞれに沿って設定された参照階調値の組み合わせにより特定される。参照階調値は、最小階調値（図２（ａ）の例では０）から最大階調値（図２（ａ）の例では２５５）までの間に、任意の数（例えば３１個）だけ離散的に設定された階調値である。図２（ａ）には、色変換ＬＵＴ３２０の各軸に沿った参照階調値の配置のイメージを破線を用いて表現している。なお、図２（ａ）には、Ｒ＝Ｇ＝Ｂ＝０である黒色点ＢｋとＲ＝Ｇ＝Ｂ＝２５５である白色点Ｗとを示している。
【００３４】
なお、図２（ａ）は、あくまで色変換ＬＵＴ３２０における参照階調値の配置のイメージを示したものであり、実際の参照階調値の配置がこのような配置に限定されるものではない。また、一般に、色変換ＬＵＴ３２０の参照階調値の配置は、色変換の精度を考慮して設定されるため、必ずしも均等間隔に設定されるわけではない。すなわち、ある階調値の範囲では参照階調値が密に設定され、他の階調値の範囲では参照階調値が粗に設定される場合もある。また、色変換ＬＵＴ３２０の参照階調値の配置は、軸毎に独立して設定され、必ずしもすべての軸について同じ参照階調値の配置が設定される訳ではない。
【００３５】
図２（ｂ）には、色変換ＬＵＴ３２０を構成する色変換データＣＤの内容の一例を示している。図２（ｂ）に示すように、色変換ＬＵＴ３２０には、格子点Ｐのそれぞれについての色変換データＣＤが含まれている。上述したように、色変換データＣＤは、ＲＧＢ表色系における階調値（入力階調値）とＣＭＹＫ表色系における階調値（出力階調値）との対応を示すデータである。なお、図２（ｂ）から明らかなように、本実施例の色変換ＬＵＴ３２０では、Ｂ軸に沿った参照階調値は、階調値８毎に設定されている。そして、Ｒ軸およびＧ軸に沿った参照階調値も、Ｂ軸と同様に階調値８毎に設定されているものとする。
【００３６】
図３は、色変換部２２０（図１）の詳細構成を示す説明図である。色変換部２２０は、プレ変換部２６０と、ポスト変換部２７０と、を含んでいる。
【００３７】
プレ変換部２６０は、テーブル参照部２６２と、ランダムノイズ加算部２６４と、相当格子点決定部２６６と、を含んでいる。以下に説明するように、プレ変換部２６０は、画像データＩＭＧの階調値を、色変換ＬＵＴ３２０のいずれかの格子点Ｐ（以下「相当格子点ＳＰ」とも呼ぶ）の入力階調値に確率的に変換する機能を有している。
【００３８】
プレ変換部２６０のテーブル参照部２６２は、プレ変換テーブル３１０（図１）を参照して、画像データＩＭＧの階調値を色変換ＬＵＴ３２０に適した格子点Ｐの入力階調値ＬＩに変換する。ただし、プレ変換テーブル３１０の出力は、この格子点入力階調値ＬＩ（「仮の格子点入力階調値」とも呼ぶ）と、付加小数ＡＦとを含んでいる。ランダムノイズ加算部２６４は、付加小数ＡＦにランダムなノイズＲＮを加算する。相当格子点決定部２６６は、付加小数ＡＦとランダムノイズＲＮとの加算値（ＡＦ＋ＲＮ）に応じて、相当格子点ＳＰを決定し、最終的な格子点入力階調値ＦＬＩを出力する。
【００３９】
図４は、プレ変換の概要を示す説明図である。図４には、画像データＩＭＧを構成する任意の画素（対象画素）の階調値（Ｒｘ，Ｇｘ，Ｂｘ）で表される対象画素点Ｐｘを黒丸で示している。図４には、また、ＲＧＢ色空間において対象画素点Ｐｘを含む最小の六面体の頂点となる８つの格子点Ｐ（格子点Ｐａ〜Ｐｈ）を白丸で示している。プレ変換では、対象画素点Ｐｘの階調値（Ｒｘ，Ｇｘ，Ｂｘ）が、８つの格子点Ｐａ〜Ｐｈのいずれか１つである相当格子点ＳＰの入力階調値に確率的に割り当てられる。
【００４０】
図４の下部には、Ｒ成分に関するプレ変換の例を示している。Ｒｘは、対象画素のＲ成分の階調値であり、Ｒ１は、格子点Ｐａ〜ＰｄのＲ成分の入力階調値であり、Ｒ２は、格子点Ｐｅ〜ＰｈのＲ成分の入力階調値である。すなわち、Ｒ１およびＲ２は、Ｒｘを挟んで隣接するＲ成分の参照階調値である。
【００４１】
まず、対象画素の階調値Ｒｘは、プレ変換テーブル３１０（図１）によって格子点入力階調値ＬＩと付加小数ＡＦとに変換される。図５は、プレ変換テーブル３１０の一例を示す説明図である。図５には、Ｒ成分についてのプレ変換テーブル３１０を示している。格子点入力階調値ＬＩの値は、対象画素の階調値Ｒｘ以下の参照階調値のうちで、階調値Ｒｘに最も近い参照階調値である。例えば、図４の下部に示した例では、格子点入力階調値ＬＩの値は、Ｒ１となる。また、付加小数ＡＦは、対象画素の階調値Ｒｘと格子点入力階調値ＬＩ（＝Ｒ１）との差分（Ｒｘ−Ｒ１）を、２つの参照階調値Ｒ１，Ｒ２の差分（Ｒ２−Ｒ１）で除した値に設定される。例えば、Ｒ１＝８，Ｒ２＝１６，Ｒｘ＝１０のときには、図５に示すように、ＬＩ＝８であり、ＡＦ＝（１０−８）／（１６−８）＝０．２５である。
【００４２】
付加小数ＡＦには、０〜１の範囲のランダムノイズＲＮが加算される。付加小数ＡＦとランダムノイズＲＮとの加算値（ＡＦ＋ＲＮ）が１．０未満のときには、仮の格子点入力階調値ＬＩがそのまま最終的な格子点入力階調値ＦＬＩとして採用される。すなわち、図４の下部に示した例では、ＦＬＩ＝Ｒ１となる。一方、加算値（ＡＦ＋ＲＮ）が１．０以上のときには、仮の格子点入力階調値ＬＩに隣接するより大きな参照階調値が最終的な格子点入力階調値ＦＬＩとして採用される。すなわち、図４の下部に示した例では、ＦＬＩ＝Ｒ２となる。このように、対象画素の階調値Ｒｘに対する最終的な格子点入力階調値ＦＬＩは、加算値（ＡＦ＋ＲＮ）に応じて、階調値Ｒｘを挟んで隣接する２つの参照階調値Ｒ１，Ｒ２のいずれかに設定される。
【００４３】
このように、プレ変換で得られる最終格子点入力階調値ＦＬＩは、対象画素の階調値Ｒｘの値に応じて２つの参照階調値Ｒ１，Ｒ２のいずれかに設定されるが、これらの２つの参照階調値Ｒ１、Ｒ２のいずれに設定されるかはランダムノイズＲＮに依存する。従って、仮に同じ階調値Ｒｘを有する画素が集合している一様な画像領域においても、プレ変換の結果は２つの参照階調値Ｒ１，Ｒ２がランダムに分散した結果となる。また、その一様な画像領域内の画素の最終的な格子点入力階調値ＦＬＩの平均的な値は、階調値Ｒｘに等しいものとなる。
【００４４】
画像データＩＭＧを構成する画素毎に、上述のようなプレ変換をＲ成分、Ｇ成分、Ｂ成分のそれぞれについて実行することにより、各画素の階調値が、色変換ＬＵＴ３２０のいずれかの格子点Ｐ（相当格子点ＳＰ）の入力階調値ＦＬＩに確率的に変換される。なお、各成分についてのプレ変換に用いるプレ変換テーブル３１０は、同じテーブルであってもよいし、互いに異なるテーブルであってもよい。
【００４５】
図６は、ポスト変換の概要を示す説明図である。ポスト変換では、画像データＩＭＧの画素毎に、色変換ＬＵＴ３２０内の色変換データＣＤが参照されて、プレ変換で決定された最終的な格子点入力階調値ＦＬＩがインク色画像データＩＮＫを構成するインク色の階調値に変換される。格子点入力階調値ＦＬＩは色変換ＬＵＴ３２０のいずれかの格子点Ｐ（相当格子点ＳＰ）の入力階調値であるため、ポスト変換において補間演算が行われることはない。
【００４６】
以上のように、本実施例のプリンタ１００では、色変換部２２０がプレ変換部２６０およびポスト変換部２７０を備えているため、補間演算を行うことなく色変換処理を実行することができる。
【００４７】
図７は、プリンタ１００による画像の印刷処理の内の色変換処理の流れを示すフローチャートである。色変換処理は、解像度変換部２１０（図１）による解像度変換後の画像データＩＭＧをインク色画像データＩＮＫに変換する処理である。
【００４８】
ステップＳ１１０では、色変換部２２０（図１）が、画像データＩＭＧを構成する複数の画素の中から１つの画素を対象画素として選択する。なお、本実施例では、対象画素の選択は、隣接画素がなるべく連続して選択されるように行われる。例えば、最初に画像の左上隅の画素が選択され、その後、右隣の画素が順に選択され、右端の画素の選択が終わると直下の行について同様に左から右に順に選択され、最後に画像の右下隅の画素が選択される。
【００４９】
ステップＳ１２０では、色変換部２２０のテーブル参照部２６２（図３）が、プレ変換テーブル３１０（図５）を参照して、対象画素の階調値を格子点入力階調値ＬＩと付加小数ＡＦとに変換する。ステップＳ１３０では、ランダムノイズ加算部２６４（図３）が、付加小数ＡＦにランダムノイズＲＮを加算する。ステップＳ１４０では、相当格子点決定部２６６（図３）が、相当格子点ＳＰを決定して最終的な格子点入力階調値ＦＬＩを出力する。
【００５０】
ステップＳ１５０では、ポスト変換部２７０（図３）が、相当格子点ＳＰについての色変換データＣＤ（図２）がキャッシュ部１１２（図１）にキャッシュされているかを判定する。ステップＳ１５０において、相当格子点ＳＰについての色変換データＣＤがキャッシュされていないと判定された場合（キャッシュミスの場合）には、ポスト変換部２７０は、ＲＡＭ１２０上に読み出されている色変換ＬＵＴ３２０の中の相当格子点ＳＰについての色変換データＣＤを読み出す（ステップＳ１６０）。ステップＳ１７０では、ポスト変換部２７０が、ＲＡＭ１２０から読み出された色変換データＣＤを参照して、最終的な格子点入力階調値ＦＬＩをインク色（ＣＭＹＫ）で表現されたインク色階調値に変換する。
【００５１】
ステップＳ１８０では、キャッシュ部１１２（図１）が、キャッシュ処理を行う。ステップＳ１８０におけるキャッシュ処理は、ポスト変換部２７０による処理結果に応じて所定の色変換データＣＤをキャッシュメモリ上にキャッシュする処理である。
【００５２】
図８は、第１実施例におけるキャッシュ処理の概念を示す説明図である。第１実施例では、ＲＡＭ１２０上から相当格子点ＳＰについての色変換データＣＤが読み出された場合には（図７のステップＳ１６０）、相当格子点ＳＰについての色変換データＣＤと、図８（ａ）に黒丸で示した格子点Ｐについての色変換データＣＤとが、キャッシュされる。図８（ａ）に黒丸で示した格子点Ｐは、色変換ＬＵＴ３２０の３つの座標軸のすべてに沿って相当格子点ＳＰと重複または隣接する格子点Ｐである。すなわち、内部に相当格子点ＳＰを含む六面体（以下「対象六面体」と呼ぶ）の内部および表面に含まれる合計２７個の格子点Ｐについての色変換データＣＤがキャッシュ部１１２にキャッシュされる。
【００５３】
なお、キャッシュ処理の際には、図８（ａ）に黒丸で示した格子点Ｐについての色変換データＣＤをＲＡＭ１２０から読み出す必要があるが、この読み出しは、ステップＳ１６０における相当格子点ＳＰについての色変換データＣＤの読み出しに併せて実行するとしてもよいし、相当格子点ＳＰについての色変換データＣＤの読み出しとは独立して実行するとしてもよい。
【００５４】
また、ＲＡＭ１２０からの色変換データＣＤの読み出しは、必要なもののみを読み出せばよい。例えば、図８（ｂ）に黒丸で示す２７個の格子点Ｐの色変換データＣＤがキャッシュ部１１２にキャッシュされているときに、図８（ｂ）に示す位置に相当格子点ＳＰが設定されたとする。このときにも相当格子点ＳＰについての色変換データＣＤがＲＡＭ１２０上から読み出されるため、キャッシュ処理（キャッシュ状態の更新）が行われる。この場合のキャッシュ処理では、図８（ｃ）に示すように、すでにキャッシュされている色変換データＣＤ（黒丸で示す格子点Ｐについての色変換データＣＤ）はそのままキャッシュ部１１２に残される。また、新たに対象六面体に含まれることとなる格子点Ｐ（相当格子点ＳＰおよびハッチングを付した格子点Ｐ）についての色変換データＣＤが、新たにキャッシュされる。なお、対象六面体に含まれないこととなる格子点Ｐ（破線で示す格子点Ｐ）についての色変換データＣＤは削除される。
【００５５】
なお、図９に示すように、相当格子点ＳＰの各軸に沿った階調値の少なくとも１つが０または２５５である場合には、図９において黒丸で示すように、３つの座標軸のすべてに沿って相当格子点ＳＰと重複または隣接する格子点Ｐについての色変換データＣＤのみをキャッシュするとしてもよい。この場合には、キャッシュされる色変換データＣＤは、２７個よりも少なくなる。あるいは、図９においてハッチングを付した格子点Ｐについての色変換データＣＤも含め、常に合計２７個の格子点Ｐについての色変換データＣＤをキャッシュするとしてもよい。
【００５６】
一方、ステップＳ１５０（図７）において、相当格子点ＳＰについての色変換データＣＤがキャッシュされていると判定された場合（キャッシュヒットの場合）には、ポスト変換部２７０は、キャッシュ部１１２から相当格子点ＳＰについての色変換データＣＤを読み出す（ステップＳ１９０）。ステップＳ２００では、ポスト変換部２７０が、読み出された色変換データＣＤを参照して、最終的な格子点入力階調値ＦＬＩをインク色で表現されたインク色階調値に変換する。
【００５７】
このように、本実施例では、キャッシュミスの場合には、キャッシュ処理（図７のステップＳ１８０）としてキャッシュ部１１２における色変換データＣＤのキャッシュ状態の更新を行う。一方、キャッシュヒットの場合には、キャッシュ部１１２におけるキャッシュ状態の更新を行わない。
【００５８】
ステップＳ２１０（図７）では、色変換部２２０（図３）が、画像データＩＭＧ内のすべての画素を対象画素として選択したか否かを判定する。まだ未選択の画素があると判定された場合には、ステップＳ１１０に戻り、同様の処理を繰り返し実行する。一方、すべての画素を選択したと判定された場合には、処理を終了する。
【００５９】
以上説明したように、本実施例のプリンタ１００は、ＲＧＢ表色系で表現された画像データＩＭＧをＣＭＹＫ表色系で表現されたインク色画像データＩＮＫに変換する色変換処理を実行することができる。この色変換処理では、相当格子点ＳＰについての色変換データＣＤさえキャッシュ部１１２にキャッシュされていればキャッシュヒットとなり、ＲＡＭ１２０からの色変換データＣＤの読み出しが発生しない。そして、一般に、写真等の画像では、隣接画素の階調値は近似した値であることが多いため、ある対象画素に設定される相当格子点ＳＰは１つ前の対象画素に設定された相当格子点ＳＰに近接することとなる場合が多い。そのため、本実施例の色変換処理では、補間演算に用いる複数の格子点Ｐのすべてについての色変換データＣＤがキャッシュされている場合のみキャッシュヒットとなり、１つでもキャッシュされていない場合にはＲＡＭ等からの色変換データＣＤの読み出しが発生する従来の色変換処理と比較して、キャッシュヒットの確率を大幅に向上させることができる。従って、本実施例のプリンタ１００による色変換処理では、処理の高速化を十分に実現することができる。
【００６０】
なお、本実施例では、図８（ａ）に示すように、３つの座標軸のすべてに沿って相当格子点ＳＰと重複または隣接する格子点Ｐについての色変換データＣＤのみをキャッシュしているため、キャッシュのための色変換データＣＤのＲＡＭ１２０やＲＯＭ１３０からの読み出しによる色変換処理の処理速度の低減を抑制することができる。
【００６１】
Ｂ．第２実施例：
図１０は、第２実施例における色変換処理の流れを示すフローチャートである。また、図１１は、第２実施例におけるキャッシュ処理の概念を示す説明図である。第２実施例における色変換処理は、キャッシュ処理の方法が第１実施例における色変換処理とは異なっている。
【００６２】
図１０に示す第２実施例の色変換処理のステップＳ１１０からＳ１７０までの処理は、図７に示す第１実施例の色変換処理のステップＳ１１０からＳ１７０までの処理と同じ内容である。すなわち、対象画素の選択およびプレ変換が行われ、キャッシュ判定（ステップＳ１５０）が行われる。キャッシュミスの場合には、ＲＡＭ１２０から色変換データＣＤが読み出され、インク色階調値が決定される。
【００６３】
その後のステップＳ１８０（図１０）では、キャッシュ部１１２（図１）が、キャッシュ処理を行う。このキャッシュ処理では、図１１（ａ）に示す六面体（対象六面体）に含まれる合計６４個の格子点Ｐについての色変換データＣＤが、キャッシュ部１１２にキャッシュされる。この対象六面体は、内部に対象画素の相当格子点ＳＰを含む８個の格子点Ｐを含むと共に、表面に５６個の格子点Ｐを含む六面体である。なお、図１１では、格子点Ｐの配置をわかりやすくするために、格子点Ｐを色を分けて表現したり、特定の１つの座標軸に垂直な平面にハッチングを付したりしている。
【００６４】
また、図１０に示す第２実施例の色変換処理のステップＳ１９０からＳ２００までの処理は、図７に示す第１実施例の色変換処理のステップＳ１９０からＳ２００までの処理と同じ内容である。すなわち、キャッシュ判定（ステップＳ１５０）においてキャッシュヒットの場合には、キャッシュ部１１２から色変換データＣＤが読み出され、インク色階調値が決定される。
【００６５】
その後のステップＳ２２０（図１０）では、キャッシュ部１１２（図１）が、相当格子点ＳＰは最外格子点であるか否かを判定する。ここで、最外格子点とは、キャッシュ部１１２にキャッシュされている色変換データＣＤに対応する格子点Ｐであって、第１の表色系（ＲＧＢ表色系）を表す色空間の各軸方向に沿って当該格子点Ｐと隣接する少なくとも１つの格子点Ｐについての色変換データＣＤがキャッシュ部１１２にキャッシュされていない格子点Ｐを意味している。すなわち、最外格子点は、対象六面体の表面に位置する格子点Ｐである。ステップＳ２２０において相当格子点ＳＰが最外格子点ではない（すなわち、対象六面体の内部に位置する格子点Ｐである）と判定された場合には、キャッシュ処理（ステップＳ１８０）を行わずにステップＳ２１０に進む。一方、ステップＳ２２０において相当格子点ＳＰが最外格子点である（すなわち、対象六面体の表面に位置する格子点Ｐである）と判定された場合には、キャッシュ部１１２によるキャッシュ処理（ステップＳ１８０）が行われる。
【００６６】
この場合のキャッシュ処理の方法を図１１（ｂ）に示す。キャッシュ部１１２におけるキャッシュの状態が図１１（ａ）に示す状態のときに図１１（ｂ）に示す位置に相当格子点ＳＰが設定された場合、相当格子点ＳＰは最外格子点に該当することとなる。このとき、キャッシュ部１１２は、相当格子点ＳＰが最外格子点に該当しなくなるように、キャッシュ状態の更新を行う。具体的には、図１１（ｂ）においてハッチングを付した１６個の格子点Ｐについての色変換データＣＤが新たにキャッシュされる。なお、代わりに破線で示した１６個の格子点Ｐについての色変換データＣＤが削除される。すなわち、キャッシュ部１１２は、相当格子点ＳＰが対象六面体の表面に位置しなくなるように、キャッシュ状態の更新を行う。
【００６７】
なお、第２実施例の色変換処理においても、第１実施例において図９を用いて説明したように、相当格子点ＳＰの各軸に沿った階調値の少なくとも１つが０または２５５である場合には、６４個よりも少ない格子点Ｐについての色変換データＣＤのみをキャッシュするとしてもよい。あるいは、常に合計６４個の格子点Ｐについての色変換データＣＤをキャッシュするとしてもよい。
【００６８】
以上説明したように、第２実施例の色変換処理では、キャッシュヒットの場合でも、相当格子点ＳＰが最外格子点に該当する場合には、相当格子点ＳＰが最外格子点に該当しなくなるようにキャッシュ状態の更新を行う。上述したように、写真等の画像では、隣接画素の階調値は近似した値であることが多いため、ある対象画素に設定される相当格子点ＳＰは１つ前の対象画素に設定された相当格子点ＳＰに近接することとなる場合が多い。従って、相当格子点ＳＰが最外格子点に該当しないようにキャッシュ状態を更新すると、そのようなキャッシュ状態の更新を行わない場合と比較して、次回のポスト変換におけるキャッシュヒットの確率をより高めることができる。従って、第２実施例の色変換処理では、処理の高速化をより十分に実現することができる。
【００６９】
Ｃ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００７０】
Ｃ１．変形例１：
上記各実施例では、画像処理装置がプリンタ１００として構成されているが、本発明は、プリンタ１００以外の色変換処理を行う画像処理装置にも適用可能である。例えば、画像処理装置をコンピュータとして構成することも可能である。
【００７１】
また、上記各実施例における色変換処理は、ＲＧＢ表色系で表現された画像データからＣＭＹＫ表色系で表現された画像データへの変換処理であるが、本発明は、他の色変換処理にも適用可能である。例えば、本発明は、スキャナで使用されるＲＧＢ表色系で表現された画像データからモニタで使用されるＲＧＢ表色系で表現された画像データへの色変換処理にも適用できる。
【００７２】
Ｃ２．変形例２：
上記各実施例では、プレ変換テーブルの参照で得られた仮の格子点入力階調値ＬＩから最終的な格子点入力階調値ＦＬＩを決定する際に、付加小数ＡＦにランダムノイズＲＮを加算していたが、付加小数ＡＦの代わりに他の付加的な値を用いて最終的な格子点入力階調値を決定するようにしてもよい。例えば、付加的な値として、所定のビット数の整数値を入力階調値に応じて付与しておき、これにランダムノイズを加算した加算結果と所定の閾値とを比較することによって最終的な格子点入力階調値ＦＬＩを決定するようにしてもよい。本明細書では、最終的な格子点入力階調値ＦＬＩを決定するための付加的な値を「付加判定値」と呼ぶ。
【００７３】
Ｃ３．変形例３：
上記各実施例で使用したプレ変換方法の代わりに、他のプレ変換方法を使用することも可能である。例えば、上記各実施例ではランダムにノイズを発生させていたが、ディザパターンのような所定のノイズパターンに従ってノイズを発生させるようにしてもよい。また、誤差拡散法を利用してプレ変換を行うとしてもよい。プレ変換としては、入力画像データの階調値を色変換ＬＵＴ３２０の複数の格子点Ｐの内の１つである相当格子点ＳＰの階調値に確率的に変換する変換方法を採用することが可能である。
【００７４】
Ｃ４．変形例４：
上記各実施例におけるキャッシュ部１１２によるキャッシュの方法はあくまで一例である。キャッシュ部１１２は、相当格子点ＳＰについての色変換データＣＤと相当格子点ＳＰに近接する所定の範囲の格子点Ｐについての色変換データＣＤとをキャッシュすればよく、他のキャッシュ方法を採用することも可能である。例えば、キャッシュする色変換データＣＤの数は、２７個や６４個に限られず、任意の数に設定することができる。また、キャッシュする色変換データＣＤは、所定の大きさの六面体に含まれる格子点Ｐについての色変換データＣＤである必要はなく、例えば、相当格子点ＳＰを中心とする球の表面および内部に含まれる格子点Ｐについての色変換データＣＤであるとしてもよい。
【００７５】
Ｃ５．変形例５：
上記各実施例における色変換データＣＤの構成は、あくまで一例であり、色変換データＣＤを他の構成とすることも可能である。例えば、色変換ＬＵＴ３２０の各格子点Ｐに識別番号を付し、色変換データＣＤを識別番号と出力階調値との対応を示すデータとして構成してもよい。この場合にも、色変換データＣＤは、識別番号を介して、第１の表色系における入力階調値と第２の表色系における出力階調値とを対応付けるデータとなる。
【００７６】
Ｃ６．変形例６：
上記各実施例におけるプリンタ１００の構成は、あくまで一例であり、プリンタ１００の構成を他の構成とすることも可能である。例えば、プリンタ１００は、ネットワークを介して画像データＩＭＧを取得可能な構成であるとしてもよい。また、プリンタ１００のプリンタエンジン１６０において用いられるインク色はＣＭＹＫの４色に限られず、任意の種類のインク色を採用可能である。また、上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【図面の簡単な説明】
【００７７】
【図１】本発明の第１実施例における画像処理装置としてのプリンタ１００の構成を概略的に示す説明図である。
【図２】色変換ＬＵＴ３２０の一例を示す説明図である。
【図３】色変換部２２０の詳細構成を示す説明図である。
【図４】プレ変換の概要を示す説明図である。
【図５】プレ変換テーブル３１０の一例を示す説明図である。
【図６】ポスト変換の概要を示す説明図である。
【図７】プリンタ１００による画像の印刷処理の内の色変換処理の流れを示すフローチャートである。
【図８】第１実施例におけるキャッシュ処理の概念を示す説明図である。
【図９】相当格子点ＳＰの各軸に沿った階調値の少なくとも１つが０または２５５である場合のキャッシュ処理の概念を示す説明図である。
【図１０】第２実施例における色変換処理の流れを示すフローチャートである。
【図１１】第２実施例におけるキャッシュ処理の概念を示す説明図である。
【符号の説明】
【００７８】
１００...プリンタ
１１０...ＣＰＵ
１１２...キャッシュ部
１２０...ＲＡＭ
１３０...ＲＯＭ
１４０...操作部
１５０...表示部
１６０...プリンタエンジン
１７０...カードインターフェース
１７２...カードスロット
１７４...メモリカード
２００...印刷処理プログラム
２１０...解像度変換部
２２０...色変換部
２３０...ハーフトーン処理部
２４０...データ配列部
２６０...プレ変換部
２６２...テーブル参照部
２６４...ランダムノイズ加算部
２６６...相当格子点決定部
２７０...ポスト変換部
３１０...プレ変換テーブル
３２０...色変換ＬＵＴ
【図１】
0004595796.tif 000002
【図２】
0004595796.tif 000003
【図３】
0004595796.tif 000004
【図４】
0004595796.tif 000005
【図５】
0004595796.tif 000006
【図６】
0004595796.tif 000007
【図７】
0004595796.tif 000008
【図８】
0004595796.tif 000009
【図９】
0004595796.tif 000010
【図１０】
0004595796.tif 000011
【図１１】
0004595796.tif 000012