(57)【特許請求の範囲】
【請求項１】
含まれる各画素が当該画素の不透明度を示すアルファ値を持つビットマップ画像を取得する取得手段と、
前記ビットマップ画像に含まれる各画素のアルファ値を判定し、前記判定に基づいて、前記ビットマップ画像のうち、完全透明のアルファ値を持つ画素を描画されない画素とし、完全透明でないアルファ値を持つ画素を描画される画素として、前記描画されない画素と前記描画される画素とを示す情報を生成する生成手段と、
前記ビットマップ画像の描画において、前記生成手段で生成された情報によって示される前記描画されない画素に対してアルファブレンディングを行わず、前記生成手段で生成された情報によって示される前記描画される画素に対してアルファブレンディングを行う描画手段と、
を有する画像処理装置であって、
前記生成手段は、さらに、前記判定に基づいて、前記ビットマップ画像に半透明を示すアルファ値を持つ画素が存在するかを判定し、前記ビットマップ画像に半透明を示すアルファ値を持つ画素が存在しないと判定される場合に、前記描画される画素に対するアルファブレンディングが前記描画手段によって行われないようにするための情報を生成することを特徴とする画像処理装置。
【請求項２】
含まれる各画素が当該画素の不透明度を示すアルファ値を持つビットマップ画像を取得する取得手段と、
前記ビットマップ画像に含まれる各画素のアルファ値を判定し、前記判定に基づいて、前記ビットマップ画像のうち、完全透明のアルファ値を持つ画素を描画されない画素とし、完全透明でないアルファ値を持つ画素を描画される画素として、前記描画されない画素と前記描画される画素とを示す情報を生成する生成手段と、
前記ビットマップ画像の描画において、前記生成手段で生成された情報によって示される前記描画されない画素に対してアルファブレンディングを行わず、前記生成手段で生成された情報によって示される前記描画される画素に対してアルファブレンディングを行う描画手段と、
を有する画像処理装置であって、
前記生成手段は、含まれる画素の値が第１の値あるいは第２の値である２値ビットマップであって、前記第１の値によって前記描画されない画素が示され、且つ、前記第２の値によって前記描画される画素が示される前記２値ビットマップを、前記描画されない画素と前記描画される画素とを示す前記情報として、生成することを特徴とする画像処理装置。
【請求項３】
含まれる各画素が当該画素の不透明度を示すアルファ値を持つビットマップ画像を取得する取得手段と、
前記ビットマップ画像に含まれる各画素のアルファ値を判定し、前記判定に基づいて、前記ビットマップ画像のうち、完全透明のアルファ値を持つ画素を描画されない画素とし、完全透明でないアルファ値を持つ画素を描画される画素として、前記描画されない画素と前記描画される画素とを示す情報を生成する生成手段と、
前記ビットマップ画像の描画において、前記生成手段で生成された情報によって示される前記描画されない画素に対してアルファブレンディングを行わず、前記生成手段で生成された情報によって示される前記描画される画素に対してアルファブレンディングを行う描画手段と、
を有する画像処理装置であって、
前記描画手段は、前記生成された情報に基づいて、前記描画されない画素と前記描画される画素との境界位置を生成し、当該生成された境界位置に基づいて、前記ビットマップ画像の描画を行うことを特徴とする画像処理装置。
【請求項４】
含まれる各画素が当該画素の不透明度を示すアルファ値を持つビットマップ画像を取得する取得手段と、
前記ビットマップ画像に含まれる複数の画素のアルファ値を解析することで前記ビットマップ画像を第１の方法で描画するか前記第２の方法で描画するかを決定する決定手段と、
前記決定手段で決定された方法が前記第１の方法である場合に、前記ビットマップ画像に含まれる各画素のアルファ値を判定し、前記判定に基づいて、前記ビットマップ画像のうち、完全透明のアルファ値を持つ画素を描画されない画素とし、完全透明でないアルファ値を持つ画素を描画される画素として、前記描画されない画素と前記描画される画素とを示す第１の情報を生成する第１の生成手段と、
前記決定手段で決定された方法が前記第２の方法である場合に、前記ビットマップ画像に含まれる各画素が描画されることを示す第２の情報を生成する第２の生成手段と、
前記第１の情報が生成された場合は、前記ビットマップ画像の描画において、前記第１の情報に基づいて、前記描画されない画素の描画を省略し、前記第１の情報によって示される前記描画される画素の描画を行い、
前記第２の情報が生成された場合は、前記ビットマップ画像の描画において、前記第２の情報に基づいて、前記ビットマップ画像の各画素を描画する描画手段と、
を有することを特徴とする画像処理装置。
【請求項５】
前記決定手段は、さらに、前記ビットマップ画像の面積が閾値未満の場合に、前記第２の方法で描画すると決定することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記決定手段は、
前記ビットマップ画像の所定領域における、前記描画されない画素と前記描画される画素とが隣接する位置の数に基づいてエッジ密度を求め、
前記求めたエッジ密度が閾値未満である場合に、前記第１の方法で描画すると決定し、
前記求めたエッジ密度が前記閾値以上である場合に、前記第２の方法で描画すると決定することを特徴とする請求項４または５に記載の画像処理装置。
【請求項７】
前記描画手段は、
前記決定された方法が前記第１の方法である場合に生成された前記第１の情報に基づいて、前記描画されない画素と前記描画される画素との境界位置を検出し、当該検出された境界位置に基づいて前記ビットマップ画像の描画を行い、
前記決定された方法が前記第２の方法である場合に生成された前記第２の情報に基づいて、前記ビットマップ画像の両端の位置に基づいて前記ビットマップ画像の描画を行うことを特徴とする請求項４乃至６の何れか１項に記載の画像処理装置。
【請求項８】
含まれる各画素が当該画素の不透明度を示すアルファ値を持つビットマップ画像の所定領域における、特定のアルファ値を持つ画素と、前記特定のアルファ値とは異なるアルファ値を持つ画素とが隣接する位置の数に基づいて、エッジ密度を計算する計算手段と、
前記計算されたエッジ密度に基づいて、前記ビットマップ画像の描画を行う描画手段と、を有し、
前記描画において、前記描画手段は、
前記計算されたエッジ密度が閾値未満である場合に、前記ビットマップ画像における前記特定のアルファ値を持つ画素と前記異なるアルファ値を持つ画素とが隣接する位置を検出し、前記ビットマップ画像における前記特定のアルファ値を持つ画素の領域を前記検出された位置に基づいて特定し、前記特定された領域に含まれる各画素に対するアルファブレンディングによる描画を省略し、
前記計算されたエッジ密度が閾値以上である場合に、前記ビットマップ画像における各画素に対するアルファブレンディングによる描画を行うことを特徴とする画像処理装置。
【請求項９】
前記描画手段は、前記異なるアルファ値を持つ画素から前記特定のアルファ値を持つ画素に切り替わる位置を前記領域の左端とし、前記特定のアルファ値を持つ画素から前記異なるアルファ値を持つ画素へ切り替わる位置を前記領域の右端とすることで、前記領域を特定することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記描画手段は、前記ビットマップ画像の面積が閾値未満である場合に、前記ビットマップ画像における各画素についてアルファブレンディングによる描画を行うことを特徴とする請求項８または９に記載の画像処理装置。
【請求項１１】
前記計算されたエッジ密度が閾値未満である場合に、前記位置を示す情報を生成し、前記計算されたエッジ密度が閾値以上である場合に、前記位置を示す情報を生成しない生成手段を有し、
前記描画手段は、前記計算されたエッジ密度が閾値未満である場合に、前記生成された情報に基づいて前記領域を特定することを特徴とする請求項８乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
前記位置を示す前記情報とは、前記特定のアルファ値を持つ画素に対応するビット値と、前記異なるアルファ値を持つ画素に対応するビット値とがそれぞれ異なる２値ビットマップであることを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記生成手段は、前記計算されたエッジ密度が閾値以上である場合に、前記ビットマップ画像の領域の左端および右端を示す情報を生成し、
前記描画手段は、前記計算されたエッジ密度が閾値以上である場合に、前記ビットマップ画像の領域の左端および右端を示す前記情報に基づいて前記ビットマップ画像の全体の領域を特定し、当該特定された全体の領域に含まれる各画素のアルファブレンディングによる描画を行うことで、前記ビットマップ画像の描画を行うことを特徴とする請求項１１または１２に記載の画像処理装置。
【請求項１４】
前記ビットマップ画像は、Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ（ＰＮＧ）形式の画像データであることを特徴とする請求項１乃至１３の何れか１項に記載の画像処理装置。
【請求項１５】
前記ビットマップ画像は、ＸＰＳで記述された印刷データに含まれ、
前記画像処理装置は、前記印刷データを受信する受信手段をさらに有することを特徴とする請求項１乃至１４の何れか１項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
アルファチャンネルを含む画像データを処理する技術に関する。
【背景技術】
【０００２】
近年、ＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）フォーマットの画像データがよく扱われるようになってきている。ＰＮＧフォーマットの画像データは、画素の色値（例えばＲＧＢ値）とその画素の不透明度を表現するアルファ値（α値）とを画素毎に含むビットマップの画像データである。
【０００３】
α値を持つ画素を複数含む画像データを前景（すなわち背景の上位）に描画する場合、アルファ（α）ブレンディングによる描画が行われる。αブレンディングとは、不透明度を持つ画素（あるいは画像）をその不透明度に基づいて他の画像と合成する方法である。一般的なαブレンディングによる描画は、前景に描画される画素の持つ色値を、その画素のα値に基づいて、背景の画素の持つ色値と合成する（重み付平均をとる）描画処理である。例えば、透明な画素（透明（完全透明）を示すα値を持つ画素）を前景に描画すると、αブレンディングによる描画処理の結果は、背景の画素の持つ色値となる。また例えば、不透明な画素（不透明（完全不透明）を示すα値を持つ画素）を前景に描画すると、αブレンディングによる描画処理の結果は、前景の画素の持つ色値となる。
【０００４】
αブレンディングによる描画処理は、上述した色値の合成処理のせいで、演算量が多い。そこで特許文献１は、画像データに含まれる各画素が、透明あるいは不透明な画素で構成される場合に、その画像データの描画において、各画素に対するαブレンディングを省略することで描画の高速化を図っていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２４４２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、αブレンディングが省略されるのは、画像データが透明あるいは不透明な画素のみで構成される場合だけであった。
【課題を解決するための手段】
【０００７】
本発明の一形態の画像処理装置は、含まれる各画素が当該画素の不透明度を示すアルファ値を持つビットマップ画像を取得する取得手段と、前記ビットマップ画像に含まれる各画素のアルファ値を判定し、前記判定に基づいて、前記ビットマップ画像のうち、完全透明のアルファ値を持つ画素を描画されない画素とし、完全透明でないアルファ値を持つ画素を描画される画素として、前記描画されない画素と前記描画される画素とを示す情報を生成する生成手段と、前記ビットマップ画像の描画において、前記生成手段で生成された情報によって示される前記描画されない画素に対してアルファブレンディングを行わず、前記生成手段で生成された情報によって示される前記描画される画素に対してアルファブレンディングを行う描画手段と、を有する画像処理装置であって、前記生成手段は、さらに、前記判定に基づいて、前記ビットマップ画像に半透明を示すアルファ値を持つ画素が存在するかを判定し、前記ビットマップ画像に半透明を示すアルファ値を持つ画素が存在しないと判定される場合に、前記描画される画素に対するアルファブレンディングが前記描画手段によって行われないようにするための情報を生成することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、画像の描画において、その画像のある部分についてはαブレンディングを省略し、その画像の別の部分についてはαブレンディングを行うことで、より柔軟なαブレンディングの省略ができる。
【図面の簡単な説明】
【０００９】
【図１】実施例１の画像処理装置のハードウェアブロック図。
【図２】実施例１の画像処理装置のソフトウェアブロック図。
【図３】ＰＤＬコマンド、描画コマンド、ディスプレイリストの説明図。
【図４】ビットマップエッジの説明図。
【図５】実施例１のＰＤＬ解釈処理から描画処理までのフローチャート。
【図６】実施例１のα判定処理のフローチャート。
【図７】αチャンネルを含む画像データから生成される、ビットマップエッジを含むディスプレイリストの説明図。
【図８】実施例１のベクターエッジとビットマップエッジとの切り替えによる違いの説明図。
【発明を実施するための形態】
【００１０】
（実施例１）
アルファ（α）値とは、画素の持つ不透明度のことである。
【００１１】
透明（完全透明）な画素とは、透明（完全透明）を示すα値（例えば最小値０）を持つ画素である。透明な画素を、アルファブレンディング（αブレンディング）を用いて、背景の画素に描画して得られる色値は、その背景の画素の色値である。すなわち、透明な画素の描画結果は、描画されない画素とみなせる。
【００１２】
半透明な画素とは、半透明を示すα値（例えば１以上２５４以下）を持つ画素である。半透明な画素を、αブレンディングを用いて、背景の画素に描画して得られる色値は、その半透明な画素の色値とその背景の画素の色値との合成値である。
【００１３】
不透明（完全不透明）な画素とは、不透明（完全不透明）を示すα値（例えば最大値２５５）を持つ画素である。不透明な画素を、αブレンディングを用いて、背景の画素に描画して得られる色値は、その不透明な画素の色値である。すなわち、不透明な画素の描画結果は、上書き描画されるとみなせる。
【００１４】
非透明な画素とは、半透明な画素および不透明な画素の総称である。すなわち、非透明な画素は、描画される画素とみなせる。
【００１５】
なお、αブレンディングとは、描画される画素を前景、他の画像の画素を背景として、前景の画素の持つα値に基づいて、背景の画素に合成する方法である。一般的なαブレンディングによる描画で得られる色値は、（α値／α値の最大値）を乗じた前景の画素の持つ色値と、（１−（α値／α値の最大値）を乗じた背景の画素の持つ色値との合計値である。
【００１６】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１７】
なお以下の説明で２値ビットマップと呼ぶ場合、１画素あたり１ビットで表現されるビットマップ画像データのことを指す。
【００１８】
図１は、本実施例の画像処理装置を示すハードウェアブロック図である。本実施例では画像処理装置の一例として画像形成装置１００を説明する。この画像形成装置１００は、ＭｕｌｔｉＦｕｎｃｔｉｏｎＰｅｒｉｐｈｅｒａｌ（ＭＦＰ）であっても、ＳｉｎｇｌｅＦｕｎｃｔｉｏｎＰｒｉｎｔｅｒ（ＳＦＰ）であっても良い。
【００１９】
画像形成装置１００は、イーサネット（登録商標）等のＬＡＮ（ＬｏｃａｌＡｒｅａＮｅｔｗｏｒｋ）１６０を介して、ホストコンピュータ（例えばＰｅｒｓｏｎａｌＣｏｍｐｕｔｅｒ）１７０と通信する。
【００２０】
前記画像形成装置１００は、制御装置（コントローラ部）１１０、プリンタ装置（プリンタ部）１３０、データ記憶部１５０、不図示のネットワークＩ／Ｆ（インターフェース）を備える。制御装置１１０は、プリンタ装置１３０、データ記憶部１５０を制御する。
【００２１】
制御装置１１０は、不図示のＣＰＵ（ＣｅｎｔｒａｌＰｒｏｃｅｓｓｉｎｇＵｎｉｔ）、ＲＯＭ（ＲｅａｄＯｎｌｙＭｅｍｏｒｙ）、ＲＡＭ（ＲａｎｄｏｍＡｃｃｅｓｓＭｅｍｏｒｙ）を有する。このＣＰＵは、このＲＯＭやデータ記憶部１５０に記憶されたプログラムをこのＲＡＭにロードし、実行することで、画像形成装置１００全体を統括制御する。このＣＰＵによるプログラムの実行によって、制御装置１１０は、ＰＤＬ受信処理、ＰＤＬ解釈処理、中間データ生成処理、描画処理を行う。
【００２２】
制御装置１１０は、ホストコンピュータ１７０よりＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）やＰｏｓｔＳｃｒｉｐｔなどのページ記述言語（ＰＤＬ）で記述されたＰＤＬデータ（印刷データ）を、前述のネットワークＩ／Ｆを介して受信し、データ記憶部１５０に記憶する。データ記憶部１５０は、例えばＨＤＤ（ＨａｒｄＤｉｓｋＤｒｉｖｅ）やＳＳＤ（ＳｏｌｉｄＳｔａｔｅＤｒｉｖｅ）である。そして制御装置１１０は、記憶されたＰＤＬデータに対してＰＤＬ解釈処理を行い、その解釈結果に基づいて中間データ生成処理を行う。中間データ生成処理の結果、ディスプレイリストと呼ばれる中間データがページ分、生成される。そして制御装置１１０は、生成された中間データに基づいて、ページごとの描画処理を行うことで、ページのビットマップ画像データを生成する。制御装置１１０は、生成されたビットマップ画像データを、データ記憶部１５０に記憶する。そして制御装置１１０は、その記憶されたビットマップ画像データを、プリンタ装置１３０に供給する。
【００２３】
なお本実施例では、描画処理は、制御装置１１０内のＣＰＵが実行するが、制御装置１１０内にＣＰＵとは別のラスターイメージプロセッサ（ＲＩＰ）を設けて、このＲＩＰで描画処理が実行されるように構成しても良い。
【００２４】
プリンタ装置１３０は、制御装置１１０から供給されたビットマップ画像データに基づいて画像を記録媒体（例えば紙やＯＨＰシート）上に印刷する。このプリンタ装置１３０のプリント方式は、電子写真方式やインクジェット方式など様々な種類のプリント方式が考えられる。
【００２５】
図２は、本実施例の制御装置１１０内の不図示のＣＰＵが前述のプログラムを実行することで実現されるソフトウェアモジュール図の一例を示すブロック図である。
【００２６】
ジョブ制御部２００は、ホストコンピュータ１７０にて生成されたＰＤＬデータを、ＬＡＮ１６０を介して受信し、データ記憶部１５０に記憶する。そしてＰＤＬ解釈部２０５、中間データ生成部２１０、描画部２１５に処理を開始するように指示する。
【００２７】
ジョブ制御部２００からの処理開始の指示を受けたＰＤＬ解釈部２０５は、データ記憶部１５０に記憶されたＰＤＬデータを解釈し、その解釈に基づいた描画コマンドを中間データ生成部２１０に発行する。このＰＤＬ解釈部２０５は、例えば、ＰｏｓｔＳｃｒｉｐｔやＸＰＳで記述されたＰＤＬデータ（印刷データ）を解釈することができる。
【００２８】
ジョブ制御部２００からの処理開始の指示を受けた中間データ生成部２１０は、ＰＤＬ解釈部２０５から発行された描画コマンドから中間データを生成し、生成された中間データを、制御装置１１０内のＲＡＭに記憶する。この中間データ生成処理は、図６を用いて詳細を後述する。
【００２９】
ジョブ制御部２００からの処理開始の指示を受けた描画部２１５は、中間データ生成部２１０によって中間データがＲＡＭに１ページ分、記憶されると、そのＲＡＭから中間データを読み込む。そして描画部２１５は、その中間データに基づいて描画処理を実行することで、１ページ分のビットマップ画像データをＲＡＭに描画する。１ページ分のビットマップ画像データをＲＡＭに描画するとは、そのページに含まれる画素のＲＧＢ値を、ＲＡＭ上の対応するアドレスに書き込むことである。そして描画部２１５は、そのＲＡＭ上の１ページ分のビットマップ画像データをデータ記憶部１５０に記憶する。このデータ記憶部１５０に記憶されたビットマップ画像データは、ジョブ制御部２００によってプリンタ装置１３０に供給される。
【００３０】
図３は、ＰＤＬデータと、そのＰＤＬデータの解釈に基づいて発行される描画コマンドと、その描画コマンドから生成される中間データを説明する模式図である。特に図３を用いてベクターエッジ（後述）について説明する。
＜ベクターエッジ＞
図３（ａ）は、ホストコンピュータ１７０にて生成されるＰＤＬデータの例を示す。例えば、ＸＰＳで記述された、オブジェクトの描画命令（ＰＤＬコマンド）３００が示される。このＰＤＬコマンド３００は、ＸＰＳのパス要素を記述している。記述内容は、描画が行われる領域の指定、その領域の内部の塗り（ブラシ）などの命令である。具体的には、図３（ａ）に示されるＰＤＬコマンド３００では、描画が行われる領域を矩形のパスで指定し、その矩形領域の内部をＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）形式のビットマップ画像データ（１−１．ＰＮＧ）で塗ることが記述されている。このＰＮＧ形式のビットマップ画像データはアルファチャンネル（αチャンネル）を含む画像データである。つまり画像データは、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の各色の輝度を示す３つの色値のチャンネルと、不透明度を示す１つのαチャンネルとの計４チャンネルを有し、各画素はＲＧＢ値およびα値（すなわちＲＧＢα値）を持つ。本実施例では各チャンネル８ビットである。例えば、ＲＧＢα値＝（０、０、０、２５５）を持つ画素は不透明な黒い画素であり、ＲＧＢα値＝（０、０、０、０）を持つ画素は透明な黒い画素である。またα値が１以上２５４以下を持つ画素は半透明な画素である。例えばＲＧＢα値＝（０、０、０、１２８）を持つ画素は半透明な黒い画素である。
【００３１】
図３（ｂ）は、図３（ａ）のＰＤＬコマンド３００を、ＰＤＬ解釈部２０５が解釈したことにより発行される描画コマンド３１０を示す。描画コマンド３１０は、パスデータ３１１、コンポジットデータ３１２、ソース画像データ３１３を含む。
【００３２】
パスデータ３１１には、描画されるオブジェクトの領域を表す座標データが含まれる。この座標データとは、描画されるオブジェクトの領域の左上の座標（５０、０）および右下の座標（２５０、５０）である。
【００３３】
コンポジットデータ３１２は、描画されるオブジェクトの背面オブジェクトとの合成方法が、ポーターダフのＯｖｅｒであることを示す。
【００３４】
ソース画像データ３１３は、描画されるオブジェクトの領域の内部に塗られる画像データが、「１−１．ＰＮＧ」であることを示す。ここでの１−１．ＰＮＧは、図３（ｂ）のＳｏｕｒｃｅＩｍａｇｅＤａｔａ３１３に示されるように、高さ５０画素、幅２００画素のビットマップ画像データである。このビットマップ画像データの左上および右下の画素の持つＲＧＢα値は（０、０、０、２５５）であり、それ以外の画素の持つＲＧＢα値は（０、０、０、０）である。つまり左上および右下の画素は不透明であり、それ以外の画素は透明である。
【００３５】
なお描画コマンドのパスデータは上述したような座標データを含むものの他に、２値ビットマップを含むものもある。２値ビットマップを含むパスデータについては図４を用いて後述する。
【００３６】
図３（ｃ）は、図３（ｂ）の描画コマンド３１０から、中間データ生成部２１０が生成したディスプレイリスト（中間データ）３２０の一例を示す。ディスプレイリスト３２０は、エッジデータ３２１、レベルデータ３２２、フィルデータ３２３を含む。これらのデータは、フィルデータ３２３がレベルデータ３２２から参照され、レベルデータ３２２がエッジデータ３２１から参照されるようなリスト構造を持つ。描画部２１５は、ディスプレイリストからエッジデータ３２１を読み込み、レベルデータ３２２、フィルデータ３２３を順にたどっていきながら、ページの描画処理を行う。
【００３７】
エッジデータ３２１は、描画コマンドのパスデータ３１１から生成される。ここでのパスデータ３１１には座標データが含まれているため、生成されるエッジデータ３２１の種別は、ベクターエッジである。ベクターエッジとは、下向きエッジと上向きエッジのペアである。下向きエッジおよび上向きエッジそれぞれのエッジは、描画されるオブジェクトの領域の端部を示す。図３（ｃ）に示されるエッジデータ３２１に含まれる下向きエッジは、矩形のオブジェクトの左端を、座標（５０、０）と（５０、５０）とを結ぶベクトルで示す。上向きエッジは、矩形のオブジェクトの右端を、座標（２５０、０）と（２５０、５０）とを結ぶベクトルで示す。或るオブジェクトの下向きエッジと上向きエッジとで挟まれたスキャンライン上の領域（区間）は、そのオブジェクトが描画される領域（アクティブな領域）であり、それ以外の領域は、そのオブジェクトに関しては非アクティブな領域である。
【００３８】
レベルデータ３２２は、描画されるオブジェクトの重なり順を示すレベル数、そのオブジェクトの背面との合成方法を示すオペレータ、オブジェクトの領域の内部の塗りを示すフィルデータアドレスを含む。図３（ｃ）に示されるレベル数は、重なり順で最も下位に描画されることを示す「１」である。図３（ｃ）に示されるオペレータは、コンポジットデータ３１２と同等のＯｖｅｒである。図３（ｃ）に示されるフィルデータアドレスは、フィルデータ３２３を参照するためのアドレスである。
【００３９】
フィルデータ３２３は、描画されるオブジェクトの領域の内部を塗るために用いられる画像データを示す。図３（ｃ）に示されるフィルデータ３２３によって示される画像データは、ソース画像データ３１３（１−１．ＰＮＧ）と同じである。
【００４０】
上述のベクターエッジを含むディスプレイリストに基づく描画部２１５による描画処理は、ベクターエッジによって示されるアクティブ領域内の全画素（つまりオブジェクト内の全画素）について行われる。すなわちアクティブ領域内の各画素は、フィルデータによって示される画像データ、および、レベルデータによって示される合成方法に基づいて描画される。
【００４１】
特に、各画素がα値を持つビットマップ画像データが、ベクターエッジを用いて描画されるのであれば、描画部２１５は、ベクターエッジに基づいて、その画像データの描画領域の全体をアクティブ領域として特定する。そして描画部２１５は、ビットマップ画像データ内の描画される画素と描画されない画素との境界を検出することなく、画像データ内の各画素を、それぞれの画素が持つα値に基づいたαブレンディングによって描画する。逆に非アクティブ領域内の画素については、このような描画処理は行われない。その結果、非アクティブ領域に対する描画処理を省略することができ、ページの描画処理を高速化できる。
【００４２】
例えばディスプレイリスト３２０に基づく描画処理は、フィルデータ３２３の画像データがα値を持つ画素を含むので、その画素と背面の画素とのαブレンディングが、アクティブ領域内の各画素に対して行われる。ここでディスプレイリスト３２０のフィルデータ３２３の画像データは、左上および右下の画素以外は透明であるため、透明な画素に対して行われるαブレンディングは無駄な処理となる。αブレンディングを行わずに、背景の画素の色値をそのまま出力すればよいからである。
＜ビットマップエッジ＞
描画コマンドのパスデータに２値ビットマップが含まれている場合、生成されるディスプレイリストは、ディスプレイリスト３２０とは異なる。具体的には、ディスプレイリストに含まれるエッジデータの種別は、ビットマップエッジ（後述）である。このビットマップエッジについて図４を用いて説明する。
【００４３】
パスデータに含まれる２値ビットマップは、例えば図４（ａ）に示されるような２値ビットマップである。図４（ａ）に示される２値ビットマップは、文字の外形をビット（ビット値）「１」の位置で表すもので、文字の外形は数字の「１」を表している。ビット「１」を持つ画素が、ソース画像データに指定される画像データで塗られる。例えばソース画像データがＲＧＢ値（０、０、０）であれば、黒色でビット「１」を持つ画素が塗られる。またパスデータには２値ビットマップの他に、メインエッジと呼ばれる２値ビットマップの左端の座標を示すデータも含まれる。以上のような２値ビットマップを含むパスデータの場合、２値ビットマップがビットマップエッジに含まれる。
【００４４】
このような描画コマンドからは、図４（ｂ）に示されるディスプレイリストが生成される。すなわち、ビットマップエッジであるエッジデータが生成される。ビットマップエッジは、オブジェクトの左端の座標位置を示すメインエッジと、２値ビットマップを含む。このビットマップエッジは、図４（ｂ）に示されるレベルデータを参照し、このレベルデータはフィルデータを参照する。レベルデータの内容はレベルデータ３２２と同様である。またこのフィルデータは、単色フィルであり、描画コマンドに含まれるソース画像データから生成される。ここでは、ＲＧＢ値（０、０、０）の黒色である。
【００４５】
このように生成されたビットマップエッジを含むディスプレイリストに基づいて行われる描画処理について説明する。描画部２１５は、ビットマップエッジを含むディスプレイリストを取得すると、ビットマップエッジに含まれる２値ビットマップから、ビットの切り替わりを検出する。この切り替わりの位置は、すなわち、透明な画素（すなわち描画されない画素）と非透明な画素（描画される画素）との境界位置を示す。そして描画部２１５は、その検出結果に基づいて、下向きエッジと上向きエッジとを生成する。下向きエッジは、２値ビットマップに含まれるビット「０」の画素からビット「１」の画素への切り替わり位置（境界位置）に生成される。上向きエッジは、２値ビットマップに含まれるビット「１」の画素からビット「０」の画素への切り替わり位置（境界位置）に生成される。生成されたエッジを図４（ｃ）に示す。図４（ｃ）に示されるエッジデータからわかる通り、ビットマップエッジから、２本の下向きエッジと２本の上向きエッジとが生成される。そして描画部２１５は、ディスプレイリスト３２０に基づいて行われる描画処理と同様に、下向きエッジと上向きエッジとで挟まれるアクティブ領域内の各画素に対して、レベルデータおよびフィルデータに基づいて描画処理を行う。その一方で描画部２１５は、非アクティブ領域内の画素に対しては描画処理を行わない。そのため、例えばフィルデータの画像データにα値を持つ画素が含まれていれば、描画部２１５は、アクティブ領域内の画素に対してはαブレンディングを行い、非アクティブ領域内の画素に対してはαブレンディングを行わない。
【００４６】
なお、さらなるαブレンディングの省略のために、描画部２１５は、アクティブ領域内の不透明な画素（あるいは領域）を特定し、その画素（あるいは領域）を、αブレンディングを用いずに上書き描画しても良い。
【００４７】
このようにエッジデータをビットマップエッジにすることで、描画処理においてエッジを処理するコストがかかるものの、部分的に描画処理を省略できる。そのため、透明な画素がまとまった部分を持つオブジェクトを描画する際に、ベクターエッジで描画処理を行う場合に比べて、ビットマップエッジで描画処理を行う場合の方が、処理の高速化が見込める。
＜ディスプレイリストの生成＞
図５は、本実施例の制御装置１１０が実行する中間データ（ディスプレイリスト）生成処理のフローチャートである。このフローは、制御装置１１０内の不図示のＣＰＵが前述のプログラムを実行することで実現されるソフトウェアモジュールによって実行される。なお本フローの処理は、ジョブ処理部２００がＰＤＬ解釈部２０５、中間データ生成部２１０、描画部２１５に処理を開始するよう指示することに応じて、開始される。
【００４８】
ステップＳ５０１において、ＰＤＬ解釈部２０５は、データ記憶部１５０に記憶されたＰＤＬデータを読み込む。そして処理はステップＳ５０２へ進む。ここで読み込まれるＰＤＬデータは、複数のＰＤＬコマンドを含む。これら複数のＰＤＬコマンドの中には、ジョブの開始、ページの開始、ページの終了、ジョブの終了といったＰＤＬコマンド、オブジェクトの描画を指示するＰＤＬコマンドを含む。
【００４９】
ステップＳ５０２において、ＰＤＬ解釈部２０５は、ＰＤＬデータの先頭から順にまだ解釈されていないＰＤＬコマンドの１つを、処理対象のＰＤＬコマンドとして取得する。そしてＰＤＬ解釈部２０５は、処理対象のＰＤＬコマンドを解釈する。そして処理はステップＳ５０３へ進む。
【００５０】
ステップＳ５０３において、ＰＤＬ解釈部２０５は、処理対象のＰＤＬコマンドがジョブの終了コマンドであるかどうかを判定する。処理対象のＰＤＬコマンドがジョブの終了コマンドである場合は、本フローチャートの処理を終了する。そうでない場合は、処理はステップＳ５０４へ進む。
【００５１】
ステップＳ５０４において、ＰＤＬ解釈部２０５は、処理対象のＰＤＬコマンドがページの終了コマンドでどうかを判定する。処理対象のＰＤＬコマンドが、ページの終了コマンドである場合は、処理はステップＳ５１３へ進む。そうでない場合は、処理対象のＰＤＬコマンドはオブジェクトの描画を指示するＰＤＬコマンドであるので、処理はステップＳ５０５へ進む。
【００５２】
ステップＳ５０５において、ＰＤＬ解釈部２０５は、処理対象のＰＤＬコマンドの解釈に基づいてオブジェクトの描画コマンドを生成する。そしてＰＤＬ解釈部２０５は、その描画コマンドを中間データ生成部２１０に発行する。そして処理はステップＳ５０６へ進む。
【００５３】
ステップＳ５０６において、中間データ生成部２１０は、発行された描画コマンドのパスデータに２値ビットマップが含まれるかを判定する。パスデータが２値ビットマップを含む場合（例えば図４（ａ））、処理はステップＳ５１１へ進む。そうではなく、パスデータに座標データが含まれる場合（例えば図３（ｂ））、処理はステップＳ５０７へ進む。
【００５４】
ステップＳ５０７において、中間データ生成部２１０は、ステップＳ５０５で発行された描画コマンドが、αチャンネルを含むビットマップ画像データの描画コマンドであるかどうかを判定する。具体的には、中間データ生成部２１０が、描画コマンドのフィルデータをチェックすることで行われる。
【００５５】
例えばフィルデータに、αチャンネルを含むビットマップ画像データ（例えばαチャンネルを含むＰＮＧ形式のビットマップ画像データ）が指定されている場合、中間データ生成部２１０は、描画コマンドがαチャンネルを含むビットマップ画像データの描画コマンドであると判定する。そして処理はステップＳ５０８へ進む。
【００５６】
一方、例えばフィルデータに、α値を含まない不透明の単色フィルが指定されている場合、中間データ生成部２１０は、描画コマンドがαチャンネルを含むビットマップ画像データの描画コマンドではないと判定する。そして処理はステップＳ５１３へ進む。
【００５７】
ステップＳ５０８において、中間データ生成部２１０は、Ｓ５０７でのフィルデータに指定されているビットマップ画像データの面積が、閾値以上かどうかを判定する。ビットマップ画像データの面積が閾値以上である場合に、処理はステップＳ５０９へ進む。そうでない場合に、処理はステップＳ５１３へ進む。このように判定するのは次の理由からである。
【００５８】
面積が閾値未満であるビットマップ画像データの各画素に対して合成処理（αブレンディング）を行っても、合成処理の演算量はそれほど大きくはない。一方で、このようなビットマップ画像データに対して後述のステップＳ５０９のアルファ（α）判定処理を行う方が、判定処理の演算量が大きい。また、面積の小さな画像データからビットマップエッジを含むディスプレイリストを仮に生成したとしても、描画処理においてエッジが生成されてエッジを処理する際に演算量が増すので、描画処理の高速化がそれほど見込めないからである。
【００５９】
そのため、面積が閾値未満であるビットマップ画像データに対してはステップＳ５０９のα判定処理を行わずに、処理をステップＳ５１３へ進める。
【００６０】
ステップＳ５０９において、中間データ生成部２１０は、α判定処理を行う。このα判定処理は、αチャンネルを含むビットマップ画像データを解析し、その解析に基づいてビットマップエッジ化フラグの設定を行う。例えばソース画像データが図７（ａ）に示される画像データ７０１であれば、ビットマップエッジ化フラグは「１」に設定され、画像データ７０２であれば「０」に設定される。なお画像データ７０１は、ソースイメージデータ３１３と等価である。また画像データ７０２は、透明な画素と不透明な画素とが交互に並ぶ、高さ５０画素および幅２００画素の格子状の画像データである。このα判定処理に関しては、図６を用いて後述する。そして処理はステップＳ５１０に進む。
【００６１】
ステップＳ５１０において、中間データ生成部２１０は、ビットマップエッジ化フラグが「１」に設定されているかどうかを判定する。ビットマップエッジ化フラグが「１」に設定されている場合は、処理はステップＳ５１２へ進む。そうでない場合、処理はステップＳ５１３へ進む。
【００６２】
ステップＳ５１１において、中間データ生成部２１０は、図４（ｂ）に示したようなビットマップエッジを含む中間データを生成する。
【００６３】
ステップＳ５１２において、中間データ生成部２１０は、画像データに含まれるαチャンネル（各画素のα値）に基づいて、ビットマップエッジを含む中間データを生成する。以下で説明するように、αチャンネル（各画素のα値）に基づいてビットマップエッジを含む中間データを生成することで、描画部２１５はステップＳ５１４において次のような振る舞いを示す。すなわち描画部２１５は、特定のα値（透明を示すα値）を持つ画素の描画自体を省略し、それ以外のα値（半透明や不透明を示すα値）を持つ画素の描画を、αブレンディングを用いて行う。別観点で言い換えると、このステップＳ５１２によるビットマップエッジの生成は、描画部２１５による次の処理を可能にする。（１）描画が必要な画素（領域）と、描画が不必要な画素（領域）との分割処理、および、（２）描画が必要な画素（領域）についてのαブレンディングを用いた描画処理。
【００６４】
この中間データ生成処理について、図７（ｂ）を用いて説明する。ここではソース画像データが画像データ７０１である場合の、ビットマップエッジを含む中間データ生成処理を説明する。
【００６５】
まず、中間データ生成部２１０は、ソース画像データの画像データの大きさ（幅・高さ）と同じ大きさの２値ビットマップを生成する。この２値ビットマップに含まれる画素のそれぞれは、ソース画像データの画像データに含まれる画素のそれぞれと対応している。すなわち、２値ビットマップ内の座標位置（Ｘ、Ｙ）の画素は、ソース画像データの画像データ内の座標位置（Ｘ、Ｙ）の画素に対応している。
【００６６】
そして中間データ生成部２１０は、ソース画像データの画像データに含まれる各画素のα値を参照する。そして中間データ生成部２１０は、α値が透明を示す場合（すなわちα値が特定のアルファ値である場合）に２値ビットマップの対応する位置の画素のビットを「０」に設定する。一方、α値が半透明あるいは不透明を示す場合（すなわちα値が特定のアルファ値と異なる場合）に、中間データ生成部２１０は、２値ビットマップの対応する位置の画素のビットを「１」に設定する。２値ビットマップの各画素に設定されたビット「０」あるいはビット「１」は、２値ビットマップの画素に対応する位置のソース画像データの画像データの画素の描画が省略されるか、あるいは、実行されるか、を示す情報である。すなわち、各画素のビットが設定された２値ビットマップは、ソース画像データの画像データのうち、描画されない領域と、描画される領域とを示す情報である。
【００６７】
次に中間データ生成部２１０は、パスデータに含まれる座標データからオブジェクトの左端の位置を示すエッジを計算し、メインエッジとして生成する。
【００６８】
そして中間データ生成部２１０は、生成された２値ビットマップおよびメインエッジをエッジデータ７２１に含める。そして、中間データ生成部２１０は、ディスプレイリスト３２０のレベルデータ３２２およびフィルデータ７２３と同様に、レベルデータ７２２およびフィルデータ７２３を生成する。最後に中間データ生成部２１０は、エッジデータ７２１からレベルデータ７２２を参照可能にし、レベルデータ７２２からフィルデータ７２３を参照可能にすることで、ビットマップエッジを含むディスプレイリスト７２０を生成する。このフィルデータ７２３は、それぞれがα値を持つ複数の画素を含むビットマップの画像データ７０１である。
【００６９】
なおビットマップエッジを含むディスプレイリストの生成方法は上記に限られず、図７（ｃ）に示されるディスプレイリスト７４０の生成方法を加えても良い。エッジデータ７４１の生成は、エッジデータ７２１の生成と同様であるため説明を割愛する。中間データ生成部２１０は、ソース画像データの画像データに含まれる各画素のα値を参照し、半透明を示すα値が存在しないことを確認した場合に、レベルデータ７４２およびフィルデータ７４３を生成する。レベルデータ７４２は、上書きを指示する「０ｘＣ」のオペレータを含む。また、中間データ生成部２１０は、ソース画像データの画像データにおいて不透明を示すα値を持つ画素の色値が同じであれば、フィルデータ７４３としてその色値（例：ＲＧＢ＝（０、０、０））を持つ単色フィルを生成する。一方、ソース画像データの画像データにおいて不透明を示すα値を持つ画素の色値が異なれば、中間データ生成部２１０は、ソース画像データの画像データからαチャンネルを削除した画像データを、フィルデータ７４３として生成する。このようなディスプレイリストを生成することで、アクティブ領域内の画素のみに対して描画処理を実行しつつ、その描画処理から、上書きに比べて複雑なαブレンディングを省略することができる。
【００７０】
以上のようにして生成されたビットマップエッジを含むディスプレイリストの描画部２１５による描画方法は上述のとおりである。すなわち、ビットマップエッジに含まれる２値ビットマップのビット「０」および「１」の切り替わりに基づいてエッジを生成し、そのエッジから求まる非アクティブ領域の描画は省略しつつ、アクティブ領域の描画を行う。アクティブ領域の描画は、ディスプレイリストに含まれるフィルデータに基づいて行われる。すなわち、フィルデータにα値を持つ画像データが指定されていればαブレンディングを用いた描画が行われ、
ステップＳ５１３において、中間データ生成部２１０は、図３（ｃ）に示したようなベクターエッジによる中間データを生成する。すなわち、中間データ生成部２１０は、αチャンネルを含むビットマップ画像データについては、そのビットマップ画像データの両端の位置を示す下向きエッジおよび上向きエッジのペアをベクターエッジとし、そのベクターエッジを含む中間データを生成する。この場合の中間データのフィルデータはαチャンネルを含むビットマップ画像データそのものである。ベクターエッジを含むディスプレイリストの描画方法は、上述したとおりである。つまり、αチャンネルを含むビットマップ画像データであれば、ベクターエッジの両端間のアクティブ領域において、各画素のαブレンディングによる描画を行う。すなわちαブレンディングは、透明な画素や不透明な画素についても行われる。言い換えれば、ベクターエッジによる中間データを生成するとは、中間データ生成部２１０が、ビットマップ画像データに含まれる各画素が描画される（描画処理の対象となる）ことを示す情報を生成することを含んでいる。
【００７１】
ステップＳ５１４において、１ページ分の中間データを生成し終えたので、描画部２１５は、生成された中間データに基づいて描画処理を行う。この描画処理は、中間データによって表されたオブジェクトのエッジデータの種別（ベクターエッジやビットマップエッジなど）に基づいて行われる。各エッジデータの種別に基づく描画処理の方法は、前述した通りである。この描画処理により、１ページ分のビットマップ画像データが生成される。そして描画部２１５は、この１ページ分のビットマップ画像データを、データ記憶部１５０に記憶する。そして処理はＳ５０２へ戻る。なお、この記憶されたビットマップ画像データは、ジョブ制御部２００によってプリンタ装置１３０に供給される。
【００７２】
図６は、図５のステップＳ５０９のα判定処理の詳細フローである。
【００７３】
このα判定処理は、エッジデータをビットマップエッジ化しても、描画処理において生成されるエッジの数がそれほど多くならないか否かをチェックするために行われる。描画処理において生成されるエッジの数が多すぎると、アクティブ領域のみに対して描画処理を行うことによるメリットよりも、描画処理においてエッジを処理するコスト増大のデメリットが大きくなってしまうためである。
【００７４】
ステップＳ６０１において、中間データ生成部２１０は、変数である“ビットマップエッジ化フラグ”および“カウント値Ｃｎｔ”をともに「０」で初期化する。そして処理はステップＳ６０２へ進む。
【００７５】
ステップＳ６０２において、中間データ生成部２１０は、ビットマップ画像データにおける判定用ラインを決定する。この判定用ラインとは、ビットマップ画像データにおけるスキャンラインであって、後述のステップＳ６０５およびＳ６０６においてα値が解析される複数の画素を含むスキャンラインである。判定用ラインを決定することで、全スキャンラインに含まれる各画素のα値を解析するよりも低演算量でα判定処理を行うことができる。判定用ラインは少なくとも１スキャンライン以上であり、その少なくとも１スキャンライン以上の判定用ラインが、画素の持つα値が解析される所定領域である。この判定用ラインは、ビットマップ画像データの高さがＨ（画素）である場合、例えば１ライン目、［Ｈ／２］ライン目、Ｈライン目である。［・］はガウス記号であり、［Ｈ／２］であれば、Ｈ／２以下の最大の整数を示す。すなわち、なお判定用ラインの決め方はこれだけに限定されない。そして処理は、ステップＳ６０３へ進む。
【００７６】
ステップＳ６０３において、中間データ生成部２１０は、αチャンネルを含むビットマップ画像データの１ライン目から順に、未処理のラインのうちの１ラインをＲＡＭ上のバッファ読み込む。読み込まれたラインに含まれる各画素はＲＧＢα値を持つ。そして処理はステップＳ６０４へ進む。
【００７７】
ステップＳ６０４において、中間データ生成部２１０は、ステップＳ６０３で読み込まれたラインが、ステップＳ６０２で決定された判定用ラインであるかを判定する。判定用ラインであれば、処理はステップＳ６０５へ進み、そうでなければ処理はステップＳ６０７へ進む。
【００７８】
ステップＳ６０５において、中間データ生成部２１０は、ステップＳ６０３で読み込まれた１ラインに含まれる各画素のα値をＲＡＭ上の別のバッファに読み込む。この読込において、各画素の持つα値は、ライン８０１に含まれる画素の並び順と同じ並び順でバッファに読み込まれる。そして処理はステップＳ６０６へ進む。
【００７９】
ステップＳ６０６において、中間データ生成部２１０は、ステップＳ６０３で読み込まれたラインにおいて、透明を示すα値を持つ画素と、それ以外の画素とが隣接する位置（境界位置）の数（透明を示すα値の切り替わりの数）をカウントする。それ以外の画素とは、半透明あるいは不透明を示すα値を持つ画素のことである。そして中間データ生成部２１０は、カウントされた数を、カウント値Ｃｎｔに加算する。そして処理はステップＳ６０７へ進む。
【００８０】
このカウントについて、図７（ａ）を用いて説明すると、画像データ７０１の１ライン目では、カウントされた数は「１」となる。一方、画像データ７０２の１ライン目では、２００画素幅のオブジェクトにおいて画素毎に切り替わりが生じるので、カウントされた数は「１９９」となる。
【００８１】
ステップＳ６０７において、中間データ生成部２１０は、ビットマップ画像データに含まれる全てのラインについて処理を行ったかどうかを判定する。全てのラインについて判定が行っていれば処理はステップＳ６０８へ進む。そうでない場合（未処理のラインが有る場合）、処理はステップＳ６０３へ戻る。
【００８２】
ステップＳ６０８において、中間データ生成部２１０は、エッジ密度を算出する。エッジ密度は、ビットマップ画像データに含まれるエッジ数のビットマップ画像データの面積に対する割合に対応し、次の式によって定義される。
【００８３】
エッジ密度  ＝  （（カウント値Ｃｎｔ）÷（画像幅×判定用ラインの数））
本実施例において画像データ７０１の場合は、カウント値Ｃｎｔは、１ライン目と２５ライン目と５０ライン目の累計「２（＝１＋０＋１）」、画像幅「２００」、判定用ラインの数「３」である。つまり、エッジ密度＝（２）÷（２００×３）＝０．００３３である。また画像データ７０２の場合は、カウント値Ｃｎｔは、１ライン目と２５ライン目と５０ライン目の累計「５９７（＝１９９＋１９９＋１９９）」、画像幅「２００」、判定用ラインの数「３」であるので、エッジ密度＝（５９７）÷（２００×３）＝０．９９５である。
【００８４】
次にステップＳ６０９へ進み、エッジ密度が閾値以上かどうかを判定する。エッジ密度が閾値未満である場合（すなわちビットマップエッジ化した場合に描画処理において生成されるエッジ数が少ない場合）、ステップＳ６１０へ進み、“ビットマップエッジ化フラグ”を１に設定する。エッジ密度が閾値以上である場合（すなわちビットマップエッジ化した場合に描画処理において生成されるエッジ数が多い場合）、“ビットマップエッジ化フラグ”は初期値の０のまま、α判定処理を終了する。
【００８５】
図８（ａ）は、画像データ７０１の描画処理において生成されるエッジ８０１を示す。この画像データ７０１のディスプレイリストに含まれるエッジデータはビットマップエッジである。エッジ８０１からわかる通り、描画処理において、２本の下向きエッジと２本の上向きエッジとが生成される。生成されるエッジが４本であるため、エッジを処理するコストは小さい。さらに、描画部２１５は、非アクティブ領域に対して画像データ７０１の描画処理を行わないため、処理は高速である。
【００８６】
図８（ｂ）は、画像データ７０２の描画処理において生成されるエッジ８０２を示す。この画像データ７０２のディスプレイリストに含まれるエッジデータはベクターエッジでる。エッジ８０２からわかる通り、描画処理において、１本の下向きエッジと１本の上向きエッジとが生成される。
【００８７】
仮にこの画像データ７０２を、ビットマップエッジを用いて描画処理を行った場合に生成されるエッジ８０３を図８（ｃ）に示す。画像データ７０２は、１画素ごとに透明な画素と不透明な画素とが交互に並ぶので、ビットマップエッジを用いて描画処理によって生成されるエッジの数は膨大である。そのためエッジを処理するコストが増えすぎて非効率である。だから、ベクターエッジを用いて画像データ７０２の描画処理を行うのである。
【００８８】
本実施例では、αチャンネルを含む画像データに含まれる画素の持つα値に応じてベクターエッジで描画処理を行うか、ビットマップエッジで描画処理を行うかを切り替える。これにより、描画処理におけるエッジの処理コストを抑えつつ、非アクティブ領域のαブレンディングを省略することができる。
【００８９】
（その他の実施例）
上記実施例では、ＰＤＬデータは、ホストコンピュータ１７０からＬＡＮを介して受信されるとしていた。しかし、画像形成装置１００は不図示のＵＳＢメモリソケットを有し、制御装置１１０はそのソケットに挿入されたＵＳＢメモリからＰＤＬデータを直接に読み出しても良い。この場合、読み出されたＰＤＬデータはデータ記憶部１５０に記憶されてから上述の各処理が進められても、そのＵＳＢメモリをデータ記憶部１５０とみなして各処理が進められても良い。
【００９０】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006494249.tif 000002
【図２】
0006494249.tif 000003
【図３】
0006494249.tif 000004
【図４】
0006494249.tif 000005
【図５】
0006494249.tif 000006
【図６】
0006494249.tif 000007
【図７】
0006494249.tif 000008
【図８】
0006494249.tif 000009