JP5437754B2 - ディスプレイリストの並列生成及び並行ラスタライゼーションのための方法及びコンピュータにより読取可能な媒体 - Google Patents

ディスプレイリストの並列生成及び並行ラスタライゼーションのための方法及びコンピュータにより読取可能な媒体 Download PDF

Info

Publication number
JP5437754B2
JP5437754B2 JP2009222772A JP2009222772A JP5437754B2 JP 5437754 B2 JP5437754 B2 JP 5437754B2 JP 2009222772 A JP2009222772 A JP 2009222772A JP 2009222772 A JP2009222772 A JP 2009222772A JP 5437754 B2 JP5437754 B2 JP 5437754B2
Authority
JP
Japan
Prior art keywords
display list
rasterization
memory
rasterization process
block
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.)
Expired - Fee Related
Application number
JP2009222772A
Other languages
English (en)
Other versions
JP2010092472A (ja
Inventor
ユージン ベラート ダレル
Original Assignee
コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
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 コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド filed Critical コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
Publication of JP2010092472A publication Critical patent/JP2010092472A/ja
Application granted granted Critical
Publication of JP5437754B2 publication Critical patent/JP5437754B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1849Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1857Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/186Generation of the printable image characterized by its workflow taking account of feedback from an output condition, e.g. available inks, time constraints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Record Information Processing For Printing (AREA)

Description

本発明は印刷の分野に関し、特に、マルチコア環境を利用してプリンタのスループットを最適化するシステム及び方法に関する。
文書処理ソフトウェアによって、ユーザは便利に文書を閲覧、編集、処理及び保存することができる。文書のページは、画面に表示された状態とまったく同じように印刷されうる。しかしながら、多くの場合、文書が印刷可能になる前の文書のページは、ページ記述言語(「PDL」)で記述される。文書のPDL記述は、文書の各ページの高級な記述を提供する。このPDL記述は、多くの場合、文書が印刷される際に、一連のより低級なプリンタ固有コマンドに変換される。本出願でも使用しているが、PDLには、Personalized Print Markup Language(「PPML」)、PostScriptTM、AdobePDFTM、HP PCLTM、Microsoft XPSTM及びこれらの変形等の、文書のページを記述するのに用いられる言語が含まれる。Personalized Print Markup Language(「PPML」)規格でのプリンタ言語は、テキスト及びグラフィック要素等のオブジェクトを識別、記憶及び再利用を許可する。
PDL記述は解析され、一般に、コマンド(ディスプレイリストプリミティブとも呼ばれる)を含むオブジェクトを保持することができるディスプレイリストと呼ばれる中間形式に変換される。ディスプレイリストコマンドは、文書内又は印刷される文書のページ内においてデータオブジェクト及びその内容を定義する。ディスプレイリストは解析され、その後、印刷媒体に点を付するのに用いることができる最終形式に変換される。文書のディスプレイリスト表現から、印刷媒体に点を付するのに用いられる低級記述への変換処理は、ラスタライゼーションと呼ばれる。ラスタライゼーションはコンピュータ又はプリンタで実行されるか、コンピュータ及びプリンタの間で分散されて実行されうる。
ラスタライゼーションでは、一般に、ディスプレイリストコマンドの影響を受けるピクセルを決定し、それらのピクセルを適切に修正することにより、1ページずつレンダリングを行う。ページがラスタライズされる状態にあるとき、それはラスタライザによって動作されうる。しかしながら、1ページ分のディスプレイリスト全体を生成するのにかなりの時間を要する場合がある。この期間は、プロセッサがアイドル状態となりうる。更に、最新のマルチコアプロセッサ(1つのチップ又はパッケージにいくつかのプロセッサ「コア」を含みうる)においては、1ページ分のディスプレイリスト全体の生成を待つ間、一以上のコアがアイドル状態となりうる。
プロセッサのアイドリングは、演算資源の無駄であり、また、質の良くない設計(過度の容量)又は不十分な利用(既存の資源を使用できないこと)を提案するものである。更に、プロセッサのアイドル周期は、性能及びレンダリング速度に影響しうる。このように、使用可能な演算資源のより良い利用は、より低価格で、機能性をより大きく、及び/又は性能をより良くすることを可能にする。
したがって、利用可能な演算資源を最適に使用するシステム及び方法が必要とされている。
本発明に従って、印刷資源を管理するシステム及び方法が示される。メモリプールにおける少なくとも1つのディスプレイリストの並列生成及び並行ラスタライゼーションのための方法の実施形態が示される。メモリプールは、フレームバッファメモリ及びディスプレイリストメモリを有しており、ディスプレイリストは、バンドより小さいサイズで、等しいサイズのディスプレイリストブロックを有している。一部の実施形態では、並列生成及び並行ラスタライゼーションの方法は、ディスプレイリストブロックの完成状況を監視する工程と、ラスタライゼーション処理の可用性を監視する工程と、ディスプレイリストブロックが完成したときに、当該完成ディスプレイリストブロックを使用可能なラスタライゼーション処理に割り当てる工程と、使用可能なラスタライゼーション処理を使用してディスプレイリストブロックをラスタライズする工程と、を有する。
また、本発明の他の側面によれば、フレームバッファメモリ及びディスプレイリストメモリを有するメモリプールにおける少なくとも1つのディスプレイリストの並列生成及び並行ラスタライゼーションのための、マルチコアプロセッサにおいて実行される方法であって、前記ディスプレイリストは、等しいサイズのディスプレイリストブロックに関連する複数のバンドを含んでおり、前記ディスプレイリストブロックの完成状況を監視する工程と、ラスタライゼーション処理の可用性を監視する工程と、完成ディスプレイリストブロックを使用可能なラスタライゼーション処理に割り当てる工程と、前記使用可能なラスタライゼーション処理を使用して前記ディスプレイリストブロック をラスタライズする工程と、を含み、前記ラスタライゼーション処理は、同時に実行される他のラスタライゼーション処理に対して異なる前記マルチコアプロセッサのコアで実行され、前記同時に実行されるラスタライゼーション処理の各々は、異なるディスプレイリストブロックに作用し、前記ディスプレイリストブロックの各々は異なるバンドに対応することを特徴とする方法が提供される。
また、本発明の実施形態は、コンピュータにより読取可能な媒体及び/又はコンピュータにより読取可能なメモリを使用したプロセッサにより作成され、記憶され、アクセスされ、又は変更される命令に関する。
これらの又は他の実施形態は、以下の図面に関連して、以下に、より詳細に説明される。
文書を印刷するシステムの構成要素を図示するブロック図である。 例示的なプリンタの高級なブロック図を示す。 PDLから生成されるディスプレイリストを作成する処理のシステムの例示的な高級なアーキテクチャを示す。 完成した再構成可能なディスプレイリスト(「RDL」)ページの例示的な構造を示す。 例示的な未完成RDLページの並列生成及び並行ラスタライゼーションを図示するブロック図を示す。
開示された実施形態に従って、データの第1形式から生成されるデータの中間形式の並列生成及び並行ラスタライゼーションのためのシステム及び方法が示される。一部の実施形態では、第1の印刷可能なデータは文書のPDL記述の形式をとることができ、また、中間印刷可能データはPDL記述から生成されるディスプレイリストの形式をとることができる。
図1は文書を印刷する例示的なシステムの構成要素を示すブロック図を図示している。本発明に合致するコンピュータソフトウェアアプリケーションは、図1に示すように、従来の通信プロトコル及び/又はデータポートインタフェースを用いて情報交換を実現する通信リンクを通じて接続されたコンピュータネットワークにおいて配備されうる。
図1に示すように、例示的なシステム100は、コンピューティングデバイス110及びサーバ130等のコンピュータを含む。また、コンピューティングデバイス110及び/又はサーバ130は、マルチプロセッサ又は複数の中央処理装置(CPU)システムであってもよい。一部の実施形態では、プロセッサは1つの本体に複数のプロセッサコアを有していてもよい。例えば、Intel PentiumTMプロセッサは、デュアルコア(2つのコア)、及びクワッドコア(4つのコア)を含んでいる。プロセッサコアは、独立した、近接して結合されたCPUのように作用し、プログラム又はハードウェア制御の下、協調して機能することができる。
コンピューティングデバイス110及びサーバ130は、インターネットでありうるネットワーク140を経由する接続部120を通じて通信してもよい。コンピューティングデバイス110は、コンピュータワークステーション、デスクトップコンピュータ、ノート型コンピュータ、又はその他のネットワーク化された環境で用いることができるあらゆるコンピューティングデバイスでありうる。サーバ130は、コンピューティングデバイス110及びその他の装置(図示せず)に接続することができるプラットフォームであってもよい。コンピューティングデバイス110及びサーバ130は、プリンタ170を用いて文書の印刷を実現するソフトウェア(図示せず)を実行することができる。
例示的なプリンタ170は、レーザプリンタ及びLEDプリンタ等の電子写真式プリンタ、インクジェットプリンタ、サーマルプリンタ、レーザプリンタ並びにオフセットプリンタを含む、電子データから物理的な文書を生成する装置を含む。プリンタ170は、ファクシミリ装置及びデジタルコピー機に取り付けられた際は、画像送信/受信機能、画像走査機能、及び/又はコピー機能を有してもよい。
一部の実施形態では、プリンタ170は、コンピューティングデバイス110又はサーバ130から接続部120を介して受信した文書を直接印刷可能であってもよい。一部の実施形態では、このような配置は、コンピューティングデバイス110又はサーバ130による追加的な処理と共に(又は無しで)文書を直接印刷することを可能とする。一部の実施形態では、文書は、一以上のテキスト、グラフィック及び画像を含んでもよい。一部の実施形態では、プリンタ170は、印刷のための文書のPDL記述を受信してもよい。文書印刷処理もまた、分散され得る点に留意されたい。このように、コンピューティングデバイス110、サーバ130、及び/又はプリンタは、文書がプリンタ170によって物理的に印刷される前に、ラスタライゼーション、ハーフトーニング、カラーマッチング、及び/又は他の操作処理の一部を含む文書印刷処理の一部を実行しうる。
コンピューティングデバイス110は、リムーバブルメディアドライブ150を含んでもよい。リムーバブルメディアドライブ150は、例えば、3.5インチフロッピードライブ、CD−ROMドライブ、DVD−ROMドライブ、CD±RW若しくはDVD±RWドライブ、USBTMフラッシュドライブ、及び/又は本発明の実施形態に適合する他のいかなるリムーバブルメディアドライブを含んでもよい。一部の実施形態では、ソフトウェアアプリケーションの一部はリムーバブルメディアに搭載され、リムーバブルメディアドライブ150を用いたコンピューティングデバイス110によって読み取られて実行されてもよい。
接続部120は、コンピューティングデバイス110、サーバ130及びプリンタ170を接続しており、従来の通信プロトコル及び/又はデータポートインタフェースを用いて、有線接続又は無線接続として実施されることができる。一般に、接続部120は、デバイス間のデータ送信を可能とするいかなる通信チャネルとされてもよい。一部の実施形態では、例えば、デバイスは、パラレルポート、シリアルポート、イーサネット(登録商標)、USBTM、SCSI、FIREWIRETM及び/又は適当な接続部を介してデータ送信するための同軸ケーブルポート等の従来のデータポートを備えてもよい。一部の実施形態では、データポートは無線であってもよく、通信リンクは、種々のデバイス間の通信を可能とする無線リンク又は有線リンクのいくつかの組み合わせであってもよい。
ネットワーク140は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)又はインターネットを含んでもよい。プリンタ170は、接続部120を介してネットワーク140に接続されうる。一部の実施形態では、プリンタ170は、コンピューティングデバイス110及び/又はサーバ130に直接接続されてもよい。
開示された実施形態に適合するコンピュータソフトウェアアプリケーションは、図1に示される例示的なコンピュータのいずれかに配備されてもよい。例えば、コンピューティングデバイス110は、サーバ130から直接ダウンロードされうるソフトウェアを実施することができる。アプリケーションの一部は、プリンタ170によって実施されてもよい。
図2は、例示的なプリンタ170の高級なブロック図を示す。一部の実施形態では、プリンタ170は、CPU176、デジタルシグナルプロセッサ(「DSP」)179、ファームウェア171、メモリ172、入力‐出力ポート175、プリントエンジン177、及び二次記憶装置173を接続するバス174を含んでもよい。また、プリンタ170は、文書を印刷するアプリケーションの一部を実施することができる他のApplication Specific Integrated Circuit(ASIC)、及び/又はField Programmable Gate Array(FPGA)178を含んでもよい。一の実施形態では、DSP179は複数のコアを含んでもよい。
一部の実施形態では、プリンタ170は、二次記憶装置、又はI/Oポート175及び接続部120を用いるコンピューティングデバイス110における他のメモリにアクセスすることができてもよい。一部の実施形態では、プリンタ170は、プリンタオペレーティングシステム及び他の適当なアプリケーションソフトウェアを含むソフトウェアを実施することが可能であってもよい。一部の実施形態では、プリンタ170は、用紙の大きさ、出力トレイ、色選択及び印刷解像度を、他の選択肢との間で、ユーザにより設定可能としてもよい。
一部の実施形態では、CPU176は、汎用プロセッサ、専用プロセッサ又は内蔵プロセッサであってもよい。一の実施形態では、CPU176は、並行操作が可能なコアを備えたマルチコアプロセッサであってもよい。一部の実施形態では、マルチコアプロセッサの各々のコアは、CPU176に対して、後述の機能を独立して実行可能であってもよい。CPU176は、メモリ172及び/又はファームウェア171と制御情報及び命令をやり取りすることができる。メモリ172は、これらに限定されないものの、SDRAM又はRDRAM等のDynamic Random Access Memory(「DRAM」)のいかなる種類であってもよい。
ファームウェア171の命令としては、起動シーケンス、所定のルーチン及び他のコードに限定されないデータを保持してもよい。一部の実施形態では、ファームウェア171におけるコード及びデータは、CPU176に作用される前に、メモリ172に複製されてもよい。ファームウェア171におけるルーチンは、コンピューティングデバイス110から受信されたページ記述を変換してリスト及びイメージバンドを表示するコードを含んでもよい。一部の実施形態では、ファームウェア171は、ディスプレイリストにおけるディスプレイコマンドを適当なラスタライズされたピクセルマップに変換し、ピクセルマップをメモリ172に記憶するラスタライゼーションルーチンを含んでもよい。ファームウェア171は、圧縮ルーチン及びメモリ管理ルーチンを含んでもよい。一部の実施形態では、ファームウェア171におけるデータ及び命令はアップグレード可能であってもよい。
一部の実施形態では、CPU176は、命令及びデータに従って作動し、ASIC/FPGA178及びプリントエンジン177に制御及びデータを供給して、印刷文書を生成してもよい。一部の実施形態では、また、ASIC/FPGA178は、プリントエンジン177に制御及びデータを供給する。また、FPGA/ASIC178は、変換、圧縮、及びラスタライゼーションアルゴリズムのうちの一以上を実施してもよい。一の実施形態では、並列生成及び並行ラスタライゼーションルーチンの一部を、DSP179の複数のコアによって並行して実行してもよい。
一部の実施形態では、コンピューティングデバイス110は、文書データを第1の印刷可能データに変換してもよい。その後、第1の印刷可能データは、プリンタ170に送信され、中間印刷可能データに変換されてもよい。プリンタ170は、中間印刷可能データ印刷可能データの最終形式に変換して、この最終形式に従って印刷を行うことができる。一部の実施形態では、第1の印刷可能データは、文書のPDL記述に対応してもよい。
一部の実施形態では、文書のPDL記述から一連の低級プリンタ固有コマンドを含む最終印刷可能データへの変換処理は、オブジェクトのディスプレイリストを含む中間印刷可能データの生成を含んでもよい。一部の実施形態では、ディスプレイリストは、テキスト、グラフィクス、コマンド及び画像データオブジェクトのうちの一以上を保持することができる。一部の実施形態では、ディスプレイリスト中のオブジェクトは、ユーザ文書における同様のオブジェクトに対応してもよい。一部の実施形態では、ディスプレイリストを、中間印刷可能データの生成に役立ててもよい。
一部の実施形態では、ディスプレイリストは、メモリ172又は二次記憶装置173に記憶されてもよい。例示的な二次記憶装置173は、内部若しくは外部ハードディスク、メモリスティック、又はプリンタ170によって使用されうる他のいかなるメモリ記憶装置であってもよい。一の実施形態において、プリンタ170は、リムーバブルメディアドライブ(図示せず)を有していてもよい。一部の実施形態において、ディスプレイリストは、プリンタ170、コンピューティングデバイス110、及びサーバ130のうちの一以上に存在してもよい。ディスプレイリストを記憶するメモリは、専用メモリであってもよく、又は汎用メモリの一部を形成してもよく、又は本発明の一部の実施形態に従ったそれらいくつかの組合せであってもよい。一部の実施形態では、メモリは、必要に応じて動的に割り当てられてディスプレイリストを保持してもよい。一部の実施形態では、ディスプレイリストを記憶するために割り当てられたメモリは、処理後、動的に解放されてもよい。
図3は、ディスプレイリスト並列生成及び並行ラスタライゼーションのためのシステムの例示的な高級なアーキテクチャ300を示す。図3に示すように、言語サーバ340、エンジンサーバ360、及びラスタサーバ320−1から320−Nは、互いに通信できるようになっている。更に、言語サーバ340、エンジンサーバ360、及びラスタサーバ320−1から320−Nは、ルーチンを呼び出して、RDLライブラリ330と通信してもよい。一部の実施形態では、ラスタサーバ320−1から320−Nは、並行して動作してラスタライゼーションを実行してもよい。
また、システムは、ピクスマップコード345と、メモリ管理APを介してラスタサーバ320−1から320−N及びエンジンサーバ360と、通信するフレームバッファ管理ライブラリ335を含んでもよい。ピクスマップ(あるいはピクセルマップ)の用語は、ビット深度として存在することができるラスタイメージを表すのに用いられる。各ピクセルが1つのビットに割り当てられた(すなわち、ピクセルが「オン」又は「オフ」である)ビットマップは、ビット深度1のピクスマップである。
メモリマネージャ375は、メモリを割り当て、管理することができる。メモリマネージャ375におけるルーチンは、メモリ管理API370を用いてアクセスされうる。開示される実施形態に従って、アーキテクチャ300は、メモリプール310が、フレームバッファ350及びノンフレームバッファブロックの両者に対応するブロックを有する1つのメモリプールとして管理されるようにする。一方で、メモリマネージャ375は、ブロック内のメモリ割り当ての断片化を防ぎ、メモリ管理に関する実施の詳細を概念化し、メモリ管理Application Programming Interface(「API」)370を介して、そのルーチンにアクセスするための標準インタフェースを提供してもよい。
一方、ピクスマップコード345は、メモリマネージャ375により、メモリ管理API370及びフレームバッファ管理ライブラリ335を介して提供された機能性を活用することによって、ピクスマップにメモリプール310内の一以上の不連続なメモリブロックを占有させる一方で、ピクスマップをインテグラルユニットとして論理的に表示させる。この概念化は、ピクスマップのためのブロック及びポインタの割り当て及び割り当て解除とピクスマップに関する状態情報とを管理し、ピクスマップを利用する処理を追跡するフレームバッファ管理ライブラリ335を用いて達成される。一部の実施形態では、ピクスマップコード345は、ピクスマップのためのメモリブロックへのアクセスを可能としてもよい。各メモリブロックは、連続したメモリ部分である。メモリブロックは一以上のスキャンラインを含んでもよい。スキャンラインは、画像中の1列のピクセルである。
一部の実施形態では、フレームバッファ管理ライブラリ335は、ブロック内のメモリを割り当ててもよい。一の実施形態では、各ブロックは等しいサイズである。他の実施形態では、メモリはブロックとして、又はスーパーブロックと呼ばれる複数のブロックの整数倍として割り当てられてもよい。スーパーブロックは、一組の連続したブロックである。例えば、フレームバッファ管理ライブラリ335は、メモリをブロック、及び4つのブロックを含むスーパーブロックに割り当てることができる。スーパーブロックはより大きいピクスマップを保持するのに有用であり、また、異なる用紙のサイズ、解像度、及び方向へのサポートを容易にする。
一の実施形態では、メモリマネージャ375におけるルーチンは、メモリ172における使用可能メモリのいくつかのサブセットをメモリプール310として管理し、メモリ管理API370を介してメモリプール310からの要求処理にメモリを割り当ててもよい。要求処理にメモリが必要でなくなると、メモリは割り当て解除され、メモリプール310に戻されて、他の処理に使用可能とされてもよい。このように、例示的なメモリマネージャ375は、メモリを解放するルーチン、メモリを最適化するルーチン、及び二次記憶装置173にメモリを一時的に待避させることができるスワッピングルーチンを含む、
種々の他のメモリ管理機能をも提供することができる。
一部の実施形態では、フレームバッファ350はメモリプール310の一部とされてもよく、また、メモリマネージャ375によって管理されてもよい。例えば、フレームバッファ管理ライブラリ335における関数の要求が、メモリ管理API370における関数の要求をもたらしてもよい。その後、メモリ管理API370は、メモリマネージャ375における一以上の関数を呼び出すことができる。メモリマネージャ375による作用の効果は、呼び出し処理に送り戻されてもよい。
フレームバッファ管理ライブラリ335は、メモリマネージャ375を、メモリ管理API370において特定されたインタフェースを用いてブロック及びポインタを取得するのに用いることができる。一の実施形態では、フレームバッファ350は、メモリの初めの連続的ブロックに割り当てられ、後に続くメモリブロックは要求時にフレームバッファ350に割り当てられてもよい。メモリブロックは、メモリプール300から、他の非フレームバッファ目的で割り当てられてもよい。一部の実施形態では、フレームバッファ350又は他の処理に割り当てられた特異的なメモリブロックは、メモリ172において連続しない場所を占有してもよい。
一部の実施形態では、ディスプレイリストは、印刷文書内の原稿又はページの範囲内におけるデータオブジェクト及びそれらのコンテキストを既定するコマンドを含んでもよい。これらの表示コマンドは、文字又はテキスト、線等のグラフィックオブジェクト、及び画像又はラスタデータを含むデータを含みうる。一部の実施形態では、ディスプレイリストは動的に再構築可能であり、Reconfigurable Display List(「RDL」)と呼ばれる。
一部の実施形態では、例示的なRDLは、データオブジェクトの動的操作及び処理を促進するデータ構造に記憶されてもよい。例えば、RDLにおけるオブジェクトは、RDLにおける他のオブジェクトへのポインタを含むことができる。したがって、アプリケーションは、一つのオブジェクトから次のオブジェクトまでリストをトラバースし、オブジェクトを識別、更新、操作及び処理することができる。更に、アプリケーションは処理されたオブジェクトを追跡し、処理されている「現在の」オブジェクトを識別することが可能であってもよい。
一部の実施形態では、物理的(印刷可能な)ページは、RDLページとも呼ばれる一以上の仮想又は論理ページを含むことができる。一部の実施形態では、RDLページは、ジオメトリックバンドとも呼ばれる一以上のバンドを更に含むことができる。バンドは、RDLページのジオメトリカル境界内の幾何学的に既定された領域を参照してもよい。一部の実施形態では、各バンドは、論理ページの部分にあるオブジェクトを保持する水平区間でありうる。一部の実施形態では、RDLページは、例示的な個々のバンドデータ構造のインスタンスのリンクリストを有していてもよい。一部の実施形態では、RDLページの印刷可能領域は、RDLページに含まれるすべてのジオメトリックバンドを含むことができる。
一部の実施形態では、バンドは更に、バンド内のオブジェクトを保持する一組のRDLデータブロックを有してもよい。一部の実施形態では、RDLデータブロックは等しいサイズであってもよい。一部の実施形態では、RDLデータブロックは、中間グラフィカルオブジェクト及びPDL記述から生成された他のデータを記憶するために使用することができる。一部の実施形態では、言語サーバ340に処理のために送られたデータは、PDLデータを含んでもよく、言語サーバ340は、ラスタサーバ320−1〜320‐Nを用いて、PDL記述から中間グラフィカルオブジェクト及び他のオブジェクトを生成してもよい。一部の実施形態では、言語サーバ340により生成されたオブジェクトはRDLページを構築するのに用いられる。
一部の実施形態では、言語サーバ340によって生成されたデータ又はグラフィカルオブジェクトがバンド境界にわたる場合、オブジェクトは別々の基準バンドに記憶されてもよく、基準バンドにおけるオブジェクトの位置に対するオフセットは、特定のジオメトリックバンドにおける適切な位置に記憶される。一部の実施形態では、RDLページ又は文書において繰り返し用いられるオブジェクトも、基準バンドに記憶されうる。基準バンドは、他のバンドによって参照されるオブジェクトを含むことができる。そのため、例えば、一つの基準バンドにおける一つのオブジェクトが、他のバンドによって複数回参照されてもよい。
一部の実施形態では、言語サーバ340によって生成された基準データ又はグラフィカルオブジェクトは、より大きい複合オブジェクトの一部を含むことができる。一部の実施形態では、複合オブジェクトは、ジオメトリックバンドに用いられる前にラスタライズされる。このような複合オブジェクトは、別々のリソースバンドに記憶されてもよい。例えば、リソースバンドの項目は、より簡単なグラフィカル、画像、又はテキストプリミティブを含むことができる複合タイル又はパターンを含んでもよい。これらの複合オブジェクトは、ジオメトリックバンドに使用される前にラスタライズされる。
一の実施形態では、RDLは、特定のディスプレイリストオブジェクトを動的に操作することができる方法で記憶させるデータ構造を用いて実施される。例えば、画像オブジェクトは、適所に圧縮されてメモリの空き容量を増やし、参照及び/又は使用される際に伸張されてもよい。一部の実施形態では、RDLは、RDLオブジェクトの実際の位置へのポインタ、オフセット又はアドレスを保持することにより、RDLオブジェクトをメモリ及び/又は二次記憶装置に記憶してもよく、その後、RDLオブジェクトは、参照及び/又は使用される際に検索されることができる。一般に、RDLはディスプレイリストオブジェクトを弾力的に記憶し、システムの制約及びパラメータに基づいて操作されるようにする。
一の実施形態では、文書のPDL記述のディスプレイリスト及び/又はRDL表示への変換は、RDLライブラリ330及びメモリマネージャ375におけるルーチンを用いて言語サーバ340により実施されてもよい。例えば、言語サーバ340は、PDL言語のプリミティブを利用して、これらをデータ及びグラフィカルオブジェクトに変換し、RDLライブラリ330及びメモリマネージャ375の関数により提供される能力を用いて、これらを再構築可能なディスプレイリストに加える。一の実施形態では、ディスプレイリストは、メモリ172の一部でありうる例示的なメモリプール310等の動的に割り当てられたメモリプールにおいて記憶され、操作されてもよい。
一部の実施形態では、RDLの作成は、実際に印刷を行う前のデータ処理の中間段階である。RDLは、後続の形式に変換される前に解析されてもよい。一部の実施形態では、後続の形式は最終的な表現であって、変換処理はデータのラスタライジングと呼ばれてもよい。例えば、ラスタライゼーションは、フレームバッファ管理ライブラリ335及びピクスマップコード345のルーチンを用いて、ラスタサーバ320−1〜320−Nにより並行して実行されうる。ラスタライゼーションにおいて、ラスタライズされたデータは、メモリ管理API370を介してアクセスされうるメモリマネージャ375のルーチンを用いて、メモリプール310の一部でありうるフレームバッファ350に記憶されてもよい。一の実施形態において、ラスタライズされたデータは、印刷ページ上に作成される点を特定するビットマップ又はピクスマップの形式をとることができる。
RDLページのバンドは、一以上のラスタサーバ320−1〜320−Nにより並行してラスタライズされうる。一部の実施形態では、RDLページにおけるバンドは、すべてのバンドが処理されるまで並行してラスタライズされうる。一部の実施形態では、バンドに対するラスタライザにすべてのオブジェクトが提供されるまで、シリアルブロック単位(block−by−block)方法により、そのバンドがラスタライズされてもよい。一部の実施形態では、ラスタライゼーションを実行する並行処理は、制御及び同期情報を提供できる少なくとも一つのマスタ処理の制御下で動作する、スレーブ処理でありうる。例えば、ラスタサーバ320−1は、ラスタサーバ320−2が異なるバンドの異なるブロックで作動している間、あるバンドのあるブロックで動作することができる。一部の実施形態では、ラスタサーバ320−1から320−Nは、CPU176又はDSP179の種々のコア間に配分されることができる。
更なる実施形態において、複数の完成RDLページは、任意の時点でシステム中に存在しうる。これらは、ラスタライゼーション処理が完了していないRDLページを含みうる。一部の実施形態では、RDLページは、それらの生成順にラスタライズされる必要はない。ラスタライゼーションが完了した後、エンジンサーバ360は、RDLライブラリ330におけるルーチンを呼び出してメモリからRDLページを削除し、そのRDLページにより使用されていたメモリをメモリプール310に解放してもよい。
一の実施形態では、複数のラスタライゼーション処理が一つのRDLページに対するディスプレイリストの異なる部分を同時にラスタライズしてもよい。例えば、マスタ−スレーブ環境において、並行スレーブ処理の各々は、ラスタライズするバンドを割り当てられることができる。一部の実施形態では、各スレーブ処理に割り当てられたバンドは異なってもよい。
一部の実施形態では、ラスタライゼーションは、言語サーバ340によってブロックが埋められ、又は完成したときに生じてもよい。その後、言語サーバ340は、第1ブロックのラスタライゼーションと並行して追加のブロックを作成してもよい。異なるバンドに対する第2のブロックが完成したときに、現在進行中の他のブロックのラスタライゼーション又は生成処理と並行して、第2のブロックに対するラスタライゼーションを開始してもよい。異なるバンドに対する、並行して完成した追加的ブロックも、現在ラスタライズされている他のブロックと並行してラスタライズされうる。一部の実施形態では、並行して行われるラスタライゼーション処理は、マルチコアCPU176又はマルチコアDSP179の異なるコア上で実行されてもよい。
一部の実施形態では、並行ラスタライゼーション処理は、ラスタサーバ320−1〜320−Nの一部であってもよい。一の実施形態では、並行ラスタライゼーションルーチンは、異なるバンドに対応する特異的な個別のブロックにおいて動作してもよい。一部の実施形態では、バンドがラスタライズされる順番は順次的でなくてもよい。一の実施形態では、並行ラスタライゼーションルーチンは、マスタラスタライゼーション処理の制御下におけるスレーブ処理であってもよい。例えば、マスタ処理は、RDLの作成及び削除を制御しうる。一部の実施形態では、ラスタライゼーションルーチンは、バンド内のブロックが連続的に順番に処理される一方で、特異的なバンドにおけるブロックで並行して動作してもよい。一の実施形態では、ラスタサーバ320−1〜320−Nは、RDLライブラリ330及びピクスマップコード345のルーチンをも使用してそれらの関数を実行することができる。例えば、ピクスマップコード345のルーチンは、ラスタサーバ320−1〜320−Nに、並行ラスタライゼーションを支援するピクスマップルーチンへのアクセスを与えてもよい。
例示的なエンジンサーバ360は、文書印刷のため、ピクスマップのデータを処理することができる。一部の実施形態では、エンジンサーバ360は、プリントエンジン177に制御情報、命令及びデータを提供しうる。一部の実施形態では、エンジンサーバ360は、処理の後、フレームバッファオブジェクトによって用いられたメモリを解放させるルーチンを呼び出してもよい。一部の実施形態では、メモリプール310及び/又はフレームバッファ350の一部は、メモリ172又は二次記憶装置173に存在してもよい。一部の実施形態では、言語サーバ340、ラスタサーバ320−1〜320−N及びエンジンサーバ360に対するルーチンは、ファームウェア171で提供されてもよく、又はASIC/FPGA178を用いて実行されてもよい。
プリントエンジン177は、フレームバッファ350におけるラスタライズデータを処理し、フレームバッファライブラリ335のルーチンを使用して、紙等の印刷媒体にページの印刷可能画像を形成することができる。一の実施形態では、エンジンサーバ360は、RDLライブラリ330及びピクスマップコード345のルーチンを使用することもできる。例えば、ピクスマップコード345におけるルーチンは、一以上の色平面成分及びアルファ平面成分を含む最終的なピクスマップが、エンジンサーバ360を介してプリントエンジン177に使用されることを可能としてもよい。
図4は、完成したRDLページ400の例示的な構造を示す。図4に示すように、例示的なRDLページ400は、一連の描画可能(drawable)バンド410−0〜410−Nを含んでいる。一部の実施形態では、描画可能バンドはRDLデータブロック440を含みうる。RDLデータブロック440は、メモリプール310からの、メモリマネージャ375によって管理されるブロックに対応する一連の等しいサイズのメモリブロックを含みうる。例示的なRDLページ400は、一以上の基準バンド420を含んでもよい。図4に示すように、例示的なRDLページ400は、基準バンド420−1及び420−2並びにリソースバンド430を含みうる。
前述のように、基準バンド420は、リソースバンド430が従来の描画可能バンド410で使用可能とされる前に特別な処理を必要とする異なった描画可能バンドを超えて使用される複合オブジェクトを保持する一方で、バンド境界にわたるオブジェクト及びバンドを超えて繰り返し使用されるオブジェクトを記憶することが可能である。従来の方法では、ラスタライゼーションは、ページ400が完成したときに開始可能であった。したがって、従来の方法では、CPU176におけるいくつかのコアは、言語サーバ340によるページ処理が完了するまで、アイドル状態となる可能性があった。
図5は、本明細書に開示される実施形態に適合する例示的な未完成RDLの並列生成及び並行ラスタライゼーションを示すブロック図500である。図5に示すように、RDLは、バンド410−0から410−2、及び様々な完成状態の複数のRDLブロック440を含んでいる。図5に示すRDLは、言語サーバ340によって構築されている。バンド410−0は、RDLブロック440−0及び440−0を含む。RDLブロック440‐0は、ブロック全体を塗りつぶす網掛けパターンで示しているように、完成している。RDLブロック440‐0は、ブロックを部分的に塗りつぶす網掛けパターンで示しているように、言語サーバ340によって構築されているところである。同様に、RDLブロック440‐2の構築が既に言語サーバ340によって完了しているのに対し、RDLブロック440‐1の構築は途中である。
一部の実施形態では、描画可能バンド410における第1のRDLブロック440がいっぱいになるとすぐに、ラスタライゼーションを開始することができる。一部の実施形態では、CPU176又はDSP179のコア上で動くラスタライゼーションルーチンは、完成RDLブロック440の処理を開始してもよい。一部の実施形態では、完成RDLブロック440は、使用可能なスレーブラスタライゼーション処理520によって処理又は消費されうる。この間、言語サーバ340は、RDLページへのディスプレイリストの投入を継続してもよい。異なるバンド410におけるRDLブロック440がいっぱいになると、RDLブロック440は、他の使用可能なスレーブラスタライゼーション処理520によって処理されることができる。
スレーブラスタライゼーション処理520がRDLブロック440のラスタライゼーションを完了すると、RDLブロック440は解放され、メモリプール310に戻されることができる。この処理は、使用可能なスレーブを用いて、すべての完成ブロックに対して繰り返されうる。一部の実施形態では、スレーブラスタライゼーション処理520は、RDLブロック440のラスタライゼーションを完了したときに、使用可能であることを示してもよい。一部の実施形態では、スレーブラスタライゼーション処理520は、RDLブロック440のラスタライゼーションを開始したときに、利用不可能であることを示してもよい。一部の実施形態では、各スレーブラスタライゼーション処理520は、CPU176及び/又はDSP179の異なるコア上で動作してもよい。一部の実施形態では、この処理は、コンピューティングデバイス110におけるマルチコアCPU上で動作してもよい。
図5に示すように、スレーブラスタライゼーション処理520−0は、RDLブロック440−1のラスタライジングを開始しており、バンド410−0に対応するピクスマップ510−0の生成を開始している。同時に、言語サーバがRDLブロック440‐1及び440‐0の作成を継続する一方で、スレーブラスタライゼーション処理520‐1は新たに完成したRDLブロック440‐2のラスタライゼーションを開始している。一の実施形態では、スレーブラスタライゼーション処理520‐0は、ラスタサーバ320‐1〜320‐Nの一部として実施されうる。一の実施形態では、RDLは既にレンダリングされたブロック440の経過を追うのにも用いられる。一部の実施形態では、マスタラスタライゼーション処理又はページ管理タスク(「PMT」)は、使用可能なスレーブの経過を追うことが可能である。
基準オブジェクト及び属性オブジェクトを保持することができるRDL基準バンド420のいずれも、RDLブロック440を蓄積し続けることができる。RDLブロック440における基準バンド420のデータは、ページの期間を通して参照され、使用されうる。したがって、いくつかの実施形態では、基準バンドのRDLブロック440におけるデータは、RDLページのラスタライゼーションの間、複数回ラスタライズされてもよい。描画可能バンド410が連続的にラスタライズされるため、メモリプール310の大半の部分が使用可能であり、RDLブロックが二次記憶装置173にスワップされ又は適所に圧縮される機会が少なくなる。メモリが利用できない場合、言語サーバ340は、消費ブロックが解放されるのを待機するか、基準バンド420を削除するか、又はメモリマネージャ375を呼び出してメモリ最適化方策をとってもよい。削除された基準バンド420はいずれも、後で再生されることができる。
一部の実施形態では、リソースバンド430は、一つの複合オブジェクトに対するディスプレイリストが生成されるとすぐにラスタライズされてもよい。一部の実施形態では、リソースバンド430における基準複合オブジェクトが完全に処理されるまで、基準リソースバンド430の処理は保留とされうる。
一部の実施形態では、開示された並行ラスタライゼーションスキームは、コア上で追加的なスレーブラスタライゼーション処理510をスケジューリングすることによって、使用可能なプロセッサコアを使用することができる。したがって、ラスタライゼーション処理は、効率的にパイプラインされ、これによりページが作成されているときに、ページが段階的に(完成RDLブロック440に対応する)レンダリングされることができる。したがって、言語サーバ340がRDLページを生成したときに、スレーブラスタライゼーション処理520によって、ページの大部分が既にラスタライズされているようになる。したがって、その後、ページ全体のラスタライゼーションを短時間で完了することができる。
本発明の他の実施形態は、明細書の検討及びここに開示される発明の一以上の実施形態の実施により、当業者において明らかになるであろう。明細書及び実施例は例示的なものにすぎないと解釈されることが意図されており、本発明の真の範囲及び趣旨は特許請求の範囲によって示されている。


Claims (25)

  1. フレームバッファメモリ及びディスプレイリストメモリを有するメモリプールにおける少なくとも1つのディスプレイリストの並列生成及び並行ラスタライゼーションのための方法であって、前記ディスプレイリストは、バンドより小さいサイズで、等しいサイズのディスプレイリストブロックに関連する複数のバンドを含んでおり、
    前記ディスプレイリストブロックの完成状況を監視する工程と、
    ラスタライゼーション処理の可用性を監視する工程と、
    前記ディスプレイリストブロックが完成したときに、当該完成ディスプレイリストブロックを使用可能なラスタライゼーション処理に割り当てる工程と、
    前記使用可能なラスタライゼーション処理を使用して前記ディスプレイリストブロック をラスタライズする工程と、を含むことを特徴とする方法。
  2. フレームバッファメモリ及びディスプレイリストメモリを有するメモリプールにおける少なくとも1つのディスプレイリストの並列生成及び並行ラスタライゼーションのための、マルチコアプロセッサにおいて実行される方法であって、前記ディスプレイリストは、等しいサイズのディスプレイリストブロックに関連する複数のバンドを含んでおり、
    前記ディスプレイリストブロックの完成状況を監視する工程と、
    ラスタライゼーション処理の可用性を監視する工程と、
    完成ディスプレイリストブロックを使用可能なラスタライゼーション処理に割り当てる工程と、
    前記使用可能なラスタライゼーション処理を使用して前記ディスプレイリストブロック をラスタライズする工程と、を含み、
    前記ラスタライゼーション処理は、同時に実行される他のラスタライゼーション処理に対して異なる前記マルチコアプロセッサのコアで実行され、
    前記同時に実行されるラスタライゼーション処理の各々は、異なるディスプレイリストブロックに作用し、前記ディスプレイリストブロックの各々は異なるバンドに対応することを特徴とする方法。
  3. 前記方法はマルチコアプロセッサにおいて実行されることを特徴とする請求項1に記載の方法。
  4. 前記ラスタライゼーション処理は、同時に実行される他のラスタライゼーション処理に対して異なる前記マルチコアプロセッサのコアで実行されることを特徴とする請求項に記載の方法。
  5. 前記同時に実行されるラスタライゼーション処理の各々は、異なるディスプレイリストブロックに作用し、前記ディスプレイリストブロックの各々は異なるバンドに対応することを特徴とする請求項に記載の方法。
  6. 前記マルチコアプロセッサはプリンタに接続されていることを特徴とする請求項2〜5のいずれか一項に記載の方法。
  7. 前記マルチコアプロセッサはデジタルシグナルプロセッサであることを特徴とする請求項2〜6のいずれか一項に記載の方法。
  8. 前記ディスプレイリストブロックをラスタライズする工程は、
    前記ディスプレイリストブロックがレンダリングされたことを示す工程と、
    前記ディスプレイリストブロックを前記メモリプールに戻す工程と、
    前記ラスタライゼーション処理の可用性を示す工程と、
    を更に含むことを特徴とする請求項1〜7のいずれか一項に記載の方法。
  9. レンダリングされた前記ディスプレイリストブロックを、前記メモリプールの前記ディスプレイリストに関連するピクスマップに格納する工程を更に有することを特徴とする請求項に記載の方法。
  10. 前記ピクスマップは不連続メモリブロックを含むことを特徴とする請求項に記載の方法。
  11. 前記使用可能なラスタライゼーション処理は、それ以前から実行されているラスタライゼーション処理と同時に実行されることを特徴とする請求項1〜10のいずれか一項に記載の方法。
  12. 前記ラスタライゼーション処理は、マスタラスタライゼーション処理の制御下におけるスレーブ処理であることを特徴とする請求項1〜11のいずれか一項に記載の方法。
  13. 前記完成ディスプレイリストブロックを使用可能なラスタライゼーション処理に割り当
    てる工程は、前記ラスタライゼーション処理の非可用性を示す工程を更に含むことを特徴とする請求項1〜12のいずれか一項に記載の方法。
  14. 前記使用可能なラスタライゼーション処理を使用して前記ディスプレイリストブロックをラスタライズする工程は、ディスプレイリストブロックの生成と同時に行われることを特徴とする請求項1〜13のいずれか一項に記載の方法。
  15. プロセッサにより実行される際に、
    フレームバッファメモリ及びディスプレイリストメモリを有するメモリプールにおける少なくとも1つのディスプレイリストの並列生成及び並行ラスタライゼーションのための方法の手順を実行させる命令を含むコンピュータにより読取可能な媒体であって、前記ディスプレイリストは、バンドより小さいサイズで、等しいサイズのディスプレイリストブロックに関連する複数のバンドを含
    前記方法は、
    前記ディスプレイリストブロックの完成状況を監視する手順と、
    ラスタライゼーション処理の可用性を監視する手順と、
    前記ディスプレイリストブロックが完成したときに、当該完成ディスプレイリストブロックを使用可能なラスタライゼーション処理に割り当てる手順と、
    前記使用可能なラスタライゼーション処理を使用して前記ディスプレイリストブロックをラスタライズする手順と、
    を含むことを特徴とするコンピュータにより読取可能な媒体。
  16. マルチコアプロセッサにより実行される際に、
    フレームバッファメモリ及びディスプレイリストメモリを有するメモリプールにおける少なくとも1つのディスプレイリストの並列生成及び並行ラスタライゼーションのための方法の手順を実行させる命令を含むコンピュータにより読取可能な媒体であって、前記ディスプレイリストは、等しいサイズのディスプレイリストブロックに関連する複数のバンドを含み、
    前記方法は、
    前記ディスプレイリストブロックの完成状況を監視する手順と、
    ラスタライゼーション処理の可用性を監視する手順と、
    完成ディスプレイリストブロックを使用可能なラスタライゼーション処理に割り当てる手順と、
    前記使用可能なラスタライゼーション処理を使用して前記ディスプレイリストブロックをラスタライズする手順と、を含み、
    前記ラスタライゼーション処理は、同時に実行される他のラスタライゼーション処理に対して異なる前記マルチコアプロセッサのコアで実行され、
    前記同時に実行されるラスタライゼーション処理の各々は、異なるディスプレイリストブロックに作用し、前記ディスプレイリストブロックの各々は異なるバンドに対応することを特徴とするコンピュータにより読取可能な媒体。
  17. 前記手順はマルチコアプロセッサにおいて実行されることを特徴とする請求項1に記載のコンピュータにより読取可能な媒体。
  18. 前記ラスタライゼーション処理は、同時に実行される他のラスタライゼーション処理に対して異なる前記マルチコアプロセッサのコアで実行されることを特徴とする請求項1に記載のコンピュータにより読取可能な媒体。
  19. 前記同時に実行されるラスタライゼーション処理の各々は、異なるディスプレイリストブロックに作用し、前記ディスプレイリストブロックの各々は異なるバンドに対応することを特徴とする請求項18に記載のコンピュータにより読取可能な媒体。
  20. 前記ディスプレイリストブロックをラスタライズする手順は、
    前記ディスプレイリストブロックがレンダリングされたことを示す手順と、
    前記ディスプレイリストブロックを前記メモリプールに戻す手順と、
    前記ラスタライゼーション処理の可用性を示す手順と、
    を更に含むことを特徴とする請求項15〜19のいずれか一項に記載のコンピュータにより読取可能な媒体。
  21. レンダリングされた前記ディスプレイリストブロックを、前記メモリプールの前記ディスプレイリストに関連するピクスマップに格納する手順を更に含むことを特徴とする請求項20に記載のコンピュータにより読取可能な媒体。
  22. 前記ピクスマップは不連続メモリブロックを含むことを特徴とする請求項21に記載のコンピュータにより読取可能な媒体。
  23. 前記使用可能なラスタライゼーション処理は、それ以前から実行されているラスタライゼーション処理と同時に実行されることを特徴とする請求項15〜22のいずれか一項に記載のコンピュータにより読取可能な媒体。
  24. 前記完成ディスプレイリストブロックを使用可能なラスタライゼーション処理に割り当てる手順は、前記ラスタライゼーション処理の非可用性を示す手順を更に含むことを特徴
    とする請求項15〜23のいずれか一項に記載のコンピュータにより読取可能な媒体。
  25. 前記使用可能なラスタライゼーション処理を使用して前記ディスプレイリストブロックをラスタライズする手順は、ディスプレイリストブロックの生成と同時に行われることを特徴とする請求項15〜24のいずれか一項に記載のコンピュータにより読取可能な媒体。
JP2009222772A 2008-09-30 2009-09-28 ディスプレイリストの並列生成及び並行ラスタライゼーションのための方法及びコンピュータにより読取可能な媒体 Expired - Fee Related JP5437754B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/242,668 US8861014B2 (en) 2008-09-30 2008-09-30 Systems and methods for optimized printer throughput in a multi-core environment
US12/242,668 2008-09-30

Publications (2)

Publication Number Publication Date
JP2010092472A JP2010092472A (ja) 2010-04-22
JP5437754B2 true JP5437754B2 (ja) 2014-03-12

Family

ID=42057153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009222772A Expired - Fee Related JP5437754B2 (ja) 2008-09-30 2009-09-28 ディスプレイリストの並列生成及び並行ラスタライゼーションのための方法及びコンピュータにより読取可能な媒体

Country Status (2)

Country Link
US (1) US8861014B2 (ja)
JP (1) JP5437754B2 (ja)

Families Citing this family (17)

* 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
US8228555B2 (en) * 2008-03-31 2012-07-24 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for parallel display list 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
JP5716367B2 (ja) * 2010-12-01 2015-05-13 コニカミノルタ株式会社 印刷データ生成装置及び印刷データ生成方法
JP5640813B2 (ja) * 2011-02-24 2014-12-17 コニカミノルタ株式会社 画像処理コントローラ、画像処理システム、画像処理コントローラまたは画像処理システム用プログラム、記録媒体、および画像処理方法
JP2014530436A (ja) * 2011-09-30 2014-11-17 インテル コーポレイション プリンタと印刷クライアントデバイスとの間の安全な印刷
CN103842956B (zh) 2011-09-30 2018-02-23 英特尔公司 打印机和打印客户机设备之间的安全打印
CN102555550B (zh) * 2011-12-30 2014-04-16 浙江大学 一种基于多核处理器的高速印花机图像数据旋转处理系统及方法
CN102591602B (zh) * 2011-12-30 2014-07-09 浙江大学 一种基于多核处理器的高速数码印花处理系统及方法
EP2827285B1 (en) * 2013-07-15 2019-05-22 Xeikon Manufacturing NV Image processing system and method
US9448982B2 (en) * 2014-01-29 2016-09-20 Konica Minolta Laboratory U.S.A., Inc. Immediate independent rasterization
AU2014265139A1 (en) 2014-11-24 2016-06-09 Canon Kabushiki Kaisha Method, system and apparatus for rendering a document
US20160358052A1 (en) * 2015-06-05 2016-12-08 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
JP6385406B2 (ja) * 2016-09-21 2018-09-05 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
US10475153B1 (en) 2018-07-25 2019-11-12 Kyocera Document Solutions Inc. Apparatus and computer program products for object rendering method that renders object efficiently using a plurality of processor cores

Family Cites Families (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4782398A (en) * 1986-02-14 1988-11-01 Canon Kabushiki Kaisha Image processing apparatus
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
JP2797400B2 (ja) 1989-04-18 1998-09-17 富士ゼロックス株式会社 データ表示制御装置
JP3116354B2 (ja) * 1989-09-29 2000-12-11 ミノルタ株式会社 プリンタデータ管理方式
US5041920A (en) * 1989-11-15 1991-08-20 Xerox Corporation Image halftone generation by static RAM look-up table
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
US6092171A (en) * 1991-09-16 2000-07-18 Advanced Micro Devices, Inc. System and method for using a memory management unit to reduce memory requirements
US5477257A (en) * 1991-11-11 1995-12-19 Matsushita Electric Industrial Co., Ltd. Image forming method and apparatus using rotated screen with pulse width modulation
JPH05244371A (ja) * 1992-02-27 1993-09-21 Canon Inc 記録装置および方法
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
JPH06149757A (ja) * 1992-11-10 1994-05-31 Hitachi Ltd 並列処理装置
US5542031A (en) * 1993-04-30 1996-07-30 Douglass; Clay S. Halftone computer imager
US5646670A (en) * 1993-08-31 1997-07-08 Canon Kabushiki Kaisha Color image forming apparatus which reduces toner consumption during image formation
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
JP3727962B2 (ja) 1994-11-01 2005-12-21 キヤノン株式会社 印刷装置及び印刷方法
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
JP3610528B2 (ja) 1995-01-24 2005-01-12 ブラザー工業株式会社 メモリ管理方法及び装置
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
JP3466808B2 (ja) * 1996-02-29 2003-11-17 キヤノン株式会社 画像処理装置及び方法
US5946334A (en) * 1996-03-27 1999-08-31 Ricoh Company, Inc. Semiconductor laser control system
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
JP3156605B2 (ja) * 1996-11-19 2001-04-16 セイコーエプソン株式会社 トナー転写式の印刷装置のためのパルス幅データの生成装置及び方法
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
US6178036B1 (en) 1997-01-14 2001-01-23 California Institute Of Technology Opto-electronic devices and systems based on brillouin selective sideband amplification
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
US6252675B1 (en) * 1998-05-08 2001-06-26 Xerox Corporation Apparatus and method for halftone hybrid screen generation
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
US20020063894A1 (en) * 1998-08-28 2002-05-30 Russell Campbell Conservation of printer memory on the composition page
US20020093669A1 (en) * 1998-08-28 2002-07-18 Russell Campbell Complexity extensions for band management in a printer page pipe
JP3620310B2 (ja) * 1998-10-16 2005-02-16 富士ゼロックス株式会社 パルス発生装置および画像記録装置
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
JP2000141811A (ja) 1998-11-11 2000-05-23 Nec Corp プリンタシステム
US6707563B1 (en) * 1999-01-11 2004-03-16 T/R Systems Multiple print engine with error handling capability
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
JP3983449B2 (ja) * 1999-10-15 2007-09-26 株式会社リコー パルス幅変調回路、光書き込み装置及び画像形成装置
US7111190B2 (en) * 2001-02-23 2006-09-19 Intel Corporation Method and apparatus for reconfigurable memory
US6326993B1 (en) * 2000-03-15 2001-12-04 Toshiba Tec Kabushiki Kaisha Pulse width modulation system and image forming apparatus having the pulse width modulation system
US7064859B1 (en) * 2000-03-27 2006-06-20 International Business Machines Corporation Method, system, program, and data structure for producing a look-up table to enhance print quality
US6879416B2 (en) * 2000-04-27 2005-04-12 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium
JP2001350439A (ja) * 2000-06-06 2001-12-21 Sony Corp 変調回路およびこれを用いた画像表示装置
DE60127253T2 (de) * 2000-06-08 2007-11-22 Imagination Technologies Ltd., Kings Langley Bildkachelung und -kompression für die 3D-Bilddarstellung
JP3985437B2 (ja) * 2000-08-03 2007-10-03 セイコーエプソン株式会社 電子写真の画像形成装置及びその画像形成プログラム製品
US7031025B1 (en) * 2000-08-23 2006-04-18 Hewlett-Packard Development Company, L.P. Combined dot density and dot size modulation
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
JP2002103697A (ja) * 2000-10-04 2002-04-09 Fuji Xerox Co Ltd 画像処理装置
US20020097417A1 (en) * 2001-01-19 2002-07-25 Chang William Ho System for universal data output
JP2002267963A (ja) * 2001-03-07 2002-09-18 Ricoh Co Ltd 画像形成装置
EP1241869B1 (en) * 2001-03-14 2010-08-11 Ricoh Company, Ltd. Light-emission modulation having effective scheme of creating gray scale on image
US6643759B2 (en) * 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
JP2003011440A (ja) 2001-07-03 2003-01-15 Ricoh Co Ltd 画像形成装置、コンピュータプログラム及び記録媒体
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
US20030120930A1 (en) * 2001-12-21 2003-06-26 Simpson Shell S. Document notarization system and method
US7038671B2 (en) * 2002-02-22 2006-05-02 Intel Corporation Digitally driving pixels from pulse width modulated waveforms
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
US7069396B2 (en) 2002-06-27 2006-06-27 Hewlett-Packard Development Company, L.P. Deferred memory allocation for application threads
JP2004038527A (ja) 2002-07-03 2004-02-05 Canon Inc プリンタドライバおよび印刷制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラム
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
US20040098544A1 (en) * 2002-11-15 2004-05-20 Gaither Blaine D. Method and apparatus for managing a memory system
US20040120007A1 (en) * 2002-12-19 2004-06-24 Jacobsen Dana A. Method and apparatus for forming a display list
US7280246B2 (en) * 2003-02-12 2007-10-09 Marvell International Technology Ltd. Laser print apparatus that generates pulse width value and justification value based on pixels in a multi-bit image
JP4144395B2 (ja) * 2003-03-25 2008-09-03 ブラザー工業株式会社 画像処理装置およびそれを備えた画像形成装置
US7589851B2 (en) * 2003-04-02 2009-09-15 Agfa Graphics Nv System for job control of a document processing system and method for job control of document processing process
JP2005065043A (ja) * 2003-08-18 2005-03-10 Minolta Co Ltd データ処理装置
JP2005073004A (ja) 2003-08-26 2005-03-17 Konica Minolta Business Technologies Inc フレームバッファ管理方法及びフレームバッファ管理装置
US7583397B2 (en) * 2003-09-30 2009-09-01 Canon Kabushiki Kaisha Method for generating a display list
US7284107B2 (en) 2004-04-30 2007-10-16 Microsoft Corporation Special-use heaps
JP4563737B2 (ja) * 2004-07-02 2010-10-13 ルネサスエレクトロニクス株式会社 パルス幅変調回路
US7747834B2 (en) * 2004-09-30 2010-06-29 Kyocera Wireless Corp. Memory manager for an embedded system
US20060077669A1 (en) * 2004-10-07 2006-04-13 Robbie Thielemans Display element and mechanical mounting interface used therein
JP4053545B2 (ja) 2005-01-11 2008-02-27 株式会社ルネサステクノロジ グラフィックスプロセッサおよび図形処理装置
US7669769B2 (en) * 2005-03-28 2010-03-02 Konica Minolta Systems Laboratory, Inc. Systems and methods for preserving and maintaining document integrity
JP4484770B2 (ja) 2005-06-09 2010-06-16 キヤノン株式会社 画像処理装置およびその方法
US7437529B2 (en) * 2005-06-16 2008-10-14 International Business Machines Corporation Method and mechanism for efficiently creating large virtual memory pages in a multiple page size environment
JP2007087137A (ja) * 2005-09-22 2007-04-05 Canon Inc 印刷制御装置、画像形成方法および記憶媒体
JP2007156613A (ja) * 2005-12-01 2007-06-21 Canon Inc 描画制御装置、描画制御方法、記憶媒体およびプログラム
US7782442B2 (en) * 2005-12-06 2010-08-24 Nikon Corporation Exposure apparatus, exposure method, projection optical system and device producing method
JP4281738B2 (ja) * 2005-12-26 2009-06-17 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、画像形成方法及びプログラム
US7447836B2 (en) * 2006-02-14 2008-11-04 Software Site Applications, Limited Liability Company Disk drive storage defragmentation system
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US7428075B2 (en) * 2006-06-30 2008-09-23 Konica Minolta Systems Laboratory, Inc. Circuitry to support justification of PWM pixels
US7907303B2 (en) * 2006-06-30 2011-03-15 Konica Minolta Systems Laboratory, Inc. Systems and methods for processing pixel data for a printer
US20080002229A1 (en) * 2006-06-30 2008-01-03 Konica Minolta Systems Laboratory, Inc. Systems and method for saving memory on screen
US7957025B2 (en) * 2006-06-30 2011-06-07 Konica Minolta Systems Laboratory, Inc. Systems and methods for processing pixel data for a printer
US7822115B2 (en) * 2006-06-30 2010-10-26 Konica Minolta Systems Laboratory, Inc. Systems for generating a pulse width modulated signal
US7619644B2 (en) * 2006-06-30 2009-11-17 Konica Minolta Systems Laboratory, Inc. Method and apparatus for image alignment
US20090086254A1 (en) * 2007-09-28 2009-04-02 Mike Hy Duong Systems and Methods for Dynamic Printer Configuration
EP2075698A1 (en) * 2007-12-28 2009-07-01 Software AG Method and system for allocating memory in a broker system
US8228555B2 (en) * 2008-03-31 2012-07-24 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for parallel display list rasterization
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

Also Published As

Publication number Publication date
US8861014B2 (en) 2014-10-14
US20100079809A1 (en) 2010-04-01
JP2010092472A (ja) 2010-04-22

Similar Documents

Publication Publication Date Title
JP5437754B2 (ja) ディスプレイリストの並列生成及び並行ラスタライゼーションのための方法及びコンピュータにより読取可能な媒体
JP5475307B2 (ja) ラスタ化のためのメモリマネージメント方法、コンピュータ可読媒体及び装置
US8526049B2 (en) Systems and methods for display list management
JP5226581B2 (ja) ディスプレイリストの並行ラスタ化のための方法、コンピュータ可読媒体及びコンピュータ可読メモリ
JP3872558B2 (ja) メモリ削減技法を使用したページ生成のためのフォールバック処理
US8854680B2 (en) Systems and methods for optimal memory allocation units
JP5238526B2 (ja) 印刷リソース管理のためのシステム及び方法
US7602391B2 (en) Image processing device, method, and storage medium which stores a program
JP5051327B1 (ja) 画像処理装置及びプログラム
US8817032B2 (en) Systems and methods for framebuffer management
JP2005352699A (ja) 情報処理装置、並びに、その制御方法および情報処理方法
US8928914B2 (en) Image processing apparatus, information processing method, and storage medium
JP2009282964A (ja) 印刷データをレンダリングするシステム、方法及びコンピュータ可読媒体
JP2017098918A (ja) 画像処理装置、画像処理装置の制御方法。
JP4964219B2 (ja) 画像処理装置、方法及びプログラム
JP2010111099A (ja) 画像処理装置およびその制御方法
US8782094B2 (en) Systems and methods for managing data in complex containers
JP5251995B2 (ja) 画像データ生成装置、画像形成装置およびプログラム
JP4367745B2 (ja) 画像描画処理装置及び画像処理システム
JP6078954B2 (ja) 画像処理装置
JP2008139968A (ja) 画像処理装置及びプログラム
JP5252116B2 (ja) 画像データ生成装置
JP2011136425A (ja) 印刷装置、印刷方法及びプログラム
JP2011258232A (ja) 画像処理装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120809

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130912

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: 20131112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131212

R150 Certificate of patent or registration of utility model

Ref document number: 5437754

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees