(57)【要約】【課題】画像処理装置において、キャッシュメモリに変換テーブルを格納して参照するとともに、画像処理速度の低下を防止する。【解決手段】画像処理装置に、テーブルのサイズが異なる複数の変換テーブルを格納する第１の記憶部と、参照用色変換テーブルの全部または一部を前記第１の記憶部より高速にデータ読み出しが可能な第２の記憶部に格納し、当該第２の記憶部から前記参照用変換テーブルの全部または一部を参照して前記変換処理を行う処理部とを備える。前記処理部は、前記変換処理の速度が遅くなってくるとサイズが小さい変換テーブルを前記参照用変換テーブルとして選択する。よって、より広い階調幅の入力データを第２の記憶部に格納できる。よって、変換処理の速度低下を防止できる。【選択図】    図７
2011223145.tif 000002
【特許請求の範囲】
【請求項１】
入力データに所定データ量の出力データを対応付けた変換テーブルを用いて画像データの変換処理を行う画像処理装置であって、
テーブルのサイズが異なる複数の前記変換テーブルを格納する第１の記憶部と、
前記複数の変換テーブルから選択した参照用色変換テーブルの全部または一部を、前記第１の記憶部より高速にデータ読み出しが可能な所定容量の第２の記憶部に格納し、当該第２の記憶部から前記参照用変換テーブルの全部または一部を参照して前記変換処理を行う処理部とを有し、
前記処理部は、前記変換処理の速度が第１の速度のときには、第１の前記変換テーブルを前記参照用変換テーブルとして選択し、前記変換処理の速度が前記第１の速度より遅い第２の速度のときには、前記第１の変換テーブルよりテーブルのサイズが小さい第２の前記変換テーブルを前記参照用変換テーブルとして選択することを特徴とする画像処理装置。
【請求項２】
請求項１において、
前記処理部は、前記入力データが前記第２の記憶部に格納された前記参照用テーブルの一部に含まれていないときには、前記第１の記憶部に格納された当該参照用テーブルを参照することを特徴とする画像処理装置。
【請求項３】
請求項１または２において、
前記処理部は、前記変換処理の速度が閾値を下回ったときに、前記参照用変換テーブルを前記第１の前記変換テーブルから前記第２の前記変換テーブルに切り替え、前記変換速度が前記閾値以上になったときに、前記参照用変換テーブルを前記第２の変換テーブルから前記第１の前記変換テーブルに切り替えることを特徴とする画像処理装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記画像データの変換処理以外のプログラムを実行し、
前記第２の記憶部は、前記プログラムの実行に関するデータを更に格納することを特徴とする画像処理装置。
【請求項５】
請求項４において、
前記処理部は、前記変換処理の速度が前記第２の速度より遅いときには、前記プログラムの実行に関するデータを前記第２の記憶部から削除することを特徴とする画像処理装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記処理部は、前記変換処理された前記画像データを当該画像データに基づく画像を均一の速度で出力する画像出力装置に供給し、当該画像出力装置による画像出力速度に対する前記変換処理された前記画像データの供給量に基づいて前記変換処理速度を求めることを特徴とする画像処理装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記第１の変換テーブルは、入力データに前記所定データ量の出力データを対応付けた格子点を第１の密度で有し、前記第２の変換テーブルは、前記格子点を前記第１の密度より低い第２の密度で有することを特徴とする画像処理装置。
【請求項８】
入力データに所定データ量の出力データを対応付けた変換テーブルを用いて画像データの変換処理を画像処理装置に実行させる画像処理プログラムであって、
前記画像処理装置の処理部に、    
第１の記憶部に格納されたテーブルのサイズが異なる複数の前記変換テーブルから参照用色変換テーブルを選択する選択手順と、
前記参照用色変換テーブルの全部または一部を前記第１の記憶部より高速にデータ読み出しが可能な第２の記憶部に格納し、当該第２の記憶部から前記参照用変換テーブルの全部または一部を参照して前記変換処理を行い、前記入力データが前記第２の記憶部に格納された当該参照用テーブルの一部に含まれていないときには、前記第１の記憶部に格納される当該参照用テーブルを参照して前記変換処理を行う処理手順とを実行させ、
前記選択手順は、前記変換処理の速度が閾値を下回ったときに、前記参照用変換テーブルを第１の前記変換テーブルから前記第１の変換テーブルよりテーブルのサイズが小さい第２の前記変換テーブルに切り替え、前記変換速度が前記閾値以上になったときに、前記参照用変換テーブルを前記第２の変換テーブルから前記第１の前記変換テーブルに切り替えることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換テーブルを参照して画像データを変換する画像処理装置等に関し、特に、変換テーブルが格納された第１の記憶部と、前記第１の記憶部より高速にデータの読み出しが可能な第２の記憶部とを有し、前記第１の記憶部から前記第２の記憶部に読み出した変換テーブルまたはその一部を参照して前記画像データの変換を行う画像処理装置等に関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの画像処理装置は、ビットマップデータに対し画像処理を行って印刷データを生成し、これをプリンタに供給する。かかる画像処理には、ビットマップデータの色をプリンタの表色系に合わせて変換する色変換処理や、ビットマップデータの色をプリンタの印刷解像度に合わせて二値化（または多値化）するハーフトーン処理が含まれる。画像処理の際には、離散的な入力データに出力データを対応づけた変換テーブルが参照される。たとえば色変換処理の際には、ビットマップデータの画素のＲＧＢ（レッド、グリーン、ブルー）階調値に、ＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）階調値が対応づけられた色変換テーブルが用いられる。また、ハーフトーン処理の際には、ビットマップデータの画素のＣＭＹＫ階調値に、ドットのオン・オフ（またはドットのサイズ）が対応づけられたディザテーブルが用いられる。
【０００３】
近年、ページプリンタなど、プリンタの印刷速度が高速化している。よって、画像処理装置には、プリンタの印刷速度に間に合うように印刷データを供給することが要望される。そうでないと、白紙が出力されたり、印刷が中止されたりといった不都合が生じるからである。よって、印刷データ供給の遅延を防止するために、画像処理を高速化させるための方法が種々提案されている。たとえば、画像処理の際、ＤＲＡＭ（Dynamic Random Access Memory）などのＲＡＭ（Random Access Memory）から読み出した変換テーブルをキャッシュメモリに格納し、これを参照することが行われる。一般に、キャッシュメモリはＳＲＡＭ（Static Random Access Memory）等で構成され、ＤＲＡＭより高速なデータ読み出しが可能であるので、そうすることにより画像処理が高速化される。かかるメモリの使用方法に関する技術が、特許文献１、２に開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−６７２６６号公報
【特許文献２】特開２００２−１４９１５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方、近年では、プリンタによる印刷画像の品質も向上しており、印刷データの階調値も従来より精細化している。よって、変換テーブルにおいては、離散的な入力データの個数が増大しており、変換テーブルのサイズ（データ量）が増大している。一方、キャッシュメモリの容量は、製造コスト上、制約されている。さらに、他のプログラムがタイムシェアリングで実行されるような場合には、その実行に必要なデータがキャッシュメモリに格納されるので、変換テーブル用の領域が圧迫される。すると、変換テーブル全体をキャッシュメモリに格納することが困難な場合がある。
【０００６】
かかる場合には、変換テーブルの一部だけがキャッシュメモリに格納される。このとき、変換しようとするデータに対応する入力データがキャッシュメモリに格納されていれば
、その入力データに対応する出力データを読み出すことで良好な画像処理速度を維持できる。しかし、キャッシュメモリに格納されていない入力データを参照する場合には、その入力データを含む領域をＲＡＭから読み出す必要がある。そして、ＲＡＭからの読み出しを行う頻度が多くなると、その分、テーブル参照に要する時間が長くなり、画像処理速度が低下する。すると、プリンタの印刷速度に間に合うように印刷データを供給できなくなるおそれがある。
【０００７】
そこで、本発明の目的は、キャッシュメモリに変換テーブルを格納して参照するとともに、画像処理速度の低下を防止できる画像処理装置等を提供することにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明の第１の側面によれば、入力データに所定データ量の出力データを対応付けた変換テーブルを用いて画像データの変換処理を行う画像処理装置に、テーブルのサイズが異なる複数の前記変換テーブルを格納する第１の記憶部と、前記複数の変換テーブルから選択した参照用色変換テーブルの全部または一部を前記第１の記憶部より高速にデータ読み出しが可能な、所定容量の第２の記憶部に格納し、当該第２の記憶部から前記参照用変換テーブルの全部または一部を参照して前記変換処理を行う処理部とを備え、前記処理部は、前記変換処理の速度が第１の速度のときには、第１の前記変換テーブルを前記参照用変換テーブルとして選択し、前記変換処理の速度が前記第１の速度より遅い第２の速度のときには、前記第１の変換テーブルよりテーブルのサイズが小さい第２の前記変換テーブルを前記参照用変換テーブルとして選択する。
【０００９】
上記の側面によれば、変換処理の速度が比較的速いときには、テーブルのサイズが大きい第１の変換テーブルを選択することで色変換処理された画像の良好な品質を保ち、その一方で、変換処理の速度が比較的遅いときには、テーブルのサイズが小さい第２の変換テーブルを選択するので、第２の記憶部の容量が制約されていても、より広い階調幅の入力データを第２の記憶部に格納できる。よって、入力データが当該参照用テーブルの一部に含まれていないときに、前記第１の記憶部に格納される当該参照用テーブルを参照する頻度を減少させることができ、変換処理の速度低下を防止できる。さらに、前記画像処理装置が前記画像データの変換処理以外のプログラムを実行し、前記プログラムの実行に関するデータを第２の記憶部に格納することによってさらに第２の記憶部の容量が制約されたとしても、テーブルのサイズが小さい第２の変換テーブルを参照用変換テーブルとして選択することにより、より広い階調幅の入力データを第２の記憶部に格納できる。
【００１０】
上記側面の好ましい態様によれば、前記処理部は、前記変換処理の速度が閾値を下回ったときに、前記参照用変換テーブルを前記第１の前記変換テーブルから前記第２の前記変換テーブルに切り替え、前記変換速度が前記閾値以上になったときに、前記参照用変換テーブルを前記第２の変換テーブルから前記第１の前記変換テーブルに切り替える。よって、テーブルのサイズが小さい第２の変換テーブルを選択することにより変換処理の速度低下を回避できる一方で、変換処理の速度低下が生じない場合には、テーブルのサイズが大きい第１の変換テーブルに戻すことで、変換精度が低下したままになることや、変換精度を補償するための処理負荷の増大を回避でき、変換処理された画像の品質を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態における画像処理装置の構成を説明する図である。
【図２】ＣＰＵ６が実行する各種プログラムについて説明する図である。
【図３】画像処理手順を示したフローチャート図である。
【図４】色変換テーブルＬＵＴについて説明する図である。
【図５】色変換処理が行われるときの、ＲＡＭ１２とキャッシュメモリ７の使用状況を模式的に示す図である。
【図６】参照用色変換テーブルＬＵＴｒを参照する手順を説明するフローチャート図である。
【図７】参照用変換テーブルＬＵＴｒを選択する手順を説明するフローチャート図である。
【図８】図７に示した手順の変形例を説明するフローチャート図である。
【発明を実施するための形態】
【００１２】
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１３】
図１は、本実施形態における画像処理装置の構成を説明する図である。図１は、パーソナルコンピュータにより構成されるホストコンピュータ２が、プリンタ４に印刷データを供給する構成を示す。ホストコンピュータ２が、「画像処理装置」に対応し、プリンタ４が「画像出力装置」に対応する。
【００１４】
ホストコンピュータ２では、ＣＰＵ（Central Processing Unit）６、ＲＯＭ（Read Only Memory）８、ハードディスクドライブ１０、ＲＡＭ１２、ビデオ回路１４、インターフェース１６が、データバス１７を介して接続される。ＣＰＵ６は、ＲＯＭ８に格納された起動プログラムや、ハードディスクドライブ１０のハードディスクに格納された各種プログラムに従って演算処理を行う。各種プログラムには、オペレーティングシステムＯＳのほか、画像データ生成のためのアプリケーションプログラムＡＰＰ、画像データに画像処理を行って印刷データを生成するためのプリンタドライバプログラムＰＤＲ、及び画像を表示出力するためのビデオドライバプログラムＶＤＲが含まれる。本実施形態では、ＣＰＵ６が「処理部」に、プリンタドライバプログラムＰＤＲが「画像処理プログラム」に対応する。なお、ここでは、プリンタドライバＰＤＲは、オペレーティングシステムＯＳのプリントモジュールを含む。
【００１５】
ＣＰＵ６は、各種プログラムを実行するときに、プログラムモジュールや演算用データを一時的にＲＡＭ１２格納する。ＲＡＭ１２は、たとえば数メガバイト〜数ギガバイトの容量を有するＤＲＡＭにより構成される。また、ＣＰＵ６は、特に頻繁に使用するプログラムモジュールや演算用データを、キャッシュメモリ７に格納する。キャッシュメモリ７は、たとえば数キロバイト〜数メガバイトの容量を有するＳＲＡＭにより構成される。そして、キャッシュメモリ７は、ＣＰＵ６内に備えられ、ＣＰＵ６内のバスによりＣＰＵ６のプロセッサと接続される。よって、プロセッサからは、ＲＡＭ１２のデータを読み出す場合より高速にキャッシュメモリ７のデータを読み出すことができる。ここで、ＲＡＭ１２が「第１の記憶部」に、キャッシュメモリ７が「第２の記憶部」に対応する。
【００１６】
ＣＰＵ６は、各種プログラムの実行に際し、ビデオドライバプログラムＶＤＲに従って、表示用画像の描画をビデオ回路１４に指示する。ビデオ回路１４は、指示された描画を実行し、表示用の画像に対応する画像信号を表示装置１８に出力する。表示装置１８は、たとえば、ＬＣＤ（Liquid Crystal Display）やＣＲＴ（Cathode Ray Tube）で構成され、画像信号に応じた画像を表示する。また、ＣＰＵ６は、インターフェース１６を介して、操作入力部２０からの入力信号を受け取る。操作入力部２０は、たとえばキーボードやマウスで構成され、ユーザの操作入力に対応する入力信号を、インターフェース１６に送る。
【００１７】
またＣＰＵ６は、インターフェース１６を介して、外部記憶装置２２から各種プログラムやデータを受け取る。外部記憶装置２２は、たとえば、ＣＤ―ＲＯＭ（Compact Disk R
OM）ドライブユニット、ＭＯ（Magneto Optic）ドライブユニット、ＦＤ（Floppy（登録商標）Disk）ドライブユニットなどにより構成され、各記憶媒体からプログラムやデータを読み取ってインターフェース１６に供給する。また、たとえば外部記憶装置２２は、ＵＳＢ（Universal Serial Bus）インターフェースにより構成される。ＵＳＢインターフェースは、着脱されるＵＳＢメモリなどからプログラムやデータを読み取ってインターフェース１６に供給する。
【００１８】
上記の構成において、ＣＰＵ６は、アプリケーションプログラムＡＰＰを実行して生成した画像データ、またはハードディスクドライブ１０のハードディスクや外部記憶装置２２から読み取った画像データを一旦ＲＡＭ１２に格納する。そして、ＣＰＵ６は、ユーザからの指示入力に応答して画像データに対し画像処理を行い、印刷データを生成する。画像処理は、プリンタドライバプログラムＰＤＲを実行することにより行われる。生成された印刷データはＲＡＭ１２に格納される。そして、印刷データは、ＲＡＭ１２からインターフェース１６を介してプリンタ４に出力される。
【００１９】
プリンタ４では、ＣＰＵ３０がＲＯＭ３２やＥＥＰＲＯＭ（Electronically Erasable and Programmable ROM）３４に格納された制御プログラムに従って、印刷動作を制御するための演算処理を実行する。ＣＰＵ３０は、演算処理用のデータを一時的にＲＡＭ３６に格納する。また、ＣＰＵ３０は、ホストコンピュータ２から供給される印刷データをインターフェース回路４０を介し受け取り、ＲＡＭ３６に格納する。ＲＡＭ３６は、たとえば、１〜数ページ分の印刷データを格納するページバッファとして機能する。
【００２０】
ＣＰＵ３０は、ＲＡＭ３６に格納した印刷データを、インターフェース回路４０を介して印刷エンジン３８に出力する。印刷エンジン３８は、副走査方向に記録紙を搬送する機構と、副走査方向と直交する主走査方向に動作するプリントヘッドと、その駆動・制御回路とを有する。プリントヘッドは、搬送される記録紙や感光体を走査して、インクやトナーなどの記録材により出力画像を形成し、印刷を実行する。かかる印刷動作は、たとえば、複数ページの印刷ジョブを実行するときに、Ａ４用紙１ページにつき１〜数秒といった均一の速度で実行される。
【００２１】
図２は、ＣＰＵ６が実行する各種プログラムについて説明する図である。ＣＰＵ６は、アプリケーションプログラムＡＰＰ、ビデオドライバプログラムＶＤＲ、及びプリンタドライバプログラムＰＤＲを実行する。アプリケーションプログラムＡＰＰは、たとえば描画・文書作成プログラムである。ＣＰＵ６は、アプリケーションプログラムＡＰＰに従い、ユーザによる操作入力に応答して画像データＧＤを生成する。画像データＧＤは、たとえばＲＧＢビットマップデータである。このとき、ＣＰＵ６は、ビデオドライバプログラムＶＤＲ従ってビデオ回路１４に画像表示を指示する。
【００２２】
プリンタドライバＰＤＲは、画像データＧＤに対し画像処理を行って、印刷データＰＤを生成するためのプログラムである。ＣＰＵ６は、プリンタドライバＰＤＲの各プログラムモジュールを実行することで、画像処理を行う。ここで、図３を参照しつつ、画像処理手順について説明する。
【００２３】
図３は、画像処理手順を示したフローチャート図である。図３の手順は、たとえばアプリケーションプログラムＡＰＰから印刷実行指示が送られたときに実行される。印刷実行指示は、ユーザが操作入力部２０から入力する。
【００２４】
まず、解像度変換モジュールＰ２が、アプリケーションプログラムＡＰＰからＲＧＢビットマップデータを受け取る（Ｓ２）。そして、解像度変換モジュールＰ２は、プリンタ４の印刷解像度に合わせて、ＲＧＢビットマップデータの画素数を増減する解像度変換処
理を行う（Ｓ４）。次に、色変換モジュールＰ４は、ＲＧＢビットマップデータの画素の色を、プリンタ４の表色系に合わせて変換する色変換処理を行う（Ｓ６）。たとえば、各画素のＲＧＢ階調値を、ＣＭＹＫ階調値に変換する。このとき、色変換テーブルＬＵＴが参照される。色変換テーブルでは、ＲＧＢ階調値にＣＭＹＫ階調値が対応づけられている。あるいは、色変換モジュールＰ２は、基準色空間におけるＣＭＹＫ階調値をプリンタ４の表色系におけるＣＭＹＫ階調値に変換することも可能である。その場合、ＲＧＢ階調値に基準色空間のＣＭＹＫ階調値が対応付けられた色変換テーブルＬＵＴと、基準色空間のＣＭＹＫ階調値にプリンタ４の表色系におけるＣＭＹＫ階調値が対応付けられた色変換テーブルＬＵＴとが参照される。
【００２５】
次に、ハーフトーンモジュールＰ６は、ＣＭＹＫビットマップデータを、プリンタでのドット記録状態データに変換するハーフトーン処理を行う（Ｓ８）。ドット記録状態データは、ＣＭＹＫビットマップデータの各画素について、ドットのオン・オフやドットのサイズを規定するデータである。このとき、ディザテーブルＤＴが参照される。ディザテーブルＤＴでは、ＣＭＹＫビットマップデータの画素毎のＣＭＹＫ階調値（またはＣＭＹＫ階調値に基づく一定面積におけるドットの記録率）に対し、ドットのオン・オフまたはサイズを決定するための閾値が設定されている。
【００２６】
次に、印刷データ生成モジュールＰ８が、ドット記録状態データから印刷データを生成する（Ｓ１０）。印刷データは、主走査時のドットの記録状態を示すラスタデータと、副走査方向の送り量とを含む。そして、印刷データ生成モジュールＰ８は、生成した印刷データＰＤをＲＡＭ１２のバッファ領域に出力する（Ｓ１２）。印刷データＰＤは、ＲＡＭ１２からプリンタ４に転送される。
【００２７】
図４は、色変換テーブルＬＵＴについて説明する図である。本実施形態では、色変換テーブルＬＵＴが、「変換テーブル」に対応する。図４（Ａ）は、ＲＧＢ階調値をＣＭＹＫ階調値に変換する色変換テーブルＬＵＴを模式的に示す。色変換テーブルＬＵＴは、Ｒ、Ｇ、Ｂの座標空間に、離散的な入力データに対して設けられた格子点ＧＲＤ（図中、黒丸で示す）を有する。ここでは、Ｒ、Ｇ、Ｂは各色８ビット（１バイト）で表現され、０〜２５５の２５６階調幅を有する。そして、格子点ＧＲＤは、入力データの２５６階調幅に対し、一定の間隔、たとえば１階調ごとに設けられる。各格子点ＧＲＤでは、入力データであるＲＧＢ階調値（ｒ，ｇ，ｂ）に、出力データであるＣＭＹＫ階調値（ｃ，ｍ，ｙ，ｋ）が対応付けられている。ＣＰＵ６は、色変換モジュールＰ４を実行する際、ＲＧＢビットマップデータの画素ごとに、ＲＧＢ階調値に対応する格子点ＧＲＤを参照し、対応するＣＭＹＫ階調値に変換する。
【００２８】
ここで、Ｃ、Ｍ、Ｙ、Ｋも各色８ビット（１バイト）で表現され、０〜２５５の２５６階調幅を有するものとする。すると、色変換テーブルＬＵＴでは、Ｒ、Ｇ、Ｂ各色２５６個の格子点ＧＲＤが設けられるところ、各格子点ＧＲＤではＣ、Ｍ、Ｙ、Ｋ各色１バイト、合計４バイトの出力データが対応付けられる。よって、色変換テーブルＬＵＴのサイズ（データ量）は、２５６３×４バイト＝６７，１０８キロバイトである。
【００２９】
次に、格子点ＧＲＤの密度が異なる色変換テーブルのサイズについて、図４（Ｂ）を用いて説明する。ここでは、基準色空間におけるＣＭＹＫ階調値をプリンタ４の表色系におけるＣＭＹＫ階調値に変換する場合を例とする。入力データのＣ、Ｍ、Ｙ、Ｋ各色は、８ビット（１バイト）で表現され、０〜２５５の２５６階調幅を有する。一方、出力データのＣ、Ｍ，Ｙ，Ｋ各色は、８ビット（１バイト）で表現され、２５６階調幅を有する。すなわち、ここでは、４色の階調値からなる入力データを４色の階調値からなる出力データに変換する、４次元の色変換テーブルを例とする。
【００３０】
図４（Ｂ）には、４つの色変換テーブルについて、格子点の個数と、テーブルのサイズとが示される。すなわち、入力データの各色について、２５６階調幅において８階調ごとに３２個の格子点ＧＲＤを有する色変換テーブルＬＵＴ１と、１０階調ごとに２４個の格子点ＧＲＤを有する色変換テーブルＬＵＴ２と、１６階調ごとに１６個の格子点ＧＲＤを有する色変換テーブルＬＵＴ３と、３２階調ごとに８個の格子点ＧＲＤを有する色変換テーブルＬＵＴ４それぞれのサイズが示される。
【００３１】
色変換テーブルＬＵＴ１〜４では、各格子点ＧＲＤごとに、ＣＭＹＫ各色８ビット（１バイト）のデータ量を有する。よって、色変換テーブルＬＵＴ１のサイズは、３２４×４バイト＝４０９６ＫＢ（キロバイト）である。同様に、色変換テーブルＬＵＴ２のサイズは、２４４×４バイト＝１２９６キロバイトである。また同様に、変換テーブルＬＵＴ３のサイズは、１６４×４バイト＝２５６キロバイトである。さらに同様に、色変換テーブルＬＵＴ４のサイズは、８４×４バイト＝１６キロバイトである。よって、色変換テーブルＬＵＴ１、色変換テーブルＬＵＴ２、色変換テーブルＬＵＴ３、色変換テーブルＬＵＴ４の順で、入力データの階調幅における格子点の密度が減少し（つまり、離散的な入力データの個数が減少し）、これに伴ってテーブルのサイズも減少する。なお、ここでは、入出力データがいずれも各色８ビットによる２５６階調幅を有する場合を例として示したが、０〜１２７の１２８階調幅、０〜６３の６４階調幅、あるいは０〜３１の３２階調幅など、各色のデータ量（ビット数）に応じて種々の階調幅が可能である。あるいは、色変換テーブルＬＵＴにおいて入力データが設けられる階調の間隔、つまり格子点ＧＲＤの間隔は、単一の色変換テーブルＬＵＴ内で一定でなくてもよい。たとえば、低階調部分では間隔が小さく（大きく）、高階調部分では間隔が大きく（小さく）することなどが可能である。
【００３２】
本実施形態では、格子点の密度とサイズが異なる複数の色変換テーブルＬＵＴ１〜４が、プリンタドライバプログラムＰＤＲの一部としてハードディスクドライブ１０のハードディスクに格納される。そして、ＣＰＵ６がプリンタドライバプログラムＰＤＲを実行するときに、色変換モジュールＰ２とともに色変換テーブルＬＵＴ１〜４をＲＡＭ１２に格納する。さらに、ＣＰＵ６は、色変換モジュールＰ２を実行するときに、色変換テーブルＬＵＴ１〜４のなかからいずれかを参照用色変換テーブルとして選択する。そして、ＣＰＵ６は、選択した参照用色変換テーブルを、オペレーティングシステムＯＳに従って、ＲＡＭ１２から読み出してキャッシュメモリ７に格納する。そして、ＣＰＵ６は、参照用色変換テーブルをキャッシュメモリ７から参照し、色変換処理を行う。
【００３３】
図５は、色変換処理が行われるときの、ＲＡＭ１２とキャッシュメモリ７の使用状況を模式的に示す図である。図５（Ａ）に示すように、ＲＡＭ１２には、色変換テーブルＬＵＴ１〜４と、色変換処理が行われるページごとのビットマップデータＢＭＰ＿ｎ（ｎはページ数１、２、３、・・・）と、生成された印刷データＰＤ＿ｎ（ｎページ数１、２、３、・・・）とが格納される。
【００３４】
一方、キャッシュメモリ７には、プログラム用領域７ａと、色変換テーブル用領域７ｂと、入出力データ用領域７ｃが確保される。ＣＰＵ６は、オペレーティングシステムＯＳを実行することにより、かかる領域７ａ、７ｂ、７ｃを確保する。そして、ＣＰＵ６は、プログラム用領域７ａに、たとえばアプリケーションプログラムＡＰＰのプログラムモジュールや、プリンタドライバＰＤＲの色変換モジュールＰ２などを格納する。そして、色変換テーブル用領域７ｂに、色変換テーブルＬＵＴ１〜４から選択した参照用色変換テーブルＬＵＴｒを格納する。また、入出力データ用領域７ｃに、参照用色変換テーブルＬＵＴｒの入力データ及び出力データを格納する。
【００３５】
キャッシュメモリ７にはプログラム用領域７ａや入出力データ用領域７ｃが確保される
ので、色変換テーブル用領域７ｂがその分制約される。ここで、図５（Ｂ）に、色変換テーブルＬＵＴ１〜４と色変換テーブル用領域７ｂとの関係を模式的に示す。図５（Ｂ）では、色変換テーブルＬＵＴ１〜４のサイズを長方形の面積により、色変換テーブル用領域７ｂの大きさを、破線で囲んだ領域の面積により表す。ここでは、図４（Ｂ）で示した色変換テーブルＬＵＴ１〜４のサイズに対し、色変換テーブル用領域７ｂは、たとえば、１２８キロバイトとする。ただし、色変換テーブルＬＵＴ１〜４のサイズと色変換テーブル用領域７ｂとの関係は、ここに示すものに限られない。
【００３６】
まず、色変換テーブルＬＵＴ１が参照用色変換テーブルとしてＬＵＴｒ選択された場合、色変換テーブルＬＵＴ１のサイズは色変換テーブル用領域７ｂより大きいので、色変換テーブルＬＵＴ１の一部分、つまり色変換テーブル用領域７ｂと重複する部分だけが色変換テーブル用領域７ｂに格納される。
【００３７】
ここで、ＣＰＵ６による参照用色変換テーブルＬＵＴｒを参照する手順を図６に示す。ＣＰＵは、キャッシュメモリ７に格納された参照用色変換テーブルＬＵＴｒを参照する（Ｓ２２）。そして、変換しようとするＲＧＢ階調値に対応する格子点ＧＲＤ（離散的な入力データ）が格納されていれていれば（Ｓ２４のＹＥＳ）、つまりここでは、色変換テーブルＬＵＴ１の色変換テーブル用領域７ｂと重複する部分に参照すべき格子点ＧＲＤが含まれていれば、ＣＰＵ６はその格子点ＧＲＤを参照して対応するＣＭＹＫ階調値を出力する（Ｓ２６）。そうすることで色変換処理を行うことができる。しかし、変換しようとするＲＧＢ階調値に対応する格子点ＧＲＤが含まれていなければ（Ｓ２４のＮＯ）、ＣＰＵ６は、ＲＡＭ１２に格納された色変換テーブルＬＵＴ１を参照し（Ｓ２８）、変換しようとするＲＧＢ階調値に対応する格子点ＧＲＤを読み出して、対応するＣＭＹＫ階調値を出力する（Ｓ３０）。なお、これらの手順は通常オペレーティングシステムやハードウェアに組み込まれた手順として実行されるので、プログラマは意識する必要がない。
【００３８】
このように、色変換テーブル用領域７ｂに参照すべき格子点ＧＲＤが含まれていない場合には、ＲＡＭ１２からのデータ読み出しを行う必要がある。しかしながら、ＲＡＭ１２からのデータ読み出しはキャッシュメモリ７からのデータ読み出しより時間がかかるので、その分画像処理時間が増大する。よって、印刷データの供給が遅延するおそれがある。そこで、本実施形態では、印刷データの供給が遅延しそうなときには、格子点密度が低くサイズが小さい色変換テーブルＬＵＴを参照用色変換テーブルＬＵＴｒとして選択し、その全体または一部をキャッシュメモリ７に格納する。
【００３９】
たとえば、図５（Ｂ）に戻ると、色変換テーブルＬＵＴ２が参照用色変換テーブルＬＵＴｒとして選択された場合、色変換テーブル用領域７ｂに格納される部分の割合が色変換テーブルＬＵＴ１より大きい。よって、より広い階調幅の入力データに対応する格子点が色変換テーブル用領域７ｂに格納される。さらに色変換テーブルＬＵＴ３は、色変換テーブル用領域７ｂに格納される部分の割合が色変換テーブルＬＵＴ２より大きい。よって、さらに広い階調幅の入力データに対応する格子点が色変換テーブル用領域７ｂに格納される。そして、色変換テーブルＬＵＴ４は、その全体が色変換テーブル用領域７ｂに格納される。よって、すべての入力データに対応する格子点が色変換テーブル用領域７ｂに格納される。よって、ＲＡＭ１２を参照する必要がなくなる。このように、色変換テーブルＬＵＴ１、ＬＵＴ２、ＬＵＴ３、ＬＵＴ４の順で格子点ＧＲＤの密度が低くなり、したがって対応する入力データの範囲が大きくなるので、ＲＡＭ１２を参照する必要性が減少する。よって、画像処理時間が増大することを回避でき、その結果、印刷データの供給遅延を防止できる。
【００４０】
図７は、参照用変換テーブルＬＵＴｒを選択する手順を説明するフローチャート図である。図３で示した色変換処理（手順Ｓ６）の、サブルーチンに対応する。
【００４１】
ＣＰＵ６は、色変換テーブルＬＵＴ１を参照用色変換テーブルＬＵＴｒとして選択してキャッシュメモリ７に格納し、色変換処理を開始する（Ｓ１０２）。そして、たとえば任意のタイマ割込みタイミングで、変換処理速度、つまり印刷データの生成速度がプリンタ４の印刷速度に間に合っているかを確認する（Ｓ１０４）。ここで、ＲＡＭ１２のバッファ領域に格納する印刷データＰＤ＿ｎの量が閾値以上のときには印刷速度に間に合っていると判断し、閾値より減少したときには印刷速度に間に合っていないと判断する。かかる判断の閾値として、プリンタ４の印刷速度に対し印刷データＰＤ＿ｎの供給が遅延する蓋然性が高くなるような任意な値を、実験等により予め設定することができる。あるいは、ＣＰＵ６が、１ページ分の色変換処理の所要時間、あるいは、ＣＭＹＫビットマップデータや印刷データを生成する所要時間を計測し、予め定めた閾値と比較することにより判断してもよい。さらに、プリンタ４のＣＰＵ３０から、ＲＡＭ３６内の印刷データＰＤ＿ｎの残量を取得し、予め定めた閾値と比較することにより、間に合っているかどうかを判断してもよい。
【００４２】
また、ここにおいて、変換処理速度はＲＧＢビットマップデータのデータ量には必ずしも依存しない。たとえば、データ量が比較的大きいＲＧＢビットマップデータであっても、画素の階調値がある程度均一であって、その階調値に対応する格子点ＧＲＤがキャッシュメモリ７に格納されていれば、変換処理速度はある程度の水準に保たれる。一方、データ量が比較的小さいＲＧＢビットマップデータであっても、画素の階調値がばらついていれば、これに対応する格子点ＧＲＤがキャッシュメモリ７に格納されていない場合がある。すると、ＲＡＭ１２から読み出す必要があるので、変換処理速度が低下する。
【００４３】
変換処理速度がプリンタ４の印刷速度に間に合っている場合は（Ｓ１０４のＹＥＳ）そのまま色変換処理を続行する。一方、間に合っていない場合（Ｓ１０４のＮＯ）、１段階小さい色変換テーブルに参照用色変換テーブルＬＵＴｒを切り替える（Ｓ１０６）。つまり格子点ＧＲＤの密度が低く、サイズが小さい色変換テーブルＬＵＴ２を参照用色変換テーブルＬＵＴｒとして選択してキャッシュメモリ７に格納する。そして、ＣＰＵ６は、色変換処理を続行する。
【００４４】
ＣＰＵ６は、さらに任意のタイマ割込みタイミングで、ＲＡＭ１２のバッファ領域に印刷データＰＤ＿ｎが一杯かどうかを確認する（Ｓ１０８）。ここで、一杯でないときには（Ｓ１０８のＮＯ）、そのまま処理を続行する。一方、一杯であれば（Ｓ１０８のＹＥＳ）、印刷データの供給はプリンタ４の印刷速度に間に合っているので、１段階大きい色変換テーブルに参照用色変換テーブルＬＵＴｒを切り替える（Ｓ１１０）。つまり、格子点密度とサイズが１段階大きい色変換テーブルＬＵＴ１を参照用色変換テーブルＬＵＴｒとしてキャッシュメモリ７に格納する。そして、ＣＰＵ６は色変換処理を続行し、最終ページの印刷データＰＤ＿ｎの処理が終了するまで（Ｓ１１２のＮＯ）、手順Ｓ１０４から手順Ｓ１１０を繰り返す。
【００４５】
次の処理サイクルで手順Ｓ１０４から手順Ｓ１１０を繰り返すときに、色変換処理速度が間に合っていなければ（Ｓ１０４のＮＯ）、さらに小さい色変換テーブルＬＵＴ３を参照用色変換テーブルＬＵＴｒとして選択してキャッシュメモリ７に格納し（Ｓ１０６）、色変換処理を続行する。また、さらに次の処理サイクルで、色変換処理速度が間に合っていなければ（Ｓ１０４のＮＯ）、さらに一段小さい色変換テーブルＬＵＴ４を参照用色変換テーブルＬＵＴｒとして選択してキャッシュメモリ７に格納し（Ｓ１０６）、色変換処理を続行する。そして、最終ページの印刷データＰＤ＿ｎの処理が終了すると（Ｓ１１２のＹＥＳ）、本処理手順を終了する。
【００４６】
上記の手順によれば、印刷データの生成速度がプリンタ４の印刷速度に間に合っていな
いときには、キャッシュメモリ７に格納する参照用色変換テーブルＬＵＴｒをサイズが小さい色変換テーブルＬＵＴに切り替える。よって、より広範囲の入力データについてＲＡＭ１２を参照することなく色変換を行うことができ、印刷データの供給が遅延することを防止できる。ここで、参照用色変換テーブルＬＵＴｒをサイズが小さい色変換テーブルＬＵＴに切り替えると、格子点ＧＲＤの密度が低下することにより変換精度が低下し、印刷画像が粗くなる。しかし、参照用テーブルＬＵＴｒの切り替えを段階的に行うことで、変換精度の低下を最小限とすることができ、印刷画像が急激に粗くなることを防止できる。特に、１つの印刷ジョブで複数ページの印刷が行われる場合に、たとえば、連続する文章画像の間に、より多くの処理時間を要する写真画像が挟まっている場合であっても、印刷品質が急変することを防止できる。
【００４７】
あるいは、色変換モジュールＰ２において、入力値や出力値の補間計算を、印刷画像を補償することが可能である。その場合、補間計算を行う処理負荷と処理時間が発生するが、参照用テーブルＬＵＴｒの切り替えを段階的に行うことで、補間計算のための処理負荷や処理時間が急増することを回避できる。
【００４８】
あるいは、出力側にバッファメモリを設けておき（たとえば、ホストコンピュータのＲＡＭ１２やプリンタ４のＲＡＭ３６など）、複数ページの画像処理済みのデータを格納することが可能である。そうすることで、１つの印刷ジョブ内に他より処理時間を要するページが混在し、ページごとの処理内容が変動したとしても、参照用色変換テーブルＬＵＴｒの切替えを行うことなく、画像処理を継続できる。よって、印刷品質が変化することを防止できる。なお、この場合、バッファメモリに格納された画像処理済みのデータのページ数に応じて、具体的には、予め設定したページ数の閾値を下回ったときに、参照用色変換テーブルＬＵＴｒを切り替えてもよい。
【００４９】
一方で、プリンタの印刷速度に印刷データの供給が間に合っているときには、参照用色変換テーブルＬＵＴｒをサイズが大きい色変換テーブルＬＵＴに切り替える。よって、かかる切り替えにより、変換精度が一方的に低下したままの状態になることがない。あるいは、変換精度の低下を補間処理で補償する場合であっても、補間処理のための負荷や時間を減少することができる。その結果、印刷データの供給速度に応じて最適な変換精度を保つことができる。
【００５０】
図８は、図７に示した手順の変形例を説明するフローチャート図である。図８に示す手順は、好ましくは、図７の手順Ｓ１０６と手順Ｓ１０８の間に挿入される。この手順は、キャッシュメモリ７のプログラム用領域７ａを解放することで色変換処理を加速するための手順である。すなわち、ＣＰＵ６は、図７の手順Ｓ１０６で参照用色変換テーブルＬＵＴｒを１段階小さくしたときに、その結果色変換処理速度が間に合っているかを再度確認する（Ｓ１０７１）。確認の方法は、手順Ｓ１０４と同様である。間に合っていれば（Ｓ１０７１のＹＥＳ）、図７の手順Ｓ１０８に進む。一方、間に合っていなければ（Ｓ１０７１のＮＯ）、プリンタドライバプログラムＰＤＲのほかに中断可能なプログラムが動作しているかを確認する（Ｓ１０７２）。中断可能なプログラムが動作していなければ（Ｓ１０７２のＮＯ）、図７の手順Ｓ１０８に進む。一方、中断可能なプログラムが動作していれば（Ｓ１０７２のＹＥＳ）、そのプログラムを中断する（Ｓ１０７３）。かかる動作は、オペレーティングシステムＯＳのプリントモジュールの機能として実行される。
【００５１】
これにより、中断されたプログラムのプログラムモジュールや演算用データがプログラム用領域７ａから削除され、プログラム用領域７ａにおける色変換処理のための演算用データを保持する領域を拡大することができる。よって、ＲＡＭ１２にデータを読み書きする頻度を減らすことができ、色変換処理の速度を加速できる。このように、図７で示した手順に加え、図８の手順を実行することにより、さらに色変換処理の速度加速でき、プリ
ンタ４の印刷速度に間に合うように、印刷データを供給できる。
【００５２】
上記手順のうち、図２の手順Ｓ１０４，図８の手順Ｓ１０７１で変換処理速度が間に合っているかについて判断を行った。ここで、判断に用いる閾値を、ユーザが設定可能にすることも可能である。たとえば、ユーザが、印刷データの供給速度が低下したとしても画質を重視したい場合には、閾値を下げておくことができる。これにより、変換処理速度がある程度低下しても、参照用色変換テーブルＬＵＴｒが、これよりサイズが小さい色変換テーブルＬＵＴに切り替わらないようにできる。また、上記の手順を規定したプリンタドライバＰＤＲによれば、ＲＡＭ１２に蓄積される印刷データＰＤ＿ｎの量により参照用色変換テーブルＬＵＴｒを切り替えるので、ＣＰＵ６の処理性能に依存することなく、異なる環境であってもプリンタ４の印刷速度に間に合うように印刷データＰＤ＿ｎを供給できる。
【００５３】
上述においては色変換テーブルＬＵＴを、変換テーブルの例として説明した。しかし、ディザテーブルＤＴが変換テーブルであってもよい。すなわち、本実施形態は、ディザテーブルＤＴを用いて行うハーフトーン処理にも適用できる。ディザテーブルＤＴは、ＣＭＹＫビットマップデータの各画素の階調値（またはドットの記録率）に対しドットのオン・オフを決定するための閾値を備える。ここで、入力データの階調幅は各色２５６階調であるとして、ディザテーブルＤＴは、２５６階調幅に対し所定の階調ずつ設定された閾値を有する。そして、各格子点において入力データの階調値に出力データ（つまり、オン・オフの二値または大・中・小などのドットサイズ）が対応づけられる。ここで、閾値の数が異なるとともに、閾値の数に応じてサイズが異なる複数のディザテーブルＤＴを設けることにより、本実施形態が適用できる。
【００５４】
また、上述においては、ＣＰＵ６の内部にキャッシュメモリ７が設けられる構成について説明した。しかし、キャッシュメモリ７は、ＲＡＭ１２よりＣＰＵ６からのデータ読み出し速度がＲＭＡ１２より高速な記憶媒体であれば、ＣＰＵ６の外部に設けられても良い。さらに、上述においては、プリンタ４の外部にホストコンピュータ２が設けられ、ホストコンピュータ２が画像処理装置に対応する構成について説明したが、プリンタ４の内部に画像処理装置が設けられる構成であってもよい。
【００５５】
上述したように、本実施形態によれば、キャッシュメモリに変換テーブルを格納して参照する画像処理装置において、画像処理速度の低下を防止することが可能となる。
【符号の説明】
【００５６】
２：ホストコンピュータ、４：プリンタ、６：ＣＰＵ、７：キャッシュメモリ、１２：ＲＡＭ、ＰＤＲ：プリンタドライバプログラム、Ｐ２：色変換モジュール、ＬＵＴ：色変換テーブル
【図１】
2011223145.tif 000003
【図２】
2011223145.tif 000004
【図３】
2011223145.tif 000005
【図４】
2011223145.tif 000006
【図５】
2011223145.tif 000007
【図６】
2011223145.tif 000008
【図７】
2011223145.tif 000009
【図８】
2011223145.tif 000010