(57)【要約】【課題】プログラムが格納されたＲＯＭなどの記憶媒体を再作成する無駄を省きユーザの個別対応を行い得るとともに、利便性の向上した画像形成装置、及び記憶媒体を提供する。【解決手段】プログラムＲＯＭ２３の各モジュールが格納された本体ブロックとは異なる書き換え可能な領域に色変換処理やキャリブレーション処理、スクリーン処理で使用する各テーブルを格納する。さらにかかる領域には、各テーブル選択に必要なパラメータ、紙種、スクリーン種、色合わせ種の各最大値が格納される。ユーザにより最大値より大きいのパラメータが設定されたときエラー表示やデフォルトのテーブルを選択するなどエラー処理を行う。最大値の範囲内にあればパラメータに対応したテーブルを選択する。また書き換え可能な領域にはテーブル自体が格納された領域の基準アドレスからの相対アドレスが格納され他のシステムに移植しても相対アドレスによりテーブル自体にアクセスすることができる。【選択図】図１９
2005204174.tif 000002
【特許請求の範囲】
【請求項１】
モジュール化されたプログラムが格納され、当該プログラムに基づいて画像を形成する画像形成装置において、
前記プログラムのうち色変換モジュールを実行するときに必要なテーブルデータが格納された書き換え可能な記憶手段と、
前記テーブルデータを用いて色変換モジュールを実行するときは前記記憶手段から前記テーブルデータを読み出して前記色変換モジュールを実行する制御手段と
を備え、前記記憶手段にはさらに前記テーブルデータを選択するときに必要なパラメータの最大値が格納されることを特徴とする画像形成装置
【請求項２】
請求項１記載の画像形成装置において、
前記パラメータは、紙種、スクリーン種、及び色合わせ種のうち少なくとも１つ情報であることを特徴とする画像形成装置。
【請求項３】
請求項１記載の画像形成装置において、
前記記憶手段にはさらに前記テーブルデータ自体が格納された領域に対する基準アドレスからの相対アドレスが格納される、ことを特徴とする画像形成装置。
【請求項４】
請求項１記載の画像形成装置において、
前記テーブルデータには、ＲＧＢ画像データをＣＭＹＫ画像データに変換するための色変換テーブルデータを含み、前記色変換モジュールには前記制御手段で前記色変換テーブルデータを用いた色変換処理を行うためのモジュールも含む、ことを特徴とする画像形成装置。
【請求項５】
請求項１記載の画像形成装置において、
前記テーブルデータには、エンジン特性を変更するためのキャリブレーションテーブルを含み、前記色変換モジュールには前記キャリブレーションテーブルを用いて前記制御手段でキャリブレーション処理を行うためのモジュールも含む、ことを特徴とする画像形成装置。
【請求項６】
請求項１記載の画像形成装置において、
前記テーブルデータには、濃淡画像の中間階調を表現したドットデータを生成するためのスクリーンテーブルを含み、前記色変換モジュールには前記制御手段でスクリーン処理を行うためのモジュールも含む、ことを特徴とする画像形成装置。
【請求項７】
請求項１記載の画像形成装置において、
前記記憶手段は前記プログラムが格納された記憶媒体とは異なる媒体である、ことを特徴とする画像形成装置。
【請求項８】
請求項７記載の画像形成装置において、
前記記憶手段は前記画像形成装置に装填可能な外部記憶媒体である、ことを特徴とする画像形成装置。
【請求項９】
請求項１記載の画像形成装置において、
前記制御手段は、紙種、色合わせ種、スクリーン種のうち少なくともいずれか２つの組み合わせからいずれか１つの前記テーブルデータを選択し、選択された前記テーブルデータに基づいて前記色変換モジュールを実行する、ことを特徴とする画像形成装置。
【請求項１０】
モジュール化されたプログラムが格納され、当該プログラムが画像形成装置に読み出されて画像を形成するようになされた画像形成装置に対する記憶媒体において、
前記プログラムのうち色変換モジュールを実行するときに必要なテーブルデータ及び前記テーブルデータを選択するときに必要なパラメータの最大値とが格納された書き換え可能な領域を含み、
前記画像形成装置において前記テーブルデータを用いて色変換モジュールを実行するときは前記書き換え可能な領域から前記テーブルデータが読み出されて前記色変換モジュールが実行されることを特徴とする記憶媒体。
【請求項１１】
請求項１０記載の記憶媒体において、
前記書き換え可能な領域にはさらに前記テーブルデータ自体が格納された領域に対する基準アドレスからの相対アドレスが格納される、ことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのモジュールを書き換え可能にした画像形成装置や記憶媒体に関する。詳しくは、色変換モジュールで使用されるテーブルデータを書き換え可能な領域に格納し、さらにテーブルデータ選択に必要なパラメータの最大値を格納した画像形成装置や記憶媒体に関する。
【背景技術】
【０００２】
従来から、印刷装置内のＲＯＭ（Read Only Memory）などの記憶媒体に制御プログラムを格納しておきＣＰＵがその制御プログラムを読み出して実行することで印刷装置全体の制御を行うようにしていた。しかし、かかる制御プログラムにバグが発見された場合に印刷装置を分解してＲＯＭ交換をする必要があった。そのため、従来ではバグ修正用のプログラムをＲＯＭカードに格納し、必要に応じて印刷装置に装着することでＲＯＭに格納された制御プログラムを修正してバグの修正を行うようにしていた（例えば以下の特許文献１）。
【特許文献１】特開平４−３２３０７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、修正用のプログラムにより制御プログラムを書き換えたとしてもその一部の情報に修正前の情報とデータ量が異なっていた場合、アドレス情報も書き換える必要があるため、ＲＯＭに格納されたプログラムすべてを書き換える必要がある。
【０００４】
例えば、印刷装置において画像データに色変換を行うとき複数のルックアックテーブル（ＬＵＴ）がＲＯＭに格納されている場合に、ＬＵＴの修正によりその大きさが異なったものになるとそれ以降に続くプログラムの各モジュールも順次ＲＯＭ内のアドレスが変更されプログラムが実行されないことが起こり得る。
【０００５】
逆にかかるＬＵＴなどの情報を含むモジュールを書き換えてもそれ以外のモジュールを書き換える必要がなければユーザの要望にそった印刷を行うことができ、ユーザの個別対応が可能となる。さらにかかるテーブルを選択するときに必要なパラメータに関して選択し得る最大値を格納し、ユーザに知らせるようにすればテーブルの追加による無駄な作業がなくなり利便性が向上する。また、かかる書き換え可能な領域を別のシステムに移植しても内容を書き換える必要なく実行できればさらに利便性も向上する。
【０００６】
そこで、本発明はプログラムが格納されたＲＯＭなどの記憶媒体を再作成する無駄を省きユーザの個別対応を行い得るとともに、利便性の向上した画像形成装置、及び記憶媒体を提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は、モジュール化されたプログラムが格納され当該プログラムに基づいて画像を形成する画像形成装置において、プログラムのうち色変換モジュールを実行するときに必要なテーブルデータが格納された書き換え可能な記憶手段と、テーブルデータを用いて色変換モジュールを実行するときは記憶手段からテーブルデータを読み出して色変換モジュールを実行する制御手段とを備え、記憶手段にはさらにテーブルデータを選択するときに必要なパラメータの最大値が格納されることを特徴としている。これにより例えば、最大値よりも多いパラメータが設定されたときにエラー処理により表示させたりデフォルトのテーブルを選択する等、プログラムが格納されたＲＯＭなどの記憶媒体を再作成する無駄を省きユーザの個別対応を行い得るとともに、利便性の向上した画像形成装置を提供することができる。
【０００８】
また、本発明は上記画像形成装置において、上記パラメータは紙種、スクリーン種、及び色合わせ種のうち少なくとも１つ情報であることを特徴としている。これにより例えば、ユーザは紙種やスクリーン種、色合わせ種などによりテーブルデータを容易に設定することができ利便性が向上した画像形成装置を提供することができる。
【０００９】
さらに、本発明は上記画像形成装置において、上記記憶手段にはさらにテーブルデータ自体が格納された領域に対する基準アドレスからの相対アドレスが格納されることを特徴としている。これにより例えば、記憶手段に記憶されたテーブルデータを他の記憶手段に記憶させるなどして他のシステムに移植しても内容を書き換える必要がなく色変換処理やスクリーン処理、キャリブレーション処理を実行することができる。
【００１０】
さらに、本発明は上記画像形成装置において、上記テーブルデータにはＲＧＢ画像データをＣＭＹＫ画像データに変換するための色変換テーブルデータを含み、色変換モジュールには制御手段で色変換テーブルデータを用いた色変換処理を行うためのモジュールも含むことを特徴としている。これにより例えば、ユーザが色変換のためのテーブルを自由に追加等の変更をしてもプログラム本体が格納された記憶媒体を書き換える必要がない。
【００１１】
さらに、本発明は上記画像形成装置において、上記テーブルデータにはエンジン特性を変更するためのキャリブレーションテーブルを含み、色変換モジュールにはキャリブレーションテーブルを用いて制御手段でキャリブレーション処理を行うためのモジュールも含むことを特徴としている。これにより例えば、ユーザがキャリブレーション処理のためのテーブルを自由に追加等の変更をしてもプログラム本体が格納された記憶媒体を書き換える必要がなくユーザの個別対応に応じた画像形成装置を提供することができる。
【００１２】
さらに、本発明は上記画像形成装置において、上記テーブルデータには濃淡画像の中間階調を表現したドットデータを生成するためのスクリーンテーブルを含み、色変換モジュールには制御手段でスクリーン処理を行うためのモジュールも含むことを特徴としている。これにより例えば、ユーザがスクリーンテーブルを自由に追加等の変更をしてもプログラム本体が格納された記憶媒体を書き換える必要がなくユーザの個別対応に応じた画像形成装置を提供することができる。
【００１３】
さらに、本発明は上記画像形成装置において、上記記憶手段はプログラムが格納された記憶媒体とは異なる媒体であることを特徴としている。これにより例えば、この媒体のみを画像形成装置に装着して新たなテーブルデータにより各処理を実行することができる。
【００１４】
さらに、本発明は上記画像形成装置において、上記記憶手段は画像形成装置に装填可能な外部記憶媒体であることを特徴としている。これにより例えば、外部記憶媒体に予めユーザの希望するテーブルデータを格納して画像形成装置において所望の画像を形成することができるようになり利便性の向上した画像形成装置を提供することができる。
【００１５】
さらに、本発明は上記画像形成装置において、上記制御手段は紙種、色合わせ種、スクリーン種のうち少なくともいずれか２つの組み合わせからいずれか１つのテーブルデータを選択し、選択されたテーブルデータに基づいて色変換モジュールを実行することを特徴としている。これにより例えば、紙種や色合わせ種、さらにスクリーン種に応じたテーブルデータを選択して色変換モジュールが実行されるのでユーザの個別対応に応じた画像形成装置を提供することができる。
【００１６】
また、上記目的を達成するために本発明は、モジュール化されたプログラムが格納され当該プログラムが画像形成装置に読み出されて画像を形成するようになされた画像形成装置に対する記憶媒体において、プログラムのうち色変換モジュールを実行するときに必要なテーブルデータ及びテーブルデータを選択するときに必要なパラメータの最大値とが格納された書き換え可能な領域を含み、画像形成装置においてテーブルデータを用いて色変換モジュールを実行するときは書き換え可能な領域から前記テーブルデータが読み出されて色変換モジュールが実行されることを特徴としている。これにより例えば、最大値よりも多いパラメータが設定されたときにエラー処理によりエラーを表示させたりデフォルトのテーブルを選択する等、プログラムが格納されたＲＯＭなどの記憶媒体を再作成する無駄を省きユーザの個別対応を行い得るとともに、利便性の向上した記憶媒体を提供することができる。
【００１７】
さらに、本発明は上記記憶媒体において、書き換え可能な領域にはさらにテーブルデータ自体が格納された領域に対する基準アドレスからの相対アドレスが格納されることを特徴としている。これにより、例えばユーザは紙種やスクリーン種、色合わせ種などによりテーブルデータを容易に設定することができ利便性が向上した記憶媒体を提供することができる。
【発明を実施するための最良の形態】
【００１８】
【実施例１】
【００１９】
以下、図面を適宜参照しながら本発明を実施するための最良の形態について説明する。図１は本発明が適用される画像形成装置２全体の構成を示す図である。図１に示すように画像形成装置２は全体として、ＣＰＵ２０と、入力Ｉ／Ｆ２１、画像メモリ２２、プログラムＲＯＭ２３、ＮＶＲＡＭ（Non Volatile Random Access Memory）２４、ビデオＩ／Ｆ２５、印刷エンジン２６、及び表示部２７とから構成される。
【００２０】
ＣＰＵ２０は、バスを介して入力Ｉ／Ｆ２１、画像メモリ２２、プログラムＲＯＭ２３、ＮＶＲＡＭ２４、ビデオＩ／Ｆ２５、及び表示部２７と互いに接続される。ＣＰＵ２０は、プログラムＲＯＭ２３に格納されたモジュール化されたプログラムを読み出して実行することで画像形成装置２内において各種処理が実行される。詳細は後述する。
【００２１】
入力インターフェース（Ｉ／Ｆ）２１は、ホストコンピュータ１とも接続される。ホスト１からは所定の伝送フォーマットで印刷データが入力Ｉ／Ｆ２１に入力され、入力Ｉ／Ｆ２１では画像形成装置２内で処理できるデータに変換する。
【００２２】
画像メモリ２２は、ＣＰＵ２０の制御によって入力Ｉ／Ｆ２１からの印刷データに含まれる画像データを一時記憶する。また、画像メモリ２２は後述するように色変換後の画像データも記憶する。この場合バンドメモリとしての機能を果たす。
【００２３】
プログラムＲＯＭ２３は、ＣＰＵ２０で実行するためのプログラムが格納される。ＣＰＵ２０によって適宜プログラムが読み出され実行されることになる。本実施例においてこのプログラムＲＯＭ２３は、モジュール化されたプログラムが格納されるがそのモジュールの一部が書き換え可能な領域に格納されている。詳細は後述する。
【００２４】
ＮＶＲＡＭ２４は、画像形成装置２の機種情報などの初期データが格納される。ＣＰＵ２０によって初期データが適宜読み出されるようになっている。さらに上述したモジュールの一部が格納されるようにもなっている。詳細は後述する。
【００２５】
ビデオＩ／Ｆ２５は、印刷エンジン２６にも接続される。ビデオＩ／Ｆ２５は、ＣＰＵ２０の制御によって画像メモリ２２から画像データが読み出され、印刷画像のドットごとのパルスデータを生成して印刷エンジン２６に出力する。具体的には、画像メモリ２２からのＲＧＢ（レッド、グリーン、ブルー）画像データに対してＣＭＹＫ（シアン、マゼンダ、イエロー、ブラック）の画像データに変換する色変換処理や、色変換後のＣＭＹＫ画像データに対してディスプレイと画像形成装置２などデバイスごとの色の違いを補正して印刷エンジン２６ごとの特性を変更する色調整（キャリブレーション）処理、キャリブレーション後のＣＭＹＫ画像データに対して濃淡画像の中間階調を表現したドットデータを生成するスクリーン処理、さらにドットデータに対してパルス幅変調を行いドットごとのパルスデータを生成するパルス幅変調処理が行われる。
【００２６】
印刷エンジン２６は、ビデオＩ／Ｆ２５からパルスデータが入力され実際に印刷用紙などの印刷媒体に画像を形成する。例えば、図示しないレーザ光がパルスデータに基づいて帯電した感光体ドラムを照射することで静電潜像を形成し、各色のトナーがドラムに付着することで現像され中間転写ベルトやローラ等を介して印刷媒体に画像が圧着等により形成されることになる。
【００２７】
ここで上述したプログラムＲＯＭ２３の構成について詳細に説明する。図２はその一例である。図２に示すように、プログラムＲＯＭ２３はモジュール化されたプログラムが格納される本体ブロックと、書き換え可能な別ブロックとから構成される。本体ブロックには、プリンタ起動モジュール２３１、データ受信モジュール２３２、言語モジュール２３３、色変換モジュール（データ処理部）２３４、バンド作成モジュール２３５、印刷モジュール２３６が格納される。モジュール化されたプログラムがＣＰＵ２０によって読み出され実行されることで画像形成装置２内において各種処理が実行される。
【００２８】
プリンタ起動モジュール２３１は、電源投入後画像形成装置２の立上げ動作に関する処理を行うためのモジュールである。データ受信モジュール２３２は、ホストコンピュータ１からの印刷データを受信する処理を行うためのモジュールである。言語モジュール２３３は、受信したデータの解釈等を行うためのモジュールである。色変換モジュール（データ処理部）２３４は、解釈されたデータに従ってＲＧＢ画像データをＣＭＹＫ画像データに色変換等の処理を行うためのモジュールである。バンド作成モジュール２３５は、色変換後のＣＭＹＫ画像データをバンドメモリ（画像メモリ２２）に格納する処理を行うためのモジュールである。印刷モジュール２３６は、バンドメモリに格納された画像データを読み出してキャリブレーション処理やスクリーン処理、さらに実際の印刷動作を行うためのモジュールである。
【００２９】
さらに本発明において、色変換処理やキャリブレーション処理、スクリーン処理で使用される各テーブルが格納された色変換モジュール（テーブルデータ部）２３７があり、図２に示すように書き換え可能な別ブロックに格納される。このように書き換え可能な別ブロックに格納することで、例えば予め格納されたスクリーンテーブル以外のテーブルを追加して印刷を行いたい場合に、この別ブロックの色変換モジュール２３７を書き換えるだけでテーブルの追加を行うことができる。このモジュールが本体ブロックの色変換モジュール２３４の中にあると、この書き換えによりテーブルの大きさが変化する可能性があり、それに続くバンド作成モジュール２３５や印刷モジュール２３６の格納位置が異なる場合がある。かかるモジュールをＣＰＵ２０によって読み出すときにアドレス位置が異なると、モジュールを読み出すことができずに処理を実行することができない場合がある。そこで、書き換え可能な領域にテーブルデータを格納することでユーザの個別対応等、利便性の向上した処理を行うことができるのである。この領域に格納されたテーブルをＣＰＵ２０が読み出すことで色変換処理等が行われることになる。
【００３０】
なお、テーブルデータが格納された色変換モジュール２３７はプログラムＲＯＭ２３内のみならず、例えば図１におけるＮＶＲＡＭ２４に格納されていてもよい。その例を図３に示す。ＮＶＲＡＭ２４のうち所定の領域２４１を予め確保しておき、その領域に色変換処理等で使用される色変換モジュール（テーブルデータ部）２３７を格納させておくようにする。ＣＰＵ２０は、かかるモジュールをＮＶＲＡＭ２４から読み出すことでテーブルの選択等を行うようにする。さらに、後述するように外部ＲＯＭなどの記憶手段にかかるモジュールを格納させるようにしてもよい。
【００３１】
色変換モジュール（テーブルデータ部）２３７の構成の一例を図４に示す。色変換モジュール（テーブルデータ部）２３７は、ヘッダとテーブルとから構成される。
【００３２】
ヘッダはマネージャＩＤ（Identification）２３７ａと機種ＩＤ２３７ｂ、及びバージョン番号２３７ｃとから構成される。マネージャＩＤ２３７ａには、各モジュールを区別するために予め割り当てられた識別番号が格納される。なお、色変換モジュール（データ処理部）２３４と色変換モジュール（テーブルデータ部）２３７との間でも異なる識別番号が割り当てられる。機種ＩＤ２３７ｂは機種情報に関する識別情報で、例えば画像形成装置２ごとに割り当てられた情報が格納される。バージョン番号２３７ｃには色変換モジュール（テーブルデータ部）２３７に格納されたテーブルデータのバージョン番号が格納される。後述するが、このバージョン番号２３７ｃにより最新のテーブルデータか否か判断することができる。
【００３３】
またテーブルには各処理で必要なテーブル情報が格納される。すなわち、図４に示すようにＬＵＴテーブル２３７ｄと、スクリーンテーブル２３７ｅ、及びキャリブレーションテーブル２３７ｆとから構成される。ＬＵＴテーブル２３７ｄは、ＲＧＢからＣＭＹＫへの色変換処理で使用されるルックアップテーブル（ＬＵＴ）が格納される。スクリーンテーブル２３７ｅは、スクリーン処理で使用されるテーブルが格納される。さらにキャリブレーションテーブル２３７ｆはキャリブレーション処理で使用されるテーブルが格納される。
【００３４】
次に各テーブルの構成の一例を図５乃至図６に示す。このうち図５はＬＵＴテーブル２３７ｄの構成の一例である。ＬＵＴテーブル２３７ｄは、紙種と色合わせ種とスクリーン種の３つの情報（パラメータ）をもとにいずれか一つのテーブルが選択されるように複数のテーブルから構成されている。紙種とは、例えば普通紙やＯＨＰ、厚紙、コート紙などである。また色合わせ種とは、印刷画像に関して自然色を強調させたい場合や、鮮やかさを強調させたい場合、マット色で表現させたい場合、色補正しない場合などである。さらにスクリーン種とは解像優先、階調優先、解像度３００ｄｐｉ用スクリーン、解像度６００ｄｐｉ用スクリーンなどである。これら３つのパラメータから１つのＬＵＴテーブルが選択される。なお、このパラメータはホストコンピュータ１で設定（詳細にはホストコンピュータ１内に実装されたドライバで設定）されて印刷データとして画像形成装置２に入力されるものである。そして、色変換モジュール２３４がＣＰＵ２０によって読み出されることで色変換処理実行されるが、この処理内で色変換モジュール（テーブルデータ部）２３７内に格納されたＬＵＴテーブル２３７ｄが選択されるのである。
【００３５】
テーブルデータ部２３７に格納されたキャリブレーションテーブル２３７ｆとスクリーンテーブル２３７ｅの構成の一例をそれぞれ図６（Ａ）と図６（Ｂ）に示す。どちらも、紙種とスクリーン種によって１つのテーブルが選択される。これらのテーブルの選択も、ホストコンピュータ１からのスクリーン種に関する情報と紙種に関する情報とにより、後述の色変換処理でテーブルの選択が行われることになる。
【００３６】
次に、以上のように構成された画像形成装置２内での動作について詳細に説明する。図７はプログラムＲＯＭ２３に格納されたプログラム（図２参照）を読み出して行う処理の全体動作を示すフローチャートである。
【００３７】
まず、画像形成装置２の電源が投入され、ＣＰＵ２０がプログラムＲＯＭ２３に格納されたプログラムを読み出すことで処理が開始される（ステップＳ１０）。次いでＣＰＵ２０は、プリンタ起動モジュール２３１によるプリンタ起動処理が開始される（ステップＳ１１）。プリンタ起動処理の詳細を図８に示す。
【００３８】
まずＣＰＵ２０は、モジュール立上げ処理を行う（ステップＳ１１１）。このモジュール立上げ処理では、プログラムＲＯＭ２３から読み出したプログラムの各モジュールをリスト構造に構造化することで各モジュール間の関係を把握する。また、テーブルデータ部２３７が最新のものに更新されているかを確認して記憶したテーブルデータ部２３７を決定する処理を行う。このモジュール立上げ処理の詳細を図９に示す。
【００３９】
ＣＰＵ２０はモジュール立上げ処理（ステップＳ１１１）に移行すると、各モジュールを構造化し、次いで検出フラグに“０”を設定する（ステップＳ１１１１）。この検出フラグはテーブルデータ部２３７を発見することができたか否かを示すものである。この段階ではＣＰＵ２０は、テーブルデータ部２３７を発見できていないので“０”を設定する。例えばＣＰＵ２０は、図示しないワーキングメモリの所定の領域に“０”を格納することで設定する。
【００４０】
次いでＣＰＵ２０は、テーブルデータ部２３７があるか否か判断する（ステップＳ１１１２）。ＣＰＵ２０はプログラムＲＯＭ２３の書き換え可能な領域（図２の別ブロック）やＮＶＲＡＭ２４にアクセスしてテーブルデータが書き込まれているか否かで判断する。テーブルデータ部２３７が格納されていれば（本ステップで“ＹＥＳ”のとき）、処理はステップＳ１１１３に移行し、格納されていなければ（本ステップで“ＮＯ”のとき）、処理はステップＳ１１１７に移行する。
【００４１】
ステップＳ１１１３でＣＰＵ２０は、機種ＩＤが正しいか否か判断する。ＣＰＵ２０は、テーブルデータ部２３７に格納された機種ＩＤ２３７ｂ（図４参照）を読出し、予めプリンタ起動モジュール２３１に記述された機種情報と比較して一致しているか否かで判断する。一致していれば（本ステップで“ＹＥＳ”のとき）ステップＳ１１１４に移行し、一致しないと再びステップＳ１１１２に移行して上述の処理を繰り返す。
【００４２】
ステップＳ１１１４でＣＰＵ２０は、検出フラグの設定を“１”にする。テーブルデータ部２３７が発見でき、機種ＩＤが一致すれば当該テーブルデータ部２３７は本画像形成装置２で使用できるものであるため、この段階でフラグを“１”に設定する。ＣＰＵ２０はステップＳ１１１１で図示しないワーキングメモリに格納した “０”を“１”に書き換えることで設定を行う。
【００４３】
次いでＣＰＵ２０は、発見したテーブルデータ部２３７が最新のものか否か判断する（ステップＳ１１１５）。これは、テーブルデータ部２３７のバージョン番号２３７ｃ（図４参照）をプログラムＲＯＭ２３（またはＮＶＲＡＭ２４）から読み出すことで行われる。すなわち、以前に読出したバージョン番号２３７ｃを例えばワーキングメモリ（図示せず）に予め格納し、この段階で読み出したバージョン番号と比較して番号が若い（又は古い）とバージョンが新しい、すなわち最新のテーブルデータであると判断できる。最新のテーブルデータ部２３７でないと判断したとき（本ステップで“ＮＯ”のとき）は、再びステップＳ１１１２に移行し上述の処理が繰り返される。
【００４４】
テーブルデータ部２３７が最新と判断したとき（ステップＳ１１１５で“ＹＥＳ”のとき）、ＣＰＵ２０は次いで、この最新のテーブルデータ部２３７を記憶する（ステップＳ１１１６）。すなわち、最新のものと判断したテーブルデータ部２３７が格納されている先頭アドレスを、例えばワーキングメモリ（図示せず）に格納する。
【００４５】
次いでＣＰＵ２０は、再びステップＳ１１１２に移行してテーブルデータ部２３７が他にあるか否か判断する。さらにテーブルデータ部２３７が他にあれば（ステップＳ１１１２で“ＹＥＳ”のとき）上述の処理を繰り返すことになる。
【００４６】
最初からテーブルデータ部２３７がないときや、ステップＳ１１１６から移行して他にテーブルデータ部２３７がないときは、このステップＳ１１１２で“ＮＯ”が選択されてステップＳ１１１７に移行する。
【００４７】
ステップＳ１１１７でＣＰＵ２０は、検出フラグが“１”か、否か判断する。例えば、ＣＰＵ２０は図示しないワーキングメモリにアクセスして“１”が格納されているか否かで判断する。“１”が格納されているとき（本ステップで“ＹＥＳ”のとき）、処理はステップＳ１１１８に移行し、記憶したテーブルデータ２３７に決定する。すなわち、ステップＳ１１１６で保存したテーブルデータ２３７の先頭アドレスが以後テーブルデータ部２３７のアドレス先として決定する。以後ＣＰＵ２０はこのアドレスにアクセスすることで、データテーブル部２３７を読み出すことができる。一方、“１”が格納されていないとき（ステップＳ１１１７で“ＮＯ”のとき）、ＣＰＵ２０はエラー処理を行う。例えば、ＣＰＵ２０はテーブルがない旨を表示部２７に表示させる等の処理を行うことになる。ステップＳ１１１８、Ｓ１１１９いずれもその処理が終了するとモジュール立上げ処理が終了して図８のステップＳ１１２に移行することになる。
【００４８】
ステップＳ１１２でＣＰＵ２０は初期データの読出しを行う。例えば、ＮＶＲＡＭ２４に格納された各種設定データを読み出す。次いでＣＰＵ２０は、各種モータを初期駆動させる（ステップＳ１１３）。例えば、印刷エンジン２６にトナーが装填されているとき、トナーの収容体を挿入位置からホームポジション位置に移動させるようモータを駆動させる。そして、プリンタ起動モジュール２３１によって行われるプリンタ起動処理（ステップＳ１１）が終了する。
【００４９】
図７に戻り、次いでＣＰＵ２０はデータ受信モジュール２３２を実行することでデータ受信処理（ステップＳ１２）を行う。データ受信処理の詳細を図１０に示す。
【００５０】
データ受信処理に移行するとＣＰＵ２０は、印刷データが受信されたか否か判断する（ステップＳ１２１）。例えば、印刷データが入力Ｉ／Ｆ２１に入力されると入力されたことを示す制御信号がＣＰＵ２０に出力される。この制御信号により受信したか否かをＣＰＵ２０が判断できる。印刷データが受信するまで次のステップに移行しないようになっている（本ステップで“ＮＯ”のとき）。
【００５１】
ＣＰＵ２０は印刷データを受信すると（ステップＳ１２１で”ＹＥＳ”のとき）、次いでデータの伸長処理を行う（ステップＳ１２２）。ホストコンピュータ１では印刷画像を作成して画像形成装置２に出力するときデータの転送効率を考慮してデータの圧縮（例えばハフマン符号化など）を行う。画像形成装置２ではかかる圧縮データを圧縮前の印刷データにするために伸長処理を行う。データを伸長すると、データ受信モジュール２３２によるデータ受信処理（ステップＳ１２）が終了して、ステップＳ１３に移行する。
【００５２】
図７に戻り、次いでＣＰＵ２０は言語処理（ステップＳ１３）を行う。言語モジュール２３３によって行われる処理である。言語処理の詳細を図１１に示す。まず、本処理に移行するとＣＰＵ２０は通常言語か否か判断する（ステップＳ１３１）。一般にホストコンピュータ１では印刷対象の画像を作成するとき、その画像データはドライバのアプリケーションプログラムによってＰＤＬ（Page Description Language）やＧＤＩ（Graphic Device Interface）などのコマンド形式による記述言語により表現される。そして、かかる画像データに通常言語により記述されたものか特殊言語で記述されたものかを示すデータを付加して、印刷ジョブ単位で画像形成装置２に出力する。ＣＰＵ２０は印刷データに含まれる通常言語か特殊言語かのデータを読み出すことで本ステップＳ１３１を判断する。なお、上述したＬＵＴテーブル等を決定するためのパラメータ、紙種、色合わせ種、スクリーン種の情報もホストコンピュータ１側で決定し、印刷データに含まれることになる。
【００５３】
通常言語で記述されているとき（ステップＳ１３１で“ＹＥＳ”のとき）、次いでＣＰＵ２０は通常言語を起動させ（ステップＳ１３２）、中間コードを解釈する（ステップＳ１３３）。画像形成装置２に入力される印刷データのうち画像データは、上述したＧＤＩ等の言語により記述されている。これを中間コードに変換することで、印刷媒体上に印刷を行うときの実際の位置を決定する。そして、その中間コードによりバンドメモリに画像データを展開するのである。このステップＳ１３３においては中間コードを生成する処理も含まれる。この中間コードを解釈することでどのように画像データをバンドメモリに展開させるか決定することができ、さらにホストコンピュータ１で設定した紙種、色合わせ種、スクリーン種の情報も読み出すことができる。
【００５４】
一方、特殊言語で記述されているとき（ステップＳ１３１で“ＮＯ”のとき）、処理は特殊言語起動処理（ステップＳ１３４）に移行する。特殊言語起動処理（ステップＳ１３４）の詳細を図１２に示す。
【００５５】
本処理に移行すると、ＣＰＵ２０はまずテーブルデータを書き換えるか否か判断する（ステップＳ１３４１）。印刷ジョブ単位でホスト１から出力される印刷データには、特殊言語で記述される旨のデータを含むとき、さらに本体ファーム（プログラムＲＯＭ２３の本体ブロックに格納されたプログラム）を書き換えるか、オプションＲＯＭを書き換えるかの情報も含む。ＣＰＵ２０は本体ファームを書き換える旨の情報が含まれているときに本ステップＳ１３４１で“ＹＥＳ”が選択され、オプションＲＯＭを書き換える旨の情報が含まれているときは本ステップＳ１３４１で“ＮＯ”が選択されることになる。
【００５６】
テーブルデータ部２３７を書き換えるとき（ステップＳ１３４１で“ＹＥＳ”）、本体ファームの書き換えを行う必要があるため、プログラムＲＯＭ２３のテーブルデータ部２３７も書き換えを行う。そのために、まずＣＰＵ２０はテーブルデータ部２３７の初期化（ステップＳ１３４２）を行い、その後テーブルデータ部２３７の上書き処理を行う（ステップＳ１３４３）。一度プログラムＲＯＭ２３に格納されたテーブルデータ部２３７をＣＰＵ２０が読み出して特殊言語に変更して再び当該位置に上書きする。そして、プログラムＲＯＭ２３のテーブルデータ部２３７が正常に書き込みが行われない（ステップＳ１３４４で“ＮＯ”）と再びステップＳ１３４２に移行して正常に行われるまで処理が繰り返される。正常に書き込みが行われると（ステップＳ１３４４で“ＹＥＳ”のとき）、次いでＣＰＵ２０は電源の再投入を行わせることになる（ステップＳ１３４５）。上書きしたテーブルデータ部２３７で以後処理を行わせるためである。
【００５７】
一方、オプションＲＯＭを書き換える旨の情報が印刷データに含まれているとき（ステップＳ１３４１で“ＮＯ”のとき）、ＣＰＵ２０は書き換え可能な別媒体に対してテーブルデータ部２３７を格納するために、まずこの別媒体に対して初期化を行う（ステップＳ１３４６）。別媒体とは、例えば図１のＮＶＲＡＭ２４や画像形成装置２外部に設けられた記憶媒体などである。次いでＣＰＵ２０は、別媒体に特殊言語によるテーブルデータ部２３７の書き込み処理を行う（ステップＳ１３４７）。予めプログラムＲＯＭ２３から読み出したテーブルデータ部２３７を特殊言語に変換して別媒体に書き込むことになる。そして、正常に書き込まれるまで処理が繰り返されることになる（ステップＳ１３４８で“ＮＯ”が選択されてステップＳ１３４６に移行）。正常に書き込みが終了すると（ステップＳ１３４８で“ＹＥＳ”）、ＣＰＵ２０は電源再投入を行わせることになる（ステップＳ１３４５）。以上により特殊言語処理（ステップＳ１３４）が終了し、さらに言語処理も終了（図１１参照）して、図７のプリンタ起動処理（ステップＳ１１）に移行することになる。
【００５８】
図１１で言語処理において中間コードの解釈が終了すると言語処理（ステップＳ１３）も終了し、次いで処理は図７の色変換処理（ステップＳ１４）に移行する。プログラムＲＯＭ２３の色変換モジュール（データ処理部）２３４がＣＰＵ２０で実行されることで処理が行われる。色変換処理の動作を示すフローチャートを図１３に示す。ＣＰＵ２０は、色変換処理（ステップＳ１４）に移行するとまずＬＵＴの選択処理を行う（ステップＳ１４１）。テーブルデータ部２３７のＬＵＴテーブル２３７ｄ（図４参照）に記憶されている複数のＬＵＴテーブルのうちいずれか１つのＬＵＴテーブルの選択を行う。このＬＵＴの選択処理（ステップＳ１４１）の詳細を図１４に示す。
【００５９】
ＬＵＴの選択処理でまずＣＰＵ２０は、紙種類が範囲内にあるか否か判断する（ステップＳ１４１１）。図５に示すようにＬＵＴテーブル選択のためのパラメータの１つとして紙種がある。テーブルデータ部２３７に記憶されたＬＵＴテーブル２３７ｄには、選択されるべき紙種類の種類数が固定値として規定される。例えば図５の場合、紙種類は４種類（普通紙、ＯＨＰ、厚紙、コート紙の４種類）である。例えばこの種類数が固定値として色変換モジュール（データ処理部）２３４内に格納され、ＣＰＵ２０はこのステップＳ１４１１でまずこの値を読み出す。そして、ＣＰＵ２０は言語処理（ステップＳ１３、図１１参照）の中間コード解釈（ステップＳ１３３）で、ホスト１側からの印刷データに含まれた紙種類の情報を取り出し、例えば図示しないワーキングメモリに格納する。この紙種類の情報をＣＰＵ２０はこのステップＳ１４１１でワーキングメモリから読み出し、色変換モジュール（データ処理部）２３４内の固定値と比較することで紙種類が範囲内であるか否か判断する。例えば、図５の例で紙種類が固定値として“４”が色変換モジュール（データ処理部）２３４に格納されている。そして、中間コード解釈（ステップＳ１３３）で紙種類の情報として“３”（＝厚紙）がワーキングメモリに格納されているとすると、固定値の範囲内であるから本ステップＳ１４１１で種類は範囲内であると判断される（“ＹＥＳ”）。一方、中間コード解釈により紙種類の情報が“５”（例えば、光沢紙）であると、固定値”４”を超えるため紙種類の範囲内にないと判断される（本ステップＳ１４１１で“ＮＯ”）。
【００６０】
紙種類が範囲内にあると判断されると（ステップＳ１４１１で“ＹＥＳ”）、次いでＣＰＵ２０は、スクリーン種類は範囲内にあるか否か判断する（ステップＳ１４１２）。これも紙種類の判断と同様に、ＬＵＴテーブル２３７ｄのスクリーン種類数分の値が固定値としてデータ変換モジュール（データ処理部）２３４に格納される。そして、中間コード解釈（ステップＳ１３３）でワーキングメモリに格納したホスト１からのスクリーン種を本ステップＳ１４１２で読み出して、固定値と比較することで範囲内にあるか否かを判断する。例えば、図５の例では固定値は“５”（５種類のスクリーン種類があるため）、印刷データにスクリーン種として“２”（＝階調優先）が選択されていると、固定値の範囲内にあるため本ステップＳ１４１２で“ＹＥＳ”が選択される。印刷データに“６”（例えば、解像度１２００ｄｐｉ用スクリーン）が含まれていると固定値の範囲内になく、本ステップＳ１４１２で“ＮＯ”が選択される。
【００６１】
スクリーン種類が範囲内にあると（ステップＳ１４１２で“ＹＥＳ”）、次いでＣＰＵ２０は色合わせ種類が固定値の範囲内にあるか否か判断する（ステップＳ１４１３）。これもステップＳ１４１１等と同様に固定値が色変換モジュール（データ処理部）２３４に格納され、中間コード解釈（ステップＳ１３３）でワーキングメモリに格納した印刷データに含まれる色合わせ種類の情報を読出し、固定値と比較することで判断する。図５の例では固定値は“５”、印刷データに“２”（＝鮮やかさを強調）が含まれると範囲内と判断される（本ステップＳ１４１３で“ＹＥＳ”）。そうでないと本ステップＳ１４１３で“ＮＯ”と判断される。
【００６２】
色合わせ種類も範囲内と判断すると（ステップＳ１４１３で“ＹＥＳ”）、ＣＰＵ２０は次いでＬＵＴアドレスの演算を行う（ステップＳ１４１４）。色変換モジュール（データ処理部）２３４の固定値内にホスト１からの３つのパラメータが存在する、すなわちテーブルデータ部２３７のＬＵＴテーブル２３７ｄのいずれか１つが選択できる状態にあるため、印刷データから所望のＬＵＴテーブル２３７ｄを選択することになる。アドレス演算とあるのは、図５に示すＬＵＴテーブル２３７ｄで各マス目にはＬＵＴテーブル自体が存在するのではなく、選択すべきＬＵＴテーブルが存在するアドレス値が格納される。各マス目に同じアドレス値のものも実際には多数含まれるため同じＬＵＴテーブルを選択する場合がある。すべてのマス目におのおのＬＵＴテーブル自体を置くとデータ量も増大するためアドレス値を格納することでデータ量を少なくしてメモリ容量の増大を防いでいる。
【００６３】
実際のアドレス演算は以下の演算式を用いる。
ＬＵＴアドレス＝紙種×（最大スクリーン数×最大色合わせ数）＋色合わせ種×（最大スクリ                ーン数）＋スクリーン数          ・・・（１）
これによりいずれか１つのＬＵＴテーブルが選択される。なお、この演算式自体は色変換モジュール（データ処理部）２３４に格納され、ＣＰＵ２０が適宜このステップで読み出して実行することでアドレス値を得る。演算したアドレス値を例えば図示しないワーキングメモリにＣＰＵ２０によって格納され、後述の色変換の処理で適宜読み出すことで色変換処理を行うようにしている。
【００６４】
一方、印刷データに含まれる紙種類数やスクリーン数、色合わせ数が固定値の範囲内にないとき（ステップＳ１４１１、Ｓ１４１２、Ｓ１４１３で“ＮＯ”のとき）、すべてステップＳ１４１５に移行し、ＣＰＵ２０はエラー処理を行う。例えば、ＣＰＵ２０は表示部２７にＬＵＴテーブルを選択できない旨の表示や、デフォルトとして予め設定されたＬＵＴテーブルを選択するようにする。
【００６５】
図１３に戻り、ＬＵＴの選択処理（ステップＳ１４１）が終了すると、次いでＣＰＵ２０はキャリブレーションテーブルの選択処理を行う（ステップＳ１４２）。その詳細を図１５に示す。まず、本選択処理に移行するとＣＰＵ２０は、紙種類が固定値の範囲内か否か判断する（ステップＳ１４２１）。ＬＵＴの選択処理（ステップＳ１４１、図１４参照）のときと同様にデータ処理部２３４内に格納された紙種類の固定値と、言語モジュール２３３による言語処理（ステップＳ１３、図１１参照）から得られた紙種類を示す情報（印刷データに含まれた情報）とから判断する。
【００６６】
固定値の範囲内にあれば（ステップＳ１４２１で“ＹＥＳ”のとき）、次いでＣＰＵ２０はスクリーン種が固定値の範囲内にあるか否か判断する（ステップＳ１４２２）。これもＬＵＴの選択処理のときと同様に、データ処理部２３４内に格納されたスクリーン種類数の固定値と言語処理で得られたスクリーン種類を示す情報（同様に印刷データに含まれた情報）とから判断する。
【００６７】
スクリーン種類も固定値の範囲内にあれば（ステップＳ１４２２で“ＹＥＳ”のとき）、次いでＣＰＵ２０はテーブルアドレスの演算を行う（ステップＳ１４２３）。キャリブレーションテーブルの例として図６（Ａ）に示したが、このマトリックス内において言語モジュール２３３からの紙種類の情報とスクリーン種類数の情報とからいずれか１つのテーブルを選択する。ＬＵＴテーブル２３７ｄと同様に、実際には図６（Ａ）のマトリックスの各マス目にはテーブル自体ではなくテーブルが格納されたアドレスの値が格納されている。このアドレスを演算するために、次式を利用して本ステップＳ１４２３でテーブルを選択することになる。
【００６８】
キャリブレーションテーブルアドレス＝紙種×（最大スクリーン数）＋スクリーン種
・・・（２）
もちろん、アドレス演算の方法は種々のものが考えられこれ以外の演算によりアドレスを求めるようにしてもよい。なお、式（１）と同様にこの演算式は色変換モジュール（データ処理部）２３４に格納されＣＰＵ２０によって読み出されて演算が行なわれる。また演算したアドレス値は例えば図示しないワーキングメモリに格納され、後述のキャリブレーション処理でこのアドレス値を読み出すようにしている。
【００６９】
一方、印刷データに含まれる紙種類が固定値の範囲内にないとき（ステップＳ１４２１で“ＮＯ”のとき）やスクリーン種類が範囲内にないとき（ステップＳ１４２２で“ＮＯ”のとき）、いずれもＣＰＵ２０はエラー処理（ステップＳ１４２４）を行うことになる。エラー処理としては、例えば、ＣＰＵ２０が表示部２７に紙種類やスクリーン種類が範囲内にない旨の表示を行うように制御したり、デフォルトのキャリブレーションテーブルを選択するようにしてもよい。
【００７０】
テーブルアドレスの演算（ステップＳ１４２３）、及びエラー処理（ステップＳ１４２４）が終了すると、キャリブレーションテーブルの選択処理（ステップＳ１４２）が終了して、処理は図１３のスクリーンテーブルの選択処理（ステップＳ１４３）に移行することになる。
【００７１】
スクリーンテーブルの選択処理の詳細は同じく図１５に示す。処理の内容はキャリブレーションテーブルの選択処理（ステップＳ１４２）と同様である。すなわち、印刷データに含まれた言語モジュール２３３からの紙種類の情報、スクリーン種類の情報がそれぞれデータ処理部２３４に格納された固定値の範囲内にあれば（ステップＳ１４２１及びＳ１４２２で“ＹＥＳ”のとき）、テーブルアドレスの演算を行う（ステップＳ１４２３）。スクリーンテーブルもキャリブレーションテーブルと同様にテーブルデータ部２３７内では紙種とスクリーン種とから１つのスクリーンテーブルを選択することができるようになっている（例えば図６（Ｂ）参照）。アドレス値を演算することでそのアドレス内に格納されたスクリーンテーブルを読み出すことができるようになっている。一方、紙種類やスクリーン種類が範囲内にないと（ステップＳ１４２１やＳ１４２２で“ＮＯ”のとき）、ＣＰＵ２０はデフォルトのスクリーンテーブルを選択したりエラー表示を行う等のエラー処理を行う（ステップＳ１４２４）。ステップＳ１４２３、Ｓ１４２４が終了するとスクリーンテーブルの選択処理（ステップＳ１４３）が終了する。なお、これらテーブルの選択処理（ステップＳ１４１からＳ１４３）の順番は問わない。
【００７２】
図１３に戻り、次いでＣＰＵ２０は色変換の処理を行う（ステップＳ１４４）。ＣＰＵ２０は、ＬＵＴの選択処理（ステップＳ１４１）で選択されたＬＵＴテーブルをプログラムＲＯＭ２３のテーブルデータ部２３７から読出して、画像データに対して色変換処理を行う。ホストコンピュータ１からの印刷データに含まれる画像データは実際には各画素ごとにＲＧＢの階調値を有するデータで、本ステップによる色変換によりこれを画像形成装置２内で処理できるＣＭＹＫの階調値を有するデータに変換する。ＬＵＴテーブルは、入力値であるＲＧＢの階調値に対してＣＭＹＫの階調値を出力値とするテーブルにより構成される。そして、色変換処理（ステップＳ１４）が終了して、処理は図７のバンド作成処理（ステップＳ１５）に移行する。
【００７３】
バンド作成処理（ステップＳ１５）では、ＣＭＹＫの画像データを所定のバンド幅を有するバンドメモリに展開する処理を行う。本処理はバンド作成モジュール２３５によって行われる処理である。バンドメモリ上の各座標位置が実際の印刷媒体における印字位置に相当するため、この展開により印刷媒体上の画像の配置を行うのである。バンド作成処理の詳細を図１６に示す。本処理に移行するとＣＰＵ２０は、バンドメモリへの展開を行う（ステップＳ１５１）。ＣＰＵ２０は、色変換の処理（ステップＳ１４４、図１３参照）による色変換後のＣＭＹＫの画像データを画像メモリ２２の所定領域に展開させる。展開のさせ方は、中間コードに記述されており、解釈した中間コード（ステップＳ１３３、図１１参照）に基づいて行われることになる。バンドメモリへの展開を行うとバンド作成処理は終了し、処理は図７の印刷処理（ステップＳ１６）に移行することになる。
【００７４】
印刷処理（ステップＳ１６）は、バンドメモリに展開した画像データを読み出して、キャリブレーション処理、スクリーン処理、そして実際の印刷動作を行う。その詳細を図１７に示す。印刷処理に移行するとＣＰＵ２０は、まずキャリブレーション処理を行う（ステップＳ１６１）。上述したようにキャリブレーション処理とは、ディスプレイと画像形成装置２などデバイスごとの色の違いを補正して印刷エンジン２６ごとの特性を変更する色調整の処理のことである。各画素ごとに所定の階調値を有しているが、キャリブレーションテーブルを用いて入力階調値に対する出力階調値を得ることで色調整を行うのである。本処理で使用するキャリブレーションテーブルはステップＳ１４３でアドレス演算により求めたので、この段階で例えばワーキングメモリからアドレス値を読み出すことで処理を行うことになる。すなわち、ＣＰＵ２０はステップＳ１４２で選択したキャリブレーションテーブルをプログラムＲＯＭ２３のテーブルデータ部２３７から読み出し、またバンドメモリ（画像メモリ２２）からＣＭＹＫの画像データを読出して、ビデオＩ／Ｆ２５に出力して処理を行わせるようにする。
【００７５】
次いでＣＰＵ２０は、スクリーン処理を行う（ステップＳ１６２）。スクリーン処理とは上述したように濃淡画像の中間階調を表現したドットデータを生成する処理のことである。キャリブレーション後のＣＭＹＫ画像データに対して、スクリーンテーブル選択処理（ステップＳ１４３）で選択したスクリーンテーブルを用いて出力値であるドットデータを生成する。すなわち、ＣＰＵ２０はステップＳ１４３で選択したスクリーンテーブルをプログラムのＲＯＭ２３のテーブルデータ部２３７から読み出し、ビデオＩ／Ｆ２５でキャリブレーション処理後のＣＭＹＫの画像データに処理を行わせるようにする。
【００７６】
次いでＣＰＵ２０は、印刷動作を行う（ステップＳ１６３）。本実施例においては、実際にはスクリーン処理後のドットデータに対してパルス幅変調処理をビデオＩ／Ｆ２５で行わせ、ドットごとのパルスデータを生成する。そして生成したパルスデータを印刷エンジン２６に出力して、印刷エンジン２６内でパルスデータに基づいたレーザ光が感光体ドラムを照射して上述した印刷動作が行われることになる。
【００７７】
図７に戻り、印刷処理が終了すると次いでＣＰＵ２０は、印刷データが終了したか否か判断し（ステップＳ１７）、終了すると（本ステップで”ＹＥＳ”のとき）画像形成装置２の電源をオフにして一連の動作が終了することになる。また、さらに印刷データが画像形成装置２に入力されると（本ステップで”ＮＯ”のとき）処理はステップＳ１２に移行し上述した処理が繰り返されることになる。
【００７８】
以上説明してきたように、本発明では色変換モジュールのうち、色変換処理やキャリブレーション処理、スクリーン処理で使用されるテーブルデータを書き換え可能な領域に格納させるようにしたので、予め格納されたテーブルを追加するような場合に本体ブロックに格納された各モジュールを書き換える必要がなく、例えばユーザが後からテーブルを追加しても画像形成装置２を使用することができる。また、画像形成装置２の起動処理（ステップＳ１１１、図９参照）で最新のテーブルを検索して使用できるようにしたので、例えば追加したテーブルにより以後色変換等の処理を行うことができる。
【実施例２】
【００７９】
上述した例では、プログラムＲＯＭ２３のテーブルデータ部２３７にはヘッダ以外には各テーブルを格納するようにしたが、さらに本実施例では最大紙種数、最大スクリーン種数、及び最大色合わせ種数を格納するようにしている。
【００８０】
上述したように、ＲＧＢからＣＭＹＫへの色変換処理で使用されるＬＵＴテーブル２３７ｄは３つのパラメータ、すなわち紙種と色合わせ種、及びスクリーン種からいずれか１つのＬＵＴテーブル２３７ｄを選択するようにしている。ここで、図１８に示すように予めテーブルデータ部２３７に格納されたＬＵＴテーブル２３７ｄの選択パラメータの１つ、スクリーン種がテーブルデータ部２３７の書き換えにより増加した場合、以前と同様のアドレス演算を行うとスクリーン種がずれることで本来選択すべきＬＵＴテーブル２３７ｄを選択できなってしまう。増加させない場合に、図１８に示す斜線のＬＵＴテーブルを選択していたときに、スクリーン種の増加によっても同じ斜線のＬＵＴテーブルを選択するようにしてもテーブル自体の数が増加することで図中の矢印に示すテーブルが選択されることになる。すなわち、テーブルデータ部２３７のデータ構成は図１８に示す３次元構成ではなく２次元構成であり、途中のテーブル数が増加することで後に続くテーブルの位置がずれてしまうのである。このようなずれにより、プログラムＲＯＭ２３に格納されたモジュールの再作成を行うことになり、工数の無駄が生じる。
【００８１】
そこで、テーブルの書き換えによりテーブル数自体の増加によりかかる位置ずれを防止するため予めパラメータの最大値を書き換え可能な領域に格納して、その範囲内でパラメータが指定されていると処理を行い、そうでないとエラー処理を行うようにした。これにより、ユーザの個別対応などの要求に答えることもできるし、さらに最大値を表示部２７、さらにホストコンピュータ１側に送信して表示することができればユーザがその範囲でパラメータを指定することができ利便性も向上する。
【００８２】
詳細を説明する。図１９は、プログラムＲＯＭ２３のテーブルデータ部２３７の構成を示す図である。図４に示す構成に対してさらに、最大紙種２３７ｇ、最大スクリーン種２３７ｈ、及び最大色合わせ種２３７ｉを格納できるようになっている。書き換え可能な領域にかかる３つのパラメータの最大値を格納するようにしたので、ユーザごとにＬＵＴの種類やキャリブレーションの種類、スクリーンの種類を増加させることができ、ユーザの個別対応に便利である。
【００８３】
次に、このような最大値を格納したときの画像形成装置２の処理の動作について説明する。一連の動作は図７とほぼ同様である。すなわち、まず電源を投入してプログラムＲＯＭ２３の本体ブロックに格納されたプログラム（図２参照）をＣＰＵ２０が読み出して処理が開始される（ステップＳ１０）。次いでプリンタ起動モジュール２３１によりプリンタ起動処理（ステップＳ１１）が行われ、モジュール立上げ処理（ステップＳ１１１、図８、図９参照）においてテーブルデータ部２３７に格納された最新のテーブルデータを決定する。
【００８４】
次いでＣＰＵ２０は、データ受信モジュール２３２によりデータ受信処理（ステップＳ１２）が行われ、ホスト１からの印刷データを受信する。次いでＣＰＵ２０は、言語モジュール２３３により言語処理（ステップＳ１３）が行われ、ＧＤＩ等で表現された印刷データを中間コードに変換してその中間コードを解釈する。また、この処理によってホスト１側で指定された紙種、色あわせ種、スクリーン種の情報（例えば紙種は普通紙（“１”）、色合わせ種は自然色（“１”）、スクリーン種は階調優先（“２”））を得る。特殊言語の場合は、テーブルデータ２３７の上書き処理等を行い、ステップＳ１１に移行して再度電源投入により上述の処理を繰り返す。
【００８５】
次いでＣＰＵ２０は、色変換処理（ステップＳ１４）に移行し図１３に示すＬＵＴの選択処理を行う（ステップＳ１４１）。このＬＵＴの選択処理ではテーブルデータ部２３７に格納した最大値を利用するため、図１４の処理とは異なり図２０に示す処理を行うことになる。
【００８６】
まずＣＰＵ２０は、最大紙種の値をプログラムＲＯＭ２３のテーブルデータ部２３７から読み出す（ステップＳ１５１１）。次いで、読み出した値と言語モジュール２３３による言語処理（ステップＳ１３）で取得したホスト１側からの紙種の情報とを比較して最大値の範囲内にあるか否か判断する（ステップＳ１５１２）。例えば、紙種の最大値として“５”が格納され、取得した紙種が“１”（普通紙）のときは範囲内と判断され（本ステップＳ１５１２で“ＹＥＳ”）、指定した紙種が“６”（光沢紙）のときは範囲内にない（“ＮＯ”）と判断される。
【００８７】
範囲内のとき、ＣＰＵ２０は次いで最大スクリーン種の値をテーブルデータ部２３７から取得する（ステップＳ１５１３）。次いで、読み出した最大値と言語モジュール２３３による言語処理で取得したホスト１側からのスクリーン情報とを比較する（ステップＳ１５１４）。例えば最大値が“５”で、取得したスクリーン種が“２”（階調優先）のときは範囲内にあると判断され（ステップＳ１５１４で“ＹＥＳ”）、そうでないと範囲内にないと判断される（“ＮＯ”）。
【００８８】
スクリーン種も範囲内にあると、次いでＣＰＵ２０はテーブルデータ部２３７から最大色合わせ種の値を取得する（ステップＳ１５１５）。次いでＣＰＵ２０は、言語処理で取得したホスト１側からの色合わせ種の情報とを比較する（ステップＳ１５１６）。例えば、最大値が“５”で、取得した情報が“１”（自然色）のときは範囲内（“ＹＥＳ”）、そうでないと範囲内でない（“ＮＯ”）と判断される。
【００８９】
色合わせ種も範囲内にあれば、３つのパラメータはテーブルデータ部２３７に格納されたＬＵＴテーブルのいずれか１つ選択できる状態にあることになる。そして、ＣＰＵ２０はＬＵＴテーブルを選択すべくアドレス演算を行う（ステップＳ１５１７）。演算の方法は、実施例１のステップＳ１４１４（図１４参照）での演算式（１）を用いる。演算が終了すると、ＬＵＴの選択処理（ステップＳ１４１）が終了することになる。
【００９０】
一方、紙種、スクリーン種、色合わせ種のいずれもテーブルデータ部２３７に格納された最大値の範囲内にないと（ステップＳ１５１２、Ｓ１５１４、Ｓ１５１６で“ＮＯ”のとき）、図１４の選択処理と同様にエラー処理を行う（ステップＳ１５１８）。例えば、表示部２７に選択できない旨の表示をしたり、デフォルトのＬＵＴテーブルを選択するようにする。エラー処理が終了すると、ＬＵＴの選択処理（ステップＳ１４１）が終了する。
【００９１】
図１３に戻り、ＬＵＴの選択処理の次はキャリブレーションの選択処理を行う（ステップＳ１４２）。この処理もプログラムＲＯＭ２３のテーブルデータ部２３７に格納された最大値を利用するため、実施例１とは異なる処理となる。詳細を図２１に示す。
【００９２】
各処理は、ほぼ図２０と同様である。キャリブレーション処理は色変換後に行うのでテーブル選択で色合わせ種の情報は必要ない。まず、紙種の最大値をテーブルデータ部２３７から読出し（ステップＳ１５２１）、言語モジュール２３３による言語処理（ステップＳ１３）で取得したホスト１側で指定した紙種の情報とを比較する（ステップＳ１５２２）。取得した紙種の情報が最大値の範囲内にあると（ステップＳ１５２２で“ＹＥＳ”）、次いでＣＰＵ２０は最大スクリーン種をテーブルデータ部２３７から読み出し（ステップＳ１５２３）、言語処理で取得したスクリーン種の情報とを比較する（ステップＳ１５２４）。取得したスクリーン種の情報が最大値の範囲内にあると（ステップＳ１５２４で“ＹＥＳ”）、ＣＰＵ２０はキャリブレーションテーブルのアドレス演算を行い、テーブルを選択する（ステップＳ１５２５）。アドレス演算の演算式は実施例１の式（２）を用いる。いずれの場合も範囲内にないとき（ステップＳ１５２２、Ｓ１５２４で”ＮＯ”のとき）、範囲内にない旨の表示等によりエラー処理を行う（ステップＳ１５２６）。
【００９３】
図１３に戻り、次いでスクリーンテーブルの選択処理（ステップＳ１４３）を行う。キャリブレーションの選択処理と同じ内容で処理が行われる（図２１参照）。紙種やスクリーン種の最大値をプログラムＲＯＭ２３のテーブルデータ部２３７から読み出し、言語処理（ステップＳ１３）で取得した各情報とを比較して範囲内にすべてあれば（ステップＳ１５２２及びＳ１５２４で“ＹＥＳ”のとき）、アドレス演算を行うことでスクリーンテーブルの選択を行う（ステップＳ１５２５）。いずれの場合も範囲内にないと（ステップＳ１５２２、Ｓ１５２４で“ＮＯ”のとき）、エラー処理を行う（ステップＳ１５２６）。そして、スクリーンテーブルの選択処理（ステップＳ１４３）が終了する。なお、これらテーブルの選択処理（ステップＳ１４１からＳ１４３）の順番は問わない。
【００９４】
その後、選択したＬＵＴテーブル２３７ｄを用いて色変換処理（図１３のステップＳ１４４）を行う。そして、バンド作成モジュール２３５により色変換後のＣＭＹＫの画像データをバンドメモリに展開し（ステップＳ１５、図７及び図１６参照）、印刷モジュール２３６により印刷処理（ステップＳ１６）が行われる。印刷処理においては、選択したキャリブレーションテーブルとスクリーンテーブルを用いてそれぞれキャリブレーション処理（図１７のステップＳ１６１）、スクリーン処理（ステップＳ１６２）を行う。そして、パルス幅変調処理を介して印刷エンジン２６にて印刷動作が行われる。さらに印刷データがあれば上述の処理を繰り返し（図７のステップＳ１７で“ＮＯ”のとき）、印刷データがないと（“ＹＥＳ”）電源をオフにして一連の処理が終了することになる。
【００９５】
以上説明してきたように、実施例２において各テーブルの選択に必要なパラメータの最大値を書き換え可能な記憶領域に格納するようにしたので、テーブルのマトリックスの位置ずれによる間違ったテーブルの選択を防止することができる。さらに、書き換え可能な領域に格納するようにしたので、紙種、色合わせ種、スクリーン種を増加させたい場合などユーザの個別対応に答えることができるとともに、プログラムＲＯＭ２３の再作成を行うことがなく工数の無駄を省くことができ利便性が向上する。さらに、テーブルデータ部２３７に格納された各パラメータの最大値をホストコンピュータ１側に出力して、図示しないモニタ等に表示することができれば最大値以上のパラメータをユーザが選択する可能性が低くなり、ユーザの要求するテーブルを確実に選択することができるようになる。
【実施例３】
【００９６】
次に、テーブルデータ部２３７のアドレス管理について説明する。テーブルデータ部２３７の構成については図４や図１９を用いて説明したが、実際には各テーブルが格納される領域とその領域を示すアドレス値とから、ＬＵＴテーブル２３７ｄやスクリーンテーブル２３７ｅ、さらにキャリブレーションテーブル２３７ｆが構成される。
【００９７】
その具体的構成の一例を図２２に示す。ＬＵＴテーブル２３７ｄの場合、ＬＵＴテーブルの本体自体はＬＵＴ本体領域２３７ｄ’１、２３７ｄ’、・・・に格納され、その格納された各ＬＵＴ本体のアドレス値がＬＵＴテーブル領域２３７ｄ１、２３７ｄ２、・・・に格納される。本実施例においてはこのＬＵＴテーブル領域２３７ｄ１、２３７ｄ２、・・・に、テーブル本体が格納されたアドレス値をそのまま記憶させるのではなく、基準アドレスからの距離（相対アドレス値）を格納する。これにより、例えばテーブルデータ部２３７自体をプログラムＲＯＭ２３とは異なる記憶媒体、例えばＮＶＲＡＭ２４や外部ＲＯＭなどに記憶させたとき、テーブルデータ部２３７の最初のアドレス（ここではマネージャＩＤ領域２３７ａ）が異なるものになりアドレス値が順次変更されたときでも、各テーブル本体へのアクセスが可能になる。
【００９８】
図２２を用いて詳細に説明する。マネージャＩＤ２３７ａ、機種ＩＤ２３７ｂ、バージョン番号２３７ｃ、最大紙種２３７ｇ、最大スクリーン種２３７ｈ、及び最大色合わせ種２３７ｉの各領域については実施例１及び２で説明したので省略する。また、ＬＵＴテーブル２３７ｄについては図２２に示すように各テーブル本体の相対アドレスが格納されるＬＵＴテーブル領域２３７ｄ１、２３７ｄ２、・・・と、そのＬＵＴテーブル自体が格納されたＬＵＴ本体領域２３７ｄ’１、２３７ｄ’２、・・・とから構成される。ＬＵＴテーブル領域２３７ｄ１、２３７ｄ２、・・・は図５や図１８に示すマトリックスのマス目の数分存在することになる。図５の例では紙種が４種類、スクリーン種が５種類、色合わせ種が５種類あるのでこの場合では、ＬＵＴテーブル領域２３７ｄ１、・・・が全部で１００（４×５×５）個存在することになる。
【００９９】
ここでこのＬＵＴテーブル領域２３７ｄ１、・・・に格納される相対アドレス値であるが、例えば図２２に示すようにヘッダ以外のテーブル部（図４参照）の最初の先頭アドレスを基準にしている。最大紙種２３７ｇが格納される領域の先頭アドレスを基準アドレスとしたときのアドレスは“０ｘ８００８”、ＬＵＴ０（“０”番目のＬＵＴテーブル）本体が格納された領域２３７ｄ’１の先頭アドレスは“０ｘ９２００”、したがってその距離は“０ｘ１１Ｅ８”であるからＬＵＴ０テーブルのアドレス値を格納するＬＵＴテーブル２３７ｄ１には、“０ｘ１１Ｆ８”が格納される。同様に、ＬＵＴテーブル領域２３７ｄ２には“０ｘ１２Ｆ８”、ＬＵＴテーブル領域２３７ｄ３には“０ｘ１３Ｆ８”と格納されることになる。
【０１００】
このようにＬＵＴテーブル領域２３７ｄ１、・・・に基準アドレスからの相対アドレス値を格納することで、例えばこのテーブルデータ部２３７がプログラムＲＯＭ２３の異なる領域や、異なる記憶媒体自体に格納されてアドレス値が変更されてもＬＵＴ本体領域２３７ｄ’１、・・・へのアクセスは可能となる。
【０１０１】
図２２のかっこ書きでアドレス値が変更になったときを考える。テーブルデータ部２３７の先頭アドレスが“０ｘ８０００”から“０ｘ８５００”に変更されたとき、ＬＵＴ０テーブルが格納されたＬＵＴ０本体領域２３７ｄ’１のアドレスは“０ｘ９２００”から“０ｘ９７００”に変更される。ＬＵＴ０本体領域２３７ｄ’１のアドレス値をそのままＬＵＴテーブル領域２３７ｄ１に格納すると、この変更によりこの領域２３７ｄ１に格納されたアドレス値も変更しなければならないことになる。かかる変更は、ユーザに工数負担を強いることになる。基準アドレスからの相対アドレスを格納していれば、変更になった基準アドレス“０ｘ８５０８”からの相対アドレス“０ｘ１１Ｆ８”を加算することで変更後のアドレス値“０ｘ９７００”を得ることができる。同様にＬＵＴ本体領域２３７ｄ’２へのアクセスについても相対アドレス値を加算するだけでよい。
【０１０２】
スクリーンテーブル２３７ｅやキャリブレーションテーブル２３７ｆについても同様で、図２２には図示していないが基準アドレスからの相対アドレスが格納された領域と実際の各スクリーンテーブルや各キャリブレーションテーブルが格納された領域とから構成される。相対アドレスが格納されているのでテーブルデータ部２３７を異なる領域に記憶させても全く同様に各テーブルにアクセスすることが可能となる。
【０１０３】
図２２の例では基準アドレスとしてヘッダ以外のテーブルの先頭（最大紙種２３７ｇが格納される領域の先頭）としたが、例えばテーブルデータ部２３７の先頭アドレス（マネージャＩＤ領域２３７ａが格納された領域の先頭アドレス）でもよいし、ＬＵＴテーブル領域２３７ｄ１の先頭アドレスでもよい。
【０１０４】
このように相対アドレスを格納するようにしたので、テーブルデータ部２３７を別の記憶媒体に記憶させて別システムで利用しても、アドレスの書き換えを行うことなく各テーブル本体へのアクセスが可能になり、色変換やスクリーン処理、さらにキャリブレーション処理を行うことができる。また色変換モジュール２３４自体の変更を行う必要がなくなり、工数負担を強いることもない。したがって、テーブルデータ部２３７を他のシステムに移植してもアドレスの書き換えをする必要がなく色変換処理や、キャリブレーション処理、さらにスクリーン処理を行うことができ利便性が向上する。
【実施例４】
【０１０５】
上述の例では、色変換モジュールのデータ処理部２３７をプログラムＲＯＭ２３の書き換え可能な領域やＮＶＲＡＭ２４に格納した例で説明したがそれ以外にも図２３に示すように書き換え可能な外部ＲＯＭ２９に格納するようにしてもよい。この場合、画像形成装置２に外部ＲＯＭインターフェース（Ｉ／Ｆ）２８を備え、外部ＲＯＭ２９が画像形成装置２に装填されたときにテーブルデータ２３７をＣＰＵ２０が読み出すことで上述の処理を行うことができる。この場合も、実施例３で説明したように各テーブル本体が格納された領域に関して基準アドレスからの相対アドレスを格納するようにすれば、外部ＲＯＭ２９のテーブルデータを例えばプログラムＲＯＭ２３にコピーしてもアドレスの修正なく各テーブルを読み出して色変換等の処理を行うことができる。
【０１０６】
また、上述の３つの例では画像形成装置２としてレーザプリンタの例で説明したが、これ以外にも各色のインクを装填したヘッドからインクを印刷媒体に吐出させて印刷を行うインクジェットプリンタやバブルジェット（登録商標）プリンタ、さらにプリンタ以外にも複写機やファクシミリ、これらの機能を備えた複合機であっても本発明を適用でき、同様の効果を得る。
【０１０７】
また、ホストコンピュータ１の例として、例えばパーソナルコンピュータが一般的であるが、それ以外にも携帯電話やＰＤＡ（Personal Digital Assistance）などの情報携帯端末であってもよい。
【図面の簡単な説明】
【０１０８】
【図１】画像形成装置２の構成を示す図である。
【図２】プログラムＲＯＭ２３の構成を示す図である。
【図３】ＮＶＲＡＭ２４にテーブルデータ部２３７が格納された場合の例を示す図である。
【図４】色変換モジュール（テーブルデータ部）２３７の構成を示す図である。
【図５】ＬＵＴテーブル選択のための概念図である。
【図６】図６（Ａ）はキャリブレーションテーブル選択のための概念図、図６（Ｂ）はスクリーンテーブル選択のための概念図である。
【図７】画像形成装置２の全体処理の動作を示すフローチャートである。
【図８】プリンタ起動処理の動作を示すフローチャートである。
【図９】モジュール立上げ処理の動作を示すフローチャートである。
【図１０】データ受信処理の動作を示すフローチャートである。
【図１１】言語処理の動作を示すフローチャートである。
【図１２】特殊言語起動処理の動作を示すフローチャートである。
【図１３】色変換処理の動作を示すフローチャートである。
【図１４】ＬＵＴの選択処理の動作を示すフローチャートである。
【図１５】キャリブレーションテーブル、スクリーンテーブルの選択処理の動作を示すフローチャートである。
【図１６】バンド作成処理の動作を示すフローチャートである。
【図１７】印刷処理の動作を示すフローチャートである。
【図１８】ＬＵＴテーブル選択のための概念図である。
【図１９】テーブルデータ部２３７の他の構成を示す図である。
【図２０】ＬＵＴの選択処理の動作を示すフローチャートである。
【図２１】キャリブレーションテーブル、スクリーンテーブルの選択処理の動作を示すフローチャートである。
【図２２】色変換モジュール（テーブルデータ部）２３７の構成を示す図である。
【図２３】画像形成装置２の他の構成を示す図である。
【符号の説明】
【０１０９】
１  ホストコンピュータ    ２  画像形成装置    ２０  ＣＰＵ    ２１  入力Ｉ／Ｆ    ２２  画像メモリ    ２３  プログラムＲＯＭ    ２３１  プリンタ起動モジュール    ２３２    データ受信モジュール    ２３３  言語モジュール    ２３４  色変換モジュール（データ処理部）    ２３５  バンド作成モジュール    ２３６  印刷モジュール    ２３７  色変換モジュール（テーブルデータ部）  ２３７ａ    マネージャＩＤ    ２３７ｂ  機種ＩＤ    ２３７ｃ  バージョン番号    ２３７ｄ  ＬＵＴテーブル    ２３７ｄ１  ＬＵＴテーブル領域    ２３７ｄ’１  ＬＵＴ０本体領域    ２３７ｇ  最大紙種    ２３７ｈ  最大スクリーン種    ２３７ｉ  最大色合わせ種  ２４  ＮＶＲＡＭ    ２７  表示部    ２９  外部ＲＯＭ
【図１】
2005204174.tif 000003
【図２】
2005204174.tif 000004
【図３】
2005204174.tif 000005
【図４】
2005204174.tif 000006
【図５】
2005204174.tif 000007
【図６】
2005204174.tif 000008
【図７】
2005204174.tif 000009
【図８】
2005204174.tif 000010
【図９】
2005204174.tif 000011
【図１０】
2005204174.tif 000012
【図１１】
2005204174.tif 000013
【図１２】
2005204174.tif 000014
【図１３】
2005204174.tif 000015
【図１４】
2005204174.tif 000016
【図１５】
2005204174.tif 000017
【図１６】
2005204174.tif 000018
【図１７】
2005204174.tif 000019
【図１８】
2005204174.tif 000020
【図１９】
2005204174.tif 000021
【図２０】
2005204174.tif 000022
【図２１】
2005204174.tif 000023
【図２２】
2005204174.tif 000024
【図２３】
2005204174.tif 000025