JP2009245436A - ディスプレイリストの並行ラスタ化のための方法、コンピュータ可読媒体及びコンピュータ可読メモリ - Google Patents

ディスプレイリストの並行ラスタ化のための方法、コンピュータ可読媒体及びコンピュータ可読メモリ Download PDF

Info

Publication number
JP2009245436A
JP2009245436A JP2009081428A JP2009081428A JP2009245436A JP 2009245436 A JP2009245436 A JP 2009245436A JP 2009081428 A JP2009081428 A JP 2009081428A JP 2009081428 A JP2009081428 A JP 2009081428A JP 2009245436 A JP2009245436 A JP 2009245436A
Authority
JP
Japan
Prior art keywords
virtual page
rasterization
rasterization process
band
page object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009081428A
Other languages
English (en)
Other versions
JP5226581B2 (ja
Inventor
Tim Prebble
プレブル ティム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konica Minolta Laboratory USA Inc
Original Assignee
Konica Minolta Laboratory USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konica Minolta Laboratory USA Inc filed Critical Konica Minolta Laboratory USA Inc
Publication of JP2009245436A publication Critical patent/JP2009245436A/ja
Application granted granted Critical
Publication of JP5226581B2 publication Critical patent/JP5226581B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1215Improving printing performance achieving increased printing speed, i.e. reducing the time between printing start and printing end
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)
  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)

Abstract

【課題】ディスプレイリストのラスタ化を並行処理するための方法を提供する。
【解決手段】少なくとも1つの幾何学的バンドを識別するために、仮想ページオブジェクトを構文解析するステップと、少なくとも1つの幾何学的バンドをラスタ化するために、少なくとも1つの利用可能なラスタ化処理を識別するステップと、前記幾何学的バンドを含む第2仮想ページオブジェクトを作成するステップであって、前記第2仮想ページオブジェクトは、仮想ページオブジェクトの第1クラスから導かれる仮想ページオブジェクトの第2クラスに属しているステップと、前記幾何学的バンドを含む前記第2仮想ページオブジェクトを利用可能なラスタ化処理へ送信するステップと、前記利用可能なラスタ化処理を利用して前記1つの幾何学的バンドをラスタ化するステップと、前記第2仮想ページオブジェクトにおける前記幾何学的バンドで動作するステップとを備える。
【選択図】図2

Description

本発明は、印刷の分野に関し、詳しくは、ディスプレイリストのラスタ化を並行処理するための方法、コンピュータ可読媒体及びコンピュータ可読メモリに関する。
文書処理ソフトウェアによれば、ユーザは、文書を都合よく閲覧し、編集し、処理し、記憶することができる。文書中のページは、それらが印刷物に現れるとおりに、スクリーン上に正確に表示され得る。しかしながら、文書を印刷する前に、文書中のページは、多くの場合、ページ記述言語(PDL)で記述される。この文書において使用されるように、PDLには、ポストスクリプト(商標)、アドビ(商標)PDF、HP(商標)PCL、マイクロソフト(商標)XPS(商標)、並びにこれらの変種、および文書中のページを記述するために使用される他の言語が含まれ得る。文書のPDL記述によれば、文書中のそれぞれのページのハイレベルな記述がもたらされる。このPDL記述は、文書が印刷されるときには、多くの場合、一連のよりローレベルなプリンタ特有コマンドへ変換される。文書のPDL記述から、印刷媒体にマークを付けるために使用することのできる、よりローレベルな記述への変換処理は、ラスタ化と称される。
PDLからよりローレベルなプリンタ特有コマンドへの変換処理は、複雑になりかねず、また、特定のプリンタによってもたらされる特性および機能に左右されることがある。文書のPDL記述をプリンタ特有コマンドへ変換するための、順応性がありかつ移植可能な(portable)多目的方式によれば、利用可能なメモリ、所望の印刷速度、他のコストおよび性能基準に基づいたプリンタ性能の最適化が可能になる。1つ以上の印刷処理機能を並行化することによって、最小限のコスト増で印刷システムから速度および性能の改善を引き出すことができる。ラスタ化は印刷処理に伴うタスクのかなりの部分を占めるため、ラスタ化処理の間に実行される1つ以上のステップの並行化は、全体的なプリンタの速度および性能を増大させるのに直接役立つ。したがって、先の性能の最適化に基づくディスプレイリストの並行ラスタ化のための方式が望まれている。
開示された実施形態に従うと、ディスプレイリストにラスタ化を実行するための方法、コンピュータ可読媒体及びコンピュータ可読メモリが開示されており、このディスプレイリストには、当該ディスプレイリストにおける仮想ページオブジェクトの第1クラスに属した仮想ページオブジェクトに関連するバンドが含まれることがある。いくつかの実施形態では、この方法は、少なくとも1つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析するステップと、前記少なくとも1つの幾何学的バンドをラスタ化するために、少なくとも1つの利用可能なラスタ化処理を識別するステップと、仮想ページオブジェクトの前記第1クラスから導かれる仮想ページオブジェクトの第2クラスに属するとともに、前記幾何学的バンドを含む第2仮想ページオブジェクトを作成するステップと、前記幾何学的バンドを含む前記第2仮想ページオブジェクトを、利用可能なラスタ化処理へ送信するステップと、前記利用可能なラスタ化処理であって、前記第2仮想ページオブジェクトにおける前記幾何学的バンドで動作するラスタ化処理を利用して、前記1つの幾何学的バンドをラスタ化するステップとを備える。
本発明の実施形態は、コンピュータ可読媒体あるいはコンピュータ可読メモリを使用する処理装置によって作成され、記憶され、アクセスされ、あるいは変更される方法にも関する。
これらの実施形態および他の実施形態は、以下の図面に関連して以下でさらに説明される。
いくつかの実施形態によって文書を印刷するためのシステムにおける構成要素を図示するブロック図である。 例示的なプリンタのハイレベルブロック図である。 いくつかの実施形態による順応性のあるディスプレイリストのためのシステムの例示的なハイレベルアーキテクチャを示す図である。 いくつかの実施形態による順応性のあるディスプレイリストのための例示的なデータ構造を示す図である。 例示的なRDLクラス図である。 仮想ページをラスタ化するための例示的なアルゴリズムについてのフローチャートである。 多重処理を使用してVページオブジェクトをラスタ化するためのアルゴリズムの例示的なフローチャート700を示す図である。 幾何学的バンドについての例示的なラスタ化ルーチン640によって実行されるステップを示すフローチャートである。
本発明のさまざまな特徴を反映している実施形態によれば、第1の印刷可能データから生成される第2形態あるいは中間形態の印刷可能データを自動的に記憶、操作、および処理するためのシステムおよび方法が提示される。いくつかの実施形態では、第1の印刷可能データは文書のPDL記述の形態を採ることができ、中間の印刷可能データは、PDL記述から生成されるオブジェクトのディスプレイリストの形態を採ることができる。
図1は、本発明のいくつかの実施形態によって文書を印刷するためのシステムにおける構成要素を示すブロック図である。図1に示すように、本発明と整合性を有するコンピュータソフトウェアアプリケーションはコンピュータのネットワークで展開することができ、このネットワークは、従来の通信プロトコルおよび/またはデータポートインターフェースを使って情報が交換されることを可能にする通信リンクを介して接続されている。
図1に示すように、例示的なシステム100には、演算装置110とサーバ130とを含む複数のコンピュータが備えられる。さらに演算装置110とサーバ130とはコネクション120を通して交信し、コネクションはネットワーク140を通る。ネットワーク140は、一例ではインターネットとすることもできる。演算装置110はコンピュータワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、またはネットワーク環境で使用することのできる他の演算装置とすることができる。サーバ130は、演算装置110およびその他の装置(図示しない)へ接続することのできるプラットフォームとすることができる。演算装置110とサーバ130とは、プリンタ170を使った文書の印刷を可能にするソフトウェア(図示しない)を実行することができる。
例示的なプリンタ170は電子データから物理文書を生成する装置を含んでおり、この装置にはレーザープリンタ、インクジェットプリンタ、LEDプリンタ、プロッタ、ファクシミリ装置、およびディジタルコピー機が包含されるが、これらに限定されない。いくつかの実施形態では、プリンタ170は、演算装置110またはサーバ130からコネクション120を介して受信した文書を直接印刷することもできる。いくつかの実施形態においては、このような構成は、演算装置110またはサーバ130による追加の処理を伴って(またはこれを伴わずに)、文書の直接印刷を可能にする。いくつかの実施形態においては、文書はテキスト、図形、および画像のうちの1つ以上を含む。いくつかの実施形態においては、プリンタ170は印刷用の文書のPDL記述を受信することができる。また、文書印刷処理を分散させることもできることに留意されたい。よって、演算装置110、サーバ130、および/またはプリンタ170は、文書がプリンタ170によって物理的に印刷される前に、ハーフトーニング、カラーマッチング、および/またはその他の操作プロセスといった文書印刷処理の部分を実行し得る。
また演算装置110は着脱可能型メディアドライブ150も含む。着脱可能型メディアドライブ150には、例えば、3.5インチフロッピードライブ、CD−ROMドライブ、DVD−ROMドライブ、CD±RWもしくはDVD±RWドライブ、USBフラッシュドライブ、および/または本発明の実施形態と整合性を有する他の着脱可能型メディアドライブなどが含まれ得る。いくつかの実施形態においては、ソフトウェア・アプリケーションの一部は、着脱可能型メディアに存在していてもよく、また、着脱可能型メディアドライブ150を使用して演算装置110によって読み取られ、実行される。
コネクション120は、演算装置110とサーバ130とプリンタ170とを接続するものであり、従来の通信プロトコルおよび/またはデータポートインターフェースを使った有線または無線の接続として実施され得る。一般にコネクション120は、装置間のデータの伝送を可能にする任意の通信路とすることができる。一実施形態では、例えば各装置は、パラレルポート、シリアルポート、イーサネット(商標)、USB、SCSI、FIREWIRE(商標)、および/または適切な接続を介したデータ伝送用の同軸ケーブルポートといった、従来のデータポートを備える。いくつかの実施形態においては、コネクション120は、ディジタル加入者線(DSL)、非対称ディジタル加入者線(ADSL)、またはケーブル接続とすることができる。通信リンクは無線リンクでも、有線リンクでも、様々な装置間の通信を可能とする本発明の各実施形態と整合性を有する任意の組み合わせとすることもできる。
ネットワーク140はローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはインターネットを含んでいてもよい。いくつかの実施形態においては、ネットワーク140を介して送られる情報は、送信されるデータのセキュリティを確保するために暗号化することができる。プリンタ170はコネクション120を介してネットワーク140へ接続することができる。いくつかの実施形態においては、プリンタ170は演算装置110および/またはサーバ130へ直接接続される。またシステム100は、本発明のいくつかの実施形態によれば、他の周辺機器(図示しない)を含んでいてもよい。本発明と整合性を有するコンピュータソフトウェアアプリケーションは、図1に示すように、例示的コンピュータおよびプリンタのいずれに配備されていてもよい。例えば、演算装置110は、サーバ130から直接ダウンロードされるソフトウェアを実行することもできる。これらのアプリケーションの各部分は、本発明のいくつかの実施形態に従って、プリンタ170によって実行されても良い。
図2に例示的なプリンタ170のハイレベルなブロック図を示す。いくつかの実施形態においては、プリンタ170は、CPU176、ファームウェア171、メモリ172、入出力ポート175、印刷エンジン177、および補助記憶装置173を接続するバス174を含む。またプリンタ170は、本発明のいくつかの実施形態によれば、PPMLを処理するためのアプリケーションの一部分を実行することのできるその他の特定用途向け集積回路(ASIC)、および/またはフィールドプログラマブルゲートアレイ(FPGA)178を含んでいてもよい。いくつかの実施形態では、プリンタ170は、入出力ポート175およびコネクション120を使って2次記憶メモリまたは演算装置110内のその他のメモリにアクセスすることもできる。いくつかの実施形態では、プリンタ170は、プリンタオペレーティングシステムおよび他の適切なアプリケーションソフトウェアを含むソフトウェアを実行することもできる。いくつかの実施形態においては、プリンタ170は、他のオプションのうち、用紙サイズ、排紙トレイ、色選択、および印刷解像度をユーザ設定可能なものにすることができる。
いくつかの実施形態では、CPU176は、汎用プロセッサとすることも、専用プロセッサとすることも、組み込みプロセッサとすることもできる。CPU176は、制御情報および命令を含むデータをメモリ172および/またはファームウェア171と交換することができる。メモリ172は、SDRAMやRDRAMといった任意の種類のダイナミックランダムアクセスメモリ(DRAM)とすることができるが、これらには限定されない。ファームウェア171は、起動シーケンス、事前定義のルーチン、およびその他のコードを含む命令およびデータを保持するが、これらには限定されない。いくつかの実施形態では、ファームウェア171の中のコードおよびデータは、CPU176によって処理される前にメモリ172へコピーされる。ファームウェア171に含まれるルーチンには、演算装置110から受け取られるページ記述をディスプレイリストおよび画像バンドへ変換するためのコードを含めることができる。いくつかの実施形態においては、ファームウェア171には、ディスプレイリストにおける表示コマンドを適切なラスタ化ビットマップへ変換するとともに当該ビットマップをメモリ172の中に記憶するためのラスタ化ルーチンが含まれても良い。また、ファームウェア171には、圧縮ルーチンおよびメモリマネージメントルーチンが含まれていてもよい。いくつかの実施形態においては、ファームウェア171内のデータおよび命令をアップグレード可能とすることもできる。
いくつかの実施形態においては、CPU176が命令およびデータに従って動作し、ASICS/FPGAS178および印刷エンジン177に制御およびデータを提供して印刷文書を生成する。いくつかの実施形態においては、ASICS/FPGAS178が印刷エンジン177に制御およびデータを提供する。またFPGAS/ASICS178は、変換、圧縮、およびラスタ化のアルゴリズムのうちの1つ以上を実施してもよい。いくつかの実施形態においては、演算装置110が文書データを第1の印刷可能データに変換することができる。次いで第1の印刷可能データを、中間印刷可能データに変換するためにプリンタ170に送ることができる。プリンタ170は、中間印刷可能データを最終形態の印刷可能データに変換して、この最終形態に従って印刷を行う。いくつかの実施形態においては、第1の印刷可能データは、文書のPDL記述に該当する。いくつかの実施形態では、文書のPDL記述から、一連のよりローレベルなプリンタ特有コマンドを有する上記最終形態の印刷可能データへの変換処理には、オブジェクトのディスプレイリストを有する中間印刷可能データの生成が含まれている。
いくつかの実施形態では、ディスプレイリストには、テキスト、図形、および画像(images)のデータオブジェクトの1つ以上が保有されていてもよい。いくつかの実施形態では、ディスプレイリストの中のオブジェクトは、ユーザ文書の中の類似オブジェクトに対応していてもよい。いくつかの実施形態では、ディスプレイリストは、中間印刷可能データの生成を支援することができる。いくつかの実施形態では、ディスプレイリストは、メモリ172あるいは補助記憶装置173の中に記憶することができる。例示的な補助記憶装置173は、内部あるいは外部のハードディスク、メモリスティック、あるいはシステム200に使用することのできる他の記憶装置であってよい。いくつかの実施形態では、上記ディスプレイリストは、プリンタ170、演算装置110、およびサーバ130の1つ以上に存在していてもよい。ディスプレイリストを記憶するためのメモリは、開示された実施形態によれば、専用メモリであってもよく、または、汎用メモリの一部を形成してもよく、または、専用メモリと汎用メモリのある種の組み合わせでもよい。いくつかの実施形態では、メモリは、複数のディスプレイリストを必要に応じて保有するために動的(dynamically)に割り当てることができるようになっている。いくつかの実施形態では、複数のディスプレイリストを記憶するために割り当てられたメモリは、処理の後に動的に解放(released)されるようになっている。
図3は、PDLから生成されるディスプレイリストを作成及び処理するためのシステムの例示的なハイレベルアーキテクチャを示している。図3に示されたように、言語サーバ340、エンジンサーバ360、およびラスタサーバ320は互いに交信することができる。加えて、言語サーバ340、エンジンサーバ360、およびラスタサーバ320は、ルーチンを呼び出すとともにRDLライブラリ330と通信することができる。いくつかの実施形態では、ディスプレイリストには、印刷される文書における1つの文書あるいは1つのページの中のデータオブジェクトと、それらのコンテキストとを定義するコマンドが含まれている。これらの表示コマンドには、文字あるいはテキスト、ラインドローイングあるいはベクトル、および、画像あるいはラスタデータを有するデータが含まれていてもよい。
いくつかの実施形態では、ディスプレイリストは、動的に再構成することのできるものであり、また、再構成可能型ディスプレイリスト(RDL)と呼ばれる。1つの実施形態では、或るディスプレイリストオブジェクトが動的に操作できる態様で記憶されるデータ構造を使用して、RDLを実施することができる。例えば、画像オブジェクトは、利用可能なメモリの量を増大させるために適切に圧縮されてもよく、また、参照されかつ/または使用されるときに復元されてもよい。いくつかの実施形態では、RDLはまた、RDLオブジェクトの実際の記憶場所へのポインタ、オフセット値(offsets)、あるいはアドレスを保持することでRDLオブジェクトをメモリおよび/または補助記憶装置に記憶させることができ、その後、RDLオブジェクトが参照されかつ/または使用されるときにこの実際の記憶場所が検索される。一般に、RDLによれば、ディスプレイリストオブジェクトは、順応性を伴って記憶することができるとともに、システムの制約条件およびパラメータに基づいて操作することができる。
1つの実施形態では、文書のPDL記述をディスプレイリストおよび/またはRDL表示へ変換することは、RDLライブラリ330の中のルーチンを用いて言語サーバ340によって実行することができる。例えば、言語サーバ340は、PDL言語基本要素を受け取り、かつ、これらのPDL言語基本要素をデータおよび図形オブジェクトに変換し、さらに、RDLライブラリ330の中の関数によってもたらされる機能を用いて、再構成可能なディスプレイリストへこれらデータおよび図形オブジェクトを追加することができる。RDLライブラリ330の中の関数およびルーチンへのアクセスは、アプリケーションプログラミング・インターフェース(API)を通してもたらされる。いくつかの実施形態では、ディスプレイリストは、例示的なメモリプール320のような、動的に割り当てられたメモリプールの中において、記憶され、操作される。このメモリプールは、メモリ172の一部であってもよい。
いくつかの実施形態では、RDLを作成することは、実際の印刷に先立つデータの処理における中間ステップであってもよい。RDLは、変換される前に、その後の形態(a subsequent form)に構文解析される。いくつかの実施形態では、その後の形態は最終表示であってもよく、また、変換処理はデータのラスタ化と呼ばれることがある。いくつかの実施形態では、ラスタ化はラスタサーバ320によって実行されてもよい。ラスタ化の際に、ラスタ化されたデータはフレームバッファ350の中に記憶することができ、このフレームバッファ350はメモリ172の一部とすることができる。いくつかの実施形態では、ラスタ化されたデータは、印刷ページに付けられるマークを指定するビットマップの形態を採ることができる。
1つの実施形態では、RDLライブラリ330の中のルーチンは、メモリ172の中における利用可能なメモリのいくつかのサブセットをメモリプール310として管理するとともに、要求されている処理にメモリプール310中からメモリを割り当てる。要求されている処理によってメモリがもはや必要とされないときには、メモリは、割り当て解除されてメモリプール310へ戻り、他の処理に利用可能なものとなることができる。いくつかの実施形態では、RDLライブラリ330の中のルーチンには、メモリ解放へのルーチン(routines to free memory)、メモリ回復へのルーチン(routines to recover memory)、およびメモリを補助記憶装置173へスワップすることのできるスワッピングルーチンが包含される他のさまざまなメモリマネージメントルーチンもまた含まれている。いくつかの実施形態では、フレームバッファ350はまた、メモリプール310の一部であってもよい。1つの実施形態では、フレームバッファ350はメモリの一次連続ブロック(an initial contiguous block)へ割り当てられてもよく、また、その後のメモリブロックは、要求されたときにフレームバッファ350へ割り当てられてもよい。メモリブロックはまた、他の非フレームバッファ目的のためにメモリプール310から割り当てられてもよい。いくつかの実施形態では、上記フレームバッファあるいは他の処理へ割り当てられた異なるメモリブロックによって、メモリ172の中の非連続な記憶場所が占有される。
印刷エンジン177は、ラスタ化されたデータをフレームバッファ350の中で処理し、用紙のような印刷媒体の上にページの印刷可能画像を形成することができる。いくつかの実施形態では、ラスタサーバ320およびエンジンサーバ360はまた、これらの機能を実行するために、RDLライブラリ330の中のルーチンを使用することができる。いくつかの実施形態では、エンジンサーバ360は、印刷エンジン177へ制御情報、指示、およびデータを提供することができる。いくつかの実施形態では、エンジンサーバ360は、メモリプール320へ戻るための処理の後に、ディスプレイリストオブジェクトによって使用されたメモリを解放してもよい。いくつかの実施形態では、RDLメモリプールの一部および/またはフレームバッファ350は、メモリ172あるいは補助記憶装置173の中に存在していてもよい。いくつかの実施形態では、言語サーバ340、ラスタサーバ320、およびエンジンサーバ360のためのルーチンはファームウェア171の中に設けられてもよく、あるいは、ASICS/FPGAS178を使用して実施されてもよい。
図4は、順応性のあるディスプレイリストのための例示的なデータ構造400を示している。いくつかの実施形態では、順応性のあるディスプレイリストはRDLの形態を採ることができる。いくつかの実施形態では、例示的なRDLのような順応性のあるディスプレイリストは、データオブジェクトの動的な操作および処理を促進する例示的なデータ構造400のような、データ構造の中に記憶することができる。例えば、RDLの中のオブジェクトには、当該RDLの中の他のオブジェクトへのポインタが含まれていてもよい。したがって、アプリケーションは、オブジェクトを識別し、更新し、操作し、処理するために、1つのオブジェクトから次のオブジェクトへディスプレイリストを横断(traverse)することができる。加えて、アプリケーションは、処理されたオブジェクトを追跡することができるとともに、処理されている「現在の」オブジェクトを識別することができる。いくつかの実施形態では、物理的なページには、1つ以上の仮想ページあるいは論理ページが備わっていてもよい。いくつかの実施形態では、仮想ページあるいは論理ページは、例示的なVページデータ構造410によって表すことができる。インスタンス化されたVページデータ構造410はVページと呼ばれる。いくつかの実施形態では、例示的なVページデータ構造410によって、仮想ページの論理モデルは、例示的なメモリ172のようなメモリの中において記憶および操作することができる。いくつかの実施形態では、Vページデータ構造410には、仮想ページあるいは論理ページに特有な情報が含まれていてもよく、このような情報には、幾何学的バンド、参照バンド、および圧縮バンドへのオフセット値が含まれる。
いくつかの実施形態では、仮想ページには、幾何学的バンドあるいは通常バンドとも呼ばれる1つ以上のバンドがさらに備わっている。いくつかの実施形態では、これらのバンドは、論理ページの当該バンド内に存在するオブジェクトをそれぞれ保有する、左右方向の(horizontal)バンドあるいはセクションである。したがって、Vページデータ構造410には、例示的な個々のバンドデータ構造(幾何学的バンドデータ構造とも呼ばれる)420のインスタンスが備わっているリンクリストへのオフセット値、あるいは当該リンクリストのリファレンスが含まれていてもよい。インスタンス化されたバンドデータ構造420はバンド(あるいは幾何学的バンド)と呼ばれる。いくつかの実施形態では、Vページデータ構造には、例示的な個々のバンドデータ構造420のインスタンスのリンクリストがさらに備わっている。いくつかの実施形態では、それぞれのVページデータ構造410には、当該Vページデータ構造410が参照するあらゆるバンドについての情報が含まれていてもよい。バンドあるいは幾何学的バンドは、仮想ページの幾何学的境界の内部において幾何学的に画定される領域に関するものである。典型的には、この幾何学的領域は、事実上、長方形であり、また、Vページの境界あるいはVページの副領域と同じぐらい大きくてもよい。いくつかの実施形態では、Vページの印刷可能領域には、当該Vページの内部に包含されるすべての幾何学的バンドが含まれる。
いくつかの実施形態では、言語サーバ340によって生成されたデータあるいは図形オブジェクトが幾何学的バンドの境界に及ぶと、それらのオブジェクトは、別個の参照バンドの中に記憶することができ、また、当該参照バンドの中におけるオブジェクトの記憶場所へのオフセット値が、その特定の幾何学的バンドの中の適切な記憶場所に記憶される。いくつかの実施形態では、仮想ページあるいは文書の中で繰り返し使用されるオブジェクトは、参照バンドの中に記憶することもできる。繰り返し使用されるオブジェクトを記憶するための参照バンドの使用によって、メモリ使用量が最適化されるとともに、繰り返し使用されるオブジェクトは参照バンドの中に一回置かれ、バンドにわたって多数回使用可能となる。これらの参照バンドには、幾何学的バンドによって参照されるオブジェクトが含まれていてもよい。したがって、例えば、一回参照されたバンドの中の単一オブジェクトは、多数の幾何学的バンドによって多数回、参照することができる。
バンドデータという用語は、ノードデータ構造430へ連結されたブロック440の内部におけるオブジェクトデータへの言及のために使用されており、ノードデータ構造430は、バンドデータ構造420へさらに連結されている。いくつかの実施形態では、個々のバンドデータ構造420には、そのバンド全体に属するデータオブジェクトが含まれている。いくつかの実施形態では、それぞれのバンドデータ構造には、個々のノードデータ構造430のインスタンスのリンクリストへのオフセット値、あるいは当該リンクリストのリファレンスが含まれていてもよい。インスタンス化されたノードデータ構造430はノードと呼ばれる。いくつかの実施形態では、それぞれのバンドデータ構造420には、参照するあらゆるノードについての情報が含まれていてもよい。
いくつかの実施形態では、個々のノードデータ構造430には、メモリ(ブロック)440の関連する(ゼロ以上の)あらゆるブロックへのオフセット値、あるいは当該ブロックのリファレンスが含まれていてもよい。いくつかの実施形態では、ブロック440は、中間図形オブジェクトと、PDL記述から生成された他のデータとを記憶するために使用することができる。いくつかの実施形態では、言語サーバ340は、ラスタサーバ320によって使用するために、中間図形オブジェクトと、PDL記述からの他のデータオブジェクトとを生成することができる。いくつかの実施形態では、それぞれのノードデータ構造には、参照するあらゆるブロックについての情報が含まれていてもよい。いくつかの実施形態では、ブロック440は均一で一定サイズのものである。本明細書において、Vページデータ構造410、バンドデータ構造420、およびノードデータ構造430は、制御データ構造とも呼ばれる。いくつかの実施形態では、データ構造400の中に記憶されたデータは、アクセス及び編集することもできる。
いくつかの実施形態では、ジョブがプリンタ170によって受信されると、言語サーバ340は、Vページデータ構造410および適切な数のバンドデータ構造420のインスタンス化へ導くルーチンを、RDLライブラリ330から呼び出す。いくつかの実施形態では、このシステムは、Vページ制御データフィールド、バンド制御データフィールド、およびノード制御データフィールドのそれぞれの中に、自由なVページ、バンド、およびノードのリストを保持している。さらに、このような制御オブジェクトのリンクリストは、1つ以上のルーチンRDLライブラリ330によって作成し、保存し、かつ、更新することができ、また、これらのルーチンは、RDLの処理の間にさまざまな箇所で呼び出すことができる。いくつかの実施形態では、別のVページデータ構造410のインスタンス化は新しい仮想ページについて起きることがある。いくつかの実施形態では、別のバンドデータ構造のインスタンス化は新しい仮想ページの中の新しいバンドについて起きることがある。
いくつかの実施形態では、言語サーバ340によって生成されるオブジェクトは、Vページを構築するために使用することができる。Vページはラスタサーバ320によってラスタ化することができる。いくつかの実施形態では、Vページは、すべてのバンドが処理されるまで、バンドごとにラスタ化することができる。いくつかの実施形態では、バンドは、すべてのオブジェクトが当該バンドのためのラスタライザへもたらされるまで、オブジェクトごとにラスタ化することができる。いくつかの実施形態では、ラスタ化処理は並行処理することができる。例えば、多数のバンドをラスタ化するために、多数の処理を並行して行うことができる。いくつかの実施形態では、ラスタ化を実行するための並行処理は、制御および同期の情報をもたらすことのできる少なくとも1つのマスター処理の制御の下で行われるスレーブ処理であってもよい。例えば、マスター処理は、順応性のある表示(display)の作成および削除を制御することができる。いくつかの実施形態では、バンドをラスタ化する順序は連続的なものでないかもしれない。さらに別の実施形態では、多数の完成Vページはこのシステムの中にその時々で存在している。これらの完成Vページには、ラスタ化処理が完了していないVページが含まれていてもよい。いくつかの実施形態では、Vページはそれらの構成の順にラスタ化される必要はない。ラスタ化が完了した後に、エンジンサーバ360は、RDLライブラリ330の中でルーチンを呼び出し、そのVページをメモリから削除するとともに、当該Vページによって使用されたメモリをメモリプール310へ解放することができる。
1つの実施形態では、多重ラスタ化処理によって、単一の仮想ページ(Vページ)についてのディスプレイリストの相異なる部分を同時にラスタ化することができる。例えば、マスター−スレーブ環境では、それぞれの並行スレーブ処理には、ラスタ化するための幾何学的バンドを割り当てることができる。いくつかの実施形態では、それぞれのスレーブ処理へ割り当てられる幾何学的バンドは異なるものである。いくつかの実施形態では、「ローカルスレーブ」と呼ばれるスレーブ処理は、マスターと同一の記憶領域、データ構造、およびデータへのアクセス権を有している。いくつかの実施形態では、「リモートスレーブ」と呼ばれるスレーブ処理は、それらの別個の記憶領域へのアクセス権を有している。例えば、「ローカル」スレーブは、メモリ172の中の「オリジナル」RDLへのアクセス権を有していることがある。したがって、RDLライブラリ330の中のルーチンは、ローカルスレーブ処理によるRDLオブジェクトへの共用アクセスを同時に許可することができる。別の例として、リモートスレーブは、ラスタ化のためにRDLの関連部分を、その割り当てられたメモリ位置へコピーするとともに、当該コピーの操作を実行することができる。リモートスレーブについては、ディスプレイリストのオブジェクトおよびデータのコピーはスレーブ処理へ送信される。いくつかの実施形態では、処理のためのリモートスレーブへのバンドの割り当ては、そのリモートスレーブへ送信されるデータおよびコードの量に一部基づいている。
図5は、並行ラスタ化をサポートするRDLの実施に適応した例示的オブジェクトの中における例示的なクラス図500の一部を示している。このクラス構造には永続的な(persistent)単体の主制御装置510が含まれており、この主制御装置510は所定の任意の処理に適したインデックスをノード550のブロック_h列(block_h array)の中へ与えるために使用することができ、これによって、その処理のアドレス空間に有効なブロックポインタ(block pointer)へ、当該処理がアクセスすることができる。主制御装置510を永続的な単体として言明することによって、その主制御装置の単一インスタンスがあるということと、その同一性がコード実行の間に変化しないということと、その主制御装置へのアクセスの大域的な箇所(a global point of access to Master Control)があるということが保証される。クラスおよび/またはサブクラス520〜570によって、RDLのような順応性のあるディスプレイリストについてのデータ構造400の1つの実施が示されている。さまざまなクラスに属しているオブジェクトは、実行の間にインスタンス化することができる。
図5に示されたように、第1クラスには、Vページ520、ノード550、バンド570、および主制御装置510のクラスが含まれている。これらのクラスは「制御クラス」と呼ばれる。サブクラスのVページHW530およびVページLW540はVページ520から導き出すことができる。同様に、バンドHW560はバンド570から導き出すことができる。1つの実施形態では、クラス構造は図4に示された平行階層的データ構造400であってもよい。例えば、バンドオブジェクト(バンドクラス570のインスタンスである)はノードオブジェクト(ノードクラス550のオブジェクトである)のリストに関連していてもよい。さらに、それぞれのノードオブジェクトはブロックを参照してもよい。
図5に示されたように、1つの実施形態では、ノードオブジェクトは、一連のノード::ブロックハンドルオブジェクト(Node::BlockHandle objects)を使用するメモリの単一ブロックを参照することができる。いくつかの実施形態では、ノードによって参照されるブロックはディスプレイリストのためのデータを保有することができる。いくつかの実施形態では、一定サイズのブロックを使用することができる。図5に示された実施形態では、それぞれのブロックハンドルオブジェクトは、ブロックへのポインタと、このポインタのユーザの数を示すフィールドと、読み取られているブロックの内部における現在位置を指し示す読取位置インジケータとを含むデータを保有することができる。1つの実施形態では、1つのブロックハンドルオブジェクトは、スレーブ処理ごとにインスタンス化される。それゆえ、スレーブ処理は、それらの個々のブロックハンドルオブジェクトを使用してノードのブロックへ同時にアクセスすることができるようになっている。加えて、1つのブロックハンドルオブジェクトは、すべての非スレーブ処理によって、インスタンス化されるとともに共有される。主制御装置の中における「GetSmartIndex()」メソッドが呼び出されると、「GetSmartIndex()」メソッドは、非スレーブ処理に共有されたインデックス、あるいは各スレーブ処理に固有のインデックスを返送する。スレーブに固有の固有インデックスは、スレーブの個々のブロックハンドルオブジェクトを操作するために使用することができる。
いくつかの実施形態では、順応性のあるディスプレイリストは、リモートスレーブへ送信されるコードおよび/またはデータの量を最小限にするために構成することができる。1つの実施形態では、ディスプレイリストコードの一部を構成するクラス520〜570は、重量級変種(HW(heavy-weight variants))および軽量級変種(LW(light-weight variants))として示される2つの変種から構成することができる。これらの変種は例えば、重量級変種であるVページHW530、軽量級変種であるVページLW540、重量級変種であるバンドHW560および軽量級変種であるバンド570を含むことができる。重量級変種および軽量級変種はまた、他のクラス(図示しない)に存在していてもよい。図示を簡略化するために2つの変種を示したが、一般的に、クラス変種あるいはサブクラス変種の数は変わることがあり、また、システム設計パラメータに左右されることがある。例えば、リモートスレーブは、ディスプレイリストコードのそれ自体のコピーを使用してディスプレイリストのオブジェクトおよびデータのコピーで動作することができるので、リモートスレーブによって利用されるコード、オブジェクト、およびデータのコピーのボリュームを減少させることは有益である。したがって、いくつかの実施形態では、スレーブがローカルスレーブであるか、またはリモートスレーブであるかによって、付加的なクラスを作成することができる。別の例として、ローカルスレーブには、共有されたディスプレイリストのオブジェクトおよびデータに多重スレーブ処理を同時にアクセス可能とする同期メソッド(synchronization methods)が含まれていてもよく、これに対し、それら自体のコピーで動作するリモートスレーブには、そのようなメソッドが備えられなくてもよい。
図5に示されたように、VページHW530のクラスあるいはVページLW540のクラスのいずれかのオブジェクトには、「OpenForRead」メソッドおよび「CloseForRead」メソッドが含まれている。VページHW530には、「OpenForWrite」、「AddObject」、「AddRefObject」、「Serialize」のようなメソッドもまた含まれているが、これらはクラスVページLW540のオブジェクトには存在していないか、あるいは利用することができない。いくつかの実施形態では、重量級クラス変種は非スレーブ処理のために使用することができ、軽量級変種(LW variants)はスレーブ処理のために使用することができる。いくつかの実施形態では、軽量級Vページには、あらゆる幾何学的バンドオブジェクトに加えて、参照バンドオブジェクトが含まれている。いくつかの実施形態では、HW変種は、対応するLW変種よりも優れた機能性がもたらされるように設計することができる。したがって、LW変種は、より小さいものであり、また、HWクラス変種では利用することのできるいくつかの付加的な機能性によることなくラスタ化を実行するために、スレーブ処理によって使用されるコードおよびデータを含んでいる。例えば、HW変種には、ディスプレイリストの作成および削除を可能にするメソッドが含まれていてもよい。いくつかの実施形態では、ディスプレイリストの作成および削除のためのメソッドは、スレーブ処理に利用することができるようには作られていない。
図6は、順応性のあるディスプレイリストを連続的にラスタ化するためのアルゴリズムについての例示的なフローチャート600を示している。このアルゴリズムはステップ610において開始される。ステップ620では、VページHW530が読み取りのために開放される。例えば、メモリの中に存在するVページHW530のオブジェクトについて、「VPageHW::OpenForRead()」を呼び出すことができる。「VPageHW::OpenForRead()」の機能によって、読み取りのために幾何学的バンドおよび参照バンドを開放することができる。1つの実施形態では、バンド420を開放することには、そのバンドの中のノード430を開放することと、そのバンドについての現在のノードイテレータ(node iterator)をそのノードリストの開始のためにセットすることとが含まれる。ノードを開放することには、ノード430についての現在位置読取インジケータに、そのノードのデータブロックの冒頭をセットすることが含まれる。次いで、ステップ630において、アルゴリズムはオブジェクトVページHW530の中の第1の幾何学的バンドを識別する。このバンドはその後、幾何学的バンドについてのラスタ化ルーチン640によってラスタ化することができる。ステップ650では、アルゴリズムは、オブジェクトVページHW530の中のすべての幾何学的バンドがラスタ化されたかどうかを点検する。もし、ラスタ化されなかった幾何学的バンドがあれば、その後、このアルゴリズムは、ステップ670において、オブジェクトVページHW520の中の次の幾何学的バンドへ進むことができる。このアルゴリズムは、すべての幾何学的バンドがステップ660における処理の終了の前にラスタ化されるまで、ステップ640、650および670を繰り返す。
図7は、多重処理を使用してVページオブジェクトをラスタ化するためのアルゴリズムの例示的なフローチャート700を示している。このアルゴリズムはステップ710において開始される。ステップ720では、オブジェクトVページHW530が読み取りのために開放される。例えば、VページHW530の中における「OpenForRead」メソッドを呼び出すことができる。いくつかの実施形態では、「VPageHW::OpenForRead()」は、読み取りのための幾何学的バンドおよび参照バンドを開放するために、マスター処理によって呼び出すことができる。ステップ730では、アルゴリズムは、オブジェクトVページHW530の中のすべての幾何学的バンドがラスタ化されたかどうかを点検する。もし、ラスタ化されなかった幾何学的バンドがあれば、その後、このアルゴリズムは、ステップ740において、オブジェクトVページHW530の中において現在の幾何学的バンドに対応するVページLW540オブジェクトをインスタンス化する。いくつかの実施形態では、VページLWオブジェクト540には、VページHW530において特定の標準的バンドHWオブジェクトに対応する単一の幾何学的バンドオブジェクトが包含されていてもよく、また、VページHW530において参照バンドに対応するオブジェクトも包含されていてもよい。
ステップ750において、オブジェクトVページLW540をスレーブ処理へ送信することができる。いくつかの実施形態では、オブジェクトVページLW540へのリファレンスあるいはポインタをスレーブ処理へ送信することができる。例えば、ラスタ化マスター処理は、VページLWオブジェクト540をスレーブ処理へ送信することができる。ステップ760では、オブジェクトVページLW540が読み取りのために開放され、続いてラスタ化ルーチン640が呼び出される。ステップ770では、アルゴリズムは、オブジェクトVページHW520の中における次の幾何学的バンドへ進み、また、ラスタ化されなかったバンドがあれば、ステップ730〜750を繰り返す。いくつかの実施形態では、ラスタ化マスター処理はステップ730〜760を繰り返してもよいが、ステップ760と、VページLW540の中のバンドにおけるラスタ化ルーチン640の呼び出しとはスレーブ処理によって実行することができる。すべてのバンドがラスタ化されると、アルゴリズムはステップ780で処理を終了することができる。
図8は、幾何学的バンドについての例示的なラスタ化ルーチン640によって実行されるステップを示すフローチャートである。ラスタ化ルーチン640が呼び出されると、ステップ810において、現在のノードが点検されて、そのノードにラスタ化されていないオブジェクトが包含されているかどうかが決定される。ラスタ化されていないオブジェクトがあれば、ステップ820において、例示的なラスタ化ルーチン640が、現在のノードのブロックにおける次のオブジェクトへのポインタを取得する。ステップ830において、そのオブジェクトが参照バンドにおけるものであると決定されると、その後、当該参照バンドにおける当該オブジェクトへのポインタがステップ840において取得される。そのオブジェクトがレファレンスでないときには、その後、そのオブジェクトはステップ850においてラスタ化される。
現在のノードの点検によって、そのノードの中におけるすべてのオブジェクトがラスタ化されていると決定されると、その後、ステップ860において、現在のノードのブロックポインタが解放される。このバンドはその後、ステップ870で、例示的なラスタ化ルーチン640によって検査することができ、付加的なノードが包含されているかどうかが決定される。もし、付加的なノードが存在すれば、このルーチンは、ステップ880において次のノードへ進む。アルゴリズムは、ラスタ化されるバンドのすべてのノードにおけるオブジェクトが処理されるまで、それぞれのノードについてステップ810〜850を繰り返す。すべてのノードが処理されると、その後、ラスタ化が完了して、このアルゴリズムは、ステップ890において処理を終了することができる。
本発明の他の実施形態は、本明細書の考察、及び、本明細書中に開示された本発明の1つ以上の実施形態の実施により、当業者にとって明らかになるであろう。明細書及び例は例示的なものに過ぎないことを意図しており、本発明の本来の範囲及び要旨は、以下の特許請求の範囲に示されるものである。
171 ファームウェア
172 メモリ(RAM)
173 補助記憶装置
177 印刷エンジン
310 メモリプール
320 ラスタサーバ
330 RDLライブラリ
340 言語サーバ
350 フレームバッファ
360 エンジンサーバ
410 Vページデータ構造
420 バンドデータ構造
430 ノードデータ構造
440 ブロック
510 永続的な単体
520 Vページ
530 VページHW
540 VページLW
550 ノード
560 バンドHW
570 バンド

Claims (20)

  1. ディスプレイリストにラスタ化を実行するための方法であって、
    前記ディスプレイリストは、当該ディスプレイリストにおける仮想ページオブジェクトの第1クラスに属した仮想ページオブジェクトに関連するバンドを含み、
    当該方法は、
    少なくとも1つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析するステップと、
    前記少なくとも1つの幾何学的バンドをラスタ化するために、少なくとも1つの利用可能なラスタ化処理を識別するステップと、
    仮想ページオブジェクトの前記第1クラスから導かれる仮想ページオブジェクトの第2クラスに属するとともに、前記幾何学的バンドを含む第2仮想ページオブジェクトを作成するステップと、
    前記幾何学的バンドを含む前記第2仮想ページオブジェクトを、利用可能なラスタ化処理へ送信するステップと、
    前記利用可能なラスタ化処理であって、前記第2仮想ページオブジェクトにおける前記幾何学的バンドで動作するラスタ化処理を利用して、前記1つの幾何学的バンドをラスタ化するステップと
    を備える方法。
  2. 当該方法は、マスター処理によって実行され、
    前記少なくとも1つの利用可能なラスタ化処理は、前記マスター処理の制御下で並行して動作する一組のスレーブラスタ化処理から選択される請求項1に記載の方法。
  3. 任意のアイドルスレーブラスタ化処理が、利用可能なラスタ化処理である請求項2に記載の方法。
  4. 動作する各スレーブラスタ化処理は、識別可能な仮想ページオブジェクトにおける幾何学的バンドで動作し、
    前記識別可能な仮想ページオブジェクトは、仮想ページオブジェクトの前記第2クラスに属する請求項2に記載の方法。
  5. 動作する各スレーブラスタ化処理は、前記識別可能な仮想ページオブジェクト自体のコピーを有する請求項4に記載の方法。
  6. 前記スレーブラスタ化処理は、リモート処理である請求項2に記載の方法。
  7. 少なくとも1つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析する前記ステップは、
    前記幾何学的バンドを検索するために、前記ディスプレイリストを横断するステップをさらに備える請求項1に記載の方法。
  8. 前記幾何学的バンドを含む前記第2仮想ページオブジェクトを、利用可能なラスタ化処理へ送信する前記ステップは、
    前記ラスタ化処理がリモートである場合に、前記第2仮想ページオブジェクトのコピーを前記利用可能なラスタ化処理へ送信するステップと、
    前記ラスタ化処理がローカルである場合に、前記第2仮想ページオブジェクトへのリファレンスを前記利用可能なラスタ化処理へ送信するステップと
    をさらに備える請求項1に記載の方法。
  9. 仮想ページオブジェクトの前記第1クラスは、仮想ページオブジェクトの前記第2クラスと比較して付加的な機能性をもたらす請求項1に記載の方法。
  10. 処理装置によって実行されたときに、ディスプレイリストにラスタ化を実行するための方法におけるステップを実現する指示を記憶するコンピュータ可読媒体であって、
    前記ディスプレイリストは、当該ディスプレイリストにおける仮想ページオブジェクトの第1クラスに属した仮想ページオブジェクトに関連するバンドを含み、
    前記方法は、
    少なくとも1つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析するステップと、
    前記少なくとも1つの幾何学的バンドをラスタ化するために、少なくとも1つの利用可能なラスタ化処理を識別するステップと、
    仮想ページオブジェクトの前記第1クラスから導かれる仮想ページオブジェクトの第2クラスに属するとともに、前記幾何学的バンドを含む第2仮想ページオブジェクトを作成するステップと、
    前記幾何学的バンドを含む前記第2仮想ページオブジェクトを、利用可能なラスタ化処理へ送信するステップと、
    前記利用可能なラスタ化処理であって、前記第2仮想ページオブジェクトにおける前記幾何学的バンドで動作するラスタ化処理を利用して、前記1つの幾何学的バンドをラスタ化するステップと
    を備えるコンピュータ可読媒体。
  11. 前記方法は、マスター処理によって実行され、
    前記少なくとも1つの利用可能なラスタ化処理は、前記マスター処理の制御下で並行して動作する一組のスレーブラスタ化処理から選択される請求項10に記載のコンピュータ可読媒体。
  12. 任意のアイドルスレーブラスタ化処理が、利用可能なラスタ化処理である請求項11に記載のコンピュータ可読媒体。
  13. 動作する各スレーブラスタ化処理は、識別可能な仮想ページオブジェクトにおける幾何学的バンドで動作し、
    前記識別可能な仮想ページオブジェクトは、仮想ページオブジェクトの前記第2クラスに属する請求項11に記載のコンピュータ可読媒体。
  14. 動作する各スレーブラスタ化処理は、前記識別可能な仮想ページオブジェクト自体のコピーを有する請求項13に記載のコンピュータ可読媒体。
  15. 前記スレーブラスタ化処理は、リモート処理である請求項11に記載のコンピュータ可読媒体。
  16. 少なくとも1つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析する前記ステップは、
    前記幾何学的バンドを検索するために、前記ディスプレイリストを横断するステップをさらに備える請求項10に記載のコンピュータ可読媒体。
  17. 前記幾何学的バンドを含む前記第2仮想ページオブジェクトを、利用可能なラスタ化処理へ送信する前記ステップは、
    前記ラスタ化処理がリモートである場合に、前記第2仮想ページオブジェクトのコピーを前記利用可能なラスタ化処理へ送信するステップと、
    前記ラスタ化処理がローカルである場合に、前記第2仮想ページオブジェクトへのリファレンスを前記利用可能なラスタ化処理へ送信するステップと
    をさらに備える請求項10に記載のコンピュータ可読媒体。
  18. 仮想ページオブジェクトの前記第1クラスは、仮想ページオブジェクトの前記第2クラスと比較して付加的な機能性をもたらす請求項10に記載のコンピュータ可読媒体。
  19. 処理装置を制御して、ディスプレイリストにラスタ化を実行するための方法における各ステップを実行させる指示を保持するコンピュータ可読メモリであって、
    前記ディスプレイリストは、当該ディスプレイリストにおける第1クラスの仮想ページオブジェクトに属した仮想ページオブジェクトに関連するバンドを含み、
    前記方法は、
    少なくとも1つの幾何学的バンドを識別するために、前記仮想ページオブジェクトを構文解析するステップと、
    前記少なくとも1つの幾何学的バンドをラスタ化するために、少なくとも1つの利用可能なラスタ化処理を識別するステップと、
    仮想ページオブジェクトの前記第1クラスから導かれる仮想ページオブジェクトの第2クラスに属するとともに、前記幾何学的バンドを含む第2仮想ページオブジェクトを作成するステップと、
    前記幾何学的バンドを含む前記第2仮想ページオブジェクトを、利用可能なラスタ化処理へ送信するステップと、
    前記利用可能なラスタ化処理であって、前記第2仮想ページオブジェクトにおける前記幾何学的バンドで動作するラスタ化処理を利用して、前記1つの幾何学的バンドをラスタ化するステップと
    を備えるコンピュータ可読メモリ。
  20. 前記方法は、マスター処理によって実行され、
    前記少なくとも1つの利用可能なラスタ化処理は、前記マスター処理の制御下で並行して動作する一組のスレーブラスタ化処理から選択される請求項19に記載のコンピュータ可読メモリ。
JP2009081428A 2008-03-31 2009-03-30 ディスプレイリストの並行ラスタ化のための方法、コンピュータ可読媒体及びコンピュータ可読メモリ Expired - Fee Related JP5226581B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/059,627 2008-03-31
US12/059,627 US8228555B2 (en) 2008-03-31 2008-03-31 Systems and methods for parallel display list rasterization

Publications (2)

Publication Number Publication Date
JP2009245436A true JP2009245436A (ja) 2009-10-22
JP5226581B2 JP5226581B2 (ja) 2013-07-03

Family

ID=41116718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009081428A Expired - Fee Related JP5226581B2 (ja) 2008-03-31 2009-03-30 ディスプレイリストの並行ラスタ化のための方法、コンピュータ可読媒体及びコンピュータ可読メモリ

Country Status (2)

Country Link
US (1) US8228555B2 (ja)
JP (1) JP5226581B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098225B2 (en) 2010-08-26 2015-08-04 Canon Kabushiki Kaisha Print processing method and printing system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US8782371B2 (en) * 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8817032B2 (en) 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8854680B2 (en) * 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
US8861014B2 (en) * 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
US8314973B2 (en) 2010-06-01 2012-11-20 Konica Minolta Laboratory U.S.A., Inc. Method and apparatus for dynamic printer performance tuning using bayesian analysis
JP5716367B2 (ja) * 2010-12-01 2015-05-13 コニカミノルタ株式会社 印刷データ生成装置及び印刷データ生成方法
AU2013273716A1 (en) 2013-12-19 2015-07-09 Canon Kabushiki Kaisha Method, apparatus and system for rendering an image

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003051019A (ja) * 2001-08-08 2003-02-21 Canon Inc 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
JP2005284384A (ja) * 2004-03-26 2005-10-13 Canon Inc 画像処理装置、画像処理制御方法、及びプログラム
JP2007156613A (ja) * 2005-12-01 2007-06-21 Canon Inc 描画制御装置、描画制御方法、記憶媒体およびプログラム

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5010515A (en) * 1987-07-28 1991-04-23 Raster Technologies, Inc. Parallel graphics processor with workload distributing and dependency mechanisms and method for distributing workload
US5319778A (en) * 1991-07-16 1994-06-07 International Business Machines Corporation System for manipulating elements in linked lists sharing one or more common elements using head nodes containing common offsets for pointers of the linked lists
US5479587A (en) * 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
US5491808A (en) * 1992-09-30 1996-02-13 Conner Peripherals, Inc. Method for tracking memory allocation in network file server
US5502462A (en) * 1993-11-01 1996-03-26 The 3Do Company Display list management mechanism for real-time control of by-the-line modifiable video display system
US5577243A (en) * 1994-03-31 1996-11-19 Lexmark International, Inc. Reallocation of returned memory blocks sorted in predetermined sizes and addressed by pointer addresses in a free memory list
US5490670A (en) * 1994-09-13 1996-02-13 Hobert; Marcus V. Craps layout arrangement with jackpot wagering area and randomized jackpot sequences
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5793937A (en) * 1996-03-29 1998-08-11 Peerless Systems Corporation Fallback processing for page generation using memory reduction techniques
US5778414A (en) * 1996-06-13 1998-07-07 Racal-Datacom, Inc. Performance enhancing memory interleaver for data frame processing
US5978893A (en) * 1996-06-19 1999-11-02 Apple Computer, Inc. Method and system for memory management
US5913018A (en) * 1996-07-24 1999-06-15 Adobe Systems Incorporated Print band rendering system
US6269190B1 (en) * 1996-09-24 2001-07-31 Electronics For Imaging, Inc. Computer system for processing images using a virtual frame buffer
US6031995A (en) * 1996-11-06 2000-02-29 George; A. Chacko Object-oriented sequencing using hierarchical configuration streams
US6057847A (en) * 1996-12-20 2000-05-02 Jenkins; Barry System and method of image generation and encoding using primitive reprojection
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
US5999709A (en) * 1997-04-18 1999-12-07 Adobe Systems Incorporated Printer memory boost
US6040917A (en) * 1997-10-27 2000-03-21 Hewlett-Packard Company Memory partitioning for multi-resolution pauseless page printing
US6490670B1 (en) 1998-04-24 2002-12-03 International Business Machines Corporation Method and apparatus for efficiently allocating objects in object oriented systems
US20010015820A1 (en) * 1998-07-13 2001-08-23 Hewlett-Packard Company Method and apparatus for conservation of memory in a printer through selective compression of a display list
US6366289B1 (en) * 1998-07-17 2002-04-02 Microsoft Corporation Method and system for managing a display image in compressed and uncompressed blocks
US20020093669A1 (en) * 1998-08-28 2002-07-18 Russell Campbell Complexity extensions for band management in a printer page pipe
US20020063894A1 (en) * 1998-08-28 2002-05-30 Russell Campbell Conservation of printer memory on the composition page
US6192157B1 (en) * 1998-10-27 2001-02-20 Hewlett-Packard Company Modifications of postscript adaptive data compression (ADC) for 3 plane, 8 bit color images, JPEG lossy compression, and variable Q factors
US6684304B2 (en) * 1999-01-29 2004-01-27 Micron Technology, Inc. Method to access memory based on a programmable page limit
US6701420B1 (en) * 1999-02-01 2004-03-02 Hewlett-Packard Company Memory management system and method for allocating and reusing memory
US6249793B1 (en) * 1999-06-10 2001-06-19 Sun Microsystems, Inc. Mostly concurrent compaction in a garbage collection system
US6778292B1 (en) * 1999-08-19 2004-08-17 Seiko Epson Corporation Printer host and storage medium storing the operation program therefor
GB2354416B (en) * 1999-09-17 2004-04-21 Technologies Limit Imagination Depth based blending for 3D graphics systems
US7111190B2 (en) * 2001-02-23 2006-09-19 Intel Corporation Method and apparatus for reconfigurable memory
US6879416B2 (en) * 2000-04-27 2005-04-12 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium
DE60127253T2 (de) * 2000-06-08 2007-11-22 Imagination Technologies Ltd., Kings Langley Bildkachelung und -kompression für die 3D-Bilddarstellung
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
AUPQ995700A0 (en) * 2000-09-07 2000-09-28 Canon Kabushiki Kaisha Method and apparatus for printing computer generated images
US20020097417A1 (en) * 2001-01-19 2002-07-25 Chang William Ho System for universal data output
US6643759B2 (en) * 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
KR20040030091A (ko) * 2001-08-15 2004-04-08 코닌클리케 필립스 일렉트로닉스 엔.브이. 이동 메모리 블록들을 가지는 메모리 풀들
US7113302B2 (en) * 2001-10-16 2006-09-26 Texas Instruments Incorporated Printer with unified display list and banded display lists
US7330956B1 (en) * 2002-04-16 2008-02-12 Emc Corporation Bucket based memory allocation
US7715031B2 (en) * 2002-06-14 2010-05-11 Kyocera Mita Corporation Method and apparatus for generating an image for output to a raster device
US6895486B2 (en) * 2002-08-29 2005-05-17 Micron Technology, Inc. Linear object management for a range of flash memory
US8045215B2 (en) * 2002-10-18 2011-10-25 Hewlett-Packard Development Company, L.P. Printer object list resolutions
US20040120007A1 (en) * 2002-12-19 2004-06-24 Jacobsen Dana A. Method and apparatus for forming a display list
JP4144395B2 (ja) * 2003-03-25 2008-09-03 ブラザー工業株式会社 画像処理装置およびそれを備えた画像形成装置
JP2005065043A (ja) * 2003-08-18 2005-03-10 Minolta Co Ltd データ処理装置
US7583397B2 (en) * 2003-09-30 2009-09-01 Canon Kabushiki Kaisha Method for generating a display list
US7747834B2 (en) * 2004-09-30 2010-06-29 Kyocera Wireless Corp. Memory manager for an embedded system
JP4484770B2 (ja) * 2005-06-09 2010-06-16 キヤノン株式会社 画像処理装置およびその方法
JP4281738B2 (ja) * 2005-12-26 2009-06-17 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、画像形成方法及びプログラム
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
EP2075698A1 (en) * 2007-12-28 2009-07-01 Software AG Method and system for allocating memory in a broker system
US8782371B2 (en) * 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8817032B2 (en) * 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8854680B2 (en) * 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
US8861014B2 (en) * 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003051019A (ja) * 2001-08-08 2003-02-21 Canon Inc 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
JP2005284384A (ja) * 2004-03-26 2005-10-13 Canon Inc 画像処理装置、画像処理制御方法、及びプログラム
JP2007156613A (ja) * 2005-12-01 2007-06-21 Canon Inc 描画制御装置、描画制御方法、記憶媒体およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098225B2 (en) 2010-08-26 2015-08-04 Canon Kabushiki Kaisha Print processing method and printing system
US9411548B2 (en) 2010-08-26 2016-08-09 Canon Kabushiki Kaisha Print processing method and printing system

Also Published As

Publication number Publication date
US20090244593A1 (en) 2009-10-01
US8228555B2 (en) 2012-07-24
JP5226581B2 (ja) 2013-07-03

Similar Documents

Publication Publication Date Title
JP5226581B2 (ja) ディスプレイリストの並行ラスタ化のための方法、コンピュータ可読媒体及びコンピュータ可読メモリ
US8861014B2 (en) Systems and methods for optimized printer throughput in a multi-core environment
JP5475307B2 (ja) ラスタ化のためのメモリマネージメント方法、コンピュータ可読媒体及び装置
JP5238526B2 (ja) 印刷リソース管理のためのシステム及び方法
US8526049B2 (en) Systems and methods for display list management
JP5680841B2 (ja) 最適なメモリアロケーションユニットのシステム及び方法
AU2012203637B2 (en) Print data processing system, print data processing method, and program
JP2009146251A (ja) 画像処理装置および画像形成システムとプログラム
JP2006309759A (ja) プリントジョブ管理方法及びシステム
JP5261250B2 (ja) ページ記述言語を処理する印刷データ処理装置、方法及びコンピュータ可読媒体
JP5457208B2 (ja) 印刷装置におけるメモリ管理用システム及びその方法
JP5539672B2 (ja) 複数のモードによる色の混合のシステム及び方法
JP5642951B2 (ja) ピクスマップの管理方法、プログラム及びプログラムを記録した記録媒体
JPH09185721A (ja) 画像形成装置
US8928914B2 (en) Image processing apparatus, information processing method, and storage medium
JP2012058795A (ja) 情報処理装置、文書画像処理装置、電子文書処理方法、プログラム
JP2010111099A (ja) 画像処理装置およびその制御方法
JP2004188865A (ja) 画像形成装置およびプログラム
JP5251995B2 (ja) 画像データ生成装置、画像形成装置およびプログラム
JP2017189968A (ja) 画像処理装置及び画像処理方法
JP2012081711A (ja) 画像形成装置、画像処理方法
JP5212566B2 (ja) 画像データ生成装置、画像形成装置およびプログラム
JP2005178028A (ja) 印刷装置
JP2004341887A (ja) SoftRIPにおいてリンク情報を元にオブジェクト単位でインタプリタ及びレンダリングを行う処理方法及び装置ならびにそれらを記憶する記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110920

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110920

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130314

R150 Certificate of patent or registration of utility model

Ref document number: 5226581

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees