(57)【特許請求の範囲】
【請求項１】
予め定められたオブジェクトを結合して結合されたオブジェクトを生成するための、各々が優先度を有する複数の検出スキームを利用するオブジェクトレンダリング方法であって、
オブジェクトを受付ける受付けステップと、
受付けた前記オブジェクトに関連する検出スキーマを呼び出す呼び出しステップと、
受付けた前記オブジェクトが、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであるか判別し、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであると判別された場合に肯定的なステータスを送信する検出スキームから肯定的なステータスを受信した場合、優先度とオブジェクトを特定する情報とを有するオブジェクトグループを含むアクティブオブジェクトグループリストを更新する更新ステップと、
アクティブオブジェクトグループリストにおいて最も高い優先度を有し、かつ、完全に形成されたオブジェクトグループを出力リストに出力する出力ステップと、
前記出力ステップにおいて出力された第１のオブジェクトグループのオブジェクトとオーバーラップするオブジェクトを含む第２のオブジェクトグループをアクティブオブジェクトグループリストから削除する削除ステップと、
出力リストに応じてレンダリング機能を呼び出す呼び出しステップと
を有することを特徴とするオブジェクトレンダリング方法。
【請求項２】
前記更新ステップでは、新しいオブジェクトグループがアクティブオブジェクトグループリストにエントリーされ、かつ、受付けたオブジェクトを含むようにアクティブオブジェクトグループリストが修正されることを特徴とする請求項１に記載のオブジェクトレンダリング方法。
【請求項３】
前記出力ステップでは、前記削除ステップで削除された前記第２のオブジェクトグループのオブジェクトのうち、前記第１のオブジェクトグループ及び前記アクティブオブジェクトグループリストに含まれる他の第３のオブジェクトグループのオブジェクトとオーバーラップしないオブジェクトが出力リストに出力されることを特徴とする請求項１に記載のオブジェクトレンダリング方法。
【請求項４】
予め定められたオブジェクトを結合して結合されたオブジェクトを生成するための各々が優先度を有する複数の検出スキームを利用するオブジェクトレンダリングシステムであって、
オブジェクトを受付ける受付け手段と、
受付けた前記オブジェクトに関連する検出スキーマを呼び出す呼び出し手段と、
受付けた前記オブジェクトが、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであるか判別し、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであると判別された場合に肯定的なステータスを送信する検出スキームから肯定的なステータスを受信した場合、優先度とオブジェクトを特定する情報とを有するオブジェクトグループを含むアクティブオブジェクトグループリストを更新する更新手段と、
アクティブオブジェクトグループリストにおいて最も高い優先度を有し、かつ、完全に形成されたオブジェクトグループを出力リストに出力する出力手段と、
前記出力手段により出力された第１のオブジェクトグループのオブジェクトとオーバーラップするオブジェクトを含む第２のオブジェクトグループをアクティブオブジェクトグループリストから削除する削除手段と、
出力リストに応じてレンダリング機能を呼び出す呼び出し手段と
を有することを特徴とするオブジェクトレンダリングシステム。
【請求項５】
前記更新手段は、新しいオブジェクトグループをアクティブオブジェクトグループリストにエントリーし、かつ、受付けたオブジェクトを含むようにアクティブオブジェクトグループリストを修正することを特徴とする請求項４に記載のオブジェクトレンダリングシステム。
【請求項６】
前記出力手段は、前記削除手段で削除された前記第２のオブジェクトグループのオブジェクトのうち、前記第１のオブジェクトグループ及び前記アクティブオブジェクトグループリストに含まれる他の第３のオブジェクトグループのオブジェクトとオーバーラップしないオブジェクトを出力リストに出力することを特徴とする請求項４に記載のオブジェクトレンダリングシステム。
【請求項７】
予め定められたオブジェクトを結合して結合されたオブジェクトを生成するための、各々が優先度を有する複数の検出スキームを利用するオブジェクトレンダリング方法を、コンピュータに実行させるためのコンピュータプログラムであって、前記方法は、
オブジェクトを受付ける受付けステップと、
受付けた前記オブジェクトに関連する検出スキーマを呼び出す呼び出しステップと、
受付けた前記オブジェクトが、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであるか判別し、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであると判別された場合に肯定的なステータスを送信する検出スキームから肯定的なステータスを受信した場合、優先度とオブジェクトを特定する情報とを有するオブジェクトグループを含むアクティブオブジェクトグループリストを更新する更新ステップと、
アクティブオブジェクトグループリストにおいて最も高い優先度を有し、かつ、完全に形成されたオブジェクトグループを出力リストに出力する出力ステップと、
前記出力ステップにおいて出力された第１のオブジェクトグループのオブジェクトとオーバーラップするオブジェクトを含む第２のオブジェクトグループをアクティブオブジェクトグループリストから削除する削除ステップと、
出力リストに応じてレンダリング機能を呼び出す呼び出しステップと
を備えることを特徴とするコンピュータプログラム。
【請求項８】
前記更新ステップでは、新しいオブジェクトグループがアクティブオブジェクトグループリストにエントリーされ、かつ、受付けたオブジェクトを含むようにアクティブオブジェクトグループリストが修正されることを特徴とする請求項７に記載のコンピュータプログラム。
【請求項９】
前記出力ステップでは、前記削除ステップで削除された前記第２のオブジェクトグループのオブジェクトのうち、前記第１のオブジェクトグループ及び前記アクティブオブジェクトグループリストに含まれる他の第３のオブジェクトグループのオブジェクトとオーバーラップしないオブジェクトが出力リストに出力されることを特徴とする請求項７に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトレンダリングシステムにおけるオブジェクトのマネジメントに概ね関連し、より詳細には、オブジェクトレンダリングシステムにおけるグラフィカルオブジェクト検出スキームのマネージメントに関連する。
【背景技術】
【０００２】
レンダリングは、グラフィックオブジェクトを画素に変換する処理である。グラフィックレンダリングシステムは、基本的にペインターズアルゴリズムスタイル(painters algorithm style)のレンダリング手法を利用するが、かかるスタイルでは、各オブジェクトが到達した順に（as it arrives）フレームバッファに描画される。他のグラフィックレンダリングシステムは２段階手法を利用する。ここでグラフィックレンダリングシステムは、まず、入力される全てのオブジェクトを幾つかの中間フォーマットに各ページについて変換する。次に、同時に走査線をレンダリングする(the second stage renders a scanline at a time.)。
【０００３】
グラフィックレンダリングシステムのタイプを問わず、アプリケーションプログラムから受信するグラフィックコマンドのいくつかの性質により、効率の問題を被ることとなる。例えば、一般的な描画アプリケーションプログラムは、スムーズなグラデーション（gradient fill）の印象を与えるために、わずかに異なる単調な色（slightly different flat colour）を有する隣接し重なり合った長方形のグループとして、グラデーションをグラフィックレンダリングシステムに送信される。この場合、オリジナルのオブジェクトの性質に忠実なものにはなるが、グラフィックオブジェクトは冗長なデータが多く含まれることとなる。
【０００４】
上述の非効率性を削減する試みにおいて、より複雑なグラフィックオブジェクトと結合されるであろうシンプルなグラフィックオブジェクトを検出し、そのようなグラフィックオブジェクトを、オブジェクトグループと結合し、それによって冗長なデータを削減すると共に、ラスタオペレーション(raster operations)の数を減少させるものが提案されている（特許文献１を参照）。
【０００５】
オブジェクトグループは、この文脈において、１以上のオブジェクトのグループを記述するために用いられる。当該グループは、結合されて、より効率的で、そのグラフィックレンダリングシステムに特有のオブジェクト（のセット）を構成する。結合されたオブジェクトは、単一のオブジェクトのグループと比較して、より複雑であっても良いが、グラフィックレンダリングシステムは、オブジェクトグループをより効率的に扱うことができるであろう。もし、グラフィックレンダリングシステムにとって、それらが描かれていた元々のフォーマットよりもより好ましいフォーマットに変換されることが可能であれば、単一オブジェクトを一つのオブジェクトグループとして分類してもよい。
【０００６】
オブジェクトグループ検出スキーム（object group detection schemes）は、典型的に、オブジェクトをグループ化して、より効率的／望ましいオブジェクトのセットを構成することができるかどうかを決定するために利用される。システム設計者は、特に検出スキームを調整して、これらのオブジェクトの非効率性を検出し、修正する。”修正された”グラフィックオブジェクトデータは、オリジナルよりも、より複雑化しがちであるが、特定のグラフィックレンダリングシステムに対して最適化されており、そのようなレンダリングシステムを含むシステムをより効率的なものとするであろう。
【０００７】
各検出スキームは、グラフィックオブジェクトの異なるグループを検出し、結合して、複雑なグラフィックオブジェクトを形成する。検出スキームでは、しばしば１以上の同一オブジェクトが利用されるために、レンダリングシステムが複数の検出スキームを含んでいる場合には検出スキームにおける摩擦が生ずる可能性がある。
【特許文献１】特開平１０−２４０４７７号公報
【０００８】
本発明の目的は、既存の装置における１以上の不利益を実質的に克服する、或いは、少なくとも改善することである。
【０００９】
本発明の第１の側面によれば、予め定められたオブジェクトを結合して結合されたオブジェクトを生成するための、各々が優先度を有する複数の検出スキームを利用するオブジェクトレンダリング方法であって、オブジェクトを受付ける受付けステップと、受付けた前記オブジェクトに関連する検出スキーマを呼び出す呼び出しステップと、受付けた前記オブジェクトが、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであるか判別し、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであると判別された場合に肯定的なステータスを送信する検出スキームから肯定的なステータスを受信した場合、優先度とオブジェクトを特定する情報とを有するオブジェクトグループを含むアクティブオブジェクトグループリストを更新する更新ステップと、アクティブオブジェクトグループリストにおいて最も高い優先度を有し、かつ、完全に形成されたオブジェクトグループを出力リストに出力する出力ステップと、前記出力ステップにおいて出力された第１のオブジェクトグループのオブジェクトとオーバーラップするオブジェクトを含む第２のオブジェクトグループをアクティブオブジェクトグループリストから削除する削除ステップと、出力リストに応じてレンダリング機能を呼び出す呼び出しステップとを有することを特徴とする。
【００１０】
本発明の第２の側面によれば、予め定められたオブジェクトを結合して結合されたオブジェクトを生成するための各々が優先度を有する複数の検出スキームを利用するオブジェクトレンダリングシステムであって、オブジェクトを受付ける受付け手段と、受付けたオブジェクトに関連する検出スキーマを呼び出す呼び出し手段と、受付けた前記オブジェクトが、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであるか判別し、以前に受付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであると判別された場合に肯定的なステータスを送信する検出スキームから肯定的なステータスを受信した場合、優先度とオブジェクトを特定する情報とを有するオブジェクトグループを含むアクティブオブジェクトグループリストを更新する更新手段と、アクティブオブジェクトグループリストにおいて最も高い優先度を有し、かつ、完全に形成されたオブジェクトグループを出力リストに出力する出力手段と、前記出力手段により出力された第１のオブジェクトグループのオブジェクトとオーバーラップするオブジェクトを含む第２のオブジェクトグループをアクティブオブジェクトグループリストから削除する削除手段と、出力リストに応じてレンダリング機能を呼び出す呼び出し手段とを有することを特徴とする。
【００１１】
本発明の別の側面によれば、上述の方法を実行するためのコンピュータプログラムが記録されたコンピュータで読み取り可能な記録媒体を含むコンピュータプログラム製品が提供される。
【００１２】
本発明の１以上の実施形態は、添付する図面を参照して記述されるものである。
【００１３】
［最良の実施形態を含む詳細な記述］
処理ステップや特徴を説明するために添付図面の何れかを引用するところ、かかる図面において同一の参照番号が付された処理ステップ及び／又は特徴は、特に断りがない限りは、同一の機能や処理を表すものである。
【００１４】
図１は、多目的のコンピュータシステム１００を示しており、コンピュータシステム１００の１以上の出力装置に対してオブジェクトのレンダリングを行うために利用される。当該出力装置には、例えば、ディスプレイ１１４やプリンタ１１５がある。コンピュータシステム１００は、コンピュータモジュール１０１、キーボード１０２及びマウス１０３のような入力装置、プリンタ１１５及びディスプレイ１１４を含む出力装置から構成されるものである。
【００１５】
コンピュータモジュール１０１は、少なくとも一つのプロセッサユニット１０５、メモリーユニット１０６、ハードディスクドライブ１１０及びフロッピー（登録商標）ディスクドライブ１１１を典型的に含むところの記憶装置１０９、及び、多くの入出力（Ｉ／Ｏ）インタフェースを含むものである。入出力インタフェースは、ディスプレイ１１４と組み合わされるビデオインタフェース１０７、キーボード１０２及びマウス１０３用のＩ／Ｏインタフェース１１３、及び、プリンタ１１５用のインタフェース１０８を含む。コンピュータシステム１００内で実行されるオペレーティングシステムは、キーボード１０２及びマウス１０３からの入力を認識する、ディスプレイ１１４及びプリンタ１１５に出力を送信する、ファイルやディレクトリの記録を、記憶装置１０９に保存する、及び、ハードディスクドライブ１１０及びフロッピー（登録商標）ディスクドライブ１１１をを制御する、といった基本的なタスクを実行する。オペレーティングシステムはまた、アプリケーションプログラムを実行するためのソフトウェアプラットフォームを提供する。
【００１６】
図２は、出力装置１１４又は１１５の何れかにオブジェクトをレンダリングする処理に含まれる図１のコンピュータシステム１００のモジュールを示す図である。アプリケーションプログラム２１０はプロセッサ１０５内で実行され、例えばワードプロセッサのようなプログラムである。このプログラムにより、ページベースの文書データが生成され、各ページ内にはグラフィックオブジェクトが含まれる。グラフィックオブジェクトは典型的には、テキスト、ライン、フィルリージョン（fill regions）、画像データを含む。
【００１７】
文書が出力装置１１４や１１５上にレンダリングされる場合、アプリケーションプログラム２１０は、文書の各ページを連続するグラフィックコマンドとして、コンピュータシステム１００の元々のオペレーティングシステムにより提供されるグラフィックインタフェースサービス２２０へ送信する。グラフィックコマンドは、当該ページのグラフィックオブジェクトを記述する。グラフィックインタフェースサービス２２０のセットは、グラフィックデバイスインタフェース（ＧＤＩ）レイヤーとして既知であり、全てのアプリケーションプログラムにグラフィックス機能のリッチセットを提供する一般的なアプリケーションプログラミングインタフェースである。
【００１８】
ＧＤＩレイヤー２２０は、デバイスドライバ２３０が最も効率的に処理を行うであろうとＧＤＩレイヤー２２０が判断するフォーマットと、出力装置１１４又は１１５の解像度とにおいて、グラフィックオブジェクトをデバイスドライバ２３０へ提供する。実際、ＧＤＩレイヤー２２０は、アプリケーションプログラム２１０と出力装置１１４又は１１５との間を仲介するものであり、それによりデバイスドライバ２３０は、例えば、長方形ブロックの画像データを描画したり、シンプルな領域を単一色で塗りつぶしたりするといった、より小さな機能セット（a much smaller set of functionality）をサポートすることが可能となる。
【００１９】
デバイスドライバ２３０は、グラフィックレンダリングシステムとしても公知であるが、ＧＤＩレイヤー２２０から受け付けたグラフィックオブジェクトをレンダリングする。レンダリングは、ＧＤＩレイヤー２２０から受け付けたグラフィックオブジェクトをデバイスドライバ２３０により画素に変換する処理である。当該画素は出力装置１１４又は１１５へ送られる。アプリケーションプログラム２１０とグラフィックインタフェースサービス２２０はソフトウェアにより構成されるが、デバイスドライバ２３０はソフトウェア、ハードウエア又はそれらの組み合わせにおいて実現されても良い。
【００２０】
好適な実施形態において、グラフィックレンダリングシステム２３０によるレンダリング処理は、多目的コンピュータ１００のプロセッサ１０５により実行されるソフトウェアにおける命令により有効化される。当該ソフトウェアは、例えば、記憶手段１０９を含めた、コンピュータ可読媒体に格納されていてもよい。そのようなソフトウェアやコンピュータプログラムが格納されたコンピュータ可読媒体は、コンピュータプログラム製品である。
【００２１】
図３は、グラフィックレンダリングシステム３１０を示しており、そこには、４つの検出スキーム３１１から３１４が含まれている。検出スキーム３１１から３１４のそれぞれは、シンプルなグラフィックオブジェクトの異なるコンビネーションを結合して、それぞれに複雑なグラフィックオブジェクトを生成する。例えば、検出スキーム３１１は、水平線３２１と垂直線３２２とを結合して、十字３２３を形成している。
【００２２】
しかしながら、入力オブジェクト３３１が、グラフィックレンダリングシステム３１０により受け付けられた場合、オブジェクト３３１は、検出スキーム３１１から３１３までによりそれぞれ形成される複雑なグラフィックオブジェクトの一部を形成し得るシンプルなオブジェクトとして、検出スキーム３１１から３１３の３つにより検出されることになる。なお、このオブジェクト３３１は、垂直線である。検出スキーム３１１から３１３はシンプルなグラフィックオブジェクトを共有しているが、各手法３１１から３１３は、共通のオブジェクトを共有するかもしれない他の全ての検出スキーム３１１から３１４と通信して、当該オブジェクトの出力が１度だけ行われるようにしなければならない。そこで、各検出スキーム３１１から３１４は優先度を有している必要がある。ここで優先度とは、オブジェクトグループタイプについて与えられた順位付けである。特定の検出スキーム３１１から３１４に割り当てられる優先順位の番号が小さくなればなるほど、当該特定の検出スキームによって検出されるオブジェクトグループタイプに対する優先度が上がることとなる。検出スキーム３１１から３１４において最も高い優先度を有するものが、その検出スキームがオブジェクトグループタイプを形成するのに必要とするオブジェクトを全て入手することとなる。
【００２３】
優先度ベースではなく、検出スキームの完全なインタラクションとする場合、グラフィックレンダリングシステム３１０において、個々の検出スキーム３１１から３１４は、他のいずれかの検出スキーム３１１から３１４と同一のオブジェクトを利用することができないので、グラフィックレンダリングシステムにおいて最も効率的にグループ化されたグラフィックオブジェクトのセットを出力することはほとんど不可能となるであろう。
【００２４】
検出スキーム３１１から３１４が互いに通信しあうことを必要とする上述の要求は、新しい検出スキームが実行される際の容易性を損なうものである。より多くの検出スキームがグラフィックレンダリングシステムに追加されると、通信プロトコルは典型的に複雑化し、レンダリングシステム３１０内における実行速度が減少したり、符号の複雑さが増大したりといった逆の効果がもたらされることとなる。さらに、新しい検出スキームを導入するための適切なベースがない場合には、新たなオブジェクトグループ検出スキームを実施するための容易性が損なわれ、ソフトウェアの再利用性に影響が及ぶこととなる。
【００２５】
図４は、本発明に対応するグラフィックレンダリングシステム４００の好適な実施形態を示す図である。グラフィックレンダリングシステム４００は、レンダリングモジュール４０５、オブジェクトグループマネージングモジュール４１０及び複数の検出スキーム４２１から４２３を含み、これらの全てが好ましくは、プロセッサ１０５により実行される命令によって有効化される。
【００２６】
検出スキーム４２１から４２３の目的は、グラフィックオブジェクトをオブジェクトグループにグループ化することにより、図２のＧＤＩレイヤー２２０から受け付けたグラフィックオブジェクトの”デザイラビリティ（desirability）”を向上させることにある。これにより、レンダリングモジュール４０５に、グラフィックオブジェクトから画素への変換をより効率的に行わせることができる。異なるレンダリングモジュール４０５におけるデザイラビリティは、いくつかのレンダリングモジュール４０５がコンパクトなオブジェクトを選択するのに対し、他のレンダリングモジュール４０５が、より単純化されたオブジェクトのセットを選択する点で、異なるかもしれない。４２１から４２３の各検出スキームは、ある特定のオブジェクトグループを形成するために必要とされるグラフィックオブジェクトを"認識する（recognises）"。それゆえに、各検出スキーム４２１から４２３は、それぞれに特有のオブジェクトグループを形成するために必要とされる所定数のオブジェクトを格納する。
【００２７】
大抵の場合、検出スキーム４２１から４２３、特に検出スキーム４２２及び４２３は、同一のグラフィックオブジェクトを利用してそれぞれのオブジェクトグループを形成する。これらの２つのオブジェクトグループは、オーバラップしていると呼ばれる。オブジェクトグループマネージングモジュール４１０は、グラフィックレンダリングシステム４００により受信された各オブジェクトを、現在のオブジェクトタイプと関連する個々の検出スキームに送信し、検出されたオブジェクトグループの正否についての応答を格納する。各オブジェクトタイプは、０以上の検出スキームと所定の関連性を有する。オブジェクトグループマネージングモジュール４１０は、個々の検出スキーム４２１から４２３までからの結果を利用してマネージングを行い、グループ化されたオブジェクト又は単一オブジェクトを含んでもよい現在アクティブなオブジェクトグループ（これは、個々の検出スキームによって保持されている）の出力を制御する。
【００２８】
このようにするために、オブジェクトグループマネージングモジュール４１０は、オーバラップしているオブジェクトを有する検出スキーム４２１から４２３の間を仲介し、どのオブジェクトグループがどのオブジェクトに割り当てられるかを決定する。オブジェクトグループマネージングモジュール４１０は、検出スキーム４２１から４２３とレンダリングモジュール４０５との間でコミュニケータ及びオーガナイザとして効果的に振る舞い、個々の検出スキーム４２１から４２３が互いに通信し合う必要性を低減する。
【００２９】
オブジェクトグループマネージングモジュール４１０はまた、各検出スキーム４２１から４２３によって形成されるオブジェクトグループのいずれにも属しないオブジェクトの出力を扱い、また、オブジェクトグループには属しているかもしれないが、オブジェクトグループが完結しないようないかなるオブジェクトの出力も扱う。オブジェクトグループマネージングモジュール４１０は、この意味において、個々の検出スキーム４２１から４２３を制御し、組織化する（organize）マネージャとして動作し、グラフィックレンダリングシステム４００への及び、当該システム４００からのオブジェクトの流れをも制御する。
【００３０】
検出スキーム４２３が最も高い優先度を割当られており、それに続くのが４２１である。この例において、検出スキーム４２２及び４２３はオーバラップしているので、検出スキーム４２３はそのオブジェクトグループを、検出スキーム４２２に優先して形成することとなる。
【００３１】
以下のように、レンダリングモジュール４０５は、始動すると（upon initiation）、コンフィギュレーションデータをオブジェクトグループマネージングモジュール４１０へ送信する。コンフィギュレーションデータには、典型的には、グラフィックレンダリングシステム４００内に実装されている検出スキーム４２１から４２３の優先度、コールバック機能（callback functions）のリスト、及び、検出スキーム４２１から４２３のそれぞれに関するコンフィギュレーションデータのリストが含まれている。コンフィギュレーションデータは、オブジェクトグループが形成されるかどうかを検出スキーム４２１から４２３のそれぞれがどのように決定するかにつき、所定の制限を設定するために利用される。特に、"Always Formed（常に形成される）"とのフラグは、設定されるか又は設定されない。設定される場合、このフラグは、オブジェクトグループがいかなる数（１以上）のオブジェクトからでも完成されるオブジェクトグループであることを示す。そのようなオブジェクトグループはそれ故に、後述するように、例えより高い優先度のオブジェクトグループが共通する幾つかのオブジェクトを有していたとしても、出力の目的のために完成されたグループとして扱われる。コールバック機能は、検出スキーム４２１から４２３を読み出すために利用される。
【００３２】
２つのコールバック機能が、検出スキーム４２１から４２３のそれぞれと関連して存在する。即ち、認識コールバック機能（a recognize callback function）と、フラッシュコールバック機能（a flush callback function）である。認識コールバック機能に呼応して、検出スキーム４２１から４２３は、ステータスフラグを送り返すことにより、オブジェクトグループの検出ステータスをオブジェクトグループマネージングモジュール４１０に通知する。このステータスフラグは、以下のいずれかの意味を有することができる。
【００３３】
オブジェクトグループが完成したこと（現在のオブジェクトも含む）(object group complete (including the current object))
オブジェクトグループが完成し（現在のオブジェクトは含まず）、現在のオブジェクトが新しいグループに受け入れられたこと(object group complete (not including the current object) and current object has been accepted into a new group)
オブジェクトグループが完成し（現在のオブジェクトは含まず）、現在のオブジェクトが新しいグループに受け入れられていないこと(object group complete (not including the current object) and current object has not been accepted into a new group)
現在のオブジェクトにより新しいオブジェクトグループが開始され、完成したこと(new object group started and complete, by the current object)
オブジェクトグループが依然として形成中であること（”削除された”）(object group still forming ("detected"))
オブジェクトグループが失敗したこと（現在のオブジェクトを含む）(object group failed (including the current object))
オブジェクトグループが失敗し（現在のオブジェクトを含まず）、現在のオブジェクトが新しいオブジェクトグループに受け入れられていないこと(object group failed (not including the current object) and current object is not accepted into a new object group)
オブジェクトグループが失敗し（現在のオブジェクトを含まず）、現在のオブジェクトが新しいオブジェクトグループに受け入れられていること(object group failed (not including the current object) and current object is accepted in a new object group)
オブジェクトが受け入れられていないこと(object not accepted)
新しいオブジェクトグループが開始されたこと（”ポジティブ”ステータス）(new object group started ("positive" status))
フラッシュコールバック機能は、検出スキーム４２１から４２３に、完成したオブジェクトグループ若しくは単一オブジェクトを出力させる。
【００３４】
その動作において、レンダリングモジュール４０５は、グラフィックオブジェクト４３１から４３８をＧＤＩレイヤー２２０（図２）から一つずつ受信する。オブジェクト４３１から４３８は、レンダリングモジュール４０５によりオブジェクトグループマネージングモジュール４１０へ送信される。レンダリングモジュール４０５は特に、特定のオブジェクトが属するであろうオブジェクトグループタイプ、これらのオブジェクトタイプの数及びオブジェクト自体をオブジェクトグループマネージングモジュール４１０に提供する。オブジェクトは、所定の構造においてラッピングされ、当該構造のヘッダは、オブジェクトのオブジェクトグループタイプとそのようなタイプの数とを含む。オブジェクトはまた、レンダリングモジュール４０５によりメモリー１０６（図１）内にセーブされる。
【００３５】
図５Ａ、図５Ｂは、オブジェクトグループマネージングモジュール４１０によって実行されるプロセス５００のフロー図である。プロセス５００の処理工程は、メモリー１０６へロードされ、プロセッサ１０５によって実行されるたソフトウェアによって有効化される。オブジェクトグループマネージングモジュール４１０は、プロセス５００を開始し、ステップ５１０において、オブジェクトグループマネージングモジュール４１０はオブジェクト及び関連するデータをレンダリングモジュール４０５からを受け付け、それをオブジェクトリストに格納する。オブジェクトグループマネージングモジュール４１０はまた、オブジェクトに対するポインタをメモリー１０６へセーブする。
【００３６】
ステップ５１２では、オブジェクトグループマネージングモジュール４１０は、オブジェクトグループ認識フラグ（object group recognition flag）がセットされているかどうかを決定する。オブジェクトグループ認識フラグは、オブジェクトグループマネージングモジュール４１０のオン／オフステータスを制御する。もしオブジェクトグループ認識フラグがセットされていない場合、オブジェクトグループマネージングモジュール４１０はステップ５２０において、"検出されていない（not detected）"とのステータスメッセージをレンダリングモジュール４０５へ送信することにより、レンダリングモジュール４０５へコントロールを返す。レンダリングモジュール４０５は、通常の手法によりオブジェクトをレンダリングする。
【００３７】
また、もしオブジェクトグループマネージングモジュール４１０が、オブジェクトグループ認識フラグがセットされていると決定した場合には、オブジェクトグループマネージングモジュール４１０はステップ５１４において、受け付けたオブジェクトに関連する検出スキーム４２１から４２３のそれぞれの認識機能（a recognise function）を呼び出す。もし現在トラックされているオブジェクトグループが存在する場合、即ち、検出スキームが、アクティブオブジェクトグループリストにおいてアクティブなステータスを有する場合、アクティブな検出スキームの認識機能もまた呼び出される。アクティブオブジェクトグループリストは、オブジェクトグループマネージングモジュール４１０が現在トラッキングしている現在アクティブなオブジェクトグループのリストである。当該リストにおける各アイテムには、オブジェクトグループのタイプ、オブジェクトグループの優先度、オブジェクトグループがアクティブであるオブジェクト、及び、オブジェクトグループのステータスが含まれる。ステータスは"アクティブ"、"完成(complete)"、又は"失敗(failed)"のいずれかであっても良く、リスト中のいかなるアイテムも、"失敗"フラグが立っている場合には、直ちに削除される。
【００３８】
各検出スキーム４２１から４２３は、受け付けたグラフィックオブジェクトが、それ以前に受け付けたオブジェクトとグループ化される可能性のあるオブジェクトの一つであるかどうかを、もしそれがある場合により複雑なグラフィックオブジェクトを形成するために決定し、その結果として、オブジェクトグループマネージングモジュール４１０へ応答を送信する。オブジェクトグループマネージングモジュール４１０は、このようにしてステップ５１６において、検出スキーム４２１から４２３より検出ステータスを受信する。
【００３９】
ステップ５１８において、オブジェクトグループマネージングモジュール４１０は、現在トラッキングされているオブジェクトグループが存在するかどうかを、アクティブオブジェクトグループリストにおいて"アクティブ"なステータスを有するオブジェクトグループが現在存在するかどうか、或いは、検出スキーム４２１から４２３のいずれかが肯定的な検出ステータスをステップ５１６において返してきたかどうか、により決定する。もし現在トラッキングされているオブジェクトが存在しない場合、プロセス５００はステップ５２０へ移行して、"検出されていない（not detected）"とのステータスメッセージがレンダリングモジュール４０５へ送信される。このようにして、単一グラフィックオブジェクトがいかなるオブジェクトグループタイプにも属しないことが決定され、メモリースペースの浪費を防止するために当該オブジェクトが通常の手法によりレンダリングモジュール４０５によってレンダリングされても良い。
【００４０】
もし、ステップ５１８においてオブジェクトグループマネージングモジュール４１０が、少なくとも一つのオブジェクトグループがアクティブオブジェクトグループリストにおいて現在"アクティブ"なステータスにあるかどうか、又は、検出スキーム４２１から４２３の少なくとも一つが肯定的な検出ステータスを返してきたかどうか、を決定した場合、オブジェクトグループマネージングモジュール４１０は、ステップ５２２においてアクティブオブジェクトグループリストを更新する。このことは、各検出スキーム４２１から４２３が"肯定的な（positive）"検出ステータスを返した各オブジェクトグループに関して"アクティブ"なステータスを有するエントリーを生成すること、各検出スキーム４２１から４２３が"検出した（detected）"との検出ステータスを返した現在のオブジェクトを含むように、既存のエントリーのオブジェクトリストを修正すること、及び、各検出スキームが、オブジェクトグループが失敗（object group failed）との検出ステータスのいずれかを返した、正しく形成することに失敗した全てのオブジェクトグループを削除すること、を含むものである。検出スキームは、それがトラッキングするようにデザインされているオブジェクトグループにフィットしないオブジェクトを受け付けた場合に、オブジェクトグループが失敗（object group failed）とのステータスフラグのうちの１つを戻すであろう。ステップ５２２では、対応する検出スキーム４２１から４２３が"完成"の検出ステータスのいずれかのフォームを返すところの、アクティブオブジェクトグループリストにおける各オブジェクトグループに関してステータスを"完成（complete）"に設定することが含まれる。
【００４１】
プロセス５００はステップ５２４に移行し、オブジェクトグループマネージングモジュール４１０は、このステージにおいて出力されるべきオブジェクトグループ又は独立のオブジェクトが存在するかどうかを決定する。オブジェクトグループ又は単一オブジェクトは、もしアクティブオブジェクトグループリストにおいて最も高い優先度のオブジェクトグループが"完成"のステータスを有する場合に出力される。
【００４２】
もし、オブジェクトグループマネージングモジュール４１０が、オブジェクトグループ又は単一オブジェクトが出力されるべきであると決定した場合、プロセス５００はステップ５２６へ移行する。そうでない場合は、プロセス５００はステップ５３６に移行する。
【００４３】
ステップ５２６では、オブジェクトグループマネージングモジュール４１０が、"完成"のステータスを有するアクティブオブジェクトグループリストにおける優先度が最も高いオブジェクトグループのデータを、アクティブオブジェクトグループリストから出力リストへ転送する。ここで、出力リストとは、出力されるべきオブジェクトグループ及び単一オブジェクトのリストである。出力リストには、出力されるオブジェクトグループのタイプ、出力されるオブジェクトの範囲、及び、オブジェクトグループ又は単一オブジェクトのいずれを出力するかが含まれている。
【００４４】
ステップ５２８では、オブジェクトグループマネージングモジュール４１０が、オブジェクトグループまたはオブジェクトがリストから削除されたことを受けて、アクティブオブジェクトグループリストを更新する。ここでは、ステップ５２６で転送されたオブジェクトグループにオーバラップするオブジェクトグループを見つける（locate）ために、アクティブなオブジェクトグループにおけるエントリを優先度の降順にトラバース（traversing）することを含む。そのようなオブジェクトグループのそれぞれに対応する検出スキームの"常に形成(Always Formed)"のフラグがチェックされる。もし、このフラグが設定されている場合、出力リストに既に登録されているどのオブジェクトに対するポインタも、当該エントリのオブジェクトリストから削除される。もし、フラグがセットされていない場合は、当該オブジェクトグループはアクティブなオブジェクトグループから削除される。
【００４５】
プロセス５００は、ステップ５２８からステップ５２９へ移行して、オブジェクトグループマネージングモジュール４１０が、アクティブなオブジェクトグループ中に出力リストに転送されるべき更なるオブジェクトグループ又は単一オブジェクトが存在するかどうかを決定する。一旦オブジェクトグループマネージングモジュール４１０が、オブジェクトグループ又は単一オブジェクトが出力されるべきであると決定すると、現在オブジェクトグループマネージングモジュール４１０がトラッキングしている全てのオブジェクトは、出力される必要が出てくるであろう。但し、新しいオブジェクトグループに受け入れられ、他のグループには受け入れられていないことを条件として現在のオブジェクトは除外される。このことは、オブジェクトの順番は、レンダリング時に維持されることを保証するものである。もしオブジェクトグループマネージングモジュール４１０がステップ５２９において、より多くのオブジェクトが出力リストに転送される必要があると決定した場合、プロセス５００はステップ５２６へ戻る。そうでなければ、ステップ５３２へ移行する。
【００４６】
このように、オブジェクトグループマネージングモジュール４１０が、アクティブなオブジェクトグループから出力リストへ転送すべきオブジェクトグループ及び単一オブジェクトが存在しないと決定した場合、ステップ５３２において、オブジェクトグループマネージングモジュール４１０は、出力リストに応じてレンダリングモジュール４０５における適当なレンダリング機能を（検出スキームの一部として提供されるフラッシュコールバック機能を介して）呼び出す。オブジェクトがグラフィックレンダリングシステム４００へ入力された順番を維持するために、出力リストはリストの最後のオブジェクト／オブジェクトグループから最初へとたどられる。レンダリング機能を呼び出すことにより、対応するオブジェクト又はオブジェクトグループが出力装置１１４又は１１５へレンダリングされる。出力リストが一度完全に処理されると、オブジェクトグループマネージングモジュール４１０はステップ５３４においてオブジェクトリストをクリアする。
【００４７】
オブジェクトグループマネージングモジュール４１０は、次にステップ５３６において受け付けたオブジェクトが処理されたことをレンダリングモジュール４０５に通知する。例え出力リストが空であるためにレンダリングされるオブジェクトが存在しない場合であっても、この通知は送信され、最新に受け付けられたグラフィックオブジェクトがオブジェクトグループに包含されたか、部分的にオブジェクトグループを形成しているかを意味することとなる。プロセス５００は、次のオブジェクトの受信に応じて再度実行される。
【００４８】
グラフィックレンダリングシステム４００、特にオブジェクトグループマネージングモジュール４１０の処理を、図６Ａから図６Ｇを参照して以下により詳細に説明する。例えば、グラフィックレンダリングシステム４００はテキストオブジェクトをＧＤＩレイヤー２２０から受信し、テキストオブジェクトをレンダリングし、ディスプレイ１１４へ画素を出力する。
【００４９】
例に示すグラフィックレンダリングシステム４００は、２つの検出スキームを含む。第１の検出スキームは、オブジェクトグループ"Ｔｈｅ"を構成するテキストオブジェクトを検出し、"ＴＨＥ"との語を形成する画素を出力する。第２の検出スキームは、オブジェクトグループ"Ｔｈｅｓｅ"を構成するテキストオブジェクトを検出し、"ＴＨＥＳＥ"との語を形成する画素を出力する。この例において、オブジェクトグループ"Ｔｈｅｓｅ"はより高い優先度を与えられている。更に、検出スキームには"常に形成(Always Formed)"のフラグがセットされていない。レンダリングシステム４００のレンダリングモジュール４０５によって受信されたテキストオブジェクトは、"Ｔｈｅｓｅ "との語を形成しており、ここでは、文字"ｅ"の後にスペースが続いている。テキストオブジェクトは、１つずつオブジェクトグループマネージングモジュール４１０へ送信され、各オブジェクトはそのオブジェクトグループタイプにより組合わされる。
【００５０】
ここで図６Ａを参照すると、オブジェクトグループマネージングモジュール４１０の第１の状態６０１が示されている。オブジェクトグループマネージングモジュール４１０は、まずオブジェクト"Ｔ"をレンダリングモジュール４０５から受け付け、当該オブジェクトをオブジェクトリストに格納する。よって、オブジェクトリストには、この時点で"Ｔ"が含まれている。オブジェクトグループマネージングモジュール４１０は、受信したオブジェクト"Ｔ"に関連するそれぞれの検出スキームの認識機能を呼び出す。
【００５１】
各検出スキームは、受信したグラフィックオブジェクトが、より複雑なグラフィックオブジェクトを形成するためにグループ化される可能性のあるオブジェクトの一部であるかどうかを決定し、その結果に応じた検出ステータスをオブジェクトグループマネージングモジュール４１０へ送信する。図６Ａは、２つの検出スキームについての状態６０２及び６０３を示している。各検出スキームは、オブジェクト"Ｔ"を認識し、"new object group started（新しいオブジェクトグループの開始）"のステータスをオブジェクトグループマネージングモジュール４１０へ戻す。これは、オブジェクトグループマネージングモジュール４１０に、当該検出スキームに送信されたオブジェクトが、将来的にオブジェクトグループの一部として受け入れられる可能性があることを伝えるものである。
【００５２】
"new object group started"のステータスを受信した後、オブジェクトグループマネージングモジュール４１０は、２つの検出スキームが肯定的な検出ステータスを返したと決定することにより、現在トラッキングされている２つのアクティブなオブジェクトグループが存在することを決定する。オブジェクトグループマネージングモジュール４１０は、検出スキームから受信した情報を、"アクティブ"なステータスを有する２つの新しいエントリ（それぞれは各検出スキームに関連づけられている）を生成することにより、（現在は空である）アクティブオブジェクトグループリストに追加する。オブジェクトグループマネージングモジュール４１０の状態６０１はまた、更新されたアクティブオブジェクトグループリストを示している。
【００５３】
アクティブオブジェクトグループリストにおいて現在最も優先度が高いオブジェクトグループ、この例ではオブジェクトグループタイプ"ＴＨＥＳＥ"は、"完成（complete）"のステータスを有していないので、このステージにおいてはオブジェクトの出力はなされない。
【００５４】
オブジェクトグループマネージングモジュール４１０は次に、受信したオブジェクトが処理され、この時点においてレンダリングのためにオブジェクトが出力される必要がないことをレンダリングモジュール４０５へ通知する。
【００５５】
図６Ｂは、その後の状態を示しており、ここではオブジェクトグループマネージングモジュール４１０がオブジェクト"ｈ"を、第２のオブジェクトとしてレンダリングモジュール４０５から受け付け、状態６１１に示されるように当該オブジェクトをオブジェクトグループマネージングモジュール４１０のオブジェクトリストに格納している状態を示している。オブジェクトグループマネージングモジュール４１０は、各検出スキームの認識機能を呼び出す。これは、両方の検出スキームがオブジェクト"ｈ"に関連しているためだけではなく、両方の検出スキームのオブジェクトグループタイプがアクティブオブジェクトグループリストにリストされているからでもある。各検出スキームは、各オブジェクトにつき一度は呼び戻されることになる点は注意すべきである。
【００５６】
検出スキームの状態６１２及び６１３において示されるように、各検出スキームは、受信したグラフィックオブジェクト"ｈ"が、オブジェクト"Ｔ"とグループ化されてより複雑なグラフィックオブジェクトを形成する可能性があるオブジェクトの一つであるかどうかを決定する。この結果に従って、各検出スキームは"検出（detected）"との検出ステータスをオブジェクトグループマネージングモジュール４１０へ送信する。ここで、もし、検出スキームがオブジェクト"Ｔ"を従前のオブジェクトとして検出していない場合には、"検出"の検出ステータスを戻すことはない。検出スキームは、隣接するオブジェクトを順序に従わずに扱うこともできるが、その場合であってもモジュールはいかなる異なる機能も必要としない。
【００５７】
オブジェクトグループマネージングモジュール４１０は、検出スキームから受信した情報によりアクティブオブジェクトグループリストのエントリを更新する。オブジェクトグループマネージングモジュール４１０の状態６１１は、両方のオブジェクトグループタイプが、"アクティブ"なステータスを有し、オブジェクト１及び２、即ち"Ｔ"及び"ｈ"とそれぞれが関連していることを示している。
【００５８】
アクティブオブジェクトグループリストにおいて最も優先度の高いオブジェクトグループが、"完成（complete）"のステータスを依然として有していない場合、このステージにおいてオブジェクトは出力されない。オブジェクトグループマネージングモジュール４１０は、レンダリングモジュール４０５へ、受信したオブジェクトが処理されたことを通知する。
【００５９】
オブジェクトグループマネージングモジュール４１０は次に、レンダリングモジュール４０５からオブジェクト"ｅ"を受け付け、オブジェクトリスト内に当該オブジェクトを格納する。さらに、受信したオブジェクト"ｅ"と関連する検出スキーム及びアクティブオブジェクトグループリストにおけるオブジェクトグループタイプと関連する全ての検出スキーム、本例においては両方の検出スキーム、の認識機能を呼び出す。
【００６０】
両方の検出スキームは、オブジェクト"ｅ"が各オブジェクトグループを形成するためのグループ化される可能性のあるオブジェクトの一つであると決定する。さらに、オブジェクトグループ"Ｔｈｅ"を構成するテキストオブジェクトを検出する検出スキームは、そのオブジェクトグループを形成するために必要とされる全てのオブジェクトが受信されたと決定し、オブジェクトグループマネージングモジュール４１０に"完成（complete）"のステータスを戻す。図６Ｃは、検出スキームの状態６２２及び６２３を示す。
【００６１】
オブジェクトグループマネージングモジュール４１０は、検出スキームから受信した情報を、既存の２つのエントリを更新することにより、アクティブオブジェクトグループリストに追加する。オブジェクトグループマネージングモジュール４１０の状態６２１は、オブジェクトグループタイプ"ＴＨＥ"が現在"完成（complete）"状態にあることを示している。
【００６２】
アクティブオブジェクトグループリストにおいて最も優先度の高いオブジェクトグループが依然として"完成（complete）"のステータスを有していないので、このステージにおいてもオブジェクトは出力されない。オブジェクトグループマネージングモジュール４１０は、レンダリングモジュール４０５へ、受信したオブジェクトが処理されたことを通知する。
【００６３】
図６Ｄを参照すると、オブジェクトグループマネージングモジュール４１０はオブジェクト"ｓ"をレンダリングモジュール４０５から次に受け付け、当該オブジェクトをオブジェクトリストに格納する。オブジェクトグループマネージングモジュール４１０は、オブジェクトグループタイプ"ＴＨＥＳＥ"に関連する検出スキームのみの認識機能を呼び出す。これは、オブジェクトグループタイプ"ＴＨＥ"に関連する検出スキームが受信したオブジェクト"ｓ"に関連しないだけでなく、アクティブオブジェクトグループリスト内にアクティブなオブジェクトグループタイプに関連する検出スキームが存在しないからでもある。オブジェクトタイプ"ＴＨＥ"は"完成（complete）"ステータスを有している。
【００６４】
オブジェクトグループタイプ"ＴＨＥＳＥ"に関連する検出スキームは、オブジェクト"ｓ"がオブジェクトグループを形成するためにグループ化される可能性のあるオブジェクトの一つであると決定し、"検出（detected）"の検出ステータスをオブジェクトグループマネージングモジュール４１０へ再度返す。図６Ｄはまた、検出スキームの状態６３２及び６３３を示している。オブジェクトグループマネージングモジュール４１０は、オブジェクトグループタイプ"ＴＨＥＳＥ"のエントリを更新することにより、アクティブオブジェクトグループリストへ受信した情報を追加する。オブジェクトグループマネージングモジュール４１０の状態６３１は、オブジェクトグループタイプ"ＴＨＥＳＥ"が、依然として"アクティブ"なステータスを有しており、オブジェクト１から４と関連していることを示している。完成したオブジェクトグループタイプ"ＴＨＥ"のエントリは不変のままである。
【００６５】
アクティブオブジェクトグループリストにおいて最も優先度が高いオブジェクトグループが依然として"完成（complete）"の状態を有していないので、このステージでもオブジェクトは出力されない。オブジェクトグループマネージングモジュール４１０は、レンダリングモジュール４０５へ受信したオブジェクトが処理されたことを通知する。
【００６６】
本例は図６Ｅに継続し、オブジェクトグループマネージングモジュール４１０は、レンダリングモジュール４０５からオブジェクト"ｅ"を受け付け、当該オブジェクトをオブジェクトリスト内にオブジェクト５として格納する。オブジェクトグループマネージングモジュール４１０は、オブジェクト"ｅ"が両方のオブジェクトグループタイプに関連するので、両方の検出スキームの認識機能を呼び出す。
【００６７】
オブジェクトグループタイプ"ＴＨＥＳＥ"に関連する検出スキームは、オブジェクト"ｅ"が、それ以前に受信したオブジェクトとグループ化されてオブジェクトグループを形成する可能性があるオブジェクトの一つであると決定し、オブジェクトグループマネージングモジュール４１０へ"完成（complete）"の検出ステータスを返す。
【００６８】
オブジェクトグループタイプ"ＴＨＥ"に関連する検出スキームは、先行するオブジェクトがオブジェクト"ｈ"でないために、オブジェクト"ｅ"をそれ以前に受信したオブジェクトとグループ化される可能性のあるオブジェクトの一つとは認識せず、"受け付けず（not accepted）"の検出ステータスをオブジェクトグループマネージングモジュール４１０へ返す。図６Ｅはまた、検出スキームの状態６４２及び６４３を示している。
【００６９】
オブジェクトグループマネージングモジュール４１０は、オブジェクトグループタイプ"ＴＨＥＳＥ"のエントリを更新することにより、アクティブオブジェクトグループリストに受信した情報を追加する。オブジェクトグループマネージングモジュール４１０の状態６４１は、オブジェクトグループタイプ"ＴＨＥＳＥ"が、現時点で"完成（complete）"のステータスを有し、オブジェクト１から５と関連づけられていることを示している。完成したオブジェクトグループタイプ”ＴＨＥ”のエントリは不変のままである。
【００７０】
オブジェクトグループマネージングモジュール４１０は、アクティブオブジェクトグループリストにおいて、"完成（complete）"のステータスを有する最も優先度の高いオブジェクトグループタイプと、このステージにおいて出力されるべきオブジェクトグループ又は単一オブジェクトとを決定する。そのために、また、図６Ｆに示されるように、オブジェクトグループマネージングモジュール４１０はオブジェクトグループタイプ"ＴＨＥＳＥ"のデータをアクティブオブジェクトグループリストから出力リストへ転送する。オブジェクトグループマネージングモジュール４１０はまた、アクティブオブジェクトグループリストを更新してオブジェクトグループタイプ"ＴＨＥＳＥ"がリストから削除された事実を反映するとともに、オブジェクトグループタイプ"ＴＨＥ"が、出力リストに移されたオブジェクトグループタイプ"ＴＨＥＳＥ"とオーバラップしており、ゆえに"failed"ステータスを取得しているので、これをアクティブオブジェクトグループリストから削除する。
【００７１】
オブジェクトグループマネージングモジュール４１０は、次にアクティブオブジェクトグループリストが空になり、出力されるべきオブジェクトグループ又は単一オブジェクトが最早存在しないと決定する。オブジェクトグループマネージングモジュール４１０は、出力リストに従ってレンダリングモジュール４０５内の適切なレンダリング機能を呼び出す。出力リストにはただ１つのオブジェクトグループが存在している。オブジェクトグループタイプ"ＴＨＥＳＥ"のレンダリング機能を呼び出すことにより、"ＴＨＥＳＥ"の語を形成する画素が出力装置１１４又は１１５へレンダリングされる。オブジェクトグループマネージングモジュール４１０は、その時点でトラッキングしているオブジェクトを有しておらず、よって、アクティブオブジェクトグループリストにはオブジェクトグループタイプが存在しないが、レンダリングモジュール４０５へ受信したオブジェクトを処理したことを通知する。
【００７２】
最後に、オブジェクトグループマネージングモジュール４１０は" "（空白(space character)）のオブジェクトをレンダリングモジュール４０５から受け付け、図６Ｇの状態６６１に示されるオブジェクトリストに当該オブジェクトを格納する。当該オブジェクト" "は、どの検出スキームとも関連していないので、検出スキームは呼び出されない。
【００７３】
次に、アクティブオブジェクトグループリストは空であるので、オブジェクトグループマネージングモジュール４１０は"検出されず（not detected）"とのステータスのメッセージをレンダリングモジュール４０５へ送信する。レンダリングモジュール４０５は、単一オブジェクトグループタイプのオブジェクト" "を、通常の手法においてレンダリングする。これにより図６Ａから図６Ｇまでに示す例が完結する。
【００７４】
ステップ５２６（図５Ｂ）における、オブジェクトグループマネージングモジュール４１０による、アクティブオブジェクトグループリストから出力リストへのデータ転送について、以下に他の例を用いてより詳細に説明する。図７Ａは、１４個のオブジェクトと、それらと関連づけられたアクティブなオブジェクトグループタイプを示している。４つのオブジェクトグループタイプを含むアクティブオブジェクトグループリストが示され、それらは"完成（complete）"のステータスを有している。ここで、オブジェクトグループタイプ１と関連づけられた検出スキームは、"常に形成（Always Formed）"のフラグセットを有している点に注意すべきである。アクティブオブジェクトグループリストを生成したステップのシーケンスを経ない場合、各オブジェクトグループタイプは完成となるので、より高い優先度を有する他のアクティブなオブジェクトグループタイプが、オブジェクト又はオブジェクトグループが出力されるのを妨げる。
【００７５】
しかしながら、この例における現在のステージでは、アクティブオブジェクトグループリストにおいて最も優先度の高いオブジェクトグループタイプであるオブジェクトグループタイプ４が"完成（complete）"のステータスを有する。よって、オブジェクト９から１４にかかるオブジェクトグループタイプ４のデータは、図示されるように出力リストへ転送される。
【００７６】
もし、同一の優先度を有する１以上の完成したオブジェクトグループが存在する（このことはオブジェクトグループタイプが同一であることを意味するであろう）場合、より後にオブジェクトグループ化された（the later object grouping）オブジェクトグループが、まず出力リストへ転送されるであろう。
【００７７】
ステップ５２８において、オブジェクトグループマネージングモジュール４１０は、オブジェクトグループタイプ４とオーバラップするオブジェクトグループについて、アクティブなリストをスキャンする。図７Ｂに示すように、オブジェクトグループタイプ３はオブジェクトグループタイプ４とオーバラップしており、"Always Formed"のフラグがセットされていないので、オブジェクトグループタイプ３はアクティブオブジェクトグループリストから削除される。
【００７８】
オブジェクトグループタイプ３を削除した後、オブジェクトグループマネージングモジュール４１０は、次に優先度が高い完成したオブジェクトグループをアクティブオブジェクトグループリスト内において探索する。これにより、優先度８を有するオブジェクトグループタイプ２が探索される。このオブジェクトグループが出力リストに追加される前に、オブジェクトグループマネージングモジュール４１０は、このオブジェクトグループと出力リストに追加されたばかりのオブジェクトグループとの間にオブジェクトのギャップが存在しないことチェックして確認する。
【００７９】
図７Ｃに示す場合はオブジェクト８のように、もしギャップが存在する場合には、当該単一オブジェクトは、次のオブジェクトグループが転送される前に、出力リストへ移される。隣接して存在する複数の単一オブジェクトについては、一つのエントリが出力リストに挿入されるだけでよい。このエントリは特に出力されるべきオブジェクトの番号のリストを含むであろう。
【００８０】
図７Ｄは、アクティブオブジェクトグループリスト内で最も高い優先度を有する完成されたオブジェクトグループ（この場合は、オブジェクトグループタイプ２である）のデータが出力リストへ転送される場合を示している。オブジェクト４から７をカバーするオブジェクトグループタイプ２が出力リストへ一旦転送されると、アクティブオブジェクトグループリストが未完成のオブジェクトグループのために再度スキャンされる。図７Ｅを参照すると、オブジェクトタイプ１に関連する検出スキームは"常に形成（Always Formed）"のフラグセットを有するので、オブジェクト４はオブジェクトグループ１のオブジェクトリストから削除される。そして、オブジェクト１から３をカバーするオブジェクトグループタイプ１が、出力リストへ転送される。
【００８１】
全てのオブジェクトが一度出力リストへ移動されると、オブジェクトグループマネージングモジュール４１０は、フラッシュ機能の呼び出しを開始し、オブジェクトグループと単一オブジェクトの出力を行う。出力リストと連携して、オブジェクトグループマネージングモジュール４１０はリストの最後のアイテムから最初のアイテムへ向かって動作する。これは、リストの最後のアイテムがオブジェクトグループマネージングモジュール４１０を通過する最初のオブジェクトであったためであり、それ故に出力リストは出力タスクのスタックとなる。出力リストの後ろから処理するので、オブジェクトグループマネージングモジュール４１０は、オブジェクトグループタイプ１からスタートし、オブジェクトグループタイプ２、単一オブジェクト８、最後にオブジェクトグループタイプ４の順となる。以上により、図７Ａから図７Ｅまでに示す例が完結する。
【００８２】
上述のように、グラフィックレンダリングシステム４００は、既存の検出スキームとは独立に、グラフィックレンダリングシステム４００内における通信の複雑性を増加させることなく、新しい検出スキームを導入できるという利点を有することが理解される。特に、オブジェクトグループマネージングモジュール４１０は、グラフィックオブジェクト、検出スキーム及びそれらの優先度のマネージメントを通じたスキーム間の複雑な通信の必要性を排除して、優先度ベースのオブジェクトグループ検出スキームを効果的に実施するための基礎を提供するものである。
【産業上の利用可能性】
【００８３】
上述した構成は、コンピュータグラフィックス及び印刷業界に適用可能なものであることは明らかである。
【００８４】
上述の内容は本発明のいくつかの実施形態に過ぎず、それらに対する修正及び／若しくは変更は本発明の範囲及び精神から逸脱することなく行うことが可能であり、実施形態は単に例示的なものであって、限定的な意味を有するものではない。
【図面の簡単な説明】
【００８５】
【図１】多目的のコンピュータシステムの構成の一例を示す図である。
【図２】コンピュータシステムの出力装置にオブジェクトをレンダリングする際に利用されるコンピュータシステムのモジュールの一例を示す図である。
【図３】複数の検出スキームを含むグラフィックレンダリングシステムの一例を示す図である。
【図４】本発明に対応するグラフィックレンダリングシステムの好適な実施形態を示す図である。
【図５Ａ】オブジェクトグループマネジングモジュールにより実行される処理のフローチャートである。
【図５Ｂ】オブジェクトグループマネジングモジュールにより実行される処理のフローチャートである。
【図６Ａ】グラフィックレンダリングシステムの処理の一例を示す図である。
【図６Ｂ】グラフィックレンダリングシステムの処理の一例を示す図である。
【図６Ｃ】グラフィックレンダリングシステムの処理の一例を示す図である。
【図６Ｄ】グラフィックレンダリングシステムの処理の一例を示す図である。
【図６Ｅ】グラフィックレンダリングシステムの処理の一例を示す図である。
【図６Ｆ】グラフィックレンダリングシステムの処理の一例を示す図である。
【図６Ｇ】グラフィックレンダリングシステムの処理の一例を示す図である。
【図７Ａ】アクティブなオブジェクトグループリストから出力リストへのデータの転送の一例を示す図である。
【図７Ｂ】アクティブなオブジェクトグループリストから出力リストへのデータの転送の一例を示す図である。
【図７Ｃ】アクティブなオブジェクトグループリストから出力リストへのデータの転送の一例を示す図である。
【図７Ｄ】アクティブなオブジェクトグループリストから出力リストへのデータの転送の一例を示す図である。
【図７Ｅ】アクティブなオブジェクトグループリストから出力リストへのデータの転送の一例を示す図である。
【図１】
0003970256.tif 000002
【図２】
0003970256.tif 000003
【図３】
0003970256.tif 000004
【図４】
0003970256.tif 000005
【図５Ａ】
0003970256.tif 000006
【図５Ｂ】
0003970256.tif 000007
【図６Ａ】
0003970256.tif 000008
【図６Ｂ】
0003970256.tif 000009
【図６Ｃ】
0003970256.tif 000010
【図６Ｄ】
0003970256.tif 000011
【図６Ｅ】
0003970256.tif 000012
【図６Ｆ】
0003970256.tif 000013
【図６Ｇ】
0003970256.tif 000014
【図７Ａ】
0003970256.tif 000015
【図７Ｂ】
0003970256.tif 000016
【図７Ｃ】
0003970256.tif 000017
【図７Ｄ】
0003970256.tif 000018
【図７Ｅ】
0003970256.tif 000019