中間フィル(fill)を複数のオブジェクトと関連付ける方法、装置及びシステム
【課題】既存の構成の1つ以上の欠点を実質的に克服するか、或いは少なくとも改善する。
【解決手段】共用フィルを複数のオブジェクトと関連付ける方法が開示される。各オブジェクトはフィルと関連付けられる。共用フィルのバウンディング領域は、複数のオブジェクトの第1のオブジェクトのフィルに基づいて判定される。第1のオブジェクトは共用フィルと関連付けられる。第2のオブジェクトが受信され、(a)第2のオブジェクトのフィルがバウンディング領域内に含まれ、(b)第2のオブジェクトのフィルが第1のオブジェクトのフィルとオーバラップしていない場合に共用フィルは第2のオブジェクトのフィルに基づいて更新される。第2のオブジェクトは更新された共用フィルと関連付けられる。更新された共用フィルは、第1のオブジェクト及び第2のオブジェクトにより共用される。
【解決手段】共用フィルを複数のオブジェクトと関連付ける方法が開示される。各オブジェクトはフィルと関連付けられる。共用フィルのバウンディング領域は、複数のオブジェクトの第1のオブジェクトのフィルに基づいて判定される。第1のオブジェクトは共用フィルと関連付けられる。第2のオブジェクトが受信され、(a)第2のオブジェクトのフィルがバウンディング領域内に含まれ、(b)第2のオブジェクトのフィルが第1のオブジェクトのフィルとオーバラップしていない場合に共用フィルは第2のオブジェクトのフィルに基づいて更新される。第2のオブジェクトは更新された共用フィルと関連付けられる。更新された共用フィルは、第1のオブジェクト及び第2のオブジェクトにより共用される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に画像処理に関し、特に、複雑なディスプレイリストのメモリ使用量を減少する方法及び装置に関する。更に本発明は、中間フィルを複数のオブジェクトと関連付けるコンピュータプログラムを記録している媒体に関する。
【背景技術】
【0002】
1つ以上のページから構成されてもよく、且つ、プリンタ上に印刷される印刷ジョブは、一般にPostScript(登録商標)又はAdobe(登録商標)のPDF、或いはHP(登録商標)のPCL等のページ記述言語(PDL)を利用する形式でプリンタに送出される。一般的なページ記述言語プリンタにおいて、ページ記述入力は、ハイレベルなグラフィックスオブジェクトに変換される。一般に各グラフィックスオブジェクトは、多数のグラフィックス要素からなり、各グラフィック要素は、通常オブジェクトがページ上でアクティブな場所を示すパスデータ、オブジェクトの色を示すフィルデータ及びオブジェクトが以下のあらゆるオブジェクトと対話する方法を示す合成データを含む。グラフィックス要素は、ディスプレイリストとして既知である中間形式で格納される。その後、完成したディスプレイリストは、プリンタエンジン宛ての画素データのページにレンダリングするレンダラに送出される。
【0003】
一般的な種類のフィルは、単一色、ビットマップ、並びに線形シェーディング及びラジアルシェーディングである。ビットマップフィルは、一般に、ソース座標系で規定されるソースビットマップデータ及びソース座標系と出力ページ座標系との間でマッピングするアフィン変換から構成される。
【0004】
ジョブは、各々がパス及び個々のビットマップフィルを参照する非常に多数のグラフィックスオブジェクトを潜在的に含んでもよい。この場合、ディスプレイリストを格納するのに必要とされるメモリは、全ジョブメモリのかなりの部分を占める。メモリが多大なコストを示すため、レンダリングされたページの品質を大幅に低下することなく、ディスプレイリストにより使用されるメモリを減少することが望ましい。
【0005】
ディスプレイリストメモリを減少する1つの既知の方法は、ディスプレイリストをフィルマップとして既知である中間形式に変換する方法である。フィルマップは、非オーバラッピング領域から構成される。各領域は、所定の領域においてアクティブなオブジェクトから導出される1つ以上のフィルのシーケンスを参照する。領域がフィルの同一のシーケンスを参照する場合、隣接領域は組み合わされる。一般に、中間形式を格納する必要があるメモリは、領域の数に関係する。しかし、多数の個々のフィルを含む多数のディスプレイリストオブジェクトがある場合、中間形式で多数の領域が存在する可能性が高い。ディスプレイリストをフィルマップ中間形式に変換することにより、オブジェクト毎にパスデータを格納する必要があるメモリは解放される。しかし、フィルデータを格納する必要があるメモリは依然として高いままである。
【0006】
多数の画像と関連付けられたビットマップフィルに対して必要なメモリを減少する方法は、フィルを統合画像にレンダリングすることによりフィルを組み合わせる方法である。画像をレンダリングすることは、実行される動作を合成することを含む。透明であるか、或いは下地オブジェクトで合成されるオブジェクトをレンダリングするために、下地オブジェクトもレンダリングされる必要がある。これは、最悪の場合、ディスプレイリスト全体がレンダリングされる必要があり、この処理が計算的にもメモリ使用量においてもコストがかかることを意味する。
【0007】
従って、中間形式により使用されるメモリの量を減らす必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の目的は、既存の構成の1つ以上の欠点を実質的に克服するか、或いは少なくとも改善することである。
【課題を解決するための手段】
【0009】
本発明の一態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける方法であって、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法が提供される。
【0010】
本発明の別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける方法であって、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法が提供される。
【0011】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するプロセッサであって、前記コンピュータプログラムは、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、を有し、
前記更新された共用フィルを受信し、前記更新された共用フィルを使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングするプリンタと、
を有することを特徴とするシステムが提供される。
【0012】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するプロセッサであって、前記コンピュータプログラムは、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、を有し、
前記更新された共用フィルを受信し、前記更新された共用フィルを使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングするプリンタと、
を有することを特徴とするシステムが提供される。
【0013】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共有フィルを複数のオブジェクトと関連付ける装置であって、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共有フィルのバウンディング領域を判定する手段と、
前記第1のオブジェクトを前記共有フィルと関連付ける手段と、
第2のオブジェクトを受信する手段と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共有フィルを更新する手段と、
前記第2のオブジェクトを前記更新された共有フィルと関連付ける手段と、
を有することを特徴とする装置が提供される。
【0014】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける装置であって、
第1のオブジェクトを前記共用フィルと関連付ける手段と、
第2のオブジェクトを受信する手段と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する手段と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける手段と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする手段と、
を有することを特徴とする装置が提供される。
【0015】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるコンピュータプログラムが記録されたコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とするコンピュータ読み取り可能な媒体が提供される。
【0016】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるコンピュータプログラムが記録されたコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とするコンピュータ読み取り可能な媒体が提供される。
【0017】
本発明の更に別の態様によると、ディスプレイリストにおいて複数のオブジェクトに対して共用されるフィル情報を作成する方法であって、
フィル情報を有する第1のオブジェクトを受信する工程と、
前記第1のオブジェクトのフィル情報とオーバラップしていないフィル情報を有する第2のオブジェクトを受信する工程と、
前記第1のオブジェクトのフィル情報が前記第2のオブジェクトのフィル情報とオーバラップしていない場合に前記第2のオブジェクトのフィル情報に基づいて前記第1のオブジェクトのフィル情報を更新する工程と、
前記第2のオブジェクトを前記更新されたフィル情報と関連付けて前記第1のオブジェクト及び前記第2のオブジェクトに対して共用されるフィル情報を作成する工程と、
前記作成された共用されるフィル情報を使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法が提供される。
【0018】
本発明の他の態様が更に開示される。
【発明の効果】
【0019】
本発明によれば、中間形式により使用されるメモリの量を減らすことができる。
【図面の簡単な説明】
【0020】
【図1A】説明する構成が実施される画素レンダリングシステムを総合的に示す概略ブロック図である。
【図1B】プロセッサ及びメモリを示す詳細な概略ブロック図である。
【図1C】ネットワークを介してプリンタに接続されたコンピュータモジュールを示す図である。
【図2】中間ページ表現を生成する方法を概略的に示すフローチャートである。
【図3】例示的なページを示す図である。
【図4】図3の例示的なページに対するディスプレイリスト中間ページ表現を示す図である。
【図5】ページ記述言語(PDL)ページのディスプレイリスト中間ページ表現を生成する方法を概略的に示すフローチャートである。
【図6】図5の方法で実行されたように、ステッチングを候補フィルに適用する方法を概略的に示すフローチャートである。
【図7】候補フィルと組み合わせるのに適したステッチャオブジェクトを判定する方法を概略的に示すフローチャートである。
【図8】図3の方法で実行されたように、候補フィルをステッチャオブジェクトと組み合わせる方法を概略的に示すフローチャートである。
【図9】図3に示されたページに対するタイル型のフィルマップ中間表現を示す図である。
【図10】図9に示されたタイル型のフィルマップ中間表現に対するフィル合成シーケンス及び対応するレベル情報を示す表である。
【図11】PDLページの一例を示す図である。
【図12】図11に示されたページに対するタイル型のフィルマップ中間表現を示す図である。
【図13】図12に示されたタイル型のフィルマップ中間表現に対するフィル合成シーケンス及び対応するレベル情報を示す表である。
【図14A】図5の方法に従って図11のページの処理中のステッチャオブジェクトの状態を示す図である。
【図14B】図11に示されたページの処理中のステッチャオブジェクトの更新された状態を示す図である。
【図15】図11に示されたページに対するディスプレイリスト中間ページ表現を示す図である。
【図16】図11に示されたページに対する別のタイル型のフィルマップ中間表現を示す図である。
【図17】図16に示されたタイル型のフィルマップ中間表現に対するフィル合成シーケンス及び対応するレベル情報を示す図である。
【図18】各々がフィルと関連付けられる複数のオブジェクトと中間フィルとを関連付ける方法を示すフローチャートである。
【図19A】ステッチャオブジェクトのバウンディングボックスと候補フィルのバウンディングボックスとがオーバラップしない一例を示す図である。
【図19B】ステッチャオブジェクトのバウンディングボックスと候補フィルのバウンディングボックスとがオーバラップしない一例を示す図である。
【発明を実施するための形態】
【0021】
添付の図面のうちの何れか1つ以上において、同一の図中符号を有するステップ及び/又は特徴を参照する。逆の意図が示されない限り、これらのステップ及び/又は特徴は、本明細書のために同一の機能又は動作を有する。
【0022】
図1A〜図1Cは、説明する種々の構成が実施される画素レンダリングシステム100を総合的に示す概略ブロック図である。
【0023】
図1Aに示されるように、システム100は、コンピュータモジュール101、キーボード102、マウスポインタデバイス103、スキャナ126、カメラ127及びマイク170等の入力デバイス、並びにプリンタ115、表示装置114及びスピーカ117を含む出力デバイスにより形成される。外部変復調器(モデム)送受信機デバイス116は、接続121を介して通信ネットワーク120と通信するためにコンピュータモジュール101により使用されてもよい。ネットワーク120は、インターネット又は専用ワイドエリアネットワーク(WAN)等のWANであってもよい。接続121が電話線である場合、モデム116は従来の「ダイヤルアップ」モデムであってもよい。或いは、接続121が大容量(例えば、ケーブル)接続である場合、モデム116はブロードバンドモデムであってもよい。無線モデムは、ネットワーク120に無線接続するために更に使用されてもよい。
【0024】
コンピュータモジュール101は、一般に、少なくとも1つのプロセッサユニット105、並びに例えば半導体ランダムアクセスメモリ(RAM)及び半導体読み出し専用メモリ(ROM)から形成されたメモリユニット106を含む。モジュール101は、ビデオディスプレイ114に結合するオーディオ/ビデオインタフェース107、スピーカ117及びマイク170を含む多数の入出力(I/O)インタフェース、キーボード102、マウス103、スキャナ126、カメラ127及びオプションとしてジョイスティック(不図示)用のI/Oインタフェース113、並びに外部モデム116用のインタフェース108を更に含む。いくつかの実現例において、モデム116は、インタフェース108等のコンピュータモジュール101内に組み込まれてもよい。コンピュータモジュール101は、接続123を介して画素レンダリングシステム100がローカルエリアネットワーク(LAN)として既知であるローカルコンピュータネットワーク122に接続できるようにするローカルネットワークインタフェース111を更に有する。更に示されるように、ローカルネットワーク122は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えたデバイスを含むワイドネットワーク120に接続124を介して更に結合してもよい。インタフェース111は、Ethernet(登録商標)回路カード、Bluetooth(登録商標)無線構成又はIEEE802.11無線構成により形成されてもよい。
【0025】
インタフェース108及び113は、直列接続性及び並列接続性の何れか一方又は双方を提供してもよい。一般に直列接続性は、USB(Universal Serial Bus)規格に従って実現され、対応するUSBコネクタ(不図示)を有する。記憶装置109が提供され、一般に記憶装置109は、ハードディスクドライブ(HDD)110を含む。フレキシブルディスクドライブ及び磁気テープドライブ(不図示)等の他の記憶装置が更に使用されてもよい。オプションのディスクドライブ112は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク(例えば、CD−ROM、DVD)、USB−RAM及びフレキシブルディスク等のポータブルメモリ装置は、システム100に対する適当なデータのソースとして使用されてもよい。
【0026】
コンピュータモジュール101の構成要素105〜113は、一般に、相互接続バス104を介して通信する。説明する構成が実施されるコンピュータの例には、IBM−PC’s及び互換性のあるもの、Sun Sparcstations、Apple Mac(登録商標)又はそれから進化した同様のコンピュータシステムが含まれる。
【0027】
以下に説明する方法は、システム100を使用して実現されてもよい。方法において説明される図2〜図16Bの処理は、システム100内で実行可能な1つ以上のソフトウェアアプリケーションプログラム133及び/又は制御プログラム190(図1Cを参照)として実現されてもよい。特に、説明される方法のステップは、システム100内で実行されるソフトウェアで命令131により実施される。ソフトウェア命令131は、各々が1つ以上の特定のタスクを実行する1つ以上のソフトウェアコードモジュールとして形成されてもよい。ソフトウェアは2つの別個の部分に更に分割されてもよく、第1の部分及び対応するソフトウェアコードモジュールは説明する方法を実行し、第2の部分及び対応するソフトウェアコードモジュールは、第1の部分とユーザとの間のユーザインタフェースを管理する。
【0028】
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ読み取り可能な媒体に格納されてもよい。ソフトウェアは、コンピュータ読み取り可能な媒体からシステム100にロードされ、システム100により実行される。そのようなソフトウェアを有するコンピュータ読み取り可能な媒体又はコンピュータ読み取り可能な媒体上に記録されたコンピュータプログラムは、コンピュータプログラム製品である。システム100においてコンピュータプログラムを使用することにより、説明する方法を実現する有利な装置を実施するのが好ましい。
【0029】
ソフトウェア133は、一般にHDD110又はメモリ106に格納される。ソフトウェア133は、コンピュータ読み取り可能な媒体からシステム100にロードされ、その後システム100により実行される。従って、例えばソフトウェアは、光ディスクドライブ112により読み出される光学的に読み出し可能なCD−ROM媒体125上に格納されてもよい。そのようなソフトウェアを有するコンピュータ読み取り可能な媒体又はコンピュータ読み取り可能な媒体上に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム100においてコンピュータプログラムを使用することにより、説明する方法を実現する有利な装置を実施するのが好ましい。
【0030】
いくつかの例において、アプリケーションプログラム133は、1つ以上のCD−ROM125上で符号化されてユーザに供給され、対応するドライブ112を介して読み出されてもよく、或いはユーザによりネットワーク120又は122から読み出されてもよい。更にソフトウェアは、他のコンピュータ読み取り可能な媒体からシステム100にロードされてもよい。コンピュータ読み取り可能な記憶媒体は、実行及び/又は処理するためにシステム100に命令及び/又はデータを提供することに関係するあらゆる記憶媒体を示す。そのような記憶媒体の例には、フレキシブルディスク、磁気テープ、CD−ROM、ハードディスクドライブ、ROM又は集積回路、USBメモリ、光磁気ディスク、或いは例えばPCMCIAカード等のコンピュータ読み取り可能なカードが含まれ、そのようなデバイスは、コンピュータモジュール101の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及び/又はデータをコンピュータモジュール101に提供することに更に関係してもよいコンピュータ読み取り可能な伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
【0031】
上述したアプリケーションプログラム133の第2の部分及び対応するコードモジュールは、ディスプレイ114上にレンダリングされるか、或いは表される1つ以上のグラフィカルユーザインタフェース(GUI)を実現するように実行されてもよい。一般にキーボード102及びマウス103を操作することにより、システム100及びアプリケーションのユーザは、GUIと関連付けられたアプリケーションに制御コマンド及び/又は入力を提供するように機能的に適応可能な方法でインタフェースを操作してもよい。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ117を介して出力された音声プロンプト及びマイク170を介して入力されたユーザ音声コマンドを利用するオーディオインタフェースが更に実現されてもよい。
【0032】
図1Bは、プロセッサ105及び「メモリ」134を示す詳細な概略ブロック図である。メモリ134は、図1Aのコンピュータモジュール101によりアクセスされる全てのメモリモジュール(HDD110及び半導体メモリ106を含む)の論理的な集約を示す。
【0033】
コンピュータモジュール101が最初に電源を投入される場合、自己診断(POST)プログラム150が実行する。一般にPOSTプログラム150は、半導体メモリ106のROM149に格納される。ROM149等のハードウェアデバイスは、ファームウェアと呼ばれる場合もある。POSTプログラム150は、コンピュータモジュール101内のハードウェアを検査して適切に機能することを保証し、一般に、正しく動作するためにROM149に更に格納されたプロセッサ105、メモリ(109、106)及び基本入出力システム(BIOS)ソフトウェアモジュール151をチェックする。POSTプログラム150が正常に実行したら、BIOS151はハードディスクドライブ110を起動する。ハードディスクドライブ110を起動することにより、ハードディスクドライブ110上に常駐するブートストラップローダプログラム152がプロセッサ105を介して実行する。これにより、オペレーティングシステム153は、RAMメモリ106にロードされると動作を開始する。オペレーティングシステム153は、プロセッサ105により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
【0034】
オペレーティングシステム153は、メモリ(109、106)を管理し、コンピュータモジュール101上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、システム100で使用可能な種々のメモリは、各処理が効率的に実行するように適切に使用される必要がある。従って、集約メモリ134は、メモリの特定の部分が割り当てられる方法を示すことを意図せず(明示的に記載されない限り)、システム100によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
【0035】
プロセッサ105は、制御ユニット139、演算論理装置(ALU)140及びキャッシュメモリと呼ばれることもあるローカルメモリ又は内部メモリ148を含む多数の機能モジュールを含む。一般にキャッシュメモリ148は、レジスタ部に複数の記憶レジスタ144〜146を含む。1つ以上の内部バス141は、これらの機能モジュールを機能的に相互接続する。一般にプロセッサ105は、接続118を使用してシステムバス104を介して外部デバイスと通信する1つ以上のインタフェース142を更に有する。
【0036】
アプリケーションプログラム133は、条件付き分岐命令及びループ命令を含んでもよい一連の命令131を含む。プログラム133は、プログラム133を実行するのに使用されるデータ132を更に含んでもよい。命令131及びデータ132は、それぞれ、記憶場所128〜130及び135〜137に格納される。命令131及び記憶場所128〜130の相対的な大きさに依存して、特定の命令は、記憶場所130に示された命令により描かれたように単一の記憶場所に格納されてもよい。或いは、命令は、記憶場所128及び129に示された命令部分により描かれたように、各々が別個の記憶場所に格納される多数の部分に分割されてもよい。
【0037】
一般にプロセッサ105は、そこで実行される命令の集合を与えられる。次にプロセッサ105は、命令の別の集合を実行することにより自身が反応する後続の入力を待つ。各入力は、入力デバイス102、103の1つ以上により生成されたデータ、ネットワーク120、122のうちの一方を介して外部ソースから受信したデータ、記憶装置106、109のうちの一方から検索したデータ又は対応する読み取り装置112に挿入された記憶媒体125から検索したデータを含む多数のソースのうちの1つ以上から提供されてもよい。いくつかの例において、命令の集合を実行した結果、データが出力されてもよい。実行することは、データ又は変数をメモリ134に格納することを更に含んでもよい。
【0038】
説明する方法は、対応する記憶場所155〜158においてメモリ134に格納される入力変数154を使用する。説明する方法は、対応する記憶場所162〜165においてメモリ134に格納される出力変数161を生成する。中間変数は、記憶場所159、160、166及び167に格納されてもよい。
【0039】
プロセッサ105のレジスタ部144〜146、演算論理装置(ALU)140及び制御ユニット139は、プログラム133を構成する命令集合において命令毎に「取り込み、復号化及び実行」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。取り込み、復号化及び実行サイクルの各々は、
(a)記憶場所128からの命令131を取り込むか或いは読み取る取り込み動作、
(b)制御ユニット139が取り込まれた命令を判定する復号化動作、並びに
(c)制御ユニット139及び/又はALU140が命令を実行する命令動作を含む。
【0040】
その後、次の命令に対する更なる取り込み、復号化及び実行サイクルが実行されてもよい。同様に、制御ユニット139が値を記憶場所132に格納するか或いは書き込むことにより、格納サイクルが実行されてもよい。
【0041】
図4〜図6の処理におけるステップ又はサブ処理の各々は、プログラム133の1つ以上の部分と関連付けられ、プログラム133の示された部分に対して命令集合において命令毎に取り込み、復号化及び実行サイクルを実行するようにプロセッサ105のレジスタ部144〜147、ALU140及び制御ユニット139が共に動作することにより実行される。
【0042】
或いは、説明される方法は、方法の機能又はサブ機能を実行する1つ以上の集積回路等の専用ハードウェアで実現されてもよい。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ又は1つ以上のマイクロプロセッサ及び関連付けられたメモリを含んでもよい。
【0043】
図1Cは、ネットワーク122を介してプリンタ115に接続されたコンピュータモジュール101を示す図である。
【0044】
プリンタ115は、ソフトウェアアプリケーション133と同様に、メモリ180に常駐する制御プログラム190を実行するコントローラプロセッサ185を備える。プリンタ115は、画素レンダリング装置196及びプリンタエンジン195を更に備える。構成要素180、185、195及び196は、通信バス178を介して結合される。
【0045】
画素レンダリング装置196は、バス178を介してプロセッサ185及びプリンタエンジン195に結合されたASICの形式であってもよい。しかし、画素レンダリング装置196は、プロセッサ185により実行されたソフトウェアで更に実現されてもよい。画素レンダリングシステム100において、ソフトウェアアプリケーション133は、プロセッサ105の実行中、各ページがテキスト、線、フィル領域及び画像データ等のオブジェクトを含むページベースの文書を作成する。ソフトウェアアプリケーション133は、ネットワーク122を介して、ハイレベルなページの記述(例えば、ページ記述言語(PDL)ファイルとして)をプリンタ115のコントローラプロセッサ185により実行される制御プログラム190に送出する。
【0046】
制御プログラム190は、ソフトウェアアプリケーション133からページの記述を受信し、記述をメモリ180に格納してもよい。ページ記述におけるオブジェクトは、メモリ180内に構成された以下に更に詳細に説明されるディスプレイリストと呼ばれた第1の中間形式ページ表現に配置される。ディスプレイリストの各オブジェクトは、フィルデータ、パスデータ及び合成命令を参照する。制御プログラム190は、何れかのフィルが中間フィルに組み合わされるかを判定するようにページ記述オブジェクトを処理する。制御プログラム190は、あらゆる必要な中間フィル又は少なくとも2つのオブジェクトにより共用される共用フィルを作成する。
【0047】
以下に更に詳細に説明されるように、ディスプレイリストは、フィルマップ及びフィル合成シーケンスの表を含む第2の中間形式ページ表現を生成するために、制御プログラム190により使用される。この場合も、フィルマップ及びフィル合成シーケンスの表を含む第2の中間形式ページ表現は、メモリ180に格納される。
【0048】
次に制御プログラム190は、フィル合成シーケンスの表を生成するようにフィル合成シーケンスの表を処理し、フィル合成シーケンスの表を単純なレンダリング動作のみを必要とするメモリ180に格納する。コントローラプロセッサ185上で実行されるプログラム190は、画素レンダリング装置196にメモリ180を提供すること、画素レンダリング装置196を初期化すること及びページのレンダリングを開始するように画素レンダリング装置196に命令することに更に対処する。
【0049】
その後、画素レンダリング装置196は、ページを画素にレンダリングするために、フィルマップ及びフィル合成シーケンスの表を使用する。画素レンダリング装置196の出力は画素データである。画素データは、ページを印刷するためにプリンタエンジン195により使用されてもよい。
【0050】
図2は、中間ページ表現を生成する方法200を概略的に示すフローチャートである。方法200は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のコードモジュールとして実現されてもよい。方法200は、ソフトウェアアプリケーション133により提供されたページ記述からフィルマップ及びフィル合成シーケンスの表を生成する。
【0051】
方法200はステップ201において開始し、制御プログラム190が、プロセッサ185の実行中にディスプレイリストを生成する。図2に示されるように、制御プログラム190は、ページ記述240を受信し、ディスプレイリストの形式で第1の中間形式ページ表現250を生成する。ディスプレイリスト中間ページ表現250は、メモリ180に格納されてもよい。図5を参照して、ステップ201において実行されたようにディスプレイリスト中間ページ表現を生成する方法500を以下に詳細に説明する。
【0052】
方法200は次のステップ203において継続し、制御プログラム190が、プロセッサ105の実行中に、ディスプレイリスト中間ページ表現250を処理し、フィルマップ及びフィル合成シーケンスの表の形式で第2の中間形式ページ表現260を生成する。この場合も、フィルマップ及びフィル合成シーケンス表現260の表は、メモリ180に格納されてもよい。
【0053】
フィルマップ及びフィル合成シーケンス表現260の表は、画素をレンダリングする画素レンダリング装置196により使用されてもよい。第2の中間形式ページ表現260のメモリ使用量を最小化するために、フィルの組合せがディスプレイリストの生成中に実行されてもよい。フィル組合せの目的は、各々がソース座標系からページ座標系への別個のアフィン変換を有する複数のフィルをソース座標系からページ座標系への単一のアフィン変換マッピングを有する単一のフィルで置換することである。
【0054】
図3に、不透明なひし形の形式の下層オブジェクト320、不透明なビットマップの形式の第2の下層オブジェクト330及び半透明の平坦な長方形340の形式の上層オブジェクト340を含む例示的なページ310を示す。
【0055】
図4に、例示的なページ310に対するディスプレイリスト400を示す。ディスプレイリスト400の各エントリ(例えば、405)は、パス情報、フィル情報及び合成情報を参照する。フィル情報は、パスの内側の色及び不透明度を特定するパス情報と関連付けられたデータである。一方、パス情報と関連付けられた合成情報は、パス情報により生成されたオブジェクトの色及び不透明度を背景オブジェクトの色及び不透明度と組み合わせるために使用された動作の表示である。図4に示されるように、ディスプレイリストオブジェクトエントリ「1」405は、不透明なひし形オブジェクト320に対応し、ひし形形状のパス410、線形ブレンドフィル415及びATOP合成オペレータ420を参照する。ディスプレイリストオブジェクトエントリ「2」425は、ビットマップオブジェクト330に対応し、正方形のパス430、ビットマップフィル435及びOVER合成オペレータ440を参照する。ディスプレイリストオブジェクトエントリ「3」445は、半透明の平坦な長方形340に対応し、長方形のパス450、半透明の平坦な色フィル455及びOVER合成オペレータ460を参照する。
【0056】
図5を参照して、ステップ201において実行されたようにディスプレイリスト中間ページ表現を生成する方法500を以下に更に詳細に説明する。方法500は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のソフトウェアコードモジュールとして実現されてもよい。中間ページ表現は、ページ310等の1つ以上のオブジェクトを含むページ記述言語(PDL)ページから生成される。PDLページはメモリ180に格納されてもよい。
【0057】
方法500は初期化ステップ515において開始し、制御プログラム190が、プロセッサ185の実行中にメモリ180内に格納されたステッチングパラメータを初期化する。方法500において使用されるステッチングパラメータは、「アクティブなステッチャオブジェクトのリスト」、「フィル組合せアクティブフラグ」、「起動カウント」及び「停止カウント」である。
【0058】
起動カウントは、処理されており、ステッチングに適したオブジェクトの数をカウントする。起動カウントは、起動閾値に到達したかを判定するために使用される。起動閾値に到達した場合、フィル組合せを起動する。
【0059】
停止カウントは、フィル組合せが適切なフィルを組み合わせるのに失敗した回数を記録する。停止カウントは、停止閾値に到達したかを判定するために使用される。停止閾値に到達した場合、フィル組合せを停止する。
【0060】
一実現例において、プロセッサ185は、初期化ステップ515において、フィル組合せアクティブフラグをTRUEに設定し、アクティブステッチャオブジェクトのリストをnone/emptyに設定し、起動カウント及び停止カウントをゼロ(0)に設定する。
【0061】
判定ステップ520において、処理され、ディスプレイリストに追加される必要のある残りのオブジェクトがPDLページにあることを制御プログラム190が判定する場合、方法500はステップ530に進む。処理すべき更なるPDLオブジェクトがない場合、方法500は終了する。
【0062】
取り込みステップ530において、処理されるPDLオブジェクトがメモリ180から取得される。次に方法500はディスプレイリストエントリステップ535に進み、新しいディスプレイリストエントリが、メモリ180内に構成されたディスプレイリストに割り当てられ、追加される。次に処理はパスデータステップ540に進み、制御プログラム190がPDLオブジェクトからパスデータを判定する。パスデータは、メモリ180内に構成されたディスプレイリストの新しいディスプレイエントリに追加される。
【0063】
次に方法500は合成オペレータステップ545に進み、合成オペレータが、制御プログラム190によりPDLオブジェクトから判定され、ディスプレイリスト内の新しいディスプレイエントリに追加される。PDLオブジェクトのフィル情報は、以下においてPDLオブジェクトのフィルと呼ばれる。次に方法500はステップ550に進み、PDLオブジェクトのフィルが、メモリ180内で「候補フィル」と呼ばれる一時フィルとして取得され、格納される。次に、処理は候補フィルステッチングステップ555に進む。ステッチングステップ555において、制御プログラム190は、プロセッサ185の実行中に、ステッチングを候補フィルに適用し、現在処理されているPDLオブジェクトに対応する新しいディスプレイリストエントリのフィル特性を設定する。次に、図6を参照して、ステップ555において実行されたようにステッチングを候補フィルに適用する方法600を説明する。
【0064】
方法600は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のソフトウェアコードモジュールとして実現されてもよい。
【0065】
方法600は判定ステップ610において開始し、プロセッサ185の実行中に、基準の集合に基づいて候補フィルがステッチングに適していることを制御プログラム190が判定する場合、方法600は増分ステップ625に進む。さもなければ、方法600は設定ステップ615に進む。基準の集合は予め判定されていてもよい。一実現例において、基準の集合は、フィルがビットマップフィルである場合、ソースビットマップの寸法が第1の所定の大きさより小さい場合及び変換されたソースビットマップの寸法が第2の所定の大きさより小さい場合にフィルがステッチングに適していることを含んでもよい。
【0066】
設定ステップ615において、現在処理されているオブジェクトに対するフィルが候補フィルに設定され、方法600は終了する。
【0067】
増分ステップ625において、メモリ180内に構成されたステッチング起動カウントパラメータは、制御プログラム190により増分される。チェックステップ630において、フィル組合せアクティブフラブが設定されたことを制御プログラム190が判定する場合、方法600は互換性のあるステッチャオブジェクトステップ645に進む。さもなければ、方法600は判定ステップ635に進む。
【0068】
ステップ645において、制御プログラム190は、候補フィルと組み合わせるのに適したアクティブステッチャオブジェクトのリストにおいてステッチャオブジェクトを判定するように試みる。図7を参照して、アクティブステッチャオブジェクトのリストにおいて候補フィルと組み合わせるのに適したステッチャオブジェクトを判定する方法700を以下に更に詳細に説明する。
【0069】
判定ステップ635において、所定の起動閾値を超えた場合、方法600はステップ640に進む。さもなければ、方法600はステップ615に進む。起動閾値は、例えば起動カウントが所定の値を上回る単純な閾値であってもよい。或いは、起動閾値は、例えば起動カウントと処理されたオブジェクトの総数との比が所定の値を上回るより複雑な閾値であってもよい。
【0070】
起動ステップ640において、制御プログラム190は、プロセッサ185の実行中に、メモリ180内に構成されたフィル組合せアクティブフラグを設定してもよい。
【0071】
判定ステップ650において、適切な既存のステッチャオブジェクトがステップ645において判定されたことを制御プログラム190が判定する場合、方法600は組合せステップ655に進む。さもなければ、方法600は増分ステップ665に進む。
【0072】
一実現例において、Found_Stitcher変数はメモリ180内に構成されてもよい。この場合、制御プログラム190は、Found_Stitcher変数が「None」ではない場合に適切なステッチャオブジェクトが発見されたことを判定してもよい。
【0073】
組合せステップ655において、候補フィルは、ステップ645において適していると判定されたステッチャオブジェクトと組み合わされる。図8を参照して、候補フィルをステッチャオブジェクトと組み合わせる方法800を以下に更に詳細に説明する。候補フィルがステッチャオブジェクトと組み合わされると、方法600は終了する。
【0074】
アクティブステッチャオブジェクトのリストにおいて候補フィルと組み合わせるのに適した既存のステッチャオブジェクトがないことをステップ650において制御プログラム190が判定する場合、処理はステップ650から増分ステップ665に進む。ステップ665において、制御プログラム190は、プロセッサ185の実行中に、メモリ180内に構成された停止カウントパラメータを増分する。次に処理はステップ665からステップ670に進み、プロセッサ185の実行中に、停止閾値を超えたことを制御プログラム190が判定する場合、処理600は停止ステップ675に進む。さもなければ、方法600は作成ステップ680に進む。一実現例において、停止カウントパラメータの値とメモリ180において構成された起動カウントパラメータの値との比が所定の値を上回る場合、停止閾値を超えたと判定される。
【0075】
ステップ675において、フィル組合せを停止する。特に、ステップ675において、メモリ180内に構成されたフィル組合せアクティブフラグは、制御プログラム190により作成される。また、起動カウントパラメータ及び停止カウントパラメータはゼロ(0)に設定される。上述したように、次に処理はステップ615に進む。
【0076】
或いは、上述したように、停止閾値を超えなかった場合、処理はステップ670から作成ステップ680に進み、制御プログラム190が新しいステッチャオブジェクトを作成する。ステッチャオブジェクトは、ビットマップフィル、どの画素が書き込まれたかを示すデータ及びステッチャオブジェクトのアクティブエリアを示すバウンディングボックスを参照する。ステッチャオブジェクトが作成される場合、一実現例において、バウンディングボックスは所定のx寸法及びy寸法で作成され、ビットマップは透明な白の画素に初期化され、全ての画素は「NOT WRITTEM」とマーク付けされる。新しいステッチャオブジェクトが作成されると、方法600は組合せステップ655に進む。組合せステップ655において、候補フィルは、ステッチャオブジェクトと組み合わされ、その後設定ステップ660に進む。設定ステップ660において、現在処理されているオブジェクトに対するフィルがステッチャオブジェクトにより参照されたビットマップフィルに設定され、方法600は終了する。
【0077】
次に、図7を参照して、アクティブステッチャオブジェクトのリストにおいて候補フィルと組み合わせるのに適したステッチャオブジェクトを判定する方法700を詳細に説明する。方法700は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のソフトウェアコードモジュールとして実現されてもよい。
【0078】
方法700はステップ710において開始し、制御プログラム190が、プロセッサ185の実行中に、メモリ180内に構成されたFound_Stitcher変数をNoneに設定する。
【0079】
チェックステップ715において、制御プログラム190は、メモリ180内に構成されたアクティブステッチャオブジェクトのリストを検査し、まだ処理されていないオブジェクトがあるかを判定する。アクティブステッチャオブジェクトのリストにおける全てのオブジェクトが処理された場合、方法700は終了する。
【0080】
或いは、アクティブステッチャオブジェクトのリストにおいて未処理のステッチャオブジェクトがあることをステップ715において制御プログラム190が判定する場合、方法700は取り込みステップ725に進む。ステップ725において、制御プログラム190は、メモリ180内に構成されたアクティブステッチャオブジェクトのリストにおいて次の未処理のステッチャオブジェクトを取り込む。
【0081】
次に互換性チェックステップ730において、予め判定された基準の集合に基づいて、ステップ725において取り込まれたステッチャオブジェクトのビットマップフィルが候補フィルと互換性のあることを制御プログラム190が判定する場合、方法700は近接性判定ステップ735に進む。例えば、フィルは、同一の色空間において規定され、同一のビット深度を有する場合に互換性がある。上述したように、ステッチャオブジェクトのビットマップフィルが候補フィルと互換性のない場合、方法700はステップ715に戻る。
【0082】
近接性判定ステップ735において、制御プログラム190は、ステッチャオブジェクト及び候補フィルの近接性を判定する。一実現例において、候補フィルに対するステッチャオブジェクトの近接性は、候補フィルのバウンディングボックスとステッチャオブジェクトのバウンディングボックスとの間の距離を判定することにより測定される。PDLオブジェクトがバウンディングボックスを含む場合、候補フィルに対するバウンディングボックスは、現在処理されているPDLオブジェクトから判定されてもよい。或いは、候補フィルに対するバウンディングボックスは、候補フィルの寸法をページ空間に変換するために候補フィルのアフィン変換を使用して判定されてもよく、変形されたポイントのバウンディングボックスを取得してもよい。一実現例において、候補フィルのバウンディングボックスがステッチャオブジェクトのバウンディングボックス内に完全に含まれる場合、ステッチャオブジェクト及び候補フィルは近接していると考えられる。さもなければ、ステッチャオブジェクト及び候補フィルは近接していないと考えられる。近接しているフィルは、組み合わせるために近接していないフィルより少ないメモリを必要とする。例えば、各々がページの隅にある4つの小さな画像が組み合わされた場合、組み合わされた画像における画素数はページ上の画素数と等しくなり、数は4つの画像における画素数よりもはるかに大きい。これは、画像が組み合わされる場合にメモリ使用量が増加することを意味する。
【0083】
一実現例において、候補フィルのバウンディングボックスの大きさは、ページの特徴に従って適応可能に変化する。オブジェクトが取得ステップ530において取得される際、バウンディング領域の大きさをそのように適応可能に実行中に変更してもよい。ページの種々の特徴は、バウンディングボックスの大きさに影響を及ぼす。例えば、ページ上の特定のエリアにおいてオブジェクトの数が増加することにより特定のエリアの複雑性が増すため、バウンディング領域は、同数のページ上の他の候補フィルの他のバウンディングボックスとオーバラップしないように僅かに減少する。オブジェクト及びオブジェクトと関連付けられたフィルの複雑性は、バウンディングボックスの大きさにも影響を及ぼす。フィルの複雑性は、合成スタックに含まれた種々の色の数及びオペレータの種類により判定される。従って、例えば、フィルにおける色の数が固定数に予め決められた閾値を超える場合、フィルは複雑であると言える。例えば、ページ上の特定のエリアにおけるオブジェクトの数、エリアに含まれたフィルの数、各フィルにおける色の数及びフィルに含まれたオペレータを考慮する複雑性測度が更に算出される。その後、フィルのバウンディング領域は、オブジェクトが受信される際のそのような複雑性測度に基づいて判定される。特に、バウンディング領域の大きさは、複雑性測度の影響を受けるだろう。複雑性測度に基づいてバウンディング領域を判定することにより、組合せ処理655の複雑性が減る。
【0084】
上述したように、ステッチャオブジェクト及び候補フィルが近接していないことをステップ735において制御プログラム190が判定する場合、方法700はステップ715に戻る。ステッチャオブジェクト及び候補フィルが近接している場合、方法700はオーバラップ判定ステップ740に進む。
【0085】
上述したように、ステップ740において、ステッチャオブジェクトと候補フィルとがオーバラップすることを制御プログラム190が判定する場合、方法700はステップ715に戻る。さもなければ、方法700は終了する。一実現例において、ステップ740において、制御プログラム190は、先のステッチング動作中に何れかのデータが、候補フィルのバウンディングボックスがステッチャオブジェクトのバウンディングボックスにオーバラップするステッチャオブジェクトのエリアに書き込まれるかを判定する。情報がオーバラッピングエリアに先に書き込まれなかったことを制御プログラム190が判定する場合、ステッチャオブジェクト及び候補フィルはオーバラップしていないと考えられる。しかし、情報がオーバラッピングエリアに先に書き込まれている場合、ステッチャオブジェクト及び候補フィルはオーバラップしていると考えられる。
【0086】
ステップ745において、メモリ180内に構成されたFound_Stitcher変数がステッチャオブジェクトに設定され、方法700は終了する。
【0087】
図8を参照して、ステップ655において実行されたように候補フィルをステッチャオブジェクトと組み合わせる方法800を以下に詳細に説明する。方法800は判定ステップ820において開始し、制御プログラム190が、ステッチャオブジェクトと候補フィルとの間のオーバラップのエリアにおいてステッチャオブジェクト画素の集合を判定する。オーバラップのエリアにおける全ての画素は、「未処理」である。
【0088】
チェックステップ830において、ステップ820において判定された画素の集合に未処理の画素が残っていることを制御プログラム190が判定する場合、方法800はステップ850に進む。ステップ820において判定された画素の集合の全ての画素が処理されている場合、方法800は終了する。
【0089】
取り込みステップ850において、制御プログラム190は、プロセッサ185の実行中に次の未処理の画素取り込む。次に、判定ステップ860において、制御プログラム190は、取り込まれた画素の場所に対応する候補フィルの画素色値を判定する。ビットマップフィルの場合、ステップ860において、制御プログラム190は、未処理の画素と候補フィルのソースビットマップ空間との間でアフィン変換を実行し、ソース場所を取得する。その後、そのソース場所におけるソースビットマップの色値が判定されてもよい。
【0090】
コピーステップ870において、ステップ860において判定された色値は、未処理の画素場所においてステッチャオブジェクトのビットマップフィルにコピーされる。次に方法800はマーク付けステップ880に進み、制御プログラム190が、取り込まれた画素を「WRITTEN」とマーク付けし、画素をメモリ180に格納する。上述したように、処理は次にステップ830に進む。
【0091】
再度図2を参照すると、ディスプレイリスト(すなわち、第1の中間形式ページ表現250)が作成されると、ディスプレイリストは、タイル型のフィルマップ表現260に変換されてもよい(203)。図9は、図3の例示的なページ310のタイル型のフィルマップ表現910を示す。図9の例において、フィルマップタイル920は、(列、行)の形式で表された位置(1、2)にある。図9の右側に拡張したフィルマップタイル920のコンテンツが示される。フィルマップタイル920における4つの領域930、940、950及び960は、それぞれ、1、2、3、及び4の指標を含むフィル合成シーケンスを参照する。
【0092】
図10は、タイル型のフィルマップ910に対するフィル合成シーケンス1010の表、並びに対応するレベル情報1020、1030及び1040を示す。レベル情報#1 1020は、図3の不透明なひし形オブジェクト320に対応するレンダリング情報を含む。レベル情報#1 1020は、線形ブレンドフィル415及び合成オペレータATOP420を参照する。レベル情報#2 1030は、不透明な低解像度のソースビットマップオブジェクト330に対応するレンダリング情報を含む。レベル情報#2 1030は、低解像度のビットマップソースフィル435を参照し、合成オペレータOVER440を有する。レベル情報#3 1040は、半透明の平坦なオブジェクト340に対応するレンダリング情報を含む。レベル情報#3 1040は、平坦な灰色のソースフィル455を参照し、合成オペレータOVER460を有する。
【0093】
2つのオブジェクトが同一フィル及び同一の合成オペレータを参照する場合、2つのフィルは同一のレベル情報を参照できる。フィルが同一の合成情報を有する場合、同一のステッチャフィルを参照する2つのオブジェクトは、同一の同一レベル情報を参照する。他のオブジェクトにオーバラップすることなく2つのそのようなオブジェクトのみにより生成されるタイル型のフィルマップ情報のあらゆる領域は、同一のフィル合成シーケンスを参照する。
【0094】
次に、図11〜図15を参照して、上述した方法を例として更に説明する。図11は、例示的なPDLページ1110を示す。ページ1110は、3つのPDLオブジェクトを含む。すなわち、ページ1110は、不透明なビットマップであり、ソースビットマップが顔の画像である1番下のオブジェクト1120を含む。ページ1110は、不透明なビットマップであり、ソースビットマップが三角形の画像である第2のオブジェクト1130を更に含む。ページ1110は、不透明なビットマップであり、ソースビットマップが円の画像である第3のオブジェクト1140を更に含む。
【0095】
フィルを組み合わせずに処理された場合の例示的なページ1110のタイル型のフィルマップ表現1210を図12に示す。フィルマップタイル1220は、(列、行)の形式で表された位置(2、2)にある。図12の右側に拡張したフィルマップタイル1220のコンテンツを示す。図12に示されるように、フィルマップタイル1220における4つの領域1230、1240、1250及び1260は、それぞれ、1、2、3及び4の指標を含むフィル合成シーケンスを参照する。
【0096】
図13に、タイル型のフィルマップ1210に対するフィル合成シーケンスの表1310、並びに対応するレベル情報1320、1330及び1340を示す。レベル情報#1 1320は、顔のビットマップ1120を参照するオブジェクトに対応するレンダリング情報を含む。レベル情報#2 1330は、三角形のビットマップ1130を参照するオブジェクトに対応するレンダリング情報を含む。レベル情報#3 1340は、円のビットマップ1140を参照するオブジェクトに対応するレンダリング情報を含む。
【0097】
例示的なフィル組合せ処理が図11の例示的なページ上で実行される場合、起動閾値はゼロ(0)であると考えられ、各ソースビットマップの寸法はステッチングに対する最大許容度を下回る。図11の全てのビットマップは、同一の色空間及びビット深度を有する。ページ1110は、図15に示されるようなディスプレイリスト1500の形式で中間ページ表現を生成するために、方法500に従って処理されてもよい。方法500は、ステップ515を参照して上述したように、ステッチングパラメータを初期化することにより開始する。メモリ180内に構成されたアクティブステッチャオブジェクトのリストはNoneに設定され、フィル組合せアクティブフラグはクリアされ、起動カウント及び停止カウントはゼロ(0)に設定される。
【0098】
顔のビットマップ1120を参照するPDLオブジェクトは、方法500に従って最初に処理され、顔のビットマップがステッチングに適しているかを判定するために検査される(方法600のステップ610と同様)。オブジェクト1120に対応する顔のビットマップの寸法がステッチングに対する最大許容度を下回るため、オブジェクト1120はステッチングに適していると考えられる。起動カウントパラメータは、増分され(ステップ625と同様)、ゼロ(0)より大きいため、メモリ180内に構成されたフィル組合せ起動フラグが設定される(ステップ640と同様)。アクティブステッチャオブジェクトのリストが空であるため、適切なステッチャオブジェクトは判定されない(方法600のステップ645と同様)。オブジェクト1120の処理は継続し、停止カウントは増分される(ステップ665と同様)。しかし、停止閾値を超えない(ステップ670と同様)ために、新しいステッチャオブジェクトが作成され(ステップ680と同様)、メモリ180内に構成されたアクティブステッチャオブジェクトのリストに追加される。ステッチャオブジェクトは、以下において「ステッチャオブジェクトX」と称される。
【0099】
ビットマップフィル色空間及びステッチャオブジェクトXのビット深度は、オブジェクト1120に対応する顔のビットマップの色空間及びビット深度に設定される。次に、顔のビットマップは、ステッチャオブジェクトXのビットマップフィルと組み合わされる(方法600のステップ655と同様)。図14Aに、ステッチャオブジェクトXに対するビットマップデータ1410及びステッチャオブジェクトXにおいて「WRITTEN」とマーク付けされた画素1420を示す。
【0100】
例によると、処理される次のオブジェクトは、三角形のビットマップを参照するPDLオブジェクト1130である。三角形のビットマップの寸法がステッチングに対する最大許容度を下回るため、三角形のビットマップはステッチングに適していると考えられる(方法600のステップ610に従う)。フィル起動フラグが設定されると、処理は、メモリ180内に構成されたアクティブステッチャオブジェクトのリストから適切なステッチャオブジェクトを判定するように直接進む。
【0101】
三角形のビットマップオブジェクト1130は、ステッチャオブジェクトXと互換性があることがわかる(ステップ730と同様)。三角形のビットマップオブジェクト1130が、ステップ740において判定されたように、ステッチャオブジェクトXにおいて不正であるとマーク付けされた画素に全くオーバラップしないため、三角形のビットマップは、ステップ735において判定されてもよいステッチャオブジェクトXのバウンディングボックス内に完全に含まれる。従って、ステッチャオブジェクトXは、組合せに使用するためのステッチャオブジェクトとして選択される。
【0102】
次に、三角形のビットマップオブジェクト1130は、ステップ655と同様にビットマップフィルステッチャオブジェクトXと組み合わされる。図14Bに、ステッチャオブジェクトXに対するビットマップデータ1430の状態を示す。図14Bに、ステッチャオブジェクトXにおいて、三角形のビットマップオブジェクト1130を参照するオブジェクトを処理した後に不正であるとマーク付けされた画素1140を更に示す。
【0103】
処理される次のオブジェクトは、円のビットマップを参照するオブジェクト1140である。円のビットマップオブジェクト1140の寸法がステッチングに対する最大許容度を下回るため、オブジェクト1140はステッチングに適していると考えられる(方法600のステップ610と同様)。フィルアクティブフラグが設定されると、処理は、アクティブステッチャオブジェクトのリストから適切なステッチャオブジェクトを判定するように直接進む(ステップ650と同様)。円のビットマップオブジェクト1140は、ステッチャオブジェクトXのバウンディングボックス内に完全に含まれるため(ステップ735における判定と同様)、ステッチャオブジェクトXと互換性があると判定される(ステップ730と同様)。しかし、円のビットマップオブジェクト1140は、不正であるとマーク付けされたステッチャオブジェクトXにおいて画素にオーバラップする(ステップ740における判定と同様)。従って、ステッチャオブジェクトXは選択されず、互換性のあるステッチャオブジェクトは判定されない。メモリ180内に構成された停止カウントパラメータは増分され(ステップ665と同様)、停止閾値パラメータを越えたと判定される(ステップ670と同様)。従って、メモリ180内に構成されたフィル組合せアクティブフラグはクリアされ、起動カウント及び停止カウントは、ステップ675と同様にゼロ(0)に設定される。
【0104】
図15に、方法500に従って図11のページ1110を処理した結果として得られるディスプレイリスト1500を示す。ディスプレイリストオブジェクトエントリ1 1505は、第1のオブジェクト1120に対応し、正方形型のパス1510、ステッチャオブジェクトXからのビットマップフィル1515及び合成オペレータOVER1520を参照する。
【0105】
ディスプレイリストオブジェクトエントリ2 1525は、第2のオブジェクト1130に対応し、正方形のパス1530、ステッチャオブジェクトXからのビットマップフィル1515及び合成オペレータOVER1535を参照する。
【0106】
ディスプレイリストオブジェクトエントリ3 1540は、第3のオブジェクト1140に対応し、正方形のパス1545、第3のオブジェクト1140からの円のビットマップフィル1550及び合成オペレータOVER1555を参照する。図15に示されるように、ディスプレイリストオブジェクト1(1505)及び2(1525)の双方は、同一のフィル情報1515を参照する。
【0107】
例示的なページ1110のタイル型のフィルマップ表現1610を図16に示す。フィルマップタイル1620は、(列、行)の形式で表された位置(2、2)にある。図16の右側に拡張したフィルマップタイル1620のコンテンツが示される。図16に示されるように、フィルマップタイル1620における4つの領域1630、1640、1650及び1660は、それぞれ、1、2、1及び3の指標を含むフィル合成シーケンスを参照する。
【0108】
図17に、タイル型のフィルマップ1610に対するフィル合成シーケンスの表1710及び対応するレベル情報1720、1730を示す。レベル情報#1 1720は、顔のビットマップ1120を参照するオブジェクト及び三角形のビットマップ1130を参照するオブジェクトの双方に対応するレンダリング情報を含む。レベル情報#1 1720は、ステッチャオブジェクトXに対するビットマップフィル1515及び合成オペレータOVER1520を参照する。レベル情報#2 1730は、円のビットマップを参照するオブジェクト1140に対応するレンダリング情報を含む。レベル情報#2 1730は、円のビットマップ1550を参照し、合成オペレータOVER1555を有する。
【0109】
フィル合成シーケンスの表1310をフィル合成シーケンスの表1710と比較すると、例示的なページ1110に対してフィル組合せ方法を実行することによりフィル合成シーケンスの数が4から3に減少したことが分かる。レベル情報データの総数が3(1320、1330、1340)から2(1720、1730)に減少したことが更に分かる。これは、中間タイル型のフィルマップにより必要とされたメモリ使用量の合計が減少したことを意味する。
【0110】
図18は、各々がフィルと関連付けられる複数のオブジェクトと共用中間フィルとを関連付ける方法1800を示すフローチャートである。方法1800は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のソフトウェアコードモジュールとして実現されてもよい。上述したように、各オブジェクトは、ページ310等のページのページ記述言語(PDL)オブジェクトであってもよい。この例において、制御プログラム190は、ソフトウェアアプリケーション133からページ310の記述を受信し、記述をメモリ180に格納してもよい。ページ記述におけるオブジェクトは、メモリ180内に構成された上述したようなディスプレイリストの形式で第1の共用中間形式ページ表現に配置される。ディスプレイリストの各オブジェクトは、フィルデータ、パスデータ及び合成命令を参照する。更に上述したように、一実現例において、制御プログラム190は、何れかのフィルが共用中間フィルに組み合わされるかを判定するようにページ記述言語オブジェクトを処理してもよい。そのような中間フィルは、隣接するフィルと共に複数のオブジェクトにより共用されるフィルである。換言すると、オブジェクトのフィルが互いに近接している場合、中間フィルは、いくつかのオブジェクトのフィルを置換するように作成され、個々のフィルを処理するのと比較して必要とされるリソースを減少する。
【0111】
方法1800はステップ1801において開始し、制御プログラム190が、第1の複数のオブジェクトのフィルに基づいて共用中間フィルのバウンディング領域(すなわち、バウンディングボックス)を判定するステップを実行する。上述したように、オブジェクトがバウンディングボックスを含む場合、フィルに対するバウンディングボックスは、現在処理されているオブジェクトから判定されてもよい。或いは、フィルに対するバウンディングボックスは、フィルの寸法をページ空間に変換するためにフィルのアフィン変換を使用して判定されてもよく、変形されたポイントのバウンディングボックスを取得してもよい。
【0112】
次のステップ1803において、制御プログラム190は、第1のオブジェクトを共用中間フィルと関連付けるステップを実行する。一実現例において、制御プログラムは、現在処理されているPDLオブジェクトに対応するディスプレイリストエントリのフィル特性を設定することにより、第1のオブジェクトを中間フィルと関連付けてもよい。その後、次のステップ1805において、制御プログラムは、第2のオブジェクトを取得するステップを実行する。上述したように、第2のオブジェクトは、「ステッチャオブジェクト」と呼ばれてもよい。
【0113】
方法1800は次のステップ1807に継続し、(a)第2のオブジェクトのフィルがバウンディング領域内に含まれ、(b)第2のオブジェクトのフィルが第1のオブジェクトのフィルとオーバラップしていない場合に制御プログラム190が、第2のオブジェクトのフィルに基づいて共用中間フィルを更新するステップを実行する。最後に、ステップ1809において、制御プログラム190は、第2のオブジェクトを更新された共用中間フィルと関連付けるステップを実行する。図7及び図8を参照して上述したように、制御プログラム190は、方法700及び方法800に従って、ステップ1807において共用中間フィルを更新してもよく、第2のオブジェクトを共用中間フィルと関連付けてもよい。
【0114】
上述した方法の別の実現例において、ステッチャオブジェクトのバウンディングボックスは、ステッチャオブジェクトと組み合わされた第1のビットマップフィルのバウンディングボックスに最初に設定されてもよい。候補フィルのバウンディングボックスとステッチャオブジェクトのバウンディングボックスとの間の距離が所定の最短距離より短い場合、候補フィル及びステッチャオブジェクトは近接していると判定される。候補フィルがステッチャオブジェクトと組み合わされる場合、ステッチャオブジェクトのバウンディングボックスは、ステッチャオブジェクトの元のバウンディングボックス及び候補フィルのバウンディングボックスの双方を含むように拡大される。
【0115】
一例として、図19A及び図19Bに、ステッチャオブジェクトのバウンディングボックス1910と候補フィルのバウンディングボックス1920とがオーバラップしないことを示す。矢印1930により示されたようなステッチャオブジェクトのバウンディングボックス1910と候補フィルのバウンディングボックス1920との間の距離は、所定の最短距離より短い。この場合、候補フィルはステッチャオブジェクトと組み合わされ、ステッチャオブジェクトのバウンディングボックスは、元のステッチャオブジェクトのバウンディングボックス1910及び候補フィルのバウンディングボックス1920の双方を含む新しいバウンディングボックス1940に更新される。
【0116】
或いは、別の実現例において、ステッチングは、平坦なフィルを組み合わせるために使用されてもよい。この場合、平坦なフィルのバウンディングボックスは、PDLオブジェクトのバウンディングボックスから判定されてもよい。その後、平坦なフィルは、ステッチャオブジェクトに対して平坦なフィル色をビットマップフィルにコピーされたステッチャオブジェクトにコピーすることにより、ステッチャオブジェクトと組み合わされてもよい。
【産業上の利用可能性】
【0117】
説明された構成は、コンピュータ及びデータ処理業界、並びに特に画像処理に適用可能である。
【0118】
上記の記述は本発明のいくつかの実施形態のみを説明し、本発明の範囲及び趣旨から逸脱せずに、変形及び/又は変更がいくつかの実施形態に対して行なわれてもよい。実施形態は、限定するものではなく例示するものである。
【0119】
本明細書に関して、「備える」という言葉は、「主に含むが、単独で必要ではない」、或いは「有する」又は「含む」ことを意味し、「のみから構成される」ことではない。「備える」の語形変化は、それに対応して意味の変化を示す。
【技術分野】
【0001】
本発明は、一般に画像処理に関し、特に、複雑なディスプレイリストのメモリ使用量を減少する方法及び装置に関する。更に本発明は、中間フィルを複数のオブジェクトと関連付けるコンピュータプログラムを記録している媒体に関する。
【背景技術】
【0002】
1つ以上のページから構成されてもよく、且つ、プリンタ上に印刷される印刷ジョブは、一般にPostScript(登録商標)又はAdobe(登録商標)のPDF、或いはHP(登録商標)のPCL等のページ記述言語(PDL)を利用する形式でプリンタに送出される。一般的なページ記述言語プリンタにおいて、ページ記述入力は、ハイレベルなグラフィックスオブジェクトに変換される。一般に各グラフィックスオブジェクトは、多数のグラフィックス要素からなり、各グラフィック要素は、通常オブジェクトがページ上でアクティブな場所を示すパスデータ、オブジェクトの色を示すフィルデータ及びオブジェクトが以下のあらゆるオブジェクトと対話する方法を示す合成データを含む。グラフィックス要素は、ディスプレイリストとして既知である中間形式で格納される。その後、完成したディスプレイリストは、プリンタエンジン宛ての画素データのページにレンダリングするレンダラに送出される。
【0003】
一般的な種類のフィルは、単一色、ビットマップ、並びに線形シェーディング及びラジアルシェーディングである。ビットマップフィルは、一般に、ソース座標系で規定されるソースビットマップデータ及びソース座標系と出力ページ座標系との間でマッピングするアフィン変換から構成される。
【0004】
ジョブは、各々がパス及び個々のビットマップフィルを参照する非常に多数のグラフィックスオブジェクトを潜在的に含んでもよい。この場合、ディスプレイリストを格納するのに必要とされるメモリは、全ジョブメモリのかなりの部分を占める。メモリが多大なコストを示すため、レンダリングされたページの品質を大幅に低下することなく、ディスプレイリストにより使用されるメモリを減少することが望ましい。
【0005】
ディスプレイリストメモリを減少する1つの既知の方法は、ディスプレイリストをフィルマップとして既知である中間形式に変換する方法である。フィルマップは、非オーバラッピング領域から構成される。各領域は、所定の領域においてアクティブなオブジェクトから導出される1つ以上のフィルのシーケンスを参照する。領域がフィルの同一のシーケンスを参照する場合、隣接領域は組み合わされる。一般に、中間形式を格納する必要があるメモリは、領域の数に関係する。しかし、多数の個々のフィルを含む多数のディスプレイリストオブジェクトがある場合、中間形式で多数の領域が存在する可能性が高い。ディスプレイリストをフィルマップ中間形式に変換することにより、オブジェクト毎にパスデータを格納する必要があるメモリは解放される。しかし、フィルデータを格納する必要があるメモリは依然として高いままである。
【0006】
多数の画像と関連付けられたビットマップフィルに対して必要なメモリを減少する方法は、フィルを統合画像にレンダリングすることによりフィルを組み合わせる方法である。画像をレンダリングすることは、実行される動作を合成することを含む。透明であるか、或いは下地オブジェクトで合成されるオブジェクトをレンダリングするために、下地オブジェクトもレンダリングされる必要がある。これは、最悪の場合、ディスプレイリスト全体がレンダリングされる必要があり、この処理が計算的にもメモリ使用量においてもコストがかかることを意味する。
【0007】
従って、中間形式により使用されるメモリの量を減らす必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の目的は、既存の構成の1つ以上の欠点を実質的に克服するか、或いは少なくとも改善することである。
【課題を解決するための手段】
【0009】
本発明の一態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける方法であって、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法が提供される。
【0010】
本発明の別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける方法であって、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法が提供される。
【0011】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するプロセッサであって、前記コンピュータプログラムは、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、を有し、
前記更新された共用フィルを受信し、前記更新された共用フィルを使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングするプリンタと、
を有することを特徴とするシステムが提供される。
【0012】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するプロセッサであって、前記コンピュータプログラムは、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、を有し、
前記更新された共用フィルを受信し、前記更新された共用フィルを使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングするプリンタと、
を有することを特徴とするシステムが提供される。
【0013】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共有フィルを複数のオブジェクトと関連付ける装置であって、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共有フィルのバウンディング領域を判定する手段と、
前記第1のオブジェクトを前記共有フィルと関連付ける手段と、
第2のオブジェクトを受信する手段と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共有フィルを更新する手段と、
前記第2のオブジェクトを前記更新された共有フィルと関連付ける手段と、
を有することを特徴とする装置が提供される。
【0014】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける装置であって、
第1のオブジェクトを前記共用フィルと関連付ける手段と、
第2のオブジェクトを受信する手段と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する手段と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける手段と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする手段と、
を有することを特徴とする装置が提供される。
【0015】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるコンピュータプログラムが記録されたコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とするコンピュータ読み取り可能な媒体が提供される。
【0016】
本発明の更に別の態様によると、複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるコンピュータプログラムが記録されたコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とするコンピュータ読み取り可能な媒体が提供される。
【0017】
本発明の更に別の態様によると、ディスプレイリストにおいて複数のオブジェクトに対して共用されるフィル情報を作成する方法であって、
フィル情報を有する第1のオブジェクトを受信する工程と、
前記第1のオブジェクトのフィル情報とオーバラップしていないフィル情報を有する第2のオブジェクトを受信する工程と、
前記第1のオブジェクトのフィル情報が前記第2のオブジェクトのフィル情報とオーバラップしていない場合に前記第2のオブジェクトのフィル情報に基づいて前記第1のオブジェクトのフィル情報を更新する工程と、
前記第2のオブジェクトを前記更新されたフィル情報と関連付けて前記第1のオブジェクト及び前記第2のオブジェクトに対して共用されるフィル情報を作成する工程と、
前記作成された共用されるフィル情報を使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法が提供される。
【0018】
本発明の他の態様が更に開示される。
【発明の効果】
【0019】
本発明によれば、中間形式により使用されるメモリの量を減らすことができる。
【図面の簡単な説明】
【0020】
【図1A】説明する構成が実施される画素レンダリングシステムを総合的に示す概略ブロック図である。
【図1B】プロセッサ及びメモリを示す詳細な概略ブロック図である。
【図1C】ネットワークを介してプリンタに接続されたコンピュータモジュールを示す図である。
【図2】中間ページ表現を生成する方法を概略的に示すフローチャートである。
【図3】例示的なページを示す図である。
【図4】図3の例示的なページに対するディスプレイリスト中間ページ表現を示す図である。
【図5】ページ記述言語(PDL)ページのディスプレイリスト中間ページ表現を生成する方法を概略的に示すフローチャートである。
【図6】図5の方法で実行されたように、ステッチングを候補フィルに適用する方法を概略的に示すフローチャートである。
【図7】候補フィルと組み合わせるのに適したステッチャオブジェクトを判定する方法を概略的に示すフローチャートである。
【図8】図3の方法で実行されたように、候補フィルをステッチャオブジェクトと組み合わせる方法を概略的に示すフローチャートである。
【図9】図3に示されたページに対するタイル型のフィルマップ中間表現を示す図である。
【図10】図9に示されたタイル型のフィルマップ中間表現に対するフィル合成シーケンス及び対応するレベル情報を示す表である。
【図11】PDLページの一例を示す図である。
【図12】図11に示されたページに対するタイル型のフィルマップ中間表現を示す図である。
【図13】図12に示されたタイル型のフィルマップ中間表現に対するフィル合成シーケンス及び対応するレベル情報を示す表である。
【図14A】図5の方法に従って図11のページの処理中のステッチャオブジェクトの状態を示す図である。
【図14B】図11に示されたページの処理中のステッチャオブジェクトの更新された状態を示す図である。
【図15】図11に示されたページに対するディスプレイリスト中間ページ表現を示す図である。
【図16】図11に示されたページに対する別のタイル型のフィルマップ中間表現を示す図である。
【図17】図16に示されたタイル型のフィルマップ中間表現に対するフィル合成シーケンス及び対応するレベル情報を示す図である。
【図18】各々がフィルと関連付けられる複数のオブジェクトと中間フィルとを関連付ける方法を示すフローチャートである。
【図19A】ステッチャオブジェクトのバウンディングボックスと候補フィルのバウンディングボックスとがオーバラップしない一例を示す図である。
【図19B】ステッチャオブジェクトのバウンディングボックスと候補フィルのバウンディングボックスとがオーバラップしない一例を示す図である。
【発明を実施するための形態】
【0021】
添付の図面のうちの何れか1つ以上において、同一の図中符号を有するステップ及び/又は特徴を参照する。逆の意図が示されない限り、これらのステップ及び/又は特徴は、本明細書のために同一の機能又は動作を有する。
【0022】
図1A〜図1Cは、説明する種々の構成が実施される画素レンダリングシステム100を総合的に示す概略ブロック図である。
【0023】
図1Aに示されるように、システム100は、コンピュータモジュール101、キーボード102、マウスポインタデバイス103、スキャナ126、カメラ127及びマイク170等の入力デバイス、並びにプリンタ115、表示装置114及びスピーカ117を含む出力デバイスにより形成される。外部変復調器(モデム)送受信機デバイス116は、接続121を介して通信ネットワーク120と通信するためにコンピュータモジュール101により使用されてもよい。ネットワーク120は、インターネット又は専用ワイドエリアネットワーク(WAN)等のWANであってもよい。接続121が電話線である場合、モデム116は従来の「ダイヤルアップ」モデムであってもよい。或いは、接続121が大容量(例えば、ケーブル)接続である場合、モデム116はブロードバンドモデムであってもよい。無線モデムは、ネットワーク120に無線接続するために更に使用されてもよい。
【0024】
コンピュータモジュール101は、一般に、少なくとも1つのプロセッサユニット105、並びに例えば半導体ランダムアクセスメモリ(RAM)及び半導体読み出し専用メモリ(ROM)から形成されたメモリユニット106を含む。モジュール101は、ビデオディスプレイ114に結合するオーディオ/ビデオインタフェース107、スピーカ117及びマイク170を含む多数の入出力(I/O)インタフェース、キーボード102、マウス103、スキャナ126、カメラ127及びオプションとしてジョイスティック(不図示)用のI/Oインタフェース113、並びに外部モデム116用のインタフェース108を更に含む。いくつかの実現例において、モデム116は、インタフェース108等のコンピュータモジュール101内に組み込まれてもよい。コンピュータモジュール101は、接続123を介して画素レンダリングシステム100がローカルエリアネットワーク(LAN)として既知であるローカルコンピュータネットワーク122に接続できるようにするローカルネットワークインタフェース111を更に有する。更に示されるように、ローカルネットワーク122は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えたデバイスを含むワイドネットワーク120に接続124を介して更に結合してもよい。インタフェース111は、Ethernet(登録商標)回路カード、Bluetooth(登録商標)無線構成又はIEEE802.11無線構成により形成されてもよい。
【0025】
インタフェース108及び113は、直列接続性及び並列接続性の何れか一方又は双方を提供してもよい。一般に直列接続性は、USB(Universal Serial Bus)規格に従って実現され、対応するUSBコネクタ(不図示)を有する。記憶装置109が提供され、一般に記憶装置109は、ハードディスクドライブ(HDD)110を含む。フレキシブルディスクドライブ及び磁気テープドライブ(不図示)等の他の記憶装置が更に使用されてもよい。オプションのディスクドライブ112は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク(例えば、CD−ROM、DVD)、USB−RAM及びフレキシブルディスク等のポータブルメモリ装置は、システム100に対する適当なデータのソースとして使用されてもよい。
【0026】
コンピュータモジュール101の構成要素105〜113は、一般に、相互接続バス104を介して通信する。説明する構成が実施されるコンピュータの例には、IBM−PC’s及び互換性のあるもの、Sun Sparcstations、Apple Mac(登録商標)又はそれから進化した同様のコンピュータシステムが含まれる。
【0027】
以下に説明する方法は、システム100を使用して実現されてもよい。方法において説明される図2〜図16Bの処理は、システム100内で実行可能な1つ以上のソフトウェアアプリケーションプログラム133及び/又は制御プログラム190(図1Cを参照)として実現されてもよい。特に、説明される方法のステップは、システム100内で実行されるソフトウェアで命令131により実施される。ソフトウェア命令131は、各々が1つ以上の特定のタスクを実行する1つ以上のソフトウェアコードモジュールとして形成されてもよい。ソフトウェアは2つの別個の部分に更に分割されてもよく、第1の部分及び対応するソフトウェアコードモジュールは説明する方法を実行し、第2の部分及び対応するソフトウェアコードモジュールは、第1の部分とユーザとの間のユーザインタフェースを管理する。
【0028】
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ読み取り可能な媒体に格納されてもよい。ソフトウェアは、コンピュータ読み取り可能な媒体からシステム100にロードされ、システム100により実行される。そのようなソフトウェアを有するコンピュータ読み取り可能な媒体又はコンピュータ読み取り可能な媒体上に記録されたコンピュータプログラムは、コンピュータプログラム製品である。システム100においてコンピュータプログラムを使用することにより、説明する方法を実現する有利な装置を実施するのが好ましい。
【0029】
ソフトウェア133は、一般にHDD110又はメモリ106に格納される。ソフトウェア133は、コンピュータ読み取り可能な媒体からシステム100にロードされ、その後システム100により実行される。従って、例えばソフトウェアは、光ディスクドライブ112により読み出される光学的に読み出し可能なCD−ROM媒体125上に格納されてもよい。そのようなソフトウェアを有するコンピュータ読み取り可能な媒体又はコンピュータ読み取り可能な媒体上に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム100においてコンピュータプログラムを使用することにより、説明する方法を実現する有利な装置を実施するのが好ましい。
【0030】
いくつかの例において、アプリケーションプログラム133は、1つ以上のCD−ROM125上で符号化されてユーザに供給され、対応するドライブ112を介して読み出されてもよく、或いはユーザによりネットワーク120又は122から読み出されてもよい。更にソフトウェアは、他のコンピュータ読み取り可能な媒体からシステム100にロードされてもよい。コンピュータ読み取り可能な記憶媒体は、実行及び/又は処理するためにシステム100に命令及び/又はデータを提供することに関係するあらゆる記憶媒体を示す。そのような記憶媒体の例には、フレキシブルディスク、磁気テープ、CD−ROM、ハードディスクドライブ、ROM又は集積回路、USBメモリ、光磁気ディスク、或いは例えばPCMCIAカード等のコンピュータ読み取り可能なカードが含まれ、そのようなデバイスは、コンピュータモジュール101の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及び/又はデータをコンピュータモジュール101に提供することに更に関係してもよいコンピュータ読み取り可能な伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
【0031】
上述したアプリケーションプログラム133の第2の部分及び対応するコードモジュールは、ディスプレイ114上にレンダリングされるか、或いは表される1つ以上のグラフィカルユーザインタフェース(GUI)を実現するように実行されてもよい。一般にキーボード102及びマウス103を操作することにより、システム100及びアプリケーションのユーザは、GUIと関連付けられたアプリケーションに制御コマンド及び/又は入力を提供するように機能的に適応可能な方法でインタフェースを操作してもよい。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ117を介して出力された音声プロンプト及びマイク170を介して入力されたユーザ音声コマンドを利用するオーディオインタフェースが更に実現されてもよい。
【0032】
図1Bは、プロセッサ105及び「メモリ」134を示す詳細な概略ブロック図である。メモリ134は、図1Aのコンピュータモジュール101によりアクセスされる全てのメモリモジュール(HDD110及び半導体メモリ106を含む)の論理的な集約を示す。
【0033】
コンピュータモジュール101が最初に電源を投入される場合、自己診断(POST)プログラム150が実行する。一般にPOSTプログラム150は、半導体メモリ106のROM149に格納される。ROM149等のハードウェアデバイスは、ファームウェアと呼ばれる場合もある。POSTプログラム150は、コンピュータモジュール101内のハードウェアを検査して適切に機能することを保証し、一般に、正しく動作するためにROM149に更に格納されたプロセッサ105、メモリ(109、106)及び基本入出力システム(BIOS)ソフトウェアモジュール151をチェックする。POSTプログラム150が正常に実行したら、BIOS151はハードディスクドライブ110を起動する。ハードディスクドライブ110を起動することにより、ハードディスクドライブ110上に常駐するブートストラップローダプログラム152がプロセッサ105を介して実行する。これにより、オペレーティングシステム153は、RAMメモリ106にロードされると動作を開始する。オペレーティングシステム153は、プロセッサ105により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
【0034】
オペレーティングシステム153は、メモリ(109、106)を管理し、コンピュータモジュール101上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、システム100で使用可能な種々のメモリは、各処理が効率的に実行するように適切に使用される必要がある。従って、集約メモリ134は、メモリの特定の部分が割り当てられる方法を示すことを意図せず(明示的に記載されない限り)、システム100によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
【0035】
プロセッサ105は、制御ユニット139、演算論理装置(ALU)140及びキャッシュメモリと呼ばれることもあるローカルメモリ又は内部メモリ148を含む多数の機能モジュールを含む。一般にキャッシュメモリ148は、レジスタ部に複数の記憶レジスタ144〜146を含む。1つ以上の内部バス141は、これらの機能モジュールを機能的に相互接続する。一般にプロセッサ105は、接続118を使用してシステムバス104を介して外部デバイスと通信する1つ以上のインタフェース142を更に有する。
【0036】
アプリケーションプログラム133は、条件付き分岐命令及びループ命令を含んでもよい一連の命令131を含む。プログラム133は、プログラム133を実行するのに使用されるデータ132を更に含んでもよい。命令131及びデータ132は、それぞれ、記憶場所128〜130及び135〜137に格納される。命令131及び記憶場所128〜130の相対的な大きさに依存して、特定の命令は、記憶場所130に示された命令により描かれたように単一の記憶場所に格納されてもよい。或いは、命令は、記憶場所128及び129に示された命令部分により描かれたように、各々が別個の記憶場所に格納される多数の部分に分割されてもよい。
【0037】
一般にプロセッサ105は、そこで実行される命令の集合を与えられる。次にプロセッサ105は、命令の別の集合を実行することにより自身が反応する後続の入力を待つ。各入力は、入力デバイス102、103の1つ以上により生成されたデータ、ネットワーク120、122のうちの一方を介して外部ソースから受信したデータ、記憶装置106、109のうちの一方から検索したデータ又は対応する読み取り装置112に挿入された記憶媒体125から検索したデータを含む多数のソースのうちの1つ以上から提供されてもよい。いくつかの例において、命令の集合を実行した結果、データが出力されてもよい。実行することは、データ又は変数をメモリ134に格納することを更に含んでもよい。
【0038】
説明する方法は、対応する記憶場所155〜158においてメモリ134に格納される入力変数154を使用する。説明する方法は、対応する記憶場所162〜165においてメモリ134に格納される出力変数161を生成する。中間変数は、記憶場所159、160、166及び167に格納されてもよい。
【0039】
プロセッサ105のレジスタ部144〜146、演算論理装置(ALU)140及び制御ユニット139は、プログラム133を構成する命令集合において命令毎に「取り込み、復号化及び実行」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。取り込み、復号化及び実行サイクルの各々は、
(a)記憶場所128からの命令131を取り込むか或いは読み取る取り込み動作、
(b)制御ユニット139が取り込まれた命令を判定する復号化動作、並びに
(c)制御ユニット139及び/又はALU140が命令を実行する命令動作を含む。
【0040】
その後、次の命令に対する更なる取り込み、復号化及び実行サイクルが実行されてもよい。同様に、制御ユニット139が値を記憶場所132に格納するか或いは書き込むことにより、格納サイクルが実行されてもよい。
【0041】
図4〜図6の処理におけるステップ又はサブ処理の各々は、プログラム133の1つ以上の部分と関連付けられ、プログラム133の示された部分に対して命令集合において命令毎に取り込み、復号化及び実行サイクルを実行するようにプロセッサ105のレジスタ部144〜147、ALU140及び制御ユニット139が共に動作することにより実行される。
【0042】
或いは、説明される方法は、方法の機能又はサブ機能を実行する1つ以上の集積回路等の専用ハードウェアで実現されてもよい。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ又は1つ以上のマイクロプロセッサ及び関連付けられたメモリを含んでもよい。
【0043】
図1Cは、ネットワーク122を介してプリンタ115に接続されたコンピュータモジュール101を示す図である。
【0044】
プリンタ115は、ソフトウェアアプリケーション133と同様に、メモリ180に常駐する制御プログラム190を実行するコントローラプロセッサ185を備える。プリンタ115は、画素レンダリング装置196及びプリンタエンジン195を更に備える。構成要素180、185、195及び196は、通信バス178を介して結合される。
【0045】
画素レンダリング装置196は、バス178を介してプロセッサ185及びプリンタエンジン195に結合されたASICの形式であってもよい。しかし、画素レンダリング装置196は、プロセッサ185により実行されたソフトウェアで更に実現されてもよい。画素レンダリングシステム100において、ソフトウェアアプリケーション133は、プロセッサ105の実行中、各ページがテキスト、線、フィル領域及び画像データ等のオブジェクトを含むページベースの文書を作成する。ソフトウェアアプリケーション133は、ネットワーク122を介して、ハイレベルなページの記述(例えば、ページ記述言語(PDL)ファイルとして)をプリンタ115のコントローラプロセッサ185により実行される制御プログラム190に送出する。
【0046】
制御プログラム190は、ソフトウェアアプリケーション133からページの記述を受信し、記述をメモリ180に格納してもよい。ページ記述におけるオブジェクトは、メモリ180内に構成された以下に更に詳細に説明されるディスプレイリストと呼ばれた第1の中間形式ページ表現に配置される。ディスプレイリストの各オブジェクトは、フィルデータ、パスデータ及び合成命令を参照する。制御プログラム190は、何れかのフィルが中間フィルに組み合わされるかを判定するようにページ記述オブジェクトを処理する。制御プログラム190は、あらゆる必要な中間フィル又は少なくとも2つのオブジェクトにより共用される共用フィルを作成する。
【0047】
以下に更に詳細に説明されるように、ディスプレイリストは、フィルマップ及びフィル合成シーケンスの表を含む第2の中間形式ページ表現を生成するために、制御プログラム190により使用される。この場合も、フィルマップ及びフィル合成シーケンスの表を含む第2の中間形式ページ表現は、メモリ180に格納される。
【0048】
次に制御プログラム190は、フィル合成シーケンスの表を生成するようにフィル合成シーケンスの表を処理し、フィル合成シーケンスの表を単純なレンダリング動作のみを必要とするメモリ180に格納する。コントローラプロセッサ185上で実行されるプログラム190は、画素レンダリング装置196にメモリ180を提供すること、画素レンダリング装置196を初期化すること及びページのレンダリングを開始するように画素レンダリング装置196に命令することに更に対処する。
【0049】
その後、画素レンダリング装置196は、ページを画素にレンダリングするために、フィルマップ及びフィル合成シーケンスの表を使用する。画素レンダリング装置196の出力は画素データである。画素データは、ページを印刷するためにプリンタエンジン195により使用されてもよい。
【0050】
図2は、中間ページ表現を生成する方法200を概略的に示すフローチャートである。方法200は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のコードモジュールとして実現されてもよい。方法200は、ソフトウェアアプリケーション133により提供されたページ記述からフィルマップ及びフィル合成シーケンスの表を生成する。
【0051】
方法200はステップ201において開始し、制御プログラム190が、プロセッサ185の実行中にディスプレイリストを生成する。図2に示されるように、制御プログラム190は、ページ記述240を受信し、ディスプレイリストの形式で第1の中間形式ページ表現250を生成する。ディスプレイリスト中間ページ表現250は、メモリ180に格納されてもよい。図5を参照して、ステップ201において実行されたようにディスプレイリスト中間ページ表現を生成する方法500を以下に詳細に説明する。
【0052】
方法200は次のステップ203において継続し、制御プログラム190が、プロセッサ105の実行中に、ディスプレイリスト中間ページ表現250を処理し、フィルマップ及びフィル合成シーケンスの表の形式で第2の中間形式ページ表現260を生成する。この場合も、フィルマップ及びフィル合成シーケンス表現260の表は、メモリ180に格納されてもよい。
【0053】
フィルマップ及びフィル合成シーケンス表現260の表は、画素をレンダリングする画素レンダリング装置196により使用されてもよい。第2の中間形式ページ表現260のメモリ使用量を最小化するために、フィルの組合せがディスプレイリストの生成中に実行されてもよい。フィル組合せの目的は、各々がソース座標系からページ座標系への別個のアフィン変換を有する複数のフィルをソース座標系からページ座標系への単一のアフィン変換マッピングを有する単一のフィルで置換することである。
【0054】
図3に、不透明なひし形の形式の下層オブジェクト320、不透明なビットマップの形式の第2の下層オブジェクト330及び半透明の平坦な長方形340の形式の上層オブジェクト340を含む例示的なページ310を示す。
【0055】
図4に、例示的なページ310に対するディスプレイリスト400を示す。ディスプレイリスト400の各エントリ(例えば、405)は、パス情報、フィル情報及び合成情報を参照する。フィル情報は、パスの内側の色及び不透明度を特定するパス情報と関連付けられたデータである。一方、パス情報と関連付けられた合成情報は、パス情報により生成されたオブジェクトの色及び不透明度を背景オブジェクトの色及び不透明度と組み合わせるために使用された動作の表示である。図4に示されるように、ディスプレイリストオブジェクトエントリ「1」405は、不透明なひし形オブジェクト320に対応し、ひし形形状のパス410、線形ブレンドフィル415及びATOP合成オペレータ420を参照する。ディスプレイリストオブジェクトエントリ「2」425は、ビットマップオブジェクト330に対応し、正方形のパス430、ビットマップフィル435及びOVER合成オペレータ440を参照する。ディスプレイリストオブジェクトエントリ「3」445は、半透明の平坦な長方形340に対応し、長方形のパス450、半透明の平坦な色フィル455及びOVER合成オペレータ460を参照する。
【0056】
図5を参照して、ステップ201において実行されたようにディスプレイリスト中間ページ表現を生成する方法500を以下に更に詳細に説明する。方法500は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のソフトウェアコードモジュールとして実現されてもよい。中間ページ表現は、ページ310等の1つ以上のオブジェクトを含むページ記述言語(PDL)ページから生成される。PDLページはメモリ180に格納されてもよい。
【0057】
方法500は初期化ステップ515において開始し、制御プログラム190が、プロセッサ185の実行中にメモリ180内に格納されたステッチングパラメータを初期化する。方法500において使用されるステッチングパラメータは、「アクティブなステッチャオブジェクトのリスト」、「フィル組合せアクティブフラグ」、「起動カウント」及び「停止カウント」である。
【0058】
起動カウントは、処理されており、ステッチングに適したオブジェクトの数をカウントする。起動カウントは、起動閾値に到達したかを判定するために使用される。起動閾値に到達した場合、フィル組合せを起動する。
【0059】
停止カウントは、フィル組合せが適切なフィルを組み合わせるのに失敗した回数を記録する。停止カウントは、停止閾値に到達したかを判定するために使用される。停止閾値に到達した場合、フィル組合せを停止する。
【0060】
一実現例において、プロセッサ185は、初期化ステップ515において、フィル組合せアクティブフラグをTRUEに設定し、アクティブステッチャオブジェクトのリストをnone/emptyに設定し、起動カウント及び停止カウントをゼロ(0)に設定する。
【0061】
判定ステップ520において、処理され、ディスプレイリストに追加される必要のある残りのオブジェクトがPDLページにあることを制御プログラム190が判定する場合、方法500はステップ530に進む。処理すべき更なるPDLオブジェクトがない場合、方法500は終了する。
【0062】
取り込みステップ530において、処理されるPDLオブジェクトがメモリ180から取得される。次に方法500はディスプレイリストエントリステップ535に進み、新しいディスプレイリストエントリが、メモリ180内に構成されたディスプレイリストに割り当てられ、追加される。次に処理はパスデータステップ540に進み、制御プログラム190がPDLオブジェクトからパスデータを判定する。パスデータは、メモリ180内に構成されたディスプレイリストの新しいディスプレイエントリに追加される。
【0063】
次に方法500は合成オペレータステップ545に進み、合成オペレータが、制御プログラム190によりPDLオブジェクトから判定され、ディスプレイリスト内の新しいディスプレイエントリに追加される。PDLオブジェクトのフィル情報は、以下においてPDLオブジェクトのフィルと呼ばれる。次に方法500はステップ550に進み、PDLオブジェクトのフィルが、メモリ180内で「候補フィル」と呼ばれる一時フィルとして取得され、格納される。次に、処理は候補フィルステッチングステップ555に進む。ステッチングステップ555において、制御プログラム190は、プロセッサ185の実行中に、ステッチングを候補フィルに適用し、現在処理されているPDLオブジェクトに対応する新しいディスプレイリストエントリのフィル特性を設定する。次に、図6を参照して、ステップ555において実行されたようにステッチングを候補フィルに適用する方法600を説明する。
【0064】
方法600は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のソフトウェアコードモジュールとして実現されてもよい。
【0065】
方法600は判定ステップ610において開始し、プロセッサ185の実行中に、基準の集合に基づいて候補フィルがステッチングに適していることを制御プログラム190が判定する場合、方法600は増分ステップ625に進む。さもなければ、方法600は設定ステップ615に進む。基準の集合は予め判定されていてもよい。一実現例において、基準の集合は、フィルがビットマップフィルである場合、ソースビットマップの寸法が第1の所定の大きさより小さい場合及び変換されたソースビットマップの寸法が第2の所定の大きさより小さい場合にフィルがステッチングに適していることを含んでもよい。
【0066】
設定ステップ615において、現在処理されているオブジェクトに対するフィルが候補フィルに設定され、方法600は終了する。
【0067】
増分ステップ625において、メモリ180内に構成されたステッチング起動カウントパラメータは、制御プログラム190により増分される。チェックステップ630において、フィル組合せアクティブフラブが設定されたことを制御プログラム190が判定する場合、方法600は互換性のあるステッチャオブジェクトステップ645に進む。さもなければ、方法600は判定ステップ635に進む。
【0068】
ステップ645において、制御プログラム190は、候補フィルと組み合わせるのに適したアクティブステッチャオブジェクトのリストにおいてステッチャオブジェクトを判定するように試みる。図7を参照して、アクティブステッチャオブジェクトのリストにおいて候補フィルと組み合わせるのに適したステッチャオブジェクトを判定する方法700を以下に更に詳細に説明する。
【0069】
判定ステップ635において、所定の起動閾値を超えた場合、方法600はステップ640に進む。さもなければ、方法600はステップ615に進む。起動閾値は、例えば起動カウントが所定の値を上回る単純な閾値であってもよい。或いは、起動閾値は、例えば起動カウントと処理されたオブジェクトの総数との比が所定の値を上回るより複雑な閾値であってもよい。
【0070】
起動ステップ640において、制御プログラム190は、プロセッサ185の実行中に、メモリ180内に構成されたフィル組合せアクティブフラグを設定してもよい。
【0071】
判定ステップ650において、適切な既存のステッチャオブジェクトがステップ645において判定されたことを制御プログラム190が判定する場合、方法600は組合せステップ655に進む。さもなければ、方法600は増分ステップ665に進む。
【0072】
一実現例において、Found_Stitcher変数はメモリ180内に構成されてもよい。この場合、制御プログラム190は、Found_Stitcher変数が「None」ではない場合に適切なステッチャオブジェクトが発見されたことを判定してもよい。
【0073】
組合せステップ655において、候補フィルは、ステップ645において適していると判定されたステッチャオブジェクトと組み合わされる。図8を参照して、候補フィルをステッチャオブジェクトと組み合わせる方法800を以下に更に詳細に説明する。候補フィルがステッチャオブジェクトと組み合わされると、方法600は終了する。
【0074】
アクティブステッチャオブジェクトのリストにおいて候補フィルと組み合わせるのに適した既存のステッチャオブジェクトがないことをステップ650において制御プログラム190が判定する場合、処理はステップ650から増分ステップ665に進む。ステップ665において、制御プログラム190は、プロセッサ185の実行中に、メモリ180内に構成された停止カウントパラメータを増分する。次に処理はステップ665からステップ670に進み、プロセッサ185の実行中に、停止閾値を超えたことを制御プログラム190が判定する場合、処理600は停止ステップ675に進む。さもなければ、方法600は作成ステップ680に進む。一実現例において、停止カウントパラメータの値とメモリ180において構成された起動カウントパラメータの値との比が所定の値を上回る場合、停止閾値を超えたと判定される。
【0075】
ステップ675において、フィル組合せを停止する。特に、ステップ675において、メモリ180内に構成されたフィル組合せアクティブフラグは、制御プログラム190により作成される。また、起動カウントパラメータ及び停止カウントパラメータはゼロ(0)に設定される。上述したように、次に処理はステップ615に進む。
【0076】
或いは、上述したように、停止閾値を超えなかった場合、処理はステップ670から作成ステップ680に進み、制御プログラム190が新しいステッチャオブジェクトを作成する。ステッチャオブジェクトは、ビットマップフィル、どの画素が書き込まれたかを示すデータ及びステッチャオブジェクトのアクティブエリアを示すバウンディングボックスを参照する。ステッチャオブジェクトが作成される場合、一実現例において、バウンディングボックスは所定のx寸法及びy寸法で作成され、ビットマップは透明な白の画素に初期化され、全ての画素は「NOT WRITTEM」とマーク付けされる。新しいステッチャオブジェクトが作成されると、方法600は組合せステップ655に進む。組合せステップ655において、候補フィルは、ステッチャオブジェクトと組み合わされ、その後設定ステップ660に進む。設定ステップ660において、現在処理されているオブジェクトに対するフィルがステッチャオブジェクトにより参照されたビットマップフィルに設定され、方法600は終了する。
【0077】
次に、図7を参照して、アクティブステッチャオブジェクトのリストにおいて候補フィルと組み合わせるのに適したステッチャオブジェクトを判定する方法700を詳細に説明する。方法700は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のソフトウェアコードモジュールとして実現されてもよい。
【0078】
方法700はステップ710において開始し、制御プログラム190が、プロセッサ185の実行中に、メモリ180内に構成されたFound_Stitcher変数をNoneに設定する。
【0079】
チェックステップ715において、制御プログラム190は、メモリ180内に構成されたアクティブステッチャオブジェクトのリストを検査し、まだ処理されていないオブジェクトがあるかを判定する。アクティブステッチャオブジェクトのリストにおける全てのオブジェクトが処理された場合、方法700は終了する。
【0080】
或いは、アクティブステッチャオブジェクトのリストにおいて未処理のステッチャオブジェクトがあることをステップ715において制御プログラム190が判定する場合、方法700は取り込みステップ725に進む。ステップ725において、制御プログラム190は、メモリ180内に構成されたアクティブステッチャオブジェクトのリストにおいて次の未処理のステッチャオブジェクトを取り込む。
【0081】
次に互換性チェックステップ730において、予め判定された基準の集合に基づいて、ステップ725において取り込まれたステッチャオブジェクトのビットマップフィルが候補フィルと互換性のあることを制御プログラム190が判定する場合、方法700は近接性判定ステップ735に進む。例えば、フィルは、同一の色空間において規定され、同一のビット深度を有する場合に互換性がある。上述したように、ステッチャオブジェクトのビットマップフィルが候補フィルと互換性のない場合、方法700はステップ715に戻る。
【0082】
近接性判定ステップ735において、制御プログラム190は、ステッチャオブジェクト及び候補フィルの近接性を判定する。一実現例において、候補フィルに対するステッチャオブジェクトの近接性は、候補フィルのバウンディングボックスとステッチャオブジェクトのバウンディングボックスとの間の距離を判定することにより測定される。PDLオブジェクトがバウンディングボックスを含む場合、候補フィルに対するバウンディングボックスは、現在処理されているPDLオブジェクトから判定されてもよい。或いは、候補フィルに対するバウンディングボックスは、候補フィルの寸法をページ空間に変換するために候補フィルのアフィン変換を使用して判定されてもよく、変形されたポイントのバウンディングボックスを取得してもよい。一実現例において、候補フィルのバウンディングボックスがステッチャオブジェクトのバウンディングボックス内に完全に含まれる場合、ステッチャオブジェクト及び候補フィルは近接していると考えられる。さもなければ、ステッチャオブジェクト及び候補フィルは近接していないと考えられる。近接しているフィルは、組み合わせるために近接していないフィルより少ないメモリを必要とする。例えば、各々がページの隅にある4つの小さな画像が組み合わされた場合、組み合わされた画像における画素数はページ上の画素数と等しくなり、数は4つの画像における画素数よりもはるかに大きい。これは、画像が組み合わされる場合にメモリ使用量が増加することを意味する。
【0083】
一実現例において、候補フィルのバウンディングボックスの大きさは、ページの特徴に従って適応可能に変化する。オブジェクトが取得ステップ530において取得される際、バウンディング領域の大きさをそのように適応可能に実行中に変更してもよい。ページの種々の特徴は、バウンディングボックスの大きさに影響を及ぼす。例えば、ページ上の特定のエリアにおいてオブジェクトの数が増加することにより特定のエリアの複雑性が増すため、バウンディング領域は、同数のページ上の他の候補フィルの他のバウンディングボックスとオーバラップしないように僅かに減少する。オブジェクト及びオブジェクトと関連付けられたフィルの複雑性は、バウンディングボックスの大きさにも影響を及ぼす。フィルの複雑性は、合成スタックに含まれた種々の色の数及びオペレータの種類により判定される。従って、例えば、フィルにおける色の数が固定数に予め決められた閾値を超える場合、フィルは複雑であると言える。例えば、ページ上の特定のエリアにおけるオブジェクトの数、エリアに含まれたフィルの数、各フィルにおける色の数及びフィルに含まれたオペレータを考慮する複雑性測度が更に算出される。その後、フィルのバウンディング領域は、オブジェクトが受信される際のそのような複雑性測度に基づいて判定される。特に、バウンディング領域の大きさは、複雑性測度の影響を受けるだろう。複雑性測度に基づいてバウンディング領域を判定することにより、組合せ処理655の複雑性が減る。
【0084】
上述したように、ステッチャオブジェクト及び候補フィルが近接していないことをステップ735において制御プログラム190が判定する場合、方法700はステップ715に戻る。ステッチャオブジェクト及び候補フィルが近接している場合、方法700はオーバラップ判定ステップ740に進む。
【0085】
上述したように、ステップ740において、ステッチャオブジェクトと候補フィルとがオーバラップすることを制御プログラム190が判定する場合、方法700はステップ715に戻る。さもなければ、方法700は終了する。一実現例において、ステップ740において、制御プログラム190は、先のステッチング動作中に何れかのデータが、候補フィルのバウンディングボックスがステッチャオブジェクトのバウンディングボックスにオーバラップするステッチャオブジェクトのエリアに書き込まれるかを判定する。情報がオーバラッピングエリアに先に書き込まれなかったことを制御プログラム190が判定する場合、ステッチャオブジェクト及び候補フィルはオーバラップしていないと考えられる。しかし、情報がオーバラッピングエリアに先に書き込まれている場合、ステッチャオブジェクト及び候補フィルはオーバラップしていると考えられる。
【0086】
ステップ745において、メモリ180内に構成されたFound_Stitcher変数がステッチャオブジェクトに設定され、方法700は終了する。
【0087】
図8を参照して、ステップ655において実行されたように候補フィルをステッチャオブジェクトと組み合わせる方法800を以下に詳細に説明する。方法800は判定ステップ820において開始し、制御プログラム190が、ステッチャオブジェクトと候補フィルとの間のオーバラップのエリアにおいてステッチャオブジェクト画素の集合を判定する。オーバラップのエリアにおける全ての画素は、「未処理」である。
【0088】
チェックステップ830において、ステップ820において判定された画素の集合に未処理の画素が残っていることを制御プログラム190が判定する場合、方法800はステップ850に進む。ステップ820において判定された画素の集合の全ての画素が処理されている場合、方法800は終了する。
【0089】
取り込みステップ850において、制御プログラム190は、プロセッサ185の実行中に次の未処理の画素取り込む。次に、判定ステップ860において、制御プログラム190は、取り込まれた画素の場所に対応する候補フィルの画素色値を判定する。ビットマップフィルの場合、ステップ860において、制御プログラム190は、未処理の画素と候補フィルのソースビットマップ空間との間でアフィン変換を実行し、ソース場所を取得する。その後、そのソース場所におけるソースビットマップの色値が判定されてもよい。
【0090】
コピーステップ870において、ステップ860において判定された色値は、未処理の画素場所においてステッチャオブジェクトのビットマップフィルにコピーされる。次に方法800はマーク付けステップ880に進み、制御プログラム190が、取り込まれた画素を「WRITTEN」とマーク付けし、画素をメモリ180に格納する。上述したように、処理は次にステップ830に進む。
【0091】
再度図2を参照すると、ディスプレイリスト(すなわち、第1の中間形式ページ表現250)が作成されると、ディスプレイリストは、タイル型のフィルマップ表現260に変換されてもよい(203)。図9は、図3の例示的なページ310のタイル型のフィルマップ表現910を示す。図9の例において、フィルマップタイル920は、(列、行)の形式で表された位置(1、2)にある。図9の右側に拡張したフィルマップタイル920のコンテンツが示される。フィルマップタイル920における4つの領域930、940、950及び960は、それぞれ、1、2、3、及び4の指標を含むフィル合成シーケンスを参照する。
【0092】
図10は、タイル型のフィルマップ910に対するフィル合成シーケンス1010の表、並びに対応するレベル情報1020、1030及び1040を示す。レベル情報#1 1020は、図3の不透明なひし形オブジェクト320に対応するレンダリング情報を含む。レベル情報#1 1020は、線形ブレンドフィル415及び合成オペレータATOP420を参照する。レベル情報#2 1030は、不透明な低解像度のソースビットマップオブジェクト330に対応するレンダリング情報を含む。レベル情報#2 1030は、低解像度のビットマップソースフィル435を参照し、合成オペレータOVER440を有する。レベル情報#3 1040は、半透明の平坦なオブジェクト340に対応するレンダリング情報を含む。レベル情報#3 1040は、平坦な灰色のソースフィル455を参照し、合成オペレータOVER460を有する。
【0093】
2つのオブジェクトが同一フィル及び同一の合成オペレータを参照する場合、2つのフィルは同一のレベル情報を参照できる。フィルが同一の合成情報を有する場合、同一のステッチャフィルを参照する2つのオブジェクトは、同一の同一レベル情報を参照する。他のオブジェクトにオーバラップすることなく2つのそのようなオブジェクトのみにより生成されるタイル型のフィルマップ情報のあらゆる領域は、同一のフィル合成シーケンスを参照する。
【0094】
次に、図11〜図15を参照して、上述した方法を例として更に説明する。図11は、例示的なPDLページ1110を示す。ページ1110は、3つのPDLオブジェクトを含む。すなわち、ページ1110は、不透明なビットマップであり、ソースビットマップが顔の画像である1番下のオブジェクト1120を含む。ページ1110は、不透明なビットマップであり、ソースビットマップが三角形の画像である第2のオブジェクト1130を更に含む。ページ1110は、不透明なビットマップであり、ソースビットマップが円の画像である第3のオブジェクト1140を更に含む。
【0095】
フィルを組み合わせずに処理された場合の例示的なページ1110のタイル型のフィルマップ表現1210を図12に示す。フィルマップタイル1220は、(列、行)の形式で表された位置(2、2)にある。図12の右側に拡張したフィルマップタイル1220のコンテンツを示す。図12に示されるように、フィルマップタイル1220における4つの領域1230、1240、1250及び1260は、それぞれ、1、2、3及び4の指標を含むフィル合成シーケンスを参照する。
【0096】
図13に、タイル型のフィルマップ1210に対するフィル合成シーケンスの表1310、並びに対応するレベル情報1320、1330及び1340を示す。レベル情報#1 1320は、顔のビットマップ1120を参照するオブジェクトに対応するレンダリング情報を含む。レベル情報#2 1330は、三角形のビットマップ1130を参照するオブジェクトに対応するレンダリング情報を含む。レベル情報#3 1340は、円のビットマップ1140を参照するオブジェクトに対応するレンダリング情報を含む。
【0097】
例示的なフィル組合せ処理が図11の例示的なページ上で実行される場合、起動閾値はゼロ(0)であると考えられ、各ソースビットマップの寸法はステッチングに対する最大許容度を下回る。図11の全てのビットマップは、同一の色空間及びビット深度を有する。ページ1110は、図15に示されるようなディスプレイリスト1500の形式で中間ページ表現を生成するために、方法500に従って処理されてもよい。方法500は、ステップ515を参照して上述したように、ステッチングパラメータを初期化することにより開始する。メモリ180内に構成されたアクティブステッチャオブジェクトのリストはNoneに設定され、フィル組合せアクティブフラグはクリアされ、起動カウント及び停止カウントはゼロ(0)に設定される。
【0098】
顔のビットマップ1120を参照するPDLオブジェクトは、方法500に従って最初に処理され、顔のビットマップがステッチングに適しているかを判定するために検査される(方法600のステップ610と同様)。オブジェクト1120に対応する顔のビットマップの寸法がステッチングに対する最大許容度を下回るため、オブジェクト1120はステッチングに適していると考えられる。起動カウントパラメータは、増分され(ステップ625と同様)、ゼロ(0)より大きいため、メモリ180内に構成されたフィル組合せ起動フラグが設定される(ステップ640と同様)。アクティブステッチャオブジェクトのリストが空であるため、適切なステッチャオブジェクトは判定されない(方法600のステップ645と同様)。オブジェクト1120の処理は継続し、停止カウントは増分される(ステップ665と同様)。しかし、停止閾値を超えない(ステップ670と同様)ために、新しいステッチャオブジェクトが作成され(ステップ680と同様)、メモリ180内に構成されたアクティブステッチャオブジェクトのリストに追加される。ステッチャオブジェクトは、以下において「ステッチャオブジェクトX」と称される。
【0099】
ビットマップフィル色空間及びステッチャオブジェクトXのビット深度は、オブジェクト1120に対応する顔のビットマップの色空間及びビット深度に設定される。次に、顔のビットマップは、ステッチャオブジェクトXのビットマップフィルと組み合わされる(方法600のステップ655と同様)。図14Aに、ステッチャオブジェクトXに対するビットマップデータ1410及びステッチャオブジェクトXにおいて「WRITTEN」とマーク付けされた画素1420を示す。
【0100】
例によると、処理される次のオブジェクトは、三角形のビットマップを参照するPDLオブジェクト1130である。三角形のビットマップの寸法がステッチングに対する最大許容度を下回るため、三角形のビットマップはステッチングに適していると考えられる(方法600のステップ610に従う)。フィル起動フラグが設定されると、処理は、メモリ180内に構成されたアクティブステッチャオブジェクトのリストから適切なステッチャオブジェクトを判定するように直接進む。
【0101】
三角形のビットマップオブジェクト1130は、ステッチャオブジェクトXと互換性があることがわかる(ステップ730と同様)。三角形のビットマップオブジェクト1130が、ステップ740において判定されたように、ステッチャオブジェクトXにおいて不正であるとマーク付けされた画素に全くオーバラップしないため、三角形のビットマップは、ステップ735において判定されてもよいステッチャオブジェクトXのバウンディングボックス内に完全に含まれる。従って、ステッチャオブジェクトXは、組合せに使用するためのステッチャオブジェクトとして選択される。
【0102】
次に、三角形のビットマップオブジェクト1130は、ステップ655と同様にビットマップフィルステッチャオブジェクトXと組み合わされる。図14Bに、ステッチャオブジェクトXに対するビットマップデータ1430の状態を示す。図14Bに、ステッチャオブジェクトXにおいて、三角形のビットマップオブジェクト1130を参照するオブジェクトを処理した後に不正であるとマーク付けされた画素1140を更に示す。
【0103】
処理される次のオブジェクトは、円のビットマップを参照するオブジェクト1140である。円のビットマップオブジェクト1140の寸法がステッチングに対する最大許容度を下回るため、オブジェクト1140はステッチングに適していると考えられる(方法600のステップ610と同様)。フィルアクティブフラグが設定されると、処理は、アクティブステッチャオブジェクトのリストから適切なステッチャオブジェクトを判定するように直接進む(ステップ650と同様)。円のビットマップオブジェクト1140は、ステッチャオブジェクトXのバウンディングボックス内に完全に含まれるため(ステップ735における判定と同様)、ステッチャオブジェクトXと互換性があると判定される(ステップ730と同様)。しかし、円のビットマップオブジェクト1140は、不正であるとマーク付けされたステッチャオブジェクトXにおいて画素にオーバラップする(ステップ740における判定と同様)。従って、ステッチャオブジェクトXは選択されず、互換性のあるステッチャオブジェクトは判定されない。メモリ180内に構成された停止カウントパラメータは増分され(ステップ665と同様)、停止閾値パラメータを越えたと判定される(ステップ670と同様)。従って、メモリ180内に構成されたフィル組合せアクティブフラグはクリアされ、起動カウント及び停止カウントは、ステップ675と同様にゼロ(0)に設定される。
【0104】
図15に、方法500に従って図11のページ1110を処理した結果として得られるディスプレイリスト1500を示す。ディスプレイリストオブジェクトエントリ1 1505は、第1のオブジェクト1120に対応し、正方形型のパス1510、ステッチャオブジェクトXからのビットマップフィル1515及び合成オペレータOVER1520を参照する。
【0105】
ディスプレイリストオブジェクトエントリ2 1525は、第2のオブジェクト1130に対応し、正方形のパス1530、ステッチャオブジェクトXからのビットマップフィル1515及び合成オペレータOVER1535を参照する。
【0106】
ディスプレイリストオブジェクトエントリ3 1540は、第3のオブジェクト1140に対応し、正方形のパス1545、第3のオブジェクト1140からの円のビットマップフィル1550及び合成オペレータOVER1555を参照する。図15に示されるように、ディスプレイリストオブジェクト1(1505)及び2(1525)の双方は、同一のフィル情報1515を参照する。
【0107】
例示的なページ1110のタイル型のフィルマップ表現1610を図16に示す。フィルマップタイル1620は、(列、行)の形式で表された位置(2、2)にある。図16の右側に拡張したフィルマップタイル1620のコンテンツが示される。図16に示されるように、フィルマップタイル1620における4つの領域1630、1640、1650及び1660は、それぞれ、1、2、1及び3の指標を含むフィル合成シーケンスを参照する。
【0108】
図17に、タイル型のフィルマップ1610に対するフィル合成シーケンスの表1710及び対応するレベル情報1720、1730を示す。レベル情報#1 1720は、顔のビットマップ1120を参照するオブジェクト及び三角形のビットマップ1130を参照するオブジェクトの双方に対応するレンダリング情報を含む。レベル情報#1 1720は、ステッチャオブジェクトXに対するビットマップフィル1515及び合成オペレータOVER1520を参照する。レベル情報#2 1730は、円のビットマップを参照するオブジェクト1140に対応するレンダリング情報を含む。レベル情報#2 1730は、円のビットマップ1550を参照し、合成オペレータOVER1555を有する。
【0109】
フィル合成シーケンスの表1310をフィル合成シーケンスの表1710と比較すると、例示的なページ1110に対してフィル組合せ方法を実行することによりフィル合成シーケンスの数が4から3に減少したことが分かる。レベル情報データの総数が3(1320、1330、1340)から2(1720、1730)に減少したことが更に分かる。これは、中間タイル型のフィルマップにより必要とされたメモリ使用量の合計が減少したことを意味する。
【0110】
図18は、各々がフィルと関連付けられる複数のオブジェクトと共用中間フィルとを関連付ける方法1800を示すフローチャートである。方法1800は、メモリ180に常駐し、実行中にプロセッサ185により制御される制御プログラム190の1つ以上のソフトウェアコードモジュールとして実現されてもよい。上述したように、各オブジェクトは、ページ310等のページのページ記述言語(PDL)オブジェクトであってもよい。この例において、制御プログラム190は、ソフトウェアアプリケーション133からページ310の記述を受信し、記述をメモリ180に格納してもよい。ページ記述におけるオブジェクトは、メモリ180内に構成された上述したようなディスプレイリストの形式で第1の共用中間形式ページ表現に配置される。ディスプレイリストの各オブジェクトは、フィルデータ、パスデータ及び合成命令を参照する。更に上述したように、一実現例において、制御プログラム190は、何れかのフィルが共用中間フィルに組み合わされるかを判定するようにページ記述言語オブジェクトを処理してもよい。そのような中間フィルは、隣接するフィルと共に複数のオブジェクトにより共用されるフィルである。換言すると、オブジェクトのフィルが互いに近接している場合、中間フィルは、いくつかのオブジェクトのフィルを置換するように作成され、個々のフィルを処理するのと比較して必要とされるリソースを減少する。
【0111】
方法1800はステップ1801において開始し、制御プログラム190が、第1の複数のオブジェクトのフィルに基づいて共用中間フィルのバウンディング領域(すなわち、バウンディングボックス)を判定するステップを実行する。上述したように、オブジェクトがバウンディングボックスを含む場合、フィルに対するバウンディングボックスは、現在処理されているオブジェクトから判定されてもよい。或いは、フィルに対するバウンディングボックスは、フィルの寸法をページ空間に変換するためにフィルのアフィン変換を使用して判定されてもよく、変形されたポイントのバウンディングボックスを取得してもよい。
【0112】
次のステップ1803において、制御プログラム190は、第1のオブジェクトを共用中間フィルと関連付けるステップを実行する。一実現例において、制御プログラムは、現在処理されているPDLオブジェクトに対応するディスプレイリストエントリのフィル特性を設定することにより、第1のオブジェクトを中間フィルと関連付けてもよい。その後、次のステップ1805において、制御プログラムは、第2のオブジェクトを取得するステップを実行する。上述したように、第2のオブジェクトは、「ステッチャオブジェクト」と呼ばれてもよい。
【0113】
方法1800は次のステップ1807に継続し、(a)第2のオブジェクトのフィルがバウンディング領域内に含まれ、(b)第2のオブジェクトのフィルが第1のオブジェクトのフィルとオーバラップしていない場合に制御プログラム190が、第2のオブジェクトのフィルに基づいて共用中間フィルを更新するステップを実行する。最後に、ステップ1809において、制御プログラム190は、第2のオブジェクトを更新された共用中間フィルと関連付けるステップを実行する。図7及び図8を参照して上述したように、制御プログラム190は、方法700及び方法800に従って、ステップ1807において共用中間フィルを更新してもよく、第2のオブジェクトを共用中間フィルと関連付けてもよい。
【0114】
上述した方法の別の実現例において、ステッチャオブジェクトのバウンディングボックスは、ステッチャオブジェクトと組み合わされた第1のビットマップフィルのバウンディングボックスに最初に設定されてもよい。候補フィルのバウンディングボックスとステッチャオブジェクトのバウンディングボックスとの間の距離が所定の最短距離より短い場合、候補フィル及びステッチャオブジェクトは近接していると判定される。候補フィルがステッチャオブジェクトと組み合わされる場合、ステッチャオブジェクトのバウンディングボックスは、ステッチャオブジェクトの元のバウンディングボックス及び候補フィルのバウンディングボックスの双方を含むように拡大される。
【0115】
一例として、図19A及び図19Bに、ステッチャオブジェクトのバウンディングボックス1910と候補フィルのバウンディングボックス1920とがオーバラップしないことを示す。矢印1930により示されたようなステッチャオブジェクトのバウンディングボックス1910と候補フィルのバウンディングボックス1920との間の距離は、所定の最短距離より短い。この場合、候補フィルはステッチャオブジェクトと組み合わされ、ステッチャオブジェクトのバウンディングボックスは、元のステッチャオブジェクトのバウンディングボックス1910及び候補フィルのバウンディングボックス1920の双方を含む新しいバウンディングボックス1940に更新される。
【0116】
或いは、別の実現例において、ステッチングは、平坦なフィルを組み合わせるために使用されてもよい。この場合、平坦なフィルのバウンディングボックスは、PDLオブジェクトのバウンディングボックスから判定されてもよい。その後、平坦なフィルは、ステッチャオブジェクトに対して平坦なフィル色をビットマップフィルにコピーされたステッチャオブジェクトにコピーすることにより、ステッチャオブジェクトと組み合わされてもよい。
【産業上の利用可能性】
【0117】
説明された構成は、コンピュータ及びデータ処理業界、並びに特に画像処理に適用可能である。
【0118】
上記の記述は本発明のいくつかの実施形態のみを説明し、本発明の範囲及び趣旨から逸脱せずに、変形及び/又は変更がいくつかの実施形態に対して行なわれてもよい。実施形態は、限定するものではなく例示するものである。
【0119】
本明細書に関して、「備える」という言葉は、「主に含むが、単独で必要ではない」、或いは「有する」又は「含む」ことを意味し、「のみから構成される」ことではない。「備える」の語形変化は、それに対応して意味の変化を示す。
【特許請求の範囲】
【請求項1】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける方法であって、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法。
【請求項2】
前記バウンディング領域の大きさは、前記第1のオブジェクト及び前記第1のオブジェクトのフィルのうちの少なくとも一方の複雑性により判定された複雑性測度の影響を受けることを特徴とする請求項1に記載の方法。
【請求項3】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける方法であって、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法。
【請求項4】
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程を更に有することを特徴とする請求項3に記載の方法。
【請求項5】
前記バウンディング領域の大きさは、前記第1のオブジェクト及び前記第1のオブジェクトのフィルのうちの少なくとも一方の複雑性により判定された複雑性測度の影響を受けることを特徴とする請求項4に記載の方法。
【請求項6】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するプロセッサであって、前記コンピュータプログラムは、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、を有し、
前記更新された共用フィルを受信し、前記更新された共用フィルを使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングするプリンタと、
を有することを特徴とするシステム。
【請求項7】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するプロセッサであって、前記コンピュータプログラムは、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、を有し、
前記更新された共用フィルを受信し、前記更新された共用フィルを使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングするプリンタと、
を有することを特徴とするシステム。
【請求項8】
複数のオブジェクトの各々がフィルと関連付けられ、共有フィルを複数のオブジェクトと関連付ける装置であって、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共有フィルのバウンディング領域を判定する手段と、
前記第1のオブジェクトを前記共有フィルと関連付ける手段と、
第2のオブジェクトを受信する手段と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共有フィルを更新する手段と、
前記第2のオブジェクトを前記更新された共有フィルと関連付ける手段と、
を有することを特徴とする装置。
【請求項9】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける装置であって、
第1のオブジェクトを前記共用フィルと関連付ける手段と、
第2のオブジェクトを受信する手段と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する手段と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける手段と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする手段と、
を有することを特徴とする装置。
【請求項10】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるコンピュータプログラムが記録されたコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とするコンピュータ読み取り可能な媒体。
【請求項11】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるコンピュータプログラムが記録されたコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とするコンピュータ読み取り可能な媒体。
【請求項12】
ディスプレイリストにおいて複数のオブジェクトに対して共用されるフィル情報を作成する方法であって、
フィル情報を有する第1のオブジェクトを受信する工程と、
前記第1のオブジェクトのフィル情報とオーバラップしていないフィル情報を有する第2のオブジェクトを受信する工程と、
前記第1のオブジェクトのフィル情報が前記第2のオブジェクトのフィル情報とオーバラップしていない場合に前記第2のオブジェクトのフィル情報に基づいて前記第1のオブジェクトのフィル情報を更新する工程と、
前記第2のオブジェクトを前記更新されたフィル情報と関連付けて前記第1のオブジェクト及び前記第2のオブジェクトに対して共用されるフィル情報を作成する工程と、
前記作成された共用されるフィル情報を使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法。
【請求項1】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける方法であって、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法。
【請求項2】
前記バウンディング領域の大きさは、前記第1のオブジェクト及び前記第1のオブジェクトのフィルのうちの少なくとも一方の複雑性により判定された複雑性測度の影響を受けることを特徴とする請求項1に記載の方法。
【請求項3】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける方法であって、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法。
【請求項4】
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程を更に有することを特徴とする請求項3に記載の方法。
【請求項5】
前記バウンディング領域の大きさは、前記第1のオブジェクト及び前記第1のオブジェクトのフィルのうちの少なくとも一方の複雑性により判定された複雑性測度の影響を受けることを特徴とする請求項4に記載の方法。
【請求項6】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するプロセッサであって、前記コンピュータプログラムは、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、を有し、
前記更新された共用フィルを受信し、前記更新された共用フィルを使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングするプリンタと、
を有することを特徴とするシステム。
【請求項7】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するプロセッサであって、前記コンピュータプログラムは、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、を有し、
前記更新された共用フィルを受信し、前記更新された共用フィルを使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングするプリンタと、
を有することを特徴とするシステム。
【請求項8】
複数のオブジェクトの各々がフィルと関連付けられ、共有フィルを複数のオブジェクトと関連付ける装置であって、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共有フィルのバウンディング領域を判定する手段と、
前記第1のオブジェクトを前記共有フィルと関連付ける手段と、
第2のオブジェクトを受信する手段と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共有フィルを更新する手段と、
前記第2のオブジェクトを前記更新された共有フィルと関連付ける手段と、
を有することを特徴とする装置。
【請求項9】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付ける装置であって、
第1のオブジェクトを前記共用フィルと関連付ける手段と、
第2のオブジェクトを受信する手段と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する手段と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける手段と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする手段と、
を有することを特徴とする装置。
【請求項10】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるコンピュータプログラムが記録されたコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、
前記複数のオブジェクトの第1のオブジェクトのフィルに基づいて、前記共用フィルのバウンディング領域を判定する工程と、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記バウンディング領域内に含まれ、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とするコンピュータ読み取り可能な媒体。
【請求項11】
複数のオブジェクトの各々がフィルと関連付けられ、共用フィルを複数のオブジェクトと関連付けるコンピュータプログラムが記録されたコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、
前記第1のオブジェクトを前記共用フィルと関連付ける工程と、
第2のオブジェクトを受信する工程と、
(a)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルの所定の距離の中で、(b)前記第2のオブジェクトのフィルが前記第1のオブジェクトのフィルとオーバラップしていない場合に前記第2のオブジェクトのフィルに基づいて前記共用フィルを更新する工程と、
前記第1のオブジェクト及び前記第2のオブジェクトにより共用される前記更新された共用フィルと前記第2のオブジェクトを関連付ける工程と、
前記更新された共用フィルを用いて前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とするコンピュータ読み取り可能な媒体。
【請求項12】
ディスプレイリストにおいて複数のオブジェクトに対して共用されるフィル情報を作成する方法であって、
フィル情報を有する第1のオブジェクトを受信する工程と、
前記第1のオブジェクトのフィル情報とオーバラップしていないフィル情報を有する第2のオブジェクトを受信する工程と、
前記第1のオブジェクトのフィル情報が前記第2のオブジェクトのフィル情報とオーバラップしていない場合に前記第2のオブジェクトのフィル情報に基づいて前記第1のオブジェクトのフィル情報を更新する工程と、
前記第2のオブジェクトを前記更新されたフィル情報と関連付けて前記第1のオブジェクト及び前記第2のオブジェクトに対して共用されるフィル情報を作成する工程と、
前記作成された共用されるフィル情報を使用して前記第1のオブジェクト及び前記第2のオブジェクトをレンダリングする工程と、
を有することを特徴とする方法。
【図1A】
【図1B】
【図1C】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14A】
【図14B】
【図15】
【図16】
【図17】
【図18】
【図19A】
【図19B】
【図1B】
【図1C】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14A】
【図14B】
【図15】
【図16】
【図17】
【図18】
【図19A】
【図19B】
【公開番号】特開2013−30144(P2013−30144A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2011−241502(P2011−241502)
【出願日】平成23年11月2日(2011.11.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願日】平成23年11月2日(2011.11.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]