(57)【要約】【課題】ルックアップテーブルを参照して色変換処理を行うにあたり、キャッシュヒット率を高め、色変換処理を高速に実行することを目的とする。【解決手段】色変換ルックアップテーブルを参照して色変換処理を行う色変換処理手段を含む画像形成装置であって、色変換処理手段は、入力信号の信号値を各入力色毎に取得し、各入力色毎の信号値の各下位ビットが、オフセット値計算レジスタの下位ビットに位置するように配置してオフセット値を計算し、当該オフセット値を用いて、色変換ルックアップテーブルを参照する。【選択図】図５
2007124230.tif 000002
【特許請求の範囲】
【請求項１】
第１の色空間内にて表される入力信号値と第２の色空間内にて表される出力信号値との対応関係を記述した色変換ルックアップテーブルを格納した記憶手段と、前記記憶手段に格納された色変換ルックアップテーブル又はキャッシュメモリに保持された色変換ルックアップテーブルの一部を参照して色変換処理を行う色変換処理手段とを備え、入力画像の複製画像を形成する画像形成装置であって、
前記色変換処理手段は、前記記憶手段に格納された色変換ルックアップテーブルを参照するにあたり、入力信号値に基づいてオフセット値を計算するオフセット値計算手段と、
前記オフセット値計算手段により計算したオフセット値を用いて、前記記憶手段に格納された色変換ルックアップテーブルを参照する手段と、をさらに備え、
前記オフセット値計算手段は、入力信号の信号値を各入力色毎に取得し、前記各入力色毎の信号値の各下位ビットが、オフセット値計算レジスタの下位ビットに位置するように配置してオフセット値を計算する
ことを特徴とする画像形成装置。
【請求項２】
前記第１の色空間は、Ｒ（レッド）Ｇ（グリーン）Ｂ（ブルー）のセットを含む色空間であり、
前記第２の色空間は、少なくともＣ（シアン）Ｍ（マゼンダ）Ｙ（イエロー）Ｋ（ブラック）のセットを含む色空間であり、
前記オフセット値計算手段は、入力信号のＲＧＢ値の各下位ビットが、オフセット値計算レジスタの下位ビットに位置するように配置してオフセット値を計算する、
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記オフセット値計算手段は、ＲＧＢ値の各ビットをオフセット値計算レジスタ上で櫛歯状に配置してオフセット値を計算する、
ことを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記オフセット値計算手段は、少なくともＲＧＢ値の各最下位ビットを、オフセット値計算レジスタの下位３ビットに配置してオフセット値を計算する、
ことを特徴とする請求項２に記載の画像形成装置。
【請求項５】
第１の色空間内にて表される入力信号値と第２の色空間内にて表される出力信号値との対応関係を記述した色変換ルックアップテーブルを格納した記憶手段と、前記記憶手段に格納された色変換ルックアップテーブル又はキャッシュメモリに保持された色変換ルックアップテーブルの一部を参照して色変換処理を行う色変換処理手段とを備える色変換装置であって、
前記色変換処理手段は、前記記憶手段に格納された色変換ルックアップテーブルを参照するにあたり、入力信号値に基づいてオフセット値を計算するオフセット値計算手段と、
前記オフセット値計算手段により計算したオフセット値を用いて、前記記憶手段に格納された色変換ルックアップテーブルを参照する手段と、をさらに備え、
前記オフセット値計算手段は、入力信号の信号値を各入力色毎に取得し、前記各入力色毎の信号値の各下位ビットが、オフセット値計算レジスタの下位ビットに位置するように配置してオフセット値を計算する
ことを特徴とする色変換装置。
【請求項６】
第１の色空間内にて表される入力信号値と第２の色空間内にて表される出力信号値との対応関係を記述した色変換ルックアップテーブルを記憶手段に格納し、前記色変換ルックアップテーブルを参照して色変換処理を行う色変換装置における色変換ルックアップテーブルを作成する方法であって、
入力信号の信号値から取得される各入力色毎の信号値の各下位ビットがオフセット値計算レジスタの下位ビットに位置するように配置して計算される値と前記色変換ルックアップテーブルのオフセット値とが等しくなるように、前記色変換ルックアップテーブルを作成する、
ことを特徴とする色変換ルックアップテーブルの作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置に関し、特に、色変換処理時に参照するルックアップテーブルのメインメモリ上の配置により、色変換処理の高速化を可能にする技術に関する。
【背景技術】
【０００２】
インクジェット等により画像を形成する画像形成装置は、デジタルカメラで撮像した写真やコントローラ上で作成されたデザインなどを印刷媒体上に印刷する手段として広く普及している。画像形成装置は、ホストコンピュータに接続され、ホストコンピュータから画像形成データを受信し、所定の画像処理を行って印刷エンジン、例えばインクヘッドや電子写真エンジンに画像再生データを出力する。
【０００３】
ホストコンピュータにおいて、画像データは、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）により取り扱われる。一方、画像形成装置においては、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）のインク色によって印刷媒体上に出力することから、画像データはＣＭＹＫ４色により取り扱われるのが一般的である。
【０００４】
そのため、ＲＧＢ値から画像形成装置固有のＣＭＹＫ等の記録色に色変換する必要がある。色変換の方法としては、様々な方法が提案されているが、その一つにダイレクトマッピング方法とよばれる方法がある。これは、入力されるＲＧＢ値に応じて、あらかじめ用意されたルックアップテーブル（以下、「ＬＵＴ」という。）に記述されているＣＭＹＫ値を直接参照するものである。この方法を用いれば、非線形関係にある変換や複雑な変換が可能になり、より繊細な画像設計を行うことが可能になる。なお、ＬＵＴを作成する方法が、例えば特許文献１に記載されている。
【特許文献１】特開平１０−１９１０７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ＲＧＢそれぞれが８ビットの階調を持ち、この値によってＬＵＴ参照を行ってＣＭＹＫの４色に変換する場合、ＬＵＴの容量は６４Ｍバイト（２５６×２５６×２５６×４）と大きなものになる。そして、従来のＲＧＢ値をそのままインデックスとしてメモリ上に３次元ＬＵＴを構成する方式では、キャッシュメモリを効率的に使用することができない。この点について、図面を用いて説明する。
【０００６】
図８は、従来のＬＵＴのオフセット値、すなわち、メインメモリ上の配置を示す図である。従来のＬＵＴのオフセット値は、ＲＧＢ各８ビットの場合、図８（Ａ）式に示すオフセット計算式により求めている。図８（Ｂ）は、このオフセット計算式により実装されるＬＵＴのメインメモリ上での配置を示す図である。従来のＬＵＴでは、例えば、Ｂ（ブルー）の要素が少し変動する分には、ＬＵＴ上のアドレスは大して変わらない。しかし、Ｒ（レッド）の要素についてはＲの値が１つ変わると、対応するＬＵＴ参照アドレスは大きく変動する。
【０００７】
一方、実際の画像は、近傍の画素は色が近くなることが多い。本来、画像の濃度変化は緩やかであるため、近傍画素のＲＧＢ値は近い値になることが多い。従来の方法では、濃度値が近いにも関わらずＬＵＴ内には大きな距離（アドレス）をおいて配列されることになり、キャッシュメモリの入れ替えが頻繁に発生するようになる。しかし、キャッシュをもっと効率的に使用することができれば色変換処理の性能を向上させることができる。
【０００８】
本発明は、かかる実情に鑑み、色変換処理を高速に実行することを目的としている。特に、特有なオフセット計算法を採用することにより、参照するテーブル値がキャッシュに残っている可能性を高くし、メインメモリとの間のアクセスを減らして、色変換処理全体の高速化を図るものである。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明に係る画像形成装置は、第１の色空間内にて表される入力信号値と第２の色空間内にて表される出力信号値との対応関係を記述した色変換ルックアップテーブルを格納した記憶手段と、記憶手段に格納された色変換ルックアップテーブル又はキャッシュメモリに保持された色変換ルックアップテーブルの一部を参照して色変換処理を行う色変換処理手段とを備え、入力画像の複製画像を形成する画像形成装置であって、色変換処理手段は、記憶手段に格納された色変換ルックアップテーブルを参照するにあたり、入力信号値に基づいてオフセット値を計算するオフセット値計算手段と、オフセット値計算手段により計算したオフセット値を用いて、記憶手段に格納された色変換ルックアップテーブルを参照する手段と、をさらに備え、オフセット値計算手段は、入力信号の信号値を各入力色毎に取得し、各入力色毎の信号値の各下位ビットが、オフセット値計算レジスタの下位ビットに位置するように配置してオフセット値を計算する。かかる発明によれば、色変換処理におけるキャッシュヒット率が高まり、メインメモリへのアクセスを減らすことができるので、色変換処理全体の高速化が可能となり、画像形成処理全体の処理速度が向上する。
【００１０】
好適には、第１の色空間は、Ｒ（レッド）Ｇ（グリーン）Ｂ（ブルー）のセットを含む色空間であり、第２の色空間は、少なくともＣ（シアン）Ｍ（マゼンダ）Ｙ（イエロー）Ｋ（ブラック）のセットを含む色空間であり、オフセット値計算手段は、入力信号のＲＧＢ値の各下位ビットが、オフセット値計算レジスタの下位ビットに位置するように配置してオフセット値を計算する。かかる発明によれば、特にインクジェットプリンタ等の画像形成装置において、色変換処理におけるキャッシュヒット率が高まり、メインメモリへのアクセスを減らすことができるので、色変換処理全体の高速化が可能となり、ひいてはプリンタへの出力速度が向上する。
【００１１】
好適には、オフセット値計算手段は、ＲＧＢ値の各ビットをオフセット値計算レジスタ上で櫛歯状に配置してオフセット値を計算する。また、好適には、オフセット値計算手段は、少なくともＲＧＢ値の各最下位ビットを、オフセット値計算レジスタの下位３ビットに配置してオフセット値を計算する。かかる発明によれば、特有なオフセット計算法を採用することにより、参照するテーブル値がキャッシュに残っている可能性を高くし、メインメモリとの間のアクセスを減らすことができるので、色変換処理の高速化が可能となる。
【００１２】
また、本発明に係る色変換装置は、第１の色空間内にて表される入力信号値と第２の色空間内にて表される出力信号値との対応関係を記述した色変換ルックアップテーブルを格納した記憶手段と、記憶手段に格納された色変換ルックアップテーブル又はキャッシュメモリに保持された色変換ルックアップテーブルの一部を参照して色変換処理を行う色変換処理手段とを備える色変換装置であって、色変換処理手段は、記憶手段に格納された色変換ルックアップテーブルを参照するにあたり、入力信号値に基づいてオフセット値を計算するオフセット値計算手段と、オフセット値計算手段により計算したオフセット値を用いて、記憶手段に格納された色変換ルックアップテーブルを参照する手段と、をさらに備え、オフセット値計算手段は、入力信号の信号値を各入力色毎に取得し、各入力色毎の信号値の各下位ビットが、オフセット値計算レジスタの下位ビットに位置するように配置してオフセット値を計算する。かかる発明によれば、色変換処理におけるキャッシュヒット率が高まり、メインメモリへのアクセスを減らすことができるので、色変換処理全体の高速化が可能となる。
【００１３】
また、本発明に係る色変換ルックアップテーブルの作成方法は、第１の色空間内にて表される入力信号値と第２の色空間内にて表される出力信号値との対応関係を記述した色変換ルックアップテーブルを記憶手段に格納し、色変換ルックアップテーブルを参照して色変換処理を行う色変換装置における色変換ルックアップテーブルを作成する方法であって、入力信号の信号値から取得される各入力色毎の信号値の各下位ビットがオフセット値計算レジスタの下位ビットに位置するように配置して計算される値と色変換ルックアップテーブルのオフセット値とが等しくなるように、前記色変換ルックアップテーブルを作成する。かかる発明により作成した色変換ルックアップテーブルによれば、色変換処理におけるキャッシュヒット率が高まり、メインメモリへのアクセスを減らすことができるので、色変換処理全体の高速化が可能となる。
【００１４】
なお、明細書等において、オフセットとは、あるデータの位置を、基準点（基準アドレス）からの距離で表した値のことである。
【発明を実施するための最良の形態】
【００１５】
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１６】
図１は、本実施の形態における画像形成装置の構成図である。この画像形成装置は、一例として、大判用紙への画像形成を可能にするインクジェットプリンタであり、コントローラ２０が、図示しないホストコンピュータから画像形成データを受信し、それを画像処理して画像再生データを生成し、インクを吐出する多数のノズルを有する印刷ヘッド１０に画像再生信号３８を出力する。コントローラ２０は、画像再生データを生成するための画像処理を制御するＣＰＵと、そのＣＰＵバスＣＢＵＳ１と、ＣＰＵバスＣＢＵＳ１に接続された画像処理ユニット２２とを有する。また、ＣＰＵバスＣＢＵＳ１には外部ＣＰＵメモリＣＰＵＭＥＭが接続され、この外部ＣＰＵメモリには、種々のパラメータや制御プログラムが格納されている。
【００１７】
また、ＣＰＵバスＣＢＵＳ１は、画像処理ユニット２２内のＣＰＵインタフェースＣＰＵＩＦを介して第２のＣＰＵバスＣＢＵＳ２に接続されている。また、画像処理ユニット２２は、種々の通信路ＮＥＴ１〜３のインタフェースＩＦ１〜３と、入力データの転送制御を行うパス制御部２４と、解凍処理を行う解凍ユニット２６と、ラスタ方向の画像再生データを印刷ヘッドのパス毎に分解するパス分解処理部３２と、パス毎に分解された画像再生データを印刷ヘッドのノズル順に順番を入れ替えるノズル順変換処理部３４とが、それぞれ専用のハードウエアブロックとして設けられる。また、色変換及び二値化処理部１２は、解凍ユニット２６やパス分解処理部３２、ノズル順変換処理部３４のようなコントローラ２０内の専用ハードウエアではなく、外付けの専用プロセッサにより構成され、色変換及び二値化処理をプログラムにより実現し、それらの処理の変更に容易に対応できるようにしている。
【００１８】
更に、画像処理ユニット２２は、前述のパス制御部２４、解凍ユニット２６、パス分解処理部３２、ノズル順変換処理部３４を接続するローカルバスＬＢＵＳを有し、このローカルバスＬＢＵＳには外部メモリコントローラ２８を介して外部の大容量メモリＥ−ＭＥＭが接続される。外部メモリコントローラ２８と外部メモリＥ−ＭＥＭとは、メモリバスＭＢＵＳを介して接続される。そして、外部の大容量メモリＥ−ＭＥＭは、入力される画像形成データを一時的に格納し、各処理後のデータを一時的に格納する複数のバッフ領域を有する。また、ローカルバスＬＢＵＳが二値化インタフェースユニット３０に接続され、二値化バスＨＴＢＵＳを介して色変換及び二値化処理部１２に接続される。また、ローカルバスＬＢＵＳは、ヘッドインタフェースユニット３６を介して印刷ヘッド１０に接続される。
【００１９】
ＣＰＵバスＣＢＵＳ１、ＣＢＵ２は、コマンド解釈などに利用されるのに対して、ローカルバスＬＢＵＳは大量の画像データの転送に利用されるので、ＣＰＵバスに比較すると大容量のバス（ローカルバスは１２８ビット、ＣＰＵバスは３２ビット）に形成されている。
【００２０】
画像処理ユニット２２内の専用処理ユニットらは、ＣＰＵと、第１のＣＰＵバスＣＢＵＳ１及び第２のＣＰＵバスＣＢＵＳ２を介してその動作を制御される。例えば、ＣＰＵが、各処理ユニットの動作開始レジスタに動作開始フラグを書き込むことで各専用処理ユニットは対応する処理を実行し、ＣＰＵは、各処理ユニットの処理終了時に動作終了割り込み信号を受信してその動作終了を検知する。
【００２１】
インクジェットの大判プリンタは、印刷業などで広く利用されているが、本実施の形態では、ＲＧＢ画像データや、ＲＧＢ画像データをＪＰＥＧ形式で圧縮したＪＰＥＧ圧縮データ等を受信可能である。ＲＧＢ画像データ等は、通信線ＮＥＴ１〜ＮＥＴ３を介してコントローラ２０に入力される。ＪＰＥＧ圧縮データの場合は、ホストコンピュータ側で元の画像データがＪＰＥＧ圧縮され、その圧縮データがコントローラ２０に入力される。圧縮率が高いので通信データ量を小さくすることができ、ホストコンピュータとプリンタ間の通信時間を短くすることができる。但し、プリンタ側では、受信したＪＰＥＧ圧縮データを解凍してＲＧＢ画像データを再生する必要がある。
【００２２】
このように入力されたＲＧＢ画像データには、色変換、二値化処理、ヘッドのノズルに対応させる変換処理、つまりドット毎の二値化データをパス毎に分解するパス分解処理、パス毎に分解されたラスタ方向に並べられたデータをヘッドのノズル順に並び替えるノズル順変換処理が施される。
【００２３】
次に、入力される画像形成データに対応してデータの流れと処理について説明する。入力される画像形成データは、パケットの形態で種々の通信路ＮＥＴ１〜３を介して入力され、それぞれの入力インタフェースＩＦ１〜３は、パケットを元のデータ列に再構成するなどの処理を行い、送信前の元のデータに戻す。そして、この入力データは、パス制御部２４内のＦＩＦＯメモリで構成される第１の入力バッファＩ−ＢＵＦ１に格納されながら、ローカルバスＬＢＵＳを介して、外部の大容量メモリＥ−ＭＥＭの入力バッファＩ−ＢＵＦ３に格納される。この外部メモリＥ−ＭＥＭは、例えば、ダブルレートのシンクロナスＤＲＡＭであり、大容量且つ高速メモリである。また、外部メモリＥ−ＭＥＭへのアクセスは、メモリコントローラユニットＥ−ＭＣとメモリバスＭＢＵＳを経由して行われる。
【００２４】
そして、外部メモリＥ−ＭＥＭに格納された入力データのうち、先頭の部分が再度ローカルバスＬＢＵＳを介して、パス制御部２４内の第２の入力バッファＩ−ＢＵＦ２に格納される。つまり、入力データが全て外部メモリＥ−ＭＥＭに格納されると共に、その先頭の一部のみがパス制御部２４内の第２の入力バッファＩ−ＢＵＦ２に格納されて停止する。第１及び第２の入力バッファＩ−ＢＵＦ１、２は、ＦＩＦＯバッファであり、図示しないＦＩＦＯコントローラにより制御される。
【００２５】
そこで、ＣＰＵは、ＣＰＵバスＣＢＵＳ１、２を介して第２の入力バッファＩ−ＢＵＦ２にアクセスして、入力データの先頭部分のコマンドを解析してフォーマットの種類（圧縮形式情報）とデータ量を認識すると、外部メモリＥ−ＭＥＭの第３の入力バッファＩ−ＢＵＦ３内に格納した入力データを、次々に第２の入力バッファＩ−ＢＵＦ２に転送し、そこから解凍ユニットにデータを転送させる。このデータ転送は、ローカルバスＬＢＵＳを経由せず、第２の入力バッファＩ−ＢＵＦ２から専用線で行われる。
【００２６】
例えば、ＪＰＥＧフォーマットの場合は、解凍ユニット２６で解凍（復号化）され、解凍済みの再生画像データが外部メモリＥ−ＭＥＭのＲＧＢバッファＲＧＢ−ＢＵＦに格納される。この再生画像データは、所定の解像度の画素に対応するそれぞれ８ビットまたは１６ビットのＲＧＢ階調データである。入力される画像データがＲＧＢ画像データの場合は、解凍ユニット２６を介することなくＲＧＢバッファＲＧＢ−ＢＵＦに格納される。このＲＧＢバッファに格納されたＲＧＢの再生画像データは、二値化インタフェースユニット３０を経由して色変換及び二値化処理部１２に転送され、そこで色変換処理されてプリンタのインクの色空間ＣＭＹＫの画像データに変換され、更に、印刷ヘッド１０のノズルによるインク吐出データ（２ビット）に二値化処理がされ、外部メモリＥ−ＭＥＭのプレーンバッファＰＬ−ＢＵＦに格納される。２ビットのインク吐出データは、前述の８色のインクそれぞれに対して大きなドット印刷用の吐出の有無と、小さなドット印刷用の吐出の有無を示すものであり、二値化データである。また、上記の二値化処理部１２では、解凍済みの再生画像データの解像度をより高い解像度に変換する解像度変換を必要に応じて行う。その結果、二値化処理により、プリンタヘッドにより印刷される画素密度の解像度でドットの吐出有無を示す二値化データとなる。
【００２７】
プレーンバッファＰＬ−ＢＵＦに格納されたＣＭＹＫの二値化データは、パス分解処理３２でヘッド１０のパス毎の二値化データに分解されて、外部メモリＥ−ＭＥＭ内のパスバッファＭＷ−ＢＵＦに格納される。そして、パス毎に分解された二値化データは、ノズル順変換処理部３４でヘッドのノズル順に並び替えられ、そのノズル順二値化データが外部メモリＥ−ＭＥＭ内のヘッドバッファＨＤ−ＢＵＦに格納される。最後に、ノズル順に並び替えられたノズル順二値化データが、ヘッドコントロールユニット３６を経由して、画像再生データ３８としてプリンタヘッド１０に転送される。
【００２８】
図２は、本実施の形態における色変換及び二値化処理部１２の構成図である。色変換及び二値化処理部１２は、ＣＰＵチップ５０とメモリ６０とを備える。キャッシュ５４はＣＰＵチップ５０内部の高速メモリであり、ＣＰＵコア５２の動作とメモリ６０へのアクセスとの間の速度差を吸収する。メモリ６０とキャッシュとの間では、１６／３２／６４バイト等のキャッシュラインサイズでリード・ライトされる。ＣＰＵコア５２はキャッシュ５４上に有効なデータが有る場合は、キャッシュアクセスのみで動作するため、処理を高速に実行できる。しかし、キャッシュ５４のサイズには限りがあるため、必要なデータが常にキャッシュ５４に存在するとは限らない。ＣＰＵチップ５０は、前述のキャッシュ５４を接続する内部バス５８を有し、この内部バス５８にはメモリコントローラ５６を介してメモリ６０が接続される。
【００２９】
メモリ６０にはＬＵＴが格納される。色空間の標準規格であるｓＲＧＢに関するカラープロファイルや、プリンタ固有の印刷特性、用紙等の印刷媒体などに基づいて、複数のＬＵＴを格納してもよい。
【００３０】
図３は、画像形成装置での処理の流れを示す図である。画像形成装置は、ホストコンピュータから画像形成データを受信すると（Ｓ７０）、第１入力バッファＩ−ＢＵＦ１、外部メモリＥ−ＭＥＭ、第２入力バッファＩ−ＢＵＦ２に入力画像形成データが格納され、第２入力バッファＩ−ＢＵＦ２に格納されているコマンドが、ＣＰＵにより読み出され解析される。入力画像がＲＧＢ画像データの場合は、解凍ユニット２６を介することなくＲＧＢバッファＲＧＢ−ＢＵＦに格納される。ＪＰＥＧ圧縮された画像形成データの場合は、ここでＣＰＵによりＪＰＥＧ圧縮フォーマットであることが検出され、圧縮データ５４が解凍ユニット２６に転送され、そこで解凍処理され、解凍されたＲＧＢ画像データがＲＧＢバッファＲＧＢ−ＢＵＦに格納される。
【００３１】
プリンタのコントローラ２０は、外部メモリ内のＲＧＢバッファＲＧＢ−ＢＵＦの再生画像データを、二値化インタフェースユニット３０と二値化バスＨＴＢＵＳとを介して色変換及び二値化処理部１２に転送する。色変換及び二値化処理部１２は、そのファームウエアを実行して、再生画像データに対しＲＧＢからＣＭＹＫへの色変換処理を行う（Ｓ７２）。色変換処理の後、インクの吐出有無に対応する二値化データを生成する二値化処理を実行する（Ｓ７４）。例えば、二値化処理により、４色２５６階調のデータをドットの０、１に変換する。二値化されたデータは、外部メモリのプレーンバッファＰＬＢＵＦに格納される。色変換及び二値化処理部１２は、専用プロセッサで構成され、ＲＧＢデータに対する処理プログラムがファームウエアとしてメモリ６０に格納されている。
【００３２】
更に画像形成装置のコントローラ２０は、二値化されたデータを、パス分解処理部３２とノズル順変換処理部３４とによりヘッドデータに変換する（Ｓ７６）。そして、変換されたヘッドデータを画像再生信号３８としてプリンタヘッド１０に出力する（Ｓ７８）。
【００３３】
図４は、色変換処理の詳細を示すフローチャートである。まず、色変換及び二値化処理部１２に転送された再生画像データから、当該再生画像データを構成する画素のＲＧＢ値を取得する（Ｓ８０）。本実施形態において、画素のＲ，Ｇ，Ｂ値は、各８ビットで表現される。
【００３４】
次に、取得したＲＧＢ値に基づいてＬＵＴを参照して、画像形成装置の色表現（ＣＭＹＫ）に変換する。このとき、Ｓ８０で取得したＲＧＢ値に対応するＬＵＴがキャッシュ５４に存在すれば（Ｓ８２：Ｙｅｓ）、ＣＰＵコア５０はキャッシュ５４に保持されたＬＵＴを参照して、ＣＭＹＫ値に変換する（Ｓ８４）。一方、対応するＬＵＴがキャッシュ５４に存在しない場合（Ｓ８２：Ｎｏ）、メモリ６０にアクセスして、メモリ６０に記憶されるＬＵＴを参照してＣＭＹＫ値に変換する（Ｓ８６）と共に、参照したＬＵＴの近傍アドレスに位置するＬＵＴをキャッシュ５４に書き込む（Ｓ８８）。なお、ＣＭＹＫ値は、プリンタのインク色毎に各８ビットで表現される。
【００３５】
色変換処理をしていない画素が残っていれば（Ｓ９０：Ｙｅｓ）、Ｓ８０に戻り、各画素毎にＣＭＹＫ値を取得する。全ての画素について処理が終了すれば（Ｓ９０：Ｎｏ）、色変換処理を終了して、続いて二値化処理を行う。
【００３６】
なお、上述した処理フローの各処理は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３７】
図５は、本実施の形態における色変換処理に用いるＬＵＴ先頭アドレスからのオフセット計算アルゴリズムを示す図であり、３２ビットレジスタ内でのオフセット値を示す図である。同図（Ａ）は、従来のオフセット値の求め方を示す図である。画像形成装置３０に入力されるＲＧＢデータは各８ビットで表現される。しかし、本実施の形態のＬＵＴでは、ＲＧＢそれぞれ下位２ビットを落として、各６ビットで構成する。これは、ＬＵＴを記憶するメモリ容量を節約でき、かつ、各下位２ビットを落としても印刷結果にほとんど影響を与えないからである。なお、ＲＧＢ各８ビットでＬＵＴを構成すると、２５６×２５６×２５６＝１６Ｍバイトのテーブルが必要となるが、各６ビットの場合、６４×６４×６４＝２６２Ｋバイトのテーブルで足りる。
【００３８】
従来、ＬＵＴ先頭アドレスからのオフセット値は、図５（Ａ）に示すように、ＲＧＢ値を順に並べて、オフセット値を計算している。すなわち、ＲＧＢ各６ビットの場合、以下の式１により求められるオフセット値に従って、メモリに格納するＬＵＴのアドレスを決定する。
（式１）  オフセット値＝２12×ｒ＋２6×ｇ＋ｂ
ここで、ｒ，ｇ，ｂはそれぞれ、Ｒ，Ｇ，Ｂ値の下位２ビットを落としてようにシフトして６ビットで表現したものである。式１で計算されるオフセット値に基づいて構成されるＬＵＴのメモリ上での配置は、図６（Ａ）のようになる。
【００３９】
これに対して、本実施の形態におけるオフセット値は、図５（Ｂ）に示すように計算する。すなわち、Ｒ，Ｇ，Ｂ値をビット毎に分解して、ＲＧＢの各ビットを櫛歯状に配置して、オフセット値を求める。すなわち、以下の式２により求められるオフセット値に従って、ＬＵＴのアドレスを決定する。
（式２）  オフセット値＝２17×Ｒ５＋２16×Ｇ５＋２15×Ｂ５
＋・・・
＋２5×Ｒ１＋２4×Ｇ１＋２3×Ｂ１
＋２2×Ｒ０＋２×Ｇ０＋Ｂ０
ここで、Ｒ５，・・・，Ｒ０，Ｇ５，・・・，Ｇ０，Ｂ５，・・・，Ｂ０は、それぞれｒ，ｇ，ｂの各ビット値を示すものであり、以下の式３乃至５の関係が成り立つ。
（式３）  ｒ＝２5×Ｒ５＋２4×Ｒ４＋２3×Ｒ３＋２2×Ｒ２＋２×Ｒ１＋Ｒ０
（式４）  ｇ＝２5×Ｇ５＋２4×Ｇ４＋２3×Ｇ３＋２2×Ｇ２＋２×Ｇ１＋Ｇ０
（式５）  ｂ＝２5×Ｂ５＋２4×Ｂ４＋２3×Ｂ３＋２2×Ｒ２＋２×Ｒ１＋Ｒ０
なお、例えば、ＬＵＴの１つの要素が４バイト（ＣＭＹＫ）である場合、最終的に求めるべきオフセット値はＲＧＢ値から計算したオフセット値を４倍にして求める。
【００４０】
図６は、ＬＵＴのメモリ６０上での配置を示す図である。同図（Ａ）は従来例であり、同図（Ｂ）は、式２で計算されるオフセット値に基づいて構成されるＬＵＴのメモリ上での配置を示す図である。従来のＬＵＴの場合、Ｒ値が１変化すると、オフセット値が４０９６変わるのに対し、本実施の形態のオフセット計算法によれば、Ｒ値が１変化するのに対し、オフセット値は４しか変わらない。すなわち、ＲＧＢ値の各ビットをシャッフルして櫛歯状に配置してインデックス値を生成することで、ＲＧＢ値がわずかに異なるだけのＬＵＴは、近接したアドレスに配置されることになる。
【００４１】
上述のとおり、本実施の形態におけるオフセット計算法を用いると、ＲＧＢ値の近い画素のＬＵＴ参照位置はアドレス距離の狭い範囲に配置することができる。多くの場合、画像を構成する近傍画素間の濃度変化は緩やかであるため、近傍画素のＲＧＢ値は近い値になっていることが期待される。そのため、画像を構成する画素を並び順に連続して色変換する場合、本実施の形態のオフセット計算法を使うと、キャッシュヒット率が向上し、キャッシュ上に存在するデータを効率的に使用して色変換を行うことが可能となる。メインメモリとの間のアクセスが減少し、キャッシュの書き換えも少なくなるため、色変換処理全体を高速化することができる。
【００４２】
図７は、本発明におけるオフセット値計算法のバリエーションを示す図である。先の実施の形態においては、式２に基づいてオフセット値を求める例を示したが、本発明のオフセット値計算アルゴリズムは式２に限定されるものではない。例えば、図７（Ａ）に示すように、櫛歯状に並べるＲＧＢ各ビットの配置順は、任意に設定可能である。また、図７（Ｂ）に示すように、ＲＧＢ各ビットは、等間隔の櫛歯状に配置しなくてもよい。さらに、図７（Ｃ）に示すように、ＲＧＢ毎に複数のビットをまとめて櫛歯状に配置してもよい。つまり、ＲＧＢの下位ビットが３２ビットレジスタ内でも下位ビットに位置するようなオフセット値であれば、任意のオフセット値計算法を採用可能である。
【００４３】
通常、一回のアクセスでキャッシュに読み書きされる単位は、１６バイト又は３２バイトである。画像を形成するインクがＣＭＹＫの４色２５６階調であれば、ＬＵＴの一つの要素のサイズは４バイトであるから、一回のメモリアクセスにつき、４つ又は８つの要素がキャッシュに書き込まれることになる。従って、好ましくは、ＲＧＢの各最下位ビットが３２ビットレジスタ内で下位０〜２ビットに位置する形でオフセット値を算出するようにすれば、一回のメモリアクセスによりキャッシュに書き込まれる複数の要素の中に、ＲＧＢ色空間上で近接する格子点に関する要素を含む可能性が高くなる。
【００４４】
なお、３２ビットレジスタにＲＧＢの各ビットを櫛歯状等に配置するための操作が必要となるが、例えば、専用のデバイスを使用してもよいし、櫛歯型に変換するテーブルを用意してもよい。
【００４５】
なお、本発明の画像形成装置は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得るものである。本実施の形態においては、色変換及び二値化処理部１２を汎用のＣＰＵにより構成する例を示したが、ＤＳＰ等の専用のプロセッサにより、実装してもよい。
【図面の簡単な説明】
【００４６】
【図１】本実施の形態における画像形成装置の構成図である。
【図２】本実施の形態における色変換及び二値化処理部１２の構成図である。
【図３】画像形成装置での処理の流れを示す図である。
【図４】色変換処理の詳細を示すフローチャートである。
【図５】オフセット計算アルゴリズムを示す図である。
【図６】ＬＵＴのメモリ上での配置を示す図である。
【図７】オフセット値計算法のバリエーションを示す図である。
【図８】従来のＬＵＴのメモリ上での配置を示す図である。
【符号の説明】
【００４７】
１２  色変換及び二値化処理部、  ５０  ＣＰＵチップ、  ５２  ＣＰＵコア、  ５４  キャッシュ、  ５６  メモリコントローラ、  ５８  内部バス、  ６０  外部メモリ
【図１】
2007124230.tif 000003
【図２】
2007124230.tif 000004
【図３】
2007124230.tif 000005
【図４】
2007124230.tif 000006
【図５】
2007124230.tif 000007
【図６】
2007124230.tif 000008
【図７】
2007124230.tif 000009
【図８】
2007124230.tif 000010