(57)【特許請求の範囲】
【請求項１】
複数の描画オブジェクトを重ね合わせた画像データを生成する画像処理装置であって、
上記画像データにおいて各描画オブジェクトの輪郭を構成する画素であるエッジ画素を検出するエッジ検出部と、
上記エッジ検出部の検出した各描画オブジェクトのエッジ画素に基づいて各描画オブジェクトの重なり状態を判定し、各描画オブジェクトの重なり状態に応じて区画される各領域の描画ルールを決定し、当該各領域のエッジ位置のリストであるエッジ情報と、当該各領域の描画ルールを示す描画ルール情報とからなるマスタステンシルを生成するマスタステンシル生成部と、
上記各描画オブジェクトの画像データを上記マスタステンシルに示されたエッジ情報および描画ルールに基づいて合成する合成処理部とを備え、
上記描画ルールは、複数の描画オブジェクトが重なり合う領域に属する画素の画素値の合成方法を示すものであり、
上記合成方法は、（１）重なり合う各描画オブジェクトのうちの最上層に配置される描画オブジェクトの画像のみを表示させ、それより下層の描画オブジェクトを表示させないようにする方法、（２）重なり合う各描画オブジェクトの画素値を所定の割合で混合する方法、（３）重なり合う各描画オブジェクトのうちの一部または全部の描画オブジェクトを半透明にする方法、（４）重なり合う各描画オブジェクトの画素値を線形演算または論理演算によって合成する方法、または（５）重なり合う各描画オブジェクトの画素値にこれら各描画オブジェクトの重ね合わせ順序に応じた重み付けを施して平均する方法のうちのいずれかであり、
上記合成処理部は、複数の描画オブジェクトが重なり合う領域に属する画素の合成後の画素値を、重なり合う各描画オブジェクトにおける当該画素の画素値同士を上記合成方法に基づいて合成することによって決定し、
上記エッジ情報は、画像データの走査線毎に当該走査線に含まれる上記各領域のエッジ位置を示した情報であり、かつ上記各領域のエッジ位置において隣接する２つのエッジ画素のうち上記画像データを走査線の延伸方向に沿って走査したときに走査方向上流側であるエッジ画素の位置を走査方向に応じた順序で示したリストであることを特徴とする画像処理装置。
【請求項２】
複数の描画オブジェクトを重ね合わせた画像データを生成する画像処理装置であって、
上記画像データにおいて各描画オブジェクトの輪郭を構成する画素であるエッジ画素を検出するエッジ検出部と、
上記エッジ検出部の検出した各描画オブジェクトのエッジ画素に基づいて各描画オブジェクトの重なり状態を判定し、各描画オブジェクトの重なり状態に応じて区画される各領域の描画ルールを決定し、当該各領域のエッジ位置のリストであるエッジ情報と、当該各領域の描画ルールを示す描画ルール情報とからなるマスタステンシルを生成するマスタステンシル生成部と、
上記各描画オブジェクトの画像データを上記マスタステンシルに示されたエッジ情報および描画ルールに基づいて合成する合成処理部とを備え、
上記描画ルールは、複数の描画オブジェクトが重なり合う領域に属する画素の画素値の合成方法を示すものであり、
上記合成方法は、（１）重なり合う各描画オブジェクトのうちの最上層に配置される描画オブジェクトの画像のみを表示させ、それより下層の描画オブジェクトを表示させないようにする方法、（２）重なり合う各描画オブジェクトの画素値を所定の割合で混合する方法、（３）重なり合う各描画オブジェクトのうちの一部または全部の描画オブジェクトを半透明にする方法、（４）重なり合う各描画オブジェクトの画素値を線形演算または論理演算によって合成する方法、または（５）重なり合う各描画オブジェクトの画素値にこれら各描画オブジェクトの重ね合わせ順序に応じた重み付けを施して平均する方法のうちのいずれかであり、
上記合成処理部は、複数の描画オブジェクトが重なり合う領域に属する画素の合成後の画素値を、重なり合う各描画オブジェクトにおける当該画素の画素値同士を上記合成方法に基づいて合成することによって決定し、
上記エッジ情報は、上記各領域のエッジ位置において隣接する２つのエッジ画素のうち、上記画像データの各走査線を当該各走査線の延伸方向に垂直な方向の位置に応じた順序で当該走査線の延伸方向に沿って走査したときに走査順序が先であるエッジ画素について、当該エッジ画素が属する走査線と当該走査線における走査方向に沿った位置とを、走査順序に応じた順序で示したリストであることを特徴とする画像処理装置。
【請求項３】
上記描画オブジェクトの輪郭を構成する画素の位置を示す個別エッジ情報を含むオブジェクトステンシルを上記描画オブジェクト毎に生成するオブジェクトステンシル生成部を備え、
上記マスタステンシル生成部は、上記各オブジェクトステンシルに含まれる上記個別エッジ情報に基づいて上記マスタステンシルに含める上記エッジ情報を生成することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
上記合成処理部によって合成された画像データに対して、網点処理、圧縮処理、色補正処理、およびフィルタ処理のうちのいずれか１つ以上の処理を行うピクセル処理部を備えていることを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
上記合成処理部は、上記各描画オブジェクトの画像データを上記マスタステンシルに含まれるエッジ情報および描画ルールに基づいて合成し、印刷または表示が可能なデータにレンダリングすることを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
上記合成処理部によってレンダリングされた画像データを印刷装置または表示装置に送信する送信処理部を備えていることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
上記マスタステンシル生成部は、網点処理、圧縮処理、色補正処理、およびフィルタ処理のうちのいずれか１つ以上の処理を上記描画ルール情報に含めることを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
上記エッジ情報は、上記各領域のエッジ位置を識別するためのエッジ画素識別子と、上記各領域に対応する描画オブジェクトを特定するためのオブジェクト識別子とを含むことを特徴とする請求項１に記載の画像処理装置。
【請求項９】
上記描画オブジェクトの輪郭を構成する画素の位置を示す個別エッジ情報を含むオブジェクトステンシルを上記描画オブジェクト毎に生成するオブジェクトステンシル生成部と、
上記各描画オブジェクトを重ね合わせて表示させるための重ね合わせの順序を設定する順序設定部とを備え、
上記エッジ検出部は、
画像データを複数の部分に分割した各部分毎に上記エッジ画素を検出するようになっており、
各描画オブジェクトのオブジェクトステンシルにおけるエッジ画素検出対象の部分に対して描画オブジェクト毎に所定の順序でアクセスして各描画オブジェクトの個別エッジ情報を抽出し、抽出した各描画オブジェクトの個別エッジ情報を合成することで上記エッジ画素を検出し、
上記マスタステンシル生成部は、上記各部分についてのエッジ画素の検出結果に基づいて当該各部分における各描画オブジェクトの重なり状態を判定し、各描画オブジェクトの重なり状態に応じて区画される当該区画内の各領域に対する描画ルールを決定することを特徴とする請求項１から８のいずれか１項に記載の画像処理装置。
【請求項１０】
上記所定の順序は、描画オブジェクトの重なり方向に沿って奥行き側から手前側に向かう順序であることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
上記所定の順序は、描画オブジェクトの重なり方向に沿って手前側から奥行き側に向かう順序であることを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
請求項１から１１のいずれか１項に記載の画像処理装置を動作させるプログラムであって、コンピュータを上記各部として機能させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の描画オブジェクトを重ね合わせた画像データを生成する画像処理装置および画像処理方法に関するものである。
【背景技術】
【０００２】
一般的な解像度で印刷を行う際の印刷データのレンダリング処理は、非常に時間がかかり、またメモリを含む多くのコンピュータ資源を必要とする。一般に、これらの処理は、幾何学的処理（geometrical processing）とピクセル値処理という２つのカテゴリーに分類される。
【０００３】
幾何学的処理は、ピクセルの位置を変更する処理である。典型的な幾何学的処理としては、ベクタグラフィックスおよびグリフのレンダリング、画像の拡大や縮小、ピクセルを切り取る画像のクリッピングまたは重ね合わせ、およびアフィン変換（例えば回転）などがある。
【０００４】
ピクセル値処理は、画素の値（ピクセル値）を変更する処理である。典型的なピクセル値処理としては、色補正、フィルタ処理、網点処理、圧縮、およびその他の画像処理技術が含まれる。
【０００５】
一般に、幾何学的処理には、全ピクセルに対応するメモリ（サーフィス（surface））を含んだメモリバッファが必要とされる。サーフィスでは、一回に一つのピクセルが非線形にアクセスされる。ところが、サーフィスアクセスは、アプリケーションの性能を制限する要因となる。特に、大容量のメモリが必要なアプリケーションでは性能が制限されやすい。この点について、図１および図２を参照して説明する。
【０００６】
図１は、印刷対象のドキュメント（あるいは画像）の典型的な部分を示している。図１に示した典型的な部分２は、長方形４、円形６、および三角形８という塗りつぶし（fill）方法が互いに異なる３つの図形要素から成る。典型的な塗りつぶし方法としては、勾配塗りつぶし（gradient fill）、ベタ塗りつぶし（solid fill）、パターン化塗りつぶし、ビットマップ塗りつぶし、半透明性ベースの塗りつぶし、ラスタ演算（raster operation; ROP）ベースの塗りつぶし等がある。なお、本実施例では説明をわかり易くするために各図形オブジェクトの塗りつぶし方法を異ならせているが、各図形オブジェクトの塗りつぶし方法は他のオブジェクトの塗りつぶし方法と必ずしも異なっている必要はない。これらの図形オブジェクトの順序は、上記の典型的な部分（ドキュメントあるいは画像）２を生成するアプリケーションによって定義される。本実施例では、奥行き方向（下層）から手前方向（上層）に向かって長方形４、円形６、三角形８の順で形成されている。生成アプリケーション内においてこれらの図形を上記の構成順序（順序ｚ；下層から上層に向かう順）で処理してもよい。この場合、上記の典型的な部分２は、以下に示す図２（ａ）〜図２（ｆ）に示すようにレンダリングされる。
【０００７】
まず、図２（ａ）に示すように、長方形４に対応する長方形のオブジェクトステンシル１０が生成される。オブジェクトステンシル１０は、ドキュメント内のピクセルにオブジェクトをマッピングする。なお、マッピング方法については当業者であれば容易に理解できることなのでここでは説明を省略するが、典型的なマッピング方法としては、エッジリスト、ピクセルマスク、パラメトリック形状描画などがある。
【０００８】
次に、図２（ｂ）に示すように、メモリバッファ（サーフィス）１１内における長方形４に対応する領域１２が、この長方形４の図形オブジェクトに基づいて塗りつぶされる。これにより、長方形（第１の図形オブジェクト）４がレンダリングされる。長方形４のオブジェクトステンシル１０は、以降のレンダリング処理においては不要であるため破棄される。
【０００９】
次に、図２（ｃ）に示すように、次の図形オブジェクトである円形６に対応する第２のステンシル１４が生成される。そして、図２（ｄ）に示すように、メモリバッファ１１内における円形６に対応する領域１６が、円形６の図形オブジェクトに従って塗りつぶされる。これにより、円形（第２の図形オブジェクト）６がレンダリングされる。なお、長方形４および円形６の両方に含まれるピクセルは、この時点までに２回レンダリングされることになる。第２のステンシル１４は、以降のレンダリング処理においては不要であるため破棄される。
【００１０】
次に、図２（ｅ）に示すように、次の図形オブジェクトである三角形８に対応する第３のステンシル１８が生成される。そして、図２（ｆ）に示すように、メモリバッファ１１内における三角形８に対応する領域２０が三角形６の図形オブジェクトに従って塗りつぶされる。これにより、三角形（第３の図形オブジェクト）８がレンダリングされる。長方形４と円形６と三角形８とに含まれるピクセルは、この時点までに３回レンダリングされている。また、長方形４と三角形８とに含まれるピクセルであって円形６に含まれないピクセルはこの時点までに２回レンダリングされている。第３のステンシル１８は、以降のレンダリング処理においては不要であるため破棄される。
【００１１】
このように、メモリバッファ１１内のピクセルのうち複数の図形オブジェクトに含まれるピクセルは、各オブジェクトステンシルを生成して図形オブジェクトをレンダリングするために、非線形に複数回アクセスされる。
【００１２】
なお、複数の図形オブジェクトに含まれるピクセルについては、各図形オブジェクトの表示方法（例えば透明性塗りつぶしやＲＯＰ塗りつぶしなど）の組み合わせや適用する混合（ブレンド）方法等に応じて適宜必要な処理が行われる。半透明性処理またはＲＯＰ処理を行う場合、印刷オブジェクトは、まず標準的な色空間（例えばｓＲＧＢ）に変換されて組み合わされ、それによって得られる値がプリンタのインク色空間に変換される。
【００１３】
また、従来の印刷データレンダリング方法として、メモリ制限に対処するために、サーフィスを複数の領域（band）に分割する方法や、ＲＧＢ空間のデータをその８分の１のサイズの網点空間（中間調空間）に直接レンダリングする方法などがある。
【００１４】
また、通常は、レンダリングのために用いられるサーフィス上において、図２に示した処理に加えてさらなるピクセル値処理が行われる。なお、メモリの必要とする条件やメモリアクセスの制約によってピクセル値処理の性能が制限される場合がある。
【００１５】
また、特許文献１には、複数のウィンドウを表示画面に表示させるウィンドウ処理装置において、表示領域の全ピクセルに対してウィンドウの重なり順を示すステンシルピクセル値を割り当てたステンシルバッファを作成し、複数のウィンドウの重なり部分については上記ステンシルバッファに基づいて最上層のウィンドウ以外のウィンドウをマスクする技術が開示されている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００７−０８００２０号公報（２００７年３月２９日公開）
【発明の概要】
【発明が解決しようとする課題】
【００１７】
しかしながら、上記特許文献１の技術には、ステンシルバッファに全ピクセルのステンシルピクセル値（ウィンドウの重なり順序）を格納する必要があるので、ステンシルバッファに要求されるメモリ容量が大きいという問題がある。
【００１８】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、複数の描画オブジェクトを重ね合わせた画像データを生成する画像処理装置において、上記各描画オブジェクトを重ね合わせる処理に必要なメモリ容量を低減することにある。
【課題を解決するための手段】
【００１９】
本発明の画像処理装置は、上記の課題を解決するために、複数の描画オブジェクトを重ね合わせた画像データを生成する画像処理装置であって、上記画像データにおいて各描画オブジェクトの輪郭を構成する画素であるエッジ画素を検出するエッジ検出部と、上記エッジ検出部の検出した各描画オブジェクトのエッジ画素に基づいて各描画オブジェクトの重なり状態を判定し、各描画オブジェクトの重なり状態に応じて区画される各領域の描画ルールを決定し、上記エッジ画素の位置を示すエッジ情報と、上記各領域の描画ルールを示す描画ルール情報とを含むマスタステンシルを生成するマスタステンシル生成部と、上記各描画オブジェクトの画像データを上記マスタステンシルに示されたエッジ情報および描画ルールに基づいて合成する合成処理部とを備えていることを特徴としている。
【００２０】
また、本発明の画像処理方法は、上記の課題を解決するために、複数の描画オブジェクトを重ね合わせた画像データを合成する画像処理方法であって、上記画像データにおいて各描画オブジェクトの輪郭を構成する画素であるエッジ画素を検出するエッジ検出工程と、上記エッジ検出部の検出した各描画オブジェクトのエッジ画素に基づいて各描画オブジェクトの重なり状態を判定し、各描画オブジェクトの重なり状態に応じて区画される各領域の描画ルールを決定し、上記エッジ画素を示すエッジ情報と、上記各領域の描画ルールを示す描画ルール情報とを含むマスタステンシル情報を生成するマスタステンシル生成工程と、上記各描画オブジェクトの画像データを上記マスタステンシル情報に示されたエッジ情報および描画ルールに基づいて合成する合成処理工程とを含むことを特徴としている。
【００２１】
上記の画像処理装置および画像処理方法によれば、上記画像データにおいて各描画オブジェクトの輪郭を構成する画素であるエッジ画素を検出し、上記エッジ検出部の検出した各描画オブジェクトのエッジ画素に基づいて各描画オブジェクトの重なり状態を判定し、各描画オブジェクトの重なり状態に応じて区画される各領域の描画ルールを決定し、上記エッジ画素を示すエッジ情報と、上記各領域の描画ルールを示す描画ルール情報とを含むマスタステンシルを生成する。そして、上記各描画オブジェクトの画像データを上記マスタステンシルに示されたエッジ情報および描画ルールに基づいて合成する。
【００２２】
これにより、マスタステンシルはエッジ画素を示すエッジ情報と各描画オブジェクトの重なり状態に応じて区画される各領域の描画ルールを示す描画ルール情報とを含んでいればいいので、上記特許文献１のように全画素についてのステンシルピクセル値を記憶させる必要がないため、各描画オブジェクトを重ね合わせる処理に必要なメモリ容量を低減することができる。
【００２３】
また、上記描画オブジェクトの輪郭を構成する画素の位置を示す個別エッジ情報を含むオブジェクトステンシルを上記描画オブジェクト毎に生成するオブジェクトステンシル生成部を備え、上記マスタステンシル生成部は、上記各オブジェクトステンシルに含まれる上記個別エッジ情報に基づいて上記マスタステンシルに含める上記エッジ情報を生成する構成としてもよい。
【００２４】
上記の構成によれば、各オブジェクトステンシルは対応する描画オブジェクトの輪郭を構成する画素を示す個別エッジ情報を含んでいればよいので、各オブジェクトステンシルが全画素についてのデータを含む場合に比べて各描画オブジェクトを重ね合わせる処理に必要なメモリ容量を低減することができる。
【００２５】
また、上記合成処理部によって合成された画像データに対して、網点処理、圧縮処理、色補正処理、およびフィルタ処理のうちのいずれか１つ以上の処理を行うピクセル処理部を備えている構成としてもよい。
【００２６】
上記の構成によれば、合成後の画像データに対して網点処理、圧縮処理、色補正処理、およびフィルタ処理のうちのいずれか１つ以上の処理を施すことができる。
【００２７】
また、上記合成処理部は、上記各描画オブジェクトの画像データを上記マスタステンシルに含まれるエッジ情報および描画ルールに基づいて合成し、印刷可能なデータにレンダリングする構成としてもよい。また、上記合成処理部によってレンダリングされた画像データを上記印刷装置に送信する送信処理部を備えている構成としてもよい。
【００２８】
上記の構成によれば、複数の描画オブジェクトを重ね合わせた画像を印刷処理することができる。
【００２９】
また、上記マスタステンシル生成部は、複数の描画オブジェクトが重なり合う領域に属する画素の画素値の合成方法を上記描画ルール情報に含める構成としてもよい。また、上記合成処理部は、複数の描画オブジェクトが重なり合う領域に属する画素の合成後の画素値を、重なり合う各描画オブジェクトにおける当該画素の画素値同士を上記描画ルール情報に含まれる合成方法に基づいて合成する構成としてもよい。
【００３０】
上記の構成によれば、複数の描画オブジェクトが重なり合う領域に属する画素の画素値を、所定の合成方法に基づいて決定することができる。なお、上記の合成方法は、例えば最上層に配置される描画オブジェクトの画像のみを表示させ、それより下層の描画オブジェクトを表示させないようにする方法であってもよく、各描画オブジェクトの画素値を所定の割合で混合する方法であってもよく、一部または全部の描画オブジェクトを半透明にする方法であってもよい。
【００３１】
また、上記マスタステンシル生成部は、網点処理、圧縮処理、色補正処理、およびフィルタ処理のうちのいずれか１つ以上の処理を上記描画ルール情報に含める構成としてもよい。
【００３２】
上記の構成によれば、上記合成処理部が徐気描画ルール情報に基づいて各描画オブジェクトの画像データを合成することにより、網点処理、圧縮処理、色補正処理、およびフィルタ処理のうちのいずれか１つ以上の処理が施された画像データを得ることができる。
【００３３】
また、上記エッジ情報は、画像データの走査線毎に当該走査線に含まれる上記エッジ画素を示した情報であってもよい。
【００３４】
また、上記エッジ情報は、上記エッジ画素を識別するためのエッジ画素識別子と、上記輪郭によって区画される各領域に対応する描画オブジェクトを特定するためのオブジェクト識別子とを含んでいてもよい。
【００３５】
また、上記描画オブジェクトの輪郭を構成する画素の位置を示す個別エッジ情報を含むオブジェクトステンシルを上記描画オブジェクト毎に生成するオブジェクトステンシル生成部と、上記各描画オブジェクトを重ね合わせて表示させるための重ね合わせの順序を設定する順序設定部とを備え、上記エッジ検出部は、画像データを複数の部分に分割した各部分毎に上記エッジ画素を検出するようになっており、上記エッジ画素の検出を行う際、各描画オブジェクトのオブジェクトステンシルに対して所定の順序でアクセスすることで各描画オブジェクトの重なり状態を検出する構成としてもよい。また、上記所定の順序は、描画オブジェクトの重なり方向に沿って奥行き側から手前側に向かう順序であってもよく、手前側から奥行き側に向かう順序であってもよい。
【発明の効果】
【００３６】
本発明の画像処理装置は、上記画像データにおいて各描画オブジェクトの輪郭を構成する画素であるエッジ画素を検出するエッジ検出部と、上記エッジ検出部の検出した各描画オブジェクトのエッジ画素に基づいて各描画オブジェクトの重なり状態を判定し、各描画オブジェクトの重なり状態に応じて区画される各領域の描画ルールを決定し、上記エッジ画素の位置を示すエッジ情報と、上記各領域の描画ルールを示す描画ルール情報とを含むマスタステンシルを生成するマスタステンシル生成部と、上記各描画オブジェクトの画像データを上記マスタステンシルに示されたエッジ情報および描画ルールに基づいて合成する合成処理部とを備えている。
【００３７】
また、本発明の画像処理方法は、上記画像データにおいて各描画オブジェクトの輪郭を構成する画素であるエッジ画素を検出するエッジ検出工程と、上記エッジ検出工程で検出した各描画オブジェクトのエッジ画素に基づいて各描画オブジェクトの重なり状態を判定し、各描画オブジェクトの重なり状態に応じて区画される各領域の描画ルールを決定し、上記エッジ画素を示すエッジ情報と、上記各領域の描画ルールを示す描画ルール情報とを含むマスタステンシル情報を生成するマスタステンシル生成工程と、上記各描画オブジェクトの画像データを上記マスタステンシル情報に示されたエッジ情報および描画ルールに基づいて合成する合成処理工程とを含む。
【００３８】
それゆえ、各描画オブジェクトを重ね合わせる処理に必要なメモリ容量を低減することができる。
【図面の簡単な説明】
【００３９】
【図１】印刷されるドキュメント（画像）の一例を示す説明図である。
【図２】（ａ）〜（ｆ）は、従来技術におけるレンダリング方法を説明するための説明図である。
【図３】本発明の一実施形態にかかる画像処理装置における処理の流れを示すフロー図である。
【図４】（ａ）〜（ｅ）は、図１に示したドキュメントに対して図３に示した処理を適用する場合の処理内容を説明するための説明図である。
【図５】印刷されるドキュメント（画像）の一例を示す説明図である。
【図６】本発明の一実施形態における各図形オブジェクトの塗りつぶし方法を示す説明図。
【図７】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図８】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図９】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図１０】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図１１】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図１２】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図１３】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図１４】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図１５】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図１６】本発明の一実施形態における各図形オブジェクトの塗りつぶし方法を示す説明図。
【図１７】本実施形態の一実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【図１８】本発明の一実施形態にかかる画像処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００４０】
〔実施形態１〕
本発明の一実施形態について、図面を参照しながら説明する。なお、各図面においては、同様の機能を有する部材等については同じ参照符号を付し、その説明を省略する。
【００４１】
本発明の実施形態の構成要素は、ハードウェア、ファームウェア、ソフトウェア、およびこれらの組み合わせによって実施することができる。
【００４２】
図１８は、本実施形態にかかる画像処理装置１００の概略構成を示すブロック図である。なお、本実施形態では、画像処理装置１００が複数の印刷オブジェクト（描画オブジェクト）のデータを入力され、これら複数の印刷オブジェクトを重ね合わせた印刷データ（画像データ）を生成（レンダリング）して印刷装置に送信する場合の例について説明する。ただし、これに限らず、例えば、各種表示装置に表示させるための表示データ（画像データ）をレンダリングする構成としてもよい。
【００４３】
図１８に示すように、画像処理装置１００は、受信処理部１０１、順序設定部１０２、オブジェクトステンシル生成部１０３、エッジ検出部１０４、マスタステンシル生成部１０５、合成処理部１０６、ピクセル処理部１０７、および送信処理部１０８を備えている。
【００４４】
受信処理部１０１は、ネットワーク等を介して画像処理装置１００に接続される外部装置、あるいは画像処理装置１００に備えられるアプリケーション処理部（図示せず）から出力される複数の印刷オブジェクトのデータを取得する。
【００４５】
順序設定部１０２は、受信処理部１０１が取得した各印刷オブジェクトの重ね合わせ順序を示す設定する。なお、例えば、受信処理部１０１が上記の外部装置やアプリケーション処理部等から複数の印刷オブジェクトとこれら各印刷オブジェクトの重ね合わせ順序を示す情報とを取得し、順序設定部１０２が受信処理部１０１の取得した上記情報に基づいて重ね合わせ順序を設定してもよい。また、順序設定部１０２が図示しない操作入力部を介して入力されるユーザからの指示に応じて重ね合わせ順序を設定するようにしてもよい。
【００４６】
オブジェクトステンシル生成部１０３は、印刷オブジェクトの輪郭を構成する画素を示す個別エッジ情報を含むオブジェクトステンシルを印刷オブジェクト毎に生成する。
【００４７】
エッジ検出部１０４は、各印刷オブジェクトの輪郭を構成する画素であるエッジ画素を検出する。
【００４８】
マスタステンシル生成部１０５は、各印刷オブジェクトを重ねあわせた後の画像データにおける各印刷オブジェクトのエッジ画素を示すエッジ情報と、各印刷オブジェクトの重なり状態に応じて区画される各領域の描画ルールを示す描画ルール情報とを含むマスタステンシルを生成する。
【００４９】
合成処理部１０６は、各印刷オブジェクトの画像データをマスタステンシルに示されたエッジ情報および描画ルールに基づいて印刷可能なデータに合成する。
【００５０】
ピクセル処理部１０７は、合成処理部１０６によって合成された画像データに対して、網点処理、圧縮処理、色補正処理、およびフィルタ処理を施す。なお、ピクセル処理部１０７は必須の構成ではなく省略してもかまわない。また、網点処理、圧縮処理、色補正処理、およびフィルタ処理のうちの一部の処理のみを行う構成としてもよい。
【００５１】
送信処理部１０８は、ピクセル処理部１０７によって所定の処理を施されてレンダリングされた画像データを、ネットワーク等を介して印刷装置に送信する。
【００５２】
図３は画像処理装置１００における処理の流れを示すフロー図である。この図に示すように、まず、受信処理部１０１が複数の印刷オブジェクトを含む印刷データを受信する（Ｓ３０）。典型的な印刷オブジェクトとしては、図形オブジェクト、印刷層（印刷レイヤー（print layers））、および印刷データ生成アプリケーションによって生成される印刷オブジェクトなどが挙げられる。
【００５３】
次に、オブジェクトステンシル生成部１０３が、各印刷オブジェクトに対してそれぞれ個別のオブジェクトステンシルを生成する（Ｓ３２）。このオブジェクトステンシルには、対応する印刷オブジェクトの輪郭に位置する画素を示す個別エッジ情報が含まれる。なお、一部の印刷オブジェクトに対してのみ個別のオブジェクトステンシルを生成するようにしてもよい。
【００５４】
次に、マスタステンシル生成部１０５が、個々のオブジェクトステンシルに基づいてマスタステンシルを生成する（Ｓ３４）。
【００５５】
具体的には、エッジ検出部１０４が各オブジェクトステンシルに基づいて各印刷オブジェクトの輪郭を構成する画素であるエッジ画素を検出し、エッジ情報を生成する。そして、マスタステンシル生成部１０５が、エッジ検出部１０４の検出したエッジ情報に基づいて各印刷オブジェクトの重なり状態（重なりの有無および重なり順序）を判断し、判断結果に応じて各印刷オブジェクトの重なり状態に応じて区画される各領域（各印刷オブジェクトの重なり部分の輪郭によって区画される各領域）の描画ルール情報を生成し、エッジ情報と描画ルール情報とを含むマスタステンシルを生成する。描画ルール情報の生成方法については後述する。
【００５６】
その後、合成処理部１０６がマスタステンシルおよびオブジェクトデータ（各印刷オブジェクトのデータ）に基づいてサーフィスを塗りつぶすことにより（Ｓ３６）、印刷データをレンダリングし、処理を終了する。なお、サーフィスにおける各走査線上のピクセルを上の走査線から下の走査線へ順次塗りつぶしてもよく、下の走査線から上の走査線へ順次塗りつぶしてもよい。また、サーフィスを別の順序で塗りつぶしてもよい。
【００５７】
図３に示した処理では、サーフィス内の各ピクセルは、マスタステンシルに従ってピクセルをレンダリングするときに１回だけアクセスされる。なお、図３に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。また、ピクセル処理部１０７が合成処理部１０６から出力される画像データに対して、網点処理、圧縮処理、色補正処理、およびフィルタ処理等の画像処理（ピクセル処理）を適宜施すようにしてもよい。また、合成処理部１０６から出力される画像データあるいはピクセル処理部１０７から出力される画像データを送信処理部１０８が印刷処理を行う印刷装置に送信するようにしてもよい。
【００５８】
図４（ａ）〜図４（ｅ）は、図１に示したドキュメントに対して図３に示した処理を適用する場合の処理内容を説明するための説明図である。オブジェクトステンシル生成部１０３は、図１に示したドキュメントにおける各印刷オブジェクト４、６、８に対し、図４（ａ）〜図４（ｃ）にそれぞれ示す個々のオブジェクトステンシル３７、３８、３９を生成する。そして、マスタステンシル生成部１０５は、これらのオブジェクトステンシル３７、３８、３９に基づいて、図４（ｄ）に示すマスタステンシル４０を生成する。そして、合成処理部１０６は、マスタステンシル４０に基づいて、図４（ｅ）に示すようにサーフィス４１の各部を塗りつぶす。
【００５９】
なお、符号４２は走査線を示している。図４（ｅ）に示したように、上記マスタステンシルの場合、第１のエッジ（エッジ画素）４３と第２のエッジ（エッジ画素）４４との間の走査線４２上の各画素が長方形４に対応する印刷オブジェクト（第１の図形オブジェクト）に基づいて塗りつぶされ、第２のエッジ４４と第３のエッジ（エッジ画素）４５との間の走査線４２上の画素が三角形８に対応する印刷オブジェクト（第３の図形オブジェクト）に基づいて塗りつぶされ、第３のエッジ４５と第４のエッジ（エッジ画素）４６との間の走査線４２上の画素が円形６に対応する印刷オブジェクト（第２の図形オブジェクト）に基づいて塗りつぶされ、第４のエッジ４６と第５のエッジ（エッジ画素）４７との間の走査線４２上の画素が長方形４に対応する印刷オブジェクト（第１の図形オブジェクト）に基づいて塗りつぶされる。
【００６０】
図５は、マスタステンシルの他の例を示す説明図である。この図に示すマスタステンシルは、第１の長方形オブジェクト（第１の印刷オブジェクト）５０および第２の長方形オブジェクト（第２の印刷オブジェクト）５１から成る。第１の長方形オブジェクト５０は第１〜第１０走査線からなり、これら各走査線は第１〜第１０ピクセルからなる（１０ライン×１０ピクセル）。第２の長方形オブジェクト５１は、第６走査線５２から第８走査線５３までの３本の走査線上における第３ピクセル５４から第７ピクセル５５までの５ピクセル幅からなる（３ライン×５ピクセル）。
【００６１】
本発明の参考実施形態では、マスタステンシルは画素走査順序に対応するリストを含んでおり、当該リスト内の各エントリ（entry）は、各画素に対応する印刷オブジェクトを示している。図５に示した例の場合、第１走査線から第１０走査線への走査線順序に対応して以下のようなリストを含んでいる。なお、このリスト内において、「１」は第１の印刷オブジェクトを示し、「２」は第２の印刷オブジェクトを示している：
１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１１
１１１１１１１１１１１１２２２２２１１１１１２２２２２１１１１１２２２２２１１１１１１１１１１１１１１１１１１１１１１１。
【００６２】
すなわち、このリストは、第１ラインの第１ピクセル〜第６ラインの第２ピクセルまでの５２個のピクセルが第１の印刷オブジェクトに対応しており、次の５個のピクセル（第６ラインの第３〜第７ピクセル）が第２の印刷オブジェクトに対応しており、その次の５個のピクセル（第６ラインの第８ピクセル〜第７ラインの第２ピクセル）が第１の印刷オブジェクトに対応しており、その次の５個のピクセル（第７ラインの第３ピクセル〜第７ラインの第７ピクセル）が第２の印刷オブジェクトに対応しており、その次の５個のピクセル（第７ラインの第８ピクセル〜第８ラインの第２ピクセル）が第１の印刷オブジェクトに対応しており、その次の５個のピクセル（第８ラインの第３ピクセル〜第８ラインの第７ピクセル）が第２の印刷オブジェクトに対応しており、残りの２３個のピクセル（第８ラインの第８ピクセル〜第１０ラインの第１０ピクセル）が第１の印刷オブジェクトに対応していることを示している。
【００６３】
また、本発明の他の参考実施形態では、マスタステンシルが、各オブジェクトステンシルのステンシルエッジを示すデータと各オブジェクトステンシルに対応する印刷オブジェクトとを対応付けた印刷オブジェクトリストを示すバイナリデータ構造からなる構成としてもよい。
【００６４】
例えば、図５に示した例の場合、バイナリ構造からなるステンシルエッジを示すデータは、以下のようになる：
００００００００００
００００００００００
００００００００００
００００００００００
００００００００００
００１００００１００
００１００００１００
００１００００１００
００００００００００
００００００００００
また、印刷オブジェクトリストは以下のようになる：
１２１２１２１。
【００６５】
すなわち、ステンシルエッジを示す上記のデータでは、数値１に対応するピクセルがエッジ画素である。また、印刷オブジェクトリストは、ステンシルエッジを示す上記データにおいて数値１によって区画される各領域に対応する印刷オブジェクトを示しており、
第１ラインの第１ピクセル〜第６ラインの第２ピクセルまでが第１の印刷オブジェクトに対応しており、第６ラインの第３〜第７ピクセルが第２の印刷オブジェクトに対応しており、第６ラインの第８ピクセル〜第７ラインの第２ピクセルが第１の印刷オブジェクトに対応しており、第７ラインの第３ピクセル〜第７ラインの第７ピクセルが第２の印刷オブジェクトに対応しており、第７ラインの第８ピクセル〜第８ラインの第２ピクセルが第１の印刷オブジェクトに対応しており、第８ラインの第３ピクセル〜第８ラインの第７ピクセルが第２の印刷オブジェクトに対応しており、第８ラインの第８ピクセル〜第１０ラインの第１０ピクセルが第１の印刷オブジェクトに対応していることを示している。
このバイナリデータ構造からなるステンシルエッジのデータは、印刷オブジェクトリストに示されている次の印刷オブジェクトへ処理を進めるためのスイッチとして機能する。
【００６６】
これに対して、本実施形態では、マスタステンシル生成部１０５が、全画素について印刷オブジェクトを画素毎に示す情報ではなく、各印刷オブジェクトの輪郭を構成する画素であるエッジ画素を示すエッジ情報（マッピング情報）をマスタステンシルに含める。
【００６７】
例えば、エッジ情報が走査線のリストを含んでおり、このリスト内の各走査線エントリが当該各走査線に対応するエッジ画素を示す情報を含んでいる構成としてもよい。
【００６８】
また、エッジ情報として、印刷オブジェクトに対応する間隔リスト（interval listing）を含んでいてもよい。例えば、図５に示したマスタステンシルの場合、以下のようなリストを用いてもよい：
１  １０；１  １０；１  １０；１  １０；１  １０；１  ２,２  ５,１  ３；１  ２,２  ５,１  ３；１  ２,２  ５,１  ３；１  １０；１  １０。
このリストにおいて、セミコロンで区切られた区画は１つの走査線を示しており、当該区画内の左側の数字（第１の数字）は印刷オブジェクト（オブジェクト識別子）を示しており、右側の数字（第２の数字）は当該印刷オブジェクトの画素位置（エッジ画素識別子）を示している。例えば、第６走査線に対応する「１  ２,２  ５,１  ３」は当該走査線における第１画素〜第２画素が第１印刷オブジェクト、第３画素〜第７画素が第２印刷オブジェクト、第８画素〜第１０画素が第１印刷オブジェクトであることを示している。
【００６９】
なお、走査線全体が１つの印刷オブジェクトから成る場合、セミコロンで区切られた当該走査線に対応する区画内における右側の数字（第２の数字）、すなわち印刷オブジェクトの画素位置を示す数字を記載しないようにしてもよい。例えば、図５の示した例の場合、マッピング情報を以下のように表してもよい：
１；１；１；１；１；１２,２５,１３；１２,２５,１３；１２,２５１３；１；１。
【００７０】
また、マスタステンシルは、各印刷オブジェクトのエッジ画素を示すエッジリストと、それに対応する印刷オブジェクトリストとを含む構成であってもよい。図５に示した例の場合、例えば、第１〜第１０走査線および各走査線における第１〜第１０までのピクセルに対して、エッジリストを以下のように表し、：
（６，３）,（６，８）,（７，３）,（７，８）,（８，３）,（８，８）
それに対応する印刷オブジェクトリストを以下のように表すことができる：
１２１２１２１。
【００７１】
すなわち、印刷オブジェクトリストにおける最初の数値１は（１，１）から（６，２）までのピクセルに対応する印刷オブジェクトを示しており、次の数値２は（６，３）から（６，７）までに対応する印刷オブジェクトを示しており、次の数値１は（６，８）から（７，２）までに対応する印刷オブジェクトを示しており、以降の各ピクセルも同様の方法で表現されている。
【００７２】
本実施形態では、マスタステンシル生成部１０５が、エッジ検出部１０４の検出したエッジ情報に基づいて各印刷オブジェクトの重なり状態を判断し、判断結果に応じて各印刷オブジェクトの重なり状態に応じて区画される各領域の描画ルール情報を生成する。この描画ルール情報の生成方法について、図６を参照しながら説明する。図６は、各図形オブジェクトに対する塗りつぶし処理の方法を示す説明図である。
【００７３】
図６に示した例は、第１の長方形５６、第２の長方形５７、および第３の長方形５８に対応する３つの図形オブジェクト（印刷オブジェクト）を含んでいる。そして、第２の長方形５７の全域が第１の長方形５６の一部に重なっており、第３の長方形５８における領域５９が第１の長方形５６の一部に重なっており、第３の長方形５８における領域６０が第２の長方形５７の一部と第１の長方形５６の一部とに重なっている。
【００７４】
マスタステンシル生成部１０５は、第１の長方形５６における他の印刷オブジェクトと重なっていない領域については第１の長方形５６のオリジナルデータに応じて各画素を塗りつぶすための描画ルール情報を生成する。すなわち、単一の印刷オブジェクトのみに対応する領域（非重なり領域）については当該領域に対応する印刷オブジェクトの画像データに応じた画像を描画するための描画ルール情報を生成する。
【００７５】
一方、複数の印刷オブジェクトが重なり合っている領域については、重なり合う各印刷オブジェクトを所定の方法で合成するための描画ルール情報を生成する。
【００７６】
図６の場合、例えば、第１の長方形５６と第３の長方形５８とが重なり合っている領域５９内の画素についての塗りつぶし値を、第１の長方形５６内の画素に対する塗りつぶし値（他のオブジェクトと重なっていない場合の値）と、第３の長方形５８内の画素に対する塗りつぶし値（他のオブジェクトと重なっていない場合の値）とを合成した値に設定する。
【００７７】
また、第１の長方形５６、第２の長方形５７、および第３の長方形５８が重なり合っている領域６０内の画素についての塗りつぶし値を、第１の長方形５６内の画素に対する塗りつぶし値（他のオブジェクトと重なっていない場合の値）と、第２の長方形５７内の画素に対する塗りつぶし値（他のオブジェクトと重なっていない場合の値）と、第３の長方形５８内の画素に対する塗りつぶし値（他のオブジェクトと重なっていない場合の値）とを合成した値に設定する。
【００７８】
また、第２の長方形５７のうち第１の長方形５６のみと重なりあっている領域内の画素についての塗りつぶし値を、第１の長方形５６内の画素に対する塗りつぶし値（他のオブジェクトと重なっていない場合の値）と、第２の長方形５７内の画素対する塗りつぶし値（他のオブジェクトと重なっていない場合の値）とを合成した値に設定する。
【００７９】
なお、画素値の合成方法は特に限定されるものではなく、例えば、重なり合う各印刷オブジェクトにおける画素値の線形演算、論理演算（例えばラスタ演算（ＲＯＰ））、他の演算方法、あるいはそれらの組み合わせによって合成してもよい。また、例えば最上層の印刷オブジェクトのみを描画してそれより下層の印刷オブジェクトを描画しないようにしてもよく、各印刷オブジェクトの画素値に重ね合わせ順序に応じた重み付けを施して平均してもよく、各印刷オブジェクトまたは一部の印刷オブジェクトを半透明で描画するようにしてもよい。また、描画ルール情報が、重なり合う各印刷オブジェクトに対する、不透明性、スケーリング、あるいはブレンディング（混合）等の組み合わせ因子（combining factor）を含んでいてもよい。
【００８０】
以上のように、画像処理装置１００では、各印刷オブジェクトの輪郭を構成する画素であるエッジ画素を検出するエッジ検出部１０４と、上記エッジ画素を示すエッジ情報と、各印刷オブジェクトの重なり状態に応じて区画される各領域の描画ルールを示す描画ルール情報とを含むマスタステンシルを生成するマスタステンシル生成部１０５と、上記各印刷オブジェクトの画像データを上記マスタステンシルに示されたエッジ情報および描画ルールに基づいて合成する合成処理部１０６とを備えている。
【００８１】
これにより、マスタステンシルにエッジ画素を示すエッジ情報と各印刷オブジェクトの重なり状態に応じて区画される各領域の描画ルールを示す描画ルール情報とを含めればよいので、全画素についての印刷オブジェクトの識別値（ステンシルピクセル値）を記憶させる場合に比べて、各印刷オブジェクトを重ね合わせる処理に必要なメモリ容量を低減することができる。
【００８２】
なお、本実施形態において、図３に示したフローに代えて図７に示したフローに基づいて処理を行ってもよい。図７は、画像処理装置１００における処理の流れの変形例を示すフロー図である。
【００８３】
図７の例では、図３に示したＳ３０，Ｓ３２，およびＳ３４の処理を行った後、合成処理部１０６が、上記マスタステンシルおよび各印刷オブジェクトのデータに基づいてサーフィスを塗りつぶし、ピクセル処理部１０７が各画素に対して所定の画像処理を行い（Ｓ６９）、送信処理部１０８がこれらの処理を施された印刷データを印刷装置に送信する。上記の所定の画像処理としては、例えば網点生成、フィルタ処理、色補正、圧縮などが挙げられる。なお、サーフィスにおける各走査線上の画素を上の走査線から下の走査線へ順次塗りつぶしてもよく、下の走査線から上の走査線へ順次塗りつぶしてもよい。また、サーフィスを別の順序で塗りつぶしてもよい。
【００８４】
図７に示した処理では、サーフィス内の各画素は、マスタステンシルに基づいて各画素に対する処理を行うときに１回だけアクセスされる。なお、図７に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【００８５】
また、図３に示したフローに代えて、図８に示すフローに基づいて処理を行ってもよい。図８は、画像処理装置１００における処理の流れの変形例を示すフロー図である。なお、図８に示すフローに基づいて処理を行う場合、全画素に対応するメモリを含んだメモリバッファ（サーフィス）を備える必要はなく、一部のピクセルに対応するメモリを有するメモリバッファを備えていればよい。
【００８６】
図８の例では、図３に示したＳ３０，Ｓ３２，およびＳ３４の処理を行った後、合成処理部１０６が、未処理の画素が残っているか否かを判断する（Ｓ７４）。そして、未処理の画素が残っていないと判断した場合（符号７６）、処理を終了する（Ｓ７７）。
【００８７】
一方、未処理の画素が残っていると判断した場合（Ｓ７５）、マスタステンシルおよび各印刷オブジェクトのデータに基づいて未処理の画素をレンダリングする（Ｓ７８）。その後、送信処理部１０８がレンダリングされた印刷データを印刷装置に送信し（Ｓ８０）、Ｓ７４の処理、すなわち未処理の画素が残っているか否かを判断する処理に戻る。なお、図８に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【００８８】
また、図３に示したフローに代えて、図９に示すフローに基づいて処理を行ってもよい。図９は、画像処理装置１００における処理の流れの変形例を示すフロー図である。なお、図９に示すフローに基づいて処理を行う場合、全画素に対応するメモリを含んだメモリバッファ（サーフィス）を備える必要はなく、一部の画素に対応するメモリを有するメモリバッファを備えていればよい。
【００８９】
図９の例では、図３に示したＳ３０，Ｓ３２，およびＳ３４の処理を行った後、合成処理部１０６が、未処理の画素が残っているか否かを判断する（Ｓ８５）。そして、未処理の画素が残っていないと判断した場合（符号８６）、処理を終了する（Ｓ８７）。
【００９０】
一方、未処理の画素が残っていると判断した場合（符号８８）、合成処理部１０６は、マスタステンシルおよび各印刷オブジェクトのデータに基づいて未処理の画素を塗りつぶす（Ｓ８９）。その後、ピクセル処理部１０７が合成処理部１０６から出力される画像データに対して所定の画像処理を施し（符号９０）、送信処理部１０８がピクセル処理部１０７から出力される印刷データを印刷装置に送信し（Ｓ９２）、Ｓ８５の処理、すなわち未処理の画素が残っているか否かを判断する処理に戻る。上記の所定の画像処理としては、例えば、色補正、フィルタ処理、網点処理、圧縮などが挙げられる。なお、図９に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【００９１】
また、図３に示したフローに代えて、図１０に示すフローに基づいて処理を行ってもよい。図１０は、画像処理装置１００における処理の流れの変形例を示すフロー図である。
【００９２】
図１０の例では、図３に示したＳ３０，Ｓ３２，およびＳ３４の処理を行った後、マスタステンシル生成部１０５が、未処理の画素が残っているか否かを判断する（Ｓ１００）。そして、未処理の画素が残っていないと判断した場合（符号１０１）、処理を終了する（Ｓ１０２）。
【００９３】
一方、未処理の画素が残っていると判断した場合（符号１０３）、マスタステンシル生成部１０５がマスタステンシルに各エッジ画素のエントリを設定する（Ｓ１０４）。そして、合成処理部１０６がマスタステンシル内のエントリに基づいて各画素のレンダリングを行い（Ｓ１０６）。Ｓ１００の処理に戻る。これにより、レンダリングされた印刷データが生成される。生成された印刷データは、サーフィスとは異なるレジスタ、メモリ領域、あるいは他の記憶領域内に記憶される。なお、図１０に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【００９４】
また、図３に示したフローに代えて、図１１に示すフローに基づいて処理を行ってもよい。図１１は、画像処理装置１００における処理の流れの変形例を示すフロー図である。
【００９５】
図１１の例では、図３に示したＳ３０，Ｓ３２，およびＳ３４の処理を行った後、マスタステンシル生成部１０５が、未処理の画素が残っているか否かを判断する（Ｓ１１０）。そして、未処理の画素が残っていないと判断した場合（符号１１１）、処理を終了する（Ｓ１１２）。
【００９６】
一方、未処理の画素が残っていると判断した場合（符号１１３）、マスタステンシル生成部１０５がマスタステンシルに各エッジ画素のエントリを設定する（Ｓ１１４）。そして、合成処理部１０６がマスタステンシル内のエントリに基づいて各画素のレンダリングを行う（Ｓ１１６）。これにより、レンダリングされた印刷データが生成される。生成された印刷データは、サーフィスとは異なるレジスタ、メモリ領域、あるいは他の記憶領域内に記憶される。その後、送信処理部１０８が合成処理部１０６から出力される印刷データを印刷装置に送信し（Ｓ１１８）、Ｓ１１０の処理に戻る。なお、図１１に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【００９７】
また、図３に示したフローに代えて、図１２に示すフローに基づいて処理を行ってもよい。図１２は、画像処理装置１００における処理の流れの変形例を示すフロー図である。
【００９８】
図１２の例では、図３に示したＳ３０，Ｓ３２，およびＳ３４の処理を行った後、マスタステンシル生成部１０５が、未処理の画素が残っているか否かを判断する（Ｓ１２０）。そして、未処理の画素が残っていないと判断した場合（符号１２１）、処理を終了する（Ｓ１２２）。
【００９９】
一方、未処理の画素が残っていると判断した場合（符号１２３）、マスタステンシル生成部１０５がマスタステンシルに各エッジ画素のエントリを設定する（Ｓ１２４）。そして、合成処理部１０６がマスタステンシル内のエントリに基づいて各画素のレンダリングを行う（Ｓ１２６）。これにより、レンダリングされた印刷データが生成される。生成された印刷データは、サーフィスとは異なるレジスタ、メモリ領域、あるいは他の記憶領域内に記憶される。その後、ピクセル処理部１０７が合成処理部１０６から出力される画像データに対して所定の画像処理を施し（Ｓ１２８）、Ｓ１２０の処理に戻る。これにより、レンダリングされた印刷データが生成される。上記の画像処理としては、色補正、フィルタ処理、網点処理、圧縮等が含まれる。なお、図１２に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【０１００】
また、図３に示したフローに代えて、図１３に示すフローに基づいて処理を行ってもよい。図１３は、画像処理装置１００における処理の流れの変形例を示すフロー図である。
【０１０１】
図１３の例では、図３に示したＳ３０，Ｓ３２，およびＳ３４の処理を行った後、マスタステンシル生成部１０５が、未処理の画素が残っているか否かを判断する（Ｓ１３０）。そして、未処理の画素が残っていないと判断した場合（符号１３１）、処理を終了する（Ｓ１３２）。
【０１０２】
一方、未処理の画素が残っていると判断した場合（符号１３３）、マスタステンシル生成部１０５がマスタステンシルに各エッジ画素のエントリを設定する（Ｓ１３４）。そして、合成処理部１０６がマスタステンシル内のエントリに基づいて各画素を塗りつぶす（Ｓ１３６）。これにより、レンダリングされた印刷データが生成される。生成された印刷データは、サーフィスとは異なるレジスタ、メモリ領域、あるいは他の記憶領域内に記憶される。その後、ピクセル処理部１０７が合成処理部１０６から出力される画像データに対して所定の画像処理を施し（Ｓ１３８）、送信処理部１０８がピクセル処理部１０７から出力される印刷データを印刷装置に送信し（Ｓ１４０）、Ｓ１３０の処理に戻る。これにより、レンダリングされた印刷データが印刷装置に送信される。上記の画像処理としては、色補正、フィルタ処理、網点処理、圧縮等が含まれる。なお、図１３に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【０１０３】
また、図３に示したフローに代えて、図１４に示すフローに基づいて処理を行ってもよい。図１４は、画像処理装置１００における処理の流れの変形例を示すフロー図である。
【０１０４】
この図に示すように、まず、受信処理部１０１が複数の印刷オブジェクトを含む印刷データを受信する（Ｓ１５０）。次に、オブイジェクトステンシル生成部１０３が、各印刷オブジェクトに対してそれぞれ個別のオブジェクトステンシルを生成する（Ｓ１５１）。なお、一部の印刷オブジェクトに対してのみ個別のオブジェクトステンシルを生成するようにしてもよい。
【０１０５】
次に、マスタステンシル生成部１０５は、マスタステンシルを生成していない画像データの部分（本実施形態では走査線）が残っているか否かを判断する（Ｓ１５２）。そして、未生成の部分（走査線）が残っていないと判断した場合、すなわちマスタステンシルの全ての部分（走査線）を生成したと判断した場合（符号１５３）、当該マスタステンシルに基づくレンダリング処理（合成処理、ピクセル処理、および送信処理）を行い、処理を終了する（Ｓ１５４）。
【０１０６】
一方、未生成の部分（走査線）が残っていると判断した場合（符号１５５）、マスタステンシル生成部１０５は、現在処理対象としている部分（走査線）について全てのオブジェクトステンシルに対する処理（当該オブジェクトステンシルをマスタステンシルへ反映させる処理）が完了したか否かを判断する（Ｓ１５６）。そして、当該部分（走査線）について全てのオブジェクトステンシルに対する処理が完了したと判断した場合（Ｓ１５７）、Ｓ１５２の処理に戻る。
【０１０７】
一方、当該部分（走査線）において未処理のオブジェクトステンシルが残っていると判断した場合（Ｓ１５８）、残っているオブジェクトステンシルに対する処理を行い（Ｓ１６０）、Ｓ１５６の処理に戻る。このように、図１４の例では、マスタステンシルの生成処理を画像データの部分（走査線）毎に行い、各部分に対するマスタステンシルの生成処理時には各オブジェクトステンシルに対する処理をオブジェクトステンシル毎に順次行う。各オブジェクトステンシルに対する処理を順次行う際、既に生成されている画素の画素値を上書きしていくようにしてもよい。また、オブジェクトステンシルの処理順序は、例えば、ｚ順序（各印刷オブジェクトの重なり方向に沿って奥行き側から手前側に向かう順序）で処理してもよく、逆ｚ順序（各印刷オブジェクトの重なり方向に沿って手前側から奥行き側に向かう順序）で処理してもよい。なお、図１４に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【０１０８】
また、図３に示したフローに代えて、図１５に示すフローに基づいて処理を行ってもよい。図１５は、本実施形態にかかる画像処理装置における処理の流れの変形例を示すフロー図である。
【０１０９】
この図に示すように、まず、受信処理部１０１が複数の印刷オブジェクトを含む印刷データを受信する（Ｓ１７０）。次に、オブジェクトステンシル生成部１０３が、各印刷オブジェクトに対してそれぞれ個別のオブジェクトステンシルを生成する（Ｓ１７１）。なお、一部の印刷オブジェクトに対してのみ個別のオブジェクトステンシルを生成するようにしてもよい。
【０１１０】
次に、マスタステンシル生成部１０５は、マスタステンシルを生成していない画像データの部分（本実施形態では走査線）が残っているか否かを判断する（Ｓ１７２）。そして、未生成の部分（走査線）が残っていないと判断した場合、すなわちマスタステンシルの全ての部分（走査線）を生成したと判断した場合（符号１７３）、当該マスタステンシルに基づくレンダリング処理（合成処理、ピクセル処理、および送信処理）を行い、処理を終了する（Ｓ１７４）。
【０１１１】
一方、未生成の部分（走査線）が残っていると判断した場合（符号１７５）、マスタステンシル生成部１０５は、現在処理対象としている部分（走査線）について全てのオブジェクトステンシルに対する処理（当該オブジェクトステンシルをマスタステンシルへ反映させる処理）が完了したか否かを判断する（Ｓ１７６）。そして、当該部分（走査線）について全てのオブジェクトステンシルに対する処理が完了したと判断した場合（Ｓ１７７）、当該部分（走査線）のマスタステンシルに基づいて当該部分（走査線）の印刷データを生成（レンダリング）し（Ｓ１８２）、Ｓ１７２の処理に戻る。
【０１１２】
一方、当該部分（走査線）において未処理のオブジェクトステンシルが残っていると判断した場合（Ｓ１７８）、残っているオブジェクトステンシルに対する処理（各オブジェクトステンシルをマスタステンシルに反映させる処理）を行い（Ｓ１８０）、Ｓ１７６の処理に戻る。このように、図１５の例では、マスタステンシルの生成処理を画像データの部分（走査線）毎に行い、各部分に対するマスタステンシルの生成処理時には各オブジェクトステンシルに対する処理をオブジェクトステンシル毎に順次行う。各オブジェクトステンシルに対する処理を順次行う際、既に生成されている画素の画素値を上書きしていくようにしてもよい。また、オブジェクトステンシルの処理順序は、例えば、ｚ順序で処理してもよく、逆ｚ順序で処理してもよい。なお、図１４に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【０１１３】
また、マスタステンシル生成部１０５による描画ルール情報の生成方法は、上述した図６の方法に限るものではない。描画ルール情報の生成方法の変形例について、図１６を参照しながら説明する。
【０１１４】
図１６は、第１の長方形２００、第２の長方形２０２、および第３の長方形２０４に対応する３つの図形オブジェクト（印刷オブジェクト）を含む印刷データの一例を示している。
【０１１５】
第３の長方形２０４に対する塗りつぶし値は、その下層に位置する第１の長方形２００、および第２の長方形２０２に依存している。
【０１１６】
具体的には、第３の長方形２０４における第１の長方形２００のみと重なり合っている部分２０６内の画素についての塗りつぶし値は、第１の長方形２００内の画素（他のオブジェクトと重ならない画素）に対応する塗りつぶし値と、第３の長方形２０４に対応する塗りつぶし値（他のオブジェクトと重ならない画素）とに基づいている。
【０１１７】
また、第３の長方形２０４における第１の長方形２００および第２の長方形２０２の両方と重なり合っている部分２０８内の画素についての塗りつぶし値は、第１の長方形２００内の画素（他のオブジェクトと重ならない画素）に対応する塗りつぶし値と、第２の長方形２０２内の画素（他のオブジェクトと重ならない画素）に対応する塗りつぶし値と、第３の長方形２０４に対応する塗りつぶし値（他のオブジェクトと重ならない画素）とに基づいている。
【０１１８】
なお、図形オブジェクト内の各画素に対する塗りつぶし値を、当該画素において重なり合う各図形オブジェクト内における当該画素についての塗りつぶし値の線形演算、論理演算（例えばラスタ演算（ＲＯＰ））、あるいは他の演算方法による組み合わせとしてもよい。この場合、マスタステンシルは、２つ以上の図形オブジェクトに対応するマッピング情報を含んでいてもよい。また、マッピング情報が、重なり合う各図形オブジェクトに対する、不透明性、スケーリング、あるいはブレンディング（混合）等の組み合わせ因子（combining factor）を含んでいてもよい。
【０１１９】
本実施形態では、マスタステンシル生成部１０５が、各印刷オブジェクトの輪郭を構成する画素を示すエッジ情報と、上記輪郭によって区画される各領域に対する描画ルール情報とを含むマスタステンシルを生成し、合成処理部１０６がマスタステンシルに基づいて各画素のレンダリング処理を行う。この点について、図１６を参照しながら説明する。
【０１２０】
例えば、第１の走査線２１０上の画素に着目すると、マスタステンシル生成部１０５は、第１のエッジ２１２から第２のエッジ２１４までの各画素を第１のオブジェクト２００に基づいてレンダリングするように描画ルール情報を生成する。これらの画素は、第１の長方形２００に対応する図形オブジェクトに基づいて直接レンダリングされる。例えば、色補正されたＣＭＹＫ色空間内に直接レンダリングしてもよい。
【０１２１】
また、マスタステンシル生成部１０５は、第２のエッジ２１４から第３のエッジ２１６までの画素を、第１の長方形２００と第３の長方形２０４との合成（ブレンド）結果に基づいてレンダリングするように描画ルール情報を生成する。例えば、ＲＧＢ色空間における第１の長方形２００の画素値とＲＧＢ色空間における第３の長方形２０４の画素値とを所定の合成方法（ブレンド方法）に基づいて合成する。なお、合成結果を色補正されたＣＭＹＫ色空間内にレンダリングするようにしてもよい。上記の所定の合成方法としては、例えば、線形演算、論理演算（例えばラスタ演算（ＲＯＰ））、他の演算方法、あるいはそれらの組み合わせを用いることができる。
【０１２２】
また、マスタステンシル生成部１０５は、第３のエッジ２１６から第４のエッジ２１８までの画素を、第１の図形オブジェクト２００に基づいてレンダリングするように描画ルール情報を生成する。これらの画素を、色補正されたＣＭＹＫ色空間内に直接レンダリングするようにしてもよい。
【０１２３】
上記の処理では、ＲＧＢ色空間にレンダリングされる必要がある画素は複数の図形オブジェクトの画素値が合成される画素のみである。このため、２つ以上の図形オブジェクトの組み合わせではない画素については、色補正されたＣＭＹＫ色空間内に直接レンダリングすることができる。これにより、全ての画素をＲＧＢ色空間にレンダリングし、さらにＲＧＢ色空間からＣＭＹＫ色空間にレンダリングする場合に比べて、レンダリング処理にかかる負荷を低減できる。
【０１２４】
また、第２の走査線２２０について考慮すると、マスタステンシル生成部１０５は、第１のエッジ２２２から第２のエッジ２２４までの各画素を第１の図形オブジェクト２００に基づいてレンダリングするように描画ルール情報を生成する。これらの画素は、第１の長方形２００に対応する図形オブジェクトに基づいて直接レンダリングされる。例えば、色補正されたＣＭＹＫ色空間内に直接レンダリングしてもよい。
【０１２５】
また、マスタステンシル生成部１０５は、第２のエッジ２２４から第３のエッジ２２６までの画素を、第２の図形オブジェクト２０２に基づいてマッピングし、これらの画素を色補正されたＣＭＹＫ色空間内に直接レンダリングするように描画ルール情報を生成する（この例では、第２の図形オブジェクト２０２と第１の図形オブジェクト２００とが重なる領域では、第２の図形オブジェクト２０２のみが描画され、第１の図形オブジェクト２００は描画されないように設定されている）。
【０１２６】
また、マスタステンシル生成部１０５は、第３のエッジ２２６から第４のエッジ２２８までの画素を、第２の図形オブジェクト２０２と第３の図形オブジェクト２０４との組み合わせに基づいてマッピングするように描画ルール情報を生成する。本実施形態では、第２の図形オブジェクト２０２と第３の図形オブジェクト２０４との組み合わせはＲＧＢ色空間内において生じるため、各画素を各図形オブジェクトに応じてＲＧＢ色空間内にそれぞれレンダリングし、レンダリングした値を色補正する。
【０１２７】
また、第４のエッジ２２８から第５のエッジ２３０までの画素については、第２のエッジ２２４から第３のエッジ２２６までの画素と同様、第２の図形オブジェクト２０２に基づいてマッピングし、色補正されたＣＭＹＫ色空間内に直接レンダリングする。
【０１２８】
また、第５のエッジ２３０から第６のエッジ２３２までの画素については、第１のエッジ２２２から第２のエッジ２２４までの各画素と同様、第１の図形オブジェクト２００に基づいてマッピングし、色補正されたＣＭＹＫ色空間内に直接レンダリングする。
【０１２９】
本実施形態において、マスタステンシルは、印刷オブジェクトおよびステンシルの描画ルール情報（マッピング情報）を各走査線（または各部分）毎に示すものであってもよい。また、描画ルール情報の表現方法は特に限定されるものではない。また、描画ルール情報は、画素値を直接レンダリングするためのものであってもよく、印刷オブジェクトの組み合わせ方法を示すものであってもよい。
【０１３０】
図１７は、画像処理装置１００における処理の流れの変形例を示すフロー図であり、各画素を色補正後の色空間に直接レンダリングする場合の処理の流れを示している。この図に示す例では、全画素に対応するメモリ領域を有するメモリバッファ（サーフィス）を備える必要がない。
【０１３１】
図１７に示すように、まず、受信処理部１０１が複数の印刷オブジェクトを含む印刷データを受信する（Ｓ２４０）。次に、オブジェクトステンシル生成部１０３が、各印刷オブジェクトに対してそれぞれ個別のオブジェクトステンシルを生成する（Ｓ２４２）。なお、一部の印刷オブジェクトに対してのみ個別のオブジェクトステンシルを生成するようにしてもよい。次に、マスタステンシル生成部１０５が、個々のオブジェクトステンシルに基づいてマスタステンシルを生成する（Ｓ２４４）。
【０１３２】
次に、合成処理部１０６は、未処理の画素残っているか否かを判断し（Ｓ２４６）、未処理の画素が残っていない場合（符号２４７）、処理を終了する（Ｓ２４８）。
【０１３３】
一方、未処理の画素が残っている場合（Ｓ２４９）、合成処理部１０６、処理対象の画素が半透明な画素であるか否か（あるいは複数の印刷ステンシルが重なり合う画素であるか否か）を判断する（符号２５０）。この判断は、例えば、マスタステンシルに含まれる各エッジ画素のエントリに基づいて判断すればよい。
【０１３４】
上記画素が半透明なピクセルではない場合（符号２５１）、合成処理部１０６は、マスタステンシルに示されている当該画素に対応する印刷オブジェクトに基づいて当該画素を色補正されたＣＭＹＫ色空間内に直接レンダリングし（Ｓ２５２）、Ｓ２４６の処理に戻る。
【０１３５】
一方、上記画素が半透明なピクセルである場合、合成処理部１０６は、当該画素において重なり合う各印刷オブジェクトにおけるＲＧＢ色空間の画素値をそれぞれレンダリングし（Ｓ２５４）、レンダリングされたＲＧＢ色空間の各画素値を所定の合成方法で合成し（Ｓ２５６）、合成したＲＧＢ色空間の画素値を色補正されたＣＭＹＫ色空間に変換し（Ｓ２５８）、Ｓ２４６の処理に戻る。なお、図１７に示した処理の一部または全部をプリンタドライバにおいて実施してもよく、プリンタファームウェアにおいて実施してもよい。
【０１３６】
なお、本実施形態では、画像処理装置１００が入力された複数の図形オブジェクトのデータを印刷装置で印刷可能なデータ（印刷データ）にレンダリングする場合について説明したが、これに限るものではなく、例えば、各種の表示装置に表示可能なデータ（表示データ）にレンダリングしてもよい。この場合、送信処理部１０８はレンダリングされたデータを表示装置に送信する。
【０１３７】
また、画像処理装置１００は、印刷装置あるいは表示装置にネットワーク等を介して通信可能に接続されるものであってもよく、印刷装置あるいは表示装置に備えられるものであってもよい。
【０１３８】
また、上記各実施形態において、画像処理装置１００に備えられる各部（各ブロック）を、ＣＰＵ等のプロセッサを用いてソフトウェアによって実現してもよい。この場合、画像処理装置１００は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである画像処理装置１００の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、画像処理装置１００に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによって達成される。
【０１３９】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０１４０】
また、画像処理装置１００を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記プログラムコードを供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０１４１】
また、画像処理装置１００の各ブロックは、ソフトウェアを用いて実現されるものに限らず、ハードウェアロジックによって構成されるものであってもよく、処理の一部を行うハードウェアと当該ハードウェアの制御や残余の処理を行うソフトウェアを実行する演算手段とを組み合わせたものであってもよい。
【０１４２】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０１４３】
本発明は、複数の描画オブジェクトを重ね合わせた画像データを生成する画像処理装置および画像処理方法に適用できる。
【符号の説明】
【０１４４】
１００  画像処理装置
１０１  受信処理部
１０２  順序設定部
１０３  オブジェクトステンシル生成部
１０４  エッジ検出部
１０５  マスタステンシル生成部
１０６  合成処理部
１０７  ピクセル処理部
１０８  送信処理部
【図１】
0004842340.tif 000002
【図２】
0004842340.tif 000003
【図３】
0004842340.tif 000004
【図４】
0004842340.tif 000005
【図５】
0004842340.tif 000006
【図６】
0004842340.tif 000007
【図７】
0004842340.tif 000008
【図８】
0004842340.tif 000009
【図９】
0004842340.tif 000010
【図１０】
0004842340.tif 000011
【図１１】
0004842340.tif 000012
【図１２】
0004842340.tif 000013
【図１３】
0004842340.tif 000014
【図１４】
0004842340.tif 000015
【図１５】
0004842340.tif 000016
【図１６】
0004842340.tif 000017
【図１７】
0004842340.tif 000018
【図１８】
0004842340.tif 000019