(57)【特許請求の範囲】
【請求項１】
ディスプレイリストにラスタ化を実行するための方法であって、
前記ディスプレイリストは、当該ディスプレイリストにおける仮想ページオブジェクトの第１クラスに属した仮想ページオブジェクトに関連するバンドを含み、
当該方法は、
少なくとも１つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析するステップと、
前記少なくとも１つの幾何学的バンドをラスタ化するために、少なくとも１つの利用可能なラスタ化処理を識別するステップと、
仮想ページオブジェクトの前記第１クラスから導かれる仮想ページオブジェクトの第２クラスに属するとともに、前記幾何学的バンドを含む第２仮想ページオブジェクトを作成するステップと、
前記幾何学的バンドを含む前記第２仮想ページオブジェクトを、利用可能なラスタ化処理へ送信するステップと、
前記利用可能なラスタ化処理であって、前記第２仮想ページオブジェクトにおける前記幾何学的バンドで動作するラスタ化処理を利用して、前記１つの幾何学的バンドをラスタ化するステップと
を備える方法。
【請求項２】
当該方法は、マスター処理によって実行され、
前記少なくとも１つの利用可能なラスタ化処理は、前記マスター処理の制御下で並行して動作する一組のスレーブラスタ化処理から選択される請求項１に記載の方法。
【請求項３】
任意のアイドルスレーブラスタ化処理が、利用可能なラスタ化処理である請求項２に記載の方法。
【請求項４】
動作する各スレーブラスタ化処理は、識別可能な仮想ページオブジェクトにおける幾何学的バンドで動作し、
前記識別可能な仮想ページオブジェクトは、仮想ページオブジェクトの前記第２クラスに属する請求項２に記載の方法。
【請求項５】
動作する各スレーブラスタ化処理は、前記識別可能な仮想ページオブジェクト自体のコピーを有する請求項４に記載の方法。
【請求項６】
前記スレーブラスタ化処理は、リモート処理である請求項２に記載の方法。
【請求項７】
少なくとも１つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析する前記ステップは、
前記幾何学的バンドを検索するために、前記ディスプレイリストを横断するステップをさらに備える請求項１に記載の方法。
【請求項８】
前記幾何学的バンドを含む前記第２仮想ページオブジェクトを、利用可能なラスタ化処理へ送信する前記ステップは、
前記ラスタ化処理がリモートである場合に、前記第２仮想ページオブジェクトのコピーを前記利用可能なラスタ化処理へ送信するステップと、
前記ラスタ化処理がローカルである場合に、前記第２仮想ページオブジェクトへのリファレンスを前記利用可能なラスタ化処理へ送信するステップと
をさらに備える請求項１に記載の方法。
【請求項９】
仮想ページオブジェクトの前記第１クラスは、仮想ページオブジェクトの前記第２クラスと比較して付加的な機能性をもたらす請求項１に記載の方法。
【請求項１０】
処理装置によって実行されたときに、ディスプレイリストにラスタ化を実行するための方法におけるステップを実現する指示を記憶するコンピュータ可読媒体であって、
前記ディスプレイリストは、当該ディスプレイリストにおける仮想ページオブジェクトの第１クラスに属した仮想ページオブジェクトに関連するバンドを含み、
前記方法は、
少なくとも１つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析するステップと、
前記少なくとも１つの幾何学的バンドをラスタ化するために、少なくとも１つの利用可能なラスタ化処理を識別するステップと、
仮想ページオブジェクトの前記第１クラスから導かれる仮想ページオブジェクトの第２クラスに属するとともに、前記幾何学的バンドを含む第２仮想ページオブジェクトを作成するステップと、
前記幾何学的バンドを含む前記第２仮想ページオブジェクトを、利用可能なラスタ化処理へ送信するステップと、
前記利用可能なラスタ化処理であって、前記第２仮想ページオブジェクトにおける前記幾何学的バンドで動作するラスタ化処理を利用して、前記１つの幾何学的バンドをラスタ化するステップと
を備えるコンピュータ可読媒体。
【請求項１１】
前記方法は、マスター処理によって実行され、
前記少なくとも１つの利用可能なラスタ化処理は、前記マスター処理の制御下で並行して動作する一組のスレーブラスタ化処理から選択される請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
任意のアイドルスレーブラスタ化処理が、利用可能なラスタ化処理である請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
動作する各スレーブラスタ化処理は、識別可能な仮想ページオブジェクトにおける幾何学的バンドで動作し、
前記識別可能な仮想ページオブジェクトは、仮想ページオブジェクトの前記第２クラスに属する請求項１１に記載のコンピュータ可読媒体。
【請求項１４】
動作する各スレーブラスタ化処理は、前記識別可能な仮想ページオブジェクト自体のコピーを有する請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
前記スレーブラスタ化処理は、リモート処理である請求項１１に記載のコンピュータ可読媒体。
【請求項１６】
少なくとも１つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析する前記ステップは、
前記幾何学的バンドを検索するために、前記ディスプレイリストを横断するステップをさらに備える請求項１０に記載のコンピュータ可読媒体。
【請求項１７】
前記幾何学的バンドを含む前記第２仮想ページオブジェクトを、利用可能なラスタ化処理へ送信する前記ステップは、
前記ラスタ化処理がリモートである場合に、前記第２仮想ページオブジェクトのコピーを前記利用可能なラスタ化処理へ送信するステップと、
前記ラスタ化処理がローカルである場合に、前記第２仮想ページオブジェクトへのリファレンスを前記利用可能なラスタ化処理へ送信するステップと
をさらに備える請求項１０に記載のコンピュータ可読媒体。
【請求項１８】
仮想ページオブジェクトの前記第１クラスは、仮想ページオブジェクトの前記第２クラスと比較して付加的な機能性をもたらす請求項１０に記載のコンピュータ可読媒体。
【請求項１９】
処理装置を制御して、ディスプレイリストにラスタ化を実行するための方法における各ステップを実行させる指示を保持するコンピュータ可読メモリであって、
前記ディスプレイリストは、当該ディスプレイリストにおける第１クラスの仮想ページオブジェクトに属した仮想ページオブジェクトに関連するバンドを含み、
前記方法は、
少なくとも１つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析するステップと、
前記少なくとも１つの幾何学的バンドをラスタ化するために、少なくとも１つの利用可能なラスタ化処理を識別するステップと、
仮想ページオブジェクトの前記第１クラスから導かれる仮想ページオブジェクトの第２クラスに属するとともに、前記幾何学的バンドを含む第２仮想ページオブジェクトを作成するステップと、
前記幾何学的バンドを含む前記第２仮想ページオブジェクトを、利用可能なラスタ化処理へ送信するステップと、
前記利用可能なラスタ化処理であって、前記第２仮想ページオブジェクトにおける前記幾何学的バンドで動作するラスタ化処理を利用して、前記１つの幾何学的バンドをラスタ化するステップと
を備えるコンピュータ可読メモリ。
【請求項２０】
前記方法は、マスター処理によって実行され、
前記少なくとも１つの利用可能なラスタ化処理は、前記マスター処理の制御下で並行して動作する一組のスレーブラスタ化処理から選択される請求項１９に記載のコンピュータ可読メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷の分野に関し、詳しくは、ディスプレイリストのラスタ化を並行処理するための方法、コンピュータ可読媒体及びコンピュータ可読メモリに関する。
【背景技術】
【０００２】
文書処理ソフトウェアによれば、ユーザは、文書を都合よく閲覧し、編集し、処理し、記憶することができる。文書中のページは、それらが印刷物に現れるとおりに、スクリーン上に正確に表示され得る。しかしながら、文書を印刷する前に、文書中のページは、多くの場合、ページ記述言語（ＰＤＬ）で記述される。この文書において使用されるように、ＰＤＬには、ポストスクリプト（商標）、アドビ（商標）ＰＤＦ、ＨＰ（商標）ＰＣＬ、マイクロソフト（商標）ＸＰＳ（商標）、並びにこれらの変種、および文書中のページを記述するために使用される他の言語が含まれ得る。文書のＰＤＬ記述によれば、文書中のそれぞれのページのハイレベルな記述がもたらされる。このＰＤＬ記述は、文書が印刷されるときには、多くの場合、一連のよりローレベルなプリンタ特有コマンドへ変換される。文書のＰＤＬ記述から、印刷媒体にマークを付けるために使用することのできる、よりローレベルな記述への変換処理は、ラスタ化と称される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＰＤＬからよりローレベルなプリンタ特有コマンドへの変換処理は、複雑になりかねず、また、特定のプリンタによってもたらされる特性および機能に左右されることがある。文書のＰＤＬ記述をプリンタ特有コマンドへ変換するための、順応性がありかつ移植可能な（portable）多目的方式によれば、利用可能なメモリ、所望の印刷速度、他のコストおよび性能基準に基づいたプリンタ性能の最適化が可能になる。１つ以上の印刷処理機能を並行化することによって、最小限のコスト増で印刷システムから速度および性能の改善を引き出すことができる。ラスタ化は印刷処理に伴うタスクのかなりの部分を占めるため、ラスタ化処理の間に実行される１つ以上のステップの並行化は、全体的なプリンタの速度および性能を増大させるのに直接役立つ。したがって、先の性能の最適化に基づくディスプレイリストの並行ラスタ化のための方式が望まれている。
【課題を解決するための手段】
【０００４】
開示された実施形態に従うと、ディスプレイリストにラスタ化を実行するための方法、コンピュータ可読媒体及びコンピュータ可読メモリが開示されており、このディスプレイリストには、当該ディスプレイリストにおける仮想ページオブジェクトの第１クラスに属した仮想ページオブジェクトに関連するバンドが含まれることがある。いくつかの実施形態では、この方法は、少なくとも１つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析するステップと、前記少なくとも１つの幾何学的バンドをラスタ化するために、少なくとも１つの利用可能なラスタ化処理を識別するステップと、仮想ページオブジェクトの前記第１クラスから導かれる仮想ページオブジェクトの第２クラスに属するとともに、前記幾何学的バンドを含む第２仮想ページオブジェクトを作成するステップと、前記幾何学的バンドを含む前記第２仮想ページオブジェクトを、利用可能なラスタ化処理へ送信するステップと、前記利用可能なラスタ化処理であって、前記第２仮想ページオブジェクトにおける前記幾何学的バンドで動作するラスタ化処理を利用して、前記１つの幾何学的バンドをラスタ化するステップとを備える。
【０００５】
本発明の実施形態は、コンピュータ可読媒体あるいはコンピュータ可読メモリを使用する処理装置によって作成され、記憶され、アクセスされ、あるいは変更される方法にも関する。
【０００６】
これらの実施形態および他の実施形態は、以下の図面に関連して以下でさらに説明される。
【図面の簡単な説明】
【０００７】
【図１】いくつかの実施形態によって文書を印刷するためのシステムにおける構成要素を図示するブロック図である。
【図２】例示的なプリンタのハイレベルブロック図である。
【図３】いくつかの実施形態による順応性のあるディスプレイリストのためのシステムの例示的なハイレベルアーキテクチャを示す図である。
【図４】いくつかの実施形態による順応性のあるディスプレイリストのための例示的なデータ構造を示す図である。
【図５】例示的なＲＤＬクラス図である。
【図６】仮想ページをラスタ化するための例示的なアルゴリズムについてのフローチャートである。
【図７】多重処理を使用してＶページオブジェクトをラスタ化するためのアルゴリズムの例示的なフローチャート７００を示す図である。
【図８】幾何学的バンドについての例示的なラスタ化ルーチン６４０によって実行されるステップを示すフローチャートである。
【発明を実施するための形態】
【０００８】
本発明のさまざまな特徴を反映している実施形態によれば、第１の印刷可能データから生成される第２形態あるいは中間形態の印刷可能データを自動的に記憶、操作、および処理するためのシステムおよび方法が提示される。いくつかの実施形態では、第１の印刷可能データは文書のＰＤＬ記述の形態を採ることができ、中間の印刷可能データは、ＰＤＬ記述から生成されるオブジェクトのディスプレイリストの形態を採ることができる。
【０００９】
図１は、本発明のいくつかの実施形態によって文書を印刷するためのシステムにおける構成要素を示すブロック図である。図１に示すように、本発明と整合性を有するコンピュータソフトウェアアプリケーションはコンピュータのネットワークで展開することができ、このネットワークは、従来の通信プロトコルおよび／またはデータポートインターフェースを使って情報が交換されることを可能にする通信リンクを介して接続されている。
【００１０】
図１に示すように、例示的なシステム１００には、演算装置１１０とサーバ１３０とを含む複数のコンピュータが備えられる。さらに演算装置１１０とサーバ１３０とはコネクション１２０を通して交信し、コネクションはネットワーク１４０を通る。ネットワーク１４０は、一例ではインターネットとすることもできる。演算装置１１０はコンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、またはネットワーク環境で使用することのできる他の演算装置とすることができる。サーバ１３０は、演算装置１１０およびその他の装置（図示しない）へ接続することのできるプラットフォームとすることができる。演算装置１１０とサーバ１３０とは、プリンタ１７０を使った文書の印刷を可能にするソフトウェア（図示しない）を実行することができる。
【００１１】
例示的なプリンタ１７０は電子データから物理文書を生成する装置を含んでおり、この装置にはレーザープリンタ、インクジェットプリンタ、ＬＥＤプリンタ、プロッタ、ファクシミリ装置、およびディジタルコピー機が包含されるが、これらに限定されない。いくつかの実施形態では、プリンタ１７０は、演算装置１１０またはサーバ１３０からコネクション１２０を介して受信した文書を直接印刷することもできる。いくつかの実施形態においては、このような構成は、演算装置１１０またはサーバ１３０による追加の処理を伴って（またはこれを伴わずに）、文書の直接印刷を可能にする。いくつかの実施形態においては、文書はテキスト、図形、および画像のうちの１つ以上を含む。いくつかの実施形態においては、プリンタ１７０は印刷用の文書のＰＤＬ記述を受信することができる。また、文書印刷処理を分散させることもできることに留意されたい。よって、演算装置１１０、サーバ１３０、および／またはプリンタ１７０は、文書がプリンタ１７０によって物理的に印刷される前に、ハーフトーニング、カラーマッチング、および／またはその他の操作プロセスといった文書印刷処理の部分を実行し得る。
【００１２】
また演算装置１１０は着脱可能型メディアドライブ１５０も含む。着脱可能型メディアドライブ１５０には、例えば、３．５インチフロッピードライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＯＭドライブ、ＣＤ±ＲＷもしくはＤＶＤ±ＲＷドライブ、ＵＳＢフラッシュドライブ、および／または本発明の実施形態と整合性を有する他の着脱可能型メディアドライブなどが含まれ得る。いくつかの実施形態においては、ソフトウェア・アプリケーションの一部は、着脱可能型メディアに存在していてもよく、また、着脱可能型メディアドライブ１５０を使用して演算装置１１０によって読み取られ、実行される。
【００１３】
コネクション１２０は、演算装置１１０とサーバ１３０とプリンタ１７０とを接続するものであり、従来の通信プロトコルおよび／またはデータポートインターフェースを使った有線または無線の接続として実施され得る。一般にコネクション１２０は、装置間のデータの伝送を可能にする任意の通信路とすることができる。一実施形態では、例えば各装置は、パラレルポート、シリアルポート、イーサネット（商標）、ＵＳＢ、ＳＣＳＩ、ＦＩＲＥＷＩＲＥ（商標）、および／または適切な接続を介したデータ伝送用の同軸ケーブルポートといった、従来のデータポートを備える。いくつかの実施形態においては、コネクション１２０は、ディジタル加入者線（ＤＳＬ）、非対称ディジタル加入者線（ＡＤＳＬ）、またはケーブル接続とすることができる。通信リンクは無線リンクでも、有線リンクでも、様々な装置間の通信を可能とする本発明の各実施形態と整合性を有する任意の組み合わせとすることもできる。
【００１４】
ネットワーク１４０はローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、またはインターネットを含んでいてもよい。いくつかの実施形態においては、ネットワーク１４０を介して送られる情報は、送信されるデータのセキュリティを確保するために暗号化することができる。プリンタ１７０はコネクション１２０を介してネットワーク１４０へ接続することができる。いくつかの実施形態においては、プリンタ１７０は演算装置１１０および／またはサーバ１３０へ直接接続される。またシステム１００は、本発明のいくつかの実施形態によれば、他の周辺機器（図示しない）を含んでいてもよい。本発明と整合性を有するコンピュータソフトウェアアプリケーションは、図１に示すように、例示的コンピュータおよびプリンタのいずれに配備されていてもよい。例えば、演算装置１１０は、サーバ１３０から直接ダウンロードされるソフトウェアを実行することもできる。これらのアプリケーションの各部分は、本発明のいくつかの実施形態に従って、プリンタ１７０によって実行されても良い。
【００１５】
図２に例示的なプリンタ１７０のハイレベルなブロック図を示す。いくつかの実施形態においては、プリンタ１７０は、ＣＰＵ１７６、ファームウェア１７１、メモリ１７２、入出力ポート１７５、印刷エンジン１７７、および補助記憶装置１７３を接続するバス１７４を含む。またプリンタ１７０は、本発明のいくつかの実施形態によれば、ＰＰＭＬを処理するためのアプリケーションの一部分を実行することのできるその他の特定用途向け集積回路（ＡＳＩＣ）、および／またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）１７８を含んでいてもよい。いくつかの実施形態では、プリンタ１７０は、入出力ポート１７５およびコネクション１２０を使って２次記憶メモリまたは演算装置１１０内のその他のメモリにアクセスすることもできる。いくつかの実施形態では、プリンタ１７０は、プリンタオペレーティングシステムおよび他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することもできる。いくつかの実施形態においては、プリンタ１７０は、他のオプションのうち、用紙サイズ、排紙トレイ、色選択、および印刷解像度をユーザ設定可能なものにすることができる。
【００１６】
いくつかの実施形態では、ＣＰＵ１７６は、汎用プロセッサとすることも、専用プロセッサとすることも、組み込みプロセッサとすることもできる。ＣＰＵ１７６は、制御情報および命令を含むデータをメモリ１７２および／またはファームウェア１７１と交換することができる。メモリ１７２は、ＳＤＲＡＭやＲＤＲＡＭといった任意の種類のダイナミックランダムアクセスメモリ（ＤＲＡＭ）とすることができるが、これらには限定されない。ファームウェア１７１は、起動シーケンス、事前定義のルーチン、およびその他のコードを含む命令およびデータを保持するが、これらには限定されない。いくつかの実施形態では、ファームウェア１７１の中のコードおよびデータは、ＣＰＵ１７６によって処理される前にメモリ１７２へコピーされる。ファームウェア１７１に含まれるルーチンには、演算装置１１０から受け取られるページ記述をディスプレイリストおよび画像バンドへ変換するためのコードを含めることができる。いくつかの実施形態においては、ファームウェア１７１には、ディスプレイリストにおける表示コマンドを適切なラスタ化ビットマップへ変換するとともに当該ビットマップをメモリ１７２の中に記憶するためのラスタ化ルーチンが含まれても良い。また、ファームウェア１７１には、圧縮ルーチンおよびメモリマネージメントルーチンが含まれていてもよい。いくつかの実施形態においては、ファームウェア１７１内のデータおよび命令をアップグレード可能とすることもできる。
【００１７】
いくつかの実施形態においては、ＣＰＵ１７６が命令およびデータに従って動作し、ＡＳＩＣＳ／ＦＰＧＡＳ１７８および印刷エンジン１７７に制御およびデータを提供して印刷文書を生成する。いくつかの実施形態においては、ＡＳＩＣＳ／ＦＰＧＡＳ１７８が印刷エンジン１７７に制御およびデータを提供する。またＦＰＧＡＳ／ＡＳＩＣＳ１７８は、変換、圧縮、およびラスタ化のアルゴリズムのうちの１つ以上を実施してもよい。いくつかの実施形態においては、演算装置１１０が文書データを第１の印刷可能データに変換することができる。次いで第１の印刷可能データを、中間印刷可能データに変換するためにプリンタ１７０に送ることができる。プリンタ１７０は、中間印刷可能データを最終形態の印刷可能データに変換して、この最終形態に従って印刷を行う。いくつかの実施形態においては、第１の印刷可能データは、文書のＰＤＬ記述に該当する。いくつかの実施形態では、文書のＰＤＬ記述から、一連のよりローレベルなプリンタ特有コマンドを有する上記最終形態の印刷可能データへの変換処理には、オブジェクトのディスプレイリストを有する中間印刷可能データの生成が含まれている。
【００１８】
いくつかの実施形態では、ディスプレイリストには、テキスト、図形、および画像（images）のデータオブジェクトの１つ以上が保有されていてもよい。いくつかの実施形態では、ディスプレイリストの中のオブジェクトは、ユーザ文書の中の類似オブジェクトに対応していてもよい。いくつかの実施形態では、ディスプレイリストは、中間印刷可能データの生成を支援することができる。いくつかの実施形態では、ディスプレイリストは、メモリ１７２あるいは補助記憶装置１７３の中に記憶することができる。例示的な補助記憶装置１７３は、内部あるいは外部のハードディスク、メモリスティック、あるいはシステム２００に使用することのできる他の記憶装置であってよい。いくつかの実施形態では、上記ディスプレイリストは、プリンタ１７０、演算装置１１０、およびサーバ１３０の１つ以上に存在していてもよい。ディスプレイリストを記憶するためのメモリは、開示された実施形態によれば、専用メモリであってもよく、または、汎用メモリの一部を形成してもよく、または、専用メモリと汎用メモリのある種の組み合わせでもよい。いくつかの実施形態では、メモリは、複数のディスプレイリストを必要に応じて保有するために動的（dynamically）に割り当てることができるようになっている。いくつかの実施形態では、複数のディスプレイリストを記憶するために割り当てられたメモリは、処理の後に動的に解放（released）されるようになっている。
【００１９】
図３は、ＰＤＬから生成されるディスプレイリストを作成及び処理するためのシステムの例示的なハイレベルアーキテクチャを示している。図３に示されたように、言語サーバ３４０、エンジンサーバ３６０、およびラスタサーバ３２０は互いに交信することができる。加えて、言語サーバ３４０、エンジンサーバ３６０、およびラスタサーバ３２０は、ルーチンを呼び出すとともにＲＤＬライブラリ３３０と通信することができる。いくつかの実施形態では、ディスプレイリストには、印刷される文書における１つの文書あるいは１つのページの中のデータオブジェクトと、それらのコンテキストとを定義するコマンドが含まれている。これらの表示コマンドには、文字あるいはテキスト、ラインドローイングあるいはベクトル、および、画像あるいはラスタデータを有するデータが含まれていてもよい。
【００２０】
いくつかの実施形態では、ディスプレイリストは、動的に再構成することのできるものであり、また、再構成可能型ディスプレイリスト（ＲＤＬ）と呼ばれる。１つの実施形態では、或るディスプレイリストオブジェクトが動的に操作できる態様で記憶されるデータ構造を使用して、ＲＤＬを実施することができる。例えば、画像オブジェクトは、利用可能なメモリの量を増大させるために適切に圧縮されてもよく、また、参照されかつ／または使用されるときに復元されてもよい。いくつかの実施形態では、ＲＤＬはまた、ＲＤＬオブジェクトの実際の記憶場所へのポインタ、オフセット値（offsets）、あるいはアドレスを保持することでＲＤＬオブジェクトをメモリおよび／または補助記憶装置に記憶させることができ、その後、ＲＤＬオブジェクトが参照されかつ／または使用されるときにこの実際の記憶場所が検索される。一般に、ＲＤＬによれば、ディスプレイリストオブジェクトは、順応性を伴って記憶することができるとともに、システムの制約条件およびパラメータに基づいて操作することができる。
【００２１】
１つの実施形態では、文書のＰＤＬ記述をディスプレイリストおよび／またはＲＤＬ表示へ変換することは、ＲＤＬライブラリ３３０の中のルーチンを用いて言語サーバ３４０によって実行することができる。例えば、言語サーバ３４０は、ＰＤＬ言語基本要素を受け取り、かつ、これらのＰＤＬ言語基本要素をデータおよび図形オブジェクトに変換し、さらに、ＲＤＬライブラリ３３０の中の関数によってもたらされる機能を用いて、再構成可能なディスプレイリストへこれらデータおよび図形オブジェクトを追加することができる。ＲＤＬライブラリ３３０の中の関数およびルーチンへのアクセスは、アプリケーションプログラミング・インターフェース（ＡＰＩ）を通してもたらされる。いくつかの実施形態では、ディスプレイリストは、例示的なメモリプール３１０のような、動的に割り当てられたメモリプールの中において、記憶され、操作される。このメモリプールは、メモリ１７２の一部であってもよい。
【００２２】
いくつかの実施形態では、ＲＤＬを作成することは、実際の印刷に先立つデータの処理における中間ステップであってもよい。ＲＤＬは、変換される前に、その後の形態（a subsequent form）に構文解析される。いくつかの実施形態では、その後の形態は最終表示であってもよく、また、変換処理はデータのラスタ化と呼ばれることがある。いくつかの実施形態では、ラスタ化はラスタサーバ３２０によって実行されてもよい。ラスタ化の際に、ラスタ化されたデータはフレームバッファ３５０の中に記憶することができ、このフレームバッファ３５０はメモリ１７２の一部とすることができる。いくつかの実施形態では、ラスタ化されたデータは、印刷ページに付けられるマークを指定するビットマップの形態を採ることができる。
【００２３】
１つの実施形態では、ＲＤＬライブラリ３３０の中のルーチンは、メモリ１７２の中における利用可能なメモリのいくつかのサブセットをメモリプール３１０として管理するとともに、要求されている処理にメモリプール３１０中からメモリを割り当てる。要求されている処理によってメモリがもはや必要とされないときには、メモリは、割り当て解除されてメモリプール３１０へ戻り、他の処理に利用可能なものとなることができる。いくつかの実施形態では、ＲＤＬライブラリ３３０の中のルーチンには、メモリ解放へのルーチン（routines to free memory）、メモリ回復へのルーチン（routines to recover memory）、およびメモリを補助記憶装置１７３へスワップすることのできるスワッピングルーチンが包含される他のさまざまなメモリマネージメントルーチンもまた含まれている。いくつかの実施形態では、フレームバッファ３５０はまた、メモリプール３１０の一部であってもよい。１つの実施形態では、フレームバッファ３５０はメモリの一次連続ブロック（an initial contiguous block）へ割り当てられてもよく、また、その後のメモリブロックは、要求されたときにフレームバッファ３５０へ割り当てられてもよい。メモリブロックはまた、他の非フレームバッファ目的のためにメモリプール３１０から割り当てられてもよい。いくつかの実施形態では、上記フレームバッファあるいは他の処理へ割り当てられた異なるメモリブロックによって、メモリ１７２の中の非連続な記憶場所が占有される。
【００２４】
印刷エンジン１７７は、ラスタ化されたデータをフレームバッファ３５０の中で処理し、用紙のような印刷媒体の上にページの印刷可能画像を形成することができる。いくつかの実施形態では、ラスタサーバ３２０およびエンジンサーバ３６０はまた、これらの機能を実行するために、ＲＤＬライブラリ３３０の中のルーチンを使用することができる。いくつかの実施形態では、エンジンサーバ３６０は、印刷エンジン１７７へ制御情報、指示、およびデータを提供することができる。いくつかの実施形態では、エンジンサーバ３６０は、メモリプール３１０へ戻るための処理の後に、ディスプレイリストオブジェクトによって使用されたメモリを解放してもよい。いくつかの実施形態では、ＲＤＬメモリプールの一部および／またはフレームバッファ３５０は、メモリ１７２あるいは補助記憶装置１７３の中に存在していてもよい。いくつかの実施形態では、言語サーバ３４０、ラスタサーバ３２０、およびエンジンサーバ３６０のためのルーチンはファームウェア１７１の中に設けられてもよく、あるいは、ＡＳＩＣＳ／ＦＰＧＡＳ１７８を使用して実施されてもよい。
【００２５】
図４は、順応性のあるディスプレイリストのための例示的なデータ構造４００を示している。いくつかの実施形態では、順応性のあるディスプレイリストはＲＤＬの形態を採ることができる。いくつかの実施形態では、例示的なＲＤＬのような順応性のあるディスプレイリストは、データオブジェクトの動的な操作および処理を促進する例示的なデータ構造４００のような、データ構造の中に記憶することができる。例えば、ＲＤＬの中のオブジェクトには、当該ＲＤＬの中の他のオブジェクトへのポインタが含まれていてもよい。したがって、アプリケーションは、オブジェクトを識別し、更新し、操作し、処理するために、１つのオブジェクトから次のオブジェクトへディスプレイリストを横断（traverse）することができる。加えて、アプリケーションは、処理されたオブジェクトを追跡することができるとともに、処理されている「現在の」オブジェクトを識別することができる。いくつかの実施形態では、物理的なページには、１つ以上の仮想ページあるいは論理ページが備わっていてもよい。いくつかの実施形態では、仮想ページあるいは論理ページは、例示的なＶページデータ構造４１０によって表すことができる。インスタンス化されたＶページデータ構造４１０はＶページと呼ばれる。いくつかの実施形態では、例示的なＶページデータ構造４１０によって、仮想ページの論理モデルは、例示的なメモリ１７２のようなメモリの中において記憶および操作することができる。いくつかの実施形態では、Ｖページデータ構造４１０には、仮想ページあるいは論理ページに特有な情報が含まれていてもよく、このような情報には、幾何学的バンド、参照バンド、および圧縮バンドへのオフセット値が含まれる。
【００２６】
いくつかの実施形態では、仮想ページには、幾何学的バンドあるいは通常バンドとも呼ばれる１つ以上のバンドがさらに備わっている。いくつかの実施形態では、これらのバンドは、論理ページの当該バンド内に存在するオブジェクトをそれぞれ保有する、左右方向の（horizontal）バンドあるいはセクションである。したがって、Ｖページデータ構造４１０には、例示的な個々のバンドデータ構造（幾何学的バンドデータ構造とも呼ばれる）４２０のインスタンスが備わっているリンクリストへのオフセット値、あるいは当該リンクリストのリファレンスが含まれていてもよい。インスタンス化されたバンドデータ構造４２０はバンド（あるいは幾何学的バンド）と呼ばれる。いくつかの実施形態では、Ｖページデータ構造には、例示的な個々のバンドデータ構造４２０のインスタンスのリンクリストがさらに備わっている。いくつかの実施形態では、それぞれのＶページデータ構造４１０には、当該Ｖページデータ構造４１０が参照するあらゆるバンドについての情報が含まれていてもよい。バンドあるいは幾何学的バンドは、仮想ページの幾何学的境界の内部において幾何学的に画定される領域に関するものである。典型的には、この幾何学的領域は、事実上、長方形であり、また、Ｖページの境界あるいはＶページの副領域と同じぐらい大きくてもよい。いくつかの実施形態では、Ｖページの印刷可能領域には、当該Ｖページの内部に包含されるすべての幾何学的バンドが含まれる。
【００２７】
いくつかの実施形態では、言語サーバ３４０によって生成されたデータあるいは図形オブジェクトが幾何学的バンドの境界に及ぶと、それらのオブジェクトは、別個の参照バンドの中に記憶することができ、また、当該参照バンドの中におけるオブジェクトの記憶場所へのオフセット値が、その特定の幾何学的バンドの中の適切な記憶場所に記憶される。いくつかの実施形態では、仮想ページあるいは文書の中で繰り返し使用されるオブジェクトは、参照バンドの中に記憶することもできる。繰り返し使用されるオブジェクトを記憶するための参照バンドの使用によって、メモリ使用量が最適化されるとともに、繰り返し使用されるオブジェクトは参照バンドの中に一回置かれ、バンドにわたって多数回使用可能となる。これらの参照バンドには、幾何学的バンドによって参照されるオブジェクトが含まれていてもよい。したがって、例えば、一回参照されたバンドの中の単一オブジェクトは、多数の幾何学的バンドによって多数回、参照することができる。
【００２８】
バンドデータという用語は、ノードデータ構造４３０へ連結されたブロック４４０の内部におけるオブジェクトデータへの言及のために使用されており、ノードデータ構造４３０は、バンドデータ構造４２０へさらに連結されている。いくつかの実施形態では、個々のバンドデータ構造４２０には、そのバンド全体に属するデータオブジェクトが含まれている。いくつかの実施形態では、それぞれのバンドデータ構造には、個々のノードデータ構造４３０のインスタンスのリンクリストへのオフセット値、あるいは当該リンクリストのリファレンスが含まれていてもよい。インスタンス化されたノードデータ構造４３０はノードと呼ばれる。いくつかの実施形態では、それぞれのバンドデータ構造４２０には、参照するあらゆるノードについての情報が含まれていてもよい。
【００２９】
いくつかの実施形態では、個々のノードデータ構造４３０には、メモリ（ブロック）４４０の関連する（ゼロ以上の）あらゆるブロックへのオフセット値、あるいは当該ブロックのリファレンスが含まれていてもよい。いくつかの実施形態では、ブロック４４０は、中間図形オブジェクトと、ＰＤＬ記述から生成された他のデータとを記憶するために使用することができる。いくつかの実施形態では、言語サーバ３４０は、ラスタサーバ３２０によって使用するために、中間図形オブジェクトと、ＰＤＬ記述からの他のデータオブジェクトとを生成することができる。いくつかの実施形態では、それぞれのノードデータ構造には、参照するあらゆるブロックについての情報が含まれていてもよい。いくつかの実施形態では、ブロック４４０は均一で一定サイズのものである。本明細書において、Ｖページデータ構造４１０、バンドデータ構造４２０、およびノードデータ構造４３０は、制御データ構造とも呼ばれる。いくつかの実施形態では、データ構造４００の中に記憶されたデータは、アクセス及び編集することもできる。
【００３０】
いくつかの実施形態では、ジョブがプリンタ１７０によって受信されると、言語サーバ３４０は、Ｖページデータ構造４１０および適切な数のバンドデータ構造４２０のインスタンス化へ導くルーチンを、ＲＤＬライブラリ３３０から呼び出す。いくつかの実施形態では、このシステムは、Ｖページ制御データフィールド、バンド制御データフィールド、およびノード制御データフィールドのそれぞれの中に、自由なＶページ、バンド、およびノードのリストを保持している。さらに、このような制御オブジェクトのリンクリストは、１つ以上のルーチンＲＤＬライブラリ３３０によって作成し、保存し、かつ、更新することができ、また、これらのルーチンは、ＲＤＬの処理の間にさまざまな箇所で呼び出すことができる。いくつかの実施形態では、別のＶページデータ構造４１０のインスタンス化は新しい仮想ページについて起きることがある。いくつかの実施形態では、別のバンドデータ構造のインスタンス化は新しい仮想ページの中の新しいバンドについて起きることがある。
【００３１】
いくつかの実施形態では、言語サーバ３４０によって生成されるオブジェクトは、Ｖページを構築するために使用することができる。Ｖページはラスタサーバ３２０によってラスタ化することができる。いくつかの実施形態では、Ｖページは、すべてのバンドが処理されるまで、バンドごとにラスタ化することができる。いくつかの実施形態では、バンドは、すべてのオブジェクトが当該バンドのためのラスタライザへもたらされるまで、オブジェクトごとにラスタ化することができる。いくつかの実施形態では、ラスタ化処理は並行処理することができる。例えば、多数のバンドをラスタ化するために、多数の処理を並行して行うことができる。いくつかの実施形態では、ラスタ化を実行するための並行処理は、制御および同期の情報をもたらすことのできる少なくとも１つのマスター処理の制御の下で行われるスレーブ処理であってもよい。例えば、マスター処理は、順応性のある表示（display）の作成および削除を制御することができる。いくつかの実施形態では、バンドをラスタ化する順序は連続的なものでないかもしれない。さらに別の実施形態では、多数の完成Ｖページはこのシステムの中にその時々で存在している。これらの完成Ｖページには、ラスタ化処理が完了していないＶページが含まれていてもよい。いくつかの実施形態では、Ｖページはそれらの構成の順にラスタ化される必要はない。ラスタ化が完了した後に、エンジンサーバ３６０は、ＲＤＬライブラリ３３０の中でルーチンを呼び出し、そのＶページをメモリから削除するとともに、当該Ｖページによって使用されたメモリをメモリプール３１０へ解放することができる。
【００３２】
１つの実施形態では、多重ラスタ化処理によって、単一の仮想ページ（Ｖページ）についてのディスプレイリストの相異なる部分を同時にラスタ化することができる。例えば、マスター−スレーブ環境では、それぞれの並行スレーブ処理には、ラスタ化するための幾何学的バンドを割り当てることができる。いくつかの実施形態では、それぞれのスレーブ処理へ割り当てられる幾何学的バンドは異なるものである。いくつかの実施形態では、「ローカルスレーブ」と呼ばれるスレーブ処理は、マスターと同一の記憶領域、データ構造、およびデータへのアクセス権を有している。いくつかの実施形態では、「リモートスレーブ」と呼ばれるスレーブ処理は、それらの別個の記憶領域へのアクセス権を有している。例えば、「ローカル」スレーブは、メモリ１７２の中の「オリジナル」ＲＤＬへのアクセス権を有していることがある。したがって、ＲＤＬライブラリ３３０の中のルーチンは、ローカルスレーブ処理によるＲＤＬオブジェクトへの共用アクセスを同時に許可することができる。別の例として、リモートスレーブは、ラスタ化のためにＲＤＬの関連部分を、その割り当てられたメモリ位置へコピーするとともに、当該コピーの操作を実行することができる。リモートスレーブについては、ディスプレイリストのオブジェクトおよびデータのコピーはスレーブ処理へ送信される。いくつかの実施形態では、処理のためのリモートスレーブへのバンドの割り当ては、そのリモートスレーブへ送信されるデータおよびコードの量に一部基づいている。
【００３３】
図５は、並行ラスタ化をサポートするＲＤＬの実施に適応した例示的オブジェクトの中における例示的なクラス図５００の一部を示している。このクラス構造には永続的な（persistent）単体の主制御装置５１０が含まれており、この主制御装置５１０は所定の任意の処理に適したインデックスをノード５５０のブロック＿ｈ列（block_h array）の中へ与えるために使用することができ、これによって、その処理のアドレス空間に有効なブロックポインタ（block pointer）へ、当該処理がアクセスすることができる。主制御装置５１０を永続的な単体として言明することによって、その主制御装置の単一インスタンスがあるということと、その同一性がコード実行の間に変化しないということと、その主制御装置へのアクセスの大域的な箇所（a global point of access to Master Control）があるということが保証される。クラスおよび／またはサブクラス５２０〜５７０によって、ＲＤＬのような順応性のあるディスプレイリストについてのデータ構造４００の１つの実施が示されている。さまざまなクラスに属しているオブジェクトは、実行の間にインスタンス化することができる。
【００３４】
図５に示されたように、第１クラスには、Ｖページ５２０、ノード５５０、バンド５７０、および主制御装置５１０のクラスが含まれている。これらのクラスは「制御クラス」と呼ばれる。サブクラスのＶページＨＷ５３０およびＶページＬＷ５４０はＶページ５２０から導き出すことができる。同様に、バンドＨＷ５６０はバンド５７０から導き出すことができる。１つの実施形態では、クラス構造は図４に示された平行階層的データ構造４００であってもよい。例えば、バンドオブジェクト（バンドクラス５７０のインスタンスである）はノードオブジェクト（ノードクラス５５０のオブジェクトである）のリストに関連していてもよい。さらに、それぞれのノードオブジェクトはブロックを参照してもよい。
【００３５】
図５に示されたように、１つの実施形態では、ノードオブジェクトは、一連のノード：：ブロックハンドルオブジェクト（Node::BlockHandle objects）を使用するメモリの単一ブロックを参照することができる。いくつかの実施形態では、ノードによって参照されるブロックはディスプレイリストのためのデータを保有することができる。いくつかの実施形態では、一定サイズのブロックを使用することができる。図５に示された実施形態では、それぞれのブロックハンドルオブジェクトは、ブロックへのポインタと、このポインタのユーザの数を示すフィールドと、読み取られているブロックの内部における現在位置を指し示す読取位置インジケータとを含むデータを保有することができる。１つの実施形態では、１つのブロックハンドルオブジェクトは、スレーブ処理ごとにインスタンス化される。それゆえ、スレーブ処理は、それらの個々のブロックハンドルオブジェクトを使用してノードのブロックへ同時にアクセスすることができるようになっている。加えて、１つのブロックハンドルオブジェクトは、すべての非スレーブ処理によって、インスタンス化されるとともに共有される。主制御装置の中における「GetSmartIndex（）」メソッドが呼び出されると、「GetSmartIndex（）」メソッドは、非スレーブ処理に共有されたインデックス、あるいは各スレーブ処理に固有のインデックスを返送する。スレーブに固有の固有インデックスは、スレーブの個々のブロックハンドルオブジェクトを操作するために使用することができる。
【００３６】
いくつかの実施形態では、順応性のあるディスプレイリストは、リモートスレーブへ送信されるコードおよび／またはデータの量を最小限にするために構成することができる。１つの実施形態では、ディスプレイリストコードの一部を構成するクラス５２０〜５７０は、重量級変種（ＨＷ（heavy-weight variants））および軽量級変種（ＬＷ（light-weight variants））として示される２つの変種から構成することができる。これらの変種は例えば、重量級変種であるＶページＨＷ５３０、軽量級変種であるＶページＬＷ５４０、重量級変種であるバンドＨＷ５６０および軽量級変種であるバンド５７０を含むことができる。重量級変種および軽量級変種はまた、他のクラス（図示しない）に存在していてもよい。図示を簡略化するために２つの変種を示したが、一般的に、クラス変種あるいはサブクラス変種の数は変わることがあり、また、システム設計パラメータに左右されることがある。例えば、リモートスレーブは、ディスプレイリストコードのそれ自体のコピーを使用してディスプレイリストのオブジェクトおよびデータのコピーで動作することができるので、リモートスレーブによって利用されるコード、オブジェクト、およびデータのコピーのボリュームを減少させることは有益である。したがって、いくつかの実施形態では、スレーブがローカルスレーブであるか、またはリモートスレーブであるかによって、付加的なクラスを作成することができる。別の例として、ローカルスレーブには、共有されたディスプレイリストのオブジェクトおよびデータに多重スレーブ処理を同時にアクセス可能とする同期メソッド（synchronization methods）が含まれていてもよく、これに対し、それら自体のコピーで動作するリモートスレーブには、そのようなメソッドが備えられなくてもよい。
【００３７】
図５に示されたように、ＶページＨＷ５３０のクラスあるいはＶページＬＷ５４０のクラスのいずれかのオブジェクトには、「OpenForRead」メソッドおよび「CloseForRead」メソッドが含まれている。ＶページＨＷ５３０には、「OpenForWrite」、「AddObject」、「AddRefObject」、「Serialize」のようなメソッドもまた含まれているが、これらはクラスＶページＬＷ５４０のオブジェクトには存在していないか、あるいは利用することができない。いくつかの実施形態では、重量級クラス変種は非スレーブ処理のために使用することができ、軽量級変種（LW variants）はスレーブ処理のために使用することができる。いくつかの実施形態では、軽量級Ｖページには、あらゆる幾何学的バンドオブジェクトに加えて、参照バンドオブジェクトが含まれている。いくつかの実施形態では、ＨＷ変種は、対応するＬＷ変種よりも優れた機能性がもたらされるように設計することができる。したがって、ＬＷ変種は、より小さいものであり、また、ＨＷクラス変種では利用することのできるいくつかの付加的な機能性によることなくラスタ化を実行するために、スレーブ処理によって使用されるコードおよびデータを含んでいる。例えば、ＨＷ変種には、ディスプレイリストの作成および削除を可能にするメソッドが含まれていてもよい。いくつかの実施形態では、ディスプレイリストの作成および削除のためのメソッドは、スレーブ処理に利用することができるようには作られていない。
【００３８】
図６は、順応性のあるディスプレイリストを連続的にラスタ化するためのアルゴリズムについての例示的なフローチャート６００を示している。このアルゴリズムはステップ６１０において開始される。ステップ６２０では、ＶページＨＷ５３０が読み取りのために開放される。例えば、メモリの中に存在するＶページＨＷ５３０のオブジェクトについて、「VPageHW::OpenForRead（）」を呼び出すことができる。「VPageHW::OpenForRead（）」の機能によって、読み取りのために幾何学的バンドおよび参照バンドを開放することができる。１つの実施形態では、バンド４２０を開放することには、そのバンドの中のノード４３０を開放することと、そのバンドについての現在のノードイテレータ（node iterator）をそのノードリストの開始のためにセットすることとが含まれる。ノードを開放することには、ノード４３０についての現在位置読取インジケータに、そのノードのデータブロックの冒頭をセットすることが含まれる。次いで、ステップ６３０において、アルゴリズムはオブジェクトＶページＨＷ５３０の中の第１の幾何学的バンドを識別する。このバンドはその後、幾何学的バンドについてのラスタ化ルーチン６４０によってラスタ化することができる。ステップ６５０では、アルゴリズムは、オブジェクトＶページＨＷ５３０の中のすべての幾何学的バンドがラスタ化されたかどうかを点検する。もし、ラスタ化されなかった幾何学的バンドがあれば、その後、このアルゴリズムは、ステップ６７０において、オブジェクトＶページＨＷ５２０の中の次の幾何学的バンドへ進むことができる。このアルゴリズムは、すべての幾何学的バンドがステップ６６０における処理の終了の前にラスタ化されるまで、ステップ６４０、６５０および６７０を繰り返す。
【００３９】
図７は、多重処理を使用してＶページオブジェクトをラスタ化するためのアルゴリズムの例示的なフローチャート７００を示している。このアルゴリズムはステップ７１０において開始される。ステップ７１５では、オブジェクトＶページＨＷ５３０が読み取りのために開放される。例えば、ＶページＨＷ５３０の中における「OpenForRead」メソッドを呼び出すことができる。いくつかの実施形態では、「VPageHW::OpenForRead（）」は、読み取りのための幾何学的バンドおよび参照バンドを開放するために、マスター処理によって呼び出すことができる。ステップ７３０では、アルゴリズムは、オブジェクトＶページＨＷ５３０の中のすべての幾何学的バンドがラスタ化されたかどうかを点検する。もし、ラスタ化されなかった幾何学的バンドがあれば、その後、このアルゴリズムは、ステップ７４０において、オブジェクトＶページＨＷ５３０の中において現在の幾何学的バンドに対応するＶページＬＷ５４０オブジェクトをインスタンス化する。いくつかの実施形態では、ＶページＬＷオブジェクト５４０には、ＶページＨＷ５３０において特定の標準的バンドＨＷオブジェクトに対応する単一の幾何学的バンドオブジェクトが包含されていてもよく、また、ＶページＨＷ５３０において参照バンドに対応するオブジェクトも包含されていてもよい。
【００４０】
ステップ７５０において、オブジェクトＶページＬＷ５４０をスレーブ処理へ送信することができる。いくつかの実施形態では、オブジェクトＶページＬＷ５４０へのリファレンスあるいはポインタをスレーブ処理へ送信することができる。例えば、ラスタ化マスター処理は、ＶページＬＷオブジェクト５４０をスレーブ処理へ送信することができる。ステップ７６０では、オブジェクトＶページＬＷ５４０が読み取りのために開放され、続いてラスタ化ルーチン６４０が呼び出される。ステップ７７０では、アルゴリズムは、オブジェクトＶページＨＷ５２０の中における次の幾何学的バンドへ進み、また、ラスタ化されなかったバンドがあれば、ステップ７３０〜７５０を繰り返す。いくつかの実施形態では、ラスタ化マスター処理はステップ７３０〜７６０を繰り返してもよいが、ステップ７６０と、ＶページＬＷ５４０の中のバンドにおけるラスタ化ルーチン６４０の呼び出しとはスレーブ処理によって実行することができる。すべてのバンドがラスタ化されると、アルゴリズムはステップ７８０で処理を終了することができる。
【００４１】
図８は、幾何学的バンドについての例示的なラスタ化ルーチン６４０によって実行されるステップを示すフローチャートである。ラスタ化ルーチン６４０が呼び出されると、ステップ８１０において、現在のノードが点検されて、そのノードにラスタ化されていないオブジェクトが包含されているかどうかが決定される。ラスタ化されていないオブジェクトがあれば、ステップ８２０において、例示的なラスタ化ルーチン６４０が、現在のノードのブロックにおける次のオブジェクトへのポインタを取得する。ステップ８３０において、そのオブジェクトが参照バンドにおけるものであると決定されると、その後、当該参照バンドにおける当該オブジェクトへのポインタがステップ８４０において取得される。そのオブジェクトがレファレンスでないときには、その後、そのオブジェクトはステップ８５０においてラスタ化される。
【００４２】
現在のノードの点検によって、そのノードの中におけるすべてのオブジェクトがラスタ化されていると決定されると、その後、ステップ８６０において、現在のノードのブロックポインタが解放される。このバンドはその後、ステップ８７０で、例示的なラスタ化ルーチン６４０によって検査することができ、付加的なノードが包含されているかどうかが決定される。もし、付加的なノードが存在すれば、このルーチンは、ステップ８８０において次のノードへ進む。アルゴリズムは、ラスタ化されるバンドのすべてのノードにおけるオブジェクトが処理されるまで、それぞれのノードについてステップ８１０〜８５０を繰り返す。すべてのノードが処理されると、その後、ラスタ化が完了して、このアルゴリズムは、ステップ８９０において処理を終了することができる。
【００４３】
本発明の他の実施形態は、本明細書の考察、及び、本明細書中に開示された本発明の１つ以上の実施形態の実施により、当業者にとって明らかになるであろう。明細書及び例は例示的なものに過ぎないことを意図しており、本発明の本来の範囲及び要旨は、以下の特許請求の範囲に示されるものである。
【符号の説明】
【００４４】
１７１  ファームウェア
１７２  メモリ（ＲＡＭ）
１７３  補助記憶装置
１７７  印刷エンジン
３１０  メモリプール
３２０  ラスタサーバ
３３０  ＲＤＬライブラリ
３４０  言語サーバ
３５０  フレームバッファ
３６０  エンジンサーバ
４１０  Ｖページデータ構造
４２０  バンドデータ構造
４３０  ノードデータ構造
４４０  ブロック
５１０  永続的な単体
５２０  Ｖページ
５３０  ＶページＨＷ
５４０  ＶページＬＷ
５５０  ノード
５６０  バンドＨＷ
５７０  バンド
【図１】
0005226581.tif 000002
【図２】
0005226581.tif 000003
【図３】
0005226581.tif 000004
【図４】
0005226581.tif 000005
【図５】
0005226581.tif 000006
【図６】
0005226581.tif 000007
【図７】
0005226581.tif 000008
【図８】
0005226581.tif 000009