(57)【要約】【課題】ベクタデータのクリップ処理を適用するか否かに分けて処理することで、クリップ処理が苦手なデータ処理性能をカバーし、データの処理性能を向上させるようにする。【解決手段】ＰＤＬパーサ処理部１１がＰＤＬを解析し、描画コマンドを識別し、クリッピングモード判定部１２でクリップコマンドおよび描画コマンドの座標データからバウンディングボックスを作成して、効率良いデータ処理のためにクリップ処理を実行するか否かを判断する。クリップ処理を実行しない場合は、描画データをスキャンライン変換する。クリップ処理を実行する場合は、ベクタクリップ処理部１４でクリッピングし、描画データとクリップデータの交差領域を作成し、スキャンライン変換する。スキャンライン変換後のランレングスデータは、ラスタ展開部１５でディザリングしながらフレームデータに展開する。【選択図】        図２
2009073083.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で表現された画像データを解析し、クリップコマンド、描画コマンド、および描画設定系コマンドの種別を識別するコマンド解析手段と、
前記コマンド解析手段で識別された前記クリップコマンドおよび前記描画コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かの判断に必要な情報を作成し、判定を行うクリッピングモード判定手段と、
前記クリッピングモード判定手段がクリップ処理を実行すると判定した場合は、ベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求めるベクタクリップ処理手段と、
前記クリッピングモード判定手段がクリップ処理を実行しないと判定した場合は、ベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換し、前記ベクタクリップ処理手段でクリップ処理を実行した場合は、求めた交差領域をランレングス形式のデータに変換するスキャンライン変換手段と、
スキャンライン変換後のランレングスデータをラスターイメージに展開するラスタ展開手段と、
を備えたことを特徴とする画像形成装置。
【請求項２】
前記クリッピングモード判定手段は、ベクタグラフィックスの塗りつぶし図形の外側を囲むバウンディングボックスの面積と、ベクタグラフィックスのクリップの外側を囲むバウンディングボックスの面積とを求め、両者を比較して、クリップ用のバウンディングボックスの面積の方が大きい場合は、ベクタデータのクリップ処理を実行しないと判定し、クリップ用のバウンディングボックスの面積の方が小さいか等しい場合は、ベクタデータのクリップ処理を実行すると判定することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記クリッピングモード判定手段は、ベクタグラフィックスの塗りつぶし図形の外側を囲むバウンディングボックスのＹ座標方向の高さと、ベクタグラフィックスのクリップの外側を囲むバウンディングボックスのＹ座標方向の高さとを求め、両者を比較して、クリップ用のバウンディングボックスのＹ座標方向の高さの方が高い場合は、ベクタデータのクリップ処理を実行しないと判定し、クリップ用のバウンディングボックスのＹ座標方向の高さの方が低いか等しい場合は、ベクタデータのクリップ処理を実行すると判定することを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記クリッピングモード判定手段は、塗りつぶし図形の回転角度を考慮して、比較するバウンティングボックスの高さ方向を決定することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記クリッピングモード判定手段は、ベクタグラフィックスの塗りつぶし図形の線分の数を求め、その線分の数が閾値より大きい場合にのみベクタデータのクリップ処理を実行すると判定することを特徴とする請求項１に記載の画像形成装置。
【請求項６】
ページ記述言語で表現された画像データを解析し、クリップコマンド、描画コマンド、および描画設定系コマンドの種別を識別するコマンド解析手段と、
前記コマンド解析手段から受け取ったコマンドの順番を保持したまま中間形式として保存するデータスプール手段と、
前記データスプール手段に保存された前記クリップコマンドおよび前記描画用コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かの判断に必要な情報を作成し、判定を行うクリッピングモード判定手段と、
前記クリッピングモード判定手段がクリップ処理を実行すると判定した場合は、ベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求めるベクタクリップ処理手段と、
前記クリッピングモード判定手段がクリップ処理を実行しないと判定した場合は、ベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換し、前記ベクタクリップ処理手段でクリップ処理を実行した場合は、求めた交差領域をランレングス形式のデータに変換するスキャンライン変換手段と、
スキャンライン変換後のランレングスデータをラスターイメージに展開するラスタ展開手段と、
を備えたことを特徴とする画像形成装置。
【請求項７】
前記クリッピングモード判定手段は、前記データスプール手段に保存された中間形式のベクタグラフィックスを参照し、ベクタグラフィックスの塗りつぶし図形の中で同じ座標点をもつデータが閾値以上続く場合に、ベクタデータのクリップ処理を実行すると判定することを特徴とする請求項６に記載の画像形成装置。
【請求項８】
ページ記述言語で表現された画像データを解析し、クリップコマンド、描画コマンド、および描画設定系コマンドの種別を識別するコマンド解析ステップと、
前記コマンド解析ステップで識別された前記クリップコマンドおよび前記描画コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かの判断に必要な情報を作成し、判定を行うクリッピングモード判定ステップと、
前記クリッピングモード判定ステップでクリップ処理を実行すると判定した場合は、ベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求めるベクタクリップ処理ステップと、
前記クリッピングモード判定ステップでクリップ処理を実行しないと判定した場合は、ベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換し、前記ベクタクリップ処理手段でクリップ処理を実行した場合は、求めた交差領域をランレングス形式のデータに変換するスキャンライン変換ステップと、
スキャンライン変換後のランレングスデータをラスターイメージに展開するラスタ展開ステップと、
を含むことを特徴とする画像形成方法。
【請求項９】
ページ記述言語で表現された画像データを解析し、クリップコマンド、描画コマンド、および描画設定系コマンドの種別を識別するコマンド解析ステップと、
前記コマンド解析ステップから受け取ったコマンドの順番を保持したまま中間形式として保存するデータスプールステップと、
前記データスプールステップで保存された前記クリップコマンドおよび前記描画用コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かの判断に必要な情報を作成し、判定を行うクリッピングモード判定ステップと、
前記クリッピングモード判定ステップでクリップ処理を実行すると判定した場合は、ベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求めるベクタクリップ処理ステップと、
前記クリッピングモード判定ステップでクリップ処理を実行しないと判定した場合は、ベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換し、前記ベクタクリップ処理ステップでクリップ処理を実行した場合は、求めた交差領域をランレングス形式のデータに変換するスキャンライン変換ステップと、
スキャンライン変換後のランレングスデータをラスターイメージに展開するラスタ展開ステップと、
を含むことを特徴とする画像形成方法。
【請求項１０】
前記請求項８または請求項９に記載の画像形成方法をコンピュータに実行させることを特徴とする画像形成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成方法、およびその画像形成方法をコンピュータに実行させる画像形成プログラムに関するものである。
【背景技術】
【０００２】
従来、レーザプリンタやインクジェットプリンタ等のページプリンタでは、ページ記述言語（ＰＤＬ：Page Description Language）を利用して、印刷する画像データを表すことが行われている。このようなページプリンタでは、ＰＤＬを用いて表された画像データを構成する図形描画命令（以下、描画コマンドという）を解析し、この解析により認識された図形により構成される印刷描画イメージを生成し、ページメモリに格納した後、プリンタエンジンに転送することで画像データの印刷が行われている。
【０００３】
上記したＰＤＬでは、文字、イメージ、グラフィックス等を描画コマンドにより表現することが可能となっている。例えば、ベクタグラフィックスでは、矩形図形の描画を対角点の指定により直接指示する「矩形データ」や、指定した座標位置の結線により図形を表す「ポリゴンデータ」、曲線を表す「ベジェデータ」等の描画コマンドにより、夫々対応する図形が表される。 
【０００４】
ポリゴンデータ、ベジェデータ等の描画コマンドにより表された図形は、印刷描画イメージの生成時において、主走査方向（スキャンライン）毎に分割されたラスタ画像により表されるスキャンラインデータへと変換（スキャンライン変換）される。このように、スキャンライン毎に変換された各ラスタ画像をランレングスデータという。上記したスキャンライン変換を利用して処理の高速化を図る画像処理装置が開示されている（例えば、特許文献１参照）。
【０００５】
また、ベクタグラフィックスの塗りつぶし領域を限定するためにクリップという概念がある。このクリップも「矩形データ」、「ポリゴンデータ」、「ベジェデータ」として表現される。塗りつぶし用に定義されたベクタグラフィックスをクリッピングして特定の領域だけを描画する方法としては、塗りつぶし用のベクタグラフィックスと、クリップ用のベクタグラフィックスとをそれぞれスキャンライン変換し、得られたデバイスランレングス同士のＡＮＤ（領域交差をとる）をとる方法が一般に知られている。つまり、図形とクリップ領域の交わる部分を塗りつぶしとして使用する方法である。このようなクリップを利用して処理の高速化を図る画像処理装置が開示されている（例えば、特許文献２参照）。
【０００６】
【特許文献１】特開２００３−１６２７２８号公報
【特許文献２】特開２００５−２６０８７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、クリップ領域が塗りつぶし領域より小さい場合は、本来使用しない領域まで作成されてしまい、必要ない領域分の処理やメモリ領域が無駄になる恐れがあった。例えば、ある領域のグラデーションを表現する場合、以下の（１）〜（３）のステップを無数に繰り返す。但し（３）のベジェ曲線はいつも同じものを指定するようにする。
（１）色を指定する
（２）極小の矩形クリップで領域を定義する
（３）ベジェ曲線で領域を定義する
このような方法により、ベジェ曲線で表現される領域をグラデーションで描画することができる。
【０００８】
これを上記ランレングスデータに変換するプロセスに当てはめると、（２）と（３）のスキャンライン変換を毎回行うことになる。一回のスキャンライン変換で必要な領域は、（２）のクリップと（３）のベジェ曲線の交わる領域だけであるが、クリップとベジェ曲線それぞれにスキャンライン変換が実行され、それぞれ得られたデバイスピクセル同士の交差領域を求めることになる。この処理を無数に繰り返すことでグラデーションが描画される。（３）のベジェ曲線が複雑であればあるほど処理コストが大きくなる。従って、この方法ではスキャンライン変換の処理コストが大きくなるため、処理時間がかかるという問題があった。
【０００９】
そこで、この問題に対処するため、スキャンライン前にクリップと塗りつぶし領域をベクタグラフィックスの段階で交わる領域を求める手法が知られている。例えば、矩形クリップとポリゴンの交わる領域を求めるポリゴンクリップアルゴリズムがいくつか知られている。このアルゴリズムを使用すると上記問題は劇的に改善する。なぜなら、スキャンライン変換を実施する前にクリップと塗りつぶし領域の交差領域を求めることができるため、スキャンラインの実行は必要な領域のみで、必要な回数だけ行われるためである。上記（３）のベジェ曲線の領域としてみると、ベジェ曲線を一回だけスキャンラインしたのと同じ効果となる。
【００１０】
しかし、上記アルゴリズムがいつも有効というわけではなく、逆にこのアルゴリズムを適用することで従来よりも処理が遅くなる場合がある。例えば、矩形クリップが塗りつぶし領域を含む場合は、このアルゴリズムを適用したとしてもスキャンライン結果は同じとなり、そのためアルゴリズムが適用される分だけ遅くなるという問題があった。
【００１１】
本発明は、上記に鑑みてなされたものであって、条件に応じてベクタデータのクリップ処理を適用する場合と、適用しない場合とに分けて処理することにより、ベクタデータのクリップ処理が苦手なデータ処理性能をカバーして、データの処理性能を向上させることが可能な画像形成装置、画像形成方法、および画像形成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、ページ記述言語で表現された画像データを解析し、クリップコマンド、描画コマンド、および描画設定系コマンドの種別を識別するコマンド解析手段と、前記コマンド解析手段で識別された前記クリップコマンドおよび前記描画コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かの判断に必要な情報を作成し、判定を行うクリッピングモード判定手段と、前記クリッピングモード判定手段がクリップ処理を実行すると判定した場合は、ベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求めるベクタクリップ処理手段と、前記クリッピングモード判定手段がクリップ処理を実行しないと判定した場合は、ベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換し、前記ベクタクリップ処理手段でクリップ処理を実行した場合は、求めた交差領域をランレングス形式のデータに変換するスキャンライン変換手段と、スキャンライン変換後のランレングスデータをラスターイメージに展開するラスタ展開手段と、を備えたことを特徴とする。
【００１３】
また、請求項２にかかる発明は、請求項１に記載の画像形成装置において、前記クリッピングモード判定手段は、ベクタグラフィックスの塗りつぶし図形の外側を囲むバウンディングボックスの面積と、ベクタグラフィックスのクリップの外側を囲むバウンディングボックスの面積とを求め、両者を比較して、クリップ用のバウンディングボックスの面積の方が大きい場合は、ベクタデータのクリップ処理を実行しないと判定し、クリップ用のバウンディングボックスの面積の方が小さいか等しい場合は、ベクタデータのクリップ処理を実行すると判定することを特徴とする。
【００１４】
また、請求項３にかかる発明は、請求項１に記載の画像形成装置において、前記クリッピングモード判定手段は、ベクタグラフィックスの塗りつぶし図形の外側を囲むバウンディングボックスのＹ座標方向の高さと、ベクタグラフィックスのクリップの外側を囲むバウンディングボックスのＹ座標方向の高さとを求め、両者を比較して、クリップ用のバウンディングボックスのＹ座標方向の高さの方が高い場合は、ベクタデータのクリップ処理を実行しないと判定し、クリップ用のバウンディングボックスのＹ座標方向の高さの方が低いか等しい場合は、ベクタデータのクリップ処理を実行すると判定することを特徴とする。
【００１５】
また、請求項４にかかる発明は、請求項３に記載の画像形成装置において、前記クリッピングモード判定手段は、塗りつぶし図形の回転角度を考慮して、比較するバウンティングボックスの高さ方向を決定することを特徴とする。
【００１６】
また、請求項５にかかる発明は、請求項１に記載の画像形成装置において、前記クリッピングモード判定手段は、ベクタグラフィックスの塗りつぶし図形の線分の数を求め、その線分の数が閾値より大きい場合にのみベクタデータのクリップ処理を実行すると判定することを特徴とする。
【００１７】
また、請求項６にかかる発明は、ページ記述言語で表現された画像データを解析し、クリップコマンド、描画コマンド、および描画設定系コマンドの種別を識別するコマンド解析手段と、前記コマンド解析手段から受け取ったコマンドの順番を保持したまま中間形式として保存するデータスプール手段と、前記データスプール手段に保存された前記クリップコマンドおよび前記描画用コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かの判断に必要な情報を作成し、判定を行うクリッピングモード判定手段と、前記クリッピングモード判定手段がクリップ処理を実行すると判定した場合は、ベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求めるベクタクリップ処理手段と、前記クリッピングモード判定手段がクリップ処理を実行しないと判定した場合は、ベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換し、前記ベクタクリップ処理手段でクリップ処理を実行した場合は、求めた交差領域をランレングス形式のデータに変換するスキャンライン変換手段と、スキャンライン変換後のランレングスデータをラスターイメージに展開するラスタ展開手段と、を備えたことを特徴とする。
【００１８】
また、請求項７にかかる発明は、請求項６に記載の画像形成装置において、前記クリッピングモード判定手段は、前記データスプール手段に保存された中間形式のベクタグラフィックスを参照し、ベクタグラフィックスの塗りつぶし図形の中で同じ座標点をもつデータが閾値以上続く場合に、ベクタデータのクリップ処理を実行すると判定することを特徴とする。
【００１９】
また、請求項８にかかる発明は、ページ記述言語で表現された画像データを解析し、クリップコマンド、描画コマンド、および描画設定系コマンドの種別を識別するコマンド解析ステップと、前記コマンド解析ステップで識別された前記クリップコマンドおよび前記描画コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かの判断に必要な情報を作成し、判定を行うクリッピングモード判定ステップと、前記クリッピングモード判定ステップでクリップ処理を実行すると判定した場合は、ベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求めるベクタクリップ処理ステップと、前記クリッピングモード判定ステップでクリップ処理を実行しないと判定した場合は、ベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換し、前記ベクタクリップ処理手段でクリップ処理を実行した場合は、求めた交差領域をランレングス形式のデータに変換するスキャンライン変換ステップと、スキャンライン変換後のランレングスデータをラスターイメージに展開するラスタ展開ステップと、を含むことを特徴とする。
【００２０】
また、請求項９にかかる発明は、ページ記述言語で表現された画像データを解析し、クリップコマンド、描画コマンド、および描画設定系コマンドの種別を識別するコマンド解析ステップと、前記コマンド解析ステップから受け取ったコマンドの順番を保持したまま中間形式として保存するデータスプールステップと、前記データスプールステップで保存された前記クリップコマンドおよび前記描画用コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かの判断に必要な情報を作成し、判定を行うクリッピングモード判定ステップと、前記クリッピングモード判定ステップでクリップ処理を実行すると判定した場合は、ベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求めるベクタクリップ処理ステップと、前記クリッピングモード判定ステップでクリップ処理を実行しないと判定した場合は、ベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換し、前記ベクタクリップ処理ステップでクリップ処理を実行した場合は、求めた交差領域をランレングス形式のデータに変換するスキャンライン変換ステップと、スキャンライン変換後のランレングスデータをラスターイメージに展開するラスタ展開ステップと、を含むことを特徴とする。
【００２１】
また、請求項１０にかかる発明は、請求項８または請求項９に記載の画像形成方法をコンピュータに実行させることを特徴としている。
【発明の効果】
【００２２】
請求項１にかかる発明によれば、クリッピングモード判定手段によりクリップコマンドおよび描画コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かを判定し、クリップ処理を実行する場合は、ベクタクリップ処理手段によりベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求め、スキャンライン変換手段でランレングス形式のデータに変換する。クリップ処理を実行しない場合は、スキャンライン変換手段によりベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換する。スキャンライン変換されたランレングスデータは、ラスタ展開手段によりラスターイメージに展開する。このように、ベクタデータのクリップが適用できる条件を指定して、クリップ処理を適用する場合と、しない場合とに分けて処理することにより、ベクタデータのクリップ処理を苦手とするデータに対しても処理速度を向上させることができるという効果を奏する。
【００２３】
また、請求項２にかかる発明によれば、クリッピングモード判定手段により、ベクタグラフィックスの塗りつぶし図形の外側を囲むバウンディングボックスの面積と、クリップの外側を囲むバウンディングボックスの面積とを比較し、クリップ用のバウンディングボックスの面積の方が大きい場合は、ベクタデータのクリップ処理を実行しないと判定し、クリップ用のバウンディングボックスの面積の方が小さいか等しい場合は、ベクタデータのクリップ処理を実行すると判定するようにしたため、データに対する処理速度を向上させることができるという効果を奏する。
【００２４】
また、請求項３にかかる発明によれば、クリッピングモード判定手段で塗りつぶし図形の外側を囲むバウンディングボックスのＹ座標方向の高さと、クリップの外側を囲むバウンディングボックスのＹ座標方向の高さとを比較し、クリップ用のバウンディングボックスのＹ座標方向の高さの方が高い場合は、ベクタデータのクリップ処理を実行しないと判定し、クリップ用のバウンディングボックスのＹ座標方向の高さの方が低いか等しい場合は、ベクタデータのクリップ処理を実行すると判定するようにしたため、データに対する処理速度を向上させることができるという効果を奏する。
【００２５】
また、請求項４にかかる発明によれば、クリッピングモード判定手段で塗りつぶし図形の回転角度を考慮し、比較するバウンティングボックスの高さ方向を決定するようにしたため、塗りつぶし図形を回転させた場合でも、回転角度に応じてバウンティングボックスの高さ方向が適正に決まり、比較することができるので、クリップ処理を適用する場合と、しない場合とに分けて処理することにより、データに対する処理速度を向上させることができるという効果を奏する。
【００２６】
また、請求項５にかかる発明によれば、クリッピングモード判定手段は、ベクタグラフィックスの塗りつぶし図形の線分の数を求めて、その線分の数が閾値より大きい場合にのみベクタデータのクリップ処理を実行すると判定するようにしたため、処理速度の劣化を防ぐことができるという効果を奏する。
【００２７】
また、請求項６にかかる発明によれば、コマンド解析手段はページ記述言語で表現された画像データを解析してコマンドの種別を識別し、データスプール手段はコマンド解析手段から受け取ったコマンドの順番を保持したまま保存し、クリッピングモード判定手段によりデータスプール手段に保存されたクリップコマンドおよび描画コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かを判定する。クリップ処理を実行する場合は、ベクタクリップ処理手段によりベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求め、スキャンライン変換手段でランレングス形式のデータに変換する。クリップ処理を実行しない場合は、スキャンライン変換手段によりベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換する。スキャンライン変換されたランレングスデータは、ラスタ展開手段によりラスターイメージに展開する。このように、データスプール手段は、コマンド解析手段から受け取ったコマンドの順番を保持したまま保存するため、クリッピングモード判定手段に対して複数の描画データのシーケンスを提供し、ベクタデータのクリップが適用できる条件を指定して、クリップ処理を適用する場合と、しない場合とに分けて処理することによって、ベクタデータのクリップ処理を苦手とするデータに対しても処理速度を向上させることができるという効果を奏する。
【００２８】
また、請求項７にかかる発明によれば、クリッピングモード判定手段は、データスプール手段に保存された中間形式のベクタグラフィックスを参照して、ベクタグラフィックスの塗りつぶし図形の中で同じ座標点をもつデータが閾値以上続く場合に、ベクタデータのクリップ処理を実行するよう判定するため、データに対する処理速度を向上させることができるという効果を奏する。
【００２９】
また、請求項８にかかる発明によれば、クリッピングモード判定ステップによりクリップコマンドおよび描画コマンドの座標データに基づいて、ベクタデータのクリップ処理を実行するか否かを判定し、クリップ処理を実行する場合は、ベクタクリップ処理ステップによりベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求め、スキャンライン変換ステップでランレングス形式のデータに変換する。クリップ処理を実行しない場合は、スキャンライン変換ステップによりベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換する。スキャンライン変換されたランレングスデータは、ラスタ展開ステップによりラスターイメージに展開する。このように、ベクタデータのクリップが適用できる条件を指定して、クリップ処理を適用する場合と、しない場合とに分けて処理することにより、ベクタデータのクリップ処理を苦手とするデータに対しても処理速度を向上させることができるという効果を奏する。
【００３０】
また、請求項９にかかる発明によれば、コマンド解析ステップでページ記述言語で表現された画像データを解析してコマンドの種別を識別し、データスプールステップによりコマンド解析ステップから受け取ったコマンドの順番を保持したまま保存し、データスプールステップで保存されたクリップコマンドおよび描画コマンドの座標データに基づいて、クリッピングモード判定ステップでベクタデータのクリップ処理を実行するか否かを判定する。クリップ処理を実行する場合は、ベクタクリップ処理ステップによりベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形との交差領域を求め、スキャンライン変換ステップでランレングス形式のデータに変換する。クリップ処理を実行しない場合は、スキャンライン変換ステップによりベクタグラフィックスの座標点データで表現された塗りつぶし図形をランレングス形式のデータに変換する。スキャンライン変換されたランレングスデータは、ラスタ展開ステップによりラスターイメージに展開する。このように、データスプールステップでは、コマンド解析ステップによるコマンドの順番を保持したまま保存するため、クリッピングモード判定ステップに対して複数の描画データのシーケンスを提供し、ベクタデータのクリップが適用できる条件を指定して、クリップ処理を適用する場合と、しない場合とに分けて処理することにより、ベクタデータのクリップ処理を苦手とするデータに対しても処理速度を向上させることができるという効果を奏する。
【００３１】
また、請求項１０にかかる発明によれば、請求項８または請求項９に記載の画像形成方法をコンピュータに読み取らせて実行することにより、請求項８または請求項９に記載の画像形成方法と同様の効果を奏する。
【発明を実施するための最良の形態】
【００３２】
以下に添付図面を参照して、この発明にかかる画像形成装置、画像形成方法、および画像形成プログラムの最良な実施の形態を詳細に説明する。
【００３３】
（第１の実施の形態）
図１は、第１の実施の形態にかかる画像形成装置のハードウェア構成を示したブロック図である。図１に示すように、画像形成装置１００は、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、通信Ｉ／Ｆ４、エンジンＩ／Ｆ５、画像形成エンジン６等を備え、各部はバス７を介して相互に通信可能に接続されている。 
【００３４】
ＣＰＵ１は、ＲＡＭ３の所定領域を作業領域として、ＲＯＭ２に予め記憶された各種制御プログラムとの協働により、当該ＲＯＭ２に予め記憶された各種設定情報に基づいて各種処理を実行し、画像形成装置１００を構成する各部の動作を統括的に制御する。 
【００３５】
ＲＯＭ２は、画像形成装置１００の制御にかかるプログラムや各種設定情報等を書き換え不可能に記憶する。
【００３６】
ＲＡＭ３は、ＳＤＲＡＭ（Synchronous DRAM）等の記憶装置であって、各種データを書き換え可能に記憶する性質を有していることから、ＣＰＵ１の作業エリアとして機能し、ワークメモリとしての役割を果たす。また、ＲＡＭ３は、通信Ｉ／Ｆ４を介して入力された画像データを記憶するフレームメモリとしての役割を果たす。
【００３７】
通信Ｉ／Ｆ４は、ＰＣ（Personal Computer）等の外部機器との間で通信を行うインターフェースであって、外部機器から入力された画像データをＣＰＵ１に出力する。なお、入力される画像データは、外部機器においてＰＤＬを用いて記述されているものとする。
【００３８】
エンジンＩ／Ｆ５は、画像データの印刷を行う画像形成エンジン６との間で通信を行うインターフェースであって、ＣＰＵ１から出力される画像形成エンジン６を制御するための信号を当該画像形成エンジン６に出力するとともに、画像形成エンジン６から出力される各種信号をＣＰＵ１に出力する。
【００３９】
画像形成エンジン６は、印刷対象となった画像データ（描画コマンド）により表される画像を電子写真プロセス等により記録媒体上に形成（印刷）するものである。 
【００４０】
図２は、図１の画像形成装置の機能構成を説明するブロック図である。図１に示すように、ＣＰＵ１がＲＯＭ２に予め記憶された所定のプログラムに従って各部を制御することにより、図２に示すコマンド解析手段としてのＰＤＬパーサ処理部１１、クリッッピング判定手段としてのクリッピングモード判定部１２、スキャンライン変換手段としてのスキャンライン変換部１３、ベクタクリップ処理手段としてのベクタクリップ処理部１４、およびラスタ展開手段としてのラスタ展開部１５がベクタクリップ画像形成装置１０としてＲＡＭ３に生成されるようになっている。 
【００４１】
ＰＤＬパーサ処理部１１は、画像データを構成するページ記述言語（ＰＤＬ）を解析して、描画コマンドを識別するものである。識別するコマンドには、ベジェ、ポリゴン、矩形の描画コマンド、ベジェ、ポリゴン、矩形のクリップコマンド、その他の描画コマンド、あるいは描画設定系コマンドなどがある。これらのデータシーケンスは、（１）描画設定系コマンド→（２）クリップコマンド→（３）描画コマンドの順番で送られてくる。
【００４２】
クリッピングモード判定部１２は、ＰＤＬパーサ処理部１１で最後に指定された描画設定系コマンド、クリップコマンド、描画コマンドを記憶し、クリップコマンドの座標データおよび描画コマンドの座標データからバウンディングボックスを作成して、効率良くデータ処理を行うためにベクタデータのクリップ処理を実行した方が良いか否かの判断に必要な情報を作成し、ベクタクリップ処理の実行判断を行うものである。
【００４３】
スキャンライン変換部１３は、ベクタグラフィックスの領域を特定してランレングス形式に変換するものである。クリッピングモード判定部１２から、ベクタデータのクリップ処理を実行しないという命令を受け取った場合は、描画データをスキャンライン変換してランレングスデータを得る。クリッピングモード判定部１２から、ベクタデータのクリップ処理を実行するという命令を受け取った場合は、次段のベクタクリップ処理部１４でクリッピングを実行して、描画データとクリップデータの交差領域のベクタグラフィックスが作成され、これをスキャンライン変換してランレングスデータを得る。
【００４４】
ベクタクリップ処理部１４は、ベクタグラフィックスの座標点データで表現されたクリップと塗りつぶし図形とを受け取り、クリッピングを実行するものである。クリッピング後は、ベクタグラフィックスが作成され、上記したスキャンライン変換部１３への入力データとなる。
【００４５】
ラスタ展開部１５は、スキャンライン変換部１３でスキャンライン変換された後のランレングスデータをディザリングしながらフレームデータに展開するものである。
【００４６】
図３は、第１の実施の形態にかかるクリッピングモード判定部でベクタデータのクリップ処理を実行するか否かを判定するフローチャートであり、図４は、クリップあるいは描画図形の外形を囲むバウンディングボックスの座標データを示す図である。
【００４７】
図２のベクタクリップ画像形成装置１０のクリッピングモード判定部１２は、図３に示すように、ＰＤＬパーサ処理部１１からクリップコマンドの座標データを受け取ると（ステップＳ１００）、ベクタグラフィックスとして表現されるクリップの座標データからクリップデータの外側を囲むクリップバウンディングボックスを求める（ステップＳ１０２）。例えば、図４に示すように、ハッチング領域をクリップ図形とすると、その外側を囲むバウンディングボックスは、（Ｘ１，Ｙ１）−（Ｘ２，Ｙ２）で表される矩形として表現することができる。
【００４８】
そして、このクリップ図形のクリップバウンディングボックスの面積を求めて「ＣＳ」とする（ステップＳ１０４）。
【００４９】
続いて、ＰＤＬパーサ処理部１１から描画コマンドの座標データを受け取ると（ステップＳ１０６）、ベクタグラフィックスとして表現される描画図形の座標データから描画データの外側を囲むドロウバウンディングボックスを求める（ステップＳ１０８：図４参照）。
【００５０】
そして、この描画図形のドロウバウンディングボックスの面積を求めて「ＤＳ」とする（ステップＳ１１０）。
【００５１】
求めたクリップバウンディングボックスの面積＝「ＣＳ」とドロウバウンディングボックスの面積＝「ＤＳ」とを比較する（ステップＳ１１２）。「ＣＳ」が「ＤＳ」よりも面積が大きい場合は、ステップＳ１１４に移行して、ベクタデータのクリップ処理を実行しないモードを設定し、その設定内容をスキャンライン変換部１３に通知する。
【００５２】
「ＣＳ」が「ＤＳ」の面積と等しいか、小さい場合は、ステップＳ１１６に移行して、ベクタデータのクリップ処理を実行するモードを設定し、その設定内容をスキャンライン変換部１３に通知する。
【００５３】
その後の処理は、図２のスキャンライン変換部１３にベクタデータのクリップ処理を実行しないモードが通知された場合（図３のステップＳ１１４参照）、クリッピングを行わずにベクタグラフィックスとして表現される描画データをスキャンライン変換して、ランレングス形式のデータに変換する。
【００５４】
また、図２のスキャンライン変換部１３にベクタデータのクリップ処理を実行するモードが通知された場合は（図３のステップＳ１１６参照）、ベクタクリップ処理部１４にてベクタグラフィックスとして表現される描画データとクリップデータの交差領域を求め、その交差領域をスキャンライン変換して、ランレングス形式のデータに変換する。
【００５５】
上記スキャンライン変換部１３にてスキャンライン変換されたランレングスデータは、ラスタ展開部１５でディザリングを実行しながらフレームデータに展開される。
【００５６】
このように、第１の実施の形態によれば、クリッピングモード判定部によりクリップバウンディングボックスとドロウバウンディングボックスの面積を求め、クリップバウンディングボックスの面積（ＣＳ）がドロウバウンディングボックスの面積（ＤＳ）よりも大きい場合は、クリップが描画データを含んでいると考えられ、クリップアルゴリズムを適用してもスキャンライン結果は同じとなる。そのため、アルゴリズムを適用する分だけ処理が遅くなることから、クリッピングモード判定部は、ベクタデータのクリップ処理を適用しないモードと判定する。
【００５７】
また、クリッピングモード判定部により「ＣＳ」が「ＤＳ」の面積と等しいか、小さい場合は、クリップが描画データを含む関係に無いため、スキャンライン変換前にクリップと描画データの交差領域を求めることにより、スキャンラインの実行は必要な領域のみで、必要な回数だけ行うこととなり、クリッピングモード判定部は、ベクタデータのクリップ処理を適用するモードと判定する。
【００５８】
その結果、第１の実施の形態では、クリッピングモード判定部によりクリップバウンディングボックスとドロウバウンディングボックスの面積を求め、両者を比較して、ベクタデータのクリップ処理を適用するか否かに分けて処理することにより、データの処理性能を向上させることが可能となる。
【００５９】
（第２の実施の形態）
第２の実施の形態の特徴は、第１の実施の形態でクリップバウンディングボックスとドロウバウンディングボックスの面積を比較する代わりに、バウンディングボックスのＹ座標方向の高さ同士を比較することで、ベクタデータのクリップ処理を適用するか否かを判定するものである。
【００６０】
この第２の実施の形態におけるバウンディングボックスのＹ座標方向の高さとは、図形の高さを意味するため、スキャンライン変換を行う際の変換速度に大きく影響を与えるファクターである。そこで、クリップバウンディングボックスのＹ座標方向の高さがドロウバウンディングボックスの高さよりも高い場合は、クリップが描画データを含んでいると考えられ、クリップアルゴリズムを適用してもスキャンライン結果は同じとなる。そのため、アルゴリズムを適用する分だけ処理が遅くなることから、クリッピングモード判定部は、ベクタデータのクリップ処理を適用しないモードと判定する。
【００６１】
また、クリッピングモード判定部によりクリップバウンディングボックスのＹ座標方向の高さがドロウバウンディングボックスの高さと等しいか、低い場合は、クリップが描画データを含む関係に無いため、スキャンライン変換前にクリップと描画データの交差領域を求めることにより、スキャンラインの実行は必要な領域のみで、必要な回数だけ行うこととなり、クリッピングモード判定部は、ベクタデータのクリップ処理を適用するモードと判定する。
【００６２】
その結果、第２の実施の形態では、クリッピングモード判定部によりクリップバウンディングボックスとドロウバウンディングボックスのＹ座標方向の高さを求め、両者を比較して、ベクタデータのクリップ処理を適用するか否かに分けて処理することにより、データの処理性能を向上させることが可能となる。
【００６３】
（第３の実施の形態）
第３の実施の形態の特徴は、第２の実施の形態でクリッピングモード判定部によりクリップバウンディングボックスのＹ座標方向の高さとドロウバウンディングボックスの高さとを比較して、ベクタデータのクリップ処理を適用するか否かを判定する際に、描画図形を回転した場合でも適正な判定ができるようにしたものである。
【００６４】
図５は、第３の実施の形態にかかるクリッピングモード判定部で描画図形の回転を考慮しながらベクタデータのクリップ処理を実行するか否かを判定するフローチャートである。図５に示すように、ページ記述言語（ＰＤＬ）のレイアウト方向と出力用紙のレイアウト方向から描画データの回転方向（ＤＩＲ）を計算する（ステップＳ２００）。例えば、ＰＤＬのレイアウトが縦方向（Portrait）で出力用紙が横方向（Landscape）の場合は、９０度または２７０度の回転になる。また、ＰＤＬレイアウトが横方向（Landscape）、出力用紙が縦方向（Portrait）の場合も９０度または２７０度の回転になる。但し、ＰＤＬのレイアウトと出力用紙方向とが同じ場合は、描画図形の回転は発生しない。
【００６５】
上記ステップＳ２００で描画データの回転方向と回転角度を求めた後は、クリップデータを受け取り（ステップＳ２０２）、そのクリップバウンディングボックスを求める（ステップＳ２０４）。
【００６６】
そして、ステップＳ２０６において、描画データの回転方向（ＤＩＲ）が９０度または２７０度の回転になるか否かを判定する（ステップＳ２０６）。その結果、９０度または２７０度回転した場合は、クリップバウンディングボックスの幅（図４のＸ２−Ｘ１参照）が、クリップをスキャンラインした結果の高さと等しくなる（ステップＳ２０８）。しかし、ステップＳ２０６で回転が発生しなかった場合は、クリップバウンディングボックスの高さ（図４のＹ２−Ｙ１参照）が、クリップをスキャンラインした結果の高さと等しくなる（ステップＳ２１０）。
【００６７】
続いて、描画データを受け取ると（ステップＳ２１２）、そのドロウバウンディングボックスを求める（ステップＳ２１４）。
【００６８】
ステップＳ２１６では、描画データの回転方向（ＤＩＲ）が９０度または２７０度の回転になるか否かを判定する。その結果、９０度または２７０度回転した場合は、ドロウバウンディングボックスの幅（図４のＸ２−Ｘ１参照）が、ドロウをスキャンラインした結果の高さと等しくなる（ステップＳ２１８）。しかし、ステップＳ２１６で回転が発生しなかった場合は、ドロウバウンディングボックスの高さ（図４のＹ２−Ｙ１参照）が、ドロウをスキャンラインした結果の高さと等しくなる（ステップＳ２２０）。
【００６９】
そして、ステップＳ２２２では、以上のように算出したクリップとドロウのスキャンラインの高さを比較する。その結果、クリップのスキャンラインの高さの方が高い場合は、クリップが描画データを含んでいると考えられ、クリップアルゴリズムを適用してもスキャンライン結果は同じとなる。そのため、アルゴリズムを適用する分だけ処理が遅くなることから、クリッピングモード判定部は、ベクタデータのクリップ処理を適用しないモードを設定する（ステップＳ２２４）。
【００７０】
また、ステップＳ２２２でクリップのスキャンラインの高さがドロウのスキャンラインの高さと等しいか、低い場合は、クリップが描画データを含む関係に無いため、スキャンライン変換前にクリップと描画データの交差領域を求めることにより、スキャンラインの実行は必要な領域のみで、必要な回数だけ行うこととなり、クリッピングモード判定部は、ベクタデータのクリップ処理を適用するモードを設定する（ステップＳ２２６）。
【００７１】
その結果、第３の実施の形態では、描画図形を回転した場合であっても、その回転方向と回転角度とを検出し、描画図形の回転状態に応じてベクタデータのクリップ処理を適用するか否かに分けて処理することで、データの処理性能を向上させることが可能となる。特に、図形の高さがスキャンライン変換の速度に大きく影響を与えることから、この第３の実施の形態では、図形を９０度または２７０度回転させた場合、図形の幅と高さが逆となるため、図形の高さ方向を正確に把握することで、ベクタデータのクリップ処理を適用するか否かが適正に判断できるようにしたものである。
【００７２】
（第４の実施の形態）
第４の実施の形態の特徴は、図形の線分の数を求め、その線分の数が閾値Ｎより小さいか否かにより、ベクタデータのクリップ処理を適用するか否かを判断するようにしたものである。
【００７３】
図６は、第４の実施の形態にかかるクリッピングモード判定部で描画図形の線分の数に応じてベクタデータのクリップ処理を実行するか否かを判定するフローチャートである。図６に示すように、クリッピングモード判定部１２が描画データを受け取ると（ステップＳ３００）、その描画図形の線分数を求める（ステップＳ３０２）。
【００７４】
例えば、矩形の線分数は４または５で表現することができる。矩形の線分数を５とする場合は、始点と終点が一致し、その始点と終点間を線分と数える場合である。そこで、ステップＳ３０４における閾値Ｎを５（Ｎ＝５）とすることで、線分数が５より小さい図形（矩形かそれ以下の線分を持つ図形）などの簡単な図形では、ベクタデータのクリップ処理を適用しないとして（ステップＳ３０６）、データの処理速度が劣化するのを防ぐことができる。
【００７５】
また、ステップＳ３０４において、線分数が６以上の図形（矩形よりも線分数の多い図形）の場合は、ベクタデータのクリップ処理を適用することにより（ステップＳ３０８）、スキャンライン変換を実施する前にクリップと描画図形の交差領域を求めることができるため、スキャンラインの実行は必要な領域のみで、必要な回数だけで済むため、データの処理性能を向上させることが可能となる。
【００７６】
その結果、第４の実施の形態では、描画図形の線分数からベクタデータのクリップ処理を適用するか否かに分けて処理することで、データの処理速度の劣化を防ぐと共に、処理性能を向上させることが可能となる。
【００７７】
（第５の実施の形態）
第５の実施の形態の特徴は、第１の実施の形態における図２の画像形成装置の構成にデータスプール部が追加された点である。
【００７８】
図７は、第５の実施の形態にかかる画像形成装置の機能構成を説明するブロック図である。図７に示すＰＤＬパーサ処理部２１、クリッピングモード判定部２３、スキャンライン変換部２４、ベクタクリップ処理部２５、ラスタ展開部２６の構成は、図２で説明したＰＤＬパーサ処理部１１、クリッピングモード判定部１２、スキャンライン変換部１３、ベクタクリップ処理部１４、ラスタ展開部１５とほぼ同じであるので説明を省略する。
【００７９】
第５の実施の形態で追加されたデータスプール部２２は、図７のＰＤＬパーサ部２１から受け取った描画コマンドや設定コマンドの順番を保存したまま、メモリ上またはファイル上に保存する処理を実行できるようにしたものである。これにより、クリッピングモード判定部２３に対して複数の描画データのシーケンスを提供することが可能となる。
【００８０】
図８は、描画コマンドや設定コマンドが順番を保存したままスプールメモリ上に逐次配置された状態を示すメモリレイアウト例の図である。図８に示すスプールメモリの先頭アドレスから、色設定１、矩形クリップ１、描画図形のベジェ１が配置されている。以下、色設定と矩形クリップについては変化するが、ベジェ１のデータについては、同じ座標データをもつコマンドシーケンスがスプール上に繰り返し配置されている様子を示している。これは、グラデーション描画の例に相当するものである。
【００８１】
上記した図７のデータスプール部２２でスプールが終了すると、描画処理が開始される。これを図８で見ると、スプール先頭アドレスから検査開始アドレスまでの間にあるデータは、既に処理済のデータであることを示している。この検査開始アドレスは、スプール上にある描画データ（ここでは、ベジェ１のデータ）が同じか否かの検査を開始したアドレスを示している。このため、処理の開始時点においては、スプール先頭アドレスと検査開始アドレスとが一致する。また、図８中のカレントスプールアドレスは、検査中のコマンドのアドレスを指すポインタである。
【００８２】
図９は、第５の実施の形態の動作を説明するフローチャートである。まず、図９のフローチャートのスタート時点では、スプール上にあるコマンドを検索するループの先頭となる。この時点では、検査開始アドレスとカレントスプールアドレスがスプール先頭アドレスと一致している。そして、ステップＳ４００において、スプールデータの検索が終了したか否かが検査される。
【００８３】
ステップＳ４００において、検査開始アドレスがスプールの終了アドレスと一致した場合は、処理が終了する。また、ステップＳ４００において、検査開始アドレスがスプールの終了アドレスと一致せず、スプールデータの検索が終了していない場合は、ステップＳ４０２に移行して、スプールデータが描画コマンドか否かを検査する。この検査は、カレントスプールアドレスが指すコマンドを検査するものである。
【００８４】
ステップＳ４０２において描画コマンドでない場合は、次のコマンドを検査するためにステップＳ４１０へ移行して、カレントスプールアドレスを次のコマンドへ移動させ、ステップＳ４００に戻る。
【００８５】
ステップＳ４０２で描画コマンドの場合は、ステップＳ４０４に移行し、描画コマンドのカウンタをインクリメント（＋１）する。そして、ステップＳ４０６では、描画コマンドと一個前の描画コマンドの座標データが完全に一致するか否かを検査する。
【００８６】
ステップＳ４０６において、描画コマンドと一個前の描画コマンドの座標データが完全に一致する場合は、ステップＳ４０８へ移行し、同一の描画コマンドの個数を数えるＢｃｎｔ（ブレイクカウンタ）をインクリメント（＋１）した後、ステップＳ４１０へ移行して、カレントスプールアドレスを次のコマンドへ移動させ、ステップＳ４００に戻る。
【００８７】
また、ステップＳ４０６において、描画コマンドと一個前の描画コマンドの座標データが一致しない場合は、ステップＳ４１２へ移行し、スプールデータの検査開始点アドレスから現在の検査アドレス（カレントスプールアドレス）までの描画コマンドに対して、描画コマンドがあるか否かを検査する。即ち、描画コマンドのカウンタ値が０より大きいか否かで判断する。
【００８８】
ステップＳ４１２において、描画コマンドがある場合、即ち、描画コマンドのカウンタ値が０より大きい場合は、ステップＳ４１４に移行する。そして、ステップＳ４１４で、同じ描画図形が閾値Ｎ個以上ある場合は、ステップＳ４１６に移行し、ベクタデータをクリップ描画するモードの設定をＯＮし、スキャンライン変換部２４に通知して、ステップＳ４２０に移行する。
【００８９】
また、ステップＳ４１４において、同じ描画図形が閾値Ｎ個未満の場合は、ステップＳ４１８に移行し、ベクタデータをクリップ描画するモードの設定をＯＦＦし、スキャンライン変換部２４に通知して、ステップＳ４２０に移行する。
【００９０】
ステップＳ４２０では、スプール上の検査済みデータ先頭アドレス（開始点）から検査終了アドレス（現在のデータ）との間の描画コマンドに対してスキャンラインを開始し、ステップＳ４２２に移行する。
【００９１】
また、ステップＳ４１２において、描画コマンドがない場合、即ち、描画コマンドのカウンタ値が０の場合は、ステップＳ４２２に移行する。
【００９２】
そして、ステップＳ４２２では、検査開始アドレスをカレントスプールアドレスに設定し、ステップＳ４２４で描画コマンドのカウンタとブレイクカウンタを「０」に初期化した後、ステップＳ４１０へ移行して、カレントスプールアドレスを次のコマンドへ移動させ、ステップＳ４００に戻る。
【００９３】
その結果、第５の実施の形態では、データスプール部２２を追加したことにより、ＰＤＬパーサ部２１から受け取った描画コマンドや設定コマンドの順番を保存したまま、メモリ上またはファイル上に保存する処理を実行することができ、クリッピングモード判定部２３に対して複数の描画データのシーケンスが提供可能になることから、さらにデータの処理性能を向上させることができる。
【００９４】
以上、本発明を第１〜第５の実施の形態を用いて説明してきたが、上述した実施の形態に多様な変更または改良を加えることができる。また、上述した第１〜第５の実施の形態において説明した構成や機能は、自由に組み合わせることができる。 
【００９５】
例えば、上記実施の形態における画像形成装置で実行される画像処理にかかるプログラムは、インストール可能な形式、または実行可能な形式のファイルであって、ＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。 
【００９６】
また、上記実施の形態における画像形成装置で実行される画像処理にかかるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上記実施の形態における画像形成装置で実行される画像処理にかかるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。 
【産業上の利用可能性】
【００９７】
以上のように、本発明にかかる画像形成装置、画像形成方法、および画像形成プログラムは、ページ記述言語を用いて表現された画像データを描画する際に有効であり、特に、ベクタグラフィックスの塗りつぶし領域を限定するため、クリッピングを行って特定の領域だけを描画する場合に適している。 
【図面の簡単な説明】
【００９８】
【図１】第１の実施の形態にかかる画像形成装置のハードウェア構成を示したブロック図である。
【図２】図１の画像形成装置の機能構成を説明するブロック図である。
【図３】第１の実施の形態にかかるクリッピングモード判定部でベクタデータのクリップ処理を実行するか否かを判定するフローチャートである。
【図４】クリップあるいは描画図形の外形を囲むバウンディングボックスの座標データを示す図である。
【図５】第３の実施の形態にかかるクリッピングモード判定部で描画図形の回転を考慮しながらベクタデータのクリップ処理を実行するか否かを判定するフローチャートである。
【図６】第４の実施の形態にかかるクリッピングモード判定部で描画図形の線分の数に応じてベクタデータのクリップ処理を実行するか否かを判定するフローチャートである。
【図７】第５の実施の形態にかかる画像形成装置の機能構成を説明するブロック図である。
【図８】描画コマンドや設定コマンドが順番を保存したままスプールメモリ上に逐次配置された状態を示すメモリレイアウト例の図である。
【図９】第５の実施の形態の動作を説明するフローチャートである。
【符号の説明】
【００９９】
１００  画像形成装置
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
４  通信Ｉ／Ｆ
５  エンジンＩ／Ｆ
６  画像形成エンジン
７  バス
１０  ベクタクリップ画像形成装置
１１  ＰＤＬパーサ処理部
１２  クリッピングモード判定部
１３  スキャンライン変換部
１４  ベクタクリップ処理部
１５  ラスタ展開部
２０  ベクタクリップ画像形成装置
２１  ＰＤＬパーサ処理部
２２  データスプール部
２３  クリッピングモード判定部
２４  スキャンライン変換部
２５  ベクタクリップ処理部
２６  ラスタ展開部 
【図１】
2009073083.tif 000003
【図２】
2009073083.tif 000004
【図３】
2009073083.tif 000005
【図４】
2009073083.tif 000006
【図５】
2009073083.tif 000007
【図６】
2009073083.tif 000008
【図７】
2009073083.tif 000009
【図８】
2009073083.tif 000010
【図９】
2009073083.tif 000011