(57)【特許請求の範囲】
【請求項１】
コンピュータから受け取られた頁記述データ内に含まれる少なくとも１個のオブジェクトを有するグラフィックデータを、インタプリタと、ラスターイメージプロセサと、ユーザによって選択された混合式に従って重畳する二つのレイヤの夫々の対応する位置におけるピクセル値を結合させる混合プロセサと、メモリとを具備する出力表示装置において混合する方法において、
前記コンピュータから供給されてどのオブジェクトがどのレイヤに属するかを指定するレイヤオペレータに従って前記インタプリタが前記オブジェクトを第一レイヤ又は第二レイヤのいずれかへグループ化し、
前記ラスターイメージプロセサが前記第一レイヤに関連するオブジェクトを前記メモリの第一領域内に格納し、
前記ラスターイメージプロセサが前記第二レイヤに関連するオブジェクトを前記メモリの第二領域内に格納し、
前記混合プロセサがコンピュータから供給された混合情報に従って前記第一及び第二領域へ格納されたデータを混合し且つ混合したデータを前記第一又は第二領域内に格納する、
ことを特徴とする方法。
【請求項２】
請求項１において、前記第一及び第二レイヤのうちの一つをフレームバッファ内に格納することを特徴とする方法。
【請求項３】
請求項１において、前記第一及び第二レイヤのうちの一つへ引込まれたデータをレイヤバッファ内に格納し、前記レイヤバッファは複数個のタイルへ区画化されており、各タイルは印刷されるべき頁の特定の部分と関連するデータを受取り、本方法が、データが現在格納されていないレイヤバッファのタイルを圧縮することを包含していることを特徴とする方法。
【請求項４】
請求項３において、前記レイヤバッファが複数個のバンドへ区画化されていることを特徴とする方法。
【請求項５】
請求項１において、前記混合ステップが、所定の混合操作に従って前記第一及び第二レイヤから引出されたデータを混合することを包含していることを特徴とする方法。
【請求項６】
請求項５において、前記所定の混合操作が、トランスペアレンシ、シャドー、オーバープリンティング、ダークニング、ライトニング、スクリーン効果及び付加効果からなるグループから選択されたものであることを特徴とする方法。
【請求項７】
インタプリタと、ラスターイメージプロセサと、ユーザによって選択された混合式に従って重畳する二つのレイヤの夫々の対応する位置におけるピクセル値を結合させる混合プロセサと、メモリとを具備する出力表示装置においてコンピュータから受け取られた頁記述データ内に含まれる少なくとも１個のオブジェクトを有するグラフィックデータを混合する方法において、
前記コンピュータから供給されてどのオブジェクトがどのレイヤに属するかを指定するレイヤオペレータに従って、前記インタプリタが表示されるべきイメージと関連している少なくとも１個のオブジェクトを複数個のレイヤの内の一つのレイヤへグループ化し、
前記インタプリタが前記イメージと関連するレイヤスタックを前記メモリ内に形成し、前記レイヤスタックは前記イメージのレイヤを混合するための階層を画定しており、
前記ラスタイメージプロセサが各レイヤと関連している少なくとも１個のオブジェクトをレンダリングし、
前記混合プロセサがコンピュータから供給された混合情報に従って且つ前記レイヤに対するレンダリングしたオブジェクトを前記レイヤスタックに従って混合する、
ことを特徴とする方法。
【請求項８】
請求項７において、前記混合ステップを一度に二つのレイヤについて行い、前記レイヤスタックからレイヤを取出すことによって混合するためのレイヤを選択することを包含していることを特徴とする方法。
【請求項９】
インタプリタと、ラスターイメージプロセサと、ユーザによって選択された混合式に従って重畳する二つのレイヤの夫々の対応する位置におけるピクセル値を結合させる混合プロセサと、メモリとを具備する出力表示装置においてコンピュータから受け取られた頁記述データ内に含まれる少なくとも１個のオブジェクトを有するグラフィックデータを混合する方法において、
前記コンピュータから供給されてどのオブジェクトがどのレイヤに属するかを指定するレイヤオペレータに従って、前記インタプリタが表示されるべきイメージと関連している少なくとも１個のオブジェクトを複数個のレイヤの内の一つのレイヤへグループ化し、
前記インタプリタがコンピュータから供給された前記イメージのレイヤを混合するための階層を画定するレイヤ混合情報を前記メモリ内に格納し、
前記ラスタイメージプロセサが各レイヤと関連している少なくとも１個のオブジェクトをレンダリングし、
前記混合プロセサが前記レイヤに対してレンダリングされたオブジェクトを前記メモリ内に格納されている前記レイヤ混合情報に従って混合する、
ことを特徴とする方法。
【請求項１０】
請求項９において、前記混合ステップが一度に二つのレイヤについて行われ、前記レイヤ混合情報に基づいて混合するためのレイヤを選択することを包含していることを特徴とする方法。
【請求項１１】
バックグラウンドイメージに関してフォアグラウンドイメージに対し混合効果を与えるためにインタプリタと、ラスターイメージプロセサと、ユーザによって選択された混合式に従って重畳する二つのレイヤの夫々の対応する位置におけるピクセル値を結合させる混合プロセサと、メモリとを具備する印刷装置によってコンピュータから受取られた頁記述データ内に含まれる少なくとも１個のオブジェクトを有するグラフィックデータを混合する方法において、
前記インタプリタがフォアグラウンドレイヤ内へ引込まれるべき１個又はそれ以上のフォアグラウンドオブジェクトを受取り、
前記ラスタイメージプロセサが前記フォアグラウンドオブジェクトをレンダリングしてフォアグラウンドデータを発生し、
前記インタプリタがバックグラウンドレイヤ内へ引込まれるべき一つ又はそれ以上のバックグラウンドオブジェクトを受取り、
前記ラスタイメージプロセサが前記バックグラウンドオブジェクトをレンダイリングしてバックグラウンドデータを発生し、
前記混合プロセサが前記フォアグラウンド及びバックグラウンドデータをコンピュータから供給されて前記メモリ内に格納されている混合情報に従って混合して印刷用の複合イメージを発生する、
ことを特徴とする方法。
【請求項１２】
インタプリタと、ラスターイメージプロセサと、ユーザによって選択された混合式に従って重畳する二つのレイヤの夫々の対応する位置におけるピクセル値を結合させる混合プロセサと、メモリとを具備する印刷装置によってコンピュータから受取られた頁記述データ内に含まれる少なくとも１個のオブジェクトを有するグラフィックデータを混合する方法において、
前記インタプリタが印刷されるべきイメージの第一レイヤと関連している１個又はそれ以上のオブジェクトを受取り、
前記ラスターイメージプロセサが前記第一レイヤと関連しているオブジェクトをレンダリングし、
前記ラスターイメージプロセサが前記第一レイヤと関連しているレンダリングしたオブジェクトデータを前記メモリ内に画定されている第一バッファ内に格納し、
前記インタプリタが前記イメージの第二レイヤと関連している１個又はそれ以上のオブジェクトを受取り、
前記ラスターイメージプロセサが前記第二レイヤと関連しているオブジェクトをレンダリングし、
前記ラスターイメージプロセサが前記第二レイヤと関連しているレンダリングしたオブジェクトデータを前記メモリ内に画定されている第二バッファ内に格納し、
前記混合プロセサが前記第一及び第二レイヤに対してレンダリングしたオブジェクトデータをコンピュータから供給されて前記メモリ内に格納されている混合情報に従って混合し、
プリントエンジンが前記レンダリングし混合したオブジェクトデータを印刷する、
ことを特徴とする方法。
【請求項１３】
出力表示装置においてコンピュータから受け取られた頁記述データ内に含まれる少なくとも１個のオブジェクトを有するグラフィックデータを混合する装置において、
メモリ、
前記出力表示装置によって表示されるべきイメージの二つのレイヤと関連しているオブジェクトデータを受取り且つどのオブジェクトがどのレイヤに属するかを指定するためのレイヤオペレータを受取るインタプリタ、
前記オブジェクトデータをレンダリングして前記メモリ内に画定されている第一及び第二バッファ内に格納するラスターイメージプロセサであって、前記第一バッファは第一レイヤと関連するデータを格納し且つ前記第二バッファは第二レイヤと関連するデータを格納するラスターイメージプロセサ、
前記第一及び第二バッファ内のデータを表示する前にコンピュータから供給された混合情報に従って混合する混合プロセサであってユーザによって選択された混合式に従って重畳する二つのレイヤの夫々の対応する位置におけるピクセル値を結合させる混合プロセサ、
を有することを特徴とする装置。
【請求項１４】
請求項１３において、前記第一及び第二バッファのうちの一つがレイヤバッファであり、前記レイヤバッファは複数個のバンドへ区画化されており、各バンドは表示されるべき１頁の特定の部分と関連するデータを受取り、本装置は、現在のところデータが格納されていないレイヤバッファのバンドを圧縮するための圧縮エンジンを有していることを特徴とする装置。
【請求項１５】
請求項１３において、更に、所望の混合を行うために前記出力表示装置へ指示するための混合命令を含むレイヤ情報を格納するためのレイヤテーブルを前記メモリ内に有していることを特徴とする装置。
【請求項１６】
請求項１３において、前記インタプリタがレイヤ間の遷移を表わすレイヤオペレータを受取り、且つ前記レイヤオペレータに応答して、データが前記メモリ内の新しいレイヤバッファ内に格納されることを特徴とする装置。
【請求項１７】
請求項１３において、
前記第一バッファが、イメージのバックグラウンドレイヤ内に配置されるべき複数個のオブジェクトと関連しているレンダリングしたオブジェクトデータを格納するためのフレームバッファであり、
前記第二バッファが、イメージのフォアグラウンドレイヤ内に配置されるべき複数個のオブジェクトと関連しているレンダリングしたオブジェクトデータを格納するためのレイヤバッファであって前記フレームバッファよりも小型の寸法であるレイヤバッファである、
ことを特徴とする装置。
【請求項１８】
請求項１７において、前記レイヤバッファが、部分的に、前記イメージと関連するグラフィックオブジェクトを有する混合命令を受取ることに基づいて動的に割当て可能且つ割当て解除可能であることを特徴とする装置。
【請求項１９】
少なくとも１個のオブジェクトを有するグラフィックデータを包含している印刷されるべき頁の頁記述データをコンピュータから受取る形態とされているプリンタにおいて、
メモリ、
オブジェクトデータと混合オペレータとをコンピュータから受け取るインタプリタ、
前記オブジェクトデータをレンダリングするラスターイメージプロセサ、
レンダリングしたデータを格納する前記メモリ内に画定されるフレームバッファ、
印刷されるべきイメージのレイヤに対してレンダリングしたデータを一時的に格納するための前記メモリ内に画定されるレイヤバッファ、
前記フレームバッファ及びレイヤバッファ内に格納されているレンダリングしたデータを前記混合オペレータに従って混合する混合プロセサであってユーザによって選択された混合式に従って重畳する二つのレイヤの夫々の対応する位置におけるピクセル値を結合させる混合プロセサ、
混合データを印刷するための印刷エンジン、
を有することを特徴とするプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、大略、コンピュータによって発生されたグラフィックオブジェクトを混合する方法及びシステムに関するものであって、更に詳細には、レイヤを使用してコンピュータによって発生されたグラフィックオブジェクトを混合するための方法及び装置に関するものである。
【０００２】
【従来の技術】
コンピュータシステムは、多様な出力表示装置に対してデータを出力することが可能である。レーザプリンタ、プロッタ、イメージセッタ、その他の印刷装置などの出力表示装置は、イメージ即ち「可視的表現」を用紙、フイルムなどの上に発生し、一方コンピュータモニタなどの出力表示装置はコンピュータスクリーン上において視覚的表現を展開する。
【０００３】
多くの出力表示装置は、「ピクセルマップ」の形態で表示データを受取り且つ表示データから視覚的表現を発生する。ピクセルとは表示装置によって発生される視覚的表現の基本的なピクチャ要素であり、且つピクセルマップは、該表現の多数のピクセルに関する情報を包含するデータ構造である。
【０００４】
印刷装置はピクセルマップにおける情報に対応して用紙上にドットを印刷する。一方、コンピュータモニタはピクセルマップにおける情報に基づいてピクセルを照明する。「ラスター」出力装置は、ピクセルマップから行及び列の形態で配列されたピクセルからなるアレイを表示することによって視覚的表現を形成する。プロッタ以外のほとんどの出力装置はラスター出力装置である。
【０００５】
頁記述言語入力に応答して出力を発生する印刷及び視覚的出力装置が広く使用されている。頁記述言語は、出力装置によって発生されるべきオブジェクトを記述するハイレベル言語である。カリフォルニア州サンノゼのアドビシステムズインコーポレイテッドによって開発されたポストスクリプト（ＰｏｓｔＳｃｒｉｐｔ）（商標）言語は頁記述言語の一例である。表示されるべきイメージは、一つ又はそれ以上のオブジェクトを包含する頁記述言語ファイルとして頁記述フォーマットで表現し且つ格納することが可能である。一般的に、頁記述言語は装置独立性である。
【０００６】
動作について説明すると、頁記述言語ファイルを処理する形態とされている従来の印刷装置は、該ファイル内のオブジェクトを解釈し且つ該データをフレームバッファ内にペイントすべき即ち貼付けるべきピクセルマップ内へレンダリングする。典型的に、フレームバッファは、印刷する任意の頁を格納するのに充分に大きなものであり（少なくとも圧縮した形態において）、且つレンダリングしたピクセルマップはこのバッファ内に格納される。頁全てがペイントされると、フレームバッファ内に格納されているデータを印刷するためにプリントエンジン又はマーキングエンジンへ転送することが可能である。トランスペアレンシ（ｔｒａｎｓｐａｒｅｎｃｙ）は、バックグラウンド（背景）オブジェクト（イメージ、テキスト、ライン又は充填領域）がバックグラウンドオブジェクトの上に引出される即ち描かれるフォアグラウンド（前景）オブジェクトによって部分的に見えなくされる即ち隠される場合に得られる視覚的混合効果である。フォアグラウンド及びバックグラウンドのグラフィックデータを統合するためにその他の多数の混合効果を使用することが可能である。混合効果の例としては、ドロップシャドー効果、スクリーン効果、ダークニング（暗くすること）及びライトニング（明るくする）効果及びオーバープリンティング（重ね印刷）効果などがある。
【０００７】
混合効果を得るためにプリンタ又は出力ディスプレイにおいてグラフィックデータを処理することは、典型的に、大型のメモリを必要とする。ある印刷装置は、性能上の理由からメモリが制限されているか又はフレームバッファが浅いものであって、従ってこれまでのところ、プリンタにおいてブレンド即ち混合操作を処理することが不可能なものであった。ある印刷装置ではグラフィックデータを処理することが制限されていることを認識し、ポストスクリプト及びその他の同様の頁記述言語では、一般的には、混合効果をサポートするものではなかった。
【０００８】
【発明が解決しようとする課題】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、複数個のオブジェクトを有するグラフィックデータを混合する方法及び装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
一般的に、一つの側面においては、本発明は、複数個のオブジェクトを有するグラフィックデータを混合する方法を提供している。本方法は、オブジェクトを二つのレイヤへグループ化し、第一レイヤと関連するオブジェクトを引出し、第二レイヤと関連するオブジェクトを引出し、且つ前記第一及び第二レイヤ内に引出したデータを混合することを包含している。
【００１０】
本発明の好適実施例は、以下の特徴のうちの一つ又はそれ以上を有している。該引出しステップは、ピクセルマップを発生するためにオブジェクトデータをレンダリングすることを包含している。該引出しステップは、該オブジェクトの平面状マップ表現を計算することを包含している。本方法は印刷装置において実現される。オブジェクトは各レイヤ内に不透明的に引込まれる。第一及び第二レイヤの一方がフレームバッファ内に引込まれる。第一及び第二レイヤのうちの一方に引込まれたデータは、レイヤバッファ内に引込まれ、該レイヤバッファは複数個のタイルへ区画化され、各タイルは印刷されるべき頁の特定の部分に関連しているデータを受取り、本方法は、現在データが引込まれていないレイヤバッファのタイルを圧縮することを包含している。レイヤバッファは複数個のバンドへ区画化されている。該混合ステップは、所定の混合操作に従って第一及び第二レイヤから引出したデータを混合することを包含している。所定の混合操作は、トランスペアレンシ、シャドー、オーバープリンティング、ダークニング、ライトニング、スクリーン効果及び付加的効果からなるグループから選択される。
【００１１】
一般的に、別の側面においては、本発明は出力表示装置においてグラフィックデータを混合する方法を提供している。本方法は、表示されるべきイメージに関連しているオブジェクトデータのグループ化を与え、各グループは該イメージの一つのレイヤを画定し、イメージと関連しているレイヤスタックを作成し、該レイヤスタックは該イメージのレイヤを混合するための階層を画定し、各レイヤと関連しているオブジェクトデータをレンダリングし、且つ該レイヤに対するレンダリングされたオブジェクトデータを混合することを包含している。
【００１２】
本発明の好適実施例は、以下の特徴のうちの一つ又はそれ以上を有している。該混合ステップは、一度に二つのレイヤについて実施され、レイヤスタックからレイヤを取出すことによって混合するためのレイヤを選択することを包含している。
【００１３】
一般的に、別の側面においては、本発明は、出力表示装置においてグラフィックデータを混合する方法を提供している。本方法は、表示されるべきイメージと関連しているオブジェクトデータのグループ化を与え、各グループは該イメージの一つのレイヤを画定し、該イメージのレイヤを混合するための階層を画定するレイヤ混合情報を与え、各レイヤと関連しているオブジェクトデータをレンダリングし、且つ該レイヤに対するレンダリングしたオブジェクトデータを混合することを包含している。
【００１４】
本発明の好適実施例は以下の特徴のうちの一つ又はそれ以上を有している。該混合ステップは一度に二つのレイヤについて実施され、レイヤ混合情報に基づいて混合するためのレイヤを選択することを包含している。
【００１５】
一般的に、別の側面においては、本発明は、印刷装置によって受取られたグラフィックデータを混合する方法を提供している。本方法は、表示されるべきイメージの第一レイヤと関連しているオブジェクトデータを受取り、該オブジェクトデータを元となるグラフィックオブジェクトを表わす中間形態へ変換し、該中間形態データを第一バッファ内に格納し、該イメージの第二レイヤと関連するオブジェクトデータを受取り、該オブジェクトデータを元となるグラフィックオブジェクトを表わす中間形態へ変換し、該第一及び第二レイヤに対する中間形態データを混合して混合データを派生し、且つ該イメージを印刷することを包含している。
【００１６】
一般的に、別の側面においては、本発明は、バックグラウンド（背景）イメージに関してフォアグラウンド（前景）イメージに対してブレンド即ち混合効果を与えるために印刷装置によって受取られたグラフィックデータを混合する方法を提供している。本方法は、フォアグラウンドレイヤ内へ引込まれるべき一つ又はそれ以上のフォアグラウンドオブジェクトを受取り、該フォアグラウンドオブジェクトを引出してフォアグラウンドデータを発生し、バックグラウンドレイヤ内に引込まれるべき一つ又はそれ以上のバックグラウンドオブジェクトを受取り、該バックグラウンドオブジェクトを引出してバックグラウンドデータを発生し、該フォアグラウンド及びバックグラウンドデータを混合して印刷用の複合イメージを発生することを包含している。
【００１７】
一般的に、別の側面においては、本発明は、印刷装置によって受取られたグラフィックデータをブレンド即ち混合する方法を提供している。本方法は、印刷されるべきイメージの第一レイヤと関連している一つ又はそれ以上のオブジェクトを与え、該第一レイヤと関連しているオブジェクトをレンダリングし、該第一レイヤと関連しているレンダリングしたオブジェクトデータを第一バッファ内に格納し、該イメージの第二レイヤと関連している一つ又はそれ以上のオブジェクトを与え、該第二レイヤと関連しているオブジェクトをレンダリングし、該第二レイヤと関連しているレンダリングしたオブジェクトデータを第二バッファ内に格納し、該第一及び第二レイヤに対して該レンダリングしたオブジェクトデータを混合し、且つ該レンダリングし且つ混合したオブジェクトデータを印刷することを包含している。
【００１８】
一般的に、別の側面においては、本発明は、出力表示装置においてグラフィックデータを混合する装置を提供している。本装置は、出力表示装置によって表示されるべきイメージの二つのレイヤと関連しているオブジェクトデータを受取り、且つどのオブジェクトがどのレイヤに属するかを指定するためにレイヤオペレータを受取るインタプリタ、オブジェクトを第一及び第二バッファ内へ引込む引込みエンジン、尚該第一バッファは第一レイヤと関連しているデータを受取り且つ該第二バッファは第二レイヤと関連しているデータを受取り、且つ表示の前に該第一及び第二バッファにおけるデータを混合する混合プロセサ、を有している。
【００１９】
本発明の好適実施例は以下の特徴のうちの一つ又はそれ以上を有している。第一及び第二バッファのうちの一方はレイヤバッファであり、該レイヤバッファは複数個のバンドに区画化されており、各バンドは表示されるべき１頁の特定の部分に関連しているデータを受取り、且つ本装置は、現在のところデータが引込まれていないレイヤバッファのバンドを圧縮する圧縮エンジンを有している。該引込みエンジンは、より高いレベルのオブジェクトデータからピクセルデータを発生し、該インタプリタからのオブジェクトデータを受取り、且つ該オブジェクトデータを表わすピクセルデータを同一レイヤ内の全てのオブジェクトに対して第一及び第二バッファのうちの一方へペイント即ち貼付けるためのレンダリングエンジンを有している。本装置は、出力表示装置が所望のブレンド即ち混合を実施することを指示するための混合命令を有するレイヤ情報を格納するためのレイヤテーブルを有している。該インタプリタは、レイヤ間の遷移を表わすレイヤオペレータを受取り、且つ該レイヤオペレータに応答して、データが新しいレイヤバッファ内に引込まれる。
【００２０】
一般的に、別の側面においては、本発明は、出力表示装置においてグラフィックデータを混合する装置を提供している。本装置は、イメージのバックグラウンドレイヤ内に配置されるべき複数個のオブジェクトと関連しているレンダリングされたオブジェクトデータを格納するためのフレームバッファ、イメージのフォアグラウンドレイヤ内に配置されるべき複数個のオブジェクトと関連しているレンダリングされたオブジェクトデータを格納するためのレイヤバッファ、及び該フォアグラウンドレイヤとバックグラウンドレイヤとを混合するための混合プロセサを有している。
【００２１】
本発明の好適実施例は以下の特徴のうちの一つ又はそれ以上を有している。該レイヤバッファは、部分的に、該イメージと関連しているグラフィックオブジェクトを有する混合命令を受取ることに基づいて動的に割当て可能及び割当て解除可能である。
【００２２】
一般的に、別の側面においては、本発明は、印刷されるべき頁の頁記述言語記述を受取る形態とされているプリンタを提供している。本プリンタは、レンダリングするデータを格納するためのフレームバッファ、印刷すべきイメージのレイヤに対するレンダリングしたデータを一時的に格納するためのレイヤバッファ、該フレームバッファ内に格納されているレンダリングしたデータとレイヤバッファとを混合するための混合エンジン、ユーザが定義した混合機能に従ってグラフィックデータを混合した結果得られる混合データを印刷するプリントエンジン、を有している。
【００２３】
本発明の効果としては、以下に記載するようなものがある。ブレンド即ち混合効果はそうでなければ従来の混合方法をサポートするのにメモリが不充分であるようなプリンタにおいて混合効果を実施することが可能である。
【００２４】
本発明の使用は、非混合グラフィックデータに対しては透明であり、従って、混合されたグラフィックオブジェクトを処理する場合にのみ性能上の犠牲が発生する。
【００２５】
レイヤ化プロセスが表示装置に与えられており、イメージ又はイメージの一部を一つ又はそれ以上のレイヤへ分割することを可能としている。イメージの一つ又はそれ以上のレイヤと関連するオブジェクトの混合は、その後に、効果的に行うことが可能である。
【００２６】
レイヤ化プロセスは、表示リストフォーマット又はその他のフォーマットでグラフィックデータを処理するシステムにおいて効果的に実現することが可能である。
【００２７】
現在引込まれている現在のレイヤのみが非圧縮形態で維持されることが必要であるに過ぎない。その他の全てのレイヤはメモリ空間を節約するために圧縮することが可能である。
【００２８】
バンド化又はタイル化システムにおいては、現在のレイヤの一部のみが非圧縮形態であることが必要であるに過ぎない。引込まれていないバンドは圧縮形態で格納することが可能である。
【００２９】
レイヤは、出力イメージにおいて所望の視覚的効果を得るために任意の順番で且つ組合せで混合させることが可能である。レイヤは複数個のレイヤ内において入れ子状態とさせることが可能であり且つプリントエンジン又はディスプレイエンジンへ送られる出力イメージの形成においてユーザの好みに従って解除される。
【００３０】
簡単なスタック階層を使用して、レイヤ間の関係及び混合したグラフィックオブジェクトの形成におけるレイヤの混合に対する順番を画定することが可能である。
【００３１】
レイヤバッファは、所望の視覚的効果を形成するために必要に応じて動的に割当て及び割当て解除することが可能である。異なる寸法のレイヤバッファの任意の数の組合せが任意の与えられた時間においてアクティブ即ち活性状態とさせることが可能である。
【００３２】
そうでなければ従来の出力表示装置においては不可能であった混合効果を実現することが可能である。本発明は不所望なアーチファクト即ち人工的効果及び複数個のオブジェクトを混合する場合のその他の累積的な効果を取除くことを可能としている。
【００３３】
【発明の実施の形態】
以下の同時に出願され本願出願人が所有する特許出願を引用により本明細書に取込む。即ち、代理人ドケット番号０７８４４／０８７００１の発明者がＳｔｅｐｈｅｎ  Ｃａｒｌｓｅｎ  ｅｔ  ａｌ．の「デジタルイメージの脱中間処理（Ｄｅｈａｌｆｔｏｎｉｎｇ  ｏｆ  Ｄｉｇｉｔａｌ  Ｉｍａｇｅｓ）」名称の特許出願、代理人ドケット番号０７８４４／２２９００１（弊所番号ＰＡ−９２７）の発明者がＳｔｅｐｈｅｎ  Ｃａｒｌｓｅｎの「フレームバッファ内におけるグラフィックオブジェクトの混合（Ｂｌｅｎｄｉｎｇ  Ｇｒａｐｈｉｃｓ  Ｏｂｊｅｃｔｓ  Ｉｎ  Ａ  Ｆｒａｍｅ  Ｂｕｆｆｅｒ）」という名称の特許出願、代理人ドケット番号０７８４４／２１７００１（弊所番号ＰＡ−９３１）の発明者がＬａｒｓ  Ｂｏｒｇ  ｅｔ  ａｌ．の「頁記述言語におけるトランスペアレンシ処理（Ｔｒａｎｓｐａｒｅｎｃｙ  Ｐｒｏｃｅｓｓｉｎｇ  ｉｎ  ａ  Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）」という名称の特許出願、代理人ドケット番号０７８４４／２２８００１（弊所番号ＰＡ−９３０）の発明者がＳｔｅｐｈｅｎ  Ｓｃｈｉｌｌｅｒ  ｅｔ  ａｌ．の「平面状マップでの混合（Ｂｌｅｎｄｉｎｇ  ｗｉｔｈ  Ｐｌａｎｎａｒ  Ｍａｐｓ）」という名称の特許出願、代理人ドケット番号０７８４４／２３０００１（弊所番号ＰＡ−９２９）の発明者がＬａｒｓ  Ｂｏｒｇ  ｅｔ  ａｌ．の「アルファ増倍型カラーデータの変換（Ｃｏｎｖｅｒｓｉｏｎ  ｏｆ  Ａｌｐｈａ−Ｍｕｌｔｉｐｌｉｅｄ
Ｃｏｌｏｒ  Ｄａｔａ）」という名称の特許出願である。
【００３４】
本発明は、頁記述データを受取り且つ例えばコンピュータモニタ又は用紙上で該データからの出力イメージを発生する任意の出力表示装置において実現することが可能である。本発明は、印刷装置に対して特定の適用性を有しており、且つ以後単にプリンタと称するこの様な装置における実施例について説明する。プリンタは、プロッタ、イメージセッタ、デジタルプレス、レーザープリンタ、ドットマトリクスプリンタ、インクジェットプリンタなどを包含するものである。
【００３５】
図１を参照すると、プリンタ１６は、例えば、コンピュータ１２から入力データを受取り、且つその入力データを、プリントエンジン３４へ信号を送ることによって用紙上のマークへ変換させる。プリンタ１６は、頁記述言語入力データを受取り且つそれを後に記載するように処理する形態とされている。一つの適切な頁記述言語はポストスクリプト言語である。ポストスクリプト言語は、アドビシステムズインコーポレイテッドのアドビポストスクリプト言語参照マニュアル（Ａｄｏｂｅ  ＰｏｓｔＳｃｒｉｐｔ  Ｌａｎｇｕａｇｅ  Ｒｅｆｅｒｅｎｃｅ  Ｍａｎｕａｌ）」、アジソン・ウエズリー出版社（第二版、１９９０年）に記載されている。別の適切な頁記述言語は、カリフォルニア州パロアルトのヒューレットパッカードカンパニーから入手可能なＰＣＬ言語である。プリンタへ送られる頁記述言語ファイルは、表示されるべきオブジェクト及び関連情報を特定する。ポストスクリプトオブジェクトは、例えば、表示されるべきピクセルのパターンを画定するピクセルマップを有することが可能であり、又は該オブジェクトはマーク付けされるべき形状を画定するアウトライン（輪郭）曲線を参照することが可能である。該オブジェクトは、更に、キャラクタオブジェクトに対するフォント及び寸法などのその他の情報を有することが可能であり且つ後に更に詳細に説明するように情報を混合することが可能である。
【００３６】
プリンタ１６はバッファ２４、デジタルデータプロセサ、ランダムアクセスメモリ２８、プリントエンジン３４を有している。それは、更に、典型的に、リードオンリーメモリ、Ｉ／Ｏインターフェース、データ転送経路及びバスを有しているが、それらは図示していない。
【００３７】
デジタルデータプロセサは、メモリから実行されるコンピュータプログラムメモリの制御下で動作する汎用又は特別目的マイクロプロセサとすることが可能である。該プロセサは、多数の特別目的サブプロセサを有することが可能であり、各サブプロセサはコンピュータプログラム命令の特定の部分を実行する。図１に示した実施例においては、該プロセサは、インタプリタ５０と、ラスターイメージプロセサ（ＲＩＰ）５２と、混合プロセサ５８とを有している。
【００３８】
各サブプロセサは、他のサブプロセサと実質的に並列的に動作することの可能な別個の回路とすることが可能である。サブプロセサの幾つか又は全ては、実行される場合にそれらのそれぞれの機能を実施するメモリ内に明確に格納されているコンピュータプログラムプロセス（ソフトウエア）として実現することが可能である。これらは、例えば汎用集積回路マイクロプロセサなどの命令プロセサを共用することが可能であり、又各サブプロセサは命令を実行するためのそれ自身のプロセサを有することが可能である。一方、サブプロセサの幾つか又は全てはＡＳＩＣ（応用特定集積回路）で実現することが可能である。
【００３９】
ＲＡＭ２８は、プロセサ及びサブプロセサ５０，５２，５８によって使用されるランダムアクセスメモリである。ＲＡＭ２８は、表示リストメモリ６０、フレームバッファ６２、任意の数のレイヤバッファ６３及び現在のバッファポインタ６６を包含するレイヤテーブル６５を有することが可能である。ＲＡＭ２８は、一つ又はそれ以上の領域に区画化することが可能であり、又は一つ又はそれ以上の別個のメモリ装置で実現することが可能である。
【００４０】
好適には、レイヤバッファ６３は、動的に割当てられ、且つ出力イメージの一つ又はそれ以上のレイヤと関連するピクセルデータを格納するために使用することが可能である。レイヤバッファは、典型的に、フレームバッファよりも小型の寸法に設定され且つ、与えられたレイヤ内にドロー（ｄｒａｗ）即ち引込まれる（描写される）ことを必要とするデータオブジェクトに基づいて動的に寸法設定することが可能である。各レイヤバッファ６３は、フレームバッファと同様な構成とすることが可能であり且つ一つ又はそれ以上のバンドに分割することが可能である。一方、レイヤバッファの構造は、フレームバッファの構造とは独立なものとすることが可能であり且つ特定の具体例に基づいて最適化させることが可能である。例えば、特定の印刷装置は、バンド型フレームバッファを有する場合があり、即ち、複数個のバンドに分割されているフレームバッファを有する場合があり、その中にオブジェクトデータをペイント即ち貼付けて、印刷すべき頁の予め定めた部分をカバーすることが可能である。所望の視覚的効果を得るために、ユーザはフレームバッファの単一のバンド内において二つ以上のレイヤのグラフィックオブジェクトをブレンド即ち混合することを所望する場合がある。この例においては、フレームバッファはバンド装置であるが、単一のバンド内にレイヤの混合を与えるために必要とされるレイヤバッファの実現においては、レイヤバッファが同様な構成とされることを必要とするものではない。
【００４１】
フレームバッファ６２はディープ即ち深いか又はシャロー即ち浅いフレームバッファとすることが可能である。浅いフレームバッファは、典型的にピクセル当たり１ビットのビット深さを有するレンダリングデータを格納する形態とされている。ディープ即ち深いフレームバッファは、典型的にピクセル当たり１を超えるビットのビット深さを有するレンダリングデータを格納する形態とされている。混合を行うために浅いバッファデータを処理することについては上述したＳｔｅｖｅ  Ｃａｒｓｅｎが発明者である「デジタルイメージの脱ハーフトン処理（Ｄｅｈａｌｆｔｏｎｉｇ  ｏｆ  Ｄｉｇｉｔａｌ  Ｉｍａｇｅｓ）」という名称の特許出願において詳細に記載されている。本発明を明確とするために、ディープ即ち深いフレームバッファの例についてここで説明する。フレームバッファ６２は、出力イメージのバックグラウンドレイヤ内にレンダリングしたオブジェクトを格納するために使用することが可能であり、一方レイヤバッファ６３は、バックグラウンドレイヤと混合する前に、フォアグラウンドのレンダリングしたデータを格納するために使用することが可能である。更に、フレームバッファ６２は、一つ又はそれ以上のレイヤとバックグラウンドとの混合から派生する結果的に得られるデータを格納するために使用することが可能である。
【００４２】
レイヤテーブル６５は、レイヤデータを格納するために使用することが可能であり、且つ与えられたレイヤと関連するメモリデータにおけるどこに格納されているかを表わすメモリアドレス情報、混合命令及び現在のバッファポインタを格納するために使用することが可能である。
【００４３】
インタプリタ５０によって受取られたオブジェクトは、表示リストメモリ６０内に格納するために表示リストデータへ解釈することが可能である。一方、グラフィックデータオブジェクトは、フレームバッファ６２又はレイヤバッファ６３内へピクセルマップとしてＲＩＰ５２によってすぐさまペイント即ち貼付けることが可能である。ＲＩＰ５２は、オブジェクトを、フレームバッファ６２又はレイヤバッファ６３内に不透明的にペイント即ち貼付けることが可能である。一方、レイヤレベルにおける個別的なオブジェクトの混合は、上述したＳｔｅｐｈｅｎ  Ｃａｒｌｓｅｎ、Ｌａｒｓ  Ｂｏｒｇ、Ｓｔｅｐｈｅｎ  Ｓｃｈｉｌｌｅｒが発明者である「フレームバッファにおけるグラフィックオブジェクトの混合（Ｂｌｅｎｄｉｎｇ  Ｇｒａｐｈｉｃｓ  Ｏｂｊｅｃｔｓ  ｉｎ  ａ  ＦｒａｍｅＢｕｆｆｅｒ）」という名称の特許出願に詳細に記載されているように、達成することが可能である。
【００４４】
ＲＡＭ２８は、一つ又はそれ以上のメモリチップで構成することが可能である。表示リストメモリ６０及びフレームバッファ６２が単一のメモリとして合体される場合には（合体メモリ）、該メモリは区画化させるか、又はそうでない場合には種々のメモリサブコンポーネントの境界を反映すべくマッピングすることが可能である。
【００４５】
物理的な相互接続ではなくデータの流れが図１６の要素間において示してある。プロセサ及びメモリコンポーネントは、物理的には、従来のバスアーキテクチャを使用して相互接続されている。
【００４６】
上に説明したプリンタコンポーネント（構成要素）は、単一の製品としてパッケージとすることが可能であり、一方、幾つかはコンピュータ１２内に設け又はその他を別個に収納することが可能である。
【００４７】
説明の便宜上、最初は、単一カラー空間における二つのレイヤの例について説明する。本発明をグラフィックオブジェクトのその他のカラー空間表現への適用も同様である。
【００４８】
次に、図１及び２を参照すると、ラスター出力装置に対する従来のレンダリング及びマーキングプロセスがレイヤのブレンド即ち混合を実施する方法を付加することによって向上される（２００）。プリンタ１６はコンピュータ１２からオブジェクトデータ及び混合オペレータ（演算子）を受取る（２０２）。
【００４９】
プリンタ１６は、現在のバッファポインタをフレームバッファ６２に対してポイントするように設定することによってデフォルトモードの形態とさせることが可能である（２０３）。デフォルトモードにおいては、インタプリタ５０は、受取ったデータオブジェクトを直接的にフレームバッファ６２（「デフォルトレイヤ」）内にペイント即ち貼付けられるように、ＲＩＰ５２の出力に指示を与える。
【００５０】
一方、ＲＩＰ５２は、受取ったオブジェクトを直接的に指定したレイヤバッファ内へペイント（貼付け）することが可能である。ステップ２０４はオブジェクトデータを「現在のバッファ」、即ち現在のバッファポインタによって示されている位置に依存してレイヤバッファか又はフレームバッファかの何れかの中にオブジェクトデータをペイント（貼付け）することとなる。現在のバッファポインタは、インタプリタ５０によって維持することが可能であり且つ特定のグラフィックオブジェクトに先行するか又はそれに付随するタグ（以後、「レイヤオペレータ」）を受取ると修正することが可能である。例えば、フレームバッファは、バックグラウンドレイヤと関連するバックグラウンドデータを格納するために使用することが可能であり且つバックグラウンドデータがコンピュータ１２から供給される場合に現在のバッファとして書込むことが可能である。フォアグラウンド（前景）レイヤへの遷移のために、レイヤオペレータを含むフォアグラウンドデータオブジェクトを使用して、現在のバッファポインタをアップデートしてレイヤポインタに対してポイントさせ、それによりＲＩＰ５２をイネーブルさせてフォアグラウンドレンダリングデータをメモリ内の適宜のフォアグラウンドレイヤ位置内へ直接的にペイント即ち貼付けることが可能である。
【００５１】
レイヤオペレータを受取ると（２１２）、インタプリタ５０は、レイヤデータを格納するためにメモリの一部（レイヤバッファ）を割当てることによってレイヤオペレータを処理し且つ現在のバッファポインタを設定することによってＲＩＰからの指定されたレイヤと関連するオブジェクトの該レイヤバッファへのペイント即ち貼付けを指示する（２１４）。
【００５２】
特定のレイヤに対する全てのオブジェクトがレイヤバッファ内にペイントされると（２０７）、レイヤバッファは混合プロセサによってコンピュータ１２から受取った混合命令に従って別のレイヤと混合させることが可能である（２０９）。その混合の結果単一のレイヤとなる（二つのレイヤが混合されて一つのレイヤとなる）。該混合は元のレイヤのうちの一つと関連しているメモリの割当て解除となる場合があり且つ現在のバッファポインタに対するアップデートとなる場合がある。このプロセスは、頁の最後に到達するまで継続して行われる（２０６）。
【００５３】
頁の終わりに到達すると、混合プロセスは、何らかの未処理のレイヤが混合されるべく残存しているか否かを判別するためのチェックを行う（２０８）。混合されるべき残存しているレイヤが存在しない場合には、その頁は、フレームバッファ６２から直接的にプリントエンジン３４へデータをパスすることによって印刷することが可能である（２１０）。何れかのレイヤが処理すべく残存している場合には、該レイヤは混合プロセサ５８によって混合させることが可能である（２１６）。一方、未処理のレイヤバッファは、次の頁へ持越すか、廃棄するか、又はその他の態様で混合プロセサ５８によって処理することが可能である。
【００５４】
レイヤ混合の結果は、フレームバッファ６２内に格納することが可能である（２１８）。混合操作の完了時において、フレームバッファ６２内に格納されている結果データは印刷を行うためにプリントエンジン３４へ転送することが可能である（２１０）。その後に、本プロセスは終了する（２２０）。
【００５５】
一つの層と関連しているオブジェクトは、上述したように、第二レイヤと関連するオブジェクトを受取る前に逐次的に受取ることが可能である。一方、オブジェクトはランダムな順番で受取ることが可能である。
【００５６】
混合
レイヤは、コンピュータ１２から供給された混合情報に従ってブレンド即ち混合することが可能である。その混合情報は、混合操作において使用されるべきタイミングとアルゴリズムの両方を定義することが可能である。種々の混合アルゴリズムが、二つのレイヤを混合するために混合プロセサ５８によって喚起することが可能である。混合プロセサ５８は、適宜の混合式に従ってレイヤ内の各位置におけるピクセル値を結合する。混合式の例としては以下に示すようなものがある。
【００５７】
混合モード 混合式
トランスペアレンシ              Ｎ＝Ｆ×不透明度＋Ｂ×（１−不透明度）
（アルファ混合）
シャドー                        Ｓｈ＝通常×Ｂ
スクリーン                      Ｓｃｒ＝Ｎ＋Ｂ−（Ｎ×Ｂ）
ダークニング                    Ｄｒｋ＝Ｍｉｎ（Ｎ，Ｂ）
ライトニング                    Ｌｔｒ＝Ｍａｘ（Ｎ，Ｂ）
付加                            Ａｄｄ＝Ｎ＋Ｂ
オーバープリント                Ｏｖｒ＝Ｎ＋Ｂ−１
尚、Ｎは通常（トランスペアレンシ）であり、Ｆはフォアグラウンドデータであり、Ｂはバックグラウンドデータであり、且つ不透明度は０と１との間であり、ダークニングは暗くすることであり、ライトニングすることは明るくすることであり、Ｍｉｎは最小値であり且つＭａｘは最大値である。
【００５８】
混合プロセサ５８は、混合式のうちの一つ又はそれ以上をサポートすることが可能である。使用すべき方法に対してユーザが画定した選択は、レイヤオペレータの一部として混合命令の形態でコンピュータ１２によって供給することが可能である。該命令は、混合を行うときに検索するためにレイヤテーブル６５内に格納することが可能である。
【００５９】
メモリ節約技術
Ｉ．圧縮
次に、図３ａ及び３ｂを参照すると、プリンタ１６は、圧縮５５及び脱圧縮エンジン５７を有することが可能である。圧縮エンジン５５は、現在のバッファではないバッファ内に格納されているデータを圧縮するために使用することが可能である。逆に、脱圧縮エンジン５７は、さらなるオブジェクトを付加する前又は別のバッファからのデータとのデータの混合の前に、バッファ内に格納されている圧縮データを脱圧縮即ち伸張させるために使用することが可能である。圧縮技術が使用される場合には、レイヤを混合するためのプロセス２００は、新たな現在のバッファが識別か否かを判別することによって新たなバッファ（例えば、フレームバッファ又はレイヤバッファ）内にグラフィックオブジェクトがレンダリングされるべきか否かを判別するステップを有するように修正されている（２１３ａ）。コンピュータ１２から受取ったオブジェクトは、ＲＩＰによってペイント中の現在のバッファが爾後のオブジェクトがレンダリングされるバッファと同一でない場合に、新たなバッファへ書込まれることが必要とされる。新たな現在のバッファが設定されていない場合には、本プロセスはステップ２１４へ継続する。
【００６０】
新たな現在のバッファ命令が検知されると、現在のバッファ（フレームバッファか又はレイヤバッファの何れか）の内容を圧縮することが可能である（２１３ｂ）。その後に、この新たな現在のバッファの内容を、新たな現在のバッファ内にさらなるオブジェクトデータをペイントする前に、適宜脱圧縮即ち伸張することが可能である（２１３ｃ）。レイヤ操作がレイヤの混合又は前に圧縮したバッファへの新たなデータの書込みを必要とする場合には脱圧縮即ち伸張を付加することも可能である。更に、脱圧縮ステップ（２１５）は少なくとも一つのレイヤバッファ６３内に格納されているデータを脱圧縮即ち伸張させるために混合ステップ２１６の前に付加されることが必要とされる場合がある。
【００６１】
II．バンドバッファ
次に、図４を参照すると、フレームバッファ１６は、非圧縮型バンドバッファ６２−１及び圧縮型バンドバッファ６２−２を有するように分割することが可能である。非圧縮型バンドバッファ６２−１は、非圧縮型レンダリングデータの一つ又はそれ以上のバンドを保持する寸法とすることが可能である。圧縮型バンドバッファ６２−２は、圧縮形態のレンダリングデータを格納する寸法構成とすることが可能である。各レイヤバッファ６３は非圧縮型及び圧縮型部分を有するために同様の形態とすることが可能である（不図示）。該非圧縮型部分はＲＩＰ５２から直接的にデータをペイントするために使用することが可能であり、一方該圧縮型部分は、以前にレンダリングしたデータの一つ又はそれ以上の圧縮したバンドを格納するために使用することが可能である。一方、フレームバッファ及びレイヤバッファは、全てのレンダリングされたデータがＲＩＰ５２によって書込まれる非圧縮型バンドバッファを共用することが可能である。
【００６２】
バンド又はタイルシステムにおいては、フレームバッファ又はレイヤバッファのうちの一部のみが非圧縮形態に維持され、一方現在引込まれていないバッファに関連するバンドの残部は圧縮形態に維持される。インタプリタ５０はコンピュータ１２からオブジェクトデータを受取り且つ表示リストメモリ６０内の表示リスト内に該オブジェクトデータを格納する。与えられたバンドに対する全てのオブジェクトが受取られると（又は、与えられたバンドに対する表示リストメモリが満杯となると）、ＲＩＰ５２はその与えられたバンドに対する表示リスト内に格納されているオブジェクトデータを非圧縮型バンドバッファ６２−１のバンド内へ直接的にペイント即ち貼付けを行うことをレンダリングすることが可能である。該表示リストの全てのオブジェクトが非圧縮型バンドバッファ６２−１内にペイントされると、そのバンドに対するデータを圧縮し且つその結果得られる圧縮データを圧縮型バンドバッファ６２−２内又はレイヤバッファの圧縮部分内に格納するために圧縮エンジン５５を喚起させることが可能である。
【００６３】
一つのバンドに関連する全てのデータオブジェクトが表示リストを非圧縮型バンドバッファに対してレンダリングする時に受取られない場合には、サイクル動作を喚起させることが可能である。サイクル動作においては、前に圧縮したデータのバンドを脱圧縮即ち伸張させ且つ非圧縮型バンドバッファ６２−１内に格納させることが可能である。次いで、オブジェクトをＲＩＰ５２によってそのバンド内にレンダリングさせることが可能である。そのバンドと関連する表示リストに対する全てのデータオブジェクトを処理した後に、該バンドは、再度、圧縮され、且つ圧縮型バンドバッファ６２−２内又はレイヤバッファの圧縮部分内に格納することが可能である。
【００６４】
レイヤバッファ６３がバンドアーキテクチャの形態にある場合には、レイヤを混合するプロセスは、別のレイヤと関連する対応するバンドと混合する前に、与えられた層の圧縮されているバンドを脱圧縮することが必要な場合がある。
【００６５】
マルチレイヤシステム
上述した説明は、レイヤバッファ内に格納されているフォアグラウンドレイヤをフレームバッファ内に格納されているバックグラウンドレイヤと混合して所望の視覚的効果を得るために使用することが可能であるような二つのレイヤの混合したものを印刷することに関するものである。より複雑な視覚的効果は、二つを超えたレイヤを包含することによって達成することが可能である。この様な結果を得るために、ホストコンピュータから混合に対する階層を供給することが要求され又は表示装置によって推測される場合がある。
【００６６】
推測型レイヤスタック
再度図１を参照すると、プリンタ１６はレイヤテーブル６５内に構成されているレイヤスタック即ちレイヤの積層体を有することが可能である。レイヤをスタックすること即ち積重ねることは、レイヤデータが作成されるか又は受取られる順番から推測することが可能である。簡単なレイヤ構成においては、コンピュータ１２はレイヤ間の遷移を指定するレイヤオペレータ及び新たなレイヤをレイヤスタック内のその親のレイヤと混合させるための混合命令を供給することが可能である。この様なレイヤオペレータのログ即ち記録は、インタプリタ５０によってレイヤテーブル６５内に維持することが可能である。該レイヤテーブル内の各エントリは、単一のレイヤと関連することが可能である。混合を行うときに（与えられた頁に対して全てのグラフィックオブジェクトが処理された後に）、レイヤは、混合命令に従う混合プロセサによって、受取ったのと逆の順番に、一度に二つのレイヤずつ混合することが可能である。
【００６７】
頁記述言語画定型構造
推論型構造は非常に簡単なレイヤオペレータを使用することを可能とするが、レイヤのより複雑な構造は複雑な視覚的効果を得るために望ましい場合がある。混合命令は、レイヤが混合される順番（例えば、レイヤ１とレイヤ３、その複合したものをレイヤ２と混合）を画定するレイヤオペレータと共に与えることが可能である。更に、レイヤを階層内にネスト即ち入れ子状態とし且つ与えられた頁に関連する全てのグラフィックオブジェクトの処理の終了時におけるのではなくレイヤが何時混合されるかに関しての制御を可能とすることによってより複雑な混合を行うことが可能である。
【００６８】
レイヤを混合するための頁記述言語構造は、レイヤスタックアーキテクチャ及び少なくとも三つのタイプのレイヤオペレータを有することが可能である。該レイヤオペレータは、プリンタ１６に対して所望の混合を実施することを指示するためにコンピュータ１２によって与えることが可能である。
【００６９】
レイヤ作成オペレータを使用して新たなレイヤを指定することが可能である。レイヤ作成オペレータに応答して、インタプリタ５０はレイヤテーブル６５内に新たなエントリを作成する。レイヤ作成オペレータは、グラフィックデータ混合において各レイヤに対して必要とされる場合がある。レイヤ作成オペレータが処理されると、レイヤはレイヤテーブル６５内に構成されたスタック上に「プッシュ」される。階層的スタック内の親及び子孫関係は作成された各レイヤに対して定義することが可能である。
【００７０】
現在のレイヤオペレータはそのオペレータに追従する（又は付随する）オブジェクトはあるレイヤに属するものであることを指定するために使用することが可能である。現在のレイヤオペレータに応答して、該インタプリタは、レンダリングしたデータをＲＩＰ５２からレイヤバッファへ転送することを指示することが可能である。現在のレイヤオペレータは図２に関連して説明したレイヤオペレータとほぼ同一の動作を行う。現在のレイヤオペレータの処理は階層的スタックの内容に関して何ら影響を有するものではない。
【００７１】
レイヤレンダリングオペレータはスタック上のレイヤの混合を喚起するために使用することが可能である。レイヤレンダリングオペレータはポップ命令の形態をとることが可能である。ポップ命令に応答して、混合プロセサはスタックから一つのレイヤをポップさせ（子供レイヤ）、該レイヤを階層的スタック内のその親のレイヤと混合させ、且つその結果を親のレイヤバッファ内に格納させることが可能である。このポップ操作は、レイヤテーブルから一つの要素の除去（割当て解除）が発生し（子供レイヤ）且つ混合操作の結果として親レイヤが修正される。
【００７２】
次に、図５を参照すると、レイヤスタックを画定するレイヤオペレータを含むシステムにおけるレイヤの混合プロセスが示されている。このプロセスは、現在のバッファポインタを初期化してフレームポインタに対してポイントさせることを包含している（３０１）。オブジェクト及びレイヤオペレータは処理すべきコンピュータ１２から受取られる（３０２）。オブジェクトデータが受取られると（３０３）、グラフィックオブジェクトがＲＩＰ５２によって処理され且つ直接的に現在のバッファ内にペイントされる（３０４）。
【００７３】
レイヤ作成オペレータが受取られると（３０５）、エントリがレイヤテーブルへ付加され（３０６）、本プロセスはステップ３０４において継続して行われる。レイヤテーブル内の各エントリはレイヤ識別子、バッファ識別子、圧縮フラグを有することが可能である。バッファ識別子は、そのレイヤと関連するデータがどこに格納されるか（レイヤバッファか又はフレームバッファか）というＲＡＭ２８内の位置を識別する。圧縮フラグは、レイヤデータが圧縮形態にあり、従って検索、混合又はその他の処理の前に脱圧縮即ち伸張を行うことが必要であることを表わす。
【００７４】
現在のレイヤオペレータが受取られると（３２１）、現在のバッファポインタがアップデートされ（３０８）且つ本プロセスはステップ３０４において継続して行われる。
【００７５】
レイヤレンダリングオペレータが受取られると（３２２）、スタック上の二つのレイヤが混合プロセサ５８によって混合される（３２４）。レイヤオペレータは、どの二つのレイヤが混合されるかを画定することが可能であり、又はスタックへ付加された最後の二つのレイヤ、最後のレイヤと現在のレイヤ（現在のバッファポインタによって示されている）又はその他の別の対のレイヤを混合するためのデフォルト選択を行うことが可能である。レイヤテーブルがアップデートされてスタックからレイヤのうちの一つを除去し（３２６）、混合操作から派生された結果的に得られるレイヤデータは他方のレイヤバッファ内に格納されるべく戻される（３２８）。
【００７６】
本プロセスは、その頁と関連する全てのグラフィックオブジェクトが処理されるまで継続して行われる（３２３）。その後に、一つを超えるレイヤが存在するか否かの判別をするためのチェックが行われる（３１２）。存在しない場合には、フレームバッファの内容を印刷するためにプリントエンジンへ直接転送することが可能であり（３１４）且つその後に本プロセスは終了する（３２０）。レイヤが存在する場合には、混合プロセサ５８は全てのレイヤが混合されるまで一度に二つのレイヤずつスタック順に従って該レイヤを混合し（３１６）、次いで、その結果得られるデータをフレームバッファへパスする（３１８）。混合プロセサは、作成された最後のレイヤをスタック上のその親（時間通りに受取られた前のレイヤ）と結合することによってスタックからのレイヤを処理する。次いで、その結果得られるイメージを、全てのレイヤが混合されるまで、該スタック階層内の次のレイヤと結合させ、その結果はフレームバッファの内容と混合させることが可能である。その他のデフォルトの階層を使用することが可能である。例えば、階層内の親のレイヤの子供である全てのレイヤを、親のレイヤを同一の階層レベル内の「子孫」レイヤと混合する前に、混合させることが可能である。
【００７７】
ネスティング（入れ子）
レイヤレンダリングオペレータ及びレイヤ作成オペレータは、複雑な混合階層を作成することを可能とする。次に、図６ａを参照すると、レイヤ作成オペレータは、スタック内のレイヤの順番付けを行うことを可能とする。図示例においては、与えられた頁と関連している全てのオブジェクトが処理され、スタック内のレイヤを受取った順番と逆に混合すると単一レベル階層が得られる。次に、図６ｂを参照すると、レイヤ作成オペレータと関連してレイヤレンダリングオペレータを使用することによってより複雑な階層を実現することが可能である。親／子供階層におけるレイヤのネスティング即ち入れ子が与えられた頁に対する最終的混合時間前に、レイヤの混合と共にレイヤの作成をシーケンス動作することによって得ることが可能である。これらの中間的な混合は、所望の視覚的効果を発生させるためにより多くの自由度を可能としている。
【００７８】
一つのレイヤを二つ以上のレイヤ内へ混合させること
複雑な視覚的効果を得るために、単一のレイヤを複数個の他のレイヤ内に混合させることが所望される場合がある。プリンタ１６においてこのことを達成する一つの方法は、レイヤ（例えば、親及び子供レイヤ）を混合し且つその混合結果を第二レイヤ（子供レイヤ）の内容に影響を与えることなしに、二つのレイヤのうちの一つ（親レイヤ）内に引戻すことである。
【００７９】
再度、図１を参照すると、プリンタ１６においてこのことを達成する別の方法は、コピーバッファ６７を設けることである。コピーバッファ６７は、同じレイヤを階層内の複数個のレイヤと混合させることが可能であるようにフレームバッファ内のデータのコピーを格納するために使用することが可能である。該コピーバッファは、レイヤレンダリングオペレータに関連して所望の視覚的効果を発生させるために効果的に使用することが可能である。
【００８０】
別の実施例
当業者によって理解されるように、本明細書に開示した原理はその他のプリンタ形態に対しても良好に妥当なものである場合がある。例えば、グラフィックデータの混合は、オブジェクトデータをＲＩＰ５２によってピクセルデータへ変換する前に実施することが理想的な場合がある。上述したＬａｒｓ  Ｂｏｒｇ  ｅｔ  ａｌ．が発明者である「平面状のマップでの混合（Ｂｌｅｎｄｉｎｇ  ｗｉｔｈ  Ｐｌａｎａｒ  Ｍａｐｓ）」という名称の特許出願は、平面状のマップを使用してグラフィックオブジェクトを混合する方法及び装置について記載している。平面状のマップは、ラスタライズプロセスの前に、グラフィックオブジェクトを混合するために引込まれ即ち描かれ且つ使用される。本発明の技術は、平面状マップ混合方法にとっても良好に妥当なものである。平面状マップの一つ又はそれ以上のレイヤは、混合操作及び複雑な視覚的効果の発生を容易なものとさせるために表示装置内において計算し且つ格納することが可能である。メモリの各レイヤは、結合されるべき一つ又はそれ以上のグラフィックオブジェクトの一つのグループを表わす一つ又はそれ以上の平面状マップを格納するために使用することが可能である。平面状マップ実施例においては、平面状マップの混合及びメモリの割当てにおいて一つの差異が発生する。平面状マップは二つの平面状マップ表現の混合を表わす複合マップを派生するために結合させることが可能である。しかしながら、メモリの別の部分はその結果発生する平面状マップを格納するために割当てられねばならない（既存の平面状マップはフレームバッファを使用する場合のピクセル毎の混合に関する操作の場合におけるように、単純に引込むことは不可能である）。ピクセルレベルにおいて又は上述したような平面状マップレベルにおける混合に加えてその他の混合方法を使用することが可能である。混合の形態又はタイミングがどの様なものであろうとも、レイヤを使用することはオブジェクトを混合するために柔軟性のある階層を与え且つ本発明を実施することによって実現することが可能である。
【００８１】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【図１】  本発明に基づくプリンタを示した概略ブロック図。
【図２】  レイヤを使用するプリンタにおいて混合を実施するプロセスを示したフローチャート。
【図３ａ】  圧縮及び脱圧縮メカニズムを含む図１のプリンタを示した概略ブロック図。
【図３ｂ】  圧縮及びレイヤの混合を使用する表示装置におけるメモリを最小とするプロセスを示したフローチャート。
【図４】  バンドシステムに対する本発明に基づくプリンタを示した概略ブロック図。
【図５】  出力イメージの複数個のレイヤを処理するための出力表示装置における頁記述オペレータを使用するスタックアーキテクチャを実現する方法を示した概略図。
【図６ａ】  本発明に基づいて簡単なレイヤオペレータで達成することの可能な混合階層の一例を示した概略図。
【図６ｂ】  本発明に基づく中間混合で得ることの可能な混合階層の一例を示した概略図。
【符号の説明】
１２  コンピュータ
１６  プリンタ
２４  バッファ
２８  ランダムアクセスメモリ
３４  プリントエンジン
５０  インタプリタ
５２  ラスターイメージプロセサ（ＲＩＰ）
５８  混合プロセサ
６０  表示リストメモリ
６２  フレームメモリ
６３  レイヤバッファ
６５  レイヤテーブル
６６  バッファポインタ
【図１】
0004883825.tif 000002
【図２】
0004883825.tif 000003
【図３ａ】
0004883825.tif 000004
【図３ｂ】
0004883825.tif 000005
【図４】
0004883825.tif 000006
【図５】
0004883825.tif 000007
【図６ａ】
0004883825.tif 000008
【図６ｂ】
0004883825.tif 000009