JP2007281764A - 色変換テーブルを用いた色変換 - Google Patents

色変換テーブルを用いた色変換 Download PDF

Info

Publication number
JP2007281764A
JP2007281764A JP2006104109A JP2006104109A JP2007281764A JP 2007281764 A JP2007281764 A JP 2007281764A JP 2006104109 A JP2006104109 A JP 2006104109A JP 2006104109 A JP2006104109 A JP 2006104109A JP 2007281764 A JP2007281764 A JP 2007281764A
Authority
JP
Japan
Prior art keywords
color conversion
cache
conversion data
color
gradation value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006104109A
Other languages
English (en)
Inventor
Takayuki Fukuda
隆行 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2006104109A priority Critical patent/JP2007281764A/ja
Publication of JP2007281764A publication Critical patent/JP2007281764A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)

Abstract

【課題】色変換処理の高速化を十分に実現することを可能とする。
【解決手段】画像処理装置は、複数の格子点についての第1の表色系における階調値と第2の表色系における階調値との対応を示す色変換データを格納する格納部と、対象画素の階調値を第2の表色系における階調値に変換する色変換部と、複数のキャッシュ領域を有するキャッシュ部を備える。色変換部は、対象画素の階調値を相当格子点の階調値に確率的に変換すると共に、色変換データを用いて相当格子点の階調値を第2の表色系における階調値に変換する。キャッシュ部は、相当格子点の色変換データが格納部から読み出される毎にキャッシュ状態を更新する。対象画素の相当格子点の色変換データと相当格子点に近接する格子点の色変換データとを含む近接色変換データ群が新たにキャッシュされた場合には、次回のキャッシュ状態の更新の際に当該近接色変換データ群は廃棄されず維持される。
【選択図】図10

Description

本発明は、色変換テーブルを用いて画像データの色変換を行う技術に関する。
例えばデジタルスチルカメラを用いた撮影により生成されたカラー画像データ(例えばRGB表色系で表現されたRGBデータ)に基づき画像の印刷を行う場合には、当該カラー画像データを印刷装置のインク色に対応した画像データ(例えばCMYK表色系で表現されたCMYKデータ)に変換するための色変換処理が行われる。
このような色変換処理を行う方法の1つとして、色変換三次元ルックアップテーブル(以下「色変換LUT」と呼ぶ)を用いた方法が知られている。色変換LUTは、第1の表色系(例えばRGB表色系)を表す色空間内に格子状に配置された複数の格子点のそれぞれについての第1の表色系における入力階調値と第2の表色系(例えばCMYK表色系)における出力階調値との対応を示す色変換データを含むテーブルである。
一般に、色変換LUTを用いた色変換処理では、変換前の画像データを構成する画素の階調値が色変換LUTの格子点の入力階調値と一致する場合には、当該格子点の出力階調値そのものが変換後の画像データの階調値とされる。また、変換前の階調値が色変換LUTの格子点の入力階調値と一致しない場合には、色空間において変換前の階調値を表す点に近接する複数の格子点についての色変換データを用いた所定の補間演算により、変換後の階調値が算出される。補間演算の方法としては、四面体補間や立方体(または直方体)補間等が用いられる。
色変換処理において、ROMやRAM上に格納された色変換LUTに含まれる色変換データの内、ある対象画素についての補間演算に用いた格子点の色変換データをCPUのキャッシュメモリ上にキャッシュする技術が知られている。この技術では、続いて他の対象画素についての補間演算を行う際に、必要な色変換データがキャッシュメモリ上にキャッシュされている場合には、ROMやRAMからの色変換データの読み出しを行うことなく補間演算を実行することができるため、色変換処理の高速化を図ることができる。
特開2004−242213 特開2004−185533 特開2003−289449 特開2004−274131 特開2000−201278
上記従来の技術では、他の対象画素についての補間演算を行う際に、補間演算に必要な複数の格子点の色変換データのすべてがキャッシュメモリ上にキャッシュされている場合に限り、キャッシュヒットとなる。すなわち、必要な複数の色変換データの内の1つでもキャッシュメモリ上にキャッシュされていない場合にはキャッシュミスとなり、ROMやRAMからの色変換データの読み出し処理が発生する。そのため、上記従来の技術では、色変換処理の高速化を十分に図ることが困難であるという問題があった。
なお、このような問題は、RGBデータをCMYKデータに変換するための色変換処理に限らず、画像データの色変換処理一般に共通の問題であった。
本発明は、上述した従来の課題を解決するためになされたものであり、色変換処理の高速化を十分に実現することを可能とする技術を提供することを目的とする。
上記課題の少なくとも一部を解決するために、本発明の画像処理装置は、
第1の表色系で表現された第1の画像データを第2の表色系で表現された第2の画像データに変換する画像処理装置であって、
前記第1の表色系を表す色空間内に格子状に配置された複数の格子点のそれぞれについての前記第1の表色系における階調値と前記第2の表色系における階調値との対応を示す色変換データを含む色変換テーブルを格納するテーブル格納部と、
前記第1の画像データを構成する画素を順に1つずつ対象画素として選択すると共に、対象画素の階調値を前記第2の表色系における階調値に変換する色変換部と、
前記テーブル格納部からの色変換データの読み出しよりも高速に読み出し可能に色変換データをキャッシュする複数のキャッシュ領域を有するキャッシュ部と、を備え、
前記色変換部は、
対象画素の階調値を、前記色空間内の複数の格子点の内の1つである相当格子点の階調値に確率的に変換する第1の変換部と、
対象画素に対応する相当格子点についての色変換データを用いて、相当格子点の階調値を前記第2の表色系における階調値に変換する第2の変換部と、を含み、
前記キャッシュ部は、前記第2の変換部が対象画素の相当格子点についての色変換データを前記テーブル格納部から読み出す毎に前記複数のキャッシュ領域における色変換データのキャッシュ状態を更新すると共に、キャッシュ状態の更新の際に、対象画素に対応する相当格子点についての色変換データと前記色空間において対象画素に対応する相当格子点に近接する所定の範囲内に位置する格子点についての色変換データとを含む近接色変換データ群を前記複数のキャッシュ領域の1つに新たにキャッシュした場合には、次回のキャッシュ状態の更新の際に、当該新たにキャッシュされた近接色変換データ群を廃棄せずに維持する。
この画像処理装置では、対象画素の相当格子点についての色変換データと相当格子点に近接する所定の範囲内の格子点についての色変換データとを含む近接色変換データ群が、キャッシュ部のキャッシュ領域にキャッシュされる。また、第1の変換部では、対象画素の階調値が複数の格子点の内の1つである相当格子点の階調値に確率的に変換される。さらに、第2の変換部では、対象画素の相当格子点についての色変換データを用いて、相当格子点の階調値が第2の表色系における階調値に変換される。そのため、この画像処理装置では、対象画素の相当格子点についての色変換データさえキャッシュ領域にキャッシュされていればキャッシュヒットとなる。従って、この画像処理装置では、補間演算に用いる複数の格子点のすべてについての色変換データがキャッシュされている場合のみキャッシュヒットとなる従来の画像処理装置と比較して、キャッシュヒットの確率を大幅に向上させることができ、色変換処理の高速化を十分に実現することができる。
さらに、この画像処理装置では、キャッシュ状態の更新の際に近接色変換データ群がキャッシュ領域に新たにキャッシュされた場合には、次回のキャッシュ状態の更新の際に、当該新たにキャッシュされた近接色変換データ群は廃棄されず維持される。そのため、例えば画像中のノイズのように、互いに近似した階調値を有する複数の画素で構成される領域(正常画像領域)中に階調値の大きく異なるごく少数の画素が混在しているような場合にも、キャッシュヒットの確率を大きく高めることができる。従って、この画像処理装置では、色変換処理の高速化をさらに十分に実現することができる。
上記画像処理装置において、
前記キャッシュ部は、毎回のキャッシュ状態の更新において、前記複数のキャッシュ領域の内から順に選択された1つのキャッシュ領域に新たな近接色変換データ群をキャッシュするとしてもよい。
このようにすれば、少なくとも、現在の対象画素に対応した相当格子点に近接する更新点の色変換データと、1つ前に選択された対象画素に対応した相当格子点に近接する更新点の色変換データとの両方が、キャッシュ領域に保持される状態が維持される。そのため、例えば画像中のエッジのように、互いに近似した階調値を有する複数の画素で構成される第1の領域と、第1の領域の階調値とは大きく異なる値であって互いに近似した階調値を有する複数の画素で構成される第2の領域との境界部分においても、キャッシュヒットの確率を大きく高めることができる。従って、この画像処理装置では、色変換処理の高速化をさらに十分に実現することができる。
また、上記画像処理装置において、
前記キャッシュ部は、キャッシュ状態の更新の際に、1つ前に選択された対象画素についての前記第2の変換部による変換処理において前記キャッシュ領域にキャッシュされた近接色変換データ群に含まれる色変換データが用いられた場合には、前記キャッシュ領域にキャッシュされた近接色変換データ群を廃棄せずに維持するとしてもよい。
このようにすれば、少なくとも2つの連続した対象画素について、第2の変換部による変換処理においてキャッシュ領域にキャッシュされた近接色変換データ群に含まれる色変換データが用いられない限り、キャッシュ領域にキャッシュされた近接色変換データ群は廃棄されず維持される。そのため、例えば画像中のノイズのように、互いに近似した階調値を有する複数の画素で構成される領域(正常画像領域)中に階調値の大きく異なるごく少数の画素が混在しているような場合にも、キャッシュヒットの確率を大きく高めることができる。従って、この画像処理装置では、色変換処理の高速化をさらに十分に実現することができる。
また、上記画像処理装置において、
前記第1の表色系を表す色空間は3次元空間であり、
相当格子点は、前記色空間内の8つの格子点を頂点とする六面体であって対象画素の階調値を表す点を含む最小の六面体の頂点のいずれか1つであるとしてもよい。
このようにすれば、色変換に伴う画質の低下を抑制しつつ第1の変換部による変換を実行することができる。
また、上記画像処理装置において、
前記近接色変換データ群は、相当格子点を含む所定の大きさの六面体に含まれる格子点についての色変換データであるとしてもよい。
このようにすれば、キャッシュ領域にキャッシュする色変換データを迅速に特定することができ、キャッシュ処理の高速化を図ることができる。
また、上記画像処理装置において、
前記所定の大きさの六面体は、内部に対象画素の相当格子点を含むと共に、表面に26個の格子点を含む六面体であるとしてもよい。
このようにすれば、キャッシュ領域にキャッシュする色変換データを比較的少なくすることができ、キャッシュヒットの確率の向上を確保しつつ、キャッシュ処理を原因とする色変換処理速度の低減を抑制することができる。
また、上記画像処理装置において、
前記キャッシュ部は、前記第1の変換部により設定された対象画素の相当格子点が、前記複数のキャッシュ領域の内の第1のキャッシュ領域にキャッシュされている近接色変換データ群に含まれる色変換データに対応する格子点であって、前記色空間の各軸方向に沿って当該格子点と隣接する少なくとも1つの格子点についての色変換データが前記第1のキャッシュ領域にキャッシュされている近接色変換データ群に含まれないような格子点に該当することとなる場合には、前記隣接する少なくとも1つの格子点についての色変換データを含む近接色変換データ群を前記第1のキャッシュ領域にキャッシュするとしてもよい。
このようにすれば、キャッシュヒットの確率のさらなる向上を図ることができ、色変換処理の高速化をより十分に実現することができる。
また、上記画像処理装置において、
前記所定の大きさの六面体は、内部に対象画素の相当格子点を含む8個の格子点を含むと共に、表面に56個の格子点を含む六面体であるとしてもよい。
このようにすれば、キャッシュ領域にキャッシュする色変換データの数を比較的少なく抑えつつ、キャッシュ状態の更新の頻度を少なくして色変換処理速度の低減を抑制することができる。
また、上記画像処理装置において、
前記第2の表色系は、画像の印刷に用いるインク色で表現された表色系であるとしてもよい。
このようにすれば、画像の印刷に伴う色変換処理の高速化を十分に実現することができる。
なお、本発明は、種々の態様で実現することが可能であり、例えば、画像処理方法および装置、画像色変換方法および装置、画像補正方法および装置、これらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
B.第2実施例:
C.第3実施例:
D.第4実施例:
E.変形例:
A.第1実施例:
図1は、本発明の第1実施例における画像処理装置としてのプリンタ100の構成を概略的に示す説明図である。プリンタ100は、例えばSDRAMによって構成されたRAM120と、ROM130と、ボタンやタッチパネル等の操作部140と、液晶モニタ等の表示部150と、プリンタエンジン160と、カードインターフェース(カードI/F)170と、プリンタ100の各構成要素を制御するCPU110と、を備えている。プリンタ100は、さらに、他の機器(例えばデジタルスチルカメラ)とのデータ通信を行うためのインターフェースを備えているとしてもよい。
プリンタエンジン160は、印刷データPDに基づき印刷を行う印刷機構である。カードインターフェース170は、カードスロット172に挿入されたメモリカード174との間でデータのやり取りを行うためのインターフェースである。
CPU110は、キャッシュ部112を備えている。キャッシュ部112は、例えばSRAMによって構成された複数のキャッシュメモリ116と、キャッシュメモリ116を制御するキャッシュコントローラ114と、を含んでいる。キャッシュ部112は、CPU110の図示しないCPUコアがRAM120やROM130からのデータの読み出しよりも高速に読み出し可能にデータをキャッシュすることができる。図1に示すように、本実施例では、キャッシュ部112は、2つのキャッシュメモリ116(キャッシュメモリA116AおよびキャッシュメモリB116B)を含んでいる。
ROM130には、印刷処理プログラム200が格納されている。印刷処理プログラム200は、画像データIMGに基づく画像の印刷を実行するためのコンピュータプログラムである。CPU110は、ROM130から直接またはRAM120を介して印刷処理プログラム200を読み出して実行することにより、プリンタエンジン160を用いた画像の印刷を実現する。なお、本実施例における画像の印刷は、メモリカード174に格納された画像データIMGに基づき行われるものとする。また、この画像データIMGは、各画素の階調値がRGB表色系で表現されたRGBデータであるものとする。
印刷処理プログラム200は、モジュールとして、解像度変換部210と、色変換部220と、ハーフトーン処理部230と、データ配列部240と、を含んでいる。解像度変換部210は、カードインターフェース170を介してメモリカード174から読み出された画像データIMGの解像度を、色変換部220による処理以降の処理に適した解像度に変換する。色変換部220は、解像度変換後の画像データIMGを、プリンタエンジン160における印刷に用いられる複数のインク色で階調表現されたインク色画像データINKに変換する。なお、本実施例では、プリンタエンジン160における印刷に用いられる複数のインク色は、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)の4色であるものとする。
ハーフトーン処理部230は、インク色画像データINKにおける各インク色の階調値に基づいてハーフトーン処理を実行することによって、印刷画素毎のインクドットの形成状態を示すドットデータを生成する。データ配列部240は、生成されたドットデータを配列して、印刷データPDとして出力する。
印刷処理プログラム200により生成された印刷データPDは、プリンタエンジン160に供給される。印刷データPDは、印刷解像度を有する主走査ライン上の各画素についてインクドットの記録状態を表すドットデータと、副走査送り量を特定する副走査送り量データとを含んでいる。
ROM130には、また、プレ変換テーブル310と、色変換三次元ルックアップテーブル(以下「色変換LUT」と呼ぶ)320と、が格納されている。プレ変換テーブル310および色変換LUT320は、画像の印刷処理の際にRAM120上の所定のアドレスに読み出される。
図2は、色変換LUT320の一例を示す説明図である。色変換LUT320は、第1の表色系を表す3次元の色空間内に格子状に配置された複数の格子点Pのそれぞれについての第1の表色系における階調値と第2の表色系における階調値との対応を示す色変換データCDを含むテーブルである。本実施例では、第1の表色系は、画像データIMGの表現に用いられるRGB表色系であり、第2の表色系は、インク色画像データINKの表現に用いられるCMYK表色系である。
図2(a)には、色変換LUT320における格子点Pの配置の一例を示している。格子点Pは、第1の表色系を表す色空間の各軸(R軸、G軸、B軸)のそれぞれに沿って設定された参照階調値の組み合わせにより特定される。参照階調値は、最小階調値(図2(a)の例では0)から最大階調値(図2(a)の例では255)までの間に、任意の数(例えば31個)だけ離散的に設定された階調値である。図2(a)には、色変換LUT320の各軸に沿った参照階調値の配置のイメージを破線を用いて表現している。なお、図2(a)には、R=G=B=0である黒色点BkとR=G=B=255である白色点Wとを示している。
なお、図2(a)は、あくまで色変換LUT320における参照階調値の配置のイメージを示したものであり、実際の参照階調値の配置がこのような配置に限定されるものではない。また、一般に、色変換LUT320の参照階調値の配置は、色変換の精度を考慮して設定されるため、必ずしも均等間隔に設定されるわけではない。すなわち、ある階調値の範囲では参照階調値が密に設定され、他の階調値の範囲では参照階調値が粗に設定される場合もある。また、色変換LUT320の参照階調値の配置は、軸毎に独立して設定され、必ずしもすべての軸について同じ参照階調値の配置が設定される訳ではない。
図2(b)には、色変換LUT320を構成する色変換データCDの内容の一例を示している。図2(b)に示すように、色変換LUT320には、複数の格子点Pのそれぞれについての色変換データCDが含まれている。上述したように、色変換データCDは、RGB表色系における階調値(入力階調値)とCMYK表色系における階調値(出力階調値)との対応を示すデータである。なお、図2(b)から明らかなように、本実施例の色変換LUT320では、B軸に沿った参照階調値は、階調値8毎に設定されている。そして、R軸およびG軸に沿った参照階調値も、B軸と同様に階調値8毎に設定されているものとする。
図3は、色変換部220(図1)の詳細構成を示す説明図である。色変換部220は、プレ変換部260と、ポスト変換部270と、を含んでいる。
プレ変換部260は、テーブル参照部262と、ランダムノイズ加算部264と、相当格子点決定部266と、を含んでいる。以下に説明するように、プレ変換部260は、画像データIMGの階調値を、色変換LUT320のいずれかの格子点P(以下「相当格子点SP」とも呼ぶ)の入力階調値に確率的に変換する処理(以下「プレ変換」とも呼ぶ)を行う機能を有している。
プレ変換部260のテーブル参照部262は、プレ変換テーブル310(図1)を参照して、画像データIMGの階調値を色変換LUT320に適した格子点Pの入力階調値LIに変換する。ただし、プレ変換テーブル310の出力は、この格子点入力階調値LI(「仮の格子点入力階調値」とも呼ぶ)と、付加小数AFとを含んでいる。ランダムノイズ加算部264は、付加小数AFにランダムなノイズRNを加算する。相当格子点決定部266は、付加小数AFとランダムノイズRNとの加算値(AF+RN)に応じて、相当格子点SPを決定し、最終的な格子点入力階調値FLIを出力する。
図4は、プレ変換部260(図3)によるプレ変換の概要を示す説明図である。図4には、画像データIMGを構成する任意の画素(対象画素)の階調値(Rx,Gx,Bx)で表される対象画素点Pxを黒丸で示している。図4には、また、RGB色空間において対象画素点Pxを含む最小の六面体の頂点となる8つの格子点P(格子点Pa〜Ph)を白丸で示している。プレ変換では、対象画素点Pxの階調値(Rx,Gx,Bx)が、8つの格子点Pa〜Phのいずれか1つである相当格子点SPの入力階調値に確率的に割り当てられる。
図4の下部には、R成分に関するプレ変換の例を示している。Rxは、対象画素のR成分の階調値であり、R1は、格子点Pa〜PdのR成分の入力階調値であり、R2は、格子点Pe〜PhのR成分の入力階調値である。すなわち、R1およびR2は、Rxを挟んで隣接するR成分の参照階調値である。
まず、対象画素の階調値Rxは、プレ変換テーブル310(図1)によって格子点入力階調値LIと付加小数AFとに変換される。図5は、プレ変換テーブル310の一例を示す説明図である。図5には、R成分についてのプレ変換テーブル310を示している。格子点入力階調値LIの値は、対象画素の階調値Rx以下の参照階調値のうちで、階調値Rxに最も近い参照階調値である。例えば、図4の下部に示した例では、格子点入力階調値LIの値は、R1となる。また、付加小数AFは、対象画素の階調値Rxと格子点入力階調値LI(=R1)との差分(Rx−R1)を、2つの参照階調値R1,R2の差分(R2−R1)で除した値に設定される。例えば、R1=8,R2=16,Rx=10のときには、図5に示すように、LI=8であり、AF=(10−8)/(16−8)=0.25である。
付加小数AFには、0〜1の範囲のランダムノイズRNが加算される。付加小数AFとランダムノイズRNとの加算値(AF+RN)が1.0未満のときには、仮の格子点入力階調値LIがそのまま最終的な格子点入力階調値FLIとして採用される。すなわち、図4の下部に示した例では、FLI=R1となる。一方、加算値(AF+RN)が1.0以上のときには、仮の格子点入力階調値LIに隣接するより大きな参照階調値が最終的な格子点入力階調値FLIとして採用される。すなわち、図4の下部に示した例では、FLI=R2となる。このように、対象画素の階調値Rxに対する最終的な格子点入力階調値FLIは、加算値(AF+RN)に応じて、階調値Rxを挟んで隣接する2つの参照階調値R1,R2のいずれかに設定される。
このように、プレ変換で得られる最終格子点入力階調値FLIは、対象画素の階調値Rxの値に応じて2つの参照階調値R1,R2のいずれかに設定されるが、これらの2つの参照階調値R1、R2のいずれに設定されるかはランダムノイズRNに依存する。従って、仮に同じ階調値Rxを有する画素が集合している一様な画像領域においても、プレ変換の結果は2つの参照階調値R1,R2がランダムに分散した結果となる。また、その一様な画像領域内の画素の最終的な格子点入力階調値FLIの平均的な値は、階調値Rxに等しいものとなる。
画像データIMGを構成する画素毎に、上述のようなプレ変換をR成分、G成分、B成分のそれぞれについて実行することにより、各画素の階調値が、色変換LUT320のいずれかの格子点P(相当格子点SP)の入力階調値FLIに確率的に変換される。すなわち、各画素の階調値が、画像全体または画像内の所定の領域内において、変換の前後の階調値の平均値が維持されるように、相当格子点SPの入力階調値FLIに変換される。なお、各成分についてのプレ変換に用いるプレ変換テーブル310は、同じテーブルであってもよいし、互いに異なるテーブルであってもよい。
図6は、ポスト変換部270(図3)によるポスト変換の概要を示す説明図である。ポスト変換では、画像データIMGの画素毎に、色変換LUT320内の色変換データCDが参照されて、プレ変換で決定された最終的な格子点入力階調値FLIがインク色画像データINKを構成するインク色の階調値に変換される。格子点入力階調値FLIは色変換LUT320のいずれかの格子点P(相当格子点SP)の入力階調値であるため、ポスト変換において補間演算が行われることはない。
以上のように、本実施例のプリンタ100では、色変換部220がプレ変換部260およびポスト変換部270を備えているため、補間演算を行うことなく色変換処理を実行することができる。
図7は、プリンタ100による画像の印刷処理の内の色変換処理の流れを示すフローチャートである。色変換処理は、解像度変換部210(図1)による解像度変換後の画像データIMGをインク色画像データINKに変換する処理である。
ステップS110では、色変換部220(図1)が、画像データIMGを構成する複数の画素の中から1つの画素を対象画素として選択する。なお、本実施例では、対象画素の選択は、隣接画素がなるべく連続して選択されるように行われる。例えば、最初に画像の左上隅の画素が選択され、その後、右隣の画素が順に選択され、右端の画素の選択が終わると直下の行について同様に左から右に順に選択され、最後に画像の右下隅の画素が選択される。
ステップS120では、色変換部220のテーブル参照部262(図3)が、プレ変換テーブル310(図5)を参照して、対象画素の階調値を格子点入力階調値LIと付加小数AFとに変換する。ステップS130では、ランダムノイズ加算部264(図3)が、付加小数AFにランダムノイズRNを加算する。ステップS140では、相当格子点決定部266(図3)が、相当格子点SPを決定して最終的な格子点入力階調値FLIを出力する。
ステップS150では、ポスト変換部270(図3)が、キャッシュヒット判定を行う。具体的には、ポスト変換部270は、相当格子点SPについての色変換データCD(図2)がキャッシュ部112のキャッシュメモリ116(図1)にキャッシュされているか(キャッシュヒット)、キャッシュされていないか(キャッシュミス)を判定する。この判定は、相当格子点SPについての色変換データCDの読み出し元となる記憶領域を決定するために行われる。
ステップS150において、相当格子点SPについての色変換データCDがキャッシュされていないと判定された場合(キャッシュミスの場合)には、ポスト変換部270は、RAM120から色変換LUT320の中の相当格子点SPについての色変換データCDを読み出す(ステップS160)。その後、ポスト変換部270は、RAM120から読み出された色変換データCDを参照して、最終的な格子点入力階調値FLIをインク色(CMYK)で表現されたインク色階調値に変換する(ステップS170)。
一方、ステップS150において、相当格子点SPについての色変換データCDがキャッシュされていると判定された場合(キャッシュヒットの場合)には、ポスト変換部270は、キャッシュ部112のキャッシュメモリ116(図1)から相当格子点SPについての色変換データCDを読み出す(ステップS190)。この読み出しは、RAM120からの色変換データCDの読み出し(ステップS160)よりも高速に実行可能である。その後、ポスト変換部270は、読み出された色変換データCDを参照して、最終的な格子点入力階調値FLIをインク色で表現されたインク色階調値に変換する(ステップS200)。
本実施例では、ステップS150においてキャッシュミスと判定された場合には、RAM120からの色変換データCDの読み出し(ステップS160)およびインク色階調値の決定(ステップS170)の後に、キャッシュ部112(図1)によるキャッシュ更新処理(ステップS180)が行われる。
図8は、第1実施例におけるキャッシュ更新処理の流れを示すフローチャートである。キャッシュ更新処理は、キャッシュ部112(図1)における色変換データCDのキャッシュ状態の更新を行う処理である。ここで、キャッシュ状態の更新とは、キャッシュメモリ116にキャッシュすべきデータを設定すると共に、設定に従って新たにデータをキャッシュしたり、キャッシュされているデータを入れ替えたりする処理を意味している。
ステップS310(図8)では、キャッシュ部112のキャッシュコントローラ114(図1)が、色変換データCDがキャッシュされていないキャッシュメモリ116(以下「空きキャッシュメモリ」と呼ぶ)の有無を判定する。ステップS310において空きキャッシュメモリが有ると判定された場合には、キャッシュコントローラ114は、空きキャッシュメモリに色変換データCDを格納する(ステップS320)。
ここで、ステップS320における色変換データCDのキャッシュは、近接色変換データ群を対象として行われる。図9は、第1実施例における近接色変換データ群の概念を示す説明図である。近接色変換データ群とは、対象画素の相当格子点SPについての色変換データCDと、色変換LUT320の入力色空間において対象画素の相当格子点SPに近接する所定の範囲内に位置する格子点についての色変換データCDと、を含む複数の色変換データCDの集合である。図9(a)に示すように、第1実施例では、近接色変換データ群は、相当格子点SPについての色変換データCDと、図9(a)に黒丸で示した格子点Pについての色変換データCDと、により構成される。ここで、図9(a)に黒丸で示した格子点Pは、色変換LUT320の3つの座標軸のすべてに沿って相当格子点SPと重複または隣接する格子点Pである。すなわち、近接色変換データ群は、内部に相当格子点SPを含む六面体(以下「対象六面体」とも呼ぶ)の内部および表面に含まれる合計27個の格子点Pについての色変換データCDにより構成される。
図10は、第1実施例におけるキャッシュ更新処理の概念を示す説明図である。図10(a)には、キャッシュメモリA116Aに近接色変換データ群(CD(1)〜(27))がキャッシュされ、キャッシュメモリB116Bには色変換データCDがキャッシュされていない状態を示している。図10(a)に示すキャッシュ状態のときに、ある対象画素(画素1)についてのキャッシュヒット判定(図7のステップS150)においてキャッシュヒットと判定された場合には、ヒットした色変換データCD(例えばハッチングを付したCD(2))がキャッシュメモリ116から読み出される(図7のステップS190)。このときには、キャッシュ更新処理(図7のステップS180)は実行されず、キャッシュメモリ116のキャッシュ状態は、図10(a)に示した状態のまま維持される。
図10(a)に示す状態のときに、次の対象画素(画素2)についてのキャッシュヒット判定においてキャッシュミスと判定された場合には、色変換データCDがRAM120から読み出される(図7のステップS160)。このときには、キャッシュ更新処理(図7のステップS180)が開始される。キャッシュ更新処理では、空きキャッシュメモリ有無の判定(図8のステップS310)において空きキャッシュメモリ(キャッシュメモリB116B)が有ると判定されるため、図10(b)に示すように、キャッシュメモリB116Bに新たな対象画素に対応した近接色変換データ群(CD’(1)〜(27))がキャッシュされる(図8のステップS320)。
一方、キャッシュ更新処理のステップS310(図8)において空きキャッシュメモリが無いと判定された場合には、キャッシュコントローラ114(図1)は、キャッシュメモリ116への格納時がより古い(より前である)データをキャッシュしているキャッシュメモリ116において、色変換データCDの入れ替えを行う(ステップS330)。ステップS330における色変換データCDの入れ替えも、近接色変換データ群を対象として行われる。
例えば、画素2(図10(b)参照)の次の対象画素(画素3)についてのキャッシュヒット判定においてキャッシュヒットと判定された場合には、キャッシュ更新処理は実行されず、キャッシュメモリ116のキャッシュ状態は維持される(図10(c)参照)。さらに、画素3の次の対象画素(画素4)についてのキャッシュヒット判定においてキャッシュミスと判定された場合には、キャッシュ更新処理が開始される。このときのキャッシュ更新処理では、空きキャッシュメモリが無い(図8のステップS310:No)ため、図10(d)に示すように、格納時がより古いデータをキャッシュしているキャッシュメモリA116Aにおいて、色変換データCDの入れ替えが行われる(図8のステップS330)。すなわち、キャッシュメモリA116Aにおいて、キャッシュされていた近接色変換データ群(CD(1)〜(27))が廃棄され、新たな対象画素に対応した近接色変換データ群(色変換データCD’’(1)〜(27))が格納される。
なお、ステップS320またはS330(図8)において近接色変換データ群を対象とした色変換データCDのキャッシュを行う際には、ステップS160(図7)で読み出した相当格子点SPについての色変換データCDの他に、図9(a)に黒丸で示した格子点Pについての色変換データCDをRAM120から読み出す必要がある。この読み出しは、相当格子点SPについての色変換データCDの読み出しとは独立して実行するとしてもよいし、ステップS160における相当格子点SPについての色変換データCDの読み出しの際に併せて実行するとしてもよい。
また、ステップS330(図8)における色変換データCDの入替の際には、色変換データ群を構成するすべての色変換データCDの廃棄・格納が行われる必要はなく、入れ替え前後で重複する色変換データCDについては廃棄・格納が行われないとしてもよい。例えば、図9(b)に黒丸で示す27個の格子点Pの色変換データCDにより構成される色変換データ群がキャッシュメモリ116にキャッシュされているときに、図9(b)に示す位置に相当格子点SPが設定されたとする。このときの色変換データCDの入替は、図9(c)に示すように、すでにキャッシュされている色変換データCD(黒丸で示す格子点Pについての色変換データCD)はそのままキャッシュメモリ116に残され、新たに対象六面体に含まれることとなる格子点P(相当格子点SPおよびハッチングを付した格子点P)についての色変換データCDが新たにキャッシュされるとしてもよい。なお、対象六面体に含まれないこととなる格子点P(破線で示す格子点P)についての色変換データCDは廃棄される。
ステップS210(図7)では、色変換部220(図3)が、画像データIMG内のすべての画素を対象画素として選択したか否かを判定する。まだ未選択の画素があると判定された場合には、ステップS110に戻り、同様の処理を繰り返し実行する。一方、すべての画素を選択したと判定された場合には、処理を終了する。
以上説明したように、本実施例のプリンタ100は、RGB表色系で表現された画像データIMGをCMYK表色系で表現されたインク色画像データINKに変換する色変換処理を実行することができる。この色変換処理では、相当格子点SPについての色変換データCDさえキャッシュ部112にキャッシュされていればキャッシュヒットとなり、RAM120からの色変換データCDの読み出しが発生しない。また、キャッシュミスが発生した場合には、その時の対象画素の相当格子点SPに対応する色変換データCDと、当該相当格子点SPに近接する所定の格子点に対応する色変換データCDとを含む近接色変換データ群が新たにキャッシュされる。ここで、一般に、写真等の画像では、隣接画素の階調値は近似した値であることが多いため、ある対象画素に設定される相当格子点SPは、前の対象画素に設定された相当格子点SPに近接することとなる場合が多い。そのため、本実施例の色変換処理では、補間演算に用いる複数の格子点Pのすべてについての色変換データCDがキャッシュされている場合のみキャッシュヒットとなり1つでもキャッシュされていない場合にはRAM等からの色変換データCDの読み出しが発生する従来の色変換処理と比較して、キャッシュヒットの確率を大幅に向上させることができる。従って、本実施例のプリンタ100による色変換処理では、処理の高速化を十分に実現することができる。
また、本実施例のプリンタ100による色変換処理(図7)では、RAM120からの相当格子点SPについての色変換データCDの読み出しが行われる(ステップS160)毎に、すなわち、キャッシュミスが発生する(ステップS150:No)毎に、キャッシュ更新処理(ステップS180)が実行される。キャッシュ更新処理(図8)では、毎回、新たな近接色変換データ群のキャッシュが行われる。この新たな近接色変換データ群のキャッシュは、空きキャッシュメモリにおいて優先的に行われるが、空きキャッシュメモリが無い場合には、格納時がより古いデータをキャッシュしているキャッシュメモリ116において行われる。従って、本実施例のキャッシュ更新処理では、2つのキャッシュメモリ116から交互に選択された1つのキャッシュメモリ116において、新たな近接色変換データ群のキャッシュが行われる。選択されなかった他方のキャッシュメモリ116にキャッシュされていた近接色変換データ群は、廃棄されずに維持される。従って、本実施例では、キャッシュ更新処理において新たにキャッシュされた近接色変換データ群は、次回のキャッシュ更新処理の際に廃棄されることはなく、さらにその次のキャッシュ更新処理の際に廃棄される。
このようなキャッシュ更新処理を実行すると、例えば画像中のノイズのように、互いに近似した階調値を有する複数の画素で構成される領域(以下「正常画像領域」と呼ぶ)中に階調値の大きく異なるごく少数の画素が混在しているような場合にも、キャッシュヒットの確率を大きく高めることができる。すなわち、ノイズの画素が対象画素として選択された際にはキャッシュミスとなる可能性が高いものの、次に正常画像領域中の画素が対象画素として選択された際には、前回の正常画像領域中の画素に対応した相当格子点SPについての近接色変換データ群がキャッシュメモリ116に保持されているため、キャッシュヒットとなる可能性が高い。そのため、本実施例のプリンタ100による色変換処理では、処理の高速化をさらに十分に実現することができる。
同様に、このようなキャッシュ更新処理を実行すると、例えば画像中のエッジのように、互いに近似した階調値を有する複数の画素で構成される第1の領域と、第1の領域の階調値とは大きく異なる値であって互いに近似した階調値を有する複数の画素で構成される第2の領域との境界部分においても、キャッシュヒットの確率を大きく高めることができる。すなわち、第1の領域から第2の領域に切り替わる部分の画素が対象画素として選択された際にはキャッシュミスとなる可能性が高いものの、次の画素が対象画素として選択された際には、切り替わり部分の画素に対応した相当格子点SPについての近接色変換データ群がキャッシュメモリ116に保持されているため、キャッシュヒットとなる可能性が高い。そのため、本実施例のプリンタ100による色変換処理では、処理の高速化をさらに十分に実現することができる。
なお、本実施例では、図9(a)に示すように、3つの座標軸のすべてに沿って相当格子点SPと重複または隣接する格子点Pについての色変換データCDのみをキャッシュしているため、キャッシュのための色変換データCDのRAM120やROM130からの読み出しによる色変換処理の処理速度の低減が抑制される。
なお、図11に示すように、相当格子点SPの各軸に沿った階調値の少なくとも1つが0または255である場合には、図11において黒丸で示すように、3つの座標軸のすべてに沿って相当格子点SPと重複または隣接する格子点Pについての色変換データCDのみにより色変換データ群が構成されるとしてもよい。この場合には、色変換データ群に含まれる色変換データCDは、27個よりも少なくなる。あるいは、図11においてハッチングを付した格子点Pについての色変換データCDも含め、常に合計27個の格子点Pについての色変換データCDにより色変換データ群が構成されるとしてもよい。
また、ステップS150(図7)のキャッシュヒット判定の際には、最も新しく格納された色変換データCDを有するキャッシュメモリ116を優先的に対象として行うことが好ましい。このようにすれば、キャッシュヒット判定の高速化を図ることができる。
B.第2実施例:
図12は、第2実施例におけるキャッシュ更新処理の流れを示すフローチャートである。また、図13は、第2実施例におけるキャッシュ更新処理の概念を示す説明図である。第2実施例は、色変換処理(図7)中のキャッシュ更新処理(図7のステップS180)の内容が第1実施例とは異なっている。
また、図13に示すように、第2実施例では、キャッシュメモリA116Aは、第1実施例(図10)と同様に、近接色変換データ群を格納することができるように構成されている。一方、キャッシュメモリB116Bは、1つの色変換データCDのみを格納できるように構成されている。
ステップS410(図12)では、キャッシュ部112のキャッシュコントローラ114(図1)が、直前のキャッシュ更新処理においてキャッシュメモリA116Aに近接色変換データ群の格納が行われたか否かを判定する。ステップS410の判定において、キャッシュメモリA116Aに近接色変換データ群の格納が行われたと判定された場合には、キャッシュコントローラ114(図1)は、キャッシュメモリB116Bに、相当格子点SPについての色変換データCDのみを格納する(ステップS430)。
ステップS420(図12)では、キャッシュコントローラ114(図1)が、現在選択されている対象画素の1つ前に選択された対象画素を対象とした色変換処理中のキャッシュヒット判定(図7のステップS150)の結果がキャッシュヒットであったか否かを判定する。すなわち、1つ前に選択された対象画素を対象とした色変換処理において、キャッシュメモリ116にキャッシュされた近接色変換データ群に含まれる色変換データCDが用いられたか否かが判定される。ステップS420の判定において、キャッシュヒットであった(ステップS420:Yes)と判定された場合には、キャッシュコントローラ114(図1)は、キャッシュメモリB116Bに、相当格子点SPについての色変換データCDのみを格納する(ステップS430)。
一方、ステップS420(図12)の判定において、キャッシュヒットではなかった(ステップS420:No)と判定された場合には、キャッシュコントローラ114は、キャッシュメモリA116Aに近接色変換データ群を格納する(ステップS440)。
図13(a)には、ある対象画素(画素1)についてのキャッシュヒット判定(図7のステップS150)においてキャッシュミスと判定され、キャッシュ更新処理(ステップS180)においてキャッシュメモリA116Aに新たに近接色変換データ群(CD(1)〜(27))がキャッシュされている様子を示している。また、図13(b)には、次の対象画素(画素2)についてのキャッシュヒット判定においてキャッシュヒットと判定された場合のキャッシュメモリ116の状態を示している。キャッシュヒットと判定された場合にはキャッシュ更新処理は実行されず、キャッシュメモリ116のキャッシュ状態は、図13(a)に示した状態のまま維持される。
画素2の次の対象画素(画素3)についてのキャッシュヒット判定においてキャッシュミスと判定された場合には、キャッシュ更新処理が開始される。このときのキャッシュ更新処理では、ステップS410(図12)において、直前のキャッシュ更新処理(図13(a)参照)においてキャッシュメモリA116Aに近接色変換データ群の格納が行われたと判定されるため、図13(c)に示すように、キャッシュメモリB116Bに相当格子点SPについての色変換データCDのみがキャッシュされる(図12のステップS430)。
画素3の次の対象画素(画素4)についてのキャッシュヒット判定においてキャッシュヒットと判定され(図13(d))、さらに、次の対象画素(画素5)についてのキャッシュヒット判定においてキャッシュミスと判定されたとする(図13(e))。このときのキャッシュ更新処理では、ステップS410(図12)において、直前のキャッシュ更新処理(図13(c)参照)においてキャッシュメモリA116Aに近接色変換データ群の格納は行われなかったと判定される。また、ステップS420の判定において、1つ前に選択された対象画素を対象とした色変換処理中のキャッシュヒット判定の結果がキャッシュヒットであった(図13(d)参照)と判定される。そのため、この場合にも、図13(e)に示すように、キャッシュメモリB116Bに相当格子点SPについての色変換データCDのみがキャッシュされる(図12のステップS430)。
画素5の次の対象画素(画素6)についてのキャッシュヒット判定においてキャッシュミスと判定されたとする(図13(f))。このときのキャッシュ更新処理では、ステップS410(図12)において、直前のキャッシュ更新処理(図13(e)参照)においてキャッシュメモリA116Aに近接色変換データ群の格納は行われなかったと判定され、かつ、ステップS420の判定において、1つ前に選択された対象画素を対象とした色変換処理中のキャッシュヒット判定の結果がキャッシュヒットではなかった(図13(e)参照)と判定される。そのため、この場合には、キャッシュメモリA116Aに近接色変換データ群がキャッシュされる(図12のステップS440)。
以上説明したように、第2実施例においても、RAM120からの相当格子点SPについての色変換データCDの読み出しが行われる(図7のステップS160)毎に、すなわち、キャッシュミスが発生する(図7のステップS150:No)毎に、キャッシュ更新処理(ステップS180)が実行される。第2実施例のキャッシュ更新処理(図12)では、直前のキャッシュ更新処理においてキャッシュメモリA116Aに近接色変換データ群の格納が行われた場合(図12のステップS410:Yes)には、キャッシュメモリB116Bにおける相当格子点SPについての色変換データCDの格納のみが行われ(ステップS430)、キャッシュメモリA116Aにおける近接色変換データ群の入れ替えは行われない。そのため、キャッシュ更新処理において新たに近接色変換データ群が新たにキャッシュされた場合には、次回のキャッシュ更新処理の際に、新たにキャッシュされた近接色変換データ群が廃棄されることがない。
また、第2実施例のキャッシュ更新処理では、1つ前に選択された対象画素を対象とした色変換処理中のキャッシュヒット判定(図7のステップS150)の結果がキャッシュヒットであった場合(図12のステップS420:Yes)、すなわち、1つ前に選択された対象画素を対象とした色変換処理においてキャッシュメモリ116にキャッシュされた近接色変換データ群に含まれる色変換データCDが用いられた場合には、やはり、キャッシュメモリB116Bにおける相当格子点SPについての色変換データCDの格納のみが行われ(ステップS430)、キャッシュメモリA116Aにおける近接色変換データ群の入れ替えは行われない。そのため、第2実施例のキャッシュ更新処理では、少なくとも2つの連続した対象画素についてのキャッシュ判定においてキャッシュミスと判定されない限り、キャッシュメモリA116Aにキャッシュされた近接色変換データ群は廃棄されず維持される。
このようなキャッシュ更新処理を実行すると、第1実施例と同様に、例えば画像中のノイズのように、互いに近似した階調値を有する複数の画素で構成される領域(正常画像領域)中に階調値の大きく異なるごく少数の画素が混在しているような場合にも、キャッシュヒットの確率を大きく高めることができる。すなわち、ノイズの画素が対象画素として選択された際にはキャッシュミスとなる可能性が高いものの、次に正常画像領域中の画素が対象画素として選択された際には、前回の正常画像領域中の画素に対応した相当格子点SPについての近接色変換データ群がキャッシュメモリ116に保持されているため、キャッシュヒットとなる可能性が高い。そのため、本実施例のプリンタ100による色変換処理では、処理の高速化をさらに十分に実現することができる。
また、第2実施例では、キャッシュメモリB116Bを、1つの色変換データCDのみを格納可能に構成すればよいため、容量の限られたリソースを用いた色変換処理においても、処理の高速化を実現することができる。
C.第3実施例:
図14は、第3実施例におけるプリンタ100aの構成を概略的に示す説明図である。第3実施例のプリンタ100aは、キャッシュ部112が、3つのキャッシュメモリ116(キャッシュメモリA116A、キャッシュメモリB116B、キャッシュメモリC116C)を含んでいる点が、図1に示した第1実施例のプリンタ100とは異なっている。
図15は、第3実施例におけるキャッシュ更新処理の流れを示すフローチャートである。また、図16は、第3実施例におけるキャッシュ更新処理の概念を示す説明図である。第3実施例は、色変換処理(図7)中のキャッシュ更新処理(図7のステップS180)の内容が第1実施例とは異なっている。
また、第3実施例では、図16に示すように、キャッシュメモリA116AおよびキャッシュメモリC116Cは、近接色変換データ群を格納することができるように構成されている。一方、キャッシュメモリB116Bは、1つの色変換データCDのみを格納できるように構成されている。
ステップS510(図15)では、キャッシュ部112のキャッシュコントローラ114(図14)が、キャッシュメモリA116AまたはキャッシュメモリC116Cは空きキャッシュメモリであるか否かを判定する。キャッシュメモリA116AまたはキャッシュメモリC116Cが空きキャッシュメモリであると判定された場合には、空きキャッシュメモリに近接色変換データ群を構成する色変換データCDを格納する(ステップS520)。一方、キャッシュメモリA116AおよびキャッシュメモリC116Cのいずれも空きキャッシュメモリではないと判定された場合には、ステップS530に進む。
ステップS530(図15)では、キャッシュコントローラ114(図14)が、直前のキャッシュ更新処理においてキャッシュメモリA116AまたはキャッシュメモリC116Cに近接色変換データ群の格納が行われたか否かを判定する。ステップS530の判定において、近接色変換データ群の格納が行われたと判定された場合には、キャッシュコントローラ114は、キャッシュメモリB116Bに、相当格子点SPについての色変換データCDのみを格納する(ステップS550)。
ステップS540(図15)では、キャッシュコントローラ114(図14)が、現在選択されている対象画素の1つ前に選択された対象画素を対象とした色変換処理中のキャッシュヒット判定(図7のステップS150)の結果がキャッシュヒットであったか否かを判定する。すなわち、1つ前に選択された対象画素を対象とした色変換処理において、キャッシュメモリ116にキャッシュされた近接色変換データ群に含まれる色変換データCDが用いられたか否かが判定される。ステップS530の判定において、キャッシュヒットであった(ステップS540:Yes)と判定された場合には、キャッシュコントローラ114は、キャッシュメモリB116Bに、相当格子点SPについての色変換データCDのみを格納する(ステップS550)。一方、ステップS540(図15)の判定において、キャッシュヒットではなかった(ステップS540:No)と判定された場合には、ステップS560に進む。
ステップS560(図15)では、キャッシュコントローラ114(図14)が、キャッシュメモリA116AまたはキャッシュメモリC116Cの内、キャッシュメモリ116への格納時がより古い(より前である)データをキャッシュしているキャッシュメモリ116において、色変換データCDの入れ替えを行う。
図16(a)には、ある対象画素(画素1)についてのキャッシュヒット判定(図7のステップS150)においてキャッシュミスと判定され、キャッシュ更新処理においてキャッシュメモリA116Aに新たに近接色変換データ群(CD(1)〜(27))がキャッシュされている様子を示している。
画素1の次の対象画素(画素2)についてのキャッシュヒット判定においてキャッシュミスと判定された場合には、キャッシュ更新処理が開始される。このときのキャッシュ更新処理では、ステップS530(図15)において、直前のキャッシュ更新処理(図16(a)参照)において近接色変換データ群の格納が行われたと判定されるため、図16(b)に示すように、キャッシュメモリB116Bに相当格子点SPについての色変換データCDのみがキャッシュされる(図15のステップS550)。
さらに、画素2の次の対象画素(画素3)についてのキャッシュヒット判定においてキャッシュミスと判定された場合には、キャッシュ更新処理が開始される。このときのキャッシュ更新処理では、ステップS530(図15)において、直前のキャッシュ更新処理(図16(b)参照)において近接色変換データ群の格納は行われなかったと判定される。また、ステップS540の判定において、1つ前に選択された対象画素を対象とした色変換処理中のキャッシュヒット判定の結果がキャッシュヒットではなかった(図16(b)参照)と判定される。そのため、この場合には、キャッシュメモリA116AまたはキャッシュメモリC116Cの内、キャッシュメモリ116への格納時がより古いデータをキャッシュしているキャッシュメモリC116Cに近接色変換データ群がキャッシされる(図15のステップS560)。
また、例えば、画素2(図16(b))と画素3(図16(c))との間に、他の画素(画素s)が存在し、画素sを対象とした色変換処理中のキャッシュヒット判定の結果がキャッシュヒットであったとする。この場合には、ステップS540(図15)の判定において、1つ前に選択された対象画素を対象とした色変換処理中のキャッシュヒット判定の結果がキャッシュヒットであったと判定される。そのため、この場合には、キャッシュメモリB116Bに相当格子点SPについての色変換データCDのみがキャッシュされる(図15のステップS550)。
以上説明したように、第3実施例においても、RAM120からの相当格子点SPについての色変換データCDの読み出しが行われる(図7のステップS160)毎に、すなわち、キャッシュミスが発生する(図7のステップS150:No)毎に、キャッシュ更新処理(ステップS180)が実行される。第3実施例のキャッシュ更新処理(図15)では、直前のキャッシュ更新処理において近接色変換データ群の格納が行われた場合(図15のステップS530:Yes)には、キャッシュメモリB116Bにおける相当格子点SPについての色変換データCDの格納のみが行われ(ステップS550)、近接色変換データ群の入れ替えは行われない。そのため、キャッシュ更新処理において新たに近接色変換データ群がキャッシュされた場合には、次回のキャッシュ更新処理の際に、新たにキャッシュされた近接色変換データ群が廃棄されることがない。
また、第3実施例のキャッシュ更新処理では、1つ前に選択された対象画素を対象とした色変換処理中のキャッシュヒット判定(図7のステップS150)の結果がキャッシュヒットであった場合(図15のステップS540:Yes)、すなわち、1つ前に選択された対象画素を対象とした色変換処理においてキャッシュメモリ116にキャッシュされた近接色変換データ群に含まれる色変換データCDが用いられた場合には、やはり、キャッシュメモリB116Bにおける相当格子点SPについての色変換データCDの格納のみが行われ(ステップS550)、近接色変換データ群の入れ替えは行われない。そのため、第3実施例のキャッシュ更新処理では、少なくとも2つの連続した対象画素についてのキャッシュ判定においてキャッシュミスと判定されない限り、近接色変換データ群は廃棄されず維持される。
また、第3実施例のキャッシュ更新処理では、1つ前に選択された対象画素を対象とした色変換処理中のキャッシュヒット判定の結果がキャッシュヒットではなかった場合(図15のステップS540:No)には、格納時がより古いデータをキャッシュしているキャッシュメモリ116において近接色変換データ群の入れ替えが行われる。
このようなキャッシュ更新処理を実行すると、第1実施例と同様に、例えば画像中のノイズのように、互いに近似した階調値を有する複数の画素で構成される領域(正常画像領域)中に階調値の大きく異なるごく少数の画素が混在しているような場合にも、キャッシュヒットの確率を大きく高めることができる。すなわち、ノイズの画素が対象画素として選択された際にはキャッシュミスとなる可能性が高いものの、次に正常画像領域中の画素が対象画素として選択された際には、前回の正常画像領域中の画素に対応した相当格子点SPについての近接色変換データ群がキャッシュメモリ116に保持されているため、キャッシュヒットとなる可能性が高い。そのため、本実施例のプリンタ100による色変換処理では、処理の高速化をさらに十分に実現することができる。
また、第1実施例と同様に、このようなキャッシュ更新処理を実行すると、例えば画像中のエッジのように、互いに近似した階調値を有する複数の画素で構成される第1の領域と、第1の領域の階調値とは大きく異なる値であって互いに近似した階調値を有する複数の画素で構成される第2の領域との境界部分においても、キャッシュヒットの確率を大きく高めることができる。すなわち、第1の領域から第2の領域に切り替わる部分の画素が対象画素として選択された際にはキャッシュミスとなる可能性が高いものの、次の画素が対象画素として選択された際には、切り替わり部分の画素に対応した相当格子点SPについての近接色変換データ群がキャッシュメモリ116に保持されているため、キャッシュヒットとなる可能性が高い。そのため、本実施例のプリンタ100による色変換処理では、処理の高速化をさらに十分に実現することができる。
D.第4実施例:
図17は、第4実施例における色変換処理の流れを示すフローチャートである。図17に示す第4実施例の色変換処理のステップS110からS170までの処理は、図7に示す第1実施例の色変換処理のステップS110からS170までの処理と同じ内容である。すなわち、対象画素の選択およびプレ変換が行われ、キャッシュ判定(ステップS150)が行われる。キャッシュミスの場合には、RAM120から色変換データCDが読み出され、インク色階調値が決定される。
その後のステップS180(図17)では、キャッシュ部112のキャッシュコントローラ114(図1)が、キャッシュ更新処理を行う。このキャッシュ更新処理は、図8に示した第1実施例と同様に行われるが、第4実施例では、近接色変換データ群を構成する色変換データCDが第1実施例とは異なっている。図18は、第4実施例における近接色変換データ群の概念を示す説明図である。第4実施例では、図18(a)に示す六面体(対象六面体)に含まれる合計64個の格子点Pについての色変換データCDによって近接色変換データ群が構成される。この対象六面体は、内部に対象画素の相当格子点SPを含む8個の格子点Pを含むと共に、表面に56個の格子点Pを含む六面体である。なお、図18では、格子点Pの配置をわかりやすくするために、格子点Pを色を分けて表現したり、特定の1つの座標軸に垂直な平面にハッチングを付したりしている。
また、図17に示す第4実施例の色変換処理のステップS190からS200までの処理は、図7に示す第1実施例の色変換処理のステップS190からS200までの処理と同じ内容である。すなわち、キャッシュ判定(ステップS150)においてキャッシュヒットの場合には、キャッシュメモリ116から色変換データCDが読み出され、インク色階調値が決定される。
その後のステップS220(図17)では、キャッシュ部112のキャッシュコントローラ114(図1)が、相当格子点SPは最外格子点であるか否かを判定する。ここで、最外格子点とは、キャッシュ部112のキャッシュメモリ116にキャッシュされている近接色変換データ群に含まれる色変換データCDに対応する格子点Pであって、第1の表色系(RGB表色系)を表す色空間の各軸方向に沿って当該格子点Pと隣接する少なくとも1つの格子点Pについての色変換データCDが当該近接色変換データ群に含まれない格子点Pを意味している。すなわち、最外格子点は、対象六面体の表面に位置する格子点Pである。ステップS220において相当格子点SPが最外格子点ではない(すなわち、対象六面体の内部に位置する格子点Pである)と判定された場合には、ステップS210に進む。一方、ステップS220において相当格子点SPが最外格子点である(すなわち、対象六面体の表面に位置する格子点Pである)と判定された場合には、キャッシュコントローラ114によるキャッシュ更新処理(ステップS230)が行われる。
ステップS230におけるキャッシュ更新処理の概念を図18(b)に示す。キャッシュメモリ116におけるキャッシュ状態が図18(a)に示す状態のときに図18(b)に示す位置に相当格子点SPが設定された場合、相当格子点SPは最外格子点に該当することとなる。このとき、キャッシュコントローラ114は、相当格子点SPが最外格子点に該当しなくなるように、キャッシュ状態の更新を行う。具体的には、図18(b)においてハッチングを付した16個の格子点Pについての色変換データCDが新たにキャッシュされる。代わりに破線で示した16個の格子点Pについての色変換データCDが削除される。すなわち、キャッシュコントローラ114は、相当格子点SPが対象六面体の表面に位置しなくなるように、キャッシュ状態の更新を行う。
なお、第4実施例の色変換処理においても、第1実施例において図9を用いて説明したように、相当格子点SPの各軸に沿った階調値の少なくとも1つが0または255である場合には、64個よりも少ない格子点Pについての色変換データCDのみをキャッシュするとしてもよい。あるいは、常に合計64個の格子点Pについての色変換データCDをキャッシュするとしてもよい。
以上説明したように、第4実施例の色変換処理では、キャッシュヒットの場合でも、相当格子点SPが最外格子点に該当する場合には、相当格子点SPが最外格子点に該当しなくなるようにキャッシュ状態の更新を行う。上述したように、写真等の画像では、隣接画素の階調値は近似した値であることが多いため、ある対象画素に設定される相当格子点SPは1つ前の対象画素に設定された相当格子点SPに近接することとなる場合が多い。従って、相当格子点SPが最外格子点に該当しないようにキャッシュ状態を更新すると、そのようなキャッシュ状態の更新を行わない場合と比較して、次回のポスト変換におけるキャッシュヒットの確率をより高めることができる。従って、第4実施例の色変換処理では、処理の高速化をより十分に実現することができる。
E.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
E1.変形例1:
上記各実施例では、画像処理装置がプリンタ100として構成されているが、本発明は、プリンタ100以外の色変換処理を行う画像処理装置にも適用可能である。例えば、画像処理装置をコンピュータとして構成することも可能である。
また、上記各実施例における色変換処理は、RGB表色系で表現された画像データからCMYK表色系で表現された画像データへの変換処理であるが、本発明は、他の色変換処理にも適用可能である。例えば、本発明は、スキャナで使用されるRGB表色系で表現された画像データからモニタで使用されるRGB表色系で表現された画像データへの色変換処理にも適用できる。
E2.変形例2:
上記各実施例におけるプリンタ100の構成は、あくまで一例であり、プリンタ100の構成を他の構成とすることも可能である。例えば、プリンタ100のキャッシュ部112は、近接色変換データ群を格納可能な3つ以上のキャッシュメモリ116を含んでいるとしてもよい。また、キャッシュ部112は、物理的に1つのキャッシュメモリ116に複数のキャッシュ領域を設定し、設定された複数のキャッシュ領域のそれぞれを独立したキャッシュ領域として使用することにより、上記各実施例と同様のキャッシュ更新処理を実行するとしてもよい。
また、プリンタ100は、ネットワークを介して画像データIMGを取得可能な構成であるとしてもよい。また、プリンタ100のプリンタエンジン160において用いられるインク色はCMYKの4色に限られず、任意の種類のインク色を採用可能である。また、上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
E3.変形例3:
上記各実施例におけるキャッシュ更新処理の内容はあくまで一例であり、キャッシュ更新処理の内容を他の内容に変形することも可能である。例えば、近接色変換データ群を構成する色変換データCDの数は、27個や64個に限られず、任意の数に設定することができる。また、近接色変換データ群を構成する色変換データCDは、所定の大きさの六面体に含まれる格子点Pについての色変換データCDである必要はなく、例えば、相当格子点SPを中心とする球の表面および内部に含まれる格子点Pについての色変換データCDであるとしてもよい。
E4.変形例4:
上記各実施例では、プレ変換テーブルの参照で得られた仮の格子点入力階調値LIから最終的な格子点入力階調値FLIを決定する際に、付加小数AFにランダムノイズRNを加算していたが、付加小数AFの代わりに他の付加的な値を用いて最終的な格子点入力階調値を決定するようにしてもよい。例えば、付加的な値として、所定のビット数の整数値を入力階調値に応じて付与しておき、これにランダムノイズを加算した加算結果と所定の閾値とを比較することによって最終的な格子点入力階調値FLIを決定するようにしてもよい。本明細書では、最終的な格子点入力階調値FLIを決定するための付加的な値を「付加判定値」と呼ぶ。
E5.変形例5:
上記各実施例で使用したプレ変換方法の代わりに、他のプレ変換方法を使用することも可能である。例えば、上記各実施例ではランダムにノイズを発生させていたが、ディザパターンのような所定のノイズパターンに従ってノイズを発生させるようにしてもよい。また、誤差拡散法を利用してプレ変換を行うとしてもよい。プレ変換としては、入力画像データの階調値を色変換LUT320の複数の格子点Pの内の1つである相当格子点SPの階調値に確率的に変換する変換方法を採用することが可能である。
E6.変形例6:
上記各実施例における色変換データCDの構成は、あくまで一例であり、色変換データCDを他の構成とすることも可能である。例えば、色変換LUT320の各格子点Pに識別番号を付し、色変換データCDを識別番号と出力階調値との対応を示すデータとして構成してもよい。この場合にも、色変換データCDは、識別番号を介して、第1の表色系における入力階調値と第2の表色系における出力階調値とを対応付けるデータとなる。
本発明の第1実施例における画像処理装置としてのプリンタ100の構成を概略的に示す説明図である。 色変換LUT320の一例を示す説明図である。 色変換部220の詳細構成を示す説明図である。 プレ変換部260によるプレ変換の概要を示す説明図である。 プレ変換テーブル310の一例を示す説明図である。 ポスト変換部270によるポスト変換の概要を示す説明図である。 プリンタ100による画像の印刷処理の内の色変換処理の流れを示すフローチャートである。 第1実施例におけるキャッシュ更新処理の流れを示すフローチャートである。 第1実施例における近接色変換データ群の概念を示す説明図である。 第1実施例におけるキャッシュ更新処理の概念を示す説明図である。 相当格子点SPの各軸に沿った階調値の少なくとも1つが0または255である場合のキャッシュ処理の概念を示す説明図である。 第2実施例におけるキャッシュ更新処理の流れを示すフローチャートである。 第2実施例におけるキャッシュ更新処理の概念を示す説明図である。 第3実施例におけるプリンタ100aの構成を概略的に示す説明図である。 第3実施例におけるキャッシュ更新処理の流れを示すフローチャートである。 第3実施例におけるキャッシュ更新処理の概念を示す説明図である。 第4実施例における色変換処理の流れを示すフローチャートである。 第4実施例における近接色変換データ群の概念を示す説明図である。
符号の説明
100…プリンタ
110…CPU
112…キャッシュ部
114…キャッシュコントローラ
116…キャッシュメモリ
120…RAM
130…ROM
140…操作部
150…表示部
160…プリンタエンジン
170…カードインターフェース
172…カードスロット
174…メモリカード
200…印刷処理プログラム
210…解像度変換部
220…色変換部
230…ハーフトーン処理部
240…データ配列部
260…プレ変換部
262…テーブル参照部
264…ランダムノイズ加算部
266…相当格子点決定部
270…ポスト変換部
310…プレ変換テーブル
320…色変換LUT

Claims (10)

  1. 第1の表色系で表現された第1の画像データを第2の表色系で表現された第2の画像データに変換する画像処理装置であって、
    前記第1の表色系を表す色空間内に格子状に配置された複数の格子点のそれぞれについての前記第1の表色系における階調値と前記第2の表色系における階調値との対応を示す色変換データを含む色変換テーブルを格納するテーブル格納部と、
    前記第1の画像データを構成する画素を順に1つずつ対象画素として選択すると共に、対象画素の階調値を前記第2の表色系における階調値に変換する色変換部と、
    前記テーブル格納部からの色変換データの読み出しよりも高速に読み出し可能に色変換データをキャッシュする複数のキャッシュ領域を有するキャッシュ部と、を備え、
    前記色変換部は、
    対象画素の階調値を、前記色空間内の複数の格子点の内の1つである相当格子点の階調値に確率的に変換する第1の変換部と、
    対象画素に対応する相当格子点についての色変換データを用いて、相当格子点の階調値を前記第2の表色系における階調値に変換する第2の変換部と、を含み、
    前記キャッシュ部は、前記第2の変換部が対象画素の相当格子点についての色変換データを前記テーブル格納部から読み出す毎に前記複数のキャッシュ領域における色変換データのキャッシュ状態を更新すると共に、キャッシュ状態の更新の際に、対象画素に対応する相当格子点についての色変換データと前記色空間において対象画素に対応する相当格子点に近接する所定の範囲内に位置する格子点についての色変換データとを含む近接色変換データ群を前記複数のキャッシュ領域の1つに新たにキャッシュした場合には、次回のキャッシュ状態の更新の際に、当該新たにキャッシュされた近接色変換データ群を廃棄せずに維持する、画像処理装置。
  2. 請求項1記載の画像処理装置であって、
    前記キャッシュ部は、毎回のキャッシュ状態の更新において、前記複数のキャッシュ領域の内から順に選択された1つのキャッシュ領域に新たな近接色変換データ群をキャッシュする、画像処理装置。
  3. 請求項1記載の画像処理装置であって、
    前記キャッシュ部は、キャッシュ状態の更新の際に、1つ前に選択された対象画素についての前記第2の変換部による変換処理において前記キャッシュ領域にキャッシュされた近接色変換データ群に含まれる色変換データが用いられた場合には、前記キャッシュ領域にキャッシュされた近接色変換データ群を廃棄せずに維持する、画像処理装置。
  4. 請求項1ないし請求項3のいずれかに記載の画像処理装置であって、
    前記第1の表色系を表す色空間は3次元空間であり、
    相当格子点は、前記色空間内の8つの格子点を頂点とする六面体であって対象画素の階調値を表す点を含む最小の六面体の頂点のいずれか1つである、画像処理装置。
  5. 請求項4記載の画像処理装置であって、
    前記近接色変換データ群は、相当格子点を含む所定の大きさの六面体に含まれる格子点についての色変換データである、画像処理装置。
  6. 請求項5記載の画像処理装置であって、
    前記所定の大きさの六面体は、内部に対象画素の相当格子点を含むと共に、表面に26個の格子点を含む六面体である、画像処理装置。
  7. 請求項5記載の画像処理装置であって、
    前記キャッシュ部は、前記第1の変換部により設定された対象画素の相当格子点が、前記複数のキャッシュ領域の内の第1のキャッシュ領域にキャッシュされている近接色変換データ群に含まれる色変換データに対応する格子点であって、前記色空間の各軸方向に沿って当該格子点と隣接する少なくとも1つの格子点についての色変換データが前記第1のキャッシュ領域にキャッシュされている近接色変換データ群に含まれないような格子点に該当することとなる場合には、前記隣接する少なくとも1つの格子点についての色変換データを含む近接色変換データ群を前記第1のキャッシュ領域にキャッシュする、画像処理装置。
  8. 請求項7記載の画像処理装置であって、
    前記所定の大きさの六面体は、内部に対象画素の相当格子点を含む8個の格子点を含むと共に、表面に56個の格子点を含む六面体である、画像処理装置。
  9. 請求項1ないし請求項8のいずれかに記載の画像処理装置であって、
    前記第2の表色系は、画像の印刷に用いるインク色で表現された表色系である、画像処理装置。
  10. 第1の表色系で表現された第1の画像データを第2の表色系で表現された第2の画像データに変換する画像処理方法であって、
    (a)前記第1の表色系を表す色空間内に格子状に配置された複数の格子点のそれぞれについての前記第1の表色系における階調値と前記第2の表色系における階調値との対応を示す色変換データを含む色変換テーブルを所定の記憶領域に格納する工程と、
    (b)前記第1の画像データを構成する画素を順に1つずつ対象画素として選択すると共に、対象画素の階調値を前記第2の表色系における階調値に変換する工程と、
    (c)複数のキャッシュ領域に、前記所定の記憶領域からの色変換データの読み出しよりも高速に読み出し可能に色変換データをキャッシュする工程と、を備え、
    前記工程(b)は、
    (i)対象画素の階調値を、前記色空間内の複数の格子点の内の1つである相当格子点の階調値に確率的に変換する第1の変換工程と、
    (ii)対象画素に対応する相当格子点についての色変換データを用いて、相当格子点の階調値を前記第2の表色系における階調値に変換する第2の変換工程と、を含み、
    前記工程(c)は、前記第2の変換工程において、対象画素の相当格子点についての色変換データが前記所定の記憶領域から読み出される毎に前記複数のキャッシュ領域における色変換データのキャッシュ状態を更新する工程であると共に、キャッシュ状態の更新の際に、対象画素に対応する相当格子点についての色変換データと前記色空間において対象画素に対応する相当格子点に近接する所定の範囲内に位置する格子点についての色変換データとを含む近接色変換データ群が前記複数のキャッシュ領域の1つに新たにキャッシュされた場合には、次回のキャッシュ状態の更新の際に、当該新たにキャッシュされた近接色変換データ群を廃棄せずに維持する工程である、画像処理方法。
JP2006104109A 2006-04-05 2006-04-05 色変換テーブルを用いた色変換 Pending JP2007281764A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006104109A JP2007281764A (ja) 2006-04-05 2006-04-05 色変換テーブルを用いた色変換

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006104109A JP2007281764A (ja) 2006-04-05 2006-04-05 色変換テーブルを用いた色変換

Publications (1)

Publication Number Publication Date
JP2007281764A true JP2007281764A (ja) 2007-10-25

Family

ID=38682774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006104109A Pending JP2007281764A (ja) 2006-04-05 2006-04-05 色変換テーブルを用いた色変換

Country Status (1)

Country Link
JP (1) JP2007281764A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286697B2 (en) 2013-07-09 2016-03-15 Fuji Xerox Co., Ltd Reconfigurable image processing apparatus with variable compression rate and recording medium for reconfigurable image processing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286697B2 (en) 2013-07-09 2016-03-15 Fuji Xerox Co., Ltd Reconfigurable image processing apparatus with variable compression rate and recording medium for reconfigurable image processing

Similar Documents

Publication Publication Date Title
JP2011139164A (ja) 画像処理装置及びその処理方法
JP5440577B2 (ja) 画像処理装置および画像処理方法
JP2007281764A (ja) 色変換テーブルを用いた色変換
JP4479663B2 (ja) 固定セルによるハーフトーン処理を行う画像処理装置,画像処理方法,及び画像処理プログラム
JP4595796B2 (ja) 色変換テーブルを用いた色変換
JP2004120133A (ja) 画像処理方法及び画像処理装置
JP2019146037A (ja) 画像処理装置とその制御方法、及びプログラム
JP6318954B2 (ja) 画像処理装置、および、コンピュータプログラム
JP2021103902A (ja) 画像処理装置および画像処理装置の制御方法、ならびにプログラム
JP2007288319A (ja) 色変換テーブルを用いた色変換
JP6642347B2 (ja) 画像処理装置
JP4753253B2 (ja) 画像処理装置
JP2018148316A (ja) 印刷実行部に印刷を実行させるための制御装置
JP2003051940A (ja) 画像処理方法及びその装置
JP4262148B2 (ja) 画像処理装置及び画像処理方法
JP2009135637A (ja) 画像処理装置、画像処理方法及びプログラム
JP2005117642A (ja) ハーフトーン処理方法、画像処理装置、画像処理方法、及びプログラム
JP2008228106A (ja) 画像処理装置、画像処理方法、プログラム、記録媒体および画像形成装置
JP2006135825A (ja) 画像補間処理装置
JP4161975B2 (ja) 縮小変倍時の画素補間処理装置及び画素補間処理プログラム
JP2006197411A (ja) ハーフトーンスクリーニング方法及びプリンタ
JP2008205611A (ja) 画像処理回路およびそれを搭載したプリンタコントローラ
JP2007194955A (ja) 画像処理装置
JP2003198841A (ja) 画像形成方法および画像形成装置
JP2012129685A (ja) 画像処理装置及びプログラム