(57)【要約】【課題】変換テーブルを外部メモリから読み出して画像データ変換を行うと、大きなレイテンシが生じて変換処理の高速化を十分に図ることが困難であった。【解決手段】複数の画素の階調値を順番に取得する画像データ取得部と、各画素のテーブル入力値を算出するテーブル入力値算出部と、テーブル入力値を用いて変換テーブルを参照し、テーブル出力値を読み出すテーブル出力値読出部と、変換後の階調値を取得して所定記憶領域に書き込む画像データ書込部と、を備えた画像データ変換装置において、任意の画素について、階調値の取得とテーブル入力値の算出とを含む上流側処理を実行した後であって、かつ、その画素について、テーブル出力値の読み出しと変換後の階調値の所定記憶領域への書き込みとを含む下流側処理を実行する前において、その画素に先行する画素の下流側処理と、その画素に後続する画素の上流側処理と、のうちの少なくとも一方を実行する。【選択図】図１
2007306445.tif 000002
【特許請求の範囲】
【請求項１】
画像データ変換装置であって、
複数の画素の階調値を順番に取得する画像データ取得部と、
各画素の階調値に基づき、その画素について変換テーブルを参照する際に用いるテーブル入力値を算出するテーブル入力値算出部と、
各画素について、前記テーブル入力値を用いて前記変換テーブルを参照し、テーブル出力値を読み出すテーブル出力値読出部と、
前記テーブル出力値に基づき、各画素の変換後の階調値を取得して所定記憶領域に書き込む画像データ書込部と、
を備え、
前記複数の画素のうちの任意の画素について、前記画像データ取得部による前記階調値の取得と、前記テーブル入力値算出部による前記テーブル入力値の算出と、を含む上流側処理が実行された後であって、かつ、その画素について、前記テーブル出力値読出部による前記テーブル出力値の読み出しと、前記画像データ書込部による変換後の階調値の前記所定記憶領域への書き込みと、を含む下流側処理が実行される前において、その画素に先行する画素についての前記下流側処理と、その画素に後続する画素についての前記上流側処理と、のうちの少なくとも一方が実行されることを特徴とする画像データ変換装置。
【請求項２】
請求項１に記載の画像データ変換装置であって、
前記画像データ取得部と、前記テーブル入力値算出部と、前記画像データ書込み部と、は、同一ＣＰＵを用いて構成されており、
前記テーブル出力値読出し部は、前記ＣＰＵとは異なる他のハードウェアを用いて構成されている、
画像データ変換装置。
【請求項３】
請求項１または請求項２に記載の画像データ変換装置であって、
各画素について、第１の表色系で表現された階調値を、第２の表色系で表現された階調値に変換する、
画像データ変換装置。
【請求項４】
画像データ変換方法であって、
（ａ）複数の画素の階調値を順番に取得する工程と、
（ｂ）各画素の階調値に基づき、その画素について変換テーブルを参照する際に用いるテーブル入力値を算出する工程と、
（ｃ）各画素について、前記テーブル入力値を用いて前記変換テーブルを参照し、テーブル出力値を読み出す工程と、
（ｄ）前記テーブル出力値に基づき、各画素の変換後の階調値を取得して所定記憶領域に書き込む工程と、
を備え、
前記複数の画素のうちの任意の画素について、前記階調値取得工程と、前記テーブル入力値算出工程と、を含む上流側工程が実行された後であって、かつ、その画素について、前記テーブル出力値読み出し工程と、前記変換後の階調値の書き込み工程と、を含む下流側工程が実行される前において、その画素に先行する画素についての前記下流側工程と、その画素に後続する画素についての前記上流側工程と、のうちの少なくとも一方が実行される、画像データ変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換テーブルを用いた画像データ変換処理に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやプリンタ等の画像処理を行う装置の発達に伴い、これら画像処理装置において種々の画像処理が行われている。例えば、プリンタにおける画像処理の１つとして、第１の表色系（例えばＲＧＢ表色系）で表現された画像データを第２の表色系（例えばＣＭＹＫ表色系）で表現された画像データへと変換する色変換処理がある。色変換処理は、一般に、色変換三次元ルックアップテーブル（以下「色変換ＬＵＴ」と呼ぶ）を用いて実行される。色変換ＬＵＴは、第１の表色系を表す色空間内に格子状に配置された複数の格子点のそれぞれについての第１の表色系における入力階調値と第２の表色系における出力階調値との対応を示す色変換データを含むテーブルである。
【０００３】
この色変換ＬＵＴが外部メモリに格納されている場合には、色変換データを得るのに外部メモリアクセスに伴うので、レイテンシの増加が発生し得る。そこで、色変換処理を実行するプロセッサ内にキャッシュメモリを設け、色変換ＬＵＴから読み出した色変換データをキャッシュメモリに一時的に記憶させておき、このキャッシュメモリから色変換データを読み出すことで、レイテンシの増加を抑制する色変換処理方法が提案されている（下記特許文献１参照）。
【０００４】
【特許文献１】特開２００３−２８９４４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般に、キャッシュメモリの容量は比較的小さい（１６ＫＢや１２８ＫＢ程度）ことから、色変換ＬＵＴの一部のみがキャッシュメモリに記憶される。それ故、前述のキャッシュを用いた色変換処理方法を採用しても、キャッシュメモリに記憶されていない色変換データを用いて色変換処理を行う際には、外部メモリアクセスが発生することとなる。その結果、レイテンシが増加して、色変換処理の高速化を十分に図ることが困難であるという問題があった。
【０００６】
また、上述した問題は、色変換処理に限らず、ガンマ補正や、シャープネスや明るさ等を調整する処理においても、外部メモリに記憶されている変換テーブルを用いて画像データの変換を行う場合には共通する問題であった。
【０００７】
本発明は、上述した従来の課題を解決するためになされたものであり、画像データ変換処理の高速化を実現することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、画像データ変換装置であって、複数の画素の階調値を順番に取得する画像データ取得部と、各画素の階調値に基づき、その画素について変換テーブルを参照する際に用いるテーブル入力値を算出するテーブル入力値算出部と、各画素について、前記テーブル入力値を用いて前記変換テーブルを参照し、テーブル出力値を読み出すテーブル出力値読出部と、前記テーブル出力値に基づき、各画素の変換後の階調値を取得して所定記憶領域に書き込む画像データ書込部と、を備え、前記複数の画素のうちの任意の画素について、前記画像データ取得部による前記階調値の取得と、前記テーブル入力値算出部による前記テーブル入力値の算出と、を含む上流側処理が実行された後であって、かつ、その画素について、前記テーブル出力値読出部による前記テーブル出力値の読み出しと、前記画像データ書込部による変換後の階調値の前記所定記憶領域への書き込みと、を含む下流側処理が実行される前において、その画素に先行する画素についての前記下流側処理と、その画素に後続する画素についての前記上流側処理と、のうちの少なくとも一方が実行されることを要旨とする。
【０００９】
このように、本発明の画像データ変換装置では、任意の画素について、上流側処理の実行後、かつ、下流側処理の実行前において、先行する画素についての下流側処理と、後続する画素についての上流側処理と、のうちの少なくとも一方が実行されるので、変換テーブルが外部メモリに格納されており、変換テーブルを参照してテーブル出力値を読み出すのに比較的長時間を要するような場合でも、各画素についての下流側処理が実行されるまでにテーブル出力値を読み出すことができ、各画素の変換後の階調値を次々と所定記憶領域に書き込むこと可能となって、画像データ変換処理の高速化を実現することができる。
【００１０】
上記画像データ変換装置において、前記画像データ取得部と、前記テーブル入力値算出部と、前記画像データ書込み部と、は、同一ＣＰＵを用いて構成されており、前記テーブル出力値読出し部は、前記ＣＰＵとは異なる他のハードウェアを用いて構成されていてもよい。
【００１１】
このようにすることで、変換テーブルを参照してテーブル出力値を読み出す処理を、他の処理（階調値の取得や、テーブル入力値の算出や、変換後の階調値の書込み）を行うＣＰＵから切り離すことができ、ＣＰＵにおけるこれら他の処理の高速化を図ることができる。
【００１２】
上記画像データ変換装置は、各画素について、第１の表色系で表現された階調値を、第２の表色系で表現された階調値に変換するようにしてもよい。
【００１３】
このようにすることで、第１の表色系で表現された階調値を第２の表色系で表現された階調値に変換する色変換処理の高速化を実現することができる。
【００１４】
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像データ変換方法や、画像データ変換方法または画像データ変換装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１の実施例：
Ｂ．第２の実施例：
Ｃ．変形例：
【００１６】
Ａ．第１の実施例：
Ａ１．プリンタの概要構成：
図１は、本発明の一実施例としての画像データ変換装置を適用したプリンタの概要構成を示す説明図である。このプリンタ１００は、制御回路２０と、外部メモリ４０と、プリンタエンジン５０と、メモリカードスロット６０と、カードインタフェース部６２と、操作部６４と、表示部６６と、を備えている。
【００１７】
プリンタエンジン５０は、インクカートリッジを搭載したキャリッジ（図示省略）や、このキャリッジを駆動するモータなどを備え、印刷データＰＤに基づき実際に印刷を実行する機構である。カードインタフェース部６２は、メモリカードスロット６０に挿入されたメモリカードＭＣとの間でデータのやり取りを行う。操作部６４は、操作ボタン等を備える。表示部６６は、液晶モニタを備え、各種メニュー画面やサムネイル画像等を表示する。
【００１８】
制御回路２０は、解像度変換部２４ａと、色変換部２４ｂと、ハーフトーン処理部２４ｃと、データ配列部２４ｄと、メモリコントローラ２４ｅと、を備えており、それぞれ内部バスで接続されている。解像度変換部２４ａは、カードインタフェース部６２を介してメモリカードＭＣから読み出された画像データＩＭＧの解像度を、色変換部２４ｂ以降の処理に適した解像度に変換する。なお、本実施例では、メモリカードＭＣに格納された画像データＩＭＧは、各画素の階調値がＲＧＢ表色系で表現されたＲＧＢデータであるものとする。色変換部２４ｂは、解像度変換後の画像データＩＭＧを、プリンタエンジン５０における印刷に用いられる複数のインク色で階調表現されたインク階調値データＩＮＫに変換する。なお、本実施例では、プリンタエンジン５０における印刷に用いられる複数のインク色は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の４色であるものとする。ハーフトーン処理部２４ｃは、インク階調値データＩＮＫに基づいてハーフトーン処理を実行することによって、印刷画素毎のインクドットの形成状態を示すドットデータを生成する。データ配列部２４ｄは、生成されたドットデータを配列して、印刷データＰＤとしてプリンタエンジン５０に出力する。
【００１９】
メモリコントローラ２４ｅは、解像度変換部２４ａや色変換部２４ｂなどの上述した各機能部からの要求に応じて、外部メモリ４０に対するデータ読出しやデータ書込みを行う。外部メモリ４０には、色変換ＬＵＴ４２が格納されており、色変換部２４ｂは、かかる色変換ＬＵＴ４２を用いて、画像データＩＭＧをインク階調値データＩＮＫに変換する。
【００２０】
図２は、色変換ＬＵＴ４２の一例を示す説明図である。色変換ＬＵＴ４２は、第１の表色系を表す３次元の色空間内に格子状に配置された複数の格子点Ｐのそれぞれについての第１の表色系における階調値と第２の表色系における階調値との対応を示す色変換データＣＤを含むテーブルである。本実施例では、第１の表色系は、画像データＩＭＧの表現に用いられるＲＧＢ表色系であり、第２の表色系は、インク階調値データＩＮＫの表現に用いられるＣＭＹＫ表色系である。
【００２１】
図２（ａ）は、色変換ＬＵＴ４２における格子点Ｐの配置の一例を示す。格子点Ｐは、第１の表色系を表す色空間の各軸（Ｒ軸、Ｇ軸、Ｂ軸）のそれぞれに沿って設定された参照階調値の組み合わせにより特定される。参照階調値は、最小階調値（図２（ａ）の例では０）から最大階調値（図２（ａ）の例では２５５）までの間に、任意の数（例えば３１個）だけ離散的に設定された階調値である。図２（ａ）には、色変換ＬＵＴ４２の各軸に沿った参照階調値の配置のイメージを破線で表現している。なお、図２（ａ）には、Ｒ＝Ｇ＝Ｂ＝０である黒色点ＢｋとＲ＝Ｇ＝Ｂ＝２５５である白色点Ｗとを示している。
【００２２】
図２（ｂ）は、色変換ＬＵＴ４２を構成する色変換データＣＤの内容の一例を示す。色変換ＬＵＴ４２は、格子点Ｐのそれぞれについて、ＲＧＢ表色系における階調値（参照階調値）とＣＭＹＫ表色系における階調値（インク階調値）との対応を示すデータ（色変換データＣＤ）を有する。色変換ＬＵＴ４２では、Ｂ軸に沿った参照階調値は、階調値８毎に設定されている。同様にしてＲ軸およびＧ軸に沿った参照階調値も階調値８毎に設定されている。従って、色変換部２４ｂは、画像データＩＭＧにおける階調値（ＲＧＢ）を、色変換ＬＵＴ４２のいずれかの格子点Ｐの参照階調値に変換した上で、色変換ＬＵＴ４２を参照してインク階調値を得るようにする。なお、外部メモリ４０において各色変換データＣＤの格納アドレスは固定されており、色変換部２４ｂは、変換して得られた参照階調値に基づいて色変換データＣＤの格納アドレスを求めることができる。
【００２３】
図３は、図１に示す色変換部２４ｂの詳細構成を主として示す説明図である。色変換部２４ｂは、ＣＰＵ３０と、アドレスバッファ３２ａと、データ受信バッファ３２ｂと、ＲＡＭ３３と、ＲＯＭ３４と、ロード制御部３６と、を備える。ロード制御部３６は、メモリコントローラ２４ｅに対して、色変換データＣＤの格納アドレスを指定してデータの読み出し要求を送信し、また、メモリコントローラ２４ｅからの色変換データＣＤを受信して、データ受信バッファ３２ｂに格納する。なお、アドレスバッファ３２ａ及びデータ受信バッファ３２ｂはいずれもＦＩＦＯ（First-In Fist-Out）方式のバッファである。
【００２４】
ＲＯＭ３４には色変換用プログラムが格納されており、ＣＰＵ３０は、かかる色変換用プログラムを実行することにより、画像データ取得部３０ａとして機能すると共に、アドレス算出部３０ｂ，データ読出部３０ｃ，データ書込部３０ｄ及び色変換制御部３１として、それぞれ機能することとなる。
【００２５】
なお、色変換部２４ｂが請求項における画像データ変換装置に相当し、また、アドレス算出部３０ｂが請求項におけるテーブル入力値算出部に、データ読出部３０ｃが請求項におけるテーブル出力値読出部に、それぞれ相当する。
【００２６】
Ａ２．色変換処理：
図４は、色変換部２４ｂにおいて実行される色変換処理の手順を示すフローチャートである。図４において、左側はＣＰＵ３０における手順を示し、右側はロード制御部３６における手順を示す。ユーザが操作部６４を操作して、表示部６６に表示された初期メニューから画像データＩＭＧを指定して印刷メニューを選択すると、画像データＩＭＧがメモリカードＭＣから読み出されて解像度変換部２４ａに入力される。解像度変換部２４ａは、画像データＩＭＧについて解像度変換を行い、解像度変換後の画像データＩＭＧを図３に示すＲＡＭ３３に格納する。そして、ＲＡＭ３３に画像データＩＭＧが格納されると、色変換部２４ｂによって色変換処理が実行される。
【００２７】
図４に示す色変換処理が開始されると、ＣＰＵ３０（図３）において色変換制御部３１は、画像データＩＭＧを構成する複数の画素の中から１つの画素を色変換の対象画素として選択する（ステップＳ２０５）。本実施例では、最初に画像の左上隅の画素が選択され、その後、右隣の画素が順に選択され、右端の画素の選択が終わると直下の行について同様に左から右に順に選択され、最後に画像の右下隅の画素が選択されるものとする。なお、以下において、各画素を、対象画素として選択された順番（対象画素番号）ｎを用いて「画素ｎ」とも呼ぶ。
【００２８】
次に、画像データ取得部３０ａは、ＲＡＭ３３から、対象画素として選択された画素の階調値（ＲＧＢ）を読み出す（ステップＳ２１０）。次にアドレス算出部３０ｂは、読み出された階調値に基づいて参照階調値を求め、色変換データＣＤの格納アドレスＡＤを決定してアドレスバッファ３２ａに格納する（ステップＳ２１５）。なお、以上のステップＳ２１０及びステップＳＳ２１５の処理を「上流側処理」と呼ぶ。
【００２９】
次に、色変換制御部３１は、先頭から３画素分の格納アドレスＡＤがアドレスバッファ３２ａに格納済みであるか否かを判定する（ステップＳ２２０）。最初の画素（画素１）についてステップＳ２１５が実行された場合には、ステップＳ２０５に戻って次の対象画素（画素２）を選択し、以下ステップＳ２０５〜ステップＳ２２０の処理を繰り返す。
【００３０】
一方、ロード制御部３６は、アドレスバッファ３２ａに格納された格納アドレスＡＤを格納された順番に読み出し（ステップＳ３０５）、順次、格納アドレスＡＤを指定して色変換データＣＤの読出し要求をメモリコントローラ２４ｅに送信する（ステップＳ３１０）。メモリコントローラ２４ｅは、受信した格納アドレスＡＤから色変換データＣＤを順次読み出してロード制御部３６に送信する。そして、ロード制御部３６は、かかる色変換データＣＤを受信し、受信した順序でデータ受信バッファ３２ｂに格納する（ステップＳ３１５）。
【００３１】
前述のように、ＣＰＵ３０において、ステップＳ２０５〜ステップＳ２２０の処理が繰り返され、先頭から３画素分の格納アドレスＡＤがアドレスバッファ３２ａに格納されると、データ読出部３０ｃは、データ受信バッファ３２ｂから色変換データＣＤを読み出す（ステップＳ２２５）。
【００３２】
ここで、ロード制御部３６が、格納アドレスＡＤをアドレスバッファ３２ａから読み出して（ステップＳ３０５）から、色変換データＣＤをデータ受信バッファ３２ｂに格納する（ステップＳ３１５）までに要する時間は、前述の上流側処理（及びステップＳ２０５の処理）を３画素分について繰り返し実行する時間よりも短いことが実験により求められている。従って、ステップＳ２２５の処理を最初に実行するときには、データ受信バッファ３２ｂには、既に画素１についての色変換データＣＤが格納されていることとなる。
【００３３】
次に、データ書込部３０ｄは、データ受信バッファ３２ｂから読み出された色変換データＣＤに基づいてインク階調値を求め、インク階調値データＩＮＫをＲＡＭ３３に書き込む（ステップＳ２３０）。なお、以上のステップＳ２２５及びステップＳＳ２３５の処理を「下流側処理」と呼ぶ。
【００３４】
次に、色変換制御部３１は、全ての画素を対象画素として選択したか否かを判定する（ステップＳ２３５）。そして、全ての画素を選択していないと判定された場合、上述したステップＳ２０５〜ステップＳ２３５の処理が、対象画素を順次替えながら実行される。
【００３５】
図５は、色変換処理において、各画素について実行される処理内容を模式的に示す説明図である。図５では、画素３〜画素６についてＣＰＵ３０で実行される処理と、画素３についてロード制御部３６で実行される処理と、を時刻の経過と共に示している。図５では、画素ｎについてのステップＳ２１０（図４）の処理を処理［ｎａ］と表し、また、ステップＳ２１５の処理を処理［ｎｂ］と、ステップＳ２２５の処理を処理［ｎｃ］と、ステップＳ２３０の処理を［ｎｄ］と、それぞれ表す。なお、図５では、図４に示す他の手順（ステップＳ２０５，Ｓ２２０，Ｓ２３５）については、説明の便宜上、省略している。
【００３６】
ＣＰＵ３０では、処理の高速化を目的として、処理［ｎａ］〜［ｎｄ］を、それぞれ５つのステージ（命令フェッチ（ＩＦ），命令デコード（ＲＦ），オペランドフェッチ（ＭＥＭ），命令実行（ＥＸ），ライトバック（ＷＢ））に分けて、５段のパイプラインを形成している。なお、各ステージは、通常１クロックで動作するものとする。
【００３７】
ここで、画素３についての処理に着目すると、処理［３ｂ］のＷＢステージでアドレスバッファ３２ａに画素３についての格納アドレスＡＤが格納されると、ロード制御部３６は、次の１クロックでアドレスバッファ３２ａから格納アドレスＡＤを取得する。次に、ロード制御部３６は、４クロックでメモリコントローラ２４ｅを介して外部メモリ４０から画素３についての色変換データＣＤを取得し、次の１クロックでデータ受信バッファ３２ｂに色変換データＣＤを格納する。従って、ロード制御部３６では、画素３について色変換データＣＤを取得するのに６クロックを要することとなる。
【００３８】
一方、画素３に先行する画素１，２については、色変換データＣＤが画素３の色変換データＣＤよりも前に、メモリコントローラ２４ｅからロード制御部３６に順次送信される（図示省略）。従って、これら画素１，２についての色変換データＣＤは、画素３の色変換データＣＤよりも前にデータ受信バッファ３２ｂに格納されることとなる。それ故、ＣＰＵ３０では、画素３についての下流側処理を実行する前に、画素１，２についての下流側処理（処理［１ｃ］，[１ｄ]及び処理［２ｃ］，[２ｄ]）を実行することができる。また、上流側処理については、下流側処理の影響を受けずに独立して実行可能であるので、ＣＰＵ３０では、画素３についての下流側処理を実行する前に、後続する画素の上流側処理を実行することができる。
【００３９】
そこで、図５の例では、画素３の上流側処理［３ａ］，［３ｂ］と下流側処理［３ｃ］，［３ｄ］との間において、画素１の下流処理［１ｃ］，［１ｄ］と、画素４の上流側処理［４ａ］，［４ｂ］と、画素２の下流側処理［２ｃ］，［２ｄ］と、画素５の上流処理［５ａ］，［５ｂ］と、が実行されている。従って、上述したように色変換データＣＤを取得するのに６クロックを要することとなっても、処理［３ｃ］のＭＥＭステージで、データ受信バッファ３２ｂから画素３の色変換データＣＤを読み出すまでには、かかる色変換データＣＤがデータ受信バッファ３２ｂに格納されることとなる。
【００４０】
図４に戻って、ステップＳ２３５において全ての画素を対象画素として選択済みであると判定した場合、色変換制御部３１は、全ての画素のインク階調値データＩＮＫがＲＡＭ３３に格納されているか否かを判定する（ステップＳ２４０）。そして、全ての画素のインク階調値データＩＮＫがＲＡＭ３３に格納されていないと判定した場合には、ステップＳ２２５〜Ｓ２４０を繰り返し実行する。これは、全ての画素を対象画素として選択して上流側処理を実行した後（ステップＳ２３５：ＹＥＳ）であっても、最後の２つの画素については下流側処理を実行していない場合があるからである。そして、最後の２つの画素について下流側処理が実行された場合、ステップＳ２４０において、全ての画素のインク階調値データＩＮＫがＲＡＭ３３に格納されたと判定され、色変換処理は終了する。
【００４１】
以上のように、ＣＰＵ３０では、画素ｎについての上流側処理が終わった後（格納アドレスＡＤをアドレスバッファ３２ａに格納した後）であって、かつ、下流側処理が開始される前（データ受信バッファ３２ｂから色変換データＣＤを読み出す前）までの間に、先行する画素（画素（ｎ−２），（ｎ−１））の下流側処理及び後続する画素（画素（ｎ＋１），（ｎ＋２））の上流側処理を実行するようにしている。従って、画素ｎについて、色変換データＣＤを得るために外部メモリ４０へのアクセスが発生しても、画素ｎの下流側処理が開始される前に、必要とする色変換データＣＤをデータ受信バッファ３２ｂに格納することができる。それ故、色変換データＣＤを外部メモリ４０から読み出すことにより、レイテンシが増加したとしても、各ステージを１クロックで処理するパイプラインを崩すことなく、各画素について次々と色変換を行うことができる。その結果、色変換処理の高速化を実現することができる。
【００４２】
Ａ３．従来技術の比較例：
図６は、従来技術の比較例における色変換部の詳細構成を示す説明図である。この色変換部７０は、ロード制御部３６と、アドレスバッファ３２ａと、データ受信バッファ３２ｂと、を備えていない点、及び、ＣＰＵ７２がキャッシュメモリＣＭを備えている点が、図３に示す色変換部２４ｂと異なるものであり、他の構成については色変換部２４ｂと同じである。この比較例では、前述の第１の実施例と異なり、ＣＰＵ７２がロード制御部２４ｅ（図３）を介さずに、直接メモリコントローラ２４ｅを介して外部メモリ４０から色変換データＣＤを読み出す構成である。
【００４３】
図７は、従来技術の比較例における色変換処理での処理内容を模式的に示す説明図である。図７では、画素３，４について、ＣＰＵ７２で実行される処理を、時刻の経過と共に示している。ＣＰＵ７２は、対象画素として選択された各画素ｎについて、処理［ｎａ］，［ｎｂ'］，［ｎｃ'］，［ｎｄ］を順番に実行する。処理［ｎａ］及び処理［ｎｄ］は、第１の実施例と同じである。処理［ｎｂ'］は、画像データＩＭＧに基づき格納アドレスＡＤを求める処理を示し、処理［ｎｃ'］は、キャッシュメモリＣＭまたは外部メモリ４０のいずれかから色変換データＣＤを読み出して、ＣＰＵ７２の内部レジスタ（図示省略）に書き込む処理を示す。ここで、外部メモリ４０から色変換データＣＤを読み出した場合には、読み出した色変換データＣＤをキャッシュメモリＣＭにも書き込むものとする。
【００４４】
ＣＰＵ７２では、前述の第１の実施例におけるＣＰＵ３０と同様に、処理［ｎａ］〜［ｎｄ］を、それぞれ５つのステージに分けて５段のパイプラインを形成する。なお、各ステージは、通常１クロックで動作することが可能である。しかしながら、処理［ｎｃ'］のＭＥＭステージが１クロックで動作するのは、色変換データＣＤがキャッシュメモリＣＭに記憶されている場合であって、色変換データＣＤをキャッシュメモリＣＭから読み出す場合である。
【００４５】
図６の例では、画素３について、色変換データＣＤがキャッシュメモリＣＭに記憶されておらず（キャッシュミスヒット）、処理［３ｃ'］のＭＥＭステージにおいて外部メモリ４０へのアクセスが発生している。なお、かかる外部メモリ４０へのアクセスに伴うレイテンシは、前述の第１の実施例において、メモリコントローラ２４ｅを介して外部メモリ４０から色変換データＣＤを読み出すのに要する時間と同じ４クロックであるものとする。
【００４６】
この場合、処理［３ｃ'］のＭＥＭステージと並列する処理［３ａ］のＷＢステージ，処理［３ｂ'］のＥＸステージ，処理［３ｄ］のＲＦステージ及び処理［４ａ］のＩＦステージは、１クロックで完了するにも関わらず４クロック要することとなる。その結果、これらステージにおいて３クロックが無駄となり、後続する画素４以降の画素の処理は、キャッシュヒットした場合に比べて、この３クロックだけ遅れて処理されることとなる。このように、従来における比較例では、キャッシュミスヒットによる外部メモリ４０へのアクセスが発生した場合に、各ステージを１クロックで処理するパイプラインは崩れてしまい、色変換の高速化を実現することが困難となっていた。
【００４７】
一方、第１の実施例では、仮に、全ての画素について外部メモリ４０へのアクセスが発生したとしても、各ステージを１クロックで処理するパイプラインは崩れず、色変換処理の高速化を実現することができる。
【００４８】
Ｂ．第２の実施例：
図８は、第２の実施例の色変換処理において、各画素について実行される処理内容を模式的に示す説明図である。図８では、画素１〜画素３についてＣＰＵ３０で実行される処理と、画素１についてロード制御部３６で実行される処理と、を時刻の経過と共に示している。上述した第１の実施例では、或る画素についての上流側処理と下流側処理との間において、その画素に先行する画素の下流側処理と、その画素に後続する画素の上流側処理と、がいずれも実行されていた。これに対し、第２の実施例では、或る画素についての上流側処理と下流側処理との間において、その画素に先行する画素の下流側処理と、その画素に後続する画素の上流側処理と、のうちの少なくとも一方が実行されるように構成されている。なお、図７に示す処理［ｎａ］〜［ｎｄ］は、図５に示す各処理と同じである。また、本実施例におけるプリンタ１００の構成は、第１の実施例と同じである。ただし、ロード制御部３６が色変換データＣＤを取得するのに要する時間（アドレスバッファ３２ａから格納アドレスＡＤを取得してから、データ受信バッファ３２ｂに色変換データＣＤを格納するまでの時間）は、第１の実施例における時間（６クロック）よりも短い時間（２クロック）であるものとする。
【００４９】
図８の例では、画素１の上流側処理［１ａ］，［１ｂ］の後、画素２〜３の各上流側処理が連続して実行されている。そして、画素３の上流側処理が完了した後、画素１〜３の各下流側処理が連続して実行されている。ここで、画素１については、上流側処理と下流側処理との間において、後続する画素２，３の上流側処理が実行されることにより、処理［１ｃ］のＭＥＭステージまでにデータ受信バッファ３２ｂに画素１の色変換データＣＤが格納されることとなる。また、画素２については、上流側処理と下流側処理との間において、後続する画素３の上流側処理と、先行する画素１の下流側処理と、が実行されることにより、処理［２ｃ］のＭＥＭステージまでに、データ受信バッファ３２ｂに画素２の色変換データＣＤが格納されることとなる。また、画素３については、上流側処理と下流側処理との間において、先行する画素１，２の下流側処理が実行されることにより、処理［３ｃ］のＭＥＭステージまでに、データ受信バッファ３２ｂに画素２の色変換データＣＤが格納されることとなる。
【００５０】
このように、第２の実施例では、画素ｎの上流側処理と下流側処理との間において、先行する画素の下流側処理と、後続する画素の上流側処理と、の少なくとも一方が実行されることで、画素ｎの下流側処理が開始される前に必要とする色変換データＣＤをデータ受信バッファ３２ｂに格納することができる。従って、色変換データＣＤを得るために外部メモリ４０へのアクセスが発生しても、下流側処理が開始される前に、必要となる色変換データＣＤをデータ受信バッファ３２ｂに格納することができる。それ故、各ステージを１クロックで処理するパイプラインを崩すことなく色変換を行うことができ、色変換の高速化を実現することができる。
【００５１】
Ｃ．変形例：
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００５２】
Ｃ１．変形例１：
上述した第１の実施例では、或る画素についての上流側処理と下流側処理との間において、他の合計４画素分の上流側処理または下流側処理が実行されていた。また、第２の実施例では、かかる間において、他の合計２画素分の上流側処理または下流側処理が実行されていた。本発明における、或る画素についての上流側処理と下流側処理との間において実行される上流側処理または下流側処理の画素数は、これら４画素或いは２画素に限定されるものではない。例えば、１画素や５画素など、少なくとも他の１画素分の上流側処理または下流側処理が実行される構成であればよい。このようにすることで、外部メモリアクセスに伴うレイテンシの増加が発生しても、かかる他の画素の上流側処理または下流側処理を実行することで、或る画素の下流側処理を実行するまでに、その画素の色変換データＣＤをデータ受信バッファ３２ｂに格納することができる。
【００５３】
Ｃ２．変形例２：
上述した各実施例では、ロード制御部３６が色変換データＣＤを取得するのに要する時間は、画素ｎについての処理［ｎｂ］のＷＢステージが実行された１つ後のクロックから、画素ｎについての処理［ｎｃ］のＭＥＭステージが実行される１つ前のクロックまでの時間（以下、「基準時間」と呼ぶ。）であった。本発明では、ロード制御部３６が色変換データＣＤを取得するのに要する時間は、かかる基準時間以内であることが好ましい。換言すると、ロード制御部３６が色変換データＣＤを取得するのに要する時間だけ、或る画素の上流側処理と下流側処理との間に他の画素についての処理を実行することが好ましい。しかしながら、ロード制御部３６が色変換データＣＤを取得するのに要する時間が、かかる基準時間よりも長い構成であっても、処理［ｎｃ］のＭＥＭステージが３クロック以内に完了すれば、無駄となるクロック数は２以下となり、図７に示す従来の比較例よりも色変換処理の高速化を図ることができる。
【００５４】
Ｃ３．変形例３：
上述した各実施例における色変換処理は、ＲＧＢ表色系で表現された画像データからＣＭＹＫ表色系で表現された画像データへの変換処理であるが、本発明は、他の色変換処理にも適用可能である。例えば、スキャナで使用されるＲＧＢ表色系で表現された画像データからモニタで使用されるＲＧＢ表色系で表現された画像データへの色変換処理にも適用できる。また、本発明は、色変換処理に限らず、他の画像データ変換処理にも適用可能である。例えば、ガンマ補正処理や、シャープネスや明るさ等を調整する処理であって、変換テーブルを用いて画像データを変換する処理に適用することで、これらの画像データ変換処理の高速化を実現することができる。
【００５５】
Ｃ４．変形例４：
上述した各実施例において、本発明の画像データ変換装置を適用した装置はプリンタであったが、プリンタに限らず他の装置であっても構わない。例えば、プリンタユニット及びスキャナユニット等を搭載した複合機や、パーソナルコンピュータや、デジタルスチルカメラ等に、本発明の画像データ変換装置を適用するようにしてもよい。
【００５６】
Ｃ５．変形例５：
上述した各実施例におけるプリンタ１００の構成は、あくまで一例であり、プリンタ１００の構成を他の構成とすることも可能である。例えば、プリンタ１００は、ネットワークを介して画像データＩＭＧを取得可能な構成であるとしてもよい。また、プリンタ１００のプリンタエンジン５０において用いられるインク色はＣＭＹＫの４色に限られず、任意の種類のインク色を採用可能である。また、上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施例としての画像データ変換装置を適用したプリンタの概要構成を示す説明図である。
【図２】色変換ＬＵＴ４２の一例を示す説明図である。
【図３】図１に示す色変換部２４ｂの詳細構成を主として示す説明図である。
【図４】色変換部２４ｂにおいて実行される色変換処理の手順を示すフローチャートである。
【図５】色変換処理において各画素について実行される処理内容を模式的に示す説明図である。
【図６】従来技術の比較例における色変換部の詳細構成を示す説明図である。
【図７】従来技術の比較例における色変換処理での処理内容を模式的に示す説明図である。
【図８】第２の実施例の色変換処理において各画素について実行される処理内容を模式的に示す説明図である。
【符号の説明】
【００５８】
２０...制御回路
２４ａ...解像度変換部
２４ｂ...色変換部
２４ｃ...ハーフトーン処理部
２４ｄ...データ配列部
２４ｅ...メモリコントローラ
３０...ＣＰＵ
３０ａ...画像データ取得部
３０ｂ...アドレス算出部
３０ｃ...データ読出部
３０ｄ...データ書込部
３１...色変換制御部
３２ａ...アドレスバッファ
３２ｂ...データ受信バッファ
３６...ロード制御部
４０...外部メモリ
４２...色変換ルックアップテーブル（ＬＵＴ）
５０...プリンタエンジン
６０...メモリカードスロット
６２...カードインタフェース部
６４...操作部
６６...表示部
１００...プリンタ
Ｐ...格子点
Ｂｋ...黒色点
Ｗ...白色点
ＣＤ...色変換データ
ＡＤ...格納アドレス
ＩＭＧ...画像データ
ＩＮＫ...インク階調値データ
ＰＤ...印刷データ
７０...色変換部
７２...ＣＰＵ
ＣＭ...キャッシュメモリ
【図１】
2007306445.tif 000003
【図２】
2007306445.tif 000004
【図３】
2007306445.tif 000005
【図４】
2007306445.tif 000006
【図５】
2007306445.tif 000007
【図６】
2007306445.tif 000008
【図７】
2007306445.tif 000009
【図８】
2007306445.tif 000010