説明

画像形成装置、画像形成装置の制御方法およびコンピュータプログラム

【課題】描画不良の発生を抑えることができ、かつ、高速な画像形成処理を実現する画像形成装置の提供を目的とする。
【解決手段】プリンタ1が、入力されたPDLデータを解釈し、解釈結果に基づいて、PDLデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断する。描画命令が描画結果の物理座標空間上の配置位置に依存する場合、プリンタ1が、リユーザブルデータを対象とする描画命令をグラフィック処理せずにキャッシュデータを生成して記憶手段に格納する。描画命令が描画結果の物理座標空間上の配置位置に依存しない場合、プリンタ1が、リユーザブルデータを対象とする描画命令をグラフィック処理し、グラフィック処理の結果に基づいてキャッシュデータを生成して記憶手段に格納する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置、画像形成装置の制御方法およびコンピュータプログラムに関する。
【背景技術】
【0002】
従来の画像形成処理について説明する。ページ記述言語(以下PDL)データを解釈し、画像形成用ビットマップデータを作成する画像形成装置が提案されている。この画像形成装置は、まず、PDLデータを解釈処理する。次に、この画像形成装置は、PDLデータの解釈処理結果に基づいて、PDLデータ中の描画命令をグラフィック処理する。
【0003】
グラフィック処理は、PDLデータ中の高度な描画命令を単純な塗りつぶし描画命令などに変換する処理である。次に、画像形成装置は、グラフィック処理後の描画命令に基づいて、ディスプレイリスト(DL)と呼ばれる中間データを作成する。そして、画像形成装置は、中間データに基づいて、レンダリングと呼ばれる画像形成用ビットマップデータ生成処理を実行する。例えば、特許文献1が開示する印刷装置は、中間言語を解釈し、画像データとしてラスタイメージと属性ビットとを出力し、出力した属性ビットを用いて、高画質な印刷出力を実現する。
【0004】
次に、従来のVDP技術について説明する。PPMLのように、PDLデータ形式の仕様でリユーザブルデータを規定するVDP技術が提案されている。PPMLデータは、PDLデータ中に他のPDLデータをコンテンツデータとして内包することができる。内包することができるPDLデータは、例えば、PostScript(R)やPDFのような、高度なグラフィック処理が必要なPDLデータである。
【0005】
PostScript(R)やPDFは、繰り返し描画を可能にするパターン描画命令(例えば、pattern dictionary)のような高度な描画命令を持っている。また、PostScript(R)やPDFは、物理ピクセル空間を意識したストローク描画処理をもっている。たとえば、物理ピクセル空間を意識したストローク描画処理として、Automatic Stroke Adjustmentに代表される高画質な描画を実現する命令を持っている。また、PPMLデータは、例えば、TIFFのようなラスタイメージデータも内包可能である。
【0006】
画像形成装置(プリンタ)は、上記内包されたPDLデータがリユーザブルデータなのか否かが明示されていることを利用して、PDLデータ解釈処理し、グラフィック処理した後のリユーザブルデータをキャッシュすることができる。
【0007】
プリンタは、キャッシュされたリユーザブルデータ(キャッシュデータ)を再利用し、異なる紙面上に配置する。これにより、プリンタは、パターン描画されるリユーザブルデータを内包するPDLデータに対して解釈処理することができる。さらに、プリンタは、PDLデータ中の描画命令をグラフィック処理して中間データへの作成するまでの時間や、画像形成用ビットマップデータの生成(レンダリング処理)までの時間を短縮することができる。
【0008】
次に、PostScript(R)について説明する。PostScript(R)は、その実装方法の定義はされていない。しかし、PDLデータの解釈処理、グラフィック処理およびレンダリング処理のアルゴリズムの概要が、所定の仕様として定められている。ここで、描画命令の論理空間上の配置位置は、物理ピクセル空間上の描画結果に依存する。その理由について以下に説明する。
【0009】
PostScript言語は、プリンタ等のラスタビットマップを出力するデバイスを制御する機能を有する。ラスタビットマップを可視媒体上に出力できるデバイスは、ピクセルの集合である離散的なデバイス空間上のセルについて、PostScriptデータに従って色を決定する。デバイスは、ラスタビットマップの色を決定することによって、PostScriptデータに記述された文字描画命令や、ストローク、塗りつぶし描画命令、ラスタビットマップ描画命令などによる描画の可視像の形成を実現する。
【0010】
PostScriptの仕様に従って、ラスタビットマップを形成するためには、PostScriptデータを解釈し画像形成するプリンタは、抽象的な情報を、ラスタビットマップ上の色情報ではなく、抽象度の低い情報に変換する必要がある。抽象的な情報は、文字描画命令や、ストローク、塗りつぶし描画命令、ラスタビットマップ描画命令などである。これらの描画命令は、デバイス空間から独立した論理座標系の情報を持っている。
【0011】
描画命令は、論理座標系であるので、(1)連続的(離散的ではない)な座標情報、(2)描画位置決定をするために数値演算を伴う描画命令、(3)描画内容を決定するために、保存された手続きを必要とする描画命令という3つの情報を持つことができる。これらの情報をデバイス空間に変換するために、プリンタは、スキャンコンバーターを用いる。スキャンコンバーターは、描画命令の解釈結果に従い、各々の描画命令をフレームバッファやディスプレイリスト(DL)上の離散情報に変換する。例えば、スキャンコンバーターは、円などの図形を受け取ると、各々のピクセルがその描画命令の指定範囲の外側にあるか内側にあるかを決定する。スキャンコンバーターは、当該決定結果に基づいて、各々のピクセルの色情報を決定する。
【0012】
次に、PostScriptにおけるグラフィック処理について説明する。PostScriptにおける描画命令には、主に以下のようなものがある。
fill 指定された領域を塗りつぶす
stroke 線を描画する
image ラスタビットマップを描画する
show グリフ(文字情報の可視形状)を描画する
さらに、色情報を指定する描画命令の一つとして以下のものがある。
makepettern パターンを生成する
【0013】
プリンタは、上記の描画命令に対してグラフィック処理を行い、ついでレンダリング処理を行うことで描画結果を得る。パス構築アルゴリズムは、グラフィック処理に対応する処理である。fill,stroke,showといった各描画命令は、描画命令中のパラメータを用いてカレントパスを描画する。パスは、図形とその位置を記述する線分、曲線で構成されている。線分、曲線は、パス構築命令を連続的に実行することによって得られる。例えば、パス構築命令は、newpath,moveto,lineto,curveto,arc,closepathといった命令によって実現されている。
【0014】
プリンタは、パス構築命令に従って得られたカレントパスを使いながら、以下の処理(a)〜(c)の処理を繰り返すことで、各描画命令を描画する。(a)PostScriptの言語仕様に従い、データ解釈を実行する。(b)パス構築命令を実行してカレントパスを構築する。(c)描画命令を実行する。
【0015】
次に、デバイス座標へのマッピング処理としてのレンダリング処理について説明する。プリンタが描画結果を得るためには、上述した描画命令の解釈中に、描画命令中の抽象度が高い論理空間をデバイス空間に変換する必要がある。この処理はレンダリング処理に部類される。
【0016】
レンダリング処理の対象であるデバイス空間は、複数のピクセルと呼ばれる離散的な情報と対応付けられた色情報の集合によって成り立っている。一方、描画命令に記述された論理空間上の情報は、デバイス空間から独立していることによって、プリンタなどの個々の機器から独立した記述を保っている。すなわち、論理空間上の描画命令は、その単位や任意のグリッド上の位置に制約されない情報である。従って、PostScriptデータは、デバイス空間に独立した論理空間上の数値演算によって、描画位置を自由に指定することができる。
【0017】
例えば、位置指定のための数値演算を行う命令として、translate,rotate,scaleといった命令がある。プリンタは、このような抽象的な論理空間上の情報を、カレント変換行列に従って、デバイス空間上の情報に変換する。プリンタが、カレント変換行列によって各描画命令を線形変換することによって、デバイス空間上の連続的な位置情報を得ることができる。また、プリンタは、デバイス空間上の位置情報をさらに離散的な情報に変換することによって、複数のピクセルと呼ばれる離散的な情報と対応付けられた色情報の集合を得る。デバイス空間上の位置情報を離散情報に変換するルールがスキャンコンバージョンルールである。
【0018】
PostScriptにおけるスキャンコンバージョンルールには、以下のような規定がある。座標とピクセルは、デバイス空間で表現される。図形は、カレントカラーやイメージで描画されるパスをさす。パスの座標値は、デバイス空間にマッピングされる。このマッピング処理では、デバイスピクセルの境界で丸められることはない。ここまでの処理は、連続的な空間情報に基づき演算される。
【0019】
しかし、描画命令は、最終的にはデバイス空間上で離散的な情報に変換され、ピクセル上に配置される。ピクセルは、デバイス空間を構成する最小の正方形の領域である。従って、PostScriptの規定によれば、離散的な情報は、以下のような座標情報を持つ。例えば、デバイス座標系の連続的な座標情報が(x,y)である場合、離散的な座標情報(i,j)は、以下のように規定される。
(i,j)=(floor(x),floor(y))
【0020】
ここで、このピクセルに属する領域は、(x' ,y' )のピクセル集合として定義すると、i<=x' <i+1、およびj<=y' <j+1となる。このような規定に加えて、PostScriptは、以下のようなスキャンコンバージョンルールを有する。すなわち、PostScriptの規定に従うと、このピクセル上の位置に関係なく、連続的な座標情報が上記定義に従ったピクセル座標の範囲にあれば、その座標のピクセルに対して以下の処理が実行される。すなわち、PostScriptの規定に従えば、プリンタは、そのピクセルに対して描画命令に従った色情報をマッピングする。このようなルールを、一般に、ピクセルプレースメントルールという。
【0021】
次に、Automatic Stroke Adjustment(ストローク自動調整)処理について説明する。PostScriptにおいては、さらに、ストローク描画命令に対する描画規定が存在する。レンダリング処理の結果得られるラスタビットマップ上で、パスは非常に細い線であると線幅が不均一に見えることがある。上述したスキャンコンバージョンルールに従うと、線幅は位置に応じて交差するデバイス空間上の離散的なピクセル数が異なることになる。
【0022】
より好ましい描画結果を得るために、PostScriptには、以下のような規定がある。すなわち、レンダリング処理によって得られる描画結果を補正し、線幅を一定にする処理が規定されている。この処理においては、ストローク描画命令の連続的な座標値と離散的デバイス空間上の位置を考慮し、以下のようなAutomatic Stroke Adjustment処理をする必要がある。
【0023】
すなわち、Automatic Stroke Adjustment処理は、線幅とその端点を、最大誤差1/2ピクセル未満になるように調整する。さらに、Automatic Stroke Adjustment処理は、デバイス空間上に変換した後の線幅が1/2ピクセル未満である場合には、さらに1ピクセル幅に補正する。
【0024】
このように、PostScriptの描画命令については、離散的なデバイス空間上にカレント変換行列を用いて位置情報が変換される。さらに、離散空間上のピクセルに依存するピクセルプレースメントルールを適用するまで、どのピクセルが塗られるかは確定することができないという特徴を持つ。
【0025】
なお、Automatic Stroke Adjustment処理は、setstrokeadjustment命令によって、有効と無効とを切り替えることができる。setstrokeadjustment命令の引数は論理型をとる。
【0026】
PPML等のPostScriptを内包することができるPDLデータについては、プリンタがPostScript解釈処理した後に描画位置が決定される。しかし、上述したストローク描画処理のように、PostScriptの描画処理は、PostScript解釈中のユーザ空間とデバイス空間とのマッピングに依存した描画である。すなわち、プリンタは、PostScriptの仕様に従うと、PPMLの描画空間に依存しない空間で描画する必要がある。
【0027】
次に、パターン描画命令について説明する。PostScriptにおけるパターン描画命令は、パターンセルと呼ばれる小さな図形の繰り返し描画命令である。従って、プリンタは、パターン描画命令に基づく描画を行うために、例えば、パターンセルの描画を構築する、領域を指定して、パターンセルを敷き詰めて描画する、といった処理を実行する必要がある。
【0028】
セルの描画状態は、PaintProcという命令で定義することができる。PaintProc命令をTillingPattern辞書内に登録することで、パターン描画命令を定義することができる。プリンタは、TillingPattern辞書に対して、makepattern命令を実行するときに、パターン描画の描画処理をパターン座標系で行う。
【0029】
上記パターン座標系は、makepatternを実行する場合のカレント変換行列とmatrixパラメータとに依存する。従って、このパターン座標系は、makepatterを実行したときのユーザ座標系に固定される。すなわち、パターンセルのサイズや形状は、後に行われるカレント変換行列などから独立した座標系で描画される。従って、セルの敷き詰め方はユーザ空間という仮想的な紙面上の位置における描画に依存する。
【先行技術文献】
【特許文献】
【0030】
【特許文献1】特開2004−268553号公報
【特許文献2】特開2010−173236号公報
【発明の概要】
【発明が解決しようとする課題】
【0031】
PPML等の、PostScriptを内包することができるPDLデータにおいては、PostScript解釈処理後に描画位置が決定する。しかし、パターン描画は、PostScript解釈中のユーザ空間に依存した描画である。すなわち、プリンタは,PostScriptの仕様に従うと、PPMLの描画空間に依存しない空間で描画する必要がある。
【0032】
しかし、従来のVDP技術では、内包されたPDLデータの特徴に応じたキャッシュ方法がなかった。従って、高品質と高速を両立した印刷処理を実現することができなかった。例えば、上述したPostScript(R)やPDFのパターン描画命令(pattern dictionary)は、紙面上における描画位置に依存している。
【0033】
すなわちパターン描画命令は、紙面上の描画位置に依存して、どの位置から開始して描画を繰り返すかが決定される。このような従来技術において、キャッシュデータは、ラスタビットマップデータかPDLデータ解釈処理後の中間データで保存される。いずれのキャッシュデータ保存方法においても、キャッシュ時のPDLデータ解釈に依存した描画結果がキャッシュされる。従って、プリンタが、キャッシュデータ再利用時に異なる場所に描画を行うと、正しく紙面上の描画位置を鑑みてどの位置から開始して描画を繰り返すかが決定できない。すなわち、描画不良が起こり得る。
【0034】
また、PostScript(R)やPDFのAutomatic Stroke Adjustment機能も、どのピクセルを描画するかの判定は、描画対象の物理座標空間の位置に依存している。すなわち、Automatic Stroke Adjustment機能は、線描画が描画結果を描画する離散空間上のどの位置にあるかに依存して、線描画による描画ピクセルを決定する。
【0035】
しかし、上述したようなキャッシュデータ保存方法においては、キャッシュ時のPDLデータ解釈に依存した描画結果がキャッシュされる。従って、プリンタが、キャッシュデータ再利用時に異なる場所に描画を行った場合、紙面上の描画位置に応じてどの位置から開始して描画を繰り返すかを判断することができず、その結果、描画を正しく実行することが困難である。
【0036】
すなわち、従来技術では、中間データに変換が容易なキャッシュデータを使って高速な画像形成処理を実現しようとすると、描画不良が起こり得るという問題がある。また、描画不良が起こらないように、物理座標空間の位置に依存しない情報をキャッシュすると、キャッシュデータの再利用時にグラフィック処理が必要となる。その結果、キャッシュデータの再利用を高速に行うことが困難となる。
【0037】
本発明は、描画不良の発生を抑えることができ、かつ、高速な画像形成処理を実現する画像形成装置の提供を目的とする。
【課題を解決するための手段】
【0038】
本発明の一実施形態の画像形成装置は、PDLデータを入力する入力手段と、前記入力されたPDLデータを解釈する解釈手段と、前記PDLデータの解釈結果に基づいて、該PDLデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断する第1の判断手段と、前記描画命令が描画結果の物理座標空間上の配置位置に依存すると判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理せずに、前記PDLデータの解釈結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して記憶手段に格納し、前記描画命令が描画結果の物理座標空間上の配置位置に依存しないと判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理し、該グラフィック処理の結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して前記記憶手段に格納するキャッシュデータ生成手段とを備える。
【発明の効果】
【0039】
本実施形態の画像形成装置は、PDLデータに含まれる、リユーザブルデータに対する実行対象の描画命令が、描画結果が物理座標空間の位置に依存する描画命令である場合に、この描画命令をグラフィック処理せずにキャッシュデータを生成する。これにより、このキャッシュデータを再利用する場合に、描画不良のない高品位な画像形成処理を実行することができる。
【0040】
また、本実施形態の画像形成装置は、PDLデータに含まれる、リユーザブルデータに対する実行対象の描画命令が、描画結果が物理座標空間の位置に依存する描画命令でない場合に、この描画命令をグラフィック処理してキャッシュデータを生成する。これにより、このキャッシュデータを再利用することにより、画像処理時間を低減して高速な画像形成を実現することができる。
【図面の簡単な説明】
【0041】
【図1】PDLデータの構造を説明する図である。
【図2】キャッシュデータの構造を説明する図である。
【図3】中間データの構造を説明する図である。
【図4】プリンタ内の諸装置を説明する図である。
【図5】本発明を実施するデータフローを説明する図である。
【図6】本発明を実施するフローチャートを説明する図である。
【図7】ストローク描画命令にかかる処理を説明する図である。
【図8】キャッシュデータの構造例を示す図である。
【図9】パターン描画命令の実行による描画処理を説明する図である。
【図10】Automatic Stroke Adjustment処理を説明する図である。
【発明を実施するための形態】
【0042】
図1は本実施形態のシステム構成例を示す図である。図1に示すシステムは、パーソナルコンピュータ2と、プリンタ1とを備える。パーソナルコンピュータ2とプリンタ1とは、所定の通信インタフェース3を介して通信可能である。
【0043】
パーソナルコンピュータ2は、アプリケーションやミドルウェア、ドライバーソフトウェアを動作させ、PDLデータを生成する。パーソナルコンピュータ2は、生成したPDLデータをプリンタ1に入力する。パーソナルコンピュータ2が、携帯情報機器、ワークステーション、メインフレーム、ストレージなどでもよい。プリンタ1は、本実施形態の画像形成装置である。プリンタ1は、入力されたPDLデータを印刷処理して画像データを生成し、生成した画像データを可視媒体4上に出力する。この例では、可視媒体4は紙である。なお、プリンタ1の代わりに、MFP(マルチファンクションプリンタ)や印刷機、ディスプレイ装置、電子ペーパー装置など、可視媒体上に可視情報を形成することができる任意の情報処理装置を適用することができる。
【0044】
図2は、プリンタの構成例を示す図である。プリンタ1は、CPU11、RAM12、HDD13、RIP ASIC14、電子写真エンジン15を備える。また、プリンタ1は、USBインタフェース16、IEEE 1284インタフェース17、ネットワーク装置18を備える。CPU11乃至ネットワーク装置18は、バスを介して接続されている。本実施形態の画像形成装置の制御方法は、図2に示すプリンタ1が備える各処理部の機能によって実現される。
【0045】
USBインタフェース16とIEEE 1284インタフェース17とネットワーク装置18は、外部装置からPDLデータを入力する入力手段として機能する。具体的には、USBインタフェース16は、USB規格の外部装置(例えば、パーソナルコンピュータ2)を通じてPDLデータを入力する。また、IEEE 1284インタフェース17は、IEEE 1284規格のハードウェアを持つ外部装置を通じて、PDLデータを入力する。ネットワーク装置18は、ネットワーク規格のハードウェアを持つ外部装置から、PDLデータを入力する。
【0046】
CPU11は、バス19に接続された各処理部との間でデータや命令をやり取りする。例えば、CPU11は、RAM12に保存された命令を実行することによって、後述するPDLデータの解釈処理などを実行する。RAM12は、揮発性の記憶媒体である。RAMは、バス19を介して、PDLデータや、CPU11が実行する命令を保存する。HDD13は、不揮発性の記憶媒体である。HDD13は、CPU11が実行するプログラムやデータを予め保存する。当該プログラムは、本実施形態の画像形成装置の制御方法を実現するコンピュータプログラムである。RIP ASIC14は、中間データからラスタビットマップデータを生成する。電子写真エンジン15は、RIP ASIC14が生成したラスタビットマップデータを用いて、紙に代表される可視媒体上に可視情報を形成する。
【0047】
図3は、PDLデータの構造例を説明する図である。PDLデータ100は、プリンタ1が処理対象とするPDLデータである。PDLデータ100は、VDP技術に適合するデータ構造(例えばPPML)を持つ。すなわち、PDLデータ100は、データ内部にバリアブルコンテンツPDLデータ102と、リユーザブルコンテンツPDLデータ101とを内包することができる。コンテンツPDLデータは、パターン描画命令101−1/102−1、ストローク文字命令101−2/102−2、文字描画命令101−3/102−3を持つことができる。また、コンテンツPDLデータは、塗りつぶし描画命令101−4/102−4、ラスタビットマップ描画命令101−5/102−5を持つことができる。
【0048】
パターン描画命令は、PostScript(R)のパターン描画命令(pattern dictionary)に相当する機能を持つ。また、ストローク描画命令は、PostScript(R)やPDFのAutomatic Stroke Adjustment機能を持つ。もちろん、PDLデータ100は、上述した描画命令以外の描画命令を持つことができる。
【0049】
なお、図3中に示すリユーザブルID情報101−6は、リユーザブルコンテンツPDLデータ101を一意に識別する識別情報である。リユーザブルID情報103−1は、リユーザブルコンテンツPDLデータ再利用命令が対象とするリユーザブルコンテンツPDLデータを一意に識別する識別情報である。また、色処理命令107は、色処理の実行を指示する命令である。また、色処理設定情報104は、色処理の実行時に用いられる設定情報である。
【0050】
図4は、プリンタによるPDLデータの処理を説明する図である。プリンタ1が、PDLデータ100を入力して、PDLデータの解釈処理を実行する。PDLデータの解釈処理は、PDLデータの中身を解析する処理である。次に、プリンタ1は、PDLデータの解釈処理結果に応じて、キャッシュデータ201または202を生成してRAM12にキャッシュする。
【0051】
キャッシュデータ201は、ラスタビットマップを含むキャッシュデータである。キャッシュデータ202は、グラフィック処理前のキャッシュデータである。また、プリンタ1は、PDLデータの解釈処理結果に応じて、PDLデータが含む描画命令をグラフィック処理する。また、プリンタ1は、PDLデータの解釈処理結果に応じて、PDLデータが含む描画命令をグラフィック処理した上でキャッシュデータ203を生成し、RAM12にキャッシュする。
【0052】
次に、プリンタ1は、中間データ生成処理を実行する。プリンタ1は、キャッシュデータ201または203を再利用して中間データ300を生成する。あるいは、プリンタ1は、キャッシュデータ202をグラフィック処理した上で、中間データ300を生成する。プリンタ1は、PDLデータが含む描画命令をPDLデータの解釈処理結果に応じてグラフィック処理した結果を用いて中間データ300を生成するようにしてもよい。そして、プリンタ1は、中間データ300を解釈して、画像形成用ビットマップデータ400を生成する。
【0053】
図5は、プリンタの動作処理例を説明するフローチャートである。まず、プリンタ1が、PDLデータ100を入力して、RAM12に書き込む(ステップS1)。次に、プリンタ1のCPU11が、RAM12に書き込まれたPDLデータ100の解釈処理を実行する解釈手段として機能する(ステップS2)。
【0054】
次に、CPU11が、第2の判断手段として機能する。すなわち、CPU11は、ステップS2の解釈処理で読み込んだPDLデータ100に含まれる命令のうち、実行対象の命令が、リユーザブルコンテンツPDLデータ再利用命令103(図3)であるかを判断する(ステップS3)。リユーザブルコンテンツPDLデータ再利用命令103は、キャッシュデータを再利用し、中間データを生成することを指示する命令である。
【0055】
実行対象の命令がリユーザブルコンテンツPDLデータ再利用命令103である場合、CPU11が、第3の判断手段として機能する。すなわち、CPU11は、キャッシュデータ中に含まれる描画命令がグラフィック処理を必要とするかを判断する(ステップS11)。キャッシュデータ中に含まれる描画命令がグラフィック処理を必要としない場合は、ステップS13に進む。キャッシュデータ中に含まれる描画命令がグラフィック処理を必要とする場合、CPU11は、キャッシュデータに対してグラフィック処理を実行する(ステップS12)。そして、CPU11が、キャッシュデータを解釈して、中間データを生成し(ステップS13)、ステップS16に進む。
【0056】
実行対象の命令がリユーザブルコンテンツPDLデータ再利用命令103でない場合、CPU11が、以下の処理を実行する。CPU11は、ステップS2の解釈処理で読み込んだPDLデータ100が含むコンテンツPDLがリユーザブルコンテンツPDLデータ(以下、リユーザブルデータと記述)103であるかを判断する(ステップS4)。
【0057】
PDLデータ100が含むコンテンツPDLがリユーザブルデータ103でなく、バリアブルコンテンツPDLデータ102である場合は、ステップS14に進む。そして、CPU11が、上記ステップS2の解釈処理で読み込んだPDLデータ100が含む描画命令のグラフィック処理を実行し(ステップS14)、ステップS15に進む。
【0058】
本実施形態において、グラフィック処理は、少なくともPostScript(R)の仕様に定義されている以下の処理を含む。
CTM変換処理
flattenpath処理
Automatic Stroke Adjustment処理
Patterns処理
【0059】
図6は、flattenpath処理を説明する図である。図6(A)は、Bezier曲線の描画処理結果を示す。図6(B)は、図6(A)に示す描画処理結果を出力する描画命令に対するflattenpath処理結果を示す。
【0060】
グラフィック処理は、PDLデータの解釈処理(図5のS2)によって得られたPDLデータ100が含む描画命令の抽象度を、RIP ASIC14が解釈できる中間データ300の抽象度に落とす処理である。
【0061】
PDLデータ100中には、線幅指定やBezier曲線情報など、高度な数値演算を実行しなければ描画すべき形状を特定できない高度な描画命令(例えばストローク描画命令)が存在する。一方、RIP ASIC14は、PDLデータ100に含まれる高度な描画命令を処理することができない。従って、RIP ASIC14が処理する中間データ300は、塗りつぶし描画命令やラスタビットマップ描画命令のような、高度な数値演算が必要でない描画命令でなければならない。図7は、中間データ300が持つ塗りつぶし描画命令301とラスタビットマップ描画命令302とを示す。
【0062】
図6(B)に示すように、高度な情報を持つ描画命令の描画領域の外接形状を求め、Bezier曲線を直線化することで、RIP ASIC14が解釈可能な中間データ300に変換可能な情報に変換することができる。
【0063】
図5に戻って、CPU11が、RIP ASIC14に指示して、中間データの生成処理を行い(ステップS15)、ステップS16に進む。中間データの生成処理によって、RAM12上に、RIP ASIC14が解釈可能な描画命令が生成される。
【0064】
上記ステップS4の判断処理において、PDLデータ100が含むコンテンツPDLがリユーザブルデータ103であると判断された場合、CPU11が、読み込んだPDLデータ100が含む命令がラスタビットマップ命令であるかを判断する(ステップS5)。読み込んだPDLデータ100が含む命令がラスタビットマップ命令である場合は、ステップS9に進む。そして、CPU11が、ラスタビットマップ命令中に含まれるラスターイメージと、PDLデータ100が含むリユーザブルID情報103−1(図3)とに基づいて、キャッシュデータを生成してRAM12に保存する(ステップS9)。
【0065】
読み込んだPDLデータ100が含む命令がラスタビットマップ命令でない場合、CPU11は、PDLデータ100に含まれる命令が、描画結果の物理座標空間上の配置位置に依存する描画命令であるかを判断する(ステップS6)。すなわち、CPU11は、PDLデータの解釈結果に基づいて、該PDLデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断する第1の判断手段として機能する。
【0066】
PostScript(R)データ処理の場合、描画結果の物理座標空間上の配置位置に依存する描画命令は、例えば以下の描画命令である。
パターン描画命令
Automatic Stroke Adjustment処理を含むストローク描画命令
【0067】
従って、CPU11は、例えば、PDLデータ100が含む描画命令がパターン描画命令を含むかを判断し、該描画命令がパターン描画命令を含む場合に、該描画命令が描画結果の物理座標空間上の配置位置に依存すると判断する。また、CPU11は、PDLデータ100が含む描画命令が、ストローク自動調整処理の実行が必要なストローク描画命令を含むかを判断する。CPU11は、該描画命令が、ストローク自動調整処理の実行が必要なストローク描画命令を含む場合に、該描画命令が描画結果の物理座標空間上の配置位置に依存すると判断する。
【0068】
PDLデータ100が含む描画命令が、描画結果の物理座標空間上の配置位置に依存する描画命令である場合、CPU11は、グラフィック処理を実行しない。そして、処理がステップS10に進む。続いて、CPU11が、PDLデータ100の解釈結果(S2)と、PDLデータ100中のリユーザブルID情報103−1に基づいて、キャッシュデータを生成して、RAM12に保存する(ステップS10)。そして、処理がステップS16に進む。
【0069】
すなわち、CPU11は、描画命令が描画結果の物理座標空間上の配置位置に依存すると判断された場合に、以下の処理を実行するキャッシュデータ生成手段として機能する。CPU11は、リユーザブルデータを対象とする描画命令をグラフィック処理せずに、PDLデータの解釈結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して記憶手段(RAM)に格納する。
【0070】
PDLデータ100に含まれる描画命令が描画結果の物理座標空間上の配置位置に依存する描画命令でない場合、CPU11は、PDLデータ100の解釈結果(S2)に基づき、リユーザブルデータを対象とする描画命令をグラフィック処理する(ステップS7)。
【0071】
ステップS7において行われるグラフィック処理は、少なくともPostScript(R)データ処理のうち、以下の処理を含む。
PDLデータ中の各描画命令に対するCTM変換処理
ストローク描画命令や塗りつぶし描画命令に対するflattenpath処理
【0072】
次に、CPU11が、ステップS7におけるグラフィック処理の結果と、PDLデータ100中のリユーザブルID情報103−1とに基づいて、リユーザブルデータに対応するキャッシュデータを生成してRAM12に保存する(ステップS8)。そして、処理がステップS16に進む。
【0073】
ステップS16において、CPU11が、読み込んだPDLデータが終端であるかを判断する(ステップS16)。読み込んだPDLデータが終端でない場合は、ステップS1に戻る。読み込んだPDLデータが終端である場合、CPU11が、以下の処理を実行する。すなわちCPU11は、生成した中間データのRAM12内の位置(アドレス情報)をRIP ASIC14に渡し、RIP ASIC14に対して、中間データの解釈を開始する命令を発行する(ステップS17)。RIP ASIC14が、RAM12内の上記アドレス情報が示す位置にある中間データを解釈することによって、RAM12内に画像形成用ビットマップデータを生成する(ステップS18)。
【0074】
すなわち、CPU11は、描画データ生成手段として機能する。具体的には、CPU11は、キャッシュデータがグラフィック処理を必要としないと判断された場合に、該キャッシュデータに基づいて描画データを生成する(S11でNo,S13乃至S18)。また、CPU11は、キャッシュデータがグラフィック処理を必要とすると判断された場合に、該キャッシュデータに対してグラフィック処理を実行した上で描画データを生成する(S11でYes,S12,S13,S16乃至S18)。
【0075】
上記ステップS18においては、RIP ASIC14は、さらに、電子写真エンジン15に対して、生成した画像形成用ビットマップデータのRAM12内のアドレス情報を通知する。そして、電子写真エンジン15が、RIP ASIC14から通知されたアドレス情報が示す位置にある画像形成用ビットマップデータをRAM12から取得する。そして、電子写真エンジン15が、取得した画像形成用ビットマップデータに基づいて、可視媒体上に可視像を生成する(ステップS19)。
【0076】
図8は、本実施形態においてRAMに格納されるキャッシュデータの構造例を示す図である。キャッシュデータ200は、ラスタビットマップを含むキャッシュデータ201、グラフィック処理前のキャッシュデータ202、またはグラフィック処理後のキャッシュデータ203のいずれかに分類される。
【0077】
キャッシュデータ201は、ラスタビットマップ描画命令202−5と、色処理命令202−6とを持つことができる。キャッシュデータ201は、リユーザブルコンテンツPDLデータ101が、例えばTIFFのようなラスタビットマップ画像である場合に生成される。リユーザブルコンテンツPDLデータ101がラスタビットマップ描画命令101−5(図3)を含んでいる場合に、CPU11が、ラスタビットマップ描画命令101−5に基づいてキャッシュデータ201を生成する。
【0078】
キャッシュデータ202は、PDLデータ100内が含む描画命令のうち、パターン描画命令202−1、ストローク描画命令202−2、文字描画命令202−3、塗りつぶし描画命令202−4、ラスタビットマップ描画命令202−6を持つことができる。また、キャッシュデータ202は、色処理命令202−6を持つことができる。キャッシュデータ203は、塗りつぶし描画命令202−4と、ラスタビットマップ描画命令202−5とを持つことができる。なお、図8に示すリユーザブルID情報200−1は、リユーザブルコンテンツPDLデータ再利用命令が対象とするリユーザブルデータを一意に識別する識別情報である。また、色処理命令200−2は、色処理命令202−6の実行時に用いられる設定情報である。
【0079】
CPU11は、PDLデータ、またはキャッシュデータ201乃至203のいずれかに基づいて、中間データ300(図7)を生成する。中間データ300は、塗りつぶし描画命令301とラスタビットマップ描画命令302とを含む。
【0080】
すなわち、中間データ300は、グラフィック処理後のキャッシュデータ203と等価な描画命令を持つので、CPU11による変換処理コストは、グラフィック処理前のキャッシュデータ202を中間データ300に変換する時の変換処理コストより小さい。グラフィック処理後のキャッシュデータ203は、グラフィック処理を施すことによって、表現可能な命令が限られている。しかし、グラフィック処理後のキャッシュデータ203は、グラフィック処理を行った後の描画命令を保存しているので、これを再利用することでCPU11がグラフィック処理にかかる処理時間を削減することができる。これにより、プリンタ1が実行する画像形成処理にかかる時間を削減することができる。
【0081】
以下に、図9及び10を参照して、本実施形態の画像形成装置を適用した場合の効果を説明する。図9は、パターン描画命令の実行による描画処理を説明する図である。図9(A)は、パターン描画命令の実行による描画処理結果を示す。
【0082】
プリンタ1は、PDLデータ100中のパターン描画命令に基づいて、図9(A)に示す紙4上の指定された領域内に、同じ描画をパターン描画することができる。図9(A)中の1001は、パターン描画命令に基づく描画結果の一例である。
【0083】
図9(B)は、パターン描画命令の実行による描画処理方法の例を示す。CPU11は、PDLデータ100またはキャッシュデータ200中のパターン描画命令を読み込む。CPU11は、まず、パターン描画命令が含むセル描画命令を実行する。セル描画命令は、パターン描画命令によってパターン描画されるべき、一つの描画単位の描画命令群である。図9(B)中の1001−1が、パターン描画命令がパターン描画する一つの描画単位を示す。
【0084】
CPU11は、セル描画命令に対するグラフィック処理を行う(図5のS12,S14を参照)。セル描画命令は、このグラフィック処理によって、紙4の左隅から下および右方向にパターン描画する命令群に変換される。なお、この例では、CPU11は、セル描画命令を、紙4の左隅からパターン描画する命令群に変換するが、CPU11が、セル描画命令を、紙4の他の隅からパターン描画する命令群に変換するようにしてもよい。
【0085】
次に、CPU11が、パターン描画命令が含むパターン描画領域指定命令を実行する。パターン描画領域指定命令は、パターン描画命令によってパターン描画されるべき領域(描画対象領域)を指定する命令である。この例では、パターン描画領域指定命令は、図9(B)に示す領域1001−2を描画対象領域として指定する。
【0086】
CPU11は、PDLデータ100またはキャッシュデータ200に基づいて、パターン描画領域指定命令が示す描画対象領域をパターン描画する命令を持つ中間データ300を生成する。
【0087】
当該中間データ中のパターン描画命令が含む描画命令群には、塗りつぶし描画命令と、ラスタビットマップ描画命令とが含まれる。すなわち、パターン描画命令中のパターン描画するための情報が失われ、紙4上のどこに、どのような描画を行うべきかの情報のみが残される。
【0088】
ここで、パターン描画命令は、紙面上のどこに描画されるべきかによって描画結果が異なる命令の例である。パターン描画命令による描画開始原点は、常に紙の隅である。従って、指定された描画対象領域の位置によって、紙4上の描画領域への描画結果が異なってしまう。
【0089】
図9(B)中の描画対象領域1001−2が指定されている場合、紙4上には、図9(A)に示すように、描画開始位置が人の顔の略下半分からである描画結果が描画される。しかし、描画対象領域1001−2とは異なる描画対象領域が指定されている場合、紙4上には、図9(A)の1002に示すように、描画開始位置が人の顔の略右半分からである描画結果が描画される。
【0090】
従って、再利用されるキャッシュデータが、グラフィック処理済みのパターン描画命令を含む場合、当該キャッシュデータを再利用して描画すると、本来の描画開始位置と異なる位置から描画が開始されてしまう(描画不良が発生する)。
【0091】
本実施形態の画像形成装置(プリンタ1)は、PDLデータ100中に含まれる命令がパターン描画命令である場合に、グラフィック処理を実行せずにキャッシュデータを生成する。そして、当該キャッシュデータの再利用時にグラフィック処理を実行する。従って、本実施形態の画像形成装置によれば、描画不良のない高品位な描画結果を得ることができる。
【0092】
図10は、Automatic Stroke Adjustment処理を説明する図である。Automatic Stroke Adjustment処理は、PDLデータ100が含むストローク描画命令を塗りつぶし描画命令に変換する時に実行される処理である。
【0093】
ストローク描画命令は、図10に示すように、画像形成用ビットマップデータ上の離散空間(デバイスピクセル空間)における各々のピクセル401の位置に基づいて、塗りつぶし描画命令に変換される。図10中の1003は、ストローク描画命令の実行による描画結果を示す。また、1004は、Automatic Stroke Adjustment処理が行われない場合の塗りつぶし描画命令による描画結果を示す。
【0094】
Automatic Stroke Adjustment処理は、塗りつぶされてしまうピクセルを制御し、描画結果の線幅が一定になるように制御する処理である。ストローク描画命令を描画結果の線幅が一定になるようにする塗りつぶし描画命令に変換する処理は、グラフィック処理において行われる。
【0095】
Automatic Stroke Adjustment処理は、デバイスピクセル空間の描画位置に依存する処理である。従って、CPU11が、Automatic Stroke Adjustment処理を含むストローク描画命令に対するグラフィック処理を行った上でキャッシュデータを生成すると、当該キャッシュデータを再利用する時に、描画不良が起こる。
【0096】
本実施形態の画像形成装置は、PDLデータ100中に含まれる命令が,Automatic Stroke Adjustment処理を含むストローク描画命令である場合に、グラフィック処理を実行せずにキャッシュデータを生成する。そして、当該キャッシュデータの再利用時にグラフィック処理を実行する。従って、本実施形態の画像形成装置によれば、描画不良のない高品位な描画結果を得ることができる。
【0097】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0098】
1 プリンタ
2 パーソナルコンピュータ

【特許請求の範囲】
【請求項1】
PDLデータを入力する入力手段と、
前記入力されたPDLデータを解釈する解釈手段と、
前記PDLデータの解釈結果に基づいて、該PDLデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断する第1の判断手段と、
前記描画命令が描画結果の物理座標空間上の配置位置に依存すると判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理せずに、前記PDLデータの解釈結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して記憶手段に格納し、前記描画命令が描画結果の物理座標空間上の配置位置に依存しないと判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理し、該グラフィック処理の結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して前記記憶手段に格納するキャッシュデータ生成手段とを備える
ことを特徴とする画像形成装置。
【請求項2】
前記PDLデータが含む実行対象の命令がリユーザブルデータを再利用する命令であるかを判断する第2の判断手段と、
前記実行対象の命令がリユーザブルデータを再利用する命令であると判断された場合に、前記記憶手段に格納された該リユーザブルデータに対応するキャッシュデータがグラフィック処理を必要とするかを判断する第3の判断手段と、
前記キャッシュデータがグラフィック処理を必要としないと判断された場合に、該キャッシュデータに基づいて描画データを生成し、前記キャッシュデータがグラフィック処理を必要とすると判断された場合に、該キャッシュデータに対して前記グラフィック処理を実行した上で描画データを生成する描画データ生成手段を備える
ことを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記第1の判断手段は、前記PDLデータが含むリユーザブルデータを対象とする描画命令が、パターン描画命令を含むかを判断し、該描画命令がパターン描画命令を含む場合に、該描画命令が描画結果の物理座標空間上の配置位置に依存すると判断する
ことを特徴とする請求項1または請求項2に記載の画像形成装置。
【請求項4】
前記第1の判断手段は、前記PDLデータが含むリユーザブルデータを対象とする描画命令が、ストローク自動調整処理の実行が必要なストローク描画命令を含むかを判断し、該描画命令が、ストローク自動調整処理の実行が必要なストローク描画命令を含む場合に、該描画命令が描画結果の物理座標空間上の配置位置に依存すると判断する
ことを特徴とする請求項1乃至3のいずれか1項に記載の画像形成装置。
【請求項5】
PDLデータを入力し、
前記入力されたPDLデータを解釈し、
前記PDLデータの解釈結果に基づいて、該PDLデータが含むリユーザブルデータを対象とする描画命令が、描画結果の物理座標空間上の配置位置に依存するかを判断し、
前記描画命令が描画結果の物理座標空間上の配置位置に依存すると判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理せずに、前記PDLデータの解釈結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して記憶手段に格納し、前記描画命令が描画結果の物理座標空間上の配置位置に依存しないと判断された場合に、前記リユーザブルデータを対象とする描画命令をグラフィック処理し、該グラフィック処理の結果に基づいて該リユーザブルデータに対応するキャッシュデータを生成して前記記憶手段に格納する
ことを特徴とする画像形成装置の制御方法。
【請求項6】
請求項5に記載の画像形成装置の制御方法をコンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−234454(P2012−234454A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2011−103978(P2011−103978)
【出願日】平成23年5月9日(2011.5.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】