(57)【要約】      （修正有）【課題】複数の描画技法を使用して、既存構成の欠点を克服する。【解決手段】画像（９５０）中のオブジェクト（９５１〜９５５）のリストを受信し、そのリストは、最低優先度のオブジェクト（９５１）から最高優先度のオブジェクト（９５５）へ、オブジェクトを優先度の順位で並べ替える。これらのオブジェクトは、第１のオブジェクトの集合（９５１、９５２）及び／又は第２のオブジェクトの集合（９５３〜９５５）に割り当てられる。オブジェクトの一部が第１のオブジェクトの集合内で可視状態である場合、第１のオブジェクトの集合は、そのオブジェクトの一部のみを描画する第１の描画方法を使用して、画像記憶装置に描画される。第２のオブジェクトの集合は、第２の集合内の他のオブジェクトとは無関係の各オブジェクトを描画する第２の描画方法を使用して、画像記憶装置に描画される。【選択図】図１０Ａ
2006018842.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックオブジェクトのリストにより記述される画像を描画する方法であって、
前記リスト中のオブジェクトを、第１のオブジェクトの集合及び第２のオブジェクトの集合のうちの少なくとも一方の集合に割り当てる工程と、
前記第１のオブジェクトの集合のうちの１つのオブジェクトの一部が、前記第１のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、前記第１のオブジェクトの集合を画像記憶装置に描画する工程と、
前記第２のオブジェクトの集合の各オブジェクトを、前記第２のオブジェクトの集合におけるその他のオブジェクトとは関係なく描画する第２の描画方法を使用して、前記第２のオブジェクトの集合を前記画像記憶装置に描画する工程と
を有することを特徴とする方法。
【請求項２】
前記リスト中のオブジェクトは、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順位を有し、前記リストは、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有し、前記割り当てる工程は、
前記リスト中の最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトを、前記第１のオブジェクトの集合に割り当てるサブステップと、
前記最終合成オブジェクトより高い優先度を有する前記リスト中のオブジェクトを、前記第２のオブジェクトの集合に割り当てるサブステップと
を有することを特徴とする請求項１に記載の方法。
【請求項３】
前記リスト中のオブジェクトは、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順位を有し、前記オブジェクトは、画素を形成するように描画され、描画されるべき１つ以上の連続する画素のラン毎に、前記第１の描画方法は、
前記第１のオブジェクトの集合の中で、前記画素のランに対して有効であるオブジェクトを判定する工程と、
前記判定された有効オブジェクトのうちで、最高の優先度を有する不透明なオブジェクトを識別する工程と、
前記最高の優先度を有する不透明なオブジェクト、及び前記最高の優先度を有する不透明なオブジェクトより高い優先度を有する不透明でない有効オブジェクトを描画する工程と
を有することを特徴とする請求項１に記載の方法。
【請求項４】
前記リスト中のオブジェクトは、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順位を有し、前記オブジェクトは、画素を形成するように描画され、描画されるべき連続する画素のラン毎に、前記第２の描画方法は、
優先度が高くなる順を考慮して、前記第２のオブジェクトの集合における現在のオブジェクトが有効であるか否かをチェックする工程と、
現在のオブジェクトが有効である場合、前記現在のオブジェクトを前記画像記憶装置に描画する工程と
を有することを特徴とする請求項１に記載の方法。
【請求項５】
前記第２の描画方法は更に、
前記第２のオブジェクトの集合の中で、グループ中の他のオブジェクトとオーバーラップしないような連続するオブジェクトのグループを検索する工程と、
前記グループが発見された場合、前記グループ中のオブジェクトを同時に前記画像記憶装置に描画する工程と
を有することを特徴とする請求項４に記載の方法。
【請求項６】
各オブジェクトの最大範囲は、バウンディングボックスにより示され、前記グループ中のオブジェクトのバウンディングボックスは、前記グループの中の他のオブジェクトのバウンディングボックスとオーバーラップしないことを特徴とする請求項５に記載の方法。
【請求項７】
前記第２のオブジェクトの集合の中の複数の連続するオブジェクトが、クリップオブジェクトによりクリッピングされる場合、前記複数のオブジェクトは、前記第１の描画方法を使用して描画されることを特徴とする請求項４に記載の方法。
【請求項８】
更に、前記オブジェクトのリストを生成する工程を有し、
前記リストは、オブジェクト毎に、
前記オブジェクトを記述する１つ以上の輪郭の集合と、
前記オブジェクトの最大範囲を示すバウンディングボックスと、
前記オブジェクトが合成を要求するか否かを示すためのフラグと
を含むことを特徴とする請求項１に記載の方法。
【請求項９】
オブジェクトのグループが１つ以上のクリップオブジェクトによりクリッピングされる場合、前記クリップオブジェクトのうちの第１のクリップオブジェクトと、クリッピングされるべき前記オブジェクトのグループのうちの最終オブジェクトとの間の輪郭は、単一オブジェクトとして、前記リストに追加されることを特徴とする請求項８に記載の方法。
【請求項１０】
前記リスト中のオブジェクトは、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順位を有し、前記割り当てる工程は、
前記リスト中のオブジェクトを、優先度が高くなる順に考慮するサブステップと、
注目オブジェクト毎に、
現在のオブジェクトが合成を要求しない場合には、前記現在のオブジェクトを前記第２のオブジェクトの集合に挿入するサブステップと、
前記現在のオブジェクトが合成を要求する場合には、
（i）  前記現在のオブジェクトより低い優先度を有し、前記現在のオブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定する工程と、
（ii）  前記現在のオブジェクト、及び前記判定されたオブジェクトを前記第１のオブジェクトの集合に挿入する工程とを実行するサブステップと
を有することを特徴とする請求項１に記載の方法。
【請求項１１】
前記判定されたオブジェクトの中で、前記現在のオブジェクトの輪郭の内側に位置する部分は、前記第１のオブジェクトの集合に挿入されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記画像記憶装置は、画像のうちの注目部分を格納する帯状領域記憶装置であり、前記第１の描画方法及び第２の描画方法は、画像のうちの前記注目部分に存在するオブジェクトを描画することを特徴とする請求項１に記載の方法。
【請求項１３】
前記割り当てる工程は、前記第１の描画方法により描画されるべき第１の描画タスク及び前記第２の描画方法により描画されるべき第２の描画タスクにオブジェクトをそれぞれ割り当て、複数の描画タスクが同時に処理されることを特徴とする請求項１に記載の方法。
【請求項１４】
オブジェクト単位の画像を描画する方法であって、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像のオブジェクトをリストとして配列し、合成を要求する前記最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信する工程と、
前記表示リスト中の最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトに対して動作する第１の描画タスクを処理する工程と、
前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の１つ以上のオブジェクトに対して動作する少なくとも１つの第２の描画タスクを処理する工程とを有し、
前記第１の描画タスクは、１つのオブジェクトの一部が、前記第１の描画タスクにより処理されるオブジェクトの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画し、
前記第２の描画タスクは、前記第２の描画タスクにより処理される他のオブジェクトとは関係なく、オブジェクトを画像記憶装置に描画する
ことを特徴とする方法。
【請求項１５】
互いにオーバーラップせず、連続する優先度の順位を有する複数のオブジェクトは、単一の第２の描画タスクに割り当てられることを特徴とする請求項１４に記載の方法。
【請求項１６】
グラフィックオブジェクトとして表現されるデータにより記述される画像を形成する方法であって、
（ａ）  前記画像を記述するオブジェクトのリストであって、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順にオブジェクトが順序付けられているオブジェクトのリストを受信する工程と、
（ｂ）  優先度が高くなる順に、前記リスト中のオブジェクトを考慮し、注目オブジェクト毎に、
（ｂａ）  前記注目オブジェクトが合成を要求しない場合、第１の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画し、
（ｂｂ）  前記注目オブジェクトが合成を要求する場合には、
（ｂｂ）（i）  前記リスト中で、前記注目オブジェクトより低い優先度を有し、前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定する工程と、
（ｂｂ）（ii）  １つのオブジェクトの一部が、第２の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する前記第２の描画方法を使用して、前記注目オブジェクト、及び前記判定されたオブジェクトを描画する工程を実行する工程と
を有することを特徴とする方法。
【請求項１７】
ステップ（ｂｂ）（ii）は、前記判定されたオブジェクトの中で、前記注目オブジェクトの輪郭の内側に位置する領域を描画することを特徴とする請求項１６に記載の方法。
【請求項１８】
オブジェクト単位の画像を描画する方法であって、
（ａ）  最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトをリストとして配列する表示リストを受信する工程と、
（ｂ）  少なくとも１つの所定の基準に従って、前記表示リスト中のオブジェクトを、第１のオブジェクトの集合、及び第２のオブジェクトの集合のうちの少なくとも一方に割り当てる工程と、
（ｃ）  第１の描画方法を使用して、前記第１のオブジェクトの集合の中のオブジェクトを描画する工程と、
（ｄ）  第２の描画方法を使用して、前記第２のオブジェクトの集合の中のオブジェクトを描画する工程とを有し、
描画されるべき連続する画素から成る画素ラン毎に、前記第１の描画方法は、
（ｃａ）  前記第１のオブジェクトの集合の中で、前記画素のランに対して有効であるオブジェクトを判定する工程と、
（ｃｂ）  前記判定された有効オブジェクトの中で、最高の優先度を有する不透明なオブジェクトを識別する工程と、
（ｃｃ）  前記最高優先度を有する不透明なオブジェクト、及び前記最高優先度を有する不透明なオブジェクトより高い優先度を有する不透明でない有効オブジェクトを描画する工程とを有し、
描画されるべき連続する画素から成る画素ラン毎に、前記第２の描画方法は、
（ｄａ）  優先度が高くなる順に前記第２のオブジェクトの集合を考慮して、前記第２のオブジェクトの集合の中の現在のオブジェクトが有効であるか否かをチェックする工程と、
（ｄｂ）  前記現在のオブジェクトが有効である場合、前記現在のオブジェクトを画像記憶装置に描画する工程とを有することを特徴とする方法。
【請求項１９】
オブジェクト単位の画像を描画する方法であって、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列するリストを受信する工程と、
集合の中のオブジェクトが前記リストにおいて連続する優先度の順位を有し、且つ集合の中の各オブジェクトが集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも１つのオブジェクトの集合に割り当てる工程と、
前記少なくとも１つのオブジェクトの集合を画像記憶装置に描画する工程と
を備えることを特徴とする方法。
【請求項２０】
前記リストは、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有し、前記割り当てる工程は、前記最終合成オブジェクトより高い優先度を有する、前記リスト中のオブジェクトを考慮し、前記方法は、
１つのオブジェクトの一部が、前記リスト中のオブジェクトの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する描画方法を使用して、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの前記リスト中のオブジェクトを描画する工程を更に有することを特徴とする請求項１９に記載の方法。
【請求項２１】
グラフィックオブジェクトのリストにより記述される画像を描画する方法であって、
前記リスト中のオブジェクトを、第１のオブジェクトの集合及び第２のオブジェクトの集合のうちの少なくとも一方に割り当てる工程と、
画素順次描画方法を使用して、前記第１のオブジェクトの集合の中のオブジェクトを描画する工程と、
ペインターズアルゴリズム描画方法を使用して、前記第２のオブジェクトの集合の中のオブジェクトを描画する工程と
を有することを特徴とする方法。
【請求項２２】
グラフィックオブジェクトのリストにより記述される画像を描画する装置であって、
第１の手段であって、１つのオブジェクトの一部が、前記第１の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の手段が、前記一部を描画する第１の描画方法を使用して、オブジェクトを画像記憶装置に描画する第１の手段と、
第２の手段であって、前記第２の手段により受信される各オブジェクトを、前記第２の手段により受信されるその他のオブジェクトとは関係なく描画する第２の描画方法を使用して、オブジェクトを前記画像記憶装置に描画する第２の手段と、
前記リスト中のグラフィックオブジェクトを、前記第１の手段及び前記第２の手段のうちの少なくとも一方に割り当てる手段と
を備えることを特徴とする装置。
【請求項２３】
更に、
前記グラフィックオブジェクトのリストを生成する手段を備えることを特徴とする請求項２２に記載の装置。
【請求項２４】
オブジェクト単位の画像を描画する装置であって、
第１の手段であって、１つのオブジェクトの一部が、前記第１の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の手段が、前記一部を描画する第１の描画方法を使用して、オブジェクトを画像記憶装置に描画する第１の手段と、
第２の手段であって、前記第２の手段により受信される各オブジェクトを、前記第２の手段により受信されるその他のオブジェクトとは関係なく前記画像記憶装置に描画する第２の描画方法を使用して、オブジェクトを描画する第２の手段と、
リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられ、且つ前記リストが合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有するような、前記画像中のオブジェクトのリストを受信する手段と、
オブジェクトを前記第１の描画する手段、及び前記第２の描画する手段に割り当てる手段であって、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトの前記リストの第１の部分を、前記第１の描画する手段に割り当て、前記最終合成オブジェクトより高い優先度を有する１つ以上のオブジェクトを、前記第２の描画する手段に割り当てる手段と
を備えることを特徴とする装置。
【請求項２５】
前記割り当てる手段は、複数のオブジェクトを前記第２の描画する手段に同時に割り当て、前記複数のオブジェクトは、互いにオーバーラップせず、前記リストにおいて連続する優先度位置を有することを特徴とする請求項２４に記載の装置。
【請求項２６】
前記第２の描画する手段を複数具備することを特徴とする請求項２４に記載の装置。
【請求項２７】
オブジェクト単位の画像を描画する装置であって、
第１の手段であって、１つのオブジェクトの一部が、前記第１の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の手段が、前記一部を描画する第１の描画方法を使用して、オブジェクトを画像記憶装置に描画する第１の手段と、
第２の手段であって、前記第２の手段により受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく前記画像記憶装置に描画する第２の描画方法を使用して、オブジェクトを描画する第２の手段と、
オブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられるような、前記画像中のオブジェクトのリストを受信する手段と、
合成を要求するオブジェクトに対して、前記合成を要求するオブジェクトより低い優先度を有し、且つ前記合成を要求するオブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する、前記リスト内のオブジェクトを判定する手段と、
前記リスト中の非合成オブジェクトを、前記第２の描画する手段に割り当てる手段と、
前記リスト中の合成オブジェクトを、前記判定する手段により、合成を要求するオブジェクト毎に判定されたオブジェクトと共に、前記第１の描画する手段に割り当てる手段と
を備えることを特徴とする装置。
【請求項２８】
オブジェクト単位の画像を描画する装置であって、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信する手段と、
集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し、且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも１つのオブジェクトの集合に割り当てる手段と、
前記少なくとも１つのオブジェクトの集合を画像記憶装置に描画する手段と
を備えることを特徴とする装置。
【請求項２９】
オブジェクト単位の画像を描画するシステムにおいて、
１つのオブジェクトの一部が、第１の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、画像記憶装置にオブジェクトを描画する１つ以上の第１のレンダラと、
１つ以上の第２のレンダラであって、前記第２のレンダラにより受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく、前記画像記憶装置に描画する第２の描画方法を使用して、オブジェクトを描画する第２のレンダラと、
リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられ、且つ前記リストが合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有するような前記画像のオブジェクトのリストを生成する表示リスト生成器と、
前記表示リスト生成器により生成されたリストを格納する表示リスト記憶装置と、
前記表示リスト記憶装置、前記第１のレンダラ、及び前記第２のレンダラと通信し、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトを、前記第１のレンダラに割り当て、前記最終合成オブジェクトより高い優先度を有するオブジェクトを１つ以上の第２のレンダラに割り当てるようにプログラムされたプロセッサと
を備えることを特徴とするシステム。
【請求項３０】
オブジェクト単位の画像を描画するシステムであって、
１つのオブジェクトの一部が、第１の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、画像記憶装置にオブジェクトを描画する１つ以上の第１のレンダラと、
１つ以上の第２のレンダラであって、前記第２のレンダラにより受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく、前記画像記憶装置に描画する第２の描画方法を使用して、オブジェクトを描画する第２のレンダラと、
リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられるような、前記画像中のオブジェクトのリストを生成する表示リスト生成器と、
前記表示リスト生成器により生成されたリストを格納する表示リスト記憶装置と、
前記表示リスト記憶装置、前記第１のレンダラ、及び前記第２のレンダラと通信し、
（i）  優先度が高くなる順に、前記リスト中のオブジェクトを考慮する工程と、
注目オブジェクト毎に、
（ii）  前記現在のオブジェクトが合成を要求しない場合、前記現在のオブジェクトを前記第２のレンダラに割り当てる工程と、
（iii）  前記現在のオブジェクトが合成を要求する場合、前記注目オブジェクトより低い優先度を有し、且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する前記リスト内のオブジェクトを判定し、前記注目オブジェクト、及び前記判定されたオブジェクトを前記第１のレンダラに割り当てる工程とを実行するようにプログラムされたプロセッサと
を備えることを特徴とするシステム。
【請求項３１】
機械可読記憶媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品であって、前記方法は、
リスト中のオブジェクトを、第１のオブジェクトの集合、及び第２のオブジェクトの集合のうちの少なくとも一方に割り当てる工程と、
前記第１のオブジェクトの集合のうちの１つのオブジェクトの一部が、前記第１のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、前記第１のオブジェクトの集合を画像記憶装置に描画する工程と、
前記第２のオブジェクトの集合の中の各オブジェクトを、前記第２のオブジェクトの集合のその他のオブジェクトとは関係なく描画する第２の描画方法を使用して、前記第２のオブジェクトの集合を前記画像記憶装置に描画する工程と
を備えることを特徴とするコンピュータプログラム製品。
【請求項３２】
機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラム製品であって、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信する工程と、
前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの前記表示リスト中のオブジェクトを含む第１の描画タスクを、第１の描画方法を使用して描画する工程と、
前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の１つ以上のオブジェクトを含む１つ以上の第２の描画タスクを、第２の描画方法を使用して描画する工程とを有し、
前記第１の描画方法は、１つのオブジェクトの一部が、前記第１の描画タスクの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の描画方法は、前記一部を描画し、
前記第２の描画方法は、前記第２の描画タスクの各オブジェクトを、前記第２の描画タスクの中のその他のオブジェクトとは関係なく、画像記憶装置に描画する
ことを特徴とするコンピュータプログラム製品。
【請求項３３】
機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラム製品であって、前記方法は、
（ａ）  前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、オブジェクトが優先度の順に順序付けられたオブジェクトのリストを受信する工程と、
（ｂ）  優先度が高くなる順に前記リスト内のオブジェクトを考慮し、注目オブジェクト毎に、
（ｂａ）  前記注目オブジェクトが合成を要求しない場合、第１の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画し、
（ｂｂ）  前記注目オブジェクトが合成を要求する場合には、
（ｂｂ）（i）  前記注目オブジェクトより低い優先度を有し、且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する前記リスト中のオブジェクトを判定する工程と、
（ｂｂ）（ii）  １つのオブジェクトの一部が、第２の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第２の描画方法を使用して、前記注目オブジェクト、及び前記判定されたオブジェクトを描画する工程とを実行する工程と
を有することを特徴とするコンピュータプログラム製品。
【請求項３４】
機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラム製品であって、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信する工程と、
集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し、且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも１つのオブジェクトの集合に割り当てる工程と、
前記少なくとも１つのオブジェクトの集合を画像記憶装置に描画する工程と
を有することを特徴とするコンピュータプログラム製品。
【請求項３５】
オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラムであって、前記方法は、
リスト中のオブジェクトを、第１のオブジェクトの集合、及び第２のオブジェクトの集合のうちの少なくとも一方に割り当てる工程と、
前記第１のオブジェクトの集合の中の１つのオブジェクトの一部が、前記第１のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、前記第１のオブジェクトの集合を画像記憶装置に描画する工程と、
前記第２のオブジェクトの集合の中の各オブジェクトを、前記第２のオブジェクトの集合のその他のオブジェクトとは関係なく描画する第２の描画方法を使用して、前記第２のオブジェクトの集合を前記画像記憶装置に描画する工程と
を有することを特徴とするコンピュータプログラム。
【請求項３６】
オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラムにおいてであって、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信する工程と、
前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの表示リスト中のオブジェクトを含む第１の描画タスクを、第１の描画方法を使用して描画する工程と、
前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の１つ以上のオブジェクトを含む１つ以上の第２の描画タスクを、第２の描画方法を使用して描画する工程とを有し、
前記第１の描画方法は、１つのオブジェクトの一部が、前記第１の描画タスクの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の描画方法は、前記一部を描画し、
前記第２の描画方法は、前記第２の描画タスクの各オブジェクトを、前記第２の描画タスクのその他のオブジェクトとは関係なく、画像記憶装置に描画することを特徴とするコンピュータプログラム。
【請求項３７】
オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラムであって、前記方法は、
（ａ）  前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順にオブジェクトが順序付けられたオブジェクトのリストを受信する工程と、
（ｂ）  優先度が高くなる順に、前記リスト中のオブジェクトを考慮し、注目オブジェクト毎に、
（ｂａ）  前記注目オブジェクトが合成を要求しない場合、第１の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画する工程と、
（ｂｂ）  前記注目オブジェクトが合成を要求する場合には、
（ｂｂ）（i）  前記注目オブジェクトより低い優先度を有し、且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する、前記リスト中のオブジェクトを判定する工程と、
（ｂｂ）（ii）  １つのオブジェクトの一部が、第２の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第２の描画方法を使用して、前記注目オブジェクト、及び前記判定されたオブジェクトを描画する工程とを実行する工程と
を有することを特徴とするコンピュータプログラム。
【請求項３８】
オブジェクト単位の画像を描画する方法を実行するためにプログラムコードを実行するデータ処理装置の動作を制御するための機械可読プログラムコードを備えるコンピュータプログラムであって、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信する工程と、
集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し、且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも１つのオブジェクトの集合に割り当てる工程と、
前記少なくとも１つのオブジェクトの集合を画像記憶装置に描画する工程と
を有することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、オブジェクト単位の画像を描画することに関する。特に、本発明は、複数の描画技法を使用して、グラフィックオブジェクトを描画する方法に関する。
【背景技術】
【０００２】
コンピュータアプリケーションが印刷及び／又は表示を実行するための装置にデータを提供する場合、ページ記述言語（ＰＤＬ）により、ページの中間記述が装置ドライバソフトウェアに与えられることが多い。ページ記述言語は、ページ又は表示装置に描画されるべきグラフィックオブジェクトの記述を提供する。これは、アプリケーションにより、ラスタ画像データが直接に生成され、印刷又は表示のために送信されるいくつかの構成とは対照的である。ページ記述言語の例には、CanonのLIPSＴＭ及びHPのPCLＴＭ等がある。
【０００３】
これと同等の方法として、アプリケーションは、ファンクションコールにより、MicrosoftＴＭのＷｉｎｄｏｗｓ（登録商標） ＧＤＩ等のグラフィックスデバイスインタフェース（ＧＤＩ）層に、グラフィックオブジェクトの記述のセットを提供してもよい。関連する目標プリンタのプリンタドライバは、ＧＤＩ層からグラフィックオブジェクト記述を受信するソフトウェアである。オブジェクト毎に、プリンタドライバは、目標プリンタの描画システムにより理解されるページ記述言語でオブジェクトの記述を生成する役割を果たす。
【０００４】
プリンタの描画システムは、ＰＤＬインタープリタを含む。ＰＤＬインタープリタは、グラフィックオブジェクト記述を解析し、グラフィックオブジェクトデータの表示リストを作成する。描画システムは、ラスタ画像プロセッサ（ＲＩＰ）を更に含む。ラスタ画像プロセッサは、表示リストを処理し、データを、例えば、Ｃ、Ｍ、Ｙ及びＫの各チャネルを含む画素値として描画する。この形式になった時点で、プリンタは、ページを印刷する。
【０００５】
後の印刷及び／又は表示に備えて、ページ又は画面の画素単位の画像データ表現を保持するために、多くのＲＩＰは、当該技術分野において、フレームストア又はページバッファとして知られる大容量のメモリを利用する。通常、グラフィックオブジェクトの輪郭が計算され、色値によって塗りつぶされ、フレームストアに書き込まれる。二次元グラフィックスの場合、他のオブジェクトの前方に現れるオブジェクトは、単純に、背景オブジェクトの後にフレームストアに書き込まれる。それにより、前面のオブジェクトは、画素毎に、背景オブジェクトと置き換えられる。当該技術分野において、これは、「ペインターズアルゴリズム」として一般に知られている。最も後方に位置するオブジェクトから、最も前方に位置するオブジェクトまで、オブジェクトは、優先度の順に考慮される。通常、各オブジェクトは、走査線の順にラスタ化され、画素は、各走査線に沿って、ラン毎に順次フレームストアに書き込まれる。ＲＩＰの中には、オブジェクトを他のオブジェクトと合成できるものがある。例えば、１つ以上のグラフィックオブジェクトと、既にフレームストアに描画された画素との間で、論理演算又は算術演算を指定し、それを実行できる。そのような場合、描画原理は同一のままである。すなわち、オブジェクト（又は複数のオブジェクト群）は、走査線の順にラスタ化され、特定された演算の結果が計算され、各走査線に沿って、ラン毎に順次フレームストアに書き込まれる。
【０００６】
ペインターズアルゴリズム描画方法には、いくつかの問題がある。問題の１つは、１つのオブジェクトを描画することにより、フレームストアに書き込まれる多数の画素が、それ以後のオブジェクトを描画する時に上書きされることである。後の段階で上書きされる画素データをフレームストアに書き込むために、資源を使用することは、明らかに不都合である。
【０００７】
もう１つの問題は、オブジェクトが合成を要求する場合、そのオブジェクトの下方に位置するオブジェクトは、通常、フレームストアから読み出され、何らかの方法により、そのオブジェクトの画素と組み合わされることである。フレームストアの画素が、合成を要求するオブジェクトより短いビット深さに格納されている場合、多くの合成演算は、不正確な結果を生成する。例えば、グラフィックオブジェクトが８ビット／チャネルのＲＧＢＡビットマップであり、フレームストアが、１ビット／チャネルの中間調の画素データを保持している場合が、これに当てはまる。そのような状況が起こるのは、フレームストアにおいて、印刷実行のために要求されるビット深さに画素値が格納されることが多いためである。チャネル毎に全８ビットで画素を格納することは可能であるが、６００ｄｐｉの分解能で、８ビット／チャネルのＲＧＢＡフレームストアは、Ａ４ページ１枚分に対して、１００ＭＢのメモリを必要とする。また、８ビット／チャネルのフレームストアにページを描画した後になっても、印刷を実行するために、そのページを、より短いビット深さに変換しなければならず、非効率的である。
【０００８】
他のＲＩＰは、フレームストアの必要性を排除し且つ上書きの問題を克服するために、画素順次描画方法を利用する。それらのシステムにおいては、各画素は、ラスタ順に生成される。描画されるべき全てのオブジェクトは、表示リストに保持される。各走査線上で、その走査線と交差するオブジェクトの輪郭が、走査線との交点の昇順に保持される。それらの交点、又は輪郭交差は、順次考慮され、表示リスト中のオブジェクトを有効又は無効にする。輪郭が１対毎に考慮され、その画素の範囲（画素ラン）について、不透明なオブジェクトにより、どのオブジェクトが掩蔽されるかに基づいて、第１の輪郭と第２の輪郭との間に位置する画素毎のカラーデータが生成される。次の走査線に備えて、各々の輪郭の性質に従って、各輪郭が交差する座標が更新され、それら輪郭は、その走査線との交点の昇順にソートされる。新たな輪郭は、有効輪郭リストと呼ばれる輪郭のリストにマージされる。本明細書において、不透明なオブジェクトにより掩蔽されない画素ラン中のオブジェクトのみを描画する描画方法を「画素順次描画方法」と呼ぶ。
【０００９】
そのような画素順次描画を使用するグラフィックスシステムは、フレームストア又はラインストアがなく、不必要な上書きもないという点で、大きな利点を有する。合成を要求するオブジェクトは、各オブジェクトの本来のカラーデータを使用して、画素毎に処理される。
【００１０】
走査線毎に、ｘの昇順にソートされた順序で追跡され、維持されなければならない輪郭の数が多い場合、画素順次描画方法にも問題が起こる。１つの走査線において、各輪郭が更新されるため、輪郭は、通常は挿入整列法により、有効輪郭リストに再度挿入される。何十万もの輪郭から構成される複雑なページの場合、走査線毎に輪郭のソートリストを維持するために要求される時間は、複雑なページ１枚分を描画するための合計時間の大部分を占めることになる。
【発明の開示】
【課題を解決するための手段】
【００１１】
本発明の目的は、既存構成の１つ以上の欠点を、実質的に克服すること、又は少なくとも改善することである。
【００１２】
本発明の第１の面によると、グラフィックオブジェクトのリストにより記述される画像を描画する方法において、
前記リスト中のオブジェクトを、第１のオブジェクトの集合及び第２のオブジェクトの集合のうちの少なくとも一方の集合に割り当てるステップと；
前記第１のオブジェクトの集合のうちの１つのオブジェクトの一部が、前記第１のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、前記第１のオブジェクトの集合を画像記憶装置に描画するステップと；
前記第２のオブジェクトの集合の各オブジェクトを、前記第２のオブジェクトの集合におけるその他のオブジェクトとは関係なく描画する第２の描画方法を使用して、前記第２のオブジェクトの集合を前記画像記憶装置に描画するステップとから成る方法が提供される。
【００１３】
本発明の別の面によると、オブジェクト単位の画像を描画する方法において、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像のオブジェクトをリストとして配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信するステップと；
前記表示リスト中の最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトに対して動作する第１の描画タスクを処理するステップと；
前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の１つ以上のオブジェクトに対して動作する少なくとも１つの第２の描画タスクを処理するステップとから成り、
前記第１の描画タスクは、１つのオブジェクトの一部が、前記第１の描画タスクにより処理されるオブジェクトの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画し、
前記第２の描画タスクは、前記第２の描画タスクにより処理される他のオブジェクトとは関係なく、オブジェクトを画像記憶装置に描画する方法が提供される。
【００１４】
本発明の別の面によると、グラフィックオブジェクトとして表現されるデータにより記述される画像を形成する方法において、
（ａ）前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順にオブジェクトが順序付けられたオブジェクトのリストを受信するステップと；
（ｂ）優先度が高くなる順に、前記リスト中のオブジェクトを考慮し、注目オブジェクト毎に、
（ｂａ）前記注目オブジェクトが合成を要求しない場合、第１の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画し；
（ｂｂ）前記注目オブジェクトが合成を要求する場合には、
（ｂｂ）（i）前記リスト中で、前記注目オブジェクトより低い優先度を有し、前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定するステップと、
（ｂｂ）（ii）１つのオブジェクトの一部が、第２の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第２の描画方法を使用して、前記注目オブジェクト及び判定されたオブジェクトを描画するステップとを実行するステップとから成る方法が提供される。
【００１５】
本発明の別の面によると、オブジェクト単位の画像を描画する方法において、
（ａ）最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトをリストとして配列する表示リストを受信するステップと；
（ｂ）少なくとも１つの所定の基準に従って、前記表示リスト中のオブジェクトを、第１のオブジェクトの集合及び第２のオブジェクトの集合のうちの少なくとも一方に割り当てるステップと；
（ｃ）第１の描画方法を使用して、前記第１のオブジェクトの集合の中のオブジェクトを描画するステップと；
（ｄ）第２の描画方法を使用して、前記第２のオブジェクトの集合の中のオブジェクトを描画するステップとから成り、
描画されるべき連続する画素から成る画素ラン毎に、前記第１の描画方法は、
（ｃａ）前記第１のオブジェクトの集合の中で、前記画素のランに対して有効であるオブジェクトを判定するステップと；
（ｃｂ）判定された有効オブジェクトの中で、最高の優先度を有する不透明なオブジェクトを識別するステップと；
（ｃｃ）前記最高優先度を有する不透明なオブジェクト、及び前記最高優先度を有する不透明なオブジェクトより高い優先度を有する不透明でない有効オブジェクトを描画するステップとを含み；
描画されるべき連続する画素から成る画素ラン毎に、前記第２の描画方法は、
（ｄａ）優先度が高くなる順に前記第２のオブジェクトの集合を考慮して、前記第２のオブジェクトの集合の中の現在のオブジェクトが有効であるか否かを検査するステップと；
（ｄｂ）前記現在のオブジェクトが有効である場合、前記現在のオブジェクトを画像記憶装置に描画するステップとを含む方法が提供される。
【００１６】
本発明の別の面によると、オブジェクト単位の画像を描画する方法において、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列するリストを受信するステップと；
集合の中のオブジェクトが前記リストにおいて連続する優先度の順位を有し且つ集合の中の各オブジェクトが集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも１つのオブジェクトの集合に割り当てるステップと；
前記少なくとも１つのオブジェクトの集合を画像記憶装置に描画するステップとから成る方法が提供される。
【００１７】
本発明の別の面によると、グラフィックオブジェクトのリストにより記述される画像を描画する方法において、
前記リスト中のオブジェクトを、第１のオブジェクトの集合及び第２のオブジェクトの集合のうちの少なくとも一方に割り当てるステップと；
画素順次描画方法を使用して、前記第１のオブジェクトの集合の中のオブジェクトを描画するステップと；
ペインターズアルゴリズム描画方法を使用して、前記第２のオブジェクトの集合の中のオブジェクトを描画するステップとから成る方法が提供される。
【００１８】
本発明の別の面によると、グラフィックオブジェクトのリストにより記述される画像を描画する装置において、
第１の手段であって、１つのオブジェクトの一部が、前記第１の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の手段が、前記一部を描画する第１の描画方法を使用して、オブジェクトを画像記憶装置に描画する第１の手段と；
第２の手段であって、前記第２の手段により受信される各オブジェクトを、前記第２の手段により受信されるその他のオブジェクトとは関係なく描画する第２の描画方法を使用して、オブジェクトを前記画像記憶装置に描画する第２の手段と；
前記リスト中のグラフィックオブジェクトを、前記第１の手段及び前記第２の手段のうちの少なくとも一方に割り当てる手段とを具備する装置が提供される。
【００１９】
本発明の別の面によると、オブジェクト単位の画像を描画する装置において、
第１の手段であって、１つのオブジェクトの一部が、前記第１の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の手段が、前記一部を描画する第１の描画方法を使用して、オブジェクトを画像記憶装置に描画する第１の手段と；
第２の手段であって、前記第２の手段により受信される各オブジェクトを、前記第２の手段により受信されるその他のオブジェクトとは関係なく前記画像記憶装置に描画する第２の描画方法を使用して、オブジェクトを描画する第２の手段と；
リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられ、且つ合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有するような、前記画像中のオブジェクトのリストを受信する手段と；
オブジェクトを前記第１の描画する手段及び前記第２の描画する手段に割り当てる手段であって、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトの前記リストの第１の部分を、前記第１の描画する手段に割り当て、前記最終合成オブジェクトより高い優先度を有する１つ以上のオブジェクトを、前記第２の描画する手段に割り当てる手段とを具備する装置が提供される。
【００２０】
本発明の別の面によると、オブジェクト単位の画像を描画する装置において、
第１の手段であって、１つのオブジェクトの一部が、前記第１の手段により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の手段が、前記一部を描画する第１の描画方法を使用して、オブジェクトを画像記憶装置に描画する第１の手段と；
第２の手段であって、前記第２の手段により受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく前記画像記憶装置に描画する第２の描画方法を使用して、オブジェクトを描画する第２の手段と；
オブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられるような、前記画像中のオブジェクトのリストを受信する手段と；
合成を要求するオブジェクトに対して、前記合成を要求するオブジェクトより低い優先度を有し且つ前記合成を要求するオブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定する手段と；
前記リスト中の非合成オブジェクトを、前記第２の描画する手段に割り当てる手段と；
前記リスト中の合成オブジェクトを、前記判定する手段により、合成を要求するオブジェクト毎に判定されたオブジェクトと共に、前記第１の描画する手段に割り当てる手段とを具備する装置が提供される。
【００２１】
本発明の別の面によると、オブジェクト単位の画像を描画する装置において、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信する手段と；
集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも１つのオブジェクトの集合に割り当てる手段と；
前記少なくとも１つのオブジェクトの集合を画像記憶装置に描画する手段とを具備する装置が提供される。
【００２２】
本発明の別の面によると、オブジェクト単位の画像を描画するシステムにおいて、
１つのオブジェクトの一部が、第１の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、画像記憶装置にオブジェクトを描画する１つ以上の第１の描画装置と；
１つ以上の第２の描画装置であって、前記第２の描画装置により受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく、前記画像記憶装置に描画する第２の描画方法を使用して、オブジェクトを描画する第２の描画装置と；
リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられ、且つ合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有するような前記画像のオブジェクトのリストを生成する表示リスト生成器と；
前記表示リスト生成器により生成されたリストを格納する表示リスト記憶装置と；
前記表示リスト記憶装置、前記第１の描画装置及び前記第２の描画装置と通信し、前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでのオブジェクトを前記第１の描画装置に割り当て、前記最終合成オブジェクトより高い優先度を有するオブジェクトを１つ以上の第２の描画装置に割り当てるようにプログラムされたプロセッサとを具備するシステムが提供される。
【００２３】
本発明の別の面によると、オブジェクト単位の画像を描画するシステムにおいて、
１つのオブジェクトの一部が、第１の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、画像記憶装置にオブジェクトを描画する１つ以上の第１の描画装置と；
１つ以上の第２の描画装置であって、前記第２の描画装置により受信される各オブジェクトを、受信されるその他のオブジェクトとは関係なく、前記画像記憶装置に描画する第２の描画方法を使用して、オブジェクトを描画する第２の描画装置と；
リスト中のオブジェクトが、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に順序付けられるような、前記画像中のオブジェクトのリストを生成する表示リスト生成器と；
前記表示リスト生成器により生成されたリストを格納する表示リスト記憶装置と；
前記表示リスト記憶装置、前記第１の描画装置及び前記第２の描画装置と通信し、
（i）優先度が高くなる順に、前記リスト中のオブジェクトを考慮するステップと；
注目オブジェクト毎に、
（ii）前記現在のオブジェクトが合成を要求しない場合、前記現在のオブジェクトを前記第２の描画装置に割り当てるステップと；
（iii）前記現在のオブジェクトが合成を要求する場合、前記注目オブジェクトより低い優先度を有し且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有するオブジェクトを判定し、前記注目オブジェクト及び判定されたオブジェクトを前記第１の描画装置に割り当てるステップとを実行するようにプログラムされたプロセッサとを具備するシステムが提供される。
【００２４】
本発明の別の面によると、機械可読記憶媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品において、前記方法は、
リスト中のオブジェクトを、第１のオブジェクトの集合及び第２のオブジェクトの集合のうちの少なくとも一方に割り当てるステップと；
前記第１のオブジェクトの集合のうちの１つのオブジェクトの一部が、前記第１のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、前記第１のオブジェクトの集合を画像記憶装置に描画するステップと；
前記第２のオブジェクトの集合の中の各オブジェクトを、前記第２のオブジェクトの集合のその他のオブジェクトとは関係なく描画する第２の描画方法を使用して、前記第２のオブジェクトの集合を前記画像記憶装置に描画するステップとから成るコンピュータプログラム製品が提供される。
【００２５】
本発明の別の面によると、機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品において、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信するステップと；
前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの前記表示リスト中のオブジェクトを含む第１の描画タスクを、第１の描画方法を使用して描画するステップと；
前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の１つ以上のオブジェクトを含む１つ以上の第２の描画タスクを、第２の描画方法を使用して描画するステップとから成り、
前記第１の描画方法は、１つのオブジェクトの一部が、前記第１の描画タスクの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の描画方法は、前記一部を描画し、
前記第２の描画方法は、前記第２の描画タスクの各オブジェクトを、前記第２の描画タスクの中のその他のオブジェクトとは関係なく、画像記憶装置に描画するコンピュータプログラム製品が提供される。
【００２６】
本発明の別の面によると、機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品において、前記方法は、
（ａ）前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、オブジェクトが優先度の順に順序付けられたオブジェクトのリストを受信するステップと；
（ｂ）優先度が高くなる順にオブジェクトを考慮し、注目オブジェクト毎に、
（ｂａ）前記注目オブジェクトが合成を要求しない場合、第１の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画し、
（ｂｂ）前記注目オブジェクトが合成を要求する場合には、
（ｂｂ）（i）前記注目オブジェクトより低い優先度を有し且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する前記リスト中のオブジェクトを判定するステップと；
（ｂｂ）（ii）１つのオブジェクトの一部が、第２の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第２の描画方法を使用して、前記注目オブジェクト及び判定されたオブジェクトを描画するステップとを実行するステップとから成るコンピュータプログラム製品が提供される。
【００２７】
本発明の別の面によると、機械可読記録媒体に記録され、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラム製品において、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信するステップと；
集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも１つのオブジェクトの集合に割り当てるステップと；
前記少なくとも１つのオブジェクトの集合を画像記憶装置に描画するステップとから成るコンピュータプログラム製品が提供される。
【００２８】
本発明の別の面によると、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラムにおいて、前記方法は、
リスト中のオブジェクトを、第１のオブジェクトの集合及び第２のオブジェクトの集合のうちの少なくとも一方に割り当てるステップと；
前記第１のオブジェクトの集合の中の１つのオブジェクトの一部が、前記第１のオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第１の描画方法を使用して、前記第１のオブジェクトの集合を画像記憶装置に描画するステップと；
前記第２のオブジェクトの集合の中の各オブジェクトを、前記第２のオブジェクトの集合のその他のオブジェクトとは関係なく描画する第２の描画方法を使用して、前記第２のオブジェクトの集合を前記画像記憶装置に描画するステップとから成るコンピュータプログラムが提供される。
【００２９】
本発明の別の面によると、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラムにおいて、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に前記画像中のオブジェクトを配列し、合成を要求する最高優先度のオブジェクトである最終合成オブジェクトを有する表示リストを受信するステップと；
前記最低優先度のオブジェクトから前記最終合成オブジェクトに至るまでの表示リスト中のオブジェクトを含む第１の描画タスクを、第１の描画方法を使用して描画するステップと；
前記最終合成オブジェクトより高い優先度を有する前記表示リスト中の１つ以上のオブジェクトを含む１つ以上の第２の描画タスクを、第２の描画方法を使用して描画するステップとから成り、
前記第１の描画方法は、１つのオブジェクトの一部が、前記第１の描画タスクの描画出力に影響を与えるか否かを判定し、影響を与える場合、前記第１の描画方法は、前記一部を描画し、
前記第２の描画方法は、前記第２の描画タスクの各オブジェクトを、前記第２の描画タスクのその他のオブジェクトとは関係なく、画像記憶装置に描画するコンピュータプログラムが提供される。
【００３０】
本発明の別の面によると、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラムにおいて、前記方法は、
（ａ）前記画像を記述し、最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順にオブジェクトが順序付けられたオブジェクトのリストを受信するステップと；
（ｂ）優先度が高くなる順に、前記リスト中のオブジェクトを考慮し、注目オブジェクト毎に、
（ｂａ）前記注目オブジェクトが合成を要求しない場合、第１の描画方法を使用して、前記注目オブジェクトを画像記憶装置に描画するステップと；
（ｂｂ）前記注目オブジェクトが合成を要求する場合には、
（ｂｂ）（i）前記注目オブジェクトより低い優先度を有し且つ前記注目オブジェクトのバウンディングボックスとオーバーラップするバウンディングボックスを有する、前記リスト中のオブジェクトを判定するステップと；
（ｂｂ）（ii）１つのオブジェクトの一部が、第２の描画方法により処理されるオブジェクトの集合の描画出力に影響を与えるか否かを判定し、影響を与える場合、前記一部を描画する第２の描画方法を使用して、前記注目オブジェクト及び判定されたオブジェクトを描画するステップとを実行するステップとから成るコンピュータプログラムが提供される。
【００３１】
本発明の別の面によると、オブジェクト単位の画像を描画する方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するための機械可読プログラムコードを具備するコンピュータプログラムにおいて、前記方法は、
最低優先度のオブジェクトから最高優先度のオブジェクトに至るまで、優先度の順に配列された前記画像中のオブジェクトのリストを受信するステップと；
集合の中のオブジェクトが、前記リストにおいて連続する優先度の順位を有し且つ集合の中の各オブジェクトが、集合の中の他のどのオブジェクトともオーバーラップしないように、前記リスト中のオブジェクトを少なくとも１つのオブジェクトの集合に割り当てるステップと；
前記少なくとも１つのオブジェクトの集合を画像記憶装置に描画するステップとから成るコンピュータプログラムが提供される。
【発明を実施するための最良の形態】
【００３２】
表の簡単な説明
本発明の実施形態について、詳細な説明の最後に列挙する表を参照して説明する。
【００３３】
表Ａは、図１Ａ〜図１Ｃの例に対する図２の方法の適用方法を示す。
【００３４】
表Ｂは、図１Ａの例の走査線に対する図３Ａの方法の適用方法を示す。
【００３５】
表Ｃは、図６Ｃの走査線６６２の最初の３つの輪郭に対する図７の方法の適用方法を示す。
【００３６】
表Ｄは、図１１Ａ〜図１１Ｃの走査線１１３０に対する第３の構成の応用を示す。
【００３７】
本発明の１つ以上の実施形態を、添付の図を参照して以下に説明する。
【００３８】
後続の一部の説明は、コンピュータメモリ内のデータに対する動作のアルゴリズム及び記号表現の点で、明示的又は暗黙的に示される。これらのアルゴリズムの説明及び表現は、データ処理技術の技術者が他の技術者に対して、研究内容を最も効率的に伝達するために使用される方法である。ここでのアルゴリズムは、一般に、所望の結果へと導く自己無矛盾な一連のステップであると考えられる。これらステップは、物理量の物理的操作を必要とするステップである。必須ではないが、通常、これら量は、格納、転送、結合、比較又は操作をすることができる電子信号又は磁気信号の形態をとる。主に一般的使用の理由から、これらの信号をビット、値、要素、記号、文字、用語、数字等として参照する際の利便性が、検証された。
【００３９】
しかし、上述の用語及び同様の用語は、適当な物理量に関連付けられ、単にこれらの量に適用された便利なラベルにすぎないことを認識すべきである。以下より明らかであるように、特に文中に指示がない限り、本明細書を通して、コンピュータシステム、又は同様の電子装置の動作及び処理を、「計算」、「判定」、「置換」、「生成」、「初期化」、「出力」等の用語を利用して説明する。コンピュータシステム、又は同様の電子装置は、コンピュータシステムのレジスタ及びメモリ内の物理（電子）量として表現されたデータを操作して、コンピュータシステムメモリ又はレジスタ、あるいは、他の情報記憶装置、伝送装置又は表示装置内の物理量として同様に表現される他のデータに変換する。
【００４０】
また、本明細書は、方法の動作を実行する装置を開示する。そのような装置は、要求される目的に対して特に構成されてもよく、あるいは、汎用コンピュータ又は選択的に起動される他の装置又はコンピュータに格納されたコンピュータプログラムにより構成される装置を含んでもよい。ここで提供されるアルゴリズム及び表示装置は、本質的に、いかなる特定のコンピュータ又は他の装置にも関連付けられていない。種々の汎用装置が、明細書の説明に従ったプログラムと共に使用されてもよい。あるいは、必要な方法のステップを実行するために、更に特化した装置の構成が、適当であるかもしれない。
【００４１】
更に、本発明は、暗黙的にコンピュータプログラムを開示する。このコンピュータプログラムにおいて、明細書で説明される好適な方法の個々のステップがコンピュータコードにより実行されることは、当業者にとって明らかであろう。コンピュータプログラムは、特定のプログラミング言語及びその実現に限定されることを意図しない。種々のプログラミング言語及びそのコード化が、明細書に含まれる開示内容を実現するために使用されてもよいことが分かるだろう。更に、このコンピュータプログラムは、特定の制御フローに限定されることを意図しない。本発明の趣旨又は範囲を逸脱せずに、異なる制御フローを使用できる他の多くのコンピュータプログラムが存在する。また更に、1つ以上のコンピュータプログラムのステップは、連続的に実行されるのではなく、並列に実行されてもよい。
【００４２】
そのようなコンピュータプログラムは、任意のコンピュータ可読媒体に格納されてもよい。コンピュータ可読媒体は、汎用コンピュータとインタフェースするのに適当な磁気ディスク、光ディスク、メモリチップ、又は他の記憶装置等の記憶装置を含んでもよい。また、コンピュータ可読媒体は、インターネットシステムに例示されるようなハードワイヤード媒体、又は、ＧＳＭ移動電話システムに例示されるような無線媒体を含んでもよい。コンピュータプログラムは、汎用コンピュータ上にロードされ且つ実行される時に、効果的に、好適な方法のステップを実現する装置となる。
【００４３】
添付の1つ以上の図面において、ステップ及び／又は特徴を参照する場合、この説明の目的のため、異なる意図を示さない限り、同一の符号を有するステップ及び／又は特徴は、同一の機能又は動作を有する。
【００４４】
本開示において、以下の略語が使用される。
【００４５】
ＰＳＲＭ(Pixel−Sequential Rendering Method)  画素順次描画方法
ＰＡＲＭ(Painter’s Algorithm Rendering Method：ペインターズアルゴリズム描画方法
ＩＰＡＲＭ(Improved Painter’s Algorithm Rendering Method)：改良版ペインターズアルゴリズム描画方法
ＸＰＳＲＭ(Exclusive Pixel−Sequential Rendering Method)：排他的画素順次描画方法
ＤＬ(Display List)：表示リスト
ＯＬ(Object List)：オブジェクトリスト
ＣＬ(Compositing List)：合成リスト
ＡＥＬ(Active Edge List)：有効輪郭リスト
ＡＯＬ(Active Object List)：有効オブジェクトリスト
ＲＴ(Render Task)：描画タスク
ＰＡＲＴ(Painter’s Algorithm Render Task)：ペインターズアルゴリズム描画タスク
ＰＳＲＴ(Pixel−Sequential Render Task)：画素順次描画タスク
ＧＤＩ(Graphics Device Interface)：グラフィックデバイスインタフェース
ＲＩＰ(Raster Image Processor)：ラスタ画像プロセッサ
１．０  描画装置
図１８は、コンピュータグラフィックオブジェクト画像を描画し且つ提供するように構成されたシステム１８００を概略的に示す。システムは、システムランダムアクセスメモリ（ＲＡＭ）１８０３と関連付けられたホストプロセッサ１８０２を含む。システムＲＡＭ１８０３は、不揮発性ハードディスクドライブ又は同様の装置１８０５と、揮発性半導体ＲＡＭ１８０４とを含んでもよい。システム１８００は、通常、半導体ＲＯＭ１８０７に基づくシステム読出し専用メモリ（ＲＯＭ）１８０６を更に含み、多くの場合、システムＲＯＭ１８０６は、コンパクトディスク装置（ＣＤ−ＲＯＭ）１８０８を付属してもよい。また、システム１８００は、画像を表示するために、ラスタ形式で動作するプリンタ、又はビデオ表示装置（ＶＤＵ）等の目標装置１５１３を更に内蔵してもよい。
【００４６】
システム１８００の上述の構成要素は、バスシステム１８０９を介して相互に接続し、ＩＢＭ ＰＣ／ＡＴ型パーソナルコンピュータ及びそれから発展した構成等の当該技術において既知のコンピュータシステムの正常動作モードで、動作可能である。
【００４７】
更に、図１８において、グラフィック描画システム１５０５（又は、描画装置）は、バス１８０９に接続し、グラフィックオブジェクト単位の記述から導き出される画素単位の画像を描画するように構成される。また、グラフィックオブジェクト単位の記述は、バス１８０９を介して、プロセッサ１８０２から、命令及びデータと共に供給される。描画装置１５０５は、通常は半導体ＲＡＭで構成される関連付けられた専用の描画記憶装置１５３０を有することが好ましいが、オブジェクト記述を描画するためにシステムＲＡＭ１８０３を利用してもよい。
【００４８】
描画システム１５０５は、ホストプロセッサ１８０２上で、ソフトウェアとして実現されてもよい。あるいは、描画システム１５０５は、特注のハードウェア装置である別の装置、又は汎用コンピュータ上で実行されるソフトウェアである別の装置上で実現されてもよい。更に、描画システムは、目標装置１５１３上の組込みシステムであってもよい。
【００４９】
描画パイプラインが、図１５に示される。ホストプロセッサ１８０２で実行されるアプリケーション１５０１は、ホストプロセッサのオペレーティングシステム（ＯＳ）のグラフィックデバイスインタフェース（ＧＤＩ）１５０３にグラフィックデータを送信する。ＧＤＩ１５０３は、そのグラフィックデータを処理し、表示リスト生成モジュール１５０７及び描画モジュール１５１１を有するグラフィック描画システム１５０５にデータを渡す。
【００５０】
表示リスト生成モジュール１５０７は、ＧＤＩ１５０３から受信したデータ内に定義されたオブジェクトの集合から、表示リストを生成する。表示リスト中のオブジェクトは、最低優先度のオブジェクトから、最高優先度のオブジェクトまで、ｚレベル順（優先度の順位）に順序付けされる。表示リストは、表示リスト記憶装置１５０９に格納される。描画モジュール１５１１は、表示リストを処理し、印刷するために画素データを生成する。
【００５１】
描画装置１５０５は、ホストコンピュータ１８０２にソフトウェアとして常駐する場合、中間調のビットマップを生成する。そのビットマップは、圧縮され、目標装置１５１３に送信される。目標装置１５１３は、ビットマップを復元し、画素データのページを描画する。
【００５２】
別の構成において、表示リスト生成モジュール１５０７は、ホストコンピュータ１８０２に常駐し、描画モジュール１５１１は、目標装置１５１３に組み込まれる。この場合、ホストプロセッサ１８０２は、目標装置１５１３に表示リストを送信し、目標装置１５１３は、表示リストを描画し、印刷のために画素データを生成する。
【００５３】
描画モジュール１５１１は、以下に更に詳細に説明される複数の描画方法を使用する。モジュール１５１１は、以下に説明する条件に応じて、表示リストの個別の部分を、個別の描画タスクに割り当てる。ここで、個々の描画タスクは、異なる描画方法を使用する。描画モジュール１５１１は、描画タスクキューを使用して、並行して実行される描画タスクスレッドをキューに登録してもよい。使用される描画方法は、第３．０節で説明される画素順次描画方法（ＰＳＲＭ）、第４．０節で説明されるペインターズアルゴリズム描画方法（ＰＡＲＭ）、第６．０節で説明される改良版ＰＡＲＭ（又は、ＩＰＡＲＭ）、及び第８．０節で説明される排他的ＰＳＲＭ（ＸＰＳＲＭ）を含む。説明される描画方法の異なる組合せを使用する３つの構成について説明する。
【００５４】
２．０  データ構造
表示リスト生成モジュール１５０７は、ＧＤＩ層１５０３からオブジェクトを受信すると、そのオブジェクトを３つの構成要素に分解する：
−  オブジェクトの外形を説明する輪郭
−  ページへのオブジェクトの描画方法を説明する描画情報
−  オブジェクトの色を説明する塗りつぶし情報
オブジェクトの外形は、上向き輪郭及び下向き輪郭に分割され、各輪郭は、単純にページの下方に進む。輪郭は、走査線に沿って走査される時に輪郭がオブジェクトを有効化するか無効化するかにより、上向き方向又は下向き方向が割り当てられる。
【００５５】
輪郭は、データ構造としてソフトウェア内に実現される。データ構造は、以下を含む：
−  輪郭の外形を説明する点
−  現在の走査線上にある輪郭のｘ位置
−  輪郭の方向
描画情報又はレベルデータは、レベルデータ構造に格納される。データ構造は、通常、以下を含む：
−  優先度と呼ばれるｚ順の整数
−  奇数−偶数又はノンゼロワインディング等の塗りつぶし規則
−  オブジェクトに関する情報（オブジェクトは、テキストオブジェクトか、グラフィックオブジェクトか、又は画像オブジェクトか等）
−  合成演算子
−  ビットマップ、タイル、又は単色等の描かれる塗りつぶしの種類
−  このオブジェクトをクリッピングするクリップ数を示すクリップ総数
塗りつぶし情報、又は塗りつぶしデータは、塗りつぶしデータ構造と呼ばれるデータ構造に格納される。データ構造の内容は、塗りつぶしの種類により異なる。ビットマップの塗りつぶしの場合、通常、データ構造は以下を含む：
−  ページ上のビットマップの原点の位置ｘ及びｙ
−  画素単位でのビットマップの幅及び高さ
−  ページから画像への変換マトリックス
−  画像データの形式を示す値（例えば、３２ｂｐｐ単位のＲＧＢＡ、又は２４ｂｐｐ単位のＢＧＲ等）
−  画像データに対するポインタ
フラット塗りつぶしの場合、データ構造は、通常、単一の３２ビット整数−赤色、緑色、青色及びαチャネルの各々に対し８ビット−を含む。
【００５６】
一般に、各輪郭データ構造は、レベルデータ構造に対するポインタを有する。また、各レベルデータ構造は、塗りつぶしデータ構造に対するポインタを有する。
【００５７】
図１Ａは、不透明なオレンジ色の文字「Ｏ」である第１のオブジェクトＯ１、及び半透明な赤色の矩形であり第１のオブジェクト上にある第２のオブジェクトＯ２を有する画像を示す。
【００５８】
図１Ｂは、オブジェクトＯ１及びＯ２の輪郭を示す。オブジェクトＯ１は、以下を有する：
−  輪郭＝Ｅ１（下向き），Ｅ２（上向き），Ｅ３（上向き），Ｅ４（下向き）
−  レベルデータ＝｛塗りつぶし規則＝ノンゼロワインディング，オブジェクトの種類＝テキスト，優先度＝１｝
−  塗りつぶしデータ＝ＲＧＢＡ＝２５５，１２８，０，２５５（不透明なオレンジ色）
オブジェクトＯ２は、以下を有する：
−  輪郭＝Ｅ５（下向き）、Ｅ６（上向き）
−  レベルデータ＝｛塗りつぶし規則＝ノンゼロワインディング，オブジェクトの種類＝グラフィック、優先度＝２｝
−  塗りつぶしデータ＝ＲＧＢＡ＝２５５，０，０，１２８（半透明な赤色）
図１Ｃは、図１Ａの画像に対する輪郭リスト５０を示す。輪郭Ｅ１〜Ｅ４は、オブジェクトＯ１の描画情報を含むレベルデータ５２を指し示し、輪郭Ｅ５及びＥ６は、オブジェクトＯ２のレベルデータ５６を指し示す。レベルデータ５２は、オブジェクトＯ１の塗りつぶし情報を含む塗りつぶしデータ５４を指し示し、レベルデータ５６は、オブジェクトＯ２の塗りつぶし情報を含む塗りつぶしデータ５８を指し示す。
【００５９】
説明した方法で構造化されたデータを使用して、表示リストが、輪郭のリストから描画される。これを、輪郭表示リストと呼ぶ。
【００６０】
図１Ａの例において、表示リストは、輪郭リスト｛Ｅ１，Ｅ２，Ｅ３，Ｅ４，Ｅ５，Ｅ６｝である。
【００６１】
表示リストは、まず、ｙ座標の昇順にソートされ、ｙ座標が等しい場合、ｘ座標の昇順にソートされる。図１Ａに対するソート済み輪郭リストは、輪郭リスト｛Ｅ１，Ｅ２，Ｅ５，Ｅ６，Ｅ３，Ｅ４｝となる。
【００６２】
３．０  画素順次描画方法（ＰＳＲＭ）
描画モジュール１５１１により使用される画素順次描画方法は、ラスタの走査順に、画素毎に色及び不透明度を生成する。走査され処理されている任意の画素において、画素順次描画方法は、走査中の画素において有効な露出されたオブジェクトのみを合成する。画素順次描画方法は、画素がオブジェクトの境界内にある場合、そのオブジェクトが走査中の画素において有効であると判定する。描画装置１５０５は、そのオブジェクトに関連付けられた塗りつぶしカウンタを参照することにより、これを達成する。塗りつぶしカウンタは、画素がオブジェクトの境界内にあるか否かを示す実行塗りつぶし数を保持する。描画装置１５０５がオブジェクトに関連付けられた輪郭に遭遇すると、輪郭の方向によって、塗りつぶし数を増分又は減分させる。描画装置１５０５は、塗りつぶし数及び所定の塗りつぶし規則に従って、現在の画素がオブジェクトの境界内にあるか否かを判定できる。ＰＳＲＭを使用する際、描画装置１５０５は、有効オブジェクトがそのオブジェクトに関連付けられたフラグに関して露出されるか否かを判定する。オブジェクトに関連付けられたフラグは、オブジェクトが優先度の低いオブジェクトを掩蔽するか否かを示す。すなわち、このフラグは、オブジェクトが部分的に透明であるか否かを示し、透明である場合、優先度の低い有効オブジェクトは、現在の画素の色及び不透明度に影響を与える。透明ではない場合、フラグは、オブジェクトが不透明であることを示し、この場合、優先度の低い有効オブジェクトは、走査中の画素の色及び不透明度に対して影響を与えることはない。オブジェクトが最上部の有効オブジェクトである場合、又はそのオブジェクト上にある全ての有効オブジェクトの対応するフラグが透明に設定されている場合、画素順次描画方法は、そのオブジェクトが露出していると判定する。描画装置１５０５は、走査中の画素に対する色及び不透明度を判定し出力するために、これらの露出した有効オブジェクトを合成する。
【００６３】
３．１  ＰＳＲＭ：有効輪郭の判定
図２は、画素順次描画方法において、有効輪郭が主輪郭リストから判定される方法を示すフローチャートである。主輪郭リストは、描画されるべき全ての輪郭を含み、有効輪郭リストは、現在の走査線と交差する輪郭の一時的なリストである。
【００６４】
ステップ２５１は、変数CurYをゼロに設定し、有効輪郭リストを空集合に設定する初期化ステップである。ステップ２５３において、描画装置１５１１は、主輪郭リストから輪郭を読み出す。ステップ２５５において、描画装置１５１１は、主輪郭リスト中の全ての輪郭が処理されたか否か、又は注目輪郭のｙの値Edge.yが変数CurYに格納された値よりも大きいか否かをチェックする。
【００６５】
これら条件のいずれも満足されない場合（ステップ２５５：ＮＯ）、ステップ２５９に進み、現在の輪郭を有効輪郭リストにマージする。現在の輪郭リスト中の輪郭は、ｘの値の昇順、すなわち走査線に沿った順で順序付けされる。現在の輪郭が有効輪郭リストに追加されると、ステップ２５３に戻り、主輪郭リストから次の輪郭を処理する。
【００６６】
ステップ２５５の条件のいずれかが満足される場合（ステップ２５５：ＹＥＳ）、ステップ２５７において、描画装置１５１１は、描画する走査線の数Nを判定する。主輪郭リスト中の全ての輪郭が処理された場合、ページ上に残る走査線の数、すなわちページの高さと現在の走査線との差分をNに設定する：
N = PageHeight − CurY
しかし、まだ処理すべき輪郭がある場合、CurYと注目輪郭が開始する走査線との間の走査線の数をNに設定する：
N = Edge.Y − CurY
走査線の数が判定されると、描画装置１５１１は、N本の走査線に対する有効輪郭リストを描画し、現在の走査線を更新する：
CurY = CurY + N
画素順次描画方法におけるN本の走査線の描画に関しては、図３Ａを参照して更に説明する。
【００６７】
次に、ステップ２６１において、描画装置１５１１は、更新されたCurYがページの高さに等しいか否かをチェックする。等しい場合、有効輪郭を判定する処理は、ステップ２６３で終了する。しかし、CurYがページの高さよりも小さい場合（ステップ２６１：ＮＯ）、ステップ２５３に戻り、主輪郭リストから次の輪郭を処理する。
【００６８】
表Ａは、図２の方法が図１Ａ〜図１Ｃの例に適用される様子を示す。表は、行毎に、左から右に読まれる。各行は、ステップ２５３から開始するループの繰り返しを表現する。表現の簡単化のため、ステップ２５１は省略される。空の欄は、ステップが実行されないことを示す。ステップ２５５は、現在のループの繰り返しにおいて、ステップ２５７とステップ２５９のどちらが実行されるかを判定する。
【００６９】
ループの最初の繰り返しにおいて、ステップ２５３は、主輪郭リストから輪郭Ｅ１を読み出す。CurYはゼロに初期化されるため、Ｅ１が開始する走査線E1.YはCurYよりも大きく、従って、ステップ２５７が実行される。ページの開始とE1.Yとの間の走査線が描画され、CurYは更新される。
【００７０】
ループの最後の繰り返しにおいて、全ての輪郭が処理され、ページの高さとCurYとの差分をNに設定する。残りの走査線は描画され、CurYは更新される。ステップ２５１は、CurYがページの高さに等しいと判定し、ループが終了する。
【００７１】
３．２  ＰＳＲＭ：走査線の描画
図３Ａのフローチャートは、走査線が画素順次描画方法で描画される方法を示す。図３Ａの処理は、図２のステップ２５７により呼び出される。
【００７２】
初期化ステップ３５１において、描画装置１５１１は、索引CurXにゼロを設定し、且つ有効オブジェクトリスト及び一時的な有効輪郭リスト（TempAEL）に空集合を設定する。ステップ３５３において、走査線の最後まで、すなわちCurXがページの幅に等しくなるまで継続するループを開始する。ステップ３５３において、描画装置１５１１は、有効輪郭リスト（ＡＥＬ）から輪郭「Edge」を読み出す。その後、ステップ３５５において、描画装置１５１１は、有効輪郭リスト中の全ての輪郭が処理されたか、又は現在の走査線と注目輪郭との交点Edge.Xが索引CurXよりも大きいかをチェックする。これら条件のいずれかが満足される場合、ステップ３５７に進む。条件が満足されない（ステップ３５５：ＮＯ）場合、ステップ３５９に進む。
【００７３】
ステップ３５９において、注目輪郭は、ＡＥＬから除去され、注目輪郭により指し示されるオブジェクトは、適切に有効化又は無効化される。オブジェクトの有効化／無効化は、そのオブジェクトに関連付けられた塗りつぶし規則に基づく。オブジェクトは、有効オブジェクトリスト（ＡＯＬ）に追加されるか、又はＡＯＬから除去される。有効化／無効化及びクリッピングされたオブジェクトに対するＡＯＬ更新ステップについて、図７を参照して更に詳細に説明する。
【００７４】
次のステップ３６０において、Edge.Xは、注目輪郭と次の走査線との交点を示すように更新される。次に、ステップ３４８において、注目輪郭は、現在の走査線上で無効となるかが試験される。無効とならない場合、ステップ３４９に進む。ステップ３４９において、輪郭は、リストのｘの昇順を維持する正確な位置にある一時的なＡＥＬ、すなわちTempAELに追加される。無効となる場合（ステップ３４８：Ｙｅｓ）、又は、次のステップ３４９の後、ステップ３５３に戻り、有効輪郭リストから次の輪郭を読み出す。
【００７５】
ステップ３５７において、描画する画素数Nが判定される。有効輪郭リスト中の全ての輪郭がすでに処理された場合、ページの幅と索引CurXとの差分をNに設定する。まだ処理されていない場合、(Edge.X − CurX)、すなわち現在の索引と注目有効輪郭の位置との差分をNに設定する。
【００７６】
図４を参照して更に詳細に説明されるように、ステップ３６１において、有効オブジェクトリストは、N画素に対して描画される。
【００７７】
ステップ３６３において、索引CurXを(CurX + N)に更新し、ステップ３６５で、CurXがページの幅に等しいか否かをチェックする。等しい場合、ステップ３６６において、一時的な輪郭リストの内容は、有効輪郭リストにコピーされる。その後、ループはステップ３５１に戻り、次の走査線を描画するか、又はステップ３６７から図２のステップ２５７に戻る。CurXがページの幅に到達していない場合（ステップ３６５：ＮＯ）、ステップ３５３に戻る。
【００７８】
表Ｂは、有効輪郭リスト＝｛Ｅ５，Ｅ１，Ｅ３，Ｅ４，Ｅ２，Ｅ６｝を有する図１Ａの画像の走査線、すなわち文字「Ｏ」であるＯ１の中央の穴部を通る任意の走査線に適用される図３Ａの方法を示す。
【００７９】
前と同様に、表の各行は、ステップ３５３から開始するループの繰り返しを示す。検査ステップ３５５は、パス３５９／３６０又はパス３５７／３６１／３６３のどちらが後続するかを判定する。空の欄は、現在のループの繰り返しにおいて、ステップが実行されないことを示す。終了ステップ３６５及び３６７は、明示的に示さない。
【００８０】
最初、CurXはゼロであり、有効オブジェクトリスト（ＡＯＬ）は空である。
【００８１】
３．３  ＰＳＲＭ：走査線上に対する画素の描画
図４のフローチャートは、走査線上に画素を描画する方法を示し、この方法において、最上部の不透明なオブジェクト及び最上部の不透明なオブジェクトの上にある任意の透明なオブジェクトのみが合成され、出力される。図４のステップは、図３Ａのステップ３６１により呼び出される。
【００８２】
ステップ４５１において、描画装置１５１１は、有効オブジェクトリスト（ＡＯＬ）が空か否かをチェックする。空である場合、描画装置１５１１は、N画素に対して白色（ページ背景）を出力し、ステップ４７０において、フレームストアのビット深さまで中間調にする（必要な場合）。この処理は、ステップ４７１で終了し、ステップ３６３に戻る。
【００８３】
有効オブジェクトリストが空でない場合（ステップ４５１：ＮＯ）、ステップ４５３に進み、有効オブジェクトリストが、優先度の降順にソートされる。有効オブジェクトリスト中のエントリ数は、NumObjectsである。
【００８４】
ステップ４５７において、描画装置１５１１は、有効オブジェクトリスト中の最初のオブジェクトが不透明であるか否かをチェックする。不透明である場合、ステップ４５９は、AOL[0]のオブジェクトの塗りつぶしをフレームストアに出力し、ステップ４７０において、フレームストアのビット深さまで中間調にする（必要な場合）。その後、処理は、ステップ４７１で終了する。この場合、最上部のオブジェクトが不透明であるため、有効オブジェクトリスト中の他のオブジェクトを考慮する必要はない。
【００８５】
最上部のオブジェクトが不透明でない場合（ステップ４５７：ＮＯ）、ステップ４６１において、描画装置は、索引i = 1を設定する。ステップ４６３において、有効オブジェクトリストのi番目のエントリのオブジェクトをobjに設定する。ステップ４６５は、objが不透明であるか、又は索引iが有効オブジェクトリスト中のオブジェクト総数(NumObjects − 1)に等しいかをチェックする。
【００８６】
いずれかの条件が満足される場合（ステップ４６５：ＹＥＳ）、ステップ４６９において、描画装置１５１１は、AOL[0]とAOL[i]との間の全てのオブジェクトの合成結果をフレームストアに出力し、ステップ４７０において、フレームストアのビット深さまで中間調にする（必要な場合）。その後、処理は、ステップ４７１で終了する。
【００８７】
ステップ４６５において双方の条件が満足されない場合（ステップ４６５：ＮＯ）、ステップ４６７に進み、索引を増分する：i = i + 1。ステップ４６３に戻り、有効オブジェクトリスト中の次のオブジェクトを考慮する。
【００８８】
図４の処理の応用例として、画素E1.XとE3.Xとの間の走査線E3.Y（すなわち、輪郭Ｅ３が開始する走査線）における図１ＡのオブジェクトＯ１の左半分の画素ランを考慮する。この画素ランに対し、双方のオブジェクトは有効であり、有効オブジェクトリストは、AOL = {O1, O2}となる。
【００８９】
ステップ４５１において、AOLは、空であるかがチェックされる。AOLが２つのエントリを含むため、ステップ４５３に進む。AOLは、優先度の降順にソートされ、AOL = {O2, O1}となる。NumOBjectsの値は２である。ステップ４５７で、リストの第１のエントリが不透明であるか否かをチェックする。O2が不透明でないため、ステップ４６１に進む。カウンタiは、ステップ４６１で１に初期化される。ステップ４６３において、位置AOL[i]のオブジェクト、この場合はO1を変数objに設定する。ステップ４６５において、O1が不透明であるため、ステップ４６９に進む。オブジェクトO2及びO1の塗りつぶしは共に合成され、その結果がフレームストアに描かれる。
【００９０】
３．４  ＰＳＲＭ内のクリッピング
MicrosoftTMGDI等のいくつかのシステムにおいて、クリッピング領域は、複数のオブジェクトを伴い、各オブジェクトは、対応するクリッピング領域により規定される範囲内にのみ出力される。
【００９１】
このようなシステムにおいて、各オブジェクトは、通常、対応するクリッピング領域によりクリッピングされたフレームストアに順次描画される。いくつかのシステムにおいて、複数のクリッピング領域が有効となる。従って、１つ以上のクリッピング領域によりクリッピングされたフレームストアに、オブジェクトを描画できる。
【００９２】
画素順次描画方法（ＰＳＲＭ）において、クリップは、通常、輪郭の集合及びレベルデータ構造の「オブジェクトリスト」により表現される。ここで、リスト中の第１のエントリは、クリップ自体について記述するレベルデータ構造である。レベルデータ構造の残りのエントリは、クリッピングされるオブジェクトについて記述する。
【００９３】
クリッピングされる画像の例を図６Ａに示す。図６Ａの３つのオブジェクトは、三角形状のクリップ６５０、上下反転した三角形状のクリップ６５２及び矩形６５４である。ここで、矩形６５４は、クリップ６５０及びクリップ６５２によりクリッピングされる。図６Ｂは、図６Ａのオブジェクトを描画した結果である六角形６５６を示す。
【００９４】
図６Ｃは、オブジェクト６５０〜６５４の輪郭を示す。クリップ６５０は、左側の輪郭Ｅ１及び右側の輪郭Ｅ２を有する。クリップ６５２は、左側の輪郭Ｅ３及び右側の輪郭Ｅ４を有し、矩形６５４は、左側の輪郭Ｅ５及び右側の輪郭Ｅ６により規定される。バウンディングボックス６５８は、オブジェクト６５０、６５２、６５４の外部の点を規定する。走査線Ｓ６６２は、図６Ａの例に対する図７の方法の応用を示すために使用される。
【００９５】
図６Ｄは、図６Ａの画像の表示リスト６６０のメモリにおける好適な構成を示す。図６Ｄにおいて、各輪郭は、対応するオブジェクトの描画情報を含むレベルデータを指し示す。輪郭Ｅ１及びＥ２の場合、レベルデータＬ１であり、輪郭Ｅ３及びＥ４の場合、レベルデータＬ２であり、更に、輪郭Ｅ５及びＥ６の場合、レベルデータＬ３である。オブジェクト６５０及び６５２は、オブジェクト６５４のレベルデータＬ３を指し示すレベルデータＬ１及びＬ２を各々有するクリッピングオブジェクトである。次に、オブジェクト６５４のレベルデータＬ３は、オブジェクト６５４の塗りつぶし情報を含む塗りつぶしデータＦ３を指し示す。
【００９６】
レベルデータ構造は、オブジェクトに関連付けられたクリップ総数を含み、これは、関連付けられたオブジェクトをクリッピングするクリッピング領域の数を示す。この例において、オブジェクト６５４は、L3.ClipCount = 2を有し、これは、オブジェクト６５４が２つのクリップによりクリッピングされることを示す。
【００９７】
図７は、有効オブジェクトリスト（ＡＯＬ）の管理について示す。図７のステップは、ステップ３５９により呼び出される。図７の入力は、現在の輪郭により指し示される有効オブジェクトリスト及びレベルデータ構造のリストである。図７の出力は、有効化されたオブジェクトの追加、又は無効化されたオブジェクトの除去により変更された可能性のある有効オブジェクトリストである。
【００９８】
初期化ステップ７５１において、カウンタiはゼロに初期化され、変数clip_deltaもゼロに初期化される。ステップ７５３において、描画装置１５１１は、現在の輪郭に関連付けられたオブジェクトリストOL中のi番目のオブジェクトであるOL[i]を、変数objに設定する。ステップ７５５において、描画装置１５１１は、objがクリップであるか否かをチェックする。クリップである場合、ステップ７５７において、描画装置１５１１は、クリップが有効になったか否かをチェックする。クリップが有効になった場合、ステップ７６１において、(−1)を変数clip_deltaに設定する。クリップが有効になっていない場合、ステップ７５９において、1をclip_deltaに設定する。
【００９９】
ステップ７５９又はステップ７６１のいずれかのステップにおいて、clip_deltaが設定された後、ステップ７６３に進み、カウンタiを１増分する。ステップ７６５は、現在の輪郭と関連付けられた全てのオブジェクトが処理されたか否かをチェックする。処理された場合、図７の処理は終了し、ステップ３６０に戻る。現在の輪郭と関連付けられた別のオブジェクトが存在する場合（ステップ７６５：ＮＯ）、ステップ７５３に戻り、次のオブジェクトを処理する。
【０１００】
注目オブジェクトがクリップでない場合（ステップ７５５：ＮＯ）、ステップ７６８において、描画装置１５１１は、現在のオブジェクトのクリップ総数をclip_deltaの値分増分する：
Obj.ClipCount = obj.ClipCount + clip_delta
次に、ステップ７６９において、描画装置１５１１は、オブジェクトobjが有効になり、且つobjのクリップ総数がゼロであるかをチェックする。双方の条件が満足される場合、ステップ７７１において、描画装置１５１１はobjを有効オブジェクトリストに追加する（objが有効オブジェクトリストに存在しない場合）。
【０１０１】
ステップ７６９において双方の条件が満足されない場合（ステップ７６９：ＮＯ）、オブジェクトobjが有効オブジェクトリストに存在すれば、描画装置１５１１は、有効オブジェクトリストからobjを除去する。
【０１０２】
ステップ７７１又はステップ７７３の後、ステップ７６３に進み、上述のように、現在の輪郭に関連付けられたオブジェクトが他に存在するか否かを判定する。
【０１０３】
例のように、表Ｃは、図６Ｃに示される走査線６６２の最初の３つの輪郭に対して、図７のステップが動作する様子を示す。
【０１０４】
４．０  ペインターズアルゴリズム描画方法（ＰＡＲＭ）
ペインターズアルゴリズムを使用する描画方法には、上述の画素順次描画方法との類似点がある。ＰＡＲＭ及びＰＳＲＭは共に、走査線毎にｘの昇順で追跡・維持される輪郭を必要とする。ＰＡＲＭは、図２、図３Ｂ及び図７の手順を使用して、実現されてもよい。
【０１０５】
上述のように、図２は、有効輪郭リストを判定する方法である。図２のステップを、ＰＳＲＭ及びＰＡＲＭの双方に適用する。
【０１０６】
ペインターズアルゴリズム描画方法の場合、図２のステップ２５７が図３Ｂを呼び出し、N本の走査線のランに対する有効輪郭リストを描画する。図３Ｂの処理は、図３Ａの処理に類似するが、ＰＡＲＭにおいて、１つのオブジェクトのみが有効であり、従って、有効オブジェクトリストを処理する必要がないという点で異なる。初期化ステップ３５１は、図３Ｂにおいて、ステップ３７１に置換される。ステップ３７１は、ＮＵＬＬの集合を有効オブジェクトリストに設定するのではなく、ＮＵＬＬを有効オブジェクトに設定する。図３Ａのステップ３６１（これは、図４のステップを呼び出す）は、図３Ｂにおいて、ステップ３６９に置換される。ステップ３６９において、ＰＡＲＭを実現する際、描画装置１５１１は、有効である（単一の）オブジェクトの塗りつぶしを使用して、N画素を描画する。
【０１０７】
図３Ｂのステップ３５９ａは、有効オブジェクトリストを更新する必要がないことを除き、図３Ａのステップ３５９に類似する。
【０１０８】
オブジェクトを有効化／無効化する時、ステップ７７１及びステップ７７３が更に単純になることを除いて、図７の方法が使用される。ステップ７７１及びステップ７７３において、オブジェクトの有効フラグが、設定又はクリアされるだけである。
４．１  ＰＳＲＭとＰＡＲＭとの相違点
ペインターズアルゴリズム描画方法（ＰＡＲＭ）と上述の画素順次描画方法とにおけるいくつかの相違点の概要を、以下に示す：
（ａ）  ＰＡＲＭにおいて、オブジェクトは、通常、ＧＤＩ層１５０３から受信されると即時に描画されるが、ＰＳＲＭは、最後のオブジェクトが受信されるまで描画を開始しない。
【０１０９】
（ｂ）  ＰＡＲＭの表示リストは、１つのオブジェクトのみを有するが、ＰＳＲＭの表示リストには、描画されるべき全てのオブジェクトが存在する。
【０１１０】
（ｃ）  ＰＡＲＭにおいて、オブジェクトが有効である画素ランのみが、フレームストアに描画されるが、ＰＳＲＭは、通常、有効なオブジェクトがない場合、白色（ページの色）を描画する。
【０１１１】
（ｄ）  ＰＡＲＭにおいて、合成は、オブジェクトとフレームストアとの間でのみ実行されるが、ＰＳＲＭは、影響を与える全ての有効オブジェクトを画素ラン上に合成し、その結果をフレームストアに描く。
【０１１２】
（ｅ）  ＰＡＲＭにおいて、クリッピング領域は、関連付けられたオブジェクト毎に処理されるが、ＰＳＲＭは、１度に全てのオブジェクトをクリッピングする。
【０１１３】
クリップ領域Ｃ１によりクリッピングされた３つのオブジェクトを有する画像において、ＰＡＲＭは、クリップＣ１を３回、すなわち３つの各オブジェクトに対し１回ずつ処理する。ＰＳＲＭにおいて、クリップＣ１は、表示リストに１度だけ追加される。クリップＣ１は、３つの各オブジェクトを指し示すレベルリストを有する。各オブジェクトは、クリップ総数１を有し、描画中にオブジェクトがクリッピングされることを保証する。
【０１１４】
ＰＡＲＭにおいて、フレームストアが、合成を要求するオブジェクトのビット深さよりも短いビット深さにおける画素値を保持する場合、合成は問題となる。例えば、フレームストアが１ｂｐｐ（bit per pixel）単位でＣＭＹＫ中間調の画素値を含み、且つオブジェクトが３２ｂｐｐ単位でＲＧＢＡ画素値の上に合成されると考えられる場合、合成する際に情報の損失が起こるだろう。
【０１１５】
５．０  第１の構成：ＰＳＲＭ及びＰＡＲＭを使用する描画
第１の描画構成を、図１４を参照して説明する。第１の構成は、混成方法であり、描画装置１５１１は、上述のペインターズアルゴリズム描画方法及び画素順次描画方法の双方を使用する。
【０１１６】
図１５から分かるように、表示リスト生成モジュール１５０７は、輪郭表示リスト１５０９を生成する。このリストにおいて、各輪郭は、その輪郭が属するオブジェクトを示すオブジェクト識別子edge.IDが割り当てられる。
【０１１７】
オブジェクトは、合成演算子を有する場合、合成を要求する。ここで、合成演算子は、何らかの方法により、オブジェクトの画素がオブジェクトの下方に位置する画素と組み合わされることを必要とする。オブジェクトが表示リストに追加されると、表示リスト生成モジュール１５０７は、合成を要求する最終オブジェクトを追跡する。これを、最終合成オブジェクト（last−compositing−object）と呼ぶ。全てのオブジェクトが表示リストに追加されると、描画モジュール１５１１は描画を開始する。
【０１１８】
描画タスクに関して、図１４の方法を説明する。描画タスク（ＲＴ）は、実行されると、特定の描画方法に従って、輪郭表示リストの一部分を描画するタスクである。描画タスクは、主表示リストからの輪郭の集合が割り当てられる。輪郭は、描画タスク自体のローカル主輪郭リスト及びローカル有効輪郭リストに格納される。ＰＡＲＭを利用する描画タスクは、ＰＡＲＴ（Painter’s Algorithm Render Task：ペインターズアルゴリズム描画タスク）と呼ばれる。ＰＳＲＭを利用する描画タスクは、ＰＳＲＴ（Pixel−Sequential Render Task：画素順次描画タスク）と呼ばれる。
【０１１９】
第１の構成において、描画モジュール１５１１は、表示リスト中の第１のオブジェクトと最終合成オブジェクトとの間の全ての輪郭を、上述のＰＳＲＭを利用する画素順次描画タスク（ＰＳＲＴ）に割り当てる。描画タスクは、実行され、白色領域を含み、輪郭の集合をフレームストアに描画する。
【０１２０】
表示リスト中の残りのオブジェクト毎に、そのオブジェクトの輪郭が、上述のＰＡＲＭを利用するペインターズアルゴリズム描画タスク（ＰＡＲＴ）に割り当てられる。描画タスクは、実行され、白色領域を除いて、輪郭の集合をフレームストア上に描画する。
【０１２１】
従って、画素順次描画方法は、合成を要求する任意のオブジェクトに適用され、残りの（不透明な）オブジェクトは、単純にフレームストア上に描画される。
【０１２２】
図１４を参照すると、ステップ１４０１において、描画モジュール１５１１は、last−compositing−objectがゼロ以上であるか否かをチェックする。ゼロ以上である場合（ステップ１４０１：ＹＥＳ）、ステップ１４０３において、描画モジュール１５１１は、edge.ID ＜＝ last_compositing_objectである全ての輪郭を、画素順次描画タスクに割り当てる。その後、ステップ１４０５において、描画タスクは、図２、図３Ａ、図４及び図７において説明される方法のステップを使用して実行される。
【０１２３】
次に、ステップ１４０７において、(last−compositing−object + 1)を索引iに設定する。ステップ１４０９において、描画装置は、iがNより小さいか否かをチェックする。iがNより小さくない場合（ステップ１４０９：ＮＯ）、処理すべきオブジェクトは存在せず、手順はステップ１４１１で終了する。しかし、iがNより小さい場合、ステップ１４１３に進み、iと等しいedge.IDを有する全ての輪郭を、ペインターズアルゴリズム描画タスクに割り当てる。その後、ステップ１４１５において、描画タスクは、図２、図３Ｂ及び図７のステップを使用して実行される。
【０１２４】
描画タスクが完了した後、ステップ１４１７は、索引iを１増分し、ステップ１４０９に戻り、処理すべきオブジェクトがあるか否かをチェックする。
【０１２５】
last−compositing−objectが０以上でない場合（ステップ１４０１：ＮＯ）、ステップ１４０７に直接進み、ステップ１４０３及びステップ１４０５をスキップする。この場合、画素順次描画が必要とされず、表示リスト中の全てのオブジェクトは、ＰＡＲＴを使用して描画されてもよい。
【０１２６】
図１４を参照して、以下の擬似コードで、第１の構成の描画方法の概要を示す：
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
１ｂｐｐの中間調単色フレームストア上に３６，０００個のオブジェクトのページを描画するために、この方法を使用すると、last−compositing−objectが５の場合、２５６ＭＢのＲＡＭを有するPentium（登録商標） III ６６７ＭＨｚ上における描画時間は、標準ＰＳＲＭと比較して、６秒から３秒の半分になった。
【０１２７】
描画モジュール１５１１が複数のプロセッサを有する装置上で実現される場合、各ＰＡＲＴが個別のスレッドで描画されることは、当業者には明らかであろう。表示リスト中の次の注目オブジェクトが実行中のＰＡＲＴにオーバーラップしない場合、新しいスレッドが作成され、新しい注目オブジェクトを描画する。この処理は、全てのオブジェクトが描画されるまで、又はオブジェクトが実行中ＰＡＲＴにオーバーラップするまで継続する。
【０１２８】
６．０  変形ペインターズアルゴリズム（ＩＰＡＲＭ）
上述のＰＡＲＭを改良する２つの方法が、提案される。第１の変形は、オーバーラップしない不透明な連続オブジェクトの処理に関し、第２の変形は、複数の連続オブジェクトのクリッピングに関する。
【０１２９】
６．１  オーバーラップしない不透明な連続オブジェクト
ペインターズアルゴリズム描画方法は、実際に、多くのオブジェクトを一度に処理でき、バウンディングボックスがオーバーラップしないオブジェクトを提供する。バウンディングボックスがオーバーラップしない限り、輪郭ソート動作は、各オブジェクトの輪郭内でのみ発生する。
【０１３０】
例えば、図５Ａは、オブジェクト自体はオーバーラップしないが、オーバーラップするバウンディングボックスを有する２つのオブジェクトを示す。オブジェクト８０２は、バウンディングボックス８０３を有する多角形である。オブジェクト８０２は、輪郭Ｅ１、Ｅ２、Ｅ３、Ｅ４、Ｅ５、Ｅ６及びＥ７で形成され、輪郭Ｅ３〜Ｅ６は、のこぎり歯状になっている。
【０１３１】
オブジェクト８０４は、バウンディングボックス８０５を有する多角形である。オブジェクト８０４は、一連の輪郭Ｅ８、Ｅ９、Ｅ１０、Ｅ１１及びＥ１２により形成される。輪郭Ｅ１１及びＥ１２は、のこぎり歯状にされ、輪郭Ｅ８及びＥ１２により形成されるピークは、輪郭Ｅ３及びＥ４により形成されるくぼみ部分に位置する。オブジェクト８０４の輪郭Ｅ１１及びＥ１０により形成されるピークは、オブジェクト８０２の輪郭Ｅ５及びＥ６により形成されるくぼみ部分に位置する。オブジェクト８０４は、オブジェクト８０２に接触又は交差しないが、バウンディングボックス８０５は、バウンディングボックス８０３にオーバーラップする。
【０１３２】
従って、オブジェクト８０２及び８０４を共に描画する際、走査線８０７において、オブジェクト８０４の輪郭Ｅ８、Ｅ１２、Ｅ１１及びＥ１０が有効輪郭リスト｛Ｅ２，Ｅ３，Ｅ４，Ｅ５，Ｅ６，Ｅ７｝にマージされ、輪郭リスト｛Ｅ２，Ｅ３，Ｅ８，Ｅ１２，Ｅ４，Ｅ５，Ｅ１１，Ｅ１０，Ｅ６，Ｅ７｝が得られるべきであることが分かる。
【０１３３】
図５Ｂにおいて、オブジェクト８０４は、バウンディングボックス８０３及び８０５がオーバーラップしないようにオブジェクト８０２から離間された。輪郭Ｅ８、Ｅ１２、Ｅ１１、Ｅ１０が輪郭Ｅ２、Ｅ３、Ｅ４、Ｅ５、Ｅ６、Ｅ７にマージされることはない。
【０１３４】
バウンディングボックスがオーバーラップしない２つのオブジェクトの場合、ＰＡＲＴに割り当てられたいくつかのオブジェクトを描画する速度は、少なくとも、各オブジェクトを個別に描画する速度と同等であることが分かった。改良版ＰＡＲＭ（又は、ＩＰＡＲＭ）において、バウンディングボックスがオーバーラップしない不透明な連続オブジェクト群の各々は、個別のＰＡＲＴに割り当てられることが好ましい。
【０１３５】
６．２  複数の連続オブジェクトのクリッピング
複数の連続オブジェクトが、１つ以上のクリッピング領域によりクリッピングされる場合、各オブジェクトは、典型的なＰＡＲＭでクリッピングされ描画される。クリッピング領域が複雑なパスである場合、これは、非効率的である可能性がある。ＰＡＲＴが、ＰＳＲＭを利用して、クリッピング領域によりクリッピングされるオブジェクト群を描画すると、性能は向上される。これは、クリップが１度だけ処理されることを保証する。
【０１３６】
６．３  ＩＰＡＲＭの手順
変形されたＰＡＲＭは、図２で説明された有効輪郭リスト判定方法、及び図３Ａを参照して説明された走査線の描画方法を利用する。また、ＩＰＡＲＭは、図７を参照して説明されたオブジェクトの有効化を使用する。
【０１３７】
ステップ３６１において、ＩＰＡＲＭは、N画素に対して有効オブジェクトリストを描画する。ＩＰＡＲＭに対するそのような描画が、図８に示される。図８の方法に対する入力は、有効オブジェクトの集合である。ステップ８５１において、描画装置は、有効オブジェクトリスト（ＡＯＬ）が空であるか否かをチェックする。空である場合、手順は、ステップ８５７で終了し、図３Ａに戻る。これは、ＩＰＡＲＭが白色領域を描画しないためである。
【０１３８】
ＡＯＬが空でない場合（ステップ８５１：ＮＯ）、ステップ８５３において、有効オブジェクトリストは、優先度の値の降順にソートされる。リスト中の第１のエントリは、最高優先度の有効オブジェクトを有する。これは、不透明なオブジェクトのみが、改良版ＰＡＲＭに送信されるからである。ステップ８５５に進み、AOL[0]のオブジェクトの塗りつぶしを、フレームストアに出力する。ルーチンは、ステップ８５７で終了する。
【０１３９】
改良版ＰＡＲＭ（ＩＰＡＲＭ）に基づく描画タスク（ＲＴ）は、ＩＰＡＲＴと呼ばれる。ＩＰＡＲＴは、以下の種類のデータを描画するために使用されてもよい：
１．  オーバーラップしない不透明な連続オブジェクト。
【０１４０】
２．  クリップの集合とそのクリップによりクリッピングされる全ての不透明なオブジェクト。これは、クリッピングされる全てのオブジェクトが不透明であることを規定する。
【０１４１】
７．０  第２の構成：ＰＳＲＭ及びＩＰＡＲＭを使用する描画
描画モジュール１５１１により使用される第２の描画構成は、上述の画素順次描画方法を第６．０節のＩＰＡＲＭと組み合わせる。第１のオブジェクトと最終合成オブジェクトとの間の全てのオブジェクトは、第１の構成のように、ＰＳＲＭを使用して描画される。後続する全てのオブジェクトは、不透明であることが保証されるため、改良版ＰＡＲＭ（ＩＰＡＲＭ）による適切な描画候補となる。第２の構成において、オーバーラップしない連続オブジェクトは、ＩＰＡＲＴによる描画のためにグループ化される。
【０１４２】
７．１  第２の構成：オブジェクトリスト
ＩＰＡＲＭの好適な実現において、オブジェクトリストと呼ばれる新規リストが維持される。各オブジェクトが表示リスト生成モジュール１５０７により処理され、輪郭表示リストに追加されると、エントリは、オブジェクトリストに追加される。オブジェクトリストの各エントリは、以下を含む：
−  オブジェクトを記述する輪郭リストを参照する開始及び終了の索引
−  オブジェクトのバウンディングボックス
−  オブジェクトが合成を要求するかを示すフラグ
オブジェクトの集合が１つ以上のクリップによりクリッピングされる場合、第１のクリップとクリッピングされる最終オブジェクトとの間の輪郭の完全な集合は、単一のオブジェクトであると考えられる。この場合、バウンディングボックスは、オブジェクトの集合及び１つ以上のクリップの全てのバウンディングボックスの和集合である。
【０１４３】
例えば、図６Ａのクリップ６５０、クリップ６５２及び矩形６５４の主輪郭リスト｛Ｅ１，Ｅ２，Ｅ３，Ｅ４，Ｅ５，Ｅ６｝は、単一のオブジェクトであると考えられる。
【０１４４】
図５Ａのオブジェクト８０２及び８０４において、主輪郭リストは、｛Ｅ１，Ｅ２，Ｅ３，Ｅ４，Ｅ５，Ｅ６，Ｅ７，Ｅ８，Ｅ９，Ｅ１０，Ｅ１１，Ｅ１２｝であり、オブジェクトは、以下の２つのエントリを有する：
・  エントリ１：開始の索引 = 0（輪郭Ｅ１を参照）、終了の索引 = 6（輪郭Ｅ６を参照）、バウンディングボックス = BB1（すなわち、ボックス８０３）、合成フラグ = FALSE
・  エントリ２：開始の索引 = 7、終了の索引 = 11、バウンディングボックス = BB2（すなわち、ボックス８０５）、合成フラグ = FALSE
７．２  第２の構成：表示リスト生成
図９（ａ）及び図９（ｂ）は、第２の構成で使用する表示リスト及び対応するオブジェクトリストの生成を示す。この方法は、オブジェクトが１つのクリップによりクリッピングされると仮定する。クリップは、描画されるべきオブジェクトのプロパティであると考えられる。これは、MS Windows（登録商標） GDI等のシステムにおいて共通である。図９（ａ）及び図９（ｂ）のステップは、表示リスト生成モジュール１５０７により実行される。
【０１４５】
ステップ９０１において、モジュール１５０７は、ＮＵＬＬを現在のクリップCurClipに設定し、last−compositing−objectを−１に初期化する。カウンタiは、ゼロに設定され、オブジェクトリスト中の第１のエントリOL[0]に、以下の値が代入される：
OL[0].Start = 0
ステップ９０３に進み、処理すべき別のオブジェクトが存在するか否かをチェックする。ページに対して処理すべきオブジェクトが存在しない場合（ステップ９０３：ＮＯ）、ステップ９１９で終了する。存在する場合（ステップ９０３：ＹＥＳ）、ステップ９０５に進む。ステップ９０５において、オブジェクトのクリップ（存在する場合）は、輪郭及びレベルデータに分解され、オブジェクトは、輪郭、レベルデータ及び塗りつぶしデータに分解される。モジュール１５０７は、輪郭リストに輪郭を追加する。オブジェクトが合成を要求する場合、ＴＲＵＥを変数「composites」に設定し、カウンタiをlast−compositing−objectに設定する。オブジェクトが合成を要求しない場合、ＦＡＬＳＥを変数「composites」に設定する。
【０１４６】
次に、ステップ９０７において、モジュール１５０７は、オブジェクトがクリップを有するか否かをチェックする。オブジェクトが付随するクリップを有さない場合、ステップ９０９に進み、描かれるべきオブジェクトのバウンディングボックスを変数「bbox」に設定する。ステップ９１７において、オブジェクトリストのi番目のエントリOL[i]に、以下の値が代入される：
OL[i].End = 現在の輪郭リストのサイズ - 1
OL[i].BBox = 変数「bbox」
OL[i].Composites = 変数「composites」
カウンタiは、１増分され、オブジェクトリストのi番目のエントリOL[i]に、以下の値が代入される：
OL[i].Start = 現在の輪郭リストのサイズ
ステップ９１７の後、ステップ９０３に戻り、処理すべき別のオブジェクトが存在するか否かを判定する。
【０１４７】
ステップ９０７において、オブジェクトが付随するクリップを有する場合（ステップ９０７：ＹＥＳ）、ステップ９１１に進む。ステップ９１１において、付随するクリップが、変数「CurClip」と比較される。これらのクリップが等しい場合（ステップ９１１：ＹＥＳ）、ステップ９１５に進む。
【０１４８】
ステップ９１５において、オブジェクトリストの「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がＴＲＵＥのままであることを保証する。
【０１４９】
モジュール１５０７は、オブジェクトリストのi番目のエントリOL[i]を以下の値で更新する：
OL[i].Start = 現在の輪郭リストのサイズ
全てのオブジェクトが処理されるまで、ステップ９０３に進む。
【０１５０】
ステップ９１１において、付随のクリップが現在のクリップ「CurClip」に等しくない場合（ステップ９１１：ＮＯ）、ステップ９１３に進む。ステップ９１３において、付随のクリップの値「Obj.Clip」を変数CurClipに設定する。オブジェクト及びクリップの合成バウンディングボックスを、変数bboxに設定する。その後、上述のように、ステップ９１７に進む。全てのオブジェクトが処理されるまで、ステップ９０３に進む。
【０１５１】
ステップ９１９の終了時点において、出力は、ソートされていない主輪郭リスト、及び対応するオブジェクトリストである。更に、last−compositing−objectは、識別された。表示リスト中のオブジェクト総数は、カウンタ「i」の値である。
【０１５２】
７．３  第２の構成：描画方法
第２の構成の描画方法を図１６に示す。ステップ１６０１において、描画モジュール１５１１は、last−compositing−objectがゼロ以上か否かをチェックする。ゼロ以上である場合、ステップ１６０３において、モジュール１５１１は、OL[0].StartとOL[last−compositing−object].Endとの間の全ての輪郭を、ＰＳＲＴに割り当てる。ステップ１６０５において、描画タスクは、図２、図３Ａ、図４及び図７のステップを使用して実行される。その後、ステップ１６０７に進む。
【０１５３】
last−compositing−objectがゼロ以上でない場合（ステップ１６０１：ＮＯ）、ＰＳＲＴは不必要であり、ステップ１６０７に直接進み、ステップ１６０３及び１６０５をスキップする。
【０１５４】
ステップ１６０７において、モジュール１５１１は、「last−compositing−object + 1」を、索引iに設定する。ステップ１６１１は、iがオブジェクト数Nより小さいか否かをチェックする。描画されるべきオブジェクトが存在しない場合（ステップ１６１１：ＮＯ）、描画は、ステップ１６０９で終了する。処理されるべきオブジェクトがまだ存在する場合、ステップ１６１３において、モジュール１５１１は、以下の値を設定する：
StartObj = i
TotalBBox = Obj[i].Bbox
i = i + 1
ステップ１６１５は、Obj[i].BboxがTotalBboxに存在せず且つiがNより小さいかをチェックする。この条件が満足される場合（ステップ１６１５：ＹＥＳ）、ステップ１６１７に進み、以下の値を設定する：
TotalBbox = TotalBbox + Obj[i].Bbox
i = i + 1
その後、ステップ１６１５に戻る。
【０１５５】
ステップ１６１５の条件が満足されない場合（ステップ１６１５：ＮＯ）、ステップ１６１９において、モジュール１５１１は、OL[StartObj].StartとOL[i-1].Endとの間の全ての輪郭をＩＰＡＲＴに割り当てる。ステップ１６２１において、モジュール１５１１は、図２、図３Ａ、図７及び図８のステップを使用して描画タスクを実行する。ステップ１６２３において、索引iは、１増分され、ステップ１６１１に戻り、処理されるべき別のオブジェクトが残っているか否かをチェックする。
【０１５６】
第２の構成の描画方法の概要を、以下の擬似コードで示す：
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
図１０Ａに示される例において、画像９５０は、５つのオブジェクト９５１、９５２、９５３、９５４及び９５５（優先度の昇順）から形成される。最終合成オブジェクトは９５２である。
【０１５７】
矩形９５１は、画像９５０の左上に位置する。半透明な楕円９５２は、矩形９５１と部分的に重畳するが、他のオブジェクトには接触しない。矩形９５４は、画像９５０の右上に位置し、他のオブジェクトと交差しない。不透明な矩形９５３は、画像９５０の下半分に位置し、不透明な台形９５５は、矩形９５３と部分的に重畳する。
【０１５８】
第２の構成において、オブジェクト９５１及び９５２に対する輪郭の集合は、画素順次描画方法を使用して、フレームストアに描画される。この第１の描画タスク９５７が、図１０Ｂに示される。
【０１５９】
オブジェクト９５３及び９５４は、バウンディングボックスがオーバーラップしないが、オブジェクト９５５は、オブジェクト９５３及び９５４の合成バウンディングボックスにオーバーラップする。従って、図１０Ｃに示されるように、オブジェクト９５３及び９５４の輪郭が、第１のＰＡＲＴ９５９に割り当てられる。タスク９５９は、オブジェクト９５３及び９５４をフレームストアに描画する。
【０１６０】
最後に、図１０Ｄに示されるように、別のＰＡＲＴ９６１は、オブジェクト９５５をフレームストアに描画するために使用される。
【０１６１】
７．４  バンディング
目標が１ｂｐｐ単位の中間調単色出力である場合等のいくつかの状況において、全フレームストアが利用可能である。この出力に対するフレームストアは、６００ｄｐｉ（dots per inch）のＡ４のページ毎に、約４ＭＢを必要とする。更に高いｄｐｉの場合、又は更に大きなページの場合、あるいは、４ｂｐｐ単位のＣＭＹＫ等の更に長いビット深さの場合、１行当たりの画素数がページの幅に等しい帯状領域と、ページの高さよりかなり小さいある数字に等しい最大走査線数、例えば、２５６本の走査線とを割り当てることのみが可能である。
【０１６２】
全フレームストアが利用可能である場合、描画タスクは、順次、完全に実行される。例えば、画像９５０を処理する時、ＰＳＲＴ９５７は実行され、全ての画素がフレームストアに描画される。残りのＩＰＡＲＴ９５９及び９６１は、各々実行され、オブジェクト９５３〜９５５がフレームストアに描画される。連続ＩＰＡＲＴは、オーバーラップせず、各ＩＰＡＲＴは、並行に描画可能である。
【０１６３】
帯状領域の記憶のみ利用可能である場合、現在の帯状領域上で可視状態であるタスクの一部のみが描画されるように、タスクは、順次、部分的に実行される。連続ＩＰＡＲＴが帯状領域内でオーバーラップしない場合、各ＩＰＡＲＴは、並行に描画可能である。
【０１６４】
図１０Ａの例において、３つの描画タスクが存在する。タスク９５７は、オブジェクト９５１及び９５２を描画する。タスク９５９は、オブジェクト９５３及び９５４を描画し、タスク９６１はオブジェクト９５５を描画する。
【０１６５】
図１０Ｅのように、ページが２つの帯状領域Ｂ１及びＢ２に分割される場合、帯状領域Ｂ１に対して、タスク９５７及び９５９が有効である。タスク９５７は、Ｈ１本の走査線に対して、帯状領域の記憶上に描画され、タスク９５９も、Ｈ１本の走査線に対して、帯状領域の記憶上に描画される。帯状領域の記憶は、プリンタに送信される。タスクは、全ての輪郭が処理されるまで、メモリ内に存在し続ける。タスク９５７は、帯状領域Ｂ１内で完了するが、タスク９５９は、処理すべき別の輪郭（オブジェクト９５３に対する）を有する。第２の帯状領域Ｂ２において、タスク９６１が有効である。タスク９５９は、帯状領域の記憶上に描画され、タスク９６１も、帯状領域の記憶上に描画される。帯状領域の記憶はプリンタに送信される。
【０１６６】
このバンディングの方法は、本明細書で説明される全ての描画方法に適用可能である。
【０１６７】
８．０  排他的画素順次描画方法（ＸＰＳＲＭ）
最終合成オブジェクトの数が表示リスト中のオブジェクト総数と比較して小さい時、第２の構成の描画方法が有用である。最悪の場合、表示リスト中の最終オブジェクトが合成を要求すると、第２の構成において、全てのオブジェクトは、ＰＳＲＭを使用して描画されることになる。これは、合成を要求するオブジェクトが、局部化した領域内に含まれ、多数のオブジェクトにオーバーラップしない場合であることが多い。
【０１６８】
排他的画素順次描画方法（ＸＰＳＲＭ）と呼ばれる変形ＰＳＲＭを、次に説明する。この方法において、指定されたオブジェクトに対する画素のみが出力される。
【０１６９】
ＸＰＳＲＭにおいて、新しいメンバがレベルデータ構造に追加される。このメンバは、ExclusiveOutputと呼ばれる。ExclusiveOutputメンバに値１が設定されているオブジェクトを有効オブジェクトリスト（ＡＯＬ）が少なくとも１つ含む場合、画素ランは、出力される。ＡＯＬ自体は、ExclusiveCountと呼ばれる新しいメンバを有する。オブジェクトがＡＯＬに挿入されると、AOL.ExclusiveCountは、Object.ExclusiveOutputの値分増分される。オブジェクトがＡＯＬから除去されると、AOL.ExclusiveCountは、Object.ExclusiveOutputの値分減分される。
【０１７０】
ＸＰＳＲＭは、図２で説明された判定方法、及び図３Ａで説明された走査線の描画方法を使用して、有効輪郭リストを判定する。ＸＰＳＲＭにより使用されるオブジェクトを有効化する方法（クリッピングを考慮する）を、図１２に示す。これは、図７に示す方法の変形版である。
【０１７１】
画素ランに影響を与えるオブジェクトを判定するＸＰＳＲＭの方法を、図１３に示す。これは、図４の変形版である。
【０１７２】
図１３の方法は、図４の多くのステップを含む。特に、ステップ４５３、４５７、４５９、４６１、４６３、４６５、４６７、４６９、４７０及び４７１による分岐部分は、変更されていない。最初のステップ４５１は、図１３において、ステップ１３０１に置換される。ステップ１３０１は、「ＡＯＬが空、又はAOL.ExclusiveCount = 0」であるかをチェックする。この条件が満足されない場合（ステップ１３０１：ＮＯ）、ステップ４５３に進み、ステップ４５３〜４７１の分岐部分が実行される。
【０１７３】
ステップ１３０１の条件が満足される場合、ステップ４７１に直接進む。図４の方法からの第２の変更点は、ＸＰＳＲＭにおいて、ステップ４５５（白色の出力）が省略されることである。従って、有効オブジェクトリストが空である場合、又はExclusiveOutputメンバが設定されたオブジェクトを有効オブジェクトリストが１つも含まない場合のいずれの場合においても、ＸＰＳＲＭは、画素を出力しない。
【０１７４】
図７のオブジェクト有効化ルーチン／オブジェクト無効化ルーチンの変形版を、図１２において説明する。図７及び図１２の方法は、ステップ１２２３及び１２２１を除いて、ほぼ同様であり、ステップ１２２３及び１２２１は、ステップ７７３及び７７１をそれぞれ置換する。ステップ１２２３及び１２２１は、有効オブジェクトリストの新しいメンバAOL.ExclusiveCountを増分又は減分する追加的タスクを含む。
【０１７５】
図７と同様に、図１２に対する入力は、現在の輪郭により指し示される有効オブジェクトリスト及びレベルデータ構造のリストである。図１２の出力は、変更された有効オブジェクトリスト（ＡＯＬ）及び変更された可能性のある変数ExclusiveCountである。
【０１７６】
ステップ７７３を置換するステップ１２２３は、ＡＯＬからobjを除去し（objがＡＯＬ中にある場合）、AOL.ExclusiveCountからobj.ExclusiveOutputを差し引く。ステップ７７１を置換するステップ１２２１は、objをＡＯＬに挿入し（objがＡＯＬ中にない場合）、obj.ExclusiveOutputをAOL.ExclusiveCountに追加する。
【０１７７】
ＸＰＳＲＭにより、複数のオブジェクトが表示リストに追加されるが、ＸＰＳＲＭは、明示的に特定されたオブジェクトのみが出現することを規定する。ＸＰＳＲＭを利用する描画タスクは、ＸＰＳＲＴと呼ばれる。
【０１７８】
例を図１１Ａに示す。画像１１００は、最初の１００個のオブジェクトを領域１１１０に含む。最初の１００個のオブジェクトは、不透明なテキストオブジェクトである。また、画像１１００は、５つのベクトルグラフィックオブジェクト１１０１、１１０２、１１０３、１１０４及び１１０５を含み、オブジェクト１１０５は、オブジェクト１１０１、１１０２及び１１０３上に合成される。これらのオブジェクトには、領域１１２０の多数のテキストオブジェクトが後続する。上述の第１の構成の方法及び第２の構成の方法において、オブジェクト１１０５は領域１１１０に対して影響を与えないが、オブジェクト１１０５が最終合成オブジェクトであるため、第１のテキストオブジェクトとオブジェクト１１０５との間の全てのオブジェクトは、ＰＳＲＭを使用して描画される。
【０１７９】
これに対し、図１１Ｂに示すように、オブジェクト１１０５のみが出力されるが、オブジェクト１１０５は、オブジェクト１１０１、１１０２及び１１０３に対して合成されるように、オブジェクト１１０５が、ＸＰＳＲＭを使用して、フレームストアに対し排他的に描画されてもよい。
【０１８０】
オブジェクト１１０５のExclusiveOutputメンバに１を設定し、オブジェクト１１０５が有効な時に、ＸＰＳＲＴが画素ランのみを出力することを保証する。このような画素ランに対して、オブジェクト１１０１、１１０２、１１０３及び１１０５の輪郭は、ＸＰＳＲＴに送信される。オブジェクト１１０１の輪郭は、Ｅ１及びＥ２であり、オブジェクト１１０２の輪郭は、Ｅ３及びＥ４であり、オブジェクト１１０３の輪郭は、Ｅ５及びＥ６であり、オブジェクト１１０５の輪郭は、Ｅ９及びＥ１０である。走査線１１３０に関連する輪郭を図１１Ｃに示す。ＸＰＳＲＴに渡された輪郭は、｛Ｅ１，Ｅ２，Ｅ３，Ｅ４，Ｅ５，Ｅ６，Ｅ９，Ｅ１０｝である。Ｅ７及びＥ８は、オブジェクト１１０４に属し、描画されるべき輪郭に含まれない。
【０１８１】
輪郭リストは、格納され、その内容は、｛Ｅ１，Ｅ２，Ｅ３，Ｅ４，Ｅ９，Ｅ１０，Ｅ５，Ｅ６｝である。図２及び図３Ａのように、通常、輪郭は追跡される。
【０１８２】
走査線１１３０に対する有効輪郭リストは｛Ｅ１，Ｅ９，Ｅ２，Ｅ３，Ｅ１０，Ｅ４｝である。図３Ａ、図１２及び図１３を参照すると、ステップ３５１において、CurXに０を設定し、ActiveObjectListに空リストを設定する。ステップ３５３において、Ｅ１が読み出される。E1.X ＞ CurXであるため、ステップ３５７に進む。NにE1.Xを設定し、ステップ３６１からステップ１３０１に進む。ＡＯＬが空であるため、画素は出力されず、ステップ４７１からステップ３６３に戻る。CurXは、E1.Xに更新され、ステップ３６３において、E1.Xがページの幅に等しくないため、ステップ３５３に戻る。
【０１８３】
ステップ３５３において、Ｅ１が読み出される。E1.X = CurXであるため、ステップ３５９に進む。ステップ３５９は、Ｅ１をＡＥＬから除去し、図１２のステップ７５１を呼び出す。ステップ７５１において、iに０を設定し、clip_deltaに０を設定する。ステップ７５３において、objにE1.OL[0] = 1101を設定する。ステップ７５５において、オブジェクト１１０１がクリップではないため、ステップ７６８において、obj.ClipCountがゼロで増分される。ステップ７６９において、オブジェクトは、有効化される。ステップ１２２１において、オブジェクトは、ＡＯＬに挿入され、AOL.ExclusiveCountは、1101.ExclusiveCountの値分、すなわち０で増分される。ステップ７６３において、iは１増分される。ステップ７６５において全てのオブジェクトが処理されたため、ルーチンは、ステップ７６７で終了する。その後、ステップ３６０において、輪郭E1.Xは、次の走査線のために更新される。ステップ３５３に戻る。
【０１８４】
表Ｄは、主なステップ及び実行される動作の概略を示す。
【０１８５】
９．０  第３の構成：ＸＰＳＲＭ及びＩＰＡＲＭを使用する描画
第３の描画構成は、上述の排他的画素順次描画方法（ＸＰＳＲＭ）、及び改良版ペインターズアルゴリズム描画方法（ＩＰＡＲＭ）の双方を使用する。
【０１８６】
９．１  第３の構成：表示リストの生成
第３の構成において、表示リスト生成モジュール１５０７は、ステップ９０５を変更した図９の方法を使用して、表示リストを生成する。
【０１８７】
ステップ９０５に対して、オブジェクトが合成を要求するか否かというロジックが追加され、また、新規エントリが合成リストと呼ばれる第３のリストに追加される。ステップ９０５に対する変更の概要を以下の擬似コードで示す：
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
合成リスト中の各エントリは、オブジェクトのリストであり、第１のエントリは、合成オブジェクト自体であり、合成オブジェクトの下方に位置する全てのオブジェクトが後続する。ここで、「下方に位置する」は、「より低い優先度であり、且つバウンディングボックスがオーバーラップする」ことを意味する。合成リストは、優先度の昇順の順番になっているため、合成リスト中の最終オブジェクトは、合成オブジェクトの下方に位置するオブジェクトの中で、ｚ順において、最も優先度の高いオブジェクトである。各合成オブジェクトに依存するオブジェクトのリストは、描画処理中に、描画モジュール１５１１により構成される。ここでは、リストに関しての説明であるが、ツリー等の別のデータ構造を使用して、同一の情報を取得してもよい。
【０１８８】
図９（ａ）及び図９（ｂ）の変形された方法からの出力は、以下である：
ソートされていない主輪郭リスト
対応するオブジェクトリスト
合成リスト
更に、last−compositing−objectが識別され、表示リスト中のオブジェクトの総数は、カウンタ「i」の値となる。
【０１８９】
描画中、各オブジェクトがオブジェクトのリストの最初から最後まで処理されるため、オブジェクトのバウンディングボックスは、合成リスト中の全てのエントリに対してチェックされる。注目オブジェクトのバウンディングボックスが合成オブジェクトのバウンディングボックスにオーバーラップする場合、注目オブジェクトは、合成リスト中の対応するエントリに追加される。
【０１９０】
図１１Ａの例において、第３の構成で生成された合成リストは、１つのエントリを含む。その結果、エントリは、｛１１０５，１１０１，１１０２，１１０３｝の４つのオブジェクトで構成される。
【０１９１】
９．２  第３の構成：描画
第３の構成の描画方法を、図１７に示す。初期化ステップ１７０１において、描画モジュール１５１１は、ゼロを索引iに設定し、表示リスト中のオブジェクトの総数をNに設定する。ステップ１７０３は、索引iがNより小さいか否かをチェックする。小さくない場合、描画処理は、ステップ１７０５で終了する。
【０１９２】
iがNより小さい場合（ステップ１７０３：ＹＥＳ）、ステップ１７０７に進み、i ＜ N且つOL[i].Composites = FALSEであるかをチェックする。この条件が満足される場合（ステップ１７０７：ＹＥＳ）、ステップ１７０９において、モジュール１５１１は、以下の値を設定する：
StartObj = i
TotalBBox = OL[i].Bbox
i = i + 1
また、ステップ１７０９は、バウンディングボックス及び優先度に基づいて、合成リストＣＬ中のｉを越える全てのエントリに対して、iを追加する。
【０１９３】
次に、ステップ１７１１は、３つの条件をチェックする。OL[i].BboxがTotalBBox中に存在せず、i ＜ Nであり、且つOL[i]が合成リストＣＬに存在しない場合、ステップ１７１３に進む。上記条件を満足しない場合（ステップ１７１１：ＮＯ）、ステップ１７１５に進む。
【０１９４】
ステップ１７１３において、描画モジュール１５１１は、現在のオブジェクトOL[i]のバウンディングボックスを総バウンディングボックスTotalBBoxに追加し、iを増分する。ステップ１７１３は、OL[i]の上にある合成リストＣＬ中の全てのエントリに対し、OL[i]を追加する。その後、ステップ１７１１に戻り、次のオブジェクトを処理する。
【０１９５】
ステップ１７１５において、描画モジュール１５１１は、OL[StartObj].StartとOL[i-1].Endとの間の全ての輪郭をＩＰＡＲＴに割り当てる。ステップ１７１７において、図２、図３Ａ、図７及び図８の方法のステップを使用して、描画タスクが実行される。その後、処理は、ステップ１７１９に継続される。ステップ１７１９は、ステップ１７０７の条件が満足されない場合（ステップ１７０７：ＮＯ）も実行される。
【０１９６】
ステップ１７１９は、iがNより小さく、且つOL[i].CompositesがＴＲＵＥであるかをチェックする。この条件が満足されない場合、ステップ１７０３に戻る。条件が満足される場合（ステップ１７１９：ＹＥＳ）、ステップ１７２１において、描画装置１５１１は、現在のオブジェクトOL[i]の上にある合成リストＣＬ中の全てのエントリに対し、OL[i]を追加する。描画装置は、ＸＰＳＲＭ（図２、図３Ａ、図１２及び図１３の方法のステップ）を使用して、CL[OL[i].CompositeIndex]の全てのオブジェクトを描画する。索引iは、増分され、次のオブジェクトを考慮するために、ステップ１７０３に戻る。
【０１９７】
図１７の方法を、以下の擬似コードにより説明する：
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
図１１Ａの例において、オブジェクトリストは、以下のオブジェクトで構成される：
O1, ..., O100, O101, O102, O103, O104, O105, O106, ..., O150
ここで、O1〜O100は、テキストオブジェクト１１１０であり、オブジェクトO101〜O105は、ベクトルグラフィックオブジェクト１１０１〜１１０５であり、オブジェクトO106〜O150は、テキストオブジェクト１１２０である。
【０１９８】
合成リストは、CL[0] = O105である。合成リストは、表示リスト生成モジュール１５０７により判定される。
【０１９９】
描画中、オブジェクトO1〜O100は、バウンディングボックスがCL[0]にオーバーラップせず、且つ優先度がCL[0]よりも低いため、O1〜O100の各オブジェクトは、１つ以上のＩＰＡＲＭを使用して描画される。
【０２００】
擬似コードの４行目〜１５行目において、描画装置１５１１は、以下の動作を実行する。
【０２０１】
７行目：O101が優先度においてCL[0]よりも低く、バウンディングボックスがCL[0]にオーバーラップするため、O101は、CL[0]に追加される。
【０２０２】
１１行目：O102が優先度においてCL[0]よりも低く、バウンディングボックスがCL[0]にオーバーラップするため、O102は、CL[0]に追加される。
【０２０３】
１１行目：O103が優先度においてCL[0]よりも低く、バウンディングボックスがCL[0]にオーバーラップするため、O103は、CL[0]に追加される。
【０２０４】
１１行目：O104が優先度においてCL[0]よりも低いが、バウンディングボックスがCL[0]にオーバーラップしないため、O104は、CL[0]に追加されない。
【０２０５】
９行目：O105が合成オブジェクトであるため、ループは終了する。
【０２０６】
１４行目：オブジェクトO101、O102、O103及びO104は、ＩＰＡＲＭを使用して、フレームストアに描画される。
【０２０７】
４行目：O105が合成オブジェクトであるため、ループは終了する。
【０２０８】
１６行目：OL[i] = O105であり、O105.Composite = TRUEを有する。
【０２０９】
１７行目：O105より優先度の高いエントリが合成リストＣＬに存在しないため、１８行目に進む。
【０２１０】
１８行目：CL[0]のエントリは、O105、O101、O102及びO103である。従って、オブジェクトO101、O102、O103及びO105は、ＸＰＳＲＴに割り当てられ、フレームストアに描画される。
【０２１１】
３行目：i = 106であり、４行目〜１５行目の間において、他の全てのオブジェクト１１２０は、１つ以上のＩＰＡＲＭを使用して描画される。
【０２１２】
１０．０  その他の構成
全ての３つの構成の更に別の変形において、描画中、描画タスクが開始すると、現在の描画タスクが実行されている間に、別の描画タスクが少なくとも識別されることが分かる。識別された次の描画タスクが、現在実行中の描画タスクにオーバーラップしないバウンディングボックスを有する場合、識別された次の描画タスクも、描画を開始できる。この処理は、識別された次の描画タスクが現在実行中の描画タスクにオーバーラップするバウンディングボックスを有するまで、又は描画が完了するまでのいずれかの状況になるまで継続される。
【産業上の利用可能性】
【０２１３】
説明された構成がコンピュータ及び画像処理産業に対して適用可能であることは、上述より明らかである。
【０２１４】
前述では、本発明のいくつかの実施形態を説明したにすぎない。本発明の範囲及び趣旨を逸脱せずに変形及び／又は変更が可能であり、これら実施形態は、例証するものであり、制限するものではない。
【０２１５】
本明細書において、用語「具備する」は、「主に含むが、単独で必要ではない」、「有する」又は「含む」ことを意味し、「〜のみで構成される」ことではない。用語「具備する」の語形変化は、それに対応して意味の変化を示す。
【０２１６】
【表１】
2006018842.tif 000003
【０２１７】
【表２】
2006018842.tif 000004
【０２１８】
【表３】
2006018842.tif 000005
【０２１９】
【表４】
2006018842.tif 000006
【図面の簡単な説明】
【０２２０】
【図１Ａ】不透明な文字「Ｏ」上に半透明な矩形を表示する画像の例を示す図。
【図１Ｂ】図１Ａのオブジェクトに対する輪郭を示す図。
【図１Ｃ】図１Ａの例の輪郭リストを概略的に示すブロック図。
【図２】主輪郭リストの有効輪郭を判定し、この有効輪郭の集合が描画されるべき走査線数を判定する方法を示すフローチャート。
【図３Ａ】図２の方法のステップにより計算される有効輪郭から走査線を描画する方法を示すフローチャート。
【図３Ｂ】図２の方法のステップにより計算される有効輪郭から走査線を描画する別の方法を示すフローチャート。
【図４】画素順次描画方法において、画素ランに影響を与えるオブジェクトを判定する方法を示すフローチャート。
【図５Ａ】バウンディングボックスがオーバーラップする２つのオブジェクトの例を示す図。
【図５Ｂ】バウンディングボックスがオーバーラップしない２つのオブジェクトを示す図。
【図６Ａ】２つの三角形状のクリップが矩形をクリッピングする画像の例を示す図。
【図６Ｂ】図６Ａの矩形及びクリップを描画した結果を示す図。
【図６Ｃ】図６Ａのオブジェクトの輪郭を示す図。
【図６Ｄ】図６Ａのオブジェクトのメモリ内にある表示リストの表現を概略的に示す図。
【図７】クリッピングを考慮して、画素順次描画方法でオブジェクトを有効化するのか無効化するのかを判定する方法を示すフローチャート。
【図８】改良版ペインターズアルゴリズム描画方法（ＩＰＡＲＭ）において、画素ランに影響を与えるオブジェクトを判定する方法を示すフローチャート。
【図９（ａ）】、
【図９（ｂ）】第２の構成及び第３の構成に対して、表示リストを生成する間にオブジェクトリストを構成する方法を説明するフローチャート。
【図１０Ａ】ページ上に５つのオブジェクトを有する画像を示す図。
【図１０Ｂ】、
【図１０Ｃ】、
【図１０Ｄ】図１０Ａのオブジェクトが３つの描画タスクに描画される様子を示す図。
【図１０Ｅ】２つの帯状領域に描画された図１０Ａのページを示す図。
【図１１Ａ】オブジェクトのページの表現を概略的に示す図。
【図１１Ｂ】排他的画素順次描画方法（ＸＰＳＲＭ）を使用して描画された図１１Ａのオブジェクトを示す図。
【図１１Ｃ】走査線Ｓに近接する図１１Ａのオブジェクトの輪郭を示す図。
【図１２】オブジェクトを有効化する方法を示すフローチャートであり、ＸＰＳＲＭにおいて、有効オブジェクトリストのExclusiveCountメンバが、オブジェクトが有効化される時には増分され、オブジェクトが無効化される時には減分される方法を示すフローチャート。
【図１３】ＸＰＳＲＭにおいて、画素ランに影響を与えるオブジェクトを判定する方法を示すフローチャート。
【図１４】画素順次描画方法（ＰＳＲＭ）及びペインターズアルゴリズム描画方法（ＰＡＲＭ）を使用する第１の描画構成を示すフローチャート。
【図１５】本開示の描画構成が実現される描画パイプラインを概略的に示すブロック図。
【図１６】画素順次描画方法（ＰＳＲＭ）及び改良版ペインターズアルゴリズム描画方法（ＩＰＡＲＭ）を使用する第２の描画構成を示すフローチャート。
【図１７】排他的画素順次描画方法（ＸＰＳＲＭ）及び改良版ペインターズアルゴリズム描画方法（ＩＰＡＲＭ）を使用する第３の描画構成を示すフローチャート。
【図１８】描画構成を組み込むコンピュータシステムの表現を概略的に示すブロック図。
【図１Ａ】
2006018842.tif 000007
【図１Ｂ】
2006018842.tif 000008
【図１Ｃ】
2006018842.tif 000009
【図２】
2006018842.tif 000010
【図３Ａ】
2006018842.tif 000011
【図３Ｂ】
2006018842.tif 000012
【図４】
2006018842.tif 000013
【図５Ａ】
2006018842.tif 000014
【図５Ｂ】
2006018842.tif 000015
【図６Ａ】
2006018842.tif 000016
【図６Ｂ】
2006018842.tif 000017
【図６Ｃ】
2006018842.tif 000018
【図６Ｄ】
2006018842.tif 000019
【図７】
2006018842.tif 000020
【図８】
2006018842.tif 000021
【図９（ａ）】
2006018842.tif 000022
【図９（ｂ）】
2006018842.tif 000023
【図１０Ａ】
2006018842.tif 000024
【図１０Ｂ】
2006018842.tif 000025
【図１０Ｃ】
2006018842.tif 000026
【図１０Ｄ】
2006018842.tif 000027
【図１０Ｅ】
2006018842.tif 000028
【図１１Ａ】
2006018842.tif 000029
【図１１Ｂ】
2006018842.tif 000030
【図１１Ｃ】
2006018842.tif 000031
【図１２】
2006018842.tif 000032
【図１３】
2006018842.tif 000033
【図１４】
2006018842.tif 000034
【図１５】
2006018842.tif 000035
【図１６】
2006018842.tif 000036
【図１７】
2006018842.tif 000037
【図１８】
2006018842.tif 000038
【外国語明細書】
2. Title of the Invention
METHOD OF RENDERING GRAPHIC OBJECTS
3. Detailed Description of Invention
2006018842.tif 000039
2006018842.tif 000040
2006018842.tif 000041
2006018842.tif 000042
2006018842.tif 000043
2006018842.tif 000044
2006018842.tif 000045
2006018842.tif 000046
2006018842.tif 000047
2006018842.tif 000048
2006018842.tif 000049
2006018842.tif 000050
2006018842.tif 000051
2006018842.tif 000052
2006018842.tif 000053
2006018842.tif 000054
Detailed Description of the Preferred Embodiments
2006018842.tif 000055
2006018842.tif 000056
2006018842.tif 000057
2006018842.tif 000058
2006018842.tif 000059
2006018842.tif 000060
2006018842.tif 000061
2006018842.tif 000062
2006018842.tif 000063
2006018842.tif 000064
2006018842.tif 000065
2006018842.tif 000066
2006018842.tif 000067
2006018842.tif 000068
2006018842.tif 000069
2006018842.tif 000070
2006018842.tif 000071
2006018842.tif 000072
2006018842.tif 000073
2006018842.tif 000074
2006018842.tif 000075
2006018842.tif 000076
2006018842.tif 000077
2006018842.tif 000078
2006018842.tif 000079
2006018842.tif 000080
2006018842.tif 000081
2006018842.tif 000082
2006018842.tif 000083
2006018842.tif 000084
2006018842.tif 000085
2006018842.tif 000086
2006018842.tif 000087
2006018842.tif 000088
2006018842.tif 000089
2006018842.tif 000090
2006018842.tif 000091
2006018842.tif 000092
2006018842.tif 000093
2006018842.tif 000094
2006018842.tif 000095
2006018842.tif 000096
2006018842.tif 000097
2006018842.tif 000098
2006018842.tif 000099
2006018842.tif 000100
4. Brief Description of the Drawings
2006018842.tif 000101
2006018842.tif 000102
2006018842.tif 000103
1. What is claimed is
2006018842.tif 000104
2006018842.tif 000105
2006018842.tif 000106
2006018842.tif 000107
2006018842.tif 000108
2006018842.tif 000109
2006018842.tif 000110
2006018842.tif 000111
2006018842.tif 000112
2006018842.tif 000113
2006018842.tif 000114
2006018842.tif 000115
2006018842.tif 000116
2006018842.tif 000117
2006018842.tif 000118
2006018842.tif 000119
2006018842.tif 000120
abstract
2006018842.tif 000121
2006018842.tif 000122
2006018842.tif 000123
2006018842.tif 000124
2006018842.tif 000125
2006018842.tif 000126
2006018842.tif 000127
2006018842.tif 000128
2006018842.tif 000129
2006018842.tif 000130
2006018842.tif 000131
2006018842.tif 000132
2006018842.tif 000133
2006018842.tif 000134
2006018842.tif 000135
2006018842.tif 000136
2006018842.tif 000137
2006018842.tif 000138
2006018842.tif 000139
2006018842.tif 000140
2006018842.tif 000141
2006018842.tif 000142
2006018842.tif 000143
2006018842.tif 000144