(57)【特許請求の範囲】
【請求項１】
描画情報とクリップ情報を含む描画データに従って画素情報を生成するための描画情報処理装置であって、
（ａ）各クリップ領域の論理式で構成されるクリップ情報を論理和標準形の論理式に変換する手段と、
（ｂ）論理和標準形を基に、ＯＲ枝を束ねるとともにクリップ情報の識別子を持つ節点からなる第１層と、ＡＮＤ枝を束ねた節点からなる第２層と、個々のクリップ領域に該当する節点からなる第３層とで構成される、クリップ情報に関するＡＮＤ-ＯＲグラフを生成する手段と、
（ｃ）生成したＡＮＤ-ＯＲグラフの第３層の各節点に該当するクリップ形状の外接矩形の主走査線方向及び副走査線方向の区間値を求め、第２層の節点において各ＡＮＤ枝が持つ区間値が重畳する区間を求め、第１層において副走査線の区間知の始点の値に従ってＯＲ枝を整列する手段と、
（ｄ）整列されたＡＮＤ-ＯＲグラフの形態でクリップ情報を保持する手段と、
を具備することを特徴とする描画情報処理装置。
【請求項２】
（ｅ）描画情報を基にして画素情報を主走査線毎に逐次生成する描画手段と、
（ｆ）前記手段（ｄ）により保持されるＡＮＤ−ＯＲグラフを、処理中の走査線の副走査線方向に位置を用いて探索し、第１層の節点から伸びるＯＲ枝の区間値を参照することでクリップ処理が必要となるクリップ情報を特定して、前記手段（ｅ）により生成された画素情報をクリップ処理するクリップ処理手段と、
をさらに備えることを特徴とする請求項１に記載の描画情報処理装置。
【請求項３】
前記描画手段（ｅ）は、バンド単位若しくは走査線単位で描画処理を並列化している、
ことを特徴とする請求項２に記載の描画情報処理装置。
【請求項４】
前記クリップ処理手段（ｆ）は、ＡＮＤ-ＯＲグラフのＡＮＤ枝単位でクリップ処理を並列化する、
ことを特徴とする請求項２に記載の描画情報処理装置。
【請求項５】
描画情報とクリップ情報を含む描画データに従って画素情報を生成するための描画情報処理方法であって、
（ａ）各クリップ領域の論理式で構成されるクリップ情報を論理和標準形の論理式に変換するステップと、
（ｂ）論理和標準形を基に、ＯＲ枝を束ねるとともにクリップ情報の識別子を持つ節点からなる第１層と、ＡＮＤ枝を束ねた節点からなる第２層と、個々のクリップ領域に該当する節点からなる第３層とで構成される、クリップ情報に関するＡＮＤ-ＯＲグラフを生成するステップと、
（ｃ）生成したＡＮＤ-ＯＲグラフの第３層の各節点に該当するクリップ形状の外接矩形の主走査線方向及び副走査線方向の区間値を求め、第２層の節点において各ＡＮＤ枝が持つ区間値が重畳する区間を求め、第１層において副走査線の区間知の始点の値に従ってＯＲ枝を整列するステップと、
（ｄ）整列されたＡＮＤ-ＯＲグラフの形態でクリップ情報を保持するステップと、
を具備することを特徴とする描画情報処理方法。
【請求項６】
（ｅ）描画情報を基にして画素情報を主走査線毎に逐次生成する描画ステップと、
（ｆ）前記ステップ（ｄ）において保持されるＡＮＤ−ＯＲグラフを、処理中の走査線の副走査線方向に位置を用いて探索し、第１層の節点から伸びるＯＲ枝の区間値を参照することでクリップ処理が必要となるクリップ情報を特定して、前記ステップ（ｅ）において生成された画素情報をクリップ処理するクリップ処理ステップと、
をさらに備えることを特徴とする請求項５に記載の描画情報処理方法。
【請求項７】
前記描画ステップ（ｅ）では、バンド単位若しくは走査線単位で描画処理を並列化している、
ことを特徴とする請求項６に記載の描画情報処理方法。
【請求項８】
前記クリップ処理ステップ（ｆ）では、ＡＮＤ-ＯＲグラフのＡＮＤ枝単位でクリップ処理を並列化する、
ことを特徴とする請求項６に記載の描画情報処理方法。
【請求項９】
描画情報とクリップ情報を含む描画データに従って画素情報を生成するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを格納する記憶媒体であって、前記コンピュータ・プログラムは前記コンピュータ・システムに対し、
（ａ）各クリップ領域の論理式で構成されるクリップ情報を論理和標準形の論理式に変換する手順と、
（ｂ）論理和標準形を基に、ＯＲ枝を束ねるとともにクリップ情報の識別子を持つ節点からなる第１層と、ＡＮＤ枝を束ねた節点からなる第２層と、個々のクリップ領域に該当する節点からなる第３層とで構成される、クリップ情報に関するＡＮＤ-ＯＲグラフを生成する手順と、
（ｃ）生成したＡＮＤ-ＯＲグラフの第３層の各節点に該当するクリップ形状の外接矩形の主走査線方向及び副走査線方向の区間値を求め、第２層の節点において各ＡＮＤ枝が持つ区間値が重畳する区間を求め、第１層において副走査線の区間知の始点の値に従ってＯＲ枝を整列する手順と、
（ｄ）整列されたＡＮＤ-ＯＲグラフの形態でクリップ情報を保持する手順と、
（ｅ）描画情報を基にして画素情報を主走査線毎に逐次生成する描画手順と、
（ｆ）前記手順（ｄ）により保持されるＡＮＤ−ＯＲグラフを、処理中の走査線の副走査線方向に位置を用いて探索し、第１層の節点から伸びるＯＲ枝の区間値を参照することでクリップ処理が必要となるクリップ情報を特定して、前記手順（ｅ）により生成された画素情報をクリップ処理するクリップ処理手順と、
を実行させることを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・システム上でコンピュータ・グラフィックス（ＣＧ）やデスクトップ・パブリッシング（ＤＴＰ）などの描画情報処理を行うための描画情報処理装置及び描画情報処理方法に係り、特に、描画情報に基づいて生成された画素情報を複数のクリップ領域を用いてクリップ処理するための描画情報処理装置及び描画情報処理方法に関する。
【０００２】
更に詳しくは、本発明は、複数のクリップ領域の積領域や和領域を表す論理式で構成されるクリップ情報を用いてクリップ処理するための描画情報処理装置及び描画情報処理方法に関する。
【０００３】
【従来の技術】
昨今の技術革新に伴い、スーパー・コンピュータ、ワークステーション、汎用パーソナル・コンピュータなど各種コンピュータ・システムが開発され、広範に普及してきている。特に、最近ではコンピュータの演算速度の向上や表示能力の強化、グラフィックス処理の高機能化に伴なって、コンピュータ・システム上で描画情報を作成・編集・出力する「コンピュータ・グラフィックス（ＣＧ）」や「デスクトップ・パブリッシング（ＤＴＰ）」が脚光を浴びるようになってきた。
【０００４】
コンピュータ・システム上で描画情報をディスプレイに表示したりプリンタに印刷するときには、実際に描画すべき領域を定めてその内部だけを描画処理するようになっている。このために、描画領域からはみ出た部分を切り落とす「クリップ」処理が施される。クリップ領域を指定するときには、領域の形状を複数与えて、それらの領域全てに含まれる積領域を最終的なクリップ領域とする方法を採用することが多い。これは、クリップが印刷領域を定める抜き型のような性質を持ち、この抜き型を重ねることで実際にインクを塗布すべき領域を決定するものとしてクリップ処理をモデル化していることに依拠する。
【０００５】
一方、コンピュータ・グラフィックスを構成する描画情報は、通常、複数の描画要素（オブジェクト）で構成されるが、各描画要素情報はクリップ処理とは無関係に定義されている。すなわち、各描画要素は無限の世界座標空間上に存在しているので、ディスプレイ上に表示したりプリンタで印刷するためには、元の描画要素の一部を切り落とすなどの処理をして最終的な描画形状を求める必要がある。このため、クリップ処理は単なるクリップ領域の算出だけでは済まず、非常に複雑且つ膨大な演算を伴なうものとなる。
【０００６】
従来、クリップ処理は、ラスタライズ処理などにより描画要素を画素データに展開して、これとは別にクリップ形状を画素データに展開しておき、これら画素データ間でマスク演算を行うことで実現されていた。しかしながら、この方法は、画素データを保持するための大量のメモリとマスク演算のためのコンピュータ資源とを必要としていた。
【０００７】
例えば、本出願人に譲渡されている特開平６−２７４６４３号公報には、描画情報のクリップ処理におけるコンピュータ資源の問題を改善した描画装置について開示している。この描画装置は、画素を演算対象とはせずに、画素の並びを符号化したエッジリストを用いることで、任意形状のクリップ処理を高速に演算処理することを可能としている。しかしながら、この描画装置が採用する方式によれば、クリップ領域の重ね合わせを行うときにはエッジリストを整列する必要がある。一般に、整列処理は演算負荷が高く、したがって高速処理には適さない。
【０００８】
また、特開平７−２９６１７２号公報には、多角形の辺を表すベクトル・データを演算対象とし、これを複数のクリッピング手段を用いて並列処理するタイプの多角形図形のクリッピング描画方式が開示されている。しかしながら、この描画方式では、複数のクリッピング手段の各々に対して同一のクリッピング・データを転送しておく必要があるため、メモリ資源を浪費するとともにデータ転送時間を要してしまう。このため、この描画方式は、マウス・カーソルの移動に従って処理対象が逐次変更していくようなマルチウィンドウ形式の表示システムや、ページ上の様々な位置に配置された各描画要素を次々に処理していくページ記述言語（ＰＤＬ）処理系などの、そもそも大容量メモリを要したりデータ転送量が膨大なシステムには不向きである。
【０００９】
ＣＧやＤＴＰなどの世界では、何かを連想させるような形状を複数用いて背景を切り抜くような技法、すなわち和領域を以ってクリップ処理する技法に所定のデザイン効果があることが知られており、且つ、積極的に用いられている。例えば、描画要素を複数の文字で切り抜くようなデザイン手法においては、クリップ情報は文字の形を複数のクリップ領域の和という形式で表される。
【００１０】
しかしながら、上述したいずれのクリップ処理方法も、与えられた各クリップ領域の積領域としてしかクリップ情報を指定することができない。また、描画情報を表示又は印刷する出力処理系のデバイスのほとんどは、デザイン効果を上げるための和領域によるクリップ機能を備えていない。
【００１１】
いままでは、和領域によりクリップ処理などの特殊効果を実現するためには、個々のアプリケーション・ソフトウェアが独自の方式で内部的に処理するしかないのが実情であった。このため、アプリケーションの肥大化という事態をも招来していた。
【００１２】
例えば、米アップル社が市販する”ＱｕｉｃｋＤｒａｗＧＸ”は、複数の領域間の和領域を計算するためのインターフェースを備えることで、領域の和を指定することをも可能としている。しかしながら、このインターフェースは、クリッピング処理に特化してデザインされている訳ではなく、和領域の形状を実際に計算処理するなどクリッピングには不要な処理を伴なっており、無駄が多い。また、ベクトルやパラメータ曲線で構成される形状データに対して効率的な処理系を実現することは容易ではない。また、色や模様を持つ描画要素の形状だけを独立して取り出して演算対象としているが、和領域に対するクリップ処理に比べてあまり意味がない。
【００１３】
【発明が解決しようとする課題】
本発明の目的は、コンピュータ・システム上でコンピュータ・グラフィックス（ＣＧ）やデスクトップ・パブリッシング（ＤＴＰ）などの描画情報処理を行うための、優れた描画情報処理装置及び描画情報処理方法を提供することにある。
【００１４】
本発明の更なる目的は、描画情報に基づいて生成された画素情報を複数のクリップ領域を用いてクリップ処理することができる、優れた描画情報処理装置及び描画情報処理方法を提供することにある。
【００１５】
本発明の更なる目的は、複数のクリップ領域の論理積だけでなく論理和で構成されるクリップ情報を用いて効率的で且つデザイン効果のあるクリップ処理することができる、優れた描画情報処理装置及び描画情報処理方法を提供することにある。
【００１６】
本発明の更なる目的は、実際にクリップ情報の和領域の形状を計算することなく効率的にクリップ処理を行うことができる、優れた描画情報処理装置及び描画情報処理方法を提供することにある。
【００１７】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、描画情報とクリップ情報を含む描画データに従って画素情報を生成するための描画情報処理装置であって、
各クリップ領域の論理式で構成されるクリップ情報を論理和標準形の論理式に変換する手段と、
論理和標準形に変換されたクリップ情報を保持する手段と、
を含むことを特徴とする描画情報処理装置である。
【００１８】
また、本発明の第２の側面は、描画情報とクリップ情報を含む描画データに従って画素情報を生成するための描画情報処理装置であって、
各クリップ領域の論理式で構成されるクリップ情報を論理和標準形の論理式に変換する手段と、
論理和標準形に変換されたクリップ情報を保持する手段と、
描画情報を基にして画素情報を生成する際に、論理和標準形のクリップ情報を適用してクリップ処理する手段と、
を具備することを特徴とする描画情報処理装置である。
【００１９】
また、本発明の第３の側面は、描画情報とクリップ情報を含む描画データに従って画素情報を生成するための描画情報処理装置であって、
各クリップ領域の論理式で構成されるクリップ情報を論理和標準形の論理式に変換する手段と、
論理和標準形を基に、ＯＲ枝を束ねるとともにクリップ情報の識別子を持つ節点からなる第１層と、ＡＮＤ枝を束ねた節点からなる第２層と、個々のクリップ領域に該当する節点からなる第３層とで構成される、クリップ情報に関するＡＮＤ−ＯＲグラフを生成する手段と、
生成したＡＮＤ−ＯＲグラフの第２の節点を走査線方向に従って整列する手段と、
整列されたＡＮＤ−ＯＲグラフの形態でクリップ情報を保持する手段と、
を含むことを特徴とする描画情報処理装置である。
【００２０】
また、本発明の第４の側面は、描画情報とクリップ情報を含む描画データに従って画素情報を生成するための描画情報処理装置であって、
（ａ）各クリップ領域の論理式で構成されるクリップ情報を論理和標準形の論理式に変換する手段と、
（ｂ）論理和標準形を基に、ＯＲ枝を束ねるとともにクリップ情報の識別子を持つ節点からなる第１層と、ＡＮＤ枝を束ねた節点からなる第２層と、個々のクリップ領域に該当する節点からなる第３層とで構成される、クリップ情報に関するＡＮＤ−ＯＲグラフを生成する手段と、
（ｃ）生成したＡＮＤ−ＯＲグラフの第２の節点を走査線方向に従って整列する手段と、
（ｄ）整列されたＡＮＤ−ＯＲグラフの形態でクリップ情報を保持する手段と、
（ｅ）描画情報を基にして画素情報を走査線毎に逐次生成する描画手段と、
（ｆ）ＡＮＤ−ＯＲグラフを探索して、描画処理中の走査線に対応するクリップ領域を抽出してクリップ処理するクリップ処理手段と、
を具備することを特徴とする描画情報処理装置である。
【００２１】
本発明の第４の側面に係る描画情報処理装置において、前記描画手段（ｅ）は、バンド単位若しくは走査線単位で描画処理を並列化してもよい。
【００２２】
また、前記クリップ処理手段（ｆ）は、ＡＮＤ−ＯＲグラフのＡＮＤ枝単位でクリップ処理を並列化してもよい。
【００２３】
また、本発明の第５の側面は、描画情報とクリップ情報を含む描画データに従って画素情報を生成するための描画情報処理方法であって、
各クリップ領域の論理式で構成されるクリップ情報を論理和標準形の論理式に変換するステップと、
論理和標準形に変換されたクリップ情報を保持するステップと、
描画情報を基にして画素情報を生成する際に、論理和標準形のクリップ情報を適用してクリップ処理するステップと、
を具備することを特徴とする描画情報処理方法である。
【００２４】
また、本発明の第６の側面は、描画情報とクリップ情報を含む描画データに従って画素情報を生成するための描画情報処理方法であって、
（ａ）各クリップ領域の論理式で構成されるクリップ情報を論理和標準形の論理式に変換するステップと、
（ｂ）論理和標準形を基に、ＯＲ枝を束ねるとともにクリップ情報の識別子を持つ節点からなる第１層と、ＡＮＤ枝を束ねた節点からなる第２層と、個々のクリップ領域に該当する節点からなる第３層とで構成される、クリップ情報に関するＡＮＤ−ＯＲグラフを生成するステップと、
（ｃ）生成したＡＮＤ−ＯＲグラフの第２の節点を走査線方向に従って整列するステップと、
（ｄ）整列されたＡＮＤ−ＯＲグラフの形態でクリップ情報を保持するステップと、
（ｅ）描画情報を基にして画素情報を走査線毎に逐次生成する描画ステップと、（ｆ）ＡＮＤ−ＯＲグラフを探索して、描画処理中の走査線に対応するクリップ領域を抽出してクリップ処理するクリップ処理ステップと、
を具備することを特徴とする描画情報処理方法である。
【００２５】
本発明の第６の側面に係る前記描画ステップ（ｅ）は、バンド単位若しくは走査線単位で描画処理を並列化してもよい。
【００２６】
また、前記クリップ処理ステップ（ｆ）は、ＡＮＤ−ＯＲグラフのＡＮＤ枝単位でクリップ処理を並列化してもよい。
【００２７】
また、本発明の第７の側面は、描画データをクリップするための、複数のクリップ領域の論理式で構成されるクリップ情報であって、
単一のクリップ領域又は複数のクリップ領域の論理積からなる各項と、
各項を結ぶ論理和と、
で構成される論理和標準形であることを特徴とするクリップ情報
である。
【００２８】
しかして、本発明によれば、領域和の形式でクリップ情報を指定することが許容される。そして、領域和を含むクリップ情報の指定を論理和標準形に変形することで、領域積のみを許す従来のクリップ処理と同等の性能を有するクリップ処理を実現することができる。また、クリップ情報をグラフ情報として表現するとともにグラフ構造に区間値の情報を付加することで、並列に描画処理を実行するシステムにおいても効率的な動作を実現することができる。
【００２９】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００３０】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施例を詳解する。
【００３１】
図１には、本発明を実現する描画情報処理装置１００の原理を模式的に示したブロック図を示している。描画情報処理装置１００は、描画処理に特化してデザインされた専用のハードウェアであってもよいが、汎用コンピュータ・システム上で稼動するソフトウェア・プログラム（例えば描画処理（ラスタライズ）用のアプリケーション）としても実装することができる。
【００３２】
同図に示すように、描画情報処理装置１００は、入力解析部１０と、クリップ標準化部２０と、グラフ構造生成保持部３０と、対応処理部４０と、描画部５０と、ページ・メモリ６０とで構成される。以下、各部について説明する。
【００３３】
入力解析部１０は、入力情報を解析するためのモジュールである。ここで言う入力情報は、特に、各描画要素に関する描画のためのデータを記述した描画情報と、描画情報のクリップ領域を定義したクリップ情報とを指す。入力解析部１０における処理は、入力情報のデータ形式や文法に依存するが、本発明の要旨には直接関連しないのでここでは敢えて説明しない。
【００３４】
クリップ標準化部２０は、入力解析部１０からクリップ情報を受け取ってこれを処理するためのモジュールである。クリップ情報には、個々のクリップ形状を表現した形状データと、各クリップ形状間の領域積と領域和を示す演算記号が含まれている。また、各クリップ情報には識別子が与えられているものとする。
【００３５】
クリップ標準化部２０は、クリップ情報で示された領域積や領域和を記号論理における論理積及び論理和ととらえて、個々のクリップ形状を項とした論理演算式を論理和標準形に変換する操作を行うようになっている。ここで、論理和標準形とは、論理式の要素となる単一項や複数の項の論理積が論理和でつながれた形式の論理式のことである。論理式の単一の項は、個々のクリップ形状に関するクリップ情報に該当する。下式に論理和標準形の一例を示しておく。同式の括弧内は全て、単一項又は複数項の論理積である点に留意されたい。
【００３６】
【数１】
（Ａ×Ｂ×…）＋（Ｘ×Ｙ×…）＋…
【００３７】
全ての論理式が論理和標準形に変形可能であることと、論理式を論理和標準形に変形する方法自体は、論理演算の分野において広く知られている。以下、該変形処理について、一例を挙げて図２を参照しながら説明する。
【００３８】
《論理和標準形への変形操作》
まず、与えられた論理式を解析し、最上位の演算子を特定する（ステップＳ１１）。論理式においては、括弧で明示されていない限り左から順に演算子の結合強度が強いものとし、結合強度が最も弱い演算子を最上位の演算子とする。
【００３９】
ここで、最上位の演算子が論理和であれば、その演算子の左右両方の項を同じ手順で論理和標準形に変形する（ステップＳ１２，１３）。この結果、論理式全体が論理和標準形となる。
【００４０】
一方、最上位の演算子が論理積であれば、演算子の左右両方の項を同じ手順で論理和標準形に変形した後に、その結果を展開して論理和標準形にすればよい（ステップＳ１２，１４）。
【００４１】
以上の手続を再帰的に適用することで、論理式全体を論理和標準形にすることができる（ステップＳ１５）。但し、再帰的な適用を繰り返し行うと、個々のクリップに対応した項に到達し、それ以上再帰的処理を行えなくなる。このような場合には、下式に示す規則を適用すればよい。
【００４２】
【数２】
（ａ×ｂ）×Ｃ  →  ［ａ×ｂ×ｃ］
（ａ×ｂ）＋Ｃ  →  ［ａ×ｂ］＋Ｃ
（ａ＋ｂ）×Ｃ  →  ［ａ×Ｃ］＋［ｂ×Ｃ］
（ａ＋ｂ）＋Ｃ  →  ａ＋ｂ＋Ｃ
Ａ×（ｄ×ｅ）  →  ［Ａ×ｄ×ｅ］
Ａ×（ｄ＋ｅ）  →  ［Ａ×ｄ］＋［Ａ×ｅ］
Ａ＋（ｄ×ｅ）  →  Ａ＋［ｄ×ｅ］
Ａ＋（ｄ＋ｅ）  →  Ａ＋ｄ＋ｅ
【００４３】
上式のａ，ｂ，ｄ，ｅは個々のクリップ形状に対応する単一の項であり、Ａ，Ｃは処理済の項又は処理済の項同士を論理積でつないだ論理式である。また、矢印の右側（すなわち変換後）の式に現れる鍵括弧［］は、処理済の項又はそれらを論理積でつないだ式として取扱い可能なことを示している。上式の規則を適用することにより、演算式の両側に論理積からなる項と論理和からなる項など全ての形態の論理式が網羅されていることになる。すなわち、全ての論理式を論理和標準形に変形することが判る。
【００４４】
クリップ標準化部２０において論理和標準形に変形されたクリップ情報は、そのクリップ情報に割り振られた識別子を添えてグラフ構造生成保持部３０に送られる。
【００４５】
グラフ構造生成保持部３０は、与えられたクリップ情報からグラフ構造を生成するとともに、生成したグラフ構造を保持しておくようになっている。
【００４６】
グラフ構造生成保持部３０は、まず、与えられたクリップ情報からＡＮＤ−ＯＲ木を作成する。図３にはそのデータ構造を模式的に表している。同図に示すように、ＡＮＤ−ＯＲ木は３層の木構造を有する。その第１層は、木構造の根であり、この節点にはクリップ情報に付加された識別子が格納される。また、この節点から伸びる枝は全てＯＲ枝である。第２層は、ＡＮＤ枝を束ねた節点が現れる。第２層の節点から伸びる各枝は、個々のクリップ形状に対応する第３層に接続される。
【００４７】
論理和標準形に変換された論理式には、同一のクリップ形状に対応する項（節点）が複数の場所に現れることがあるが、木構造の第３層ではこのような現象を区別する必要はない。このため、第２層の複数の節点から同一の第３層の節点へ枝が生成されることがある。このような場合、生成されるデータ構造は、図３に示すようなＡＮＤ−ＯＲ木構造とはならず、図４に示すようなＡＮＤ−ＯＲグラフとなることがある。
【００４８】
グラフ構造生成保持部３０は、ＡＮＤ−ＯＲグラフを生成すると、次いで、該グラフの第１層から第２層への枝の整列を行う。整列処理のため、まず第３層の節点に対応するクリップ形状の外接矩形を求める。次いで、第２層の節点の各々において、そこに接続された第３層の各節点に格納された外接矩形の情報を収集して、それらが重畳する範囲を計算する。
【００４９】
重畳範囲を計算する手法は幾つか考えられる。この実施例では、各々の外接矩形に関する情報を、主走査方向（水平（ｘ）方向）と副走査方向（垂直（ｙ）方向）の区間値に分解して、それぞれの走査方向の区間値に対してそれらが重なり合う区間を求めることにより行う。図５には、区間値を用いて２つの区間が重畳する範囲を求めるための処理フローを示している。但し、一方の区間Ｖ１は始点Ｓ１と終点Ｅ１で構成され、他方の区間Ｖ２は始点Ｓ２と終点Ｅ２とで構成されるものとする（ステップＳ２１）。まず、各区間の始点同士を比較して大きい方を重畳区間の始点Ｒｓとして選ぶとともに（ステップＳ２２，２３，２４）、終点同士を比較して小さい方を重畳区間の終点Ｒｅとして選び（ステップＳ２５，２６，２７）。始点と終点で順序が逆転していないかどうかを確認する（ステップＳ２８）。確認が成功裏に終わったときには、重畳区間    Ｖｒ［Ｒｓ，Ｒｅ］を結果として採用する（ステップＳ２９）。
【００５０】
次いで、第１層の節点では、第２層の節点で計算された区間値を収集して、それらに基づいて枝を整列する。この実施例では、主走査方向の区間値の始点を用いて昇順に整列するものとする（但し、節点を整列するための方式は、本発明の要旨を限定しない）。このようにして生成されたグラフ構造は、グラフ構造生成保持部３０において保持される。
【００５１】
対応処理部４０は、入力解析部１０から描画情報を受け取って、これに対応するクリップ情報を特定するためのモジュールである。対応処理部４０は、特定されたクリップ情報の識別子を付加して描画情報を描画部５０に送る。
【００５２】
描画部５０は、描画情報を表示・印刷などの出力可能な画素形式に展開するためのモジュールである。この画素形式に展開する処理は、描画情報が表す描画範囲を特定し、その範囲における各走査線に対してクリップ情報で定義された範囲に限って画素形式に展開することで実現される。
【００５３】
ある走査線に対して適用すべきクリップ情報を特定するには、まずクリップの識別子を用いてグラフ生成保持部３０が保持するグラフの中から該当するＡＮＤ−ＯＲグラフを探索する。次いで、該ＡＮＤ−ＯＲグラフの第１層の節点から伸びる各枝に付けられた区間値Ｖｒを参照して、処理対象となる枝を特定する。続いて、特定された枝を辿って第２層に節点に到達することで、領域積を求めるべき各クリップ形状が得られる。複数のクリップ領域の論理積を参照して行う描画及びクリップ処理は、従来適用されているいずれの方法を用いてもよい。ここで、ＡＮＤ−ＯＲグラフの第１層の節点から伸びる枝のうち複数の枝が選ばれたときには、それらの枝に全てについて上述と同様の処理を行えばよい。
【００５４】
ページ・メモリ６０は、描画部５０によって展開された画素データを一時保持するための記憶手段である。ページ・メモリ６０中の画素データは、その後ディスプレイやプリンタに転送されて、表示又は印刷処理がなされる。
【００５５】
ここで、図１で示した描画情報処理装置１００の動作を、図６を用いて概略的に説明しておく。
【００５６】
描画情報処理装置１００に入力される描画データは、描画要素のジオメトリ情報と、描画要素をクリップする領域のジオメトリ情報（すなわちクリップ情報）であるが、クリップ情報の後に描画情報が続くという形式で入力される（［数３］を参照のこと）。一度入力されたクリップ情報は、次のクリップ情報が入力されるまでは有効であり、後続の描画要素をクリップし続けることとする。
【００５７】
描画情報処理装置１００に入力されたデータが描画情報であれば（ステップＳ５２）、対応処理部４０がＡＮＤ−ＯＲグラフを参照して、対応するクリップの識別子を特定する（ステップＳ５３）。
【００５８】
また、入力されたデータが描画情報でない、すなわち複数のクリップ形状の論理式の形式で記述されたクリップ情報であれば（ステップＳ５２）、グラフ構造生成保持部３０は、まずこのクリップ情報を論理和標準形に変形し（ステップＳ５４）、次いでグラフ構造を生成して保持しておく（ステップＳ５５）。生成されたグラフ構造はＡＮＤ−ＯＲグラフの構造を有し、その第２層はクリップ区間の始点の値に従って昇順に整列されている。
【００５９】
次いで、描画部５０は、描画情報を画素データに展開するとともに、クリップ処理を施す（ステップＳ５６）。展開された画素データはページ・メモリ６０に出力され、一時格納される（ステップＳ５７）。
【００６０】
上述の処理は、描画情報処理装置１００への入力がなくなるまで繰り返し実行される（ステップＳ５１）。
【００６１】
なお、描画情報処理装置１００を構成するためには、図１に示した以外にも多くのコンポーネントが必要である。但し、これらは当業者には周知であり、また、本発明の要旨を構成するものではないので、本明細書中では省略している。
【００６２】
次に、具体的な入力データを用いて、描画情報処理装置１００の動作を詳細に説明することにする。ここで、描画情報処理装置１００に対して以下の描画データが入力されたとする。
【００６３】
【数３】
0003750363.tif 000002
【００６４】
上述したように、描画データは、描画要素のジオメトリ情報と、描画要素をクリップする領域のジオメトリ情報（すなわちクリップ情報）で構成され、クリップ情報”ｃｌｉｐ”の後に描画情報”ｆｉｌｌ”が続くという形式をとる。上式において、鍵括弧［］内は領域のジオメトリを定義する各頂点座標で占められる。また、クリップ情報の演算子”＋”と”Ｘ”は夫々、領域和と領域積を表すものとする。一度入力されたクリップ情報は、次のクリップ情報が入力されるまでは有効であり、後続の描画要素をクリップし続けることとする。
【００６５】
上式において、クリップ情報は、（１００，５０），（２５０，５０），（２５０，２５０），（１００，２５０）の４点を頂点とする４角形領域と、（２５０，２００），（４００，２００），（３００，４００）の３点を頂点とする３角形領域との領域和と、これに対する（２００，１５０），（３５０，１５０），（２５０，３００），（２００，３００）の４点を頂点とする４角形領域との領域積からなる。以下では、記述の簡略化のため、クリップを構成する各領域を夫々Ｃ１，Ｃ２，Ｃ３と呼ぶことにする。
【００６６】
また、クリップの次の行には描画情報が記述されている。これは、（２２５，２１２．５），（３００，２１２．５），（３００，２７５），（２２５，２７５）の４点を頂点とする４角形の内部をｂｌａｃｋで塗りつぶす、という描画情報である。［数３］が示す描画データの内容を図７に示しておく。
【００６７】
入力解析部１０は、この入力データを解析して、クリップ情報の部分を分割してクリップ標準化部２０に送る。このとき、送られるクリップ情報には、識別子”ＣＬＩＰ０”が付加されているものとする。続いて、入力データの描画情報の部分を分割して、対応処理部４０に送る。描画部５０が描画情報を受け取るときに付随して、対応処理部４０は現在有効なクリップを特定する情報として識別子”ＣＬＩＰ０”も同時に送るようになっている。
【００６８】
クリップ標準化部３０では、上述した手順に従ってクリップ情報を標準化すなわち論理和標準形に変形する。まず、クリップ情報の左から順に結合強度を解析して、最上位の演算子が論理積であることを特定する。次いで、この論理演算子の左側の項に対して論理和標準形への変形を試みる。但し、この例では既に論理和の形式となっているので、ここでは何も変形しない。次いで、論理式全体の変形を試みるが、このときは［数２］で示した規則を適用する。この結果、クリップ情報は、図８に示すように論理和標準形へと変形されていく。
【００６９】
生成された論理和標準形の論理式は、識別子”ＣＬＩＰ０”とともにグラフ構造生成保持部３０に送られる。
【００７０】
グラフ構造生成保持部３０では、与えられたクリップ情報からＡＮＤ−ＯＲグラフを生成する。この場合に生成されるＡＮＤ−ＯＲグラフを図９に示しておく。同図において、第２層から第３層に伸びる枝の間には付けられている円弧状の印は、これらの枝の間に論理積の関係があることを示している。
【００７１】
次に、第３層の各節点に該当するクリップ形状の各々に対してその外接矩形を計算し、その結果を主走査方向と副走査方向の区間値に分解する。第２層の節点では、これらの結果に対して図５に示したアルゴリズムを適用して、夫々の区間値が重畳する区間を求める。さらに、第１層では、この結果のうち副走査方向の区間値を取り出して、その始点の値の小さい順（昇順）に枝を整列する。この結果、夫々の枝には図１０に示すような区間値が付加されることになる。
【００７２】
一方、対応処理部４０に送られた描画情報には、クリップ情報を特定するための識別子が付加されて、描画部５０に送られる。
【００７３】
描画部５０では、描画情報を走査線に沿って画素データに展開する。このとき、識別子を用いてクリップ情報を表すＡＮＤ−ＯＲグラフを特定する。該当するＡＮＤ−ＯＲグラフを、処理中の走査線の位置を用いて探索して、処理すべきクリップ情報を特定する。例えば、ＡＮＤ−ＯＲグラフの第１層の節点から伸びる２本の枝の区間値を参照すると、走査線ｙ＝２５５に対しては両方の枝に対してクリップ処理が必要であることが判明する。
【００７４】
まず、左側の枝を辿ってＣ１とＣ３の積領域をクリップ領域として描画処理を行い、次に、右側の枝を辿ってＣ２とＣ３の積領域をクリップ領域とした描画処理を行う。これらの描画結果の双方が走査線ｙ＝２５５に対する描画結果となる。この様子を図１１乃至図１５に示す。
【００７５】
図１１及び図１２は、夫々、Ｃ１とＣ３の積領域と描画要素の関係、Ｃ２とＣ３の積領域と描画要素の関係を図解している。また、図１３と図１４は、走査線ｙ＝２５５に対してＡＮＤ−ＯＲグラフの第１層の各々の枝に対応するクリップ領域によってクリップ処理を施した際の描画結果を図解している。また、図１５は、これらの描画結果を統合して得られた、走査線ｙ＝２５５上での描画結果を表している。
【００７６】
走査線ｙ＝２５５上では、Ｃ１とＣ３の積領域においてｘ：［２２５，２５０］が描画結果となる。また、Ｃ２とＣ３の積領域においては、同様に、ｘ：［２５６．２５，３００］が描画結果となる。
【００７７】
描画部５０は、上述の描画処理を、描画要素が存在する全ての走査線に対して行い、その結果をページ・メモリ６０に転送することで、描画要素の描画処理が完了する。
【００７８】
図１６には、本発明の第２の実施例に係る描画情報処理装置２００の構成を模式的に示している。同図に示すように、描画情報処理装置２００は、入力解析部１１０と、クリップ標準化部１２０と、グラフ構造生成保持部１３０と、対応処理部１４０と、描画部１５１，１５２，１５３，…と、ページ・メモリ１６０とで構成される。図１に示した装置１００との主な相違は、複数の描画部１５１，１５２，…を並列的に備えている点である。各描画部１５１，１５２…は夫々、ページ・メモリ１６０の一部に相当するバッファ１５１ａ，１５２ａ，…を有している。
【００７９】
この第２の実施例に係る描画情報処理装置２００において、入力解析部１１０、クリップ標準化部１２０、グラフ構造生成保持部１３０の各々は、上記第１の実施例に係る描画情報処理装置１００の対応する構成要素と略同一の構造及び動作特性を有している。このため、描画情報処理装置２００に与えられたクリップ情報は、クリップ標準化部１２０において論理和標準形の論理式に変形され、グラフ構造生成保持部１３０ではこの論理式を用いてＡＮＤ−ＯＲグラフ構造が生成され保持される。
【００８０】
一方、対応処理部１４０では、与えられた描画情報に対応するクリップ情報を特定するための識別を付加して、描画情報を複数の描画部１５１，１５２，…の各々に分配する。
【００８１】
複数の描画部１５１，１５２，…は、画面やページなどの予め定義された範囲において描画情報を画素データに展開し、さらにクリップ処理を行う。このとき、上記第１の実施例と同様に、クリップ情報を参照するときには、グラフ構造の枝に付けられた区間値を参照することで、現在処理中の走査線に対応するクリップ情報を効率的に特定することができる。
【００８２】
なお、クリップ情報の参照は、クリップ情報を読み出すだけの処理であるから、複数の描画部１５１，１５２，…が並列に動作する場合であっても排他制御する必要はない。
【００８３】
各描画部１５１，１５２，…が出力する描画結果は、夫々のバッファ１５１ａ，１５２ａ，…に一時格納される。
【００８４】
各バッファ１５１ａ…に蓄積された描画結果は、ページ・メモリ１６０に転送して合成してもよく、あるいは夫々のバッファ１５１ａ毎に出力してもよい。
【００８５】
第２の実施例に係る描画情報処理装置２００では、複数の描画部１５１，１５２，…の各々が担当する描画領域を予め定めておくことで、これらを並列に動作させることができる。例えば、バンド単位あるいは走査線単位での並列描画処理を実現することができる。
【００８６】
また、図１７には、本発明の第３の実施例に係る描画情報処理装置３００の構成を模式的に示している。同図に示すように、描画情報処理装置３００は、入力解析部２１０と、クリップ標準化部２２０と、グラフ構造生成保持部２３０と、対応処理部２４０と、描画部２５０と、ページ・メモリ２６０と、２以上のクリップ処理部２７１，２７２で構成される。
【００８７】
この描画情報処理装置３００において、入力解析部２１０、クリップ標準化部２２０、及びグラフ構造生成保持部２３０の各々は、上記第１の実施例に係る描画情報処理装置１００内の対応する構成要素と略同一の構造及び動作特性を有している。したがって、描画情報処理装置３００に与えられたクリップ情報は、クリップ標準化部２２０によって論理和標準形の論理式に変形され、グラフ構造生成保持部２３０ではこの論理式を用いてＡＮＤ−ＯＲグラフ構造が生成され保持される。
【００８８】
生成されたＡＮＤ−ＯＲグラフ構造の第３層を構成する各々の節点は、複数のクリップ処理部２７１，２７２に割り振られる。
【００８９】
対応処理部２４０は、上記各実施例と同様に動作する。すなわち、対応処理部２４０によってクリップ情報を特定するための識別子が付加されてから、描画情報が描画部２５０に送られる。
【００９０】
描画部２５０では、走査線毎に描画情報を画素データに展開処理し、さらに走査線に対応するクリップ情報を参照してクリップ処理を行う。このときのクリップ処理には、各クリップ処理部２７１，２７２が用いられる。クリップ処理部２７１…の各々は、ＡＮＤ−ＯＲグラフの第３層を構成する各節点に該当するクリップ領域のクリップ処理を分担するので、クリップ処理を高速化することができる。また、各クリップ処理部２７１…にクリップ情報全体を転送する必要はない。処理された描画結果は、ページ・メモリ２６０に蓄積される。
【００９１】
第３の実施例に係る描画情報処理装置３００では、複数のクリップ処理部２７１，２７２の各々に対して異なるクリップ領域の組み合わせを割り当てて、処理中の走査線上でのクリップ処理を実行させているので、描画処理全体を高速化することができる訳である。
【００９２】
［追補］
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。
【００９３】
例えば、上記第１の実施例では、描画部５０の描画結果を画素形式としたが、本発明の範囲はこれに限定されるものではなく、描画結果は他の形式、例えばランレングス形式であってもよい（このような場合、ページメモリ６０の形式も描画部５０の描画結果の形式に合わせるだけでよい）。
【００９４】
また、描画部５０への入力は、ディスプレイ・リストや台形形式のデータ構造でもよく、この場合は、グラフ構造を探索して処理対象のクリップ領域を特定した後に、夫々のデータ構造に対応したクリップ処理技法を適用してクリップ処理を行えばよい。
【００９５】
要するに、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【００９６】
【発明の効果】
以上詳記したように、本発明によれば、コンピュータ・システム上でコンピュータ・グラフィックス（ＣＧ）やデスクトップ・パブリッシング（ＤＴＰ）などのための効率的な描画情報処理を行うことができる、優れた描画情報処理装置及び描画情報処理方法を提供することができる。
【００９７】
また、本発明によれば、描画情報に基づいて生成された画素情報を複数のクリップ領域を用いてクリップ処理することができる、優れた描画情報処理装置及び描画情報処理方法を提供することができる。
【００９８】
また、本発明によれば、複数のクリップ領域の論理積だけでなく論理和で構成されるクリップ情報を用いて効率的で且つデザイン効果のあるクリップ処理することができる、優れた描画情報処理装置及び描画情報処理方法を提供することができる。
【００９９】
また、本発明によれば、実際にクリップ情報の和領域の形状を計算することなく効率的にクリップ処理を行うことができる、優れた描画情報処理装置及び描画情報処理方法を提供することができる。
【０１００】
本発明によれば、領域和の形式でクリップ情報を指定することが許容される。本発明は、領域和を含むクリップの指定を論理和標準形に変形することで、領域積のみを許す従来のクリップ処理と同等の性能を有するクリップ処理を実現する。また、クリップ情報をグラフ情報として表現するとともにグラフ構造に区間値の情報を付加することで、並列に描画処理を実行するシステムにおいても効率的な動作を実現することができる。
【図面の簡単な説明】
【図１】    本発明を実現する描画情報処理装置１００の原理を模式的に示したブロック図である。
【図２】    クリップ標準化部２０が実行する、論理式を論理和標準形に変形するための処理を示したフローチャートである。
【図３】    グラフ構造生成保持部３０が生成したクリップ情報のＡＮＤ−ＯＲ木の木構造を模式的に示した図である。
【図４】  論理和標準形において同一のクリップ形状に対応する項が複数の場所に現れるために第２層の複数の節点から同一の第３層の節点へ枝が接続された、ＡＮＤ−ＯＲグラフを示した図である。
【図５】  ２つの区間値から重畳する区間を求めるための処理をフローチャートで示した図である。
【図６】  描画情報処理装置１００が実行するオペレーションを概略的に示したフローチャートである。
【図７】  ［数３］で記述された入力データが表す図形及びクリップを図解したものである。
【図８】  クリップ情報が論理和標準形に変形されていく様子を示した図である。
【図９】  論理和標準形を基に生成されたＡＮＤ−ＯＲグラフの構造を模式的に示した図である。
【図１０】  整列処理した後に各節点に区間値が付加されたＡＮＤ−ＯＲグラフを示した図である。
【図１１】  Ｃ１とＣ３の積領域と描画要素の関係を示した図である。
【図１２】  Ｃ２とＣ３の積領域と描画要素の関係を示した図である。
【図１３】  走査線ｙ＝２５５に対してＡＮＤ−ＯＲグラフの第２層の一方の枝に対応するクリップ領域によってクリップ処理を施した際の描画結果を表した図である。
【図１４】  走査線ｙ＝２５５に対してＡＮＤ−ＯＲグラフの第２層の他方の枝に対応するクリップ領域によってクリップ処理を施した際の描画結果を表した図である。
【図１５】  これらの描画結果を統合して得られた、走査線ｙ＝２５５上での描画結果を表した図である。
【図１６】  本発明の第２の実施例に係る描画情報処理装置２００の構成を模式的に示した図である。
【図１７】  本発明の第３の実施例に係る描画情報処理装置３００の構成を模式的に示した図である。
【符号の説明】
１０…入力解析部
２０…クリップ標準化部
３０…グラフ構造生成保持部
４０…対応処理部
５０…描画部
６０…ページ・メモリ
１００…第１の実施例に係る描画情報処理装置
２００…第２の実施例に係る描画情報処理装置
３００…第３の実施例に係る描画情報処理装置
【図１】
0003750363.tif 000003
【図２】
0003750363.tif 000004
【図３】
0003750363.tif 000005
【図４】
0003750363.tif 000006
【図５】
0003750363.tif 000007
【図６】
0003750363.tif 000008
【図７】
0003750363.tif 000009
【図８】
0003750363.tif 000010
【図９】
0003750363.tif 000011
【図１０】
0003750363.tif 000012
【図１１】
0003750363.tif 000013
【図１２】
0003750363.tif 000014
【図１３】
0003750363.tif 000015
【図１４】
0003750363.tif 000016
【図１５】
0003750363.tif 000017
【図１６】
0003750363.tif 000018
【図１７】
0003750363.tif 000019