(57)【要約】【課題】描画不良の発生を抑えることができ、かつ、高速な画像形成処理を実現する画像形成装置の提供を目的とする。【解決手段】プリンタ１が、入力されたＰＤＬデータを解釈し、解釈結果に基づいて、ＰＤＬデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断する。描画命令が描画結果の物理座標空間上の配置位置に依存する場合、プリンタ１が、リユーザブルデータを対象とする描画命令をグラフィック処理せずにキャッシュデータを生成して記憶手段に格納する。描画命令が描画結果の物理座標空間上の配置位置に依存しない場合、プリンタ１が、リユーザブルデータを対象とする描画命令をグラフィック処理し、グラフィック処理の結果に基づいてキャッシュデータを生成して記憶手段に格納する。【選択図】図１
2012234454.tif 000002
【特許請求の範囲】
【請求項１】
ＰＤＬデータを入力する入力手段と、
前記入力されたＰＤＬデータを解釈する解釈手段と、
前記ＰＤＬデータの解釈結果に基づいて、該ＰＤＬデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断する第１の判断手段と、
前記描画命令が描画結果の物理座標空間上の配置位置に依存すると判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理せずに、前記ＰＤＬデータの解釈結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して記憶手段に格納し、前記描画命令が描画結果の物理座標空間上の配置位置に依存しないと判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理し、該グラフィック処理の結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して前記記憶手段に格納するキャッシュデータ生成手段とを備える
ことを特徴とする画像形成装置。
【請求項２】
前記ＰＤＬデータが含む実行対象の命令がリユーザブルデータを再利用する命令であるかを判断する第２の判断手段と、
前記実行対象の命令がリユーザブルデータを再利用する命令であると判断された場合に、前記記憶手段に格納された該リユーザブルデータに対応するキャッシュデータがグラフィック処理を必要とするかを判断する第３の判断手段と、
前記キャッシュデータがグラフィック処理を必要としないと判断された場合に、該キャッシュデータに基づいて描画データを生成し、前記キャッシュデータがグラフィック処理を必要とすると判断された場合に、該キャッシュデータに対して前記グラフィック処理を実行した上で描画データを生成する描画データ生成手段を備える
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記第１の判断手段は、前記ＰＤＬデータが含むリユーザブルデータを対象とする描画命令が、パターン描画命令を含むかを判断し、該描画命令がパターン描画命令を含む場合に、該描画命令が描画結果の物理座標空間上の配置位置に依存すると判断する
ことを特徴とする請求項１または請求項２に記載の画像形成装置。
【請求項４】
前記第１の判断手段は、前記ＰＤＬデータが含むリユーザブルデータを対象とする描画命令が、ストローク自動調整処理の実行が必要なストローク描画命令を含むかを判断し、該描画命令が、ストローク自動調整処理の実行が必要なストローク描画命令を含む場合に、該描画命令が描画結果の物理座標空間上の配置位置に依存すると判断する
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
ＰＤＬデータを入力し、
前記入力されたＰＤＬデータを解釈し、
前記ＰＤＬデータの解釈結果に基づいて、該ＰＤＬデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断し、
前記描画命令が描画結果の物理座標空間上の配置位置に依存すると判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理せずに、前記ＰＤＬデータの解釈結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して記憶手段に格納し、前記描画命令が描画結果の物理座標空間上の配置位置に依存しないと判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理し、該グラフィック処理の結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して前記記憶手段に格納する
ことを特徴とする画像形成装置の制御方法。
【請求項６】
請求項５に記載の画像形成装置の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成装置の制御方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
従来の画像形成処理について説明する。ページ記述言語（以下ＰＤＬ）データを解釈し、画像形成用ビットマップデータを作成する画像形成装置が提案されている。この画像形成装置は、まず、ＰＤＬデータを解釈処理する。次に、この画像形成装置は、ＰＤＬデータの解釈処理結果に基づいて、ＰＤＬデータ中の描画命令をグラフィック処理する。
【０００３】
グラフィック処理は、ＰＤＬデータ中の高度な描画命令を単純な塗りつぶし描画命令などに変換する処理である。次に、画像形成装置は、グラフィック処理後の描画命令に基づいて、ディスプレイリスト（ＤＬ）と呼ばれる中間データを作成する。そして、画像形成装置は、中間データに基づいて、レンダリングと呼ばれる画像形成用ビットマップデータ生成処理を実行する。例えば、特許文献１が開示する印刷装置は、中間言語を解釈し、画像データとしてラスタイメージと属性ビットとを出力し、出力した属性ビットを用いて、高画質な印刷出力を実現する。
【０００４】
次に、従来のＶＤＰ技術について説明する。ＰＰＭＬのように、ＰＤＬデータ形式の仕様でリユーザブルデータを規定するＶＤＰ技術が提案されている。ＰＰＭＬデータは、ＰＤＬデータ中に他のＰＤＬデータをコンテンツデータとして内包することができる。内包することができるＰＤＬデータは、例えば、ＰｏｓｔＳｃｒｉｐｔ（Ｒ）やＰＤＦのような、高度なグラフィック処理が必要なＰＤＬデータである。
【０００５】
ＰｏｓｔＳｃｒｉｐｔ（Ｒ）やＰＤＦは、繰り返し描画を可能にするパターン描画命令（例えば、ｐａｔｔｅｒｎ  ｄｉｃｔｉｏｎａｒｙ）のような高度な描画命令を持っている。また、ＰｏｓｔＳｃｒｉｐｔ（Ｒ）やＰＤＦは、物理ピクセル空間を意識したストローク描画処理をもっている。たとえば、物理ピクセル空間を意識したストローク描画処理として、Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔに代表される高画質な描画を実現する命令を持っている。また、ＰＰＭＬデータは、例えば、ＴＩＦＦのようなラスタイメージデータも内包可能である。
【０００６】
画像形成装置（プリンタ）は、上記内包されたＰＤＬデータがリユーザブルデータなのか否かが明示されていることを利用して、ＰＤＬデータ解釈処理し、グラフィック処理した後のリユーザブルデータをキャッシュすることができる。
【０００７】
プリンタは、キャッシュされたリユーザブルデータ（キャッシュデータ）を再利用し、異なる紙面上に配置する。これにより、プリンタは、パターン描画されるリユーザブルデータを内包するＰＤＬデータに対して解釈処理することができる。さらに、プリンタは、ＰＤＬデータ中の描画命令をグラフィック処理して中間データへの作成するまでの時間や、画像形成用ビットマップデータの生成（レンダリング処理）までの時間を短縮することができる。
【０００８】
次に、ＰｏｓｔＳｃｒｉｐｔ（Ｒ）について説明する。ＰｏｓｔＳｃｒｉｐｔ（Ｒ）は、その実装方法の定義はされていない。しかし、ＰＤＬデータの解釈処理、グラフィック処理およびレンダリング処理のアルゴリズムの概要が、所定の仕様として定められている。ここで、描画命令の論理空間上の配置位置は、物理ピクセル空間上の描画結果に依存する。その理由について以下に説明する。
【０００９】
ＰｏｓｔＳｃｒｉｐｔ言語は、プリンタ等のラスタビットマップを出力するデバイスを制御する機能を有する。ラスタビットマップを可視媒体上に出力できるデバイスは、ピクセルの集合である離散的なデバイス空間上のセルについて、ＰｏｓｔＳｃｒｉｐｔデータに従って色を決定する。デバイスは、ラスタビットマップの色を決定することによって、ＰｏｓｔＳｃｒｉｐｔデータに記述された文字描画命令や、ストローク、塗りつぶし描画命令、ラスタビットマップ描画命令などによる描画の可視像の形成を実現する。
【００１０】
ＰｏｓｔＳｃｒｉｐｔの仕様に従って、ラスタビットマップを形成するためには、ＰｏｓｔＳｃｒｉｐｔデータを解釈し画像形成するプリンタは、抽象的な情報を、ラスタビットマップ上の色情報ではなく、抽象度の低い情報に変換する必要がある。抽象的な情報は、文字描画命令や、ストローク、塗りつぶし描画命令、ラスタビットマップ描画命令などである。これらの描画命令は、デバイス空間から独立した論理座標系の情報を持っている。
【００１１】
描画命令は、論理座標系であるので、（１）連続的（離散的ではない）な座標情報、（２）描画位置決定をするために数値演算を伴う描画命令、（３）描画内容を決定するために、保存された手続きを必要とする描画命令という３つの情報を持つことができる。これらの情報をデバイス空間に変換するために、プリンタは、スキャンコンバーターを用いる。スキャンコンバーターは、描画命令の解釈結果に従い、各々の描画命令をフレームバッファやディスプレイリスト（ＤＬ）上の離散情報に変換する。例えば、スキャンコンバーターは、円などの図形を受け取ると、各々のピクセルがその描画命令の指定範囲の外側にあるか内側にあるかを決定する。スキャンコンバーターは、当該決定結果に基づいて、各々のピクセルの色情報を決定する。
【００１２】
次に、ＰｏｓｔＳｃｒｉｐｔにおけるグラフィック処理について説明する。ＰｏｓｔＳｃｒｉｐｔにおける描画命令には、主に以下のようなものがある。
ｆｉｌｌ        指定された領域を塗りつぶす
ｓｔｒｏｋｅ    線を描画する
ｉｍａｇｅ      ラスタビットマップを描画する
ｓｈｏｗ        グリフ（文字情報の可視形状）を描画する
さらに、色情報を指定する描画命令の一つとして以下のものがある。
ｍａｋｅｐｅｔｔｅｒｎ  パターンを生成する
【００１３】
プリンタは、上記の描画命令に対してグラフィック処理を行い、ついでレンダリング処理を行うことで描画結果を得る。パス構築アルゴリズムは、グラフィック処理に対応する処理である。ｆｉｌｌ，ｓｔｒｏｋｅ，ｓｈｏｗといった各描画命令は、描画命令中のパラメータを用いてカレントパスを描画する。パスは、図形とその位置を記述する線分、曲線で構成されている。線分、曲線は、パス構築命令を連続的に実行することによって得られる。例えば、パス構築命令は、ｎｅｗｐａｔｈ，ｍｏｖｅｔｏ，ｌｉｎｅｔｏ，ｃｕｒｖｅｔｏ，ａｒｃ，ｃｌｏｓｅｐａｔｈといった命令によって実現されている。
【００１４】
プリンタは、パス構築命令に従って得られたカレントパスを使いながら、以下の処理（ａ）〜（ｃ）の処理を繰り返すことで、各描画命令を描画する。（ａ）ＰｏｓｔＳｃｒｉｐｔの言語仕様に従い、データ解釈を実行する。（ｂ）パス構築命令を実行してカレントパスを構築する。（ｃ）描画命令を実行する。
【００１５】
次に、デバイス座標へのマッピング処理としてのレンダリング処理について説明する。プリンタが描画結果を得るためには、上述した描画命令の解釈中に、描画命令中の抽象度が高い論理空間をデバイス空間に変換する必要がある。この処理はレンダリング処理に部類される。
【００１６】
レンダリング処理の対象であるデバイス空間は、複数のピクセルと呼ばれる離散的な情報と対応付けられた色情報の集合によって成り立っている。一方、描画命令に記述された論理空間上の情報は、デバイス空間から独立していることによって、プリンタなどの個々の機器から独立した記述を保っている。すなわち、論理空間上の描画命令は、その単位や任意のグリッド上の位置に制約されない情報である。従って、ＰｏｓｔＳｃｒｉｐｔデータは、デバイス空間に独立した論理空間上の数値演算によって、描画位置を自由に指定することができる。
【００１７】
例えば、位置指定のための数値演算を行う命令として、ｔｒａｎｓｌａｔｅ，ｒｏｔａｔｅ，ｓｃａｌｅといった命令がある。プリンタは、このような抽象的な論理空間上の情報を、カレント変換行列に従って、デバイス空間上の情報に変換する。プリンタが、カレント変換行列によって各描画命令を線形変換することによって、デバイス空間上の連続的な位置情報を得ることができる。また、プリンタは、デバイス空間上の位置情報をさらに離散的な情報に変換することによって、複数のピクセルと呼ばれる離散的な情報と対応付けられた色情報の集合を得る。デバイス空間上の位置情報を離散情報に変換するルールがスキャンコンバージョンルールである。
【００１８】
ＰｏｓｔＳｃｒｉｐｔにおけるスキャンコンバージョンルールには、以下のような規定がある。座標とピクセルは、デバイス空間で表現される。図形は、カレントカラーやイメージで描画されるパスをさす。パスの座標値は、デバイス空間にマッピングされる。このマッピング処理では、デバイスピクセルの境界で丸められることはない。ここまでの処理は、連続的な空間情報に基づき演算される。
【００１９】
しかし、描画命令は、最終的にはデバイス空間上で離散的な情報に変換され、ピクセル上に配置される。ピクセルは、デバイス空間を構成する最小の正方形の領域である。従って、ＰｏｓｔＳｃｒｉｐｔの規定によれば、離散的な情報は、以下のような座標情報を持つ。例えば、デバイス座標系の連続的な座標情報が（ｘ，ｙ）である場合、離散的な座標情報（ｉ，ｊ）は、以下のように規定される。
（ｉ，ｊ）＝（ｆｌｏｏｒ（ｘ），ｆｌｏｏｒ（ｙ））
【００２０】
ここで、このピクセルに属する領域は、（ｘ' ，ｙ' ）のピクセル集合として定義すると、ｉ＜＝ｘ' ＜ｉ＋１、およびｊ＜＝ｙ' ＜ｊ＋１となる。このような規定に加えて、ＰｏｓｔＳｃｒｉｐｔは、以下のようなスキャンコンバージョンルールを有する。すなわち、ＰｏｓｔＳｃｒｉｐｔの規定に従うと、このピクセル上の位置に関係なく、連続的な座標情報が上記定義に従ったピクセル座標の範囲にあれば、その座標のピクセルに対して以下の処理が実行される。すなわち、ＰｏｓｔＳｃｒｉｐｔの規定に従えば、プリンタは、そのピクセルに対して描画命令に従った色情報をマッピングする。このようなルールを、一般に、ピクセルプレースメントルールという。
【００２１】
次に、Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ（ストローク自動調整）処理について説明する。ＰｏｓｔＳｃｒｉｐｔにおいては、さらに、ストローク描画命令に対する描画規定が存在する。レンダリング処理の結果得られるラスタビットマップ上で、パスは非常に細い線であると線幅が不均一に見えることがある。上述したスキャンコンバージョンルールに従うと、線幅は位置に応じて交差するデバイス空間上の離散的なピクセル数が異なることになる。
【００２２】
より好ましい描画結果を得るために、ＰｏｓｔＳｃｒｉｐｔには、以下のような規定がある。すなわち、レンダリング処理によって得られる描画結果を補正し、線幅を一定にする処理が規定されている。この処理においては、ストローク描画命令の連続的な座標値と離散的デバイス空間上の位置を考慮し、以下のようなＡｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理をする必要がある。
【００２３】
すなわち、Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理は、線幅とその端点を、最大誤差１／２ピクセル未満になるように調整する。さらに、Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理は、デバイス空間上に変換した後の線幅が１／２ピクセル未満である場合には、さらに１ピクセル幅に補正する。
【００２４】
このように、ＰｏｓｔＳｃｒｉｐｔの描画命令については、離散的なデバイス空間上にカレント変換行列を用いて位置情報が変換される。さらに、離散空間上のピクセルに依存するピクセルプレースメントルールを適用するまで、どのピクセルが塗られるかは確定することができないという特徴を持つ。
【００２５】
なお、Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理は、ｓｅｔｓｔｒｏｋｅａｄｊｕｓｔｍｅｎｔ命令によって、有効と無効とを切り替えることができる。ｓｅｔｓｔｒｏｋｅａｄｊｕｓｔｍｅｎｔ命令の引数は論理型をとる。
【００２６】
ＰＰＭＬ等のＰｏｓｔＳｃｒｉｐｔを内包することができるＰＤＬデータについては、プリンタがＰｏｓｔＳｃｒｉｐｔ解釈処理した後に描画位置が決定される。しかし、上述したストローク描画処理のように、ＰｏｓｔＳｃｒｉｐｔの描画処理は、ＰｏｓｔＳｃｒｉｐｔ解釈中のユーザ空間とデバイス空間とのマッピングに依存した描画である。すなわち、プリンタは、ＰｏｓｔＳｃｒｉｐｔの仕様に従うと、ＰＰＭＬの描画空間に依存しない空間で描画する必要がある。
【００２７】
次に、パターン描画命令について説明する。ＰｏｓｔＳｃｒｉｐｔにおけるパターン描画命令は、パターンセルと呼ばれる小さな図形の繰り返し描画命令である。従って、プリンタは、パターン描画命令に基づく描画を行うために、例えば、パターンセルの描画を構築する、領域を指定して、パターンセルを敷き詰めて描画する、といった処理を実行する必要がある。
【００２８】
セルの描画状態は、ＰａｉｎｔＰｒｏｃという命令で定義することができる。ＰａｉｎｔＰｒｏｃ命令をＴｉｌｌｉｎｇＰａｔｔｅｒｎ辞書内に登録することで、パターン描画命令を定義することができる。プリンタは、ＴｉｌｌｉｎｇＰａｔｔｅｒｎ辞書に対して、ｍａｋｅｐａｔｔｅｒｎ命令を実行するときに、パターン描画の描画処理をパターン座標系で行う。
【００２９】
上記パターン座標系は、ｍａｋｅｐａｔｔｅｒｎを実行する場合のカレント変換行列とｍａｔｒｉｘパラメータとに依存する。従って、このパターン座標系は、ｍａｋｅｐａｔｔｅｒを実行したときのユーザ座標系に固定される。すなわち、パターンセルのサイズや形状は、後に行われるカレント変換行列などから独立した座標系で描画される。従って、セルの敷き詰め方はユーザ空間という仮想的な紙面上の位置における描画に依存する。
【先行技術文献】
【特許文献】
【００３０】
【特許文献１】特開２００４−２６８５５３号公報
【特許文献２】特開２０１０−１７３２３６号公報
【発明の概要】
【発明が解決しようとする課題】
【００３１】
ＰＰＭＬ等の、ＰｏｓｔＳｃｒｉｐｔを内包することができるＰＤＬデータにおいては、ＰｏｓｔＳｃｒｉｐｔ解釈処理後に描画位置が決定する。しかし、パターン描画は、ＰｏｓｔＳｃｒｉｐｔ解釈中のユーザ空間に依存した描画である。すなわち、プリンタは，ＰｏｓｔＳｃｒｉｐｔの仕様に従うと、ＰＰＭＬの描画空間に依存しない空間で描画する必要がある。
【００３２】
しかし、従来のＶＤＰ技術では、内包されたＰＤＬデータの特徴に応じたキャッシュ方法がなかった。従って、高品質と高速を両立した印刷処理を実現することができなかった。例えば、上述したＰｏｓｔＳｃｒｉｐｔ（Ｒ）やＰＤＦのパターン描画命令（ｐａｔｔｅｒｎ  ｄｉｃｔｉｏｎａｒｙ）は、紙面上における描画位置に依存している。
【００３３】
すなわちパターン描画命令は、紙面上の描画位置に依存して、どの位置から開始して描画を繰り返すかが決定される。このような従来技術において、キャッシュデータは、ラスタビットマップデータかＰＤＬデータ解釈処理後の中間データで保存される。いずれのキャッシュデータ保存方法においても、キャッシュ時のＰＤＬデータ解釈に依存した描画結果がキャッシュされる。従って、プリンタが、キャッシュデータ再利用時に異なる場所に描画を行うと、正しく紙面上の描画位置を鑑みてどの位置から開始して描画を繰り返すかが決定できない。すなわち、描画不良が起こり得る。
【００３４】
また、ＰｏｓｔＳｃｒｉｐｔ（Ｒ）やＰＤＦのＡｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ機能も、どのピクセルを描画するかの判定は、描画対象の物理座標空間の位置に依存している。すなわち、Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ機能は、線描画が描画結果を描画する離散空間上のどの位置にあるかに依存して、線描画による描画ピクセルを決定する。
【００３５】
しかし、上述したようなキャッシュデータ保存方法においては、キャッシュ時のＰＤＬデータ解釈に依存した描画結果がキャッシュされる。従って、プリンタが、キャッシュデータ再利用時に異なる場所に描画を行った場合、紙面上の描画位置に応じてどの位置から開始して描画を繰り返すかを判断することができず、その結果、描画を正しく実行することが困難である。
【００３６】
すなわち、従来技術では、中間データに変換が容易なキャッシュデータを使って高速な画像形成処理を実現しようとすると、描画不良が起こり得るという問題がある。また、描画不良が起こらないように、物理座標空間の位置に依存しない情報をキャッシュすると、キャッシュデータの再利用時にグラフィック処理が必要となる。その結果、キャッシュデータの再利用を高速に行うことが困難となる。
【００３７】
本発明は、描画不良の発生を抑えることができ、かつ、高速な画像形成処理を実現する画像形成装置の提供を目的とする。
【課題を解決するための手段】
【００３８】
本発明の一実施形態の画像形成装置は、ＰＤＬデータを入力する入力手段と、前記入力されたＰＤＬデータを解釈する解釈手段と、前記ＰＤＬデータの解釈結果に基づいて、該ＰＤＬデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断する第１の判断手段と、前記描画命令が描画結果の物理座標空間上の配置位置に依存すると判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理せずに、前記ＰＤＬデータの解釈結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して記憶手段に格納し、前記描画命令が描画結果の物理座標空間上の配置位置に依存しないと判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理し、該グラフィック処理の結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して前記記憶手段に格納するキャッシュデータ生成手段とを備える。
【発明の効果】
【００３９】
本実施形態の画像形成装置は、ＰＤＬデータに含まれる、リユーザブルデータに対する実行対象の描画命令が、描画結果が物理座標空間の位置に依存する描画命令である場合に、この描画命令をグラフィック処理せずにキャッシュデータを生成する。これにより、このキャッシュデータを再利用する場合に、描画不良のない高品位な画像形成処理を実行することができる。
【００４０】
また、本実施形態の画像形成装置は、ＰＤＬデータに含まれる、リユーザブルデータに対する実行対象の描画命令が、描画結果が物理座標空間の位置に依存する描画命令でない場合に、この描画命令をグラフィック処理してキャッシュデータを生成する。これにより、このキャッシュデータを再利用することにより、画像処理時間を低減して高速な画像形成を実現することができる。
【図面の簡単な説明】
【００４１】
【図１】ＰＤＬデータの構造を説明する図である。
【図２】キャッシュデータの構造を説明する図である。
【図３】中間データの構造を説明する図である。
【図４】プリンタ内の諸装置を説明する図である。
【図５】本発明を実施するデータフローを説明する図である。
【図６】本発明を実施するフローチャートを説明する図である。
【図７】ストローク描画命令にかかる処理を説明する図である。
【図８】キャッシュデータの構造例を示す図である。
【図９】パターン描画命令の実行による描画処理を説明する図である。
【図１０】Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理を説明する図である。
【発明を実施するための形態】
【００４２】
図１は本実施形態のシステム構成例を示す図である。図１に示すシステムは、パーソナルコンピュータ２と、プリンタ１とを備える。パーソナルコンピュータ２とプリンタ１とは、所定の通信インタフェース３を介して通信可能である。
【００４３】
パーソナルコンピュータ２は、アプリケーションやミドルウェア、ドライバーソフトウェアを動作させ、ＰＤＬデータを生成する。パーソナルコンピュータ２は、生成したＰＤＬデータをプリンタ１に入力する。パーソナルコンピュータ２が、携帯情報機器、ワークステーション、メインフレーム、ストレージなどでもよい。プリンタ１は、本実施形態の画像形成装置である。プリンタ１は、入力されたＰＤＬデータを印刷処理して画像データを生成し、生成した画像データを可視媒体４上に出力する。この例では、可視媒体４は紙である。なお、プリンタ１の代わりに、ＭＦＰ（マルチファンクションプリンタ）や印刷機、ディスプレイ装置、電子ペーパー装置など、可視媒体上に可視情報を形成することができる任意の情報処理装置を適用することができる。
【００４４】
図２は、プリンタの構成例を示す図である。プリンタ１は、ＣＰＵ１１、ＲＡＭ１２、ＨＤＤ１３、ＲＩＰ  ＡＳＩＣ１４、電子写真エンジン１５を備える。また、プリンタ１は、ＵＳＢインタフェース１６、ＩＥＥＥ  １２８４インタフェース１７、ネットワーク装置１８を備える。ＣＰＵ１１乃至ネットワーク装置１８は、バスを介して接続されている。本実施形態の画像形成装置の制御方法は、図２に示すプリンタ１が備える各処理部の機能によって実現される。
【００４５】
ＵＳＢインタフェース１６とＩＥＥＥ  １２８４インタフェース１７とネットワーク装置１８は、外部装置からＰＤＬデータを入力する入力手段として機能する。具体的には、ＵＳＢインタフェース１６は、ＵＳＢ規格の外部装置（例えば、パーソナルコンピュータ２）を通じてＰＤＬデータを入力する。また、ＩＥＥＥ  １２８４インタフェース１７は、ＩＥＥＥ  １２８４規格のハードウェアを持つ外部装置を通じて、ＰＤＬデータを入力する。ネットワーク装置１８は、ネットワーク規格のハードウェアを持つ外部装置から、ＰＤＬデータを入力する。
【００４６】
ＣＰＵ１１は、バス１９に接続された各処理部との間でデータや命令をやり取りする。例えば、ＣＰＵ１１は、ＲＡＭ１２に保存された命令を実行することによって、後述するＰＤＬデータの解釈処理などを実行する。ＲＡＭ１２は、揮発性の記憶媒体である。ＲＡＭは、バス１９を介して、ＰＤＬデータや、ＣＰＵ１１が実行する命令を保存する。ＨＤＤ１３は、不揮発性の記憶媒体である。ＨＤＤ１３は、ＣＰＵ１１が実行するプログラムやデータを予め保存する。当該プログラムは、本実施形態の画像形成装置の制御方法を実現するコンピュータプログラムである。ＲＩＰ  ＡＳＩＣ１４は、中間データからラスタビットマップデータを生成する。電子写真エンジン１５は、ＲＩＰ  ＡＳＩＣ１４が生成したラスタビットマップデータを用いて、紙に代表される可視媒体上に可視情報を形成する。
【００４７】
図３は、ＰＤＬデータの構造例を説明する図である。ＰＤＬデータ１００は、プリンタ１が処理対象とするＰＤＬデータである。ＰＤＬデータ１００は、ＶＤＰ技術に適合するデータ構造（例えばＰＰＭＬ）を持つ。すなわち、ＰＤＬデータ１００は、データ内部にバリアブルコンテンツＰＤＬデータ１０２と、リユーザブルコンテンツＰＤＬデータ１０１とを内包することができる。コンテンツＰＤＬデータは、パターン描画命令１０１−１／１０２−１、ストローク文字命令１０１−２／１０２−２、文字描画命令１０１−３／１０２−３を持つことができる。また、コンテンツＰＤＬデータは、塗りつぶし描画命令１０１−４／１０２−４、ラスタビットマップ描画命令１０１−５／１０２−５を持つことができる。
【００４８】
パターン描画命令は、ＰｏｓｔＳｃｒｉｐｔ（Ｒ）のパターン描画命令（ｐａｔｔｅｒｎ  ｄｉｃｔｉｏｎａｒｙ）に相当する機能を持つ。また、ストローク描画命令は、ＰｏｓｔＳｃｒｉｐｔ（Ｒ）やＰＤＦのＡｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ機能を持つ。もちろん、ＰＤＬデータ１００は、上述した描画命令以外の描画命令を持つことができる。
【００４９】
なお、図３中に示すリユーザブルＩＤ情報１０１−６は、リユーザブルコンテンツＰＤＬデータ１０１を一意に識別する識別情報である。リユーザブルＩＤ情報１０３−１は、リユーザブルコンテンツＰＤＬデータ再利用命令が対象とするリユーザブルコンテンツＰＤＬデータを一意に識別する識別情報である。また、色処理命令１０７は、色処理の実行を指示する命令である。また、色処理設定情報１０４は、色処理の実行時に用いられる設定情報である。
【００５０】
図４は、プリンタによるＰＤＬデータの処理を説明する図である。プリンタ１が、ＰＤＬデータ１００を入力して、ＰＤＬデータの解釈処理を実行する。ＰＤＬデータの解釈処理は、ＰＤＬデータの中身を解析する処理である。次に、プリンタ１は、ＰＤＬデータの解釈処理結果に応じて、キャッシュデータ２０１または２０２を生成してＲＡＭ１２にキャッシュする。
【００５１】
キャッシュデータ２０１は、ラスタビットマップを含むキャッシュデータである。キャッシュデータ２０２は、グラフィック処理前のキャッシュデータである。また、プリンタ１は、ＰＤＬデータの解釈処理結果に応じて、ＰＤＬデータが含む描画命令をグラフィック処理する。また、プリンタ１は、ＰＤＬデータの解釈処理結果に応じて、ＰＤＬデータが含む描画命令をグラフィック処理した上でキャッシュデータ２０３を生成し、ＲＡＭ１２にキャッシュする。
【００５２】
次に、プリンタ１は、中間データ生成処理を実行する。プリンタ１は、キャッシュデータ２０１または２０３を再利用して中間データ３００を生成する。あるいは、プリンタ１は、キャッシュデータ２０２をグラフィック処理した上で、中間データ３００を生成する。プリンタ１は、ＰＤＬデータが含む描画命令をＰＤＬデータの解釈処理結果に応じてグラフィック処理した結果を用いて中間データ３００を生成するようにしてもよい。そして、プリンタ１は、中間データ３００を解釈して、画像形成用ビットマップデータ４００を生成する。
【００５３】
図５は、プリンタの動作処理例を説明するフローチャートである。まず、プリンタ１が、ＰＤＬデータ１００を入力して、ＲＡＭ１２に書き込む（ステップＳ１）。次に、プリンタ１のＣＰＵ１１が、ＲＡＭ１２に書き込まれたＰＤＬデータ１００の解釈処理を実行する解釈手段として機能する（ステップＳ２）。
【００５４】
次に、ＣＰＵ１１が、第２の判断手段として機能する。すなわち、ＣＰＵ１１は、ステップＳ２の解釈処理で読み込んだＰＤＬデータ１００に含まれる命令のうち、実行対象の命令が、リユーザブルコンテンツＰＤＬデータ再利用命令１０３（図３）であるかを判断する（ステップＳ３）。リユーザブルコンテンツＰＤＬデータ再利用命令１０３は、キャッシュデータを再利用し、中間データを生成することを指示する命令である。
【００５５】
実行対象の命令がリユーザブルコンテンツＰＤＬデータ再利用命令１０３である場合、ＣＰＵ１１が、第３の判断手段として機能する。すなわち、ＣＰＵ１１は、キャッシュデータ中に含まれる描画命令がグラフィック処理を必要とするかを判断する（ステップＳ１１）。キャッシュデータ中に含まれる描画命令がグラフィック処理を必要としない場合は、ステップＳ１３に進む。キャッシュデータ中に含まれる描画命令がグラフィック処理を必要とする場合、ＣＰＵ１１は、キャッシュデータに対してグラフィック処理を実行する（ステップＳ１２）。そして、ＣＰＵ１１が、キャッシュデータを解釈して、中間データを生成し（ステップＳ１３）、ステップＳ１６に進む。
【００５６】
実行対象の命令がリユーザブルコンテンツＰＤＬデータ再利用命令１０３でない場合、ＣＰＵ１１が、以下の処理を実行する。ＣＰＵ１１は、ステップＳ２の解釈処理で読み込んだＰＤＬデータ１００が含むコンテンツＰＤＬがリユーザブルコンテンツＰＤＬデータ（以下、リユーザブルデータと記述）１０３であるかを判断する（ステップＳ４）。
【００５７】
ＰＤＬデータ１００が含むコンテンツＰＤＬがリユーザブルデータ１０３でなく、バリアブルコンテンツＰＤＬデータ１０２である場合は、ステップＳ１４に進む。そして、ＣＰＵ１１が、上記ステップＳ２の解釈処理で読み込んだＰＤＬデータ１００が含む描画命令のグラフィック処理を実行し（ステップＳ１４）、ステップＳ１５に進む。
【００５８】
本実施形態において、グラフィック処理は、少なくともＰｏｓｔＳｃｒｉｐｔ（Ｒ）の仕様に定義されている以下の処理を含む。
ＣＴＭ変換処理
ｆｌａｔｔｅｎｐａｔｈ処理
Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理
Ｐａｔｔｅｒｎｓ処理
【００５９】
図６は、ｆｌａｔｔｅｎｐａｔｈ処理を説明する図である。図６（Ａ）は、Ｂｅｚｉｅｒ曲線の描画処理結果を示す。図６（Ｂ）は、図６（Ａ）に示す描画処理結果を出力する描画命令に対するｆｌａｔｔｅｎｐａｔｈ処理結果を示す。
【００６０】
グラフィック処理は、ＰＤＬデータの解釈処理（図５のＳ２）によって得られたＰＤＬデータ１００が含む描画命令の抽象度を、ＲＩＰ  ＡＳＩＣ１４が解釈できる中間データ３００の抽象度に落とす処理である。
【００６１】
ＰＤＬデータ１００中には、線幅指定やＢｅｚｉｅｒ曲線情報など、高度な数値演算を実行しなければ描画すべき形状を特定できない高度な描画命令（例えばストローク描画命令）が存在する。一方、ＲＩＰ  ＡＳＩＣ１４は、ＰＤＬデータ１００に含まれる高度な描画命令を処理することができない。従って、ＲＩＰ  ＡＳＩＣ１４が処理する中間データ３００は、塗りつぶし描画命令やラスタビットマップ描画命令のような、高度な数値演算が必要でない描画命令でなければならない。図７は、中間データ３００が持つ塗りつぶし描画命令３０１とラスタビットマップ描画命令３０２とを示す。
【００６２】
図６（Ｂ）に示すように、高度な情報を持つ描画命令の描画領域の外接形状を求め、Ｂｅｚｉｅｒ曲線を直線化することで、ＲＩＰ  ＡＳＩＣ１４が解釈可能な中間データ３００に変換可能な情報に変換することができる。
【００６３】
図５に戻って、ＣＰＵ１１が、ＲＩＰ  ＡＳＩＣ１４に指示して、中間データの生成処理を行い（ステップＳ１５）、ステップＳ１６に進む。中間データの生成処理によって、ＲＡＭ１２上に、ＲＩＰ  ＡＳＩＣ１４が解釈可能な描画命令が生成される。
【００６４】
上記ステップＳ４の判断処理において、ＰＤＬデータ１００が含むコンテンツＰＤＬがリユーザブルデータ１０３であると判断された場合、ＣＰＵ１１が、読み込んだＰＤＬデータ１００が含む命令がラスタビットマップ命令であるかを判断する（ステップＳ５）。読み込んだＰＤＬデータ１００が含む命令がラスタビットマップ命令である場合は、ステップＳ９に進む。そして、ＣＰＵ１１が、ラスタビットマップ命令中に含まれるラスターイメージと、ＰＤＬデータ１００が含むリユーザブルＩＤ情報１０３−１（図３）とに基づいて、キャッシュデータを生成してＲＡＭ１２に保存する（ステップＳ９）。
【００６５】
読み込んだＰＤＬデータ１００が含む命令がラスタビットマップ命令でない場合、ＣＰＵ１１は、ＰＤＬデータ１００に含まれる命令が、描画結果の物理座標空間上の配置位置に依存する描画命令であるかを判断する（ステップＳ６）。すなわち、ＣＰＵ１１は、ＰＤＬデータの解釈結果に基づいて、該ＰＤＬデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断する第１の判断手段として機能する。
【００６６】
ＰｏｓｔＳｃｒｉｐｔ（Ｒ）データ処理の場合、描画結果の物理座標空間上の配置位置に依存する描画命令は、例えば以下の描画命令である。
パターン描画命令
Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理を含むストローク描画命令
【００６７】
従って、ＣＰＵ１１は、例えば、ＰＤＬデータ１００が含む描画命令がパターン描画命令を含むかを判断し、該描画命令がパターン描画命令を含む場合に、該描画命令が描画結果の物理座標空間上の配置位置に依存すると判断する。また、ＣＰＵ１１は、ＰＤＬデータ１００が含む描画命令が、ストローク自動調整処理の実行が必要なストローク描画命令を含むかを判断する。ＣＰＵ１１は、該描画命令が、ストローク自動調整処理の実行が必要なストローク描画命令を含む場合に、該描画命令が描画結果の物理座標空間上の配置位置に依存すると判断する。
【００６８】
ＰＤＬデータ１００が含む描画命令が、描画結果の物理座標空間上の配置位置に依存する描画命令である場合、ＣＰＵ１１は、グラフィック処理を実行しない。そして、処理がステップＳ１０に進む。続いて、ＣＰＵ１１が、ＰＤＬデータ１００の解釈結果（Ｓ２）と、ＰＤＬデータ１００中のリユーザブルＩＤ情報１０３−１に基づいて、キャッシュデータを生成して、ＲＡＭ１２に保存する（ステップＳ１０）。そして、処理がステップＳ１６に進む。
【００６９】
すなわち、ＣＰＵ１１は、描画命令が描画結果の物理座標空間上の配置位置に依存すると判断された場合に、以下の処理を実行するキャッシュデータ生成手段として機能する。ＣＰＵ１１は、リユーザブルデータを対象とする描画命令をグラフィック処理せずに、ＰＤＬデータの解釈結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して記憶手段（ＲＡＭ）に格納する。
【００７０】
ＰＤＬデータ１００に含まれる描画命令が描画結果の物理座標空間上の配置位置に依存する描画命令でない場合、ＣＰＵ１１は、ＰＤＬデータ１００の解釈結果（Ｓ２）に基づき、リユーザブルデータを対象とする描画命令をグラフィック処理する（ステップＳ７）。
【００７１】
ステップＳ７において行われるグラフィック処理は、少なくともＰｏｓｔＳｃｒｉｐｔ（Ｒ）データ処理のうち、以下の処理を含む。
ＰＤＬデータ中の各描画命令に対するＣＴＭ変換処理
ストローク描画命令や塗りつぶし描画命令に対するｆｌａｔｔｅｎｐａｔｈ処理
【００７２】
次に、ＣＰＵ１１が、ステップＳ７におけるグラフィック処理の結果と、ＰＤＬデータ１００中のリユーザブルＩＤ情報１０３−１とに基づいて、リユーザブルデータに対応するキャッシュデータを生成してＲＡＭ１２に保存する（ステップＳ８）。そして、処理がステップＳ１６に進む。
【００７３】
ステップＳ１６において、ＣＰＵ１１が、読み込んだＰＤＬデータが終端であるかを判断する（ステップＳ１６）。読み込んだＰＤＬデータが終端でない場合は、ステップＳ１に戻る。読み込んだＰＤＬデータが終端である場合、ＣＰＵ１１が、以下の処理を実行する。すなわちＣＰＵ１１は、生成した中間データのＲＡＭ１２内の位置（アドレス情報）をＲＩＰ  ＡＳＩＣ１４に渡し、ＲＩＰ  ＡＳＩＣ１４に対して、中間データの解釈を開始する命令を発行する（ステップＳ１７）。ＲＩＰ  ＡＳＩＣ１４が、ＲＡＭ１２内の上記アドレス情報が示す位置にある中間データを解釈することによって、ＲＡＭ１２内に画像形成用ビットマップデータを生成する（ステップＳ１８）。
【００７４】
すなわち、ＣＰＵ１１は、描画データ生成手段として機能する。具体的には、ＣＰＵ１１は、キャッシュデータがグラフィック処理を必要としないと判断された場合に、該キャッシュデータに基づいて描画データを生成する（Ｓ１１でＮｏ，Ｓ１３乃至Ｓ１８）。また、ＣＰＵ１１は、キャッシュデータがグラフィック処理を必要とすると判断された場合に、該キャッシュデータに対してグラフィック処理を実行した上で描画データを生成する（Ｓ１１でＹｅｓ，Ｓ１２，Ｓ１３，Ｓ１６乃至Ｓ１８）。
【００７５】
上記ステップＳ１８においては、ＲＩＰ  ＡＳＩＣ１４は、さらに、電子写真エンジン１５に対して、生成した画像形成用ビットマップデータのＲＡＭ１２内のアドレス情報を通知する。そして、電子写真エンジン１５が、ＲＩＰ  ＡＳＩＣ１４から通知されたアドレス情報が示す位置にある画像形成用ビットマップデータをＲＡＭ１２から取得する。そして、電子写真エンジン１５が、取得した画像形成用ビットマップデータに基づいて、可視媒体上に可視像を生成する（ステップＳ１９）。
【００７６】
図８は、本実施形態においてＲＡＭに格納されるキャッシュデータの構造例を示す図である。キャッシュデータ２００は、ラスタビットマップを含むキャッシュデータ２０１、グラフィック処理前のキャッシュデータ２０２、またはグラフィック処理後のキャッシュデータ２０３のいずれかに分類される。
【００７７】
キャッシュデータ２０１は、ラスタビットマップ描画命令２０２−５と、色処理命令２０２−６とを持つことができる。キャッシュデータ２０１は、リユーザブルコンテンツＰＤＬデータ１０１が、例えばＴＩＦＦのようなラスタビットマップ画像である場合に生成される。リユーザブルコンテンツＰＤＬデータ１０１がラスタビットマップ描画命令１０１−５（図３）を含んでいる場合に、ＣＰＵ１１が、ラスタビットマップ描画命令１０１−５に基づいてキャッシュデータ２０１を生成する。
【００７８】
キャッシュデータ２０２は、ＰＤＬデータ１００内が含む描画命令のうち、パターン描画命令２０２−１、ストローク描画命令２０２−２、文字描画命令２０２−３、塗りつぶし描画命令２０２−４、ラスタビットマップ描画命令２０２−６を持つことができる。また、キャッシュデータ２０２は、色処理命令２０２−６を持つことができる。キャッシュデータ２０３は、塗りつぶし描画命令２０２−４と、ラスタビットマップ描画命令２０２−５とを持つことができる。なお、図８に示すリユーザブルＩＤ情報２００−１は、リユーザブルコンテンツＰＤＬデータ再利用命令が対象とするリユーザブルデータを一意に識別する識別情報である。また、色処理命令２００−２は、色処理命令２０２−６の実行時に用いられる設定情報である。
【００７９】
ＣＰＵ１１は、ＰＤＬデータ、またはキャッシュデータ２０１乃至２０３のいずれかに基づいて、中間データ３００（図７）を生成する。中間データ３００は、塗りつぶし描画命令３０１とラスタビットマップ描画命令３０２とを含む。
【００８０】
すなわち、中間データ３００は、グラフィック処理後のキャッシュデータ２０３と等価な描画命令を持つので、ＣＰＵ１１による変換処理コストは、グラフィック処理前のキャッシュデータ２０２を中間データ３００に変換する時の変換処理コストより小さい。グラフィック処理後のキャッシュデータ２０３は、グラフィック処理を施すことによって、表現可能な命令が限られている。しかし、グラフィック処理後のキャッシュデータ２０３は、グラフィック処理を行った後の描画命令を保存しているので、これを再利用することでＣＰＵ１１がグラフィック処理にかかる処理時間を削減することができる。これにより、プリンタ１が実行する画像形成処理にかかる時間を削減することができる。
【００８１】
以下に、図９及び１０を参照して、本実施形態の画像形成装置を適用した場合の効果を説明する。図９は、パターン描画命令の実行による描画処理を説明する図である。図９（Ａ）は、パターン描画命令の実行による描画処理結果を示す。
【００８２】
プリンタ１は、ＰＤＬデータ１００中のパターン描画命令に基づいて、図９（Ａ）に示す紙４上の指定された領域内に、同じ描画をパターン描画することができる。図９（Ａ）中の１００１は、パターン描画命令に基づく描画結果の一例である。
【００８３】
図９（Ｂ）は、パターン描画命令の実行による描画処理方法の例を示す。ＣＰＵ１１は、ＰＤＬデータ１００またはキャッシュデータ２００中のパターン描画命令を読み込む。ＣＰＵ１１は、まず、パターン描画命令が含むセル描画命令を実行する。セル描画命令は、パターン描画命令によってパターン描画されるべき、一つの描画単位の描画命令群である。図９（Ｂ）中の１００１−１が、パターン描画命令がパターン描画する一つの描画単位を示す。
【００８４】
ＣＰＵ１１は、セル描画命令に対するグラフィック処理を行う（図５のＳ１２，Ｓ１４を参照）。セル描画命令は、このグラフィック処理によって、紙４の左隅から下および右方向にパターン描画する命令群に変換される。なお、この例では、ＣＰＵ１１は、セル描画命令を、紙４の左隅からパターン描画する命令群に変換するが、ＣＰＵ１１が、セル描画命令を、紙４の他の隅からパターン描画する命令群に変換するようにしてもよい。
【００８５】
次に、ＣＰＵ１１が、パターン描画命令が含むパターン描画領域指定命令を実行する。パターン描画領域指定命令は、パターン描画命令によってパターン描画されるべき領域（描画対象領域）を指定する命令である。この例では、パターン描画領域指定命令は、図９（Ｂ）に示す領域１００１−２を描画対象領域として指定する。
【００８６】
ＣＰＵ１１は、ＰＤＬデータ１００またはキャッシュデータ２００に基づいて、パターン描画領域指定命令が示す描画対象領域をパターン描画する命令を持つ中間データ３００を生成する。
【００８７】
当該中間データ中のパターン描画命令が含む描画命令群には、塗りつぶし描画命令と、ラスタビットマップ描画命令とが含まれる。すなわち、パターン描画命令中のパターン描画するための情報が失われ、紙４上のどこに、どのような描画を行うべきかの情報のみが残される。
【００８８】
ここで、パターン描画命令は、紙面上のどこに描画されるべきかによって描画結果が異なる命令の例である。パターン描画命令による描画開始原点は、常に紙の隅である。従って、指定された描画対象領域の位置によって、紙４上の描画領域への描画結果が異なってしまう。
【００８９】
図９（Ｂ）中の描画対象領域１００１−２が指定されている場合、紙４上には、図９（Ａ）に示すように、描画開始位置が人の顔の略下半分からである描画結果が描画される。しかし、描画対象領域１００１−２とは異なる描画対象領域が指定されている場合、紙４上には、図９（Ａ）の１００２に示すように、描画開始位置が人の顔の略右半分からである描画結果が描画される。
【００９０】
従って、再利用されるキャッシュデータが、グラフィック処理済みのパターン描画命令を含む場合、当該キャッシュデータを再利用して描画すると、本来の描画開始位置と異なる位置から描画が開始されてしまう（描画不良が発生する）。
【００９１】
本実施形態の画像形成装置（プリンタ１）は、ＰＤＬデータ１００中に含まれる命令がパターン描画命令である場合に、グラフィック処理を実行せずにキャッシュデータを生成する。そして、当該キャッシュデータの再利用時にグラフィック処理を実行する。従って、本実施形態の画像形成装置によれば、描画不良のない高品位な描画結果を得ることができる。
【００９２】
図１０は、Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理を説明する図である。Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理は、ＰＤＬデータ１００が含むストローク描画命令を塗りつぶし描画命令に変換する時に実行される処理である。
【００９３】
ストローク描画命令は、図１０に示すように、画像形成用ビットマップデータ上の離散空間（デバイスピクセル空間）における各々のピクセル４０１の位置に基づいて、塗りつぶし描画命令に変換される。図１０中の１００３は、ストローク描画命令の実行による描画結果を示す。また、１００４は、Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理が行われない場合の塗りつぶし描画命令による描画結果を示す。
【００９４】
Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理は、塗りつぶされてしまうピクセルを制御し、描画結果の線幅が一定になるように制御する処理である。ストローク描画命令を描画結果の線幅が一定になるようにする塗りつぶし描画命令に変換する処理は、グラフィック処理において行われる。
【００９５】
Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理は、デバイスピクセル空間の描画位置に依存する処理である。従って、ＣＰＵ１１が、Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理を含むストローク描画命令に対するグラフィック処理を行った上でキャッシュデータを生成すると、当該キャッシュデータを再利用する時に、描画不良が起こる。
【００９６】
本実施形態の画像形成装置は、ＰＤＬデータ１００中に含まれる命令が，Ａｕｔｏｍａｔｉｃ  Ｓｔｒｏｋｅ  Ａｄｊｕｓｔｍｅｎｔ処理を含むストローク描画命令である場合に、グラフィック処理を実行せずにキャッシュデータを生成する。そして、当該キャッシュデータの再利用時にグラフィック処理を実行する。従って、本実施形態の画像形成装置によれば、描画不良のない高品位な描画結果を得ることができる。
【００９７】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００９８】
１  プリンタ
２  パーソナルコンピュータ
【図１】
2012234454.tif 000003
【図２】
2012234454.tif 000004
【図３】
2012234454.tif 000005
【図４】
2012234454.tif 000006
【図５】
2012234454.tif 000007
【図６】
2012234454.tif 000008
【図７】
2012234454.tif 000009
【図８】
2012234454.tif 000010
【図９】
2012234454.tif 000011
【図１０】
2012234454.tif 000012