JP2006018842A - グラフィックオブジェクトを描画する方法 - Google Patents

グラフィックオブジェクトを描画する方法 Download PDF

Info

Publication number
JP2006018842A
JP2006018842A JP2005193116A JP2005193116A JP2006018842A JP 2006018842 A JP2006018842 A JP 2006018842A JP 2005193116 A JP2005193116 A JP 2005193116A JP 2005193116 A JP2005193116 A JP 2005193116A JP 2006018842 A JP2006018842 A JP 2006018842A
Authority
JP
Japan
Prior art keywords
objects
list
priority
image
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005193116A
Other languages
English (en)
Other versions
JP4756937B2 (ja
JP2006018842A5 (ja
Inventor
David Christopher Smith
クリストファー スミス ディビッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2004903592A external-priority patent/AU2004903592A0/en
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2006018842A publication Critical patent/JP2006018842A/ja
Publication of JP2006018842A5 publication Critical patent/JP2006018842A5/ja
Application granted granted Critical
Publication of JP4756937B2 publication Critical patent/JP4756937B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Record Information Processing For Printing (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)

Abstract

【課題】複数の描画技法を使用して、既存構成の欠点を克服する。
【解決手段】画像(950)中のオブジェクト(951〜955)のリストを受信し、そのリストは、最低優先度のオブジェクト(951)から最高優先度のオブジェクト(955)へ、オブジェクトを優先度の順位で並べ替える。これらのオブジェクトは、第1のオブジェクトの集合(951、952)及び/又は第2のオブジェクトの集合(953〜955)に割り当てられる。オブジェクトの一部が第1のオブジェクトの集合内で可視状態である場合、第1のオブジェクトの集合は、そのオブジェクトの一部のみを描画する第1の描画方法を使用して、画像記憶装置に描画される。第2のオブジェクトの集合は、第2の集合内の他のオブジェクトとは無関係の各オブジェクトを描画する第2の描画方法を使用して、画像記憶装置に描画される。
【選択図】図10A

Description

本発明は、一般に、オブジェクト単位の画像を描画することに関する。特に、本発明は、複数の描画技法を使用して、グラフィックオブジェクトを描画する方法に関する。
コンピュータアプリケーションが印刷及び/又は表示を実行するための装置にデータを提供する場合、ページ記述言語(PDL)により、ページの中間記述が装置ドライバソフトウェアに与えられることが多い。ページ記述言語は、ページ又は表示装置に描画されるべきグラフィックオブジェクトの記述を提供する。これは、アプリケーションにより、ラスタ画像データが直接に生成され、印刷又は表示のために送信されるいくつかの構成とは対照的である。ページ記述言語の例には、CanonのLIPSTM及びHPのPCLTM等がある。
これと同等の方法として、アプリケーションは、ファンクションコールにより、MicrosoftTMのWindows(登録商標) GDI等のグラフィックスデバイスインタフェース(GDI)層に、グラフィックオブジェクトの記述のセットを提供してもよい。関連する目標プリンタのプリンタドライバは、GDI層からグラフィックオブジェクト記述を受信するソフトウェアである。オブジェクト毎に、プリンタドライバは、目標プリンタの描画システムにより理解されるページ記述言語でオブジェクトの記述を生成する役割を果たす。
プリンタの描画システムは、PDLインタープリタを含む。PDLインタープリタは、グラフィックオブジェクト記述を解析し、グラフィックオブジェクトデータの表示リストを作成する。描画システムは、ラスタ画像プロセッサ(RIP)を更に含む。ラスタ画像プロセッサは、表示リストを処理し、データを、例えば、C、M、Y及びKの各チャネルを含む画素値として描画する。この形式になった時点で、プリンタは、ページを印刷する。
後の印刷及び/又は表示に備えて、ページ又は画面の画素単位の画像データ表現を保持するために、多くのRIPは、当該技術分野において、フレームストア又はページバッファとして知られる大容量のメモリを利用する。通常、グラフィックオブジェクトの輪郭が計算され、色値によって塗りつぶされ、フレームストアに書き込まれる。二次元グラフィックスの場合、他のオブジェクトの前方に現れるオブジェクトは、単純に、背景オブジェクトの後にフレームストアに書き込まれる。それにより、前面のオブジェクトは、画素毎に、背景オブジェクトと置き換えられる。当該技術分野において、これは、「ペインターズアルゴリズム」として一般に知られている。最も後方に位置するオブジェクトから、最も前方に位置するオブジェクトまで、オブジェクトは、優先度の順に考慮される。通常、各オブジェクトは、走査線の順にラスタ化され、画素は、各走査線に沿って、ラン毎に順次フレームストアに書き込まれる。RIPの中には、オブジェクトを他のオブジェクトと合成できるものがある。例えば、1つ以上のグラフィックオブジェクトと、既にフレームストアに描画された画素との間で、論理演算又は算術演算を指定し、それを実行できる。そのような場合、描画原理は同一のままである。すなわち、オブジェクト(又は複数のオブジェクト群)は、走査線の順にラスタ化され、特定された演算の結果が計算され、各走査線に沿って、ラン毎に順次フレームストアに書き込まれる。
ペインターズアルゴリズム描画方法には、いくつかの問題がある。問題の1つは、1つのオブジェクトを描画することにより、フレームストアに書き込まれる多数の画素が、それ以後のオブジェクトを描画する時に上書きされることである。後の段階で上書きされる画素データをフレームストアに書き込むために、資源を使用することは、明らかに不都合である。
もう1つの問題は、オブジェクトが合成を要求する場合、そのオブジェクトの下方に位置するオブジェクトは、通常、フレームストアから読み出され、何らかの方法により、そのオブジェクトの画素と組み合わされることである。フレームストアの画素が、合成を要求するオブジェクトより短いビット深さに格納されている場合、多くの合成演算は、不正確な結果を生成する。例えば、グラフィックオブジェクトが8ビット/チャネルのRGBAビットマップであり、フレームストアが、1ビット/チャネルの中間調の画素データを保持している場合が、これに当てはまる。そのような状況が起こるのは、フレームストアにおいて、印刷実行のために要求されるビット深さに画素値が格納されることが多いためである。チャネル毎に全8ビットで画素を格納することは可能であるが、600dpiの分解能で、8ビット/チャネルのRGBAフレームストアは、A4ページ1枚分に対して、100MBのメモリを必要とする。また、8ビット/チャネルのフレームストアにページを描画した後になっても、印刷を実行するために、そのページを、より短いビット深さに変換しなければならず、非効率的である。
他のRIPは、フレームストアの必要性を排除し且つ上書きの問題を克服するために、画素順次描画方法を利用する。それらのシステムにおいては、各画素は、ラスタ順に生成される。描画されるべき全てのオブジェクトは、表示リストに保持される。各走査線上で、その走査線と交差するオブジェクトの輪郭が、走査線との交点の昇順に保持される。それらの交点、又は輪郭交差は、順次考慮され、表示リスト中のオブジェクトを有効又は無効にする。輪郭が1対毎に考慮され、その画素の範囲(画素ラン)について、不透明なオブジェクトにより、どのオブジェクトが掩蔽されるかに基づいて、第1の輪郭と第2の輪郭との間に位置する画素毎のカラーデータが生成される。次の走査線に備えて、各々の輪郭の性質に従って、各輪郭が交差する座標が更新され、それら輪郭は、その走査線との交点の昇順にソートされる。新たな輪郭は、有効輪郭リストと呼ばれる輪郭のリストにマージされる。本明細書において、不透明なオブジェクトにより掩蔽されない画素ラン中のオブジェクトのみを描画する描画方法を「画素順次描画方法」と呼ぶ。
そのような画素順次描画を使用するグラフィックスシステムは、フレームストア又はラインストアがなく、不必要な上書きもないという点で、大きな利点を有する。合成を要求するオブジェクトは、各オブジェクトの本来のカラーデータを使用して、画素毎に処理される。
走査線毎に、xの昇順にソートされた順序で追跡され、維持されなければならない輪郭の数が多い場合、画素順次描画方法にも問題が起こる。1つの走査線において、各輪郭が更新されるため、輪郭は、通常は挿入整列法により、有効輪郭リストに再度挿入される。何十万もの輪郭から構成される複雑なページの場合、走査線毎に輪郭のソートリストを維持するために要求される時間は、複雑なページ1枚分を描画するための合計時間の大部分を占めることになる。
本発明の目的は、既存構成の1つ以上の欠点を、実質的に克服すること、又は少なくとも改善することである。
本発明の第1の面によると、グラフィックオブジェクトのリストにより記述される画像を描画する方法において、
前記リスト中のオブジェクトを、第1のオブジェクトの集合及び第2のオブジェクトの集合のうちの少なくとも一方の集合に割り当てるステップと;
前記第1のオブジェクトの集合のうちの1つのオブジェクトの一部が、前記第1のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、前記第1のオブジェクトの集合を画像記憶装置に描画するステップと;
前記第2のオブジェクトの集合の各オブジェクトを、前記第2のオブジェクトの集合におけるその他のオブジェクトとは関係なく描画する第2の描画方法を使用して、前記第2のオブジェクトの集合を前記画像記憶装置に描画するステップとから成る方法が提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する方法において、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像のオブジェクトをリストとして配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信するステップと;
前記表示リスト中の最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトに対して動作する第1の描画タスクを処理するステップと;
前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の1つ以上のオブジェクトに対して動作する少なくとも1つの第2の描画タスクを処理するステップとから成り、
前記第1の描画タスクは、1つのオブジェクトの一部が、前記第1の描画タスクにより処理されるオブジェクトの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画し、
前記第2の描画タスクは、前記第2の描画タスクにより処理される他のオブジェクトとは関係なく、オブジェクトを画像記憶装置に描画する方法が提供される。
本発明の別の面によると、グラフィックオブジェクトとして表現されるデータにより記述される画像を形成する方法において、
(a)前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順にオブジェクトが順序付けられたオブジェクトのリストを受信するステップと;
(b)優先度が高くなる順に、前記リスト中のオブジェクトを考慮し、注目オブジェクト毎に、
(ba)前記注目オブジェクトが合成を要求しない場合、第1の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画し;
(bb)前記注目オブジェクトが合成を要求する場合には、
(bb)(i)前記リスト中で、前記注目オブジェクトより低い優先度を有し、前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定するステップと、
(bb)(ii)1つのオブジェクトの一部が、第2の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第2の描画方法を使用して、前記注目オブジェクト及び判定されたオブジェクトを描画するステップとを実行するステップとから成る方法が提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する方法において、
(a)最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトをリストとして配列する表示リストを受信するステップと;
(b)少なくとも1つの所定の基準に従って、前記表示リスト中のオブジェクトを、第1のオブジェクトの集合及び第2のオブジェクトの集合のうちの少なくとも一方に割り当てるステップと;
(c)第1の描画方法を使用して、前記第1のオブジェクトの集合の中のオブジェクトを描画するステップと;
(d)第2の描画方法を使用して、前記第2のオブジェクトの集合の中のオブジェクトを描画するステップとから成り、
描画されるべき連続する画素から成る画素ラン毎に、前記第1の描画方法は、
(ca)前記第1のオブジェクトの集合の中で、前記画素のランに対して有効であるオブジェクトを判定するステップと;
(cb)判定された有効オブジェクトの中で、最高の優先度を有する不透明なオブジェクトを識別するステップと;
(cc)前記最高優先度を有する不透明なオブジェクト、及び前記最高優先度を有する不透明なオブジェクトより高い優先度を有する不透明でない有効オブジェクトを描画するステップとを含み;
描画されるべき連続する画素から成る画素ラン毎に、前記第2の描画方法は、
(da)優先度が高くなる順に前記第2のオブジェクトの集合を考慮して、前記第2のオブジェクトの集合の中の現在のオブジェクトが有効であるか否かを検査するステップと;
(db)前記現在のオブジェクトが有効である場合、前記現在のオブジェクトを画像記憶装置に描画するステップとを含む方法が提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する方法において、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列するリストを受信するステップと;
集合の中のオブジェクトが前記リストにおいて連続する優先度の順位を有し且つ集合の中の各オブジェクトが集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも1つのオブジェクトの集合に割り当てるステップと;
前記少なくとも1つのオブジェクトの集合を画像記憶装置に描画するステップとから成る方法が提供される。
本発明の別の面によると、グラフィックオブジェクトのリストにより記述される画像を描画する方法において、
前記リスト中のオブジェクトを、第1のオブジェクトの集合及び第2のオブジェクトの集合のうちの少なくとも一方に割り当てるステップと;
画素順次描画方法を使用して、前記第1のオブジェクトの集合の中のオブジェクトを描画するステップと;
ペインターズアルゴリズム描画方法を使用して、前記第2のオブジェクトの集合の中のオブジェクトを描画するステップとから成る方法が提供される。
本発明の別の面によると、グラフィックオブジェクトのリストにより記述される画像を描画する装置において、
第1の手段であって、1つのオブジェクトの一部が、前記第1の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の手段が、前記一部を描画する第1の描画方法を使用して、オブジェクトを画像記憶装置に描画する第1の手段と;
第2の手段であって、前記第2の手段により受信される各オブジェクトを、前記第2の手段により受信されるその他のオブジェクトとは関係なく描画する第2の描画方法を使用して、オブジェクトを前記画像記憶装置に描画する第2の手段と;
前記リスト中のグラフィックオブジェクトを、前記第1の手段及び前記第2の手段のうちの少なくとも一方に割り当てる手段とを具備する装置が提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する装置において、
第1の手段であって、1つのオブジェクトの一部が、前記第1の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の手段が、前記一部を描画する第1の描画方法を使用して、オブジェクトを画像記憶装置に描画する第1の手段と;
第2の手段であって、前記第2の手段により受信される各オブジェクトを、前記第2の手段により受信されるその他のオブジェクトとは関係なく前記画像記憶装置に描画する第2の描画方法を使用して、オブジェクトを描画する第2の手段と;
リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられ、且つ合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有するような、前記画像中のオブジェクトのリストを受信する手段と;
オブジェクトを前記第1の描画する手段及び前記第2の描画する手段に割り当てる手段であって、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトの前記リストの第1の部分を、前記第1の描画する手段に割り当て、前記最終合成オブジェクトより高い優先度を有する1つ以上のオブジェクトを、前記第2の描画する手段に割り当てる手段とを具備する装置が提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する装置において、
第1の手段であって、1つのオブジェクトの一部が、前記第1の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の手段が、前記一部を描画する第1の描画方法を使用して、オブジェクトを画像記憶装置に描画する第1の手段と;
第2の手段であって、前記第2の手段により受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく前記画像記憶装置に描画する第2の描画方法を使用して、オブジェクトを描画する第2の手段と;
オブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられるような、前記画像中のオブジェクトのリストを受信する手段と;
合成を要求するオブジェクトに対して、前記合成を要求するオブジェクトより低い優先度を有し且つ前記合成を要求するオブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定する手段と;
前記リスト中の非合成オブジェクトを、前記第2の描画する手段に割り当てる手段と;
前記リスト中の合成オブジェクトを、前記判定する手段により、合成を要求するオブジェクト毎に判定されたオブジェクトと共に、前記第1の描画する手段に割り当てる手段とを具備する装置が提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する装置において、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信する手段と;
集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも1つのオブジェクトの集合に割り当てる手段と;
前記少なくとも1つのオブジェクトの集合を画像記憶装置に描画する手段とを具備する装置が提供される。
本発明の別の面によると、オブジェクト単位の画像を描画するシステムにおいて、
1つのオブジェクトの一部が、第1の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、画像記憶装置にオブジェクトを描画する1つ以上の第1の描画装置と;
1つ以上の第2の描画装置であって、前記第2の描画装置により受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく、前記画像記憶装置に描画する第2の描画方法を使用して、オブジェクトを描画する第2の描画装置と;
リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられ、且つ合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有するような前記画像のオブジェクトのリストを生成する表示リスト生成器と;
前記表示リスト生成器により生成されたリストを格納する表示リスト記憶装置と;
前記表示リスト記憶装置、前記第1の描画装置及び前記第2の描画装置と通信し、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトを前記第1の描画装置に割り当て、前記最終合成オブジェクトより高い優先度を有するオブジェクトを1つ以上の第2の描画装置に割り当てるようにプログラムされたプロセッサとを具備するシステムが提供される。
本発明の別の面によると、オブジェクト単位の画像を描画するシステムにおいて、
1つのオブジェクトの一部が、第1の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、画像記憶装置にオブジェクトを描画する1つ以上の第1の描画装置と;
1つ以上の第2の描画装置であって、前記第2の描画装置により受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく、前記画像記憶装置に描画する第2の描画方法を使用して、オブジェクトを描画する第2の描画装置と;
リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられるような、前記画像中のオブジェクトのリストを生成する表示リスト生成器と;
前記表示リスト生成器により生成されたリストを格納する表示リスト記憶装置と;
前記表示リスト記憶装置、前記第1の描画装置及び前記第2の描画装置と通信し、
(i)優先度が高くなる順に、前記リスト中のオブジェクトを考慮するステップと;
注目オブジェクト毎に、
(ii)前記現在のオブジェクトが合成を要求しない場合、前記現在のオブジェクトを前記第2の描画装置に割り当てるステップと;
(iii)前記現在のオブジェクトが合成を要求する場合、前記注目オブジェクトより低い優先度を有し且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定し、前記注目オブジェクト及び判定されたオブジェクトを前記第1の描画装置に割り当てるステップとを実行するようにプログラムされたプロセッサとを具備するシステムが提供される。
本発明の別の面によると、機械可読記憶媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品において、前記方法は、
リスト中のオブジェクトを、第1のオブジェクトの集合及び第2のオブジェクトの集合のうちの少なくとも一方に割り当てるステップと;
前記第1のオブジェクトの集合のうちの1つのオブジェクトの一部が、前記第1のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、前記第1のオブジェクトの集合を画像記憶装置に描画するステップと;
前記第2のオブジェクトの集合の中の各オブジェクトを、前記第2のオブジェクトの集合のその他のオブジェクトとは関係なく描画する第2の描画方法を使用して、前記第2のオブジェクトの集合を前記画像記憶装置に描画するステップとから成るコンピュータプログラム製品が提供される。
本発明の別の面によると、機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品において、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信するステップと;
前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの前記表示リスト中のオブジェクトを含む第1の描画タスクを、第1の描画方法を使用して描画するステップと;
前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の1つ以上のオブジェクトを含む1つ以上の第2の描画タスクを、第2の描画方法を使用して描画するステップとから成り、
前記第1の描画方法は、1つのオブジェクトの一部が、前記第1の描画タスクの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の描画方法は、前記一部を描画し、
前記第2の描画方法は、前記第2の描画タスクの各オブジェクトを、前記第2の描画タスクの中のその他のオブジェクトとは関係なく、画像記憶装置に描画するコンピュータプログラム製品が提供される。
本発明の別の面によると、機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品において、前記方法は、
(a)前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、オブジェクトが優先度の順に順序付けられたオブジェクトのリストを受信するステップと;
(b)優先度が高くなる順にオブジェクトを考慮し、注目オブジェクト毎に、
(ba)前記注目オブジェクトが合成を要求しない場合、第1の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画し、
(bb)前記注目オブジェクトが合成を要求する場合には、
(bb)(i)前記注目オブジェクトより低い優先度を有し且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する前記リスト中のオブジェクトを判定するステップと;
(bb)(ii)1つのオブジェクトの一部が、第2の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第2の描画方法を使用して、前記注目オブジェクト及び判定されたオブジェクトを描画するステップとを実行するステップとから成るコンピュータプログラム製品が提供される。
本発明の別の面によると、機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品において、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信するステップと;
集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも1つのオブジェクトの集合に割り当てるステップと;
前記少なくとも1つのオブジェクトの集合を画像記憶装置に描画するステップとから成るコンピュータプログラム製品が提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラムにおいて、前記方法は、
リスト中のオブジェクトを、第1のオブジェクトの集合及び第2のオブジェクトの集合のうちの少なくとも一方に割り当てるステップと;
前記第1のオブジェクトの集合の中の1つのオブジェクトの一部が、前記第1のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、前記第1のオブジェクトの集合を画像記憶装置に描画するステップと;
前記第2のオブジェクトの集合の中の各オブジェクトを、前記第2のオブジェクトの集合のその他のオブジェクトとは関係なく描画する第2の描画方法を使用して、前記第2のオブジェクトの集合を前記画像記憶装置に描画するステップとから成るコンピュータプログラムが提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラムにおいて、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信するステップと;
前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの表示リスト中のオブジェクトを含む第1の描画タスクを、第1の描画方法を使用して描画するステップと;
前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の1つ以上のオブジェクトを含む1つ以上の第2の描画タスクを、第2の描画方法を使用して描画するステップとから成り、
前記第1の描画方法は、1つのオブジェクトの一部が、前記第1の描画タスクの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の描画方法は、前記一部を描画し、
前記第2の描画方法は、前記第2の描画タスクの各オブジェクトを、前記第2の描画タスクのその他のオブジェクトとは関係なく、画像記憶装置に描画するコンピュータプログラムが提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラムにおいて、前記方法は、
(a)前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順にオブジェクトが順序付けられたオブジェクトのリストを受信するステップと;
(b)優先度が高くなる順に、前記リスト中のオブジェクトを考慮し、注目オブジェクト毎に、
(ba)前記注目オブジェクトが合成を要求しない場合、第1の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画するステップと;
(bb)前記注目オブジェクトが合成を要求する場合には、
(bb)(i)前記注目オブジェクトより低い優先度を有し且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する、前記リスト中のオブジェクトを判定するステップと;
(bb)(ii)1つのオブジェクトの一部が、第2の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第2の描画方法を使用して、前記注目オブジェクト及び判定されたオブジェクトを描画するステップとを実行するステップとから成るコンピュータプログラムが提供される。
本発明の別の面によると、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラムにおいて、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信するステップと;
集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも1つのオブジェクトの集合に割り当てるステップと;
前記少なくとも1つのオブジェクトの集合を画像記憶装置に描画するステップとから成るコンピュータプログラムが提供される。
表の簡単な説明
本発明の実施形態について、詳細な説明の最後に列挙する表を参照して説明する。
表Aは、図1A〜図1Cの例に対する図2の方法の適用方法を示す。
表Bは、図1Aの例の走査線に対する図3Aの方法の適用方法を示す。
表Cは、図6Cの走査線662の最初の3つの輪郭に対する図7の方法の適用方法を示す。
表Dは、図11A〜図11Cの走査線1130に対する第3の構成の応用を示す。
本発明の1つ以上の実施形態を、添付の図を参照して以下に説明する。
後続の一部の説明は、コンピュータメモリ内のデータに対する動作のアルゴリズム及び記号表現の点で、明示的又は暗黙的に示される。これらのアルゴリズムの説明及び表現は、データ処理技術の技術者が他の技術者に対して、研究内容を最も効率的に伝達するために使用される方法である。ここでのアルゴリズムは、一般に、所望の結果へと導く自己無矛盾な一連のステップであると考えられる。これらステップは、物理量の物理的操作を必要とするステップである。必須ではないが、通常、これら量は、格納、転送、結合、比較又は操作をすることができる電子信号又は磁気信号の形態をとる。主に一般的使用の理由から、これらの信号をビット、値、要素、記号、文字、用語、数字等として参照する際の利便性が、検証された。
しかし、上述の用語及び同様の用語は、適当な物理量に関連付けられ、単にこれらの量に適用された便利なラベルにすぎないことを認識すべきである。以下より明らかであるように、特に文中に指示がない限り、本明細書を通して、コンピュータシステム、又は同様の電子装置の動作及び処理を、「計算」、「判定」、「置換」、「生成」、「初期化」、「出力」等の用語を利用して説明する。コンピュータシステム、又は同様の電子装置は、コンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表現されたデータを操作して、コンピュータシステムメモリ又はレジスタ、あるいは、他の情報記憶装置、伝送装置又は表示装置内の物理量として同様に表現される他のデータに変換する。
また、本明細書は、方法の動作を実行する装置を開示する。そのような装置は、要求される目的に対して特に構成されてもよく、あるいは、汎用コンピュータ又は選択的に起動される他の装置又はコンピュータに格納されたコンピュータプログラムにより構成される装置を含んでもよい。ここで提供されるアルゴリズム及び表示装置は、本質的に、いかなる特定のコンピュータ又は他の装置にも関連付けられていない。種々の汎用装置が、明細書の説明に従ったプログラムと共に使用されてもよい。あるいは、必要な方法のステップを実行するために、更に特化した装置の構成が、適当であるかもしれない。
更に、本発明は、暗黙的にコンピュータプログラムを開示する。このコンピュータプログラムにおいて、明細書で説明される好適な方法の個々のステップがコンピュータコードにより実行されることは、当業者にとって明らかであろう。コンピュータプログラムは、特定のプログラミング言語及びその実現に限定されることを意図しない。種々のプログラミング言語及びそのコード化が、明細書に含まれる開示内容を実現するために使用されてもよいことが分かるだろう。更に、このコンピュータプログラムは、特定の制御フローに限定されることを意図しない。本発明の趣旨又は範囲を逸脱せずに、異なる制御フローを使用できる他の多くのコンピュータプログラムが存在する。また更に、1つ以上のコンピュータプログラムのステップは、連続的に実行されるのではなく、並列に実行されてもよい。
そのようなコンピュータプログラムは、任意のコンピュータ可読媒体に格納されてもよい。コンピュータ可読媒体は、汎用コンピュータとインタフェースするのに適当な磁気ディスク、光ディスク、メモリチップ、又は他の記憶装置等の記憶装置を含んでもよい。また、コンピュータ可読媒体は、インターネットシステムに例示されるようなハードワイヤード媒体、又は、GSM移動電話システムに例示されるような無線媒体を含んでもよい。コンピュータプログラムは、汎用コンピュータ上にロードされ且つ実行される時に、効果的に、好適な方法のステップを実現する装置となる。
添付の1つ以上の図面において、ステップ及び/又は特徴を参照する場合、この説明の目的のため、異なる意図を示さない限り、同一の符号を有するステップ及び/又は特徴は、同一の機能又は動作を有する。
本開示において、以下の略語が使用される。
PSRM(Pixel−Sequential Rendering Method) 画素順次描画方法
PARM(Painter’s Algorithm Rendering Method:ペインターズアルゴリズム描画方法
IPARM(Improved Painter’s Algorithm Rendering Method):改良版ペインターズアルゴリズム描画方法
XPSRM(Exclusive Pixel−Sequential Rendering Method):排他的画素順次描画方法
DL(Display List):表示リスト
OL(Object List):オブジェクトリスト
CL(Compositing List):合成リスト
AEL(Active Edge List):有効輪郭リスト
AOL(Active Object List):有効オブジェクトリスト
RT(Render Task):描画タスク
PART(Painter’s Algorithm Render Task):ペインターズアルゴリズム描画タスク
PSRT(Pixel−Sequential Render Task):画素順次描画タスク
GDI(Graphics Device Interface):グラフィックデバイスインタフェース
RIP(Raster Image Processor):ラスタ画像プロセッサ
1.0 描画装置
図18は、コンピュータグラフィックオブジェクト画像を描画し且つ提供するように構成されたシステム1800を概略的に示す。システムは、システムランダムアクセスメモリ(RAM)1803と関連付けられたホストプロセッサ1802を含む。システムRAM1803は、不揮発性ハードディスクドライブ又は同様の装置1805と、揮発性半導体RAM1804とを含んでもよい。システム1800は、通常、半導体ROM1807に基づくシステム読出し専用メモリ(ROM)1806を更に含み、多くの場合、システムROM1806は、コンパクトディスク装置(CD−ROM)1808を付属してもよい。また、システム1800は、画像を表示するために、ラスタ形式で動作するプリンタ、又はビデオ表示装置(VDU)等の目標装置1513を更に内蔵してもよい。
システム1800の上述の構成要素は、バスシステム1809を介して相互に接続し、IBM PC/AT型パーソナルコンピュータ及びそれから発展した構成等の当該技術において既知のコンピュータシステムの正常動作モードで、動作可能である。
更に、図18において、グラフィック描画システム1505(又は、描画装置)は、バス1809に接続し、グラフィックオブジェクト単位の記述から導き出される画素単位の画像を描画するように構成される。また、グラフィックオブジェクト単位の記述は、バス1809を介して、プロセッサ1802から、命令及びデータと共に供給される。描画装置1505は、通常は半導体RAMで構成される関連付けられた専用の描画記憶装置1530を有することが好ましいが、オブジェクト記述を描画するためにシステムRAM1803を利用してもよい。
描画システム1505は、ホストプロセッサ1802上で、ソフトウェアとして実現されてもよい。あるいは、描画システム1505は、特注のハードウェア装置である別の装置、又は汎用コンピュータ上で実行されるソフトウェアである別の装置上で実現されてもよい。更に、描画システムは、目標装置1513上の組込みシステムであってもよい。
描画パイプラインが、図15に示される。ホストプロセッサ1802で実行されるアプリケーション1501は、ホストプロセッサのオペレーティングシステム(OS)のグラフィックデバイスインタフェース(GDI)1503にグラフィックデータを送信する。GDI1503は、そのグラフィックデータを処理し、表示リスト生成モジュール1507及び描画モジュール1511を有するグラフィック描画システム1505にデータを渡す。
表示リスト生成モジュール1507は、GDI1503から受信したデータ内に定義されたオブジェクトの集合から、表示リストを生成する。表示リスト中のオブジェクトは、最低優先度のオブジェクトから、最高優先度のオブジェクトまで、zレベル順(優先度の順位)に順序付けされる。表示リストは、表示リスト記憶装置1509に格納される。描画モジュール1511は、表示リストを処理し、印刷するために画素データを生成する。
描画装置1505は、ホストコンピュータ1802にソフトウェアとして常駐する場合、中間調のビットマップを生成する。そのビットマップは、圧縮され、目標装置1513に送信される。目標装置1513は、ビットマップを復元し、画素データのページを描画する。
別の構成において、表示リスト生成モジュール1507は、ホストコンピュータ1802に常駐し、描画モジュール1511は、目標装置1513に組み込まれる。この場合、ホストプロセッサ1802は、目標装置1513に表示リストを送信し、目標装置1513は、表示リストを描画し、印刷のために画素データを生成する。
描画モジュール1511は、以下に更に詳細に説明される複数の描画方法を使用する。モジュール1511は、以下に説明する条件に応じて、表示リストの個別の部分を、個別の描画タスクに割り当てる。ここで、個々の描画タスクは、異なる描画方法を使用する。描画モジュール1511は、描画タスクキューを使用して、並行して実行される描画タスクスレッドをキューに登録してもよい。使用される描画方法は、第3.0節で説明される画素順次描画方法(PSRM)、第4.0節で説明されるペインターズアルゴリズム描画方法(PARM)、第6.0節で説明される改良版PARM(又は、IPARM)、及び第8.0節で説明される排他的PSRM(XPSRM)を含む。説明される描画方法の異なる組合せを使用する3つの構成について説明する。
2.0 データ構造
表示リスト生成モジュール1507は、GDI層1503からオブジェクトを受信すると、そのオブジェクトを3つの構成要素に分解する:
− オブジェクトの外形を説明する輪郭
− ページへのオブジェクトの描画方法を説明する描画情報
− オブジェクトの色を説明する塗りつぶし情報
オブジェクトの外形は、上向き輪郭及び下向き輪郭に分割され、各輪郭は、単純にページの下方に進む。輪郭は、走査線に沿って走査される時に輪郭がオブジェクトを有効化するか無効化するかにより、上向き方向又は下向き方向が割り当てられる。
輪郭は、データ構造としてソフトウェア内に実現される。データ構造は、以下を含む:
− 輪郭の外形を説明する点
− 現在の走査線上にある輪郭のx位置
− 輪郭の方向
描画情報又はレベルデータは、レベルデータ構造に格納される。データ構造は、通常、以下を含む:
− 優先度と呼ばれるz順の整数
− 奇数−偶数又はノンゼロワインディング等の塗りつぶし規則
− オブジェクトに関する情報(オブジェクトは、テキストオブジェクトか、グラフィックオブジェクトか、又は画像オブジェクトか等)
− 合成演算子
− ビットマップ、タイル、又は単色等の描かれる塗りつぶしの種類
− このオブジェクトをクリッピングするクリップ数を示すクリップ総数
塗りつぶし情報、又は塗りつぶしデータは、塗りつぶしデータ構造と呼ばれるデータ構造に格納される。データ構造の内容は、塗りつぶしの種類により異なる。ビットマップの塗りつぶしの場合、通常、データ構造は以下を含む:
− ページ上のビットマップの原点の位置x及びy
− 画素単位でのビットマップの幅及び高さ
− ページから画像への変換マトリックス
− 画像データの形式を示す値(例えば、32bpp単位のRGBA、又は24bpp単位のBGR等)
− 画像データに対するポインタ
フラット塗りつぶしの場合、データ構造は、通常、単一の32ビット整数−赤色、緑色、青色及びαチャネルの各々に対し8ビット−を含む。
一般に、各輪郭データ構造は、レベルデータ構造に対するポインタを有する。また、各レベルデータ構造は、塗りつぶしデータ構造に対するポインタを有する。
図1Aは、不透明なオレンジ色の文字「O」である第1のオブジェクトO1、及び半透明な赤色の矩形であり第1のオブジェクト上にある第2のオブジェクトO2を有する画像を示す。
図1Bは、オブジェクトO1及びO2の輪郭を示す。オブジェクトO1は、以下を有する:
− 輪郭=E1(下向き),E2(上向き),E3(上向き),E4(下向き)
− レベルデータ={塗りつぶし規則=ノンゼロワインディング,オブジェクトの種類=テキスト,優先度=1}
− 塗りつぶしデータ=RGBA=255,128,0,255(不透明なオレンジ色)
オブジェクトO2は、以下を有する:
− 輪郭=E5(下向き)、E6(上向き)
− レベルデータ={塗りつぶし規則=ノンゼロワインディング,オブジェクトの種類=グラフィック、優先度=2}
− 塗りつぶしデータ=RGBA=255,0,0,128(半透明な赤色)
図1Cは、図1Aの画像に対する輪郭リスト50を示す。輪郭E1〜E4は、オブジェクトO1の描画情報を含むレベルデータ52を指し示し、輪郭E5及びE6は、オブジェクトO2のレベルデータ56を指し示す。レベルデータ52は、オブジェクトO1の塗りつぶし情報を含む塗りつぶしデータ54を指し示し、レベルデータ56は、オブジェクトO2の塗りつぶし情報を含む塗りつぶしデータ58を指し示す。
説明した方法で構造化されたデータを使用して、表示リストが、輪郭のリストから描画される。これを、輪郭表示リストと呼ぶ。
図1Aの例において、表示リストは、輪郭リスト{E1,E2,E3,E4,E5,E6}である。
表示リストは、まず、y座標の昇順にソートされ、y座標が等しい場合、x座標の昇順にソートされる。図1Aに対するソート済み輪郭リストは、輪郭リスト{E1,E2,E5,E6,E3,E4}となる。
3.0 画素順次描画方法(PSRM)
描画モジュール1511により使用される画素順次描画方法は、ラスタの走査順に、画素毎に色及び不透明度を生成する。走査され処理されている任意の画素において、画素順次描画方法は、走査中の画素において有効な露出されたオブジェクトのみを合成する。画素順次描画方法は、画素がオブジェクトの境界内にある場合、そのオブジェクトが走査中の画素において有効であると判定する。描画装置1505は、そのオブジェクトに関連付けられた塗りつぶしカウンタを参照することにより、これを達成する。塗りつぶしカウンタは、画素がオブジェクトの境界内にあるか否かを示す実行塗りつぶし数を保持する。描画装置1505がオブジェクトに関連付けられた輪郭に遭遇すると、輪郭の方向によって、塗りつぶし数を増分又は減分させる。描画装置1505は、塗りつぶし数及び所定の塗りつぶし規則に従って、現在の画素がオブジェクトの境界内にあるか否かを判定できる。PSRMを使用する際、描画装置1505は、有効オブジェクトがそのオブジェクトに関連付けられたフラグに関して露出されるか否かを判定する。オブジェクトに関連付けられたフラグは、オブジェクトが優先度の低いオブジェクトを掩蔽するか否かを示す。すなわち、このフラグは、オブジェクトが部分的に透明であるか否かを示し、透明である場合、優先度の低い有効オブジェクトは、現在の画素の色及び不透明度に影響を与える。透明ではない場合、フラグは、オブジェクトが不透明であることを示し、この場合、優先度の低い有効オブジェクトは、走査中の画素の色及び不透明度に対して影響を与えることはない。オブジェクトが最上部の有効オブジェクトである場合、又はそのオブジェクト上にある全ての有効オブジェクトの対応するフラグが透明に設定されている場合、画素順次描画方法は、そのオブジェクトが露出していると判定する。描画装置1505は、走査中の画素に対する色及び不透明度を判定し出力するために、これらの露出した有効オブジェクトを合成する。
3.1 PSRM:有効輪郭の判定
図2は、画素順次描画方法において、有効輪郭が主輪郭リストから判定される方法を示すフローチャートである。主輪郭リストは、描画されるべき全ての輪郭を含み、有効輪郭リストは、現在の走査線と交差する輪郭の一時的なリストである。
ステップ251は、変数CurYをゼロに設定し、有効輪郭リストを空集合に設定する初期化ステップである。ステップ253において、描画装置1511は、主輪郭リストから輪郭を読み出す。ステップ255において、描画装置1511は、主輪郭リスト中の全ての輪郭が処理されたか否か、又は注目輪郭のyの値Edge.yが変数CurYに格納された値よりも大きいか否かをチェックする。
これら条件のいずれも満足されない場合(ステップ255:NO)、ステップ259に進み、現在の輪郭を有効輪郭リストにマージする。現在の輪郭リスト中の輪郭は、xの値の昇順、すなわち走査線に沿った順で順序付けされる。現在の輪郭が有効輪郭リストに追加されると、ステップ253に戻り、主輪郭リストから次の輪郭を処理する。
ステップ255の条件のいずれかが満足される場合(ステップ255:YES)、ステップ257において、描画装置1511は、描画する走査線の数Nを判定する。主輪郭リスト中の全ての輪郭が処理された場合、ページ上に残る走査線の数、すなわちページの高さと現在の走査線との差分をNに設定する:
N = PageHeight − CurY
しかし、まだ処理すべき輪郭がある場合、CurYと注目輪郭が開始する走査線との間の走査線の数をNに設定する:
N = Edge.Y − CurY
走査線の数が判定されると、描画装置1511は、N本の走査線に対する有効輪郭リストを描画し、現在の走査線を更新する:
CurY = CurY + N
画素順次描画方法におけるN本の走査線の描画に関しては、図3Aを参照して更に説明する。
次に、ステップ261において、描画装置1511は、更新されたCurYがページの高さに等しいか否かをチェックする。等しい場合、有効輪郭を判定する処理は、ステップ263で終了する。しかし、CurYがページの高さよりも小さい場合(ステップ261:NO)、ステップ253に戻り、主輪郭リストから次の輪郭を処理する。
表Aは、図2の方法が図1A〜図1Cの例に適用される様子を示す。表は、行毎に、左から右に読まれる。各行は、ステップ253から開始するループの繰り返しを表現する。表現の簡単化のため、ステップ251は省略される。空の欄は、ステップが実行されないことを示す。ステップ255は、現在のループの繰り返しにおいて、ステップ257とステップ259のどちらが実行されるかを判定する。
ループの最初の繰り返しにおいて、ステップ253は、主輪郭リストから輪郭E1を読み出す。CurYはゼロに初期化されるため、E1が開始する走査線E1.YはCurYよりも大きく、従って、ステップ257が実行される。ページの開始とE1.Yとの間の走査線が描画され、CurYは更新される。
ループの最後の繰り返しにおいて、全ての輪郭が処理され、ページの高さとCurYとの差分をNに設定する。残りの走査線は描画され、CurYは更新される。ステップ251は、CurYがページの高さに等しいと判定し、ループが終了する。
3.2 PSRM:走査線の描画
図3Aのフローチャートは、走査線が画素順次描画方法で描画される方法を示す。図3Aの処理は、図2のステップ257により呼び出される。
初期化ステップ351において、描画装置1511は、索引CurXにゼロを設定し、且つ有効オブジェクトリスト及び一時的な有効輪郭リスト(TempAEL)に空集合を設定する。ステップ353において、走査線の最後まで、すなわちCurXがページの幅に等しくなるまで継続するループを開始する。ステップ353において、描画装置1511は、有効輪郭リスト(AEL)から輪郭「Edge」を読み出す。その後、ステップ355において、描画装置1511は、有効輪郭リスト中の全ての輪郭が処理されたか、又は現在の走査線と注目輪郭との交点Edge.Xが索引CurXよりも大きいかをチェックする。これら条件のいずれかが満足される場合、ステップ357に進む。条件が満足されない(ステップ355:NO)場合、ステップ359に進む。
ステップ359において、注目輪郭は、AELから除去され、注目輪郭により指し示されるオブジェクトは、適切に有効化又は無効化される。オブジェクトの有効化/無効化は、そのオブジェクトに関連付けられた塗りつぶし規則に基づく。オブジェクトは、有効オブジェクトリスト(AOL)に追加されるか、又はAOLから除去される。有効化/無効化及びクリッピングされたオブジェクトに対するAOL更新ステップについて、図7を参照して更に詳細に説明する。
次のステップ360において、Edge.Xは、注目輪郭と次の走査線との交点を示すように更新される。次に、ステップ348において、注目輪郭は、現在の走査線上で無効となるかが試験される。無効とならない場合、ステップ349に進む。ステップ349において、輪郭は、リストのxの昇順を維持する正確な位置にある一時的なAEL、すなわちTempAELに追加される。無効となる場合(ステップ348:Yes)、又は、次のステップ349の後、ステップ353に戻り、有効輪郭リストから次の輪郭を読み出す。
ステップ357において、描画する画素数Nが判定される。有効輪郭リスト中の全ての輪郭がすでに処理された場合、ページの幅と索引CurXとの差分をNに設定する。まだ処理されていない場合、(Edge.X − CurX)、すなわち現在の索引と注目有効輪郭の位置との差分をNに設定する。
図4を参照して更に詳細に説明されるように、ステップ361において、有効オブジェクトリストは、N画素に対して描画される。
ステップ363において、索引CurXを(CurX + N)に更新し、ステップ365で、CurXがページの幅に等しいか否かをチェックする。等しい場合、ステップ366において、一時的な輪郭リストの内容は、有効輪郭リストにコピーされる。その後、ループはステップ351に戻り、次の走査線を描画するか、又はステップ367から図2のステップ257に戻る。CurXがページの幅に到達していない場合(ステップ365:NO)、ステップ353に戻る。
表Bは、有効輪郭リスト={E5,E1,E3,E4,E2,E6}を有する図1Aの画像の走査線、すなわち文字「O」であるO1の中央の穴部を通る任意の走査線に適用される図3Aの方法を示す。
前と同様に、表の各行は、ステップ353から開始するループの繰り返しを示す。検査ステップ355は、パス359/360又はパス357/361/363のどちらが後続するかを判定する。空の欄は、現在のループの繰り返しにおいて、ステップが実行されないことを示す。終了ステップ365及び367は、明示的に示さない。
最初、CurXはゼロであり、有効オブジェクトリスト(AOL)は空である。
3.3 PSRM:走査線上に対する画素の描画
図4のフローチャートは、走査線上に画素を描画する方法を示し、この方法において、最上部の不透明なオブジェクト及び最上部の不透明なオブジェクトの上にある任意の透明なオブジェクトのみが合成され、出力される。図4のステップは、図3Aのステップ361により呼び出される。
ステップ451において、描画装置1511は、有効オブジェクトリスト(AOL)が空か否かをチェックする。空である場合、描画装置1511は、N画素に対して白色(ページ背景)を出力し、ステップ470において、フレームストアのビット深さまで中間調にする(必要な場合)。この処理は、ステップ471で終了し、ステップ363に戻る。
有効オブジェクトリストが空でない場合(ステップ451:NO)、ステップ453に進み、有効オブジェクトリストが、優先度の降順にソートされる。有効オブジェクトリスト中のエントリ数は、NumObjectsである。
ステップ457において、描画装置1511は、有効オブジェクトリスト中の最初のオブジェクトが不透明であるか否かをチェックする。不透明である場合、ステップ459は、AOL[0]のオブジェクトの塗りつぶしをフレームストアに出力し、ステップ470において、フレームストアのビット深さまで中間調にする(必要な場合)。その後、処理は、ステップ471で終了する。この場合、最上部のオブジェクトが不透明であるため、有効オブジェクトリスト中の他のオブジェクトを考慮する必要はない。
最上部のオブジェクトが不透明でない場合(ステップ457:NO)、ステップ461において、描画装置は、索引i = 1を設定する。ステップ463において、有効オブジェクトリストのi番目のエントリのオブジェクトをobjに設定する。ステップ465は、objが不透明であるか、又は索引iが有効オブジェクトリスト中のオブジェクト総数(NumObjects − 1)に等しいかをチェックする。
いずれかの条件が満足される場合(ステップ465:YES)、ステップ469において、描画装置1511は、AOL[0]とAOL[i]との間の全てのオブジェクトの合成結果をフレームストアに出力し、ステップ470において、フレームストアのビット深さまで中間調にする(必要な場合)。その後、処理は、ステップ471で終了する。
ステップ465において双方の条件が満足されない場合(ステップ465:NO)、ステップ467に進み、索引を増分する:i = i + 1。ステップ463に戻り、有効オブジェクトリスト中の次のオブジェクトを考慮する。
図4の処理の応用例として、画素E1.XとE3.Xとの間の走査線E3.Y(すなわち、輪郭E3が開始する走査線)における図1AのオブジェクトO1の左半分の画素ランを考慮する。この画素ランに対し、双方のオブジェクトは有効であり、有効オブジェクトリストは、AOL = {O1, O2}となる。
ステップ451において、AOLは、空であるかがチェックされる。AOLが2つのエントリを含むため、ステップ453に進む。AOLは、優先度の降順にソートされ、AOL = {O2, O1}となる。NumOBjectsの値は2である。ステップ457で、リストの第1のエントリが不透明であるか否かをチェックする。O2が不透明でないため、ステップ461に進む。カウンタiは、ステップ461で1に初期化される。ステップ463において、位置AOL[i]のオブジェクト、この場合はO1を変数objに設定する。ステップ465において、O1が不透明であるため、ステップ469に進む。オブジェクトO2及びO1の塗りつぶしは共に合成され、その結果がフレームストアに描かれる。
3.4 PSRM内のクリッピング
MicrosoftTMGDI等のいくつかのシステムにおいて、クリッピング領域は、複数のオブジェクトを伴い、各オブジェクトは、対応するクリッピング領域により規定される範囲内にのみ出力される。
このようなシステムにおいて、各オブジェクトは、通常、対応するクリッピング領域によりクリッピングされたフレームストアに順次描画される。いくつかのシステムにおいて、複数のクリッピング領域が有効となる。従って、1つ以上のクリッピング領域によりクリッピングされたフレームストアに、オブジェクトを描画できる。
画素順次描画方法(PSRM)において、クリップは、通常、輪郭の集合及びレベルデータ構造の「オブジェクトリスト」により表現される。ここで、リスト中の第1のエントリは、クリップ自体について記述するレベルデータ構造である。レベルデータ構造の残りのエントリは、クリッピングされるオブジェクトについて記述する。
クリッピングされる画像の例を図6Aに示す。図6Aの3つのオブジェクトは、三角形状のクリップ650、上下反転した三角形状のクリップ652及び矩形654である。ここで、矩形654は、クリップ650及びクリップ652によりクリッピングされる。図6Bは、図6Aのオブジェクトを描画した結果である六角形656を示す。
図6Cは、オブジェクト650〜654の輪郭を示す。クリップ650は、左側の輪郭E1及び右側の輪郭E2を有する。クリップ652は、左側の輪郭E3及び右側の輪郭E4を有し、矩形654は、左側の輪郭E5及び右側の輪郭E6により規定される。バウンディングボックス658は、オブジェクト650、652、654の外部の点を規定する。走査線S662は、図6Aの例に対する図7の方法の応用を示すために使用される。
図6Dは、図6Aの画像の表示リスト660のメモリにおける好適な構成を示す。図6Dにおいて、各輪郭は、対応するオブジェクトの描画情報を含むレベルデータを指し示す。輪郭E1及びE2の場合、レベルデータL1であり、輪郭E3及びE4の場合、レベルデータL2であり、更に、輪郭E5及びE6の場合、レベルデータL3である。オブジェクト650及び652は、オブジェクト654のレベルデータL3を指し示すレベルデータL1及びL2を各々有するクリッピングオブジェクトである。次に、オブジェクト654のレベルデータL3は、オブジェクト654の塗りつぶし情報を含む塗りつぶしデータF3を指し示す。
レベルデータ構造は、オブジェクトに関連付けられたクリップ総数を含み、これは、関連付けられたオブジェクトをクリッピングするクリッピング領域の数を示す。この例において、オブジェクト654は、L3.ClipCount = 2を有し、これは、オブジェクト654が2つのクリップによりクリッピングされることを示す。
図7は、有効オブジェクトリスト(AOL)の管理について示す。図7のステップは、ステップ359により呼び出される。図7の入力は、現在の輪郭により指し示される有効オブジェクトリスト及びレベルデータ構造のリストである。図7の出力は、有効化されたオブジェクトの追加、又は無効化されたオブジェクトの除去により変更された可能性のある有効オブジェクトリストである。
初期化ステップ751において、カウンタiはゼロに初期化され、変数clip_deltaもゼロに初期化される。ステップ753において、描画装置1511は、現在の輪郭に関連付けられたオブジェクトリストOL中のi番目のオブジェクトであるOL[i]を、変数objに設定する。ステップ755において、描画装置1511は、objがクリップであるか否かをチェックする。クリップである場合、ステップ757において、描画装置1511は、クリップが有効になったか否かをチェックする。クリップが有効になった場合、ステップ761において、(−1)を変数clip_deltaに設定する。クリップが有効になっていない場合、ステップ759において、1をclip_deltaに設定する。
ステップ759又はステップ761のいずれかのステップにおいて、clip_deltaが設定された後、ステップ763に進み、カウンタiを1増分する。ステップ765は、現在の輪郭と関連付けられた全てのオブジェクトが処理されたか否かをチェックする。処理された場合、図7の処理は終了し、ステップ360に戻る。現在の輪郭と関連付けられた別のオブジェクトが存在する場合(ステップ765:NO)、ステップ753に戻り、次のオブジェクトを処理する。
注目オブジェクトがクリップでない場合(ステップ755:NO)、ステップ768において、描画装置1511は、現在のオブジェクトのクリップ総数をclip_deltaの値分増分する:
Obj.ClipCount = obj.ClipCount + clip_delta
次に、ステップ769において、描画装置1511は、オブジェクトobjが有効になり、且つobjのクリップ総数がゼロであるかをチェックする。双方の条件が満足される場合、ステップ771において、描画装置1511はobjを有効オブジェクトリストに追加する(objが有効オブジェクトリストに存在しない場合)。
ステップ769において双方の条件が満足されない場合(ステップ769:NO)、オブジェクトobjが有効オブジェクトリストに存在すれば、描画装置1511は、有効オブジェクトリストからobjを除去する。
ステップ771又はステップ773の後、ステップ763に進み、上述のように、現在の輪郭に関連付けられたオブジェクトが他に存在するか否かを判定する。
例のように、表Cは、図6Cに示される走査線662の最初の3つの輪郭に対して、図7のステップが動作する様子を示す。
4.0 ペインターズアルゴリズム描画方法(PARM)
ペインターズアルゴリズムを使用する描画方法には、上述の画素順次描画方法との類似点がある。PARM及びPSRMは共に、走査線毎にxの昇順で追跡・維持される輪郭を必要とする。PARMは、図2、図3B及び図7の手順を使用して、実現されてもよい。
上述のように、図2は、有効輪郭リストを判定する方法である。図2のステップを、PSRM及びPARMの双方に適用する。
ペインターズアルゴリズム描画方法の場合、図2のステップ257が図3Bを呼び出し、N本の走査線のランに対する有効輪郭リストを描画する。図3Bの処理は、図3Aの処理に類似するが、PARMにおいて、1つのオブジェクトのみが有効であり、従って、有効オブジェクトリストを処理する必要がないという点で異なる。初期化ステップ351は、図3Bにおいて、ステップ371に置換される。ステップ371は、NULLの集合を有効オブジェクトリストに設定するのではなく、NULLを有効オブジェクトに設定する。図3Aのステップ361(これは、図4のステップを呼び出す)は、図3Bにおいて、ステップ369に置換される。ステップ369において、PARMを実現する際、描画装置1511は、有効である(単一の)オブジェクトの塗りつぶしを使用して、N画素を描画する。
図3Bのステップ359aは、有効オブジェクトリストを更新する必要がないことを除き、図3Aのステップ359に類似する。
オブジェクトを有効化/無効化する時、ステップ771及びステップ773が更に単純になることを除いて、図7の方法が使用される。ステップ771及びステップ773において、オブジェクトの有効フラグが、設定又はクリアされるだけである。
4.1 PSRMとPARMとの相違点
ペインターズアルゴリズム描画方法(PARM)と上述の画素順次描画方法とにおけるいくつかの相違点の概要を、以下に示す:
(a) PARMにおいて、オブジェクトは、通常、GDI層1503から受信されると即時に描画されるが、PSRMは、最後のオブジェクトが受信されるまで描画を開始しない。
(b) PARMの表示リストは、1つのオブジェクトのみを有するが、PSRMの表示リストには、描画されるべき全てのオブジェクトが存在する。
(c) PARMにおいて、オブジェクトが有効である画素ランのみが、フレームストアに描画されるが、PSRMは、通常、有効なオブジェクトがない場合、白色(ページの色)を描画する。
(d) PARMにおいて、合成は、オブジェクトとフレームストアとの間でのみ実行されるが、PSRMは、影響を与える全ての有効オブジェクトを画素ラン上に合成し、その結果をフレームストアに描く。
(e) PARMにおいて、クリッピング領域は、関連付けられたオブジェクト毎に処理されるが、PSRMは、1度に全てのオブジェクトをクリッピングする。
クリップ領域C1によりクリッピングされた3つのオブジェクトを有する画像において、PARMは、クリップC1を3回、すなわち3つの各オブジェクトに対し1回ずつ処理する。PSRMにおいて、クリップC1は、表示リストに1度だけ追加される。クリップC1は、3つの各オブジェクトを指し示すレベルリストを有する。各オブジェクトは、クリップ総数1を有し、描画中にオブジェクトがクリッピングされることを保証する。
PARMにおいて、フレームストアが、合成を要求するオブジェクトのビット深さよりも短いビット深さにおける画素値を保持する場合、合成は問題となる。例えば、フレームストアが1bpp(bit per pixel)単位でCMYK中間調の画素値を含み、且つオブジェクトが32bpp単位でRGBA画素値の上に合成されると考えられる場合、合成する際に情報の損失が起こるだろう。
5.0 第1の構成:PSRM及びPARMを使用する描画
第1の描画構成を、図14を参照して説明する。第1の構成は、混成方法であり、描画装置1511は、上述のペインターズアルゴリズム描画方法及び画素順次描画方法の双方を使用する。
図15から分かるように、表示リスト生成モジュール1507は、輪郭表示リスト1509を生成する。このリストにおいて、各輪郭は、その輪郭が属するオブジェクトを示すオブジェクト識別子edge.IDが割り当てられる。
オブジェクトは、合成演算子を有する場合、合成を要求する。ここで、合成演算子は、何らかの方法により、オブジェクトの画素がオブジェクトの下方に位置する画素と組み合わされることを必要とする。オブジェクトが表示リストに追加されると、表示リスト生成モジュール1507は、合成を要求する最終オブジェクトを追跡する。これを、最終合成オブジェクト(last−compositing−object)と呼ぶ。全てのオブジェクトが表示リストに追加されると、描画モジュール1511は描画を開始する。
描画タスクに関して、図14の方法を説明する。描画タスク(RT)は、実行されると、特定の描画方法に従って、輪郭表示リストの一部分を描画するタスクである。描画タスクは、主表示リストからの輪郭の集合が割り当てられる。輪郭は、描画タスク自体のローカル主輪郭リスト及びローカル有効輪郭リストに格納される。PARMを利用する描画タスクは、PART(Painter’s Algorithm Render Task:ペインターズアルゴリズム描画タスク)と呼ばれる。PSRMを利用する描画タスクは、PSRT(Pixel−Sequential Render Task:画素順次描画タスク)と呼ばれる。
第1の構成において、描画モジュール1511は、表示リスト中の第1のオブジェクトと最終合成オブジェクトとの間の全ての輪郭を、上述のPSRMを利用する画素順次描画タスク(PSRT)に割り当てる。描画タスクは、実行され、白色領域を含み、輪郭の集合をフレームストアに描画する。
表示リスト中の残りのオブジェクト毎に、そのオブジェクトの輪郭が、上述のPARMを利用するペインターズアルゴリズム描画タスク(PART)に割り当てられる。描画タスクは、実行され、白色領域を除いて、輪郭の集合をフレームストア上に描画する。
従って、画素順次描画方法は、合成を要求する任意のオブジェクトに適用され、残りの(不透明な)オブジェクトは、単純にフレームストア上に描画される。
図14を参照すると、ステップ1401において、描画モジュール1511は、last−compositing−objectがゼロ以上であるか否かをチェックする。ゼロ以上である場合(ステップ1401:YES)、ステップ1403において、描画モジュール1511は、edge.ID <= last_compositing_objectである全ての輪郭を、画素順次描画タスクに割り当てる。その後、ステップ1405において、描画タスクは、図2、図3A、図4及び図7において説明される方法のステップを使用して実行される。
次に、ステップ1407において、(last−compositing−object + 1)を索引iに設定する。ステップ1409において、描画装置は、iがNより小さいか否かをチェックする。iがNより小さくない場合(ステップ1409:NO)、処理すべきオブジェクトは存在せず、手順はステップ1411で終了する。しかし、iがNより小さい場合、ステップ1413に進み、iと等しいedge.IDを有する全ての輪郭を、ペインターズアルゴリズム描画タスクに割り当てる。その後、ステップ1415において、描画タスクは、図2、図3B及び図7のステップを使用して実行される。
描画タスクが完了した後、ステップ1417は、索引iを1増分し、ステップ1409に戻り、処理すべきオブジェクトがあるか否かをチェックする。
last−compositing−objectが0以上でない場合(ステップ1401:NO)、ステップ1407に直接進み、ステップ1403及びステップ1405をスキップする。この場合、画素順次描画が必要とされず、表示リスト中の全てのオブジェクトは、PARTを使用して描画されてもよい。
図14を参照して、以下の擬似コードで、第1の構成の描画方法の概要を示す:
IF last−compositing−object >= 0
Assign all edges with (edge.ID <= last−cocupositing−object) to PSRT.
Execute render task using Fig. 2 (PSRM).
ENDIF
SET i = last−compositing−object + 1
WHILE i < N
Assign all edges with (edge.ID = i) to PART.
Execute render task.
i = i + 1
ENDWHILE
1bppの中間調単色フレームストア上に36,000個のオブジェクトのページを描画するために、この方法を使用すると、last−compositing−objectが5の場合、256MBのRAMを有するPentium(登録商標) III 667MHz上における描画時間は、標準PSRMと比較して、6秒から3秒の半分になった。
描画モジュール1511が複数のプロセッサを有する装置上で実現される場合、各PARTが個別のスレッドで描画されることは、当業者には明らかであろう。表示リスト中の次の注目オブジェクトが実行中のPARTにオーバーラップしない場合、新しいスレッドが作成され、新しい注目オブジェクトを描画する。この処理は、全てのオブジェクトが描画されるまで、又はオブジェクトが実行中PARTにオーバーラップするまで継続する。
6.0 変形ペインターズアルゴリズム(IPARM)
上述のPARMを改良する2つの方法が、提案される。第1の変形は、オーバーラップしない不透明な連続オブジェクトの処理に関し、第2の変形は、複数の連続オブジェクトのクリッピングに関する。
6.1 オーバーラップしない不透明な連続オブジェクト
ペインターズアルゴリズム描画方法は、実際に、多くのオブジェクトを一度に処理でき、バウンディングボックスがオーバーラップしないオブジェクトを提供する。バウンディングボックスがオーバーラップしない限り、輪郭ソート動作は、各オブジェクトの輪郭内でのみ発生する。
例えば、図5Aは、オブジェクト自体はオーバーラップしないが、オーバーラップするバウンディングボックスを有する2つのオブジェクトを示す。オブジェクト802は、バウンディングボックス803を有する多角形である。オブジェクト802は、輪郭E1、E2、E3、E4、E5、E6及びE7で形成され、輪郭E3〜E6は、のこぎり歯状になっている。
オブジェクト804は、バウンディングボックス805を有する多角形である。オブジェクト804は、一連の輪郭E8、E9、E10、E11及びE12により形成される。輪郭E11及びE12は、のこぎり歯状にされ、輪郭E8及びE12により形成されるピークは、輪郭E3及びE4により形成されるくぼみ部分に位置する。オブジェクト804の輪郭E11及びE10により形成されるピークは、オブジェクト802の輪郭E5及びE6により形成されるくぼみ部分に位置する。オブジェクト804は、オブジェクト802に接触又は交差しないが、バウンディングボックス805は、バウンディングボックス803にオーバーラップする。
従って、オブジェクト802及び804を共に描画する際、走査線807において、オブジェクト804の輪郭E8、E12、E11及びE10が有効輪郭リスト{E2,E3,E4,E5,E6,E7}にマージされ、輪郭リスト{E2,E3,E8,E12,E4,E5,E11,E10,E6,E7}が得られるべきであることが分かる。
図5Bにおいて、オブジェクト804は、バウンディングボックス803及び805がオーバーラップしないようにオブジェクト802から離間された。輪郭E8、E12、E11、E10が輪郭E2、E3、E4、E5、E6、E7にマージされることはない。
バウンディングボックスがオーバーラップしない2つのオブジェクトの場合、PARTに割り当てられたいくつかのオブジェクトを描画する速度は、少なくとも、各オブジェクトを個別に描画する速度と同等であることが分かった。改良版PARM(又は、IPARM)において、バウンディングボックスがオーバーラップしない不透明な連続オブジェクト群の各々は、個別のPARTに割り当てられることが好ましい。
6.2 複数の連続オブジェクトのクリッピング
複数の連続オブジェクトが、1つ以上のクリッピング領域によりクリッピングされる場合、各オブジェクトは、典型的なPARMでクリッピングされ描画される。クリッピング領域が複雑なパスである場合、これは、非効率的である可能性がある。PARTが、PSRMを利用して、クリッピング領域によりクリッピングされるオブジェクト群を描画すると、性能は向上される。これは、クリップが1度だけ処理されることを保証する。
6.3 IPARMの手順
変形されたPARMは、図2で説明された有効輪郭リスト判定方法、及び図3Aを参照して説明された走査線の描画方法を利用する。また、IPARMは、図7を参照して説明されたオブジェクトの有効化を使用する。
ステップ361において、IPARMは、N画素に対して有効オブジェクトリストを描画する。IPARMに対するそのような描画が、図8に示される。図8の方法に対する入力は、有効オブジェクトの集合である。ステップ851において、描画装置は、有効オブジェクトリスト(AOL)が空であるか否かをチェックする。空である場合、手順は、ステップ857で終了し、図3Aに戻る。これは、IPARMが白色領域を描画しないためである。
AOLが空でない場合(ステップ851:NO)、ステップ853において、有効オブジェクトリストは、優先度の値の降順にソートされる。リスト中の第1のエントリは、最高優先度の有効オブジェクトを有する。これは、不透明なオブジェクトのみが、改良版PARMに送信されるからである。ステップ855に進み、AOL[0]のオブジェクトの塗りつぶしを、フレームストアに出力する。ルーチンは、ステップ857で終了する。
改良版PARM(IPARM)に基づく描画タスク(RT)は、IPARTと呼ばれる。IPARTは、以下の種類のデータを描画するために使用されてもよい:
1. オーバーラップしない不透明な連続オブジェクト。
2. クリップの集合とそのクリップによりクリッピングされる全ての不透明なオブジェクト。これは、クリッピングされる全てのオブジェクトが不透明であることを規定する。
7.0 第2の構成:PSRM及びIPARMを使用する描画
描画モジュール1511により使用される第2の描画構成は、上述の画素順次描画方法を第6.0節のIPARMと組み合わせる。第1のオブジェクトと最終合成オブジェクトとの間の全てのオブジェクトは、第1の構成のように、PSRMを使用して描画される。後続する全てのオブジェクトは、不透明であることが保証されるため、改良版PARM(IPARM)による適切な描画候補となる。第2の構成において、オーバーラップしない連続オブジェクトは、IPARTによる描画のためにグループ化される。
7.1 第2の構成:オブジェクトリスト
IPARMの好適な実現において、オブジェクトリストと呼ばれる新規リストが維持される。各オブジェクトが表示リスト生成モジュール1507により処理され、輪郭表示リストに追加されると、エントリは、オブジェクトリストに追加される。オブジェクトリストの各エントリは、以下を含む:
− オブジェクトを記述する輪郭リストを参照する開始及び終了の索引
− オブジェクトのバウンディングボックス
− オブジェクトが合成を要求するかを示すフラグ
オブジェクトの集合が1つ以上のクリップによりクリッピングされる場合、第1のクリップとクリッピングされる最終オブジェクトとの間の輪郭の完全な集合は、単一のオブジェクトであると考えられる。この場合、バウンディングボックスは、オブジェクトの集合及び1つ以上のクリップの全てのバウンディングボックスの和集合である。
例えば、図6Aのクリップ650、クリップ652及び矩形654の主輪郭リスト{E1,E2,E3,E4,E5,E6}は、単一のオブジェクトであると考えられる。
図5Aのオブジェクト802及び804において、主輪郭リストは、{E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12}であり、オブジェクトは、以下の2つのエントリを有する:
・ エントリ1:開始の索引 = 0(輪郭E1を参照)、終了の索引 = 6(輪郭E6を参照)、バウンディングボックス = BB1(すなわち、ボックス803)、合成フラグ = FALSE
・ エントリ2:開始の索引 = 7、終了の索引 = 11、バウンディングボックス = BB2(すなわち、ボックス805)、合成フラグ = FALSE
7.2 第2の構成:表示リスト生成
図9(a)及び図9(b)は、第2の構成で使用する表示リスト及び対応するオブジェクトリストの生成を示す。この方法は、オブジェクトが1つのクリップによりクリッピングされると仮定する。クリップは、描画されるべきオブジェクトのプロパティであると考えられる。これは、MS Windows(登録商標) GDI等のシステムにおいて共通である。図9(a)及び図9(b)のステップは、表示リスト生成モジュール1507により実行される。
ステップ901において、モジュール1507は、NULLを現在のクリップCurClipに設定し、last−compositing−objectを−1に初期化する。カウンタiは、ゼロに設定され、オブジェクトリスト中の第1のエントリOL[0]に、以下の値が代入される:
OL[0].Start = 0
ステップ903に進み、処理すべき別のオブジェクトが存在するか否かをチェックする。ページに対して処理すべきオブジェクトが存在しない場合(ステップ903:NO)、ステップ919で終了する。存在する場合(ステップ903:YES)、ステップ905に進む。ステップ905において、オブジェクトのクリップ(存在する場合)は、輪郭及びレベルデータに分解され、オブジェクトは、輪郭、レベルデータ及び塗りつぶしデータに分解される。モジュール1507は、輪郭リストに輪郭を追加する。オブジェクトが合成を要求する場合、TRUEを変数「composites」に設定し、カウンタiをlast−compositing−objectに設定する。オブジェクトが合成を要求しない場合、FALSEを変数「composites」に設定する。
次に、ステップ907において、モジュール1507は、オブジェクトがクリップを有するか否かをチェックする。オブジェクトが付随するクリップを有さない場合、ステップ909に進み、描かれるべきオブジェクトのバウンディングボックスを変数「bbox」に設定する。ステップ917において、オブジェクトリストのi番目のエントリOL[i]に、以下の値が代入される:
OL[i].End = 現在の輪郭リストのサイズ - 1
OL[i].BBox = 変数「bbox」
OL[i].Composites = 変数「composites」
カウンタiは、1増分され、オブジェクトリストのi番目のエントリOL[i]に、以下の値が代入される:
OL[i].Start = 現在の輪郭リストのサイズ
ステップ917の後、ステップ903に戻り、処理すべき別のオブジェクトが存在するか否かを判定する。
ステップ907において、オブジェクトが付随するクリップを有する場合(ステップ907:YES)、ステップ911に進む。ステップ911において、付随するクリップが、変数「CurClip」と比較される。これらのクリップが等しい場合(ステップ911:YES)、ステップ915に進む。
ステップ915において、オブジェクトリストの「i − 1」番目のエントリOL[i−1]が、以下の値で更新される:
OL[i−1].End = 現在の輪郭リストのサイズ − 1
OL[i−1].BBox = OL[i−1].BBox及びオブジェクトのバウンディングボックスObj.BoundingBoxの合成バウンディングボックス
OL[i−1].Composites = OL[i−1].Compositesの値を「composites」の値と、ビット単位に論理和をとった結果。これは、現在のオブジェクトが合成を要求しない場合でも、OL[i−1].CompositesがTRUEのままであることを保証する。
モジュール1507は、オブジェクトリストのi番目のエントリOL[i]を以下の値で更新する:
OL[i].Start = 現在の輪郭リストのサイズ
全てのオブジェクトが処理されるまで、ステップ903に進む。
ステップ911において、付随のクリップが現在のクリップ「CurClip」に等しくない場合(ステップ911:NO)、ステップ913に進む。ステップ913において、付随のクリップの値「Obj.Clip」を変数CurClipに設定する。オブジェクト及びクリップの合成バウンディングボックスを、変数bboxに設定する。その後、上述のように、ステップ917に進む。全てのオブジェクトが処理されるまで、ステップ903に進む。
ステップ919の終了時点において、出力は、ソートされていない主輪郭リスト、及び対応するオブジェクトリストである。更に、last−compositing−objectは、識別された。表示リスト中のオブジェクト総数は、カウンタ「i」の値である。
7.3 第2の構成:描画方法
第2の構成の描画方法を図16に示す。ステップ1601において、描画モジュール1511は、last−compositing−objectがゼロ以上か否かをチェックする。ゼロ以上である場合、ステップ1603において、モジュール1511は、OL[0].StartとOL[last−compositing−object].Endとの間の全ての輪郭を、PSRTに割り当てる。ステップ1605において、描画タスクは、図2、図3A、図4及び図7のステップを使用して実行される。その後、ステップ1607に進む。
last−compositing−objectがゼロ以上でない場合(ステップ1601:NO)、PSRTは不必要であり、ステップ1607に直接進み、ステップ1603及び1605をスキップする。
ステップ1607において、モジュール1511は、「last−compositing−object + 1」を、索引iに設定する。ステップ1611は、iがオブジェクト数Nより小さいか否かをチェックする。描画されるべきオブジェクトが存在しない場合(ステップ1611:NO)、描画は、ステップ1609で終了する。処理されるべきオブジェクトがまだ存在する場合、ステップ1613において、モジュール1511は、以下の値を設定する:
StartObj = i
TotalBBox = Obj[i].Bbox
i = i + 1
ステップ1615は、Obj[i].BboxがTotalBboxに存在せず且つiがNより小さいかをチェックする。この条件が満足される場合(ステップ1615:YES)、ステップ1617に進み、以下の値を設定する:
TotalBbox = TotalBbox + Obj[i].Bbox
i = i + 1
その後、ステップ1615に戻る。
ステップ1615の条件が満足されない場合(ステップ1615:NO)、ステップ1619において、モジュール1511は、OL[StartObj].StartとOL[i-1].Endとの間の全ての輪郭をIPARTに割り当てる。ステップ1621において、モジュール1511は、図2、図3A、図7及び図8のステップを使用して描画タスクを実行する。ステップ1623において、索引iは、1増分され、ステップ1611に戻り、処理されるべき別のオブジェクトが残っているか否かをチェックする。
第2の構成の描画方法の概要を、以下の擬似コードで示す:
IF last−compositing−object >= 0
Assign all edges between
OL[0].Start and
OL[last−compositing−object].End to PSRT.
Execute render task.
ENDIF
SET i = last−compositing−object + 1
WHILE i < N
SET StartObj = i
SET TotalBBox = OL[i].BBox
i = i + 1
WHILE (OL[i].BBox NOT IN TotalBBox) AND (i < N)
SET TotalBBox = TotalBBox + OL[i].BBox
i = i + 1
ENDWHILE
Assign all edges between
OL[StartObj].Start and
OL[i-1].End to PART.
Execute render task.
ENDWHILE
図10Aに示される例において、画像950は、5つのオブジェクト951、952、953、954及び955(優先度の昇順)から形成される。最終合成オブジェクトは952である。
矩形951は、画像950の左上に位置する。半透明な楕円952は、矩形951と部分的に重畳するが、他のオブジェクトには接触しない。矩形954は、画像950の右上に位置し、他のオブジェクトと交差しない。不透明な矩形953は、画像950の下半分に位置し、不透明な台形955は、矩形953と部分的に重畳する。
第2の構成において、オブジェクト951及び952に対する輪郭の集合は、画素順次描画方法を使用して、フレームストアに描画される。この第1の描画タスク957が、図10Bに示される。
オブジェクト953及び954は、バウンディングボックスがオーバーラップしないが、オブジェクト955は、オブジェクト953及び954の合成バウンディングボックスにオーバーラップする。従って、図10Cに示されるように、オブジェクト953及び954の輪郭が、第1のPART959に割り当てられる。タスク959は、オブジェクト953及び954をフレームストアに描画する。
最後に、図10Dに示されるように、別のPART961は、オブジェクト955をフレームストアに描画するために使用される。
7.4 バンディング
目標が1bpp単位の中間調単色出力である場合等のいくつかの状況において、全フレームストアが利用可能である。この出力に対するフレームストアは、600dpi(dots per inch)のA4のページ毎に、約4MBを必要とする。更に高いdpiの場合、又は更に大きなページの場合、あるいは、4bpp単位のCMYK等の更に長いビット深さの場合、1行当たりの画素数がページの幅に等しい帯状領域と、ページの高さよりかなり小さいある数字に等しい最大走査線数、例えば、256本の走査線とを割り当てることのみが可能である。
全フレームストアが利用可能である場合、描画タスクは、順次、完全に実行される。例えば、画像950を処理する時、PSRT957は実行され、全ての画素がフレームストアに描画される。残りのIPART959及び961は、各々実行され、オブジェクト953〜955がフレームストアに描画される。連続IPARTは、オーバーラップせず、各IPARTは、並行に描画可能である。
帯状領域の記憶のみ利用可能である場合、現在の帯状領域上で可視状態であるタスクの一部のみが描画されるように、タスクは、順次、部分的に実行される。連続IPARTが帯状領域内でオーバーラップしない場合、各IPARTは、並行に描画可能である。
図10Aの例において、3つの描画タスクが存在する。タスク957は、オブジェクト951及び952を描画する。タスク959は、オブジェクト953及び954を描画し、タスク961はオブジェクト955を描画する。
図10Eのように、ページが2つの帯状領域B1及びB2に分割される場合、帯状領域B1に対して、タスク957及び959が有効である。タスク957は、H1本の走査線に対して、帯状領域の記憶上に描画され、タスク959も、H1本の走査線に対して、帯状領域の記憶上に描画される。帯状領域の記憶は、プリンタに送信される。タスクは、全ての輪郭が処理されるまで、メモリ内に存在し続ける。タスク957は、帯状領域B1内で完了するが、タスク959は、処理すべき別の輪郭(オブジェクト953に対する)を有する。第2の帯状領域B2において、タスク961が有効である。タスク959は、帯状領域の記憶上に描画され、タスク961も、帯状領域の記憶上に描画される。帯状領域の記憶はプリンタに送信される。
このバンディングの方法は、本明細書で説明される全ての描画方法に適用可能である。
8.0 排他的画素順次描画方法(XPSRM)
最終合成オブジェクトの数が表示リスト中のオブジェクト総数と比較して小さい時、第2の構成の描画方法が有用である。最悪の場合、表示リスト中の最終オブジェクトが合成を要求すると、第2の構成において、全てのオブジェクトは、PSRMを使用して描画されることになる。これは、合成を要求するオブジェクトが、局部化した領域内に含まれ、多数のオブジェクトにオーバーラップしない場合であることが多い。
排他的画素順次描画方法(XPSRM)と呼ばれる変形PSRMを、次に説明する。この方法において、指定されたオブジェクトに対する画素のみが出力される。
XPSRMにおいて、新しいメンバがレベルデータ構造に追加される。このメンバは、ExclusiveOutputと呼ばれる。ExclusiveOutputメンバに値1が設定されているオブジェクトを有効オブジェクトリスト(AOL)が少なくとも1つ含む場合、画素ランは、出力される。AOL自体は、ExclusiveCountと呼ばれる新しいメンバを有する。オブジェクトがAOLに挿入されると、AOL.ExclusiveCountは、Object.ExclusiveOutputの値分増分される。オブジェクトがAOLから除去されると、AOL.ExclusiveCountは、Object.ExclusiveOutputの値分減分される。
XPSRMは、図2で説明された判定方法、及び図3Aで説明された走査線の描画方法を使用して、有効輪郭リストを判定する。XPSRMにより使用されるオブジェクトを有効化する方法(クリッピングを考慮する)を、図12に示す。これは、図7に示す方法の変形版である。
画素ランに影響を与えるオブジェクトを判定するXPSRMの方法を、図13に示す。これは、図4の変形版である。
図13の方法は、図4の多くのステップを含む。特に、ステップ453、457、459、461、463、465、467、469、470及び471による分岐部分は、変更されていない。最初のステップ451は、図13において、ステップ1301に置換される。ステップ1301は、「AOLが空、又はAOL.ExclusiveCount = 0」であるかをチェックする。この条件が満足されない場合(ステップ1301:NO)、ステップ453に進み、ステップ453〜471の分岐部分が実行される。
ステップ1301の条件が満足される場合、ステップ471に直接進む。図4の方法からの第2の変更点は、XPSRMにおいて、ステップ455(白色の出力)が省略されることである。従って、有効オブジェクトリストが空である場合、又はExclusiveOutputメンバが設定されたオブジェクトを有効オブジェクトリストが1つも含まない場合のいずれの場合においても、XPSRMは、画素を出力しない。
図7のオブジェクト有効化ルーチン/オブジェクト無効化ルーチンの変形版を、図12において説明する。図7及び図12の方法は、ステップ1223及び1221を除いて、ほぼ同様であり、ステップ1223及び1221は、ステップ773及び771をそれぞれ置換する。ステップ1223及び1221は、有効オブジェクトリストの新しいメンバAOL.ExclusiveCountを増分又は減分する追加的タスクを含む。
図7と同様に、図12に対する入力は、現在の輪郭により指し示される有効オブジェクトリスト及びレベルデータ構造のリストである。図12の出力は、変更された有効オブジェクトリスト(AOL)及び変更された可能性のある変数ExclusiveCountである。
ステップ773を置換するステップ1223は、AOLからobjを除去し(objがAOL中にある場合)、AOL.ExclusiveCountからobj.ExclusiveOutputを差し引く。ステップ771を置換するステップ1221は、objをAOLに挿入し(objがAOL中にない場合)、obj.ExclusiveOutputをAOL.ExclusiveCountに追加する。
XPSRMにより、複数のオブジェクトが表示リストに追加されるが、XPSRMは、明示的に特定されたオブジェクトのみが出現することを規定する。XPSRMを利用する描画タスクは、XPSRTと呼ばれる。
例を図11Aに示す。画像1100は、最初の100個のオブジェクトを領域1110に含む。最初の100個のオブジェクトは、不透明なテキストオブジェクトである。また、画像1100は、5つのベクトルグラフィックオブジェクト1101、1102、1103、1104及び1105を含み、オブジェクト1105は、オブジェクト1101、1102及び1103上に合成される。これらのオブジェクトには、領域1120の多数のテキストオブジェクトが後続する。上述の第1の構成の方法及び第2の構成の方法において、オブジェクト1105は領域1110に対して影響を与えないが、オブジェクト1105が最終合成オブジェクトであるため、第1のテキストオブジェクトとオブジェクト1105との間の全てのオブジェクトは、PSRMを使用して描画される。
これに対し、図11Bに示すように、オブジェクト1105のみが出力されるが、オブジェクト1105は、オブジェクト1101、1102及び1103に対して合成されるように、オブジェクト1105が、XPSRMを使用して、フレームストアに対し排他的に描画されてもよい。
オブジェクト1105のExclusiveOutputメンバに1を設定し、オブジェクト1105が有効な時に、XPSRTが画素ランのみを出力することを保証する。このような画素ランに対して、オブジェクト1101、1102、1103及び1105の輪郭は、XPSRTに送信される。オブジェクト1101の輪郭は、E1及びE2であり、オブジェクト1102の輪郭は、E3及びE4であり、オブジェクト1103の輪郭は、E5及びE6であり、オブジェクト1105の輪郭は、E9及びE10である。走査線1130に関連する輪郭を図11Cに示す。XPSRTに渡された輪郭は、{E1,E2,E3,E4,E5,E6,E9,E10}である。E7及びE8は、オブジェクト1104に属し、描画されるべき輪郭に含まれない。
輪郭リストは、格納され、その内容は、{E1,E2,E3,E4,E9,E10,E5,E6}である。図2及び図3Aのように、通常、輪郭は追跡される。
走査線1130に対する有効輪郭リストは{E1,E9,E2,E3,E10,E4}である。図3A、図12及び図13を参照すると、ステップ351において、CurXに0を設定し、ActiveObjectListに空リストを設定する。ステップ353において、E1が読み出される。E1.X > CurXであるため、ステップ357に進む。NにE1.Xを設定し、ステップ361からステップ1301に進む。AOLが空であるため、画素は出力されず、ステップ471からステップ363に戻る。CurXは、E1.Xに更新され、ステップ363において、E1.Xがページの幅に等しくないため、ステップ353に戻る。
ステップ353において、E1が読み出される。E1.X = CurXであるため、ステップ359に進む。ステップ359は、E1をAELから除去し、図12のステップ751を呼び出す。ステップ751において、iに0を設定し、clip_deltaに0を設定する。ステップ753において、objにE1.OL[0] = 1101を設定する。ステップ755において、オブジェクト1101がクリップではないため、ステップ768において、obj.ClipCountがゼロで増分される。ステップ769において、オブジェクトは、有効化される。ステップ1221において、オブジェクトは、AOLに挿入され、AOL.ExclusiveCountは、1101.ExclusiveCountの値分、すなわち0で増分される。ステップ763において、iは1増分される。ステップ765において全てのオブジェクトが処理されたため、ルーチンは、ステップ767で終了する。その後、ステップ360において、輪郭E1.Xは、次の走査線のために更新される。ステップ353に戻る。
表Dは、主なステップ及び実行される動作の概略を示す。
9.0 第3の構成:XPSRM及びIPARMを使用する描画
第3の描画構成は、上述の排他的画素順次描画方法(XPSRM)、及び改良版ペインターズアルゴリズム描画方法(IPARM)の双方を使用する。
9.1 第3の構成:表示リストの生成
第3の構成において、表示リスト生成モジュール1507は、ステップ905を変更した図9の方法を使用して、表示リストを生成する。
ステップ905に対して、オブジェクトが合成を要求するか否かというロジックが追加され、また、新規エントリが合成リストと呼ばれる第3のリストに追加される。ステップ905に対する変更の概要を以下の擬似コードで示す:
If object.Clip <> CurClip
Decompose object.Clip into edges and level data
Add edges to edge list
ENDIF
Decompose object into edges, level data, fill data.
Add edges to edge list.
IF Object requires compositing
SET composites = TRUE
SET last−compositing−object = i
Add new entry to compositing list CL
SET OL[i].CompositeIndex = ”size−of CL” − 1
SET OL[i].ExclusiveOutput = 1
ELSE
SET composites = FALSE
ENDIF
合成リスト中の各エントリは、オブジェクトのリストであり、第1のエントリは、合成オブジェクト自体であり、合成オブジェクトの下方に位置する全てのオブジェクトが後続する。ここで、「下方に位置する」は、「より低い優先度であり、且つバウンディングボックスがオーバーラップする」ことを意味する。合成リストは、優先度の昇順の順番になっているため、合成リスト中の最終オブジェクトは、合成オブジェクトの下方に位置するオブジェクトの中で、z順において、最も優先度の高いオブジェクトである。各合成オブジェクトに依存するオブジェクトのリストは、描画処理中に、描画モジュール1511により構成される。ここでは、リストに関しての説明であるが、ツリー等の別のデータ構造を使用して、同一の情報を取得してもよい。
図9(a)及び図9(b)の変形された方法からの出力は、以下である:
ソートされていない主輪郭リスト
対応するオブジェクトリスト
合成リスト
更に、last−compositing−objectが識別され、表示リスト中のオブジェクトの総数は、カウンタ「i」の値となる。
描画中、各オブジェクトがオブジェクトのリストの最初から最後まで処理されるため、オブジェクトのバウンディングボックスは、合成リスト中の全てのエントリに対してチェックされる。注目オブジェクトのバウンディングボックスが合成オブジェクトのバウンディングボックスにオーバーラップする場合、注目オブジェクトは、合成リスト中の対応するエントリに追加される。
図11Aの例において、第3の構成で生成された合成リストは、1つのエントリを含む。その結果、エントリは、{1105,1101,1102,1103}の4つのオブジェクトで構成される。
9.2 第3の構成:描画
第3の構成の描画方法を、図17に示す。初期化ステップ1701において、描画モジュール1511は、ゼロを索引iに設定し、表示リスト中のオブジェクトの総数をNに設定する。ステップ1703は、索引iがNより小さいか否かをチェックする。小さくない場合、描画処理は、ステップ1705で終了する。
iがNより小さい場合(ステップ1703:YES)、ステップ1707に進み、i < N且つOL[i].Composites = FALSEであるかをチェックする。この条件が満足される場合(ステップ1707:YES)、ステップ1709において、モジュール1511は、以下の値を設定する:
StartObj = i
TotalBBox = OL[i].Bbox
i = i + 1
また、ステップ1709は、バウンディングボックス及び優先度に基づいて、合成リストCL中のiを越える全てのエントリに対して、iを追加する。
次に、ステップ1711は、3つの条件をチェックする。OL[i].BboxがTotalBBox中に存在せず、i < Nであり、且つOL[i]が合成リストCLに存在しない場合、ステップ1713に進む。上記条件を満足しない場合(ステップ1711:NO)、ステップ1715に進む。
ステップ1713において、描画モジュール1511は、現在のオブジェクトOL[i]のバウンディングボックスを総バウンディングボックスTotalBBoxに追加し、iを増分する。ステップ1713は、OL[i]の上にある合成リストCL中の全てのエントリに対し、OL[i]を追加する。その後、ステップ1711に戻り、次のオブジェクトを処理する。
ステップ1715において、描画モジュール1511は、OL[StartObj].StartとOL[i-1].Endとの間の全ての輪郭をIPARTに割り当てる。ステップ1717において、図2、図3A、図7及び図8の方法のステップを使用して、描画タスクが実行される。その後、処理は、ステップ1719に継続される。ステップ1719は、ステップ1707の条件が満足されない場合(ステップ1707:NO)も実行される。
ステップ1719は、iがNより小さく、且つOL[i].CompositesがTRUEであるかをチェックする。この条件が満足されない場合、ステップ1703に戻る。条件が満足される場合(ステップ1719:YES)、ステップ1721において、描画装置1511は、現在のオブジェクトOL[i]の上にある合成リストCL中の全てのエントリに対し、OL[i]を追加する。描画装置は、XPSRM(図2、図3A、図12及び図13の方法のステップ)を使用して、CL[OL[i].CompositeIndex]の全てのオブジェクトを描画する。索引iは、増分され、次のオブジェクトを考慮するために、ステップ1703に戻る。
図17の方法を、以下の擬似コードにより説明する:
1. SET N = i
2. SET i = 0
3. WHILE i < N
4. WHILE i < N AND OL[i].Composites = FALSE
5. SET StartObj = i
6. SET TotalBBox = OL[i].BBox
7. Add entry i to all entries in CL that are over object i (based on bounding boxes and priority)
8. i = i + 1
9. WHILE OL[i].BBox NOT IN TotalBBox AND i < N, AND object i not in CL
10. SET TotalBBox = TotalBBox + OL[i].BBox
11. Add object i to all entries in CL that are over i (based on bounding boxes and priority)
12. i = i + 1
13. ENDWHILE
14. Render ALL objects between StartObj and i−1 using IPARM
15. ENDWHILE
16. IF i < N AND OL[i].Composites = TRUE
17. Add entry i to all entries in CL that are over i (based on bounding boxes and priority)
18. Render all objects in CL[OL[i].CompositeIndex] + OL[i] using XPSRM.
19. i = i + 1
20. ENDIF
21. ENDWHILE
図11Aの例において、オブジェクトリストは、以下のオブジェクトで構成される:
O1, ..., O100, O101, O102, O103, O104, O105, O106, ..., O150
ここで、O1〜O100は、テキストオブジェクト1110であり、オブジェクトO101〜O105は、ベクトルグラフィックオブジェクト1101〜1105であり、オブジェクトO106〜O150は、テキストオブジェクト1120である。
合成リストは、CL[0] = O105である。合成リストは、表示リスト生成モジュール1507により判定される。
描画中、オブジェクトO1〜O100は、バウンディングボックスがCL[0]にオーバーラップせず、且つ優先度がCL[0]よりも低いため、O1〜O100の各オブジェクトは、1つ以上のIPARMを使用して描画される。
擬似コードの4行目〜15行目において、描画装置1511は、以下の動作を実行する。
7行目:O101が優先度においてCL[0]よりも低く、バウンディングボックスがCL[0]にオーバーラップするため、O101は、CL[0]に追加される。
11行目:O102が優先度においてCL[0]よりも低く、バウンディングボックスがCL[0]にオーバーラップするため、O102は、CL[0]に追加される。
11行目:O103が優先度においてCL[0]よりも低く、バウンディングボックスがCL[0]にオーバーラップするため、O103は、CL[0]に追加される。
11行目:O104が優先度においてCL[0]よりも低いが、バウンディングボックスがCL[0]にオーバーラップしないため、O104は、CL[0]に追加されない。
9行目:O105が合成オブジェクトであるため、ループは終了する。
14行目:オブジェクトO101、O102、O103及びO104は、IPARMを使用して、フレームストアに描画される。
4行目:O105が合成オブジェクトであるため、ループは終了する。
16行目:OL[i] = O105であり、O105.Composite = TRUEを有する。
17行目:O105より優先度の高いエントリが合成リストCLに存在しないため、18行目に進む。
18行目:CL[0]のエントリは、O105、O101、O102及びO103である。従って、オブジェクトO101、O102、O103及びO105は、XPSRTに割り当てられ、フレームストアに描画される。
3行目:i = 106であり、4行目〜15行目の間において、他の全てのオブジェクト1120は、1つ以上のIPARMを使用して描画される。
10.0 その他の構成
全ての3つの構成の更に別の変形において、描画中、描画タスクが開始すると、現在の描画タスクが実行されている間に、別の描画タスクが少なくとも識別されることが分かる。識別された次の描画タスクが、現在実行中の描画タスクにオーバーラップしないバウンディングボックスを有する場合、識別された次の描画タスクも、描画を開始できる。この処理は、識別された次の描画タスクが現在実行中の描画タスクにオーバーラップするバウンディングボックスを有するまで、又は描画が完了するまでのいずれかの状況になるまで継続される。
説明された構成がコンピュータ及び画像処理産業に対して適用可能であることは、上述より明らかである。
前述では、本発明のいくつかの実施形態を説明したにすぎない。本発明の範囲及び趣旨を逸脱せずに変形及び/又は変更が可能であり、これら実施形態は、例証するものであり、制限するものではない。
本明細書において、用語「具備する」は、「主に含むが、単独で必要ではない」、「有する」又は「含む」ことを意味し、「〜のみで構成される」ことではない。用語「具備する」の語形変化は、それに対応して意味の変化を示す。
Figure 2006018842
Figure 2006018842
Figure 2006018842
Figure 2006018842
不透明な文字「O」上に半透明な矩形を表示する画像の例を示す図。 図1Aのオブジェクトに対する輪郭を示す図。 図1Aの例の輪郭リストを概略的に示すブロック図。 主輪郭リストの有効輪郭を判定し、この有効輪郭の集合が描画されるべき走査線数を判定する方法を示すフローチャート。 図2の方法のステップにより計算される有効輪郭から走査線を描画する方法を示すフローチャート。 図2の方法のステップにより計算される有効輪郭から走査線を描画する別の方法を示すフローチャート。 画素順次描画方法において、画素ランに影響を与えるオブジェクトを判定する方法を示すフローチャート。 バウンディングボックスがオーバーラップする2つのオブジェクトの例を示す図。 バウンディングボックスがオーバーラップしない2つのオブジェクトを示す図。 2つの三角形状のクリップが矩形をクリッピングする画像の例を示す図。 図6Aの矩形及びクリップを描画した結果を示す図。 図6Aのオブジェクトの輪郭を示す図。 図6Aのオブジェクトのメモリ内にある表示リストの表現を概略的に示す図。 クリッピングを考慮して、画素順次描画方法でオブジェクトを有効化するのか無効化するのかを判定する方法を示すフローチャート。 改良版ペインターズアルゴリズム描画方法(IPARM)において、画素ランに影響を与えるオブジェクトを判定する方法を示すフローチャート。 第2の構成及び第3の構成に対して、表示リストを生成する間にオブジェクトリストを構成する方法を説明するフローチャート。 ページ上に5つのオブジェクトを有する画像を示す図。 図10Aのオブジェクトが3つの描画タスクに描画される様子を示す図。 2つの帯状領域に描画された図10Aのページを示す図。 オブジェクトのページの表現を概略的に示す図。 排他的画素順次描画方法(XPSRM)を使用して描画された図11Aのオブジェクトを示す図。 走査線Sに近接する図11Aのオブジェクトの輪郭を示す図。 オブジェクトを有効化する方法を示すフローチャートであり、XPSRMにおいて、有効オブジェクトリストのExclusiveCountメンバが、オブジェクトが有効化される時には増分され、オブジェクトが無効化される時には減分される方法を示すフローチャート。 XPSRMにおいて、画素ランに影響を与えるオブジェクトを判定する方法を示すフローチャート。 画素順次描画方法(PSRM)及びペインターズアルゴリズム描画方法(PARM)を使用する第1の描画構成を示すフローチャート。 本開示の描画構成が実現される描画パイプラインを概略的に示すブロック図。 画素順次描画方法(PSRM)及び改良版ペインターズアルゴリズム描画方法(IPARM)を使用する第2の描画構成を示すフローチャート。 排他的画素順次描画方法(XPSRM)及び改良版ペインターズアルゴリズム描画方法(IPARM)を使用する第3の描画構成を示すフローチャート。 描画構成を組み込むコンピュータシステムの表現を概略的に示すブロック図。

Claims (38)

  1. グラフィックオブジェクトのリストにより記述される画像を描画する方法であって、
    前記リスト中のオブジェクトを、第1のオブジェクトの集合及び第2のオブジェクトの集合のうちの少なくとも一方の集合に割り当てる工程と、
    前記第1のオブジェクトの集合のうちの1つのオブジェクトの一部が、前記第1のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、前記第1のオブジェクトの集合を画像記憶装置に描画する工程と、
    前記第2のオブジェクトの集合の各オブジェクトを、前記第2のオブジェクトの集合におけるその他のオブジェクトとは関係なく描画する第2の描画方法を使用して、前記第2のオブジェクトの集合を前記画像記憶装置に描画する工程と
    を有することを特徴とする方法。
  2. 前記リスト中のオブジェクトは、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順位を有し、前記リストは、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有し、前記割り当てる工程は、
    前記リスト中の最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトを、前記第1のオブジェクトの集合に割り当てるサブステップと、
    前記最終合成オブジェクトより高い優先度を有する前記リスト中のオブジェクトを、前記第2のオブジェクトの集合に割り当てるサブステップと
    を有することを特徴とする請求項1に記載の方法。
  3. 前記リスト中のオブジェクトは、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順位を有し、前記オブジェクトは、画素を形成するように描画され、描画されるべき1つ以上の連続する画素のラン毎に、前記第1の描画方法は、
    前記第1のオブジェクトの集合の中で、前記画素のランに対して有効であるオブジェクトを判定する工程と、
    前記判定された有効オブジェクトのうちで、最高の優先度を有する不透明なオブジェクトを識別する工程と、
    前記最高の優先度を有する不透明なオブジェクト、及び前記最高の優先度を有する不透明なオブジェクトより高い優先度を有する不透明でない有効オブジェクトを描画する工程と
    を有することを特徴とする請求項1に記載の方法。
  4. 前記リスト中のオブジェクトは、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順位を有し、前記オブジェクトは、画素を形成するように描画され、描画されるべき連続する画素のラン毎に、前記第2の描画方法は、
    優先度が高くなる順を考慮して、前記第2のオブジェクトの集合における現在のオブジェクトが有効であるか否かをチェックする工程と、
    現在のオブジェクトが有効である場合、前記現在のオブジェクトを前記画像記憶装置に描画する工程と
    を有することを特徴とする請求項1に記載の方法。
  5. 前記第2の描画方法は更に、
    前記第2のオブジェクトの集合の中で、グループ中の他のオブジェクトとオーバーラップしないような連続するオブジェクトのグループを検索する工程と、
    前記グループが発見された場合、前記グループ中のオブジェクトを同時に前記画像記憶装置に描画する工程と
    を有することを特徴とする請求項4に記載の方法。
  6. 各オブジェクトの最大範囲は、バウンディングボックスにより示され、前記グループ中のオブジェクトのバウンディングボックスは、前記グループの中の他のオブジェクトのバウンディングボックスとオーバーラップしないことを特徴とする請求項5に記載の方法。
  7. 前記第2のオブジェクトの集合の中の複数の連続するオブジェクトが、クリップオブジェクトによりクリッピングされる場合、前記複数のオブジェクトは、前記第1の描画方法を使用して描画されることを特徴とする請求項4に記載の方法。
  8. 更に、前記オブジェクトのリストを生成する工程を有し、
    前記リストは、オブジェクト毎に、
    前記オブジェクトを記述する1つ以上の輪郭の集合と、
    前記オブジェクトの最大範囲を示すバウンディングボックスと、
    前記オブジェクトが合成を要求するか否かを示すためのフラグと
    を含むことを特徴とする請求項1に記載の方法。
  9. オブジェクトのグループが1つ以上のクリップオブジェクトによりクリッピングされる場合、前記クリップオブジェクトのうちの第1のクリップオブジェクトと、クリッピングされるべき前記オブジェクトのグループのうちの最終オブジェクトとの間の輪郭は、単一オブジェクトとして、前記リストに追加されることを特徴とする請求項8に記載の方法。
  10. 前記リスト中のオブジェクトは、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順位を有し、前記割り当てる工程は、
    前記リスト中のオブジェクトを、優先度が高くなる順に考慮するサブステップと、
    注目オブジェクト毎に、
    現在のオブジェクトが合成を要求しない場合には、前記現在のオブジェクトを前記第2のオブジェクトの集合に挿入するサブステップと、
    前記現在のオブジェクトが合成を要求する場合には、
    (i) 前記現在のオブジェクトより低い優先度を有し、前記現在のオブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定する工程と、
    (ii) 前記現在のオブジェクト、及び前記判定されたオブジェクトを前記第1のオブジェクトの集合に挿入する工程とを実行するサブステップと
    を有することを特徴とする請求項1に記載の方法。
  11. 前記判定されたオブジェクトの中で、前記現在のオブジェクトの輪郭の内側に位置する部分は、前記第1のオブジェクトの集合に挿入されることを特徴とする請求項10に記載の方法。
  12. 前記画像記憶装置は、画像のうちの注目部分を格納する帯状領域記憶装置であり、前記第1の描画方法及び第2の描画方法は、画像のうちの前記注目部分に存在するオブジェクトを描画することを特徴とする請求項1に記載の方法。
  13. 前記割り当てる工程は、前記第1の描画方法により描画されるべき第1の描画タスク及び前記第2の描画方法により描画されるべき第2の描画タスクにオブジェクトをそれぞれ割り当て、複数の描画タスクが同時に処理されることを特徴とする請求項1に記載の方法。
  14. オブジェクト単位の画像を描画する方法であって、
    最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像のオブジェクトをリストとして配列し、合成を要求する前記最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信する工程と、
    前記表示リスト中の最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトに対して動作する第1の描画タスクを処理する工程と、
    前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の1つ以上のオブジェクトに対して動作する少なくとも1つの第2の描画タスクを処理する工程とを有し、
    前記第1の描画タスクは、1つのオブジェクトの一部が、前記第1の描画タスクにより処理されるオブジェクトの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画し、
    前記第2の描画タスクは、前記第2の描画タスクにより処理される他のオブジェクトとは関係なく、オブジェクトを画像記憶装置に描画する
    ことを特徴とする方法。
  15. 互いにオーバーラップせず、連続する優先度の順位を有する複数のオブジェクトは、単一の第2の描画タスクに割り当てられることを特徴とする請求項14に記載の方法。
  16. グラフィックオブジェクトとして表現されるデータにより記述される画像を形成する方法であって、
    (a) 前記画像を記述するオブジェクトのリストであって、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順にオブジェクトが順序付けられているオブジェクトのリストを受信する工程と、
    (b) 優先度が高くなる順に、前記リスト中のオブジェクトを考慮し、注目オブジェクト毎に、
    (ba) 前記注目オブジェクトが合成を要求しない場合、第1の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画し、
    (bb) 前記注目オブジェクトが合成を要求する場合には、
    (bb)(i) 前記リスト中で、前記注目オブジェクトより低い優先度を有し、前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定する工程と、
    (bb)(ii) 1つのオブジェクトの一部が、第2の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する前記第2の描画方法を使用して、前記注目オブジェクト、及び前記判定されたオブジェクトを描画する工程を実行する工程と
    を有することを特徴とする方法。
  17. ステップ(bb)(ii)は、前記判定されたオブジェクトの中で、前記注目オブジェクトの輪郭の内側に位置する領域を描画することを特徴とする請求項16に記載の方法。
  18. オブジェクト単位の画像を描画する方法であって、
    (a) 最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトをリストとして配列する表示リストを受信する工程と、
    (b) 少なくとも1つの所定の基準に従って、前記表示リスト中のオブジェクトを、第1のオブジェクトの集合、及び第2のオブジェクトの集合のうちの少なくとも一方に割り当てる工程と、
    (c) 第1の描画方法を使用して、前記第1のオブジェクトの集合の中のオブジェクトを描画する工程と、
    (d) 第2の描画方法を使用して、前記第2のオブジェクトの集合の中のオブジェクトを描画する工程とを有し、
    描画されるべき連続する画素から成る画素ラン毎に、前記第1の描画方法は、
    (ca) 前記第1のオブジェクトの集合の中で、前記画素のランに対して有効であるオブジェクトを判定する工程と、
    (cb) 前記判定された有効オブジェクトの中で、最高の優先度を有する不透明なオブジェクトを識別する工程と、
    (cc) 前記最高優先度を有する不透明なオブジェクト、及び前記最高優先度を有する不透明なオブジェクトより高い優先度を有する不透明でない有効オブジェクトを描画する工程とを有し、
    描画されるべき連続する画素から成る画素ラン毎に、前記第2の描画方法は、
    (da) 優先度が高くなる順に前記第2のオブジェクトの集合を考慮して、前記第2のオブジェクトの集合の中の現在のオブジェクトが有効であるか否かをチェックする工程と、
    (db) 前記現在のオブジェクトが有効である場合、前記現在のオブジェクトを画像記憶装置に描画する工程とを有することを特徴とする方法。
  19. オブジェクト単位の画像を描画する方法であって、
    最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列するリストを受信する工程と、
    集合の中のオブジェクトが前記リストにおいて連続する優先度の順位を有し、且つ集合の中の各オブジェクトが集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも1つのオブジェクトの集合に割り当てる工程と、
    前記少なくとも1つのオブジェクトの集合を画像記憶装置に描画する工程と
    を備えることを特徴とする方法。
  20. 前記リストは、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有し、前記割り当てる工程は、前記最終合成オブジェクトより高い優先度を有する、前記リスト中のオブジェクトを考慮し、前記方法は、
    1つのオブジェクトの一部が、前記リスト中のオブジェクトの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する描画方法を使用して、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの前記リスト中のオブジェクトを描画する工程を更に有することを特徴とする請求項19に記載の方法。
  21. グラフィックオブジェクトのリストにより記述される画像を描画する方法であって、
    前記リスト中のオブジェクトを、第1のオブジェクトの集合及び第2のオブジェクトの集合のうちの少なくとも一方に割り当てる工程と、
    画素順次描画方法を使用して、前記第1のオブジェクトの集合の中のオブジェクトを描画する工程と、
    ペインターズアルゴリズム描画方法を使用して、前記第2のオブジェクトの集合の中のオブジェクトを描画する工程と
    を有することを特徴とする方法。
  22. グラフィックオブジェクトのリストにより記述される画像を描画する装置であって、
    第1の手段であって、1つのオブジェクトの一部が、前記第1の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の手段が、前記一部を描画する第1の描画方法を使用して、オブジェクトを画像記憶装置に描画する第1の手段と、
    第2の手段であって、前記第2の手段により受信される各オブジェクトを、前記第2の手段により受信されるその他のオブジェクトとは関係なく描画する第2の描画方法を使用して、オブジェクトを前記画像記憶装置に描画する第2の手段と、
    前記リスト中のグラフィックオブジェクトを、前記第1の手段及び前記第2の手段のうちの少なくとも一方に割り当てる手段と
    を備えることを特徴とする装置。
  23. 更に、
    前記グラフィックオブジェクトのリストを生成する手段を備えることを特徴とする請求項22に記載の装置。
  24. オブジェクト単位の画像を描画する装置であって、
    第1の手段であって、1つのオブジェクトの一部が、前記第1の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の手段が、前記一部を描画する第1の描画方法を使用して、オブジェクトを画像記憶装置に描画する第1の手段と、
    第2の手段であって、前記第2の手段により受信される各オブジェクトを、前記第2の手段により受信されるその他のオブジェクトとは関係なく前記画像記憶装置に描画する第2の描画方法を使用して、オブジェクトを描画する第2の手段と、
    リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられ、且つ前記リストが合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有するような、前記画像中のオブジェクトのリストを受信する手段と、
    オブジェクトを前記第1の描画する手段、及び前記第2の描画する手段に割り当てる手段であって、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトの前記リストの第1の部分を、前記第1の描画する手段に割り当て、前記最終合成オブジェクトより高い優先度を有する1つ以上のオブジェクトを、前記第2の描画する手段に割り当てる手段と
    を備えることを特徴とする装置。
  25. 前記割り当てる手段は、複数のオブジェクトを前記第2の描画する手段に同時に割り当て、前記複数のオブジェクトは、互いにオーバーラップせず、前記リストにおいて連続する優先度位置を有することを特徴とする請求項24に記載の装置。
  26. 前記第2の描画する手段を複数具備することを特徴とする請求項24に記載の装置。
  27. オブジェクト単位の画像を描画する装置であって、
    第1の手段であって、1つのオブジェクトの一部が、前記第1の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の手段が、前記一部を描画する第1の描画方法を使用して、オブジェクトを画像記憶装置に描画する第1の手段と、
    第2の手段であって、前記第2の手段により受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく前記画像記憶装置に描画する第2の描画方法を使用して、オブジェクトを描画する第2の手段と、
    オブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられるような、前記画像中のオブジェクトのリストを受信する手段と、
    合成を要求するオブジェクトに対して、前記合成を要求するオブジェクトより低い優先度を有し、且つ前記合成を要求するオブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する、前記リスト内のオブジェクトを判定する手段と、
    前記リスト中の非合成オブジェクトを、前記第2の描画する手段に割り当てる手段と、
    前記リスト中の合成オブジェクトを、前記判定する手段により、合成を要求するオブジェクト毎に判定されたオブジェクトと共に、前記第1の描画する手段に割り当てる手段と
    を備えることを特徴とする装置。
  28. オブジェクト単位の画像を描画する装置であって、
    最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信する手段と、
    集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し、且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも1つのオブジェクトの集合に割り当てる手段と、
    前記少なくとも1つのオブジェクトの集合を画像記憶装置に描画する手段と
    を備えることを特徴とする装置。
  29. オブジェクト単位の画像を描画するシステムにおいて、
    1つのオブジェクトの一部が、第1の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、画像記憶装置にオブジェクトを描画する1つ以上の第1のレンダラと、
    1つ以上の第2のレンダラであって、前記第2のレンダラにより受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく、前記画像記憶装置に描画する第2の描画方法を使用して、オブジェクトを描画する第2のレンダラと、
    リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられ、且つ前記リストが合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有するような前記画像のオブジェクトのリストを生成する表示リスト生成器と、
    前記表示リスト生成器により生成されたリストを格納する表示リスト記憶装置と、
    前記表示リスト記憶装置、前記第1のレンダラ、及び前記第2のレンダラと通信し、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトを、前記第1のレンダラに割り当て、前記最終合成オブジェクトより高い優先度を有するオブジェクトを1つ以上の第2のレンダラに割り当てるようにプログラムされたプロセッサと
    を備えることを特徴とするシステム。
  30. オブジェクト単位の画像を描画するシステムであって、
    1つのオブジェクトの一部が、第1の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、画像記憶装置にオブジェクトを描画する1つ以上の第1のレンダラと、
    1つ以上の第2のレンダラであって、前記第2のレンダラにより受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく、前記画像記憶装置に描画する第2の描画方法を使用して、オブジェクトを描画する第2のレンダラと、
    リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられるような、前記画像中のオブジェクトのリストを生成する表示リスト生成器と、
    前記表示リスト生成器により生成されたリストを格納する表示リスト記憶装置と、
    前記表示リスト記憶装置、前記第1のレンダラ、及び前記第2のレンダラと通信し、
    (i) 優先度が高くなる順に、前記リスト中のオブジェクトを考慮する工程と、
    注目オブジェクト毎に、
    (ii) 前記現在のオブジェクトが合成を要求しない場合、前記現在のオブジェクトを前記第2のレンダラに割り当てる工程と、
    (iii) 前記現在のオブジェクトが合成を要求する場合、前記注目オブジェクトより低い優先度を有し、且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する前記リスト内のオブジェクトを判定し、前記注目オブジェクト、及び前記判定されたオブジェクトを前記第1のレンダラに割り当てる工程とを実行するようにプログラムされたプロセッサと
    を備えることを特徴とするシステム。
  31. 機械可読記憶媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品であって、前記方法は、
    リスト中のオブジェクトを、第1のオブジェクトの集合、及び第2のオブジェクトの集合のうちの少なくとも一方に割り当てる工程と、
    前記第1のオブジェクトの集合のうちの1つのオブジェクトの一部が、前記第1のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、前記第1のオブジェクトの集合を画像記憶装置に描画する工程と、
    前記第2のオブジェクトの集合の中の各オブジェクトを、前記第2のオブジェクトの集合のその他のオブジェクトとは関係なく描画する第2の描画方法を使用して、前記第2のオブジェクトの集合を前記画像記憶装置に描画する工程と
    を備えることを特徴とするコンピュータプログラム製品。
  32. 機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラム製品であって、前記方法は、
    最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信する工程と、
    前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの前記表示リスト中のオブジェクトを含む第1の描画タスクを、第1の描画方法を使用して描画する工程と、
    前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の1つ以上のオブジェクトを含む1つ以上の第2の描画タスクを、第2の描画方法を使用して描画する工程とを有し、
    前記第1の描画方法は、1つのオブジェクトの一部が、前記第1の描画タスクの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の描画方法は、前記一部を描画し、
    前記第2の描画方法は、前記第2の描画タスクの各オブジェクトを、前記第2の描画タスクの中のその他のオブジェクトとは関係なく、画像記憶装置に描画する
    ことを特徴とするコンピュータプログラム製品。
  33. 機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラム製品であって、前記方法は、
    (a) 前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、オブジェクトが優先度の順に順序付けられたオブジェクトのリストを受信する工程と、
    (b) 優先度が高くなる順に前記リスト内のオブジェクトを考慮し、注目オブジェクト毎に、
    (ba) 前記注目オブジェクトが合成を要求しない場合、第1の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画し、
    (bb) 前記注目オブジェクトが合成を要求する場合には、
    (bb)(i) 前記注目オブジェクトより低い優先度を有し、且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する前記リスト中のオブジェクトを判定する工程と、
    (bb)(ii) 1つのオブジェクトの一部が、第2の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第2の描画方法を使用して、前記注目オブジェクト、及び前記判定されたオブジェクトを描画する工程とを実行する工程と
    を有することを特徴とするコンピュータプログラム製品。
  34. 機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラム製品であって、前記方法は、
    最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信する工程と、
    集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し、且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも1つのオブジェクトの集合に割り当てる工程と、
    前記少なくとも1つのオブジェクトの集合を画像記憶装置に描画する工程と
    を有することを特徴とするコンピュータプログラム製品。
  35. オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラムであって、前記方法は、
    リスト中のオブジェクトを、第1のオブジェクトの集合、及び第2のオブジェクトの集合のうちの少なくとも一方に割り当てる工程と、
    前記第1のオブジェクトの集合の中の1つのオブジェクトの一部が、前記第1のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第1の描画方法を使用して、前記第1のオブジェクトの集合を画像記憶装置に描画する工程と、
    前記第2のオブジェクトの集合の中の各オブジェクトを、前記第2のオブジェクトの集合のその他のオブジェクトとは関係なく描画する第2の描画方法を使用して、前記第2のオブジェクトの集合を前記画像記憶装置に描画する工程と
    を有することを特徴とするコンピュータプログラム。
  36. オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラムにおいてであって、前記方法は、
    最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信する工程と、
    前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの表示リスト中のオブジェクトを含む第1の描画タスクを、第1の描画方法を使用して描画する工程と、
    前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の1つ以上のオブジェクトを含む1つ以上の第2の描画タスクを、第2の描画方法を使用して描画する工程とを有し、
    前記第1の描画方法は、1つのオブジェクトの一部が、前記第1の描画タスクの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第1の描画方法は、前記一部を描画し、
    前記第2の描画方法は、前記第2の描画タスクの各オブジェクトを、前記第2の描画タスクのその他のオブジェクトとは関係なく、画像記憶装置に描画することを特徴とするコンピュータプログラム。
  37. オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラムであって、前記方法は、
    (a) 前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順にオブジェクトが順序付けられたオブジェクトのリストを受信する工程と、
    (b) 優先度が高くなる順に、前記リスト中のオブジェクトを考慮し、注目オブジェクト毎に、
    (ba) 前記注目オブジェクトが合成を要求しない場合、第1の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画する工程と、
    (bb) 前記注目オブジェクトが合成を要求する場合には、
    (bb)(i) 前記注目オブジェクトより低い優先度を有し、且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する、前記リスト中のオブジェクトを判定する工程と、
    (bb)(ii) 1つのオブジェクトの一部が、第2の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第2の描画方法を使用して、前記注目オブジェクト、及び前記判定されたオブジェクトを描画する工程とを実行する工程と
    を有することを特徴とするコンピュータプログラム。
  38. オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラムであって、前記方法は、
    最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信する工程と、
    集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し、且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも1つのオブジェクトの集合に割り当てる工程と、
    前記少なくとも1つのオブジェクトの集合を画像記憶装置に描画する工程と
    を有することを特徴とするコンピュータプログラム。
JP2005193116A 2004-06-30 2005-06-30 グラフィックオブジェクトを描画する方法 Expired - Fee Related JP4756937B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2004903592 2004-06-30
AU2004903592A AU2004903592A0 (en) 2004-06-30 Method of Rendering Graphic Objects

Publications (3)

Publication Number Publication Date
JP2006018842A true JP2006018842A (ja) 2006-01-19
JP2006018842A5 JP2006018842A5 (ja) 2008-08-14
JP4756937B2 JP4756937B2 (ja) 2011-08-24

Family

ID=34981158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005193116A Expired - Fee Related JP4756937B2 (ja) 2004-06-30 2005-06-30 グラフィックオブジェクトを描画する方法

Country Status (7)

Country Link
US (1) US7755629B2 (ja)
EP (1) EP1612737B1 (ja)
JP (1) JP4756937B2 (ja)
KR (1) KR100721065B1 (ja)
CN (1) CN100552700C (ja)
AT (1) ATE506664T1 (ja)
DE (1) DE602005027520D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010541097A (ja) * 2007-10-01 2010-12-24 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 相対位置に基く制御によるページ上のグラフィックスオブジェクトの配置
JP2013030144A (ja) * 2010-11-03 2013-02-07 Canon Inc 中間フィル(fill)を複数のオブジェクトと関連付ける方法、装置及びシステム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7978196B2 (en) * 2006-03-02 2011-07-12 Canon Kabushiki Kaisha Efficient rendering of page descriptions
US7907151B2 (en) * 2007-05-14 2011-03-15 Business Objects Software Ltd. Apparatus and method for associating non-overlapping visual objects with z-ordered panes
AU2007203061A1 (en) * 2007-06-29 2009-01-15 Canon Kabushiki Kaisha Efficient banded hybrid rendering
US8289320B2 (en) * 2007-10-22 2012-10-16 Samsung Electronics Co., Ltd. 3D graphic rendering apparatus and method
AU2008202364B2 (en) * 2008-05-28 2011-04-21 Canon Kabushiki Kaisha Scan converting a set of vector edges to a set of pixel aligned edges
AU2009202377A1 (en) * 2009-06-15 2011-01-06 Canon Kabushiki Kaisha Combining overlapping objects
AU2010249337A1 (en) * 2010-12-13 2012-06-28 Canon Kabushiki Kaisha Predicting the times of future events in a multi-threaded RIP
AU2011205085B2 (en) * 2011-07-29 2014-05-15 Canon Kabushiki Kaisha 2D region rendering
CN102496169A (zh) * 2011-11-30 2012-06-13 威盛电子股份有限公司 重迭对象的绘制方法及装置
JP6058978B2 (ja) * 2012-11-19 2017-01-11 サターン ライセンシング エルエルシーSaturn Licensing LLC 画像処理装置及び画像処理方法、撮影装置、並びにコンピューター・プログラム
GB2517809B (en) 2014-02-13 2015-07-22 Imagination Tech Ltd Processing of primitive blocks in parallel tiling engine pipes
US10157485B2 (en) * 2016-02-17 2018-12-18 Texas Instruments Incorporated Method and system for merging of polygons in adjacent tiles
US10235612B2 (en) * 2016-07-29 2019-03-19 Canon Kabushiki Kaisha Information processing apparatus, information processing method, storage medium, and image forming apparatus for converting drawing data of a transparent object that does not overlap another drawing object into drawing data of a drawing object that does not have an alpha channel as color information
CN108404412B (zh) * 2018-02-02 2021-01-29 珠海金山网络游戏科技有限公司 一种次世代游戏渲染引擎的光源管理系统、装置及其方法
US11410005B2 (en) 2018-08-01 2022-08-09 Hewlett-Packard Development Company, L.P. Covert dot patterns
CN110264543B (zh) * 2019-06-21 2022-07-12 苏州科达科技股份有限公司 拼接画面的边框绘制方法、装置及存储介质
US11341383B2 (en) * 2019-08-18 2022-05-24 Kyocera Document Solutions Inc. Methods and apparatus to detect effective tiling area and fill tiles efficiently

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600768A (en) * 1995-06-06 1997-02-04 Apple Computer, Inc. Image generation with dynamically consolidated list of image data
US6016150A (en) * 1995-08-04 2000-01-18 Microsoft Corporation Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers
JP2000149035A (ja) * 1998-09-11 2000-05-30 Canon Inc 高速ラスタ形式レンダリングのためのグラフィックオブジェクト処理方法および装置
JP2002056396A (ja) * 2000-04-18 2002-02-20 Canon Inc グラフィックオブジェクトイメージ描画方法及び装置
US20020175925A1 (en) * 2000-05-17 2002-11-28 Lie Kok Tjoan Processing pixels of a digital image
JP2003216960A (ja) * 2001-10-31 2003-07-31 Canon Inc グラフィックオブジェクトの埋め込みを起動する方法および装置
JP2004000607A (ja) * 2003-05-12 2004-01-08 Namco Ltd ゲーム装置及び情報記憶媒体
JP2004122746A (ja) * 2002-03-25 2004-04-22 Canon Inc 階調プリンタの性能を最適化するシステムおよびその方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60198690A (ja) 1984-03-23 1985-10-08 Hitachi Ltd 高速図形処理方式
US5031117A (en) * 1990-02-13 1991-07-09 International Business Machines Corporation Prioritization scheme for enhancing the display of ray traced images
GB2259432A (en) * 1991-09-06 1993-03-10 Canon Res Ct Europe Ltd Three dimensional graphics processing
US5325485A (en) * 1992-10-30 1994-06-28 International Business Machines Corporation Method and apparatus for displaying primitives processed by a parallel processor system in a sequential order
US5493637A (en) * 1992-12-04 1996-02-20 Network Computing Devices, Inc. Video buffer recycling method and apparatus
CN1104792A (zh) * 1994-03-15 1995-07-05 杨高雄 高速电脑多边形剪裁跟踪器
EP0693737A3 (en) * 1994-07-21 1997-01-08 Ibm Method and apparatus for managing tasks in a multiprocessor system
WO1996013006A1 (en) * 1994-10-20 1996-05-02 Mark Alan Zimmer Digital mark-making method
JP3658027B2 (ja) * 1995-01-31 2005-06-08 キヤノン株式会社 図形編集装置および図形編集方法
US5692063A (en) * 1996-01-19 1997-11-25 Microsoft Corporation Method and system for unrestricted motion estimation for video
US5852502A (en) * 1996-05-31 1998-12-22 American Digital Imaging, Inc. Apparatus and method for digital camera and recorder having a high resolution color composite image output
US6104842A (en) * 1996-06-10 2000-08-15 Integrated Device Technology, Inc. Geometry processing of digital video models and images
US6239807B1 (en) * 1998-03-13 2001-05-29 Mgi Software Corporation Method and system for multi-resolution texture mapping
US6501483B1 (en) * 1998-05-29 2002-12-31 Ati Technologies, Inc. Method and apparatus for antialiasing using a non-uniform pixel sampling pattern
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6429949B1 (en) * 1998-10-15 2002-08-06 Electronics For Imaging, Inc. Low memory printer controller
AUPP923799A0 (en) * 1999-03-16 1999-04-15 Canon Kabushiki Kaisha Method for optimising compilation of compositing expressions
US6421053B1 (en) * 1999-05-24 2002-07-16 International Business Machines Corporation Block rendering method for a graphics subsystem
US6441817B1 (en) * 1999-11-29 2002-08-27 Xerox Corporation Methods and apparatuses for performing Z-buffer granularity depth calibration in graphics displays of three-dimensional scenes
US6891533B1 (en) * 2000-04-11 2005-05-10 Hewlett-Packard Development Company, L.P. Compositing separately-generated three-dimensional images
AUPQ905800A0 (en) * 2000-07-28 2000-08-24 Canon Kabushiki Kaisha Rendering page descriptions
US6891536B2 (en) * 2001-11-30 2005-05-10 Canon Kabushiki Kaisha Method of determining active priorities
KR100436815B1 (ko) * 2001-12-24 2004-06-23 한국전자통신연구원 실시간 렌더링을 위한 하드웨어 그래픽 가속장치 내 연산최적화 시스템 및 그 방법
US6700580B2 (en) * 2002-03-01 2004-03-02 Hewlett-Packard Development Company, L.P. System and method utilizing multiple pipelines to render graphical data
AU2003213492A1 (en) 2002-08-23 2004-03-11 Canon Kabushiki Kaisha Scanline Rendering with Persistent Spans
US20040075699A1 (en) * 2002-10-04 2004-04-22 Creo Inc. Method and apparatus for highlighting graphical objects
US7365743B1 (en) * 2002-10-08 2008-04-29 Adobe Systems Incorporated Assignments for parallel rasterization
AU2003900772A0 (en) * 2003-02-21 2003-03-13 Canon Kabushiki Kaisha Reducing the number of compositing operations performed in a pixel sequential rendering system
AU2003901416A0 (en) * 2003-03-27 2003-04-10 Canon Kabushiki Kaisha Graphical object group management system
EP1636787B1 (en) * 2003-05-30 2012-02-29 Pacific Data Images LLC Shading computer-generated objects using generalized shading regions
US7295342B2 (en) * 2003-06-27 2007-11-13 Xerox Corporation Method for identifing objects on white background for optimized rendering
US7095418B2 (en) * 2003-10-30 2006-08-22 Sensable Technologies, Inc. Apparatus and methods for texture mapping
US7269297B2 (en) * 2003-11-25 2007-09-11 Xerox Corporation Illuminant-neutral gray component replacement in systems for spectral multiplexing of source images to provide a composite image, for rendering the composite image, and for spectral demultiplexing of the composite image
US7379588B2 (en) * 2003-11-25 2008-05-27 Xerox Corporation Systems for spectral multiplexing of source images to provide a composite image, for rendering the composite image, and for spectral demultiplexing the composite image to obtain a normalized color image

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600768A (en) * 1995-06-06 1997-02-04 Apple Computer, Inc. Image generation with dynamically consolidated list of image data
US6016150A (en) * 1995-08-04 2000-01-18 Microsoft Corporation Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers
JP2000149035A (ja) * 1998-09-11 2000-05-30 Canon Inc 高速ラスタ形式レンダリングのためのグラフィックオブジェクト処理方法および装置
JP2002056396A (ja) * 2000-04-18 2002-02-20 Canon Inc グラフィックオブジェクトイメージ描画方法及び装置
US20020175925A1 (en) * 2000-05-17 2002-11-28 Lie Kok Tjoan Processing pixels of a digital image
JP2003216960A (ja) * 2001-10-31 2003-07-31 Canon Inc グラフィックオブジェクトの埋め込みを起動する方法および装置
US20030179200A1 (en) * 2001-10-31 2003-09-25 Martin Michael Anthony Activating a filling of a graphical object
JP2004122746A (ja) * 2002-03-25 2004-04-22 Canon Inc 階調プリンタの性能を最適化するシステムおよびその方法
JP2004000607A (ja) * 2003-05-12 2004-01-08 Namco Ltd ゲーム装置及び情報記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010541097A (ja) * 2007-10-01 2010-12-24 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 相対位置に基く制御によるページ上のグラフィックスオブジェクトの配置
US8862986B2 (en) 2007-10-01 2014-10-14 Hewlett-Packard Development Company, L.P. Arranging graphic objects on a page with relative position based control
JP2013030144A (ja) * 2010-11-03 2013-02-07 Canon Inc 中間フィル(fill)を複数のオブジェクトと関連付ける方法、装置及びシステム

Also Published As

Publication number Publication date
EP1612737B1 (en) 2011-04-20
CN100552700C (zh) 2009-10-21
DE602005027520D1 (de) 2011-06-01
ATE506664T1 (de) 2011-05-15
EP1612737A3 (en) 2008-03-12
CN1797432A (zh) 2006-07-05
US7755629B2 (en) 2010-07-13
KR100721065B1 (ko) 2007-05-22
JP4756937B2 (ja) 2011-08-24
KR20060048709A (ko) 2006-05-18
US20060001681A1 (en) 2006-01-05
EP1612737A2 (en) 2006-01-04

Similar Documents

Publication Publication Date Title
JP4756937B2 (ja) グラフィックオブジェクトを描画する方法
JP3919754B2 (ja) 画素順次描画システムにおいて実行される合成演算回数の削減法
US7277095B2 (en) Method of rendering graphical objects
AU2010202390B2 (en) Rasterising disjoint regions of a page in parallel
JP4365950B2 (ja) 高速ラスタ形式レンダリングのためのグラフィックオブジェクト処理方法および装置
US6891536B2 (en) Method of determining active priorities
US20100315431A1 (en) Combining overlapping objects
JP4630482B2 (ja) 表現ツリーを生成する装置及びラスタ画素イメージを描画する装置
US8723884B2 (en) Scan converting a set of vector edges to a set of pixel aligned edges
US8638470B2 (en) Efficient banded hybrid rendering
AU2013273660A1 (en) Method, apparatus and system for generating an intermediate region-based representation of a document
JP4143613B2 (ja) 描画方法、描画装置
AU2005202742B2 (en) Method of Rendering Graphic Objects
AU771813B2 (en) Converting path with non-zero winding fill rule or odd-even winding fill rule to a simple outline path
AU2002308789B2 (en) A Method for Determining Active Priorities
AU2004233516B2 (en) Tree-based compositing system
AU2003204832B2 (en) Rendering Graphic Object Based Images
AU2005201868A1 (en) Removing background colour in group compositing
AU2005202070A1 (en) Rendering graphic object based images
JP2001111805A (ja) 描画処理装置
AU2003220748A1 (en) Scan-based Rendering of Abutting Graphical Objects
AU2008229676A1 (en) On-demand rendering
AU2007202126A1 (en) Efficiently rendering objects in the presence of transparency
AU2005227419A1 (en) Method of clip-centric rendering
AU2008201723A1 (en) On-demand pixel-sequential edge tracking

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080627

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110428

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110520

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110531

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees