JP3753263B2 - 画像を処理する方法 - Google Patents
画像を処理する方法 Download PDFInfo
- Publication number
- JP3753263B2 JP3753263B2 JP18582196A JP18582196A JP3753263B2 JP 3753263 B2 JP3753263 B2 JP 3753263B2 JP 18582196 A JP18582196 A JP 18582196A JP 18582196 A JP18582196 A JP 18582196A JP 3753263 B2 JP3753263 B2 JP 3753263B2
- Authority
- JP
- Japan
- Prior art keywords
- zone
- data
- memory
- zones
- display list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0005—Accepting output data; Preparing data for the controlling system
- G06K2215/0014—Transforming the printer input data into internal codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0062—Handling the output data combining generic and host data, e.g. filling a raster
- G06K2215/0065—Page or partial page composition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0082—Architecture adapted for a particular function
- G06K2215/0094—Colour printing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Record Information Processing For Printing (AREA)
- Editing Of Facsimile Originals (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は画像処理に関し、特に表示リストを生成し、使用する方法に関する。
【0002】
【従来の技術】
多くの型式のプリンタ(例えばHP DeskJet 1200Cプリンタ)では、ホスト・コンピュータからプリンタへの制御および表示の情報は、高水準ページ記述言語(page description language;PDL)で与えられ、プリンタでラスタ・スキャン型式のフォーマットに変換される。そしてプリンタは、媒体に印刷するために、ラスタ・スキャン・フォーマットのデータを印刷エンジンに適用する。ホスト・コンピュータではなくプリンタが高水準のコマンドの処理を行うので、コンピュータはより速くユーザーを支援することができる。
【0003】
HP DeskJet 1200Cは、黒のペン、シアン(cyan)のペン、マゼンタ(magenta)のペンおよび黄のペンを使用するカラー・インクジェット型式のプリンタである。ペンは、媒体を横切って走査するキャリッジに配置され、テキスト、ベクトル・グラフィックスまたは写真のような画像の、帯(swath)またはバンドを印刷する。それぞれの帯が印刷されたあと、媒体は、走査の方向と垂直な方向に向きが変えられる。黒のインクまたはカラーのインクの液滴は、走査式(scanning)インクジェット印字ヘッドによって、媒体上にドットまたは画素を形成するように選択的に放出される。これらのドットは近接した間隔であるか、あるいは重なっており、個々のドットは互いに区別することができない。多くの色は、シアン、マゼンタおよび黄のインクの多様な組合せによって生成される。
【0004】
プリンタに伝送されるページ記述言語は、表示される形状を、座標、および長方形、ベクトル、円および多角形のようなプリミティブを使用して記述する。テキストは、特徴の外観を記述するというよりはむしろ、特徴、位置およびフォントを示すことによって記述される。またページ記述言語は、形状を特定の背景パターンまたは色にコピーするというような、形状に実施される操作を識別する。複雑さが閾値を越えるとき、ラスタ・スキャン・フォーマットでのそのような伝送が高級言語と関連して許容されるけれども、このようなページ記述言語は、印刷されるそれぞれの画素がラスタ・スキャンの順にプリンタに伝送され、フレーム・バッファに格納される単純な画素毎の記述とは対照的ではある。
【0005】
言語パーサー(parser;言語分析装置)は、後述されるように、PDL命令のいくつかの処理を実行して、印刷されるオブジェクト(対象)およびそれらの属性を表示リストに格納する。表示リストは、帯ごとの色、パターン、論理操作および他の記述というような属性を追跡する。表示リスト構造は米国特許第5,250,940号、5,058,042号および4,694,405号の明細書で述べられている。表示装置で用いられる従来の構成要素の詳細を付け加え、従来技術の技能のレベルを伝えるためにこれを参照として取り入れる。
【0006】
そして画像プロセッサは、印刷エンジンで印刷するために、表示リストのオブジェクトをラスタ化する。Anthony Parkhurst等による「Connectivity of the HP DeskJet 1200C Printer」(Hewlett-Packard Journal, 1994年2月, ページ85-97)に、ホスト・コンピュータおよびHP DeskJet 1200Cカラー・プリンタの間の良く知られたインターフェースが記述されている。この論文をここで参照として取り入れる。このようなインターフェースは、他のプリンタで使用されるインターフェースと同類である。
【0007】
よく知られたページ記述言語の1つはPCL-5C言語であり、「PCL 5 Printer Language Technical Reference Manual」(Manual Part No.5961-0509, 1992年)という題目のヒューレット・パッカード社の刊行物で述べられており、ここで参照として取り入れる。グラフィックス・プログラムを開発しているプログラマは、表示される画像を定義するために、このようなPCL-5言語を使用することができる。他のページ記述言語は、ポストスクリプト(Postscript)やHP-GL/2を含む。
【0008】
プリンタで必要とされる表示リスト・メモリの量、およびページを良好に描画し、印刷するためにかかる時間は、まさにページ記述の複雑さに比例する。HP DeskJet 1200Cの記憶容量は2メガバイトであるが、より複雑なグラフィックスのために最高26メガバイトまで拡張が可能である。
【0009】
図1は、ホスト・コンピュータからの高水準のPDLデータ・ストリームを、印刷エンジンへの簡単なデータ・ストリームに変換する、プリンタの重要な要素を示している。
【0010】
プリンタの言語パーサー10は入ってくるPDLデータ・ストリームを走査し、データ・ストリームのコマンドを認識し、リクエストされた機能を実行する。これらの機能は、例えばページ上のオブジェクトの記述ならびに位置、およびそのオブジェクトに実行される操作に関連する。またパーサー10は、リクエストされたテキストの特徴のビットマップを生成することができる。パーサー10の出力は、表示リスト12に格納される。
【0011】
表示リスト12は、印刷されるページを記述するメモリの中のデータから構成される。データは整列した帯リスト13に区分され、1つの帯リスト13はそのページに印刷される一つ一つのバンドに対応し、それぞれの帯リストはそのバンドに属する印刷されるべきすべてのオブジェクトを保持する。表示リスト12のページ記述が完了すると、帯リスト13は画像プロセッサ14によって連続的に処理され、ビットマップの帯バッファ16に格納するためにラスタ・データの水平バンドに描画される。そしてビットマップの画素データは、フォーマッタによって回転され、シフトされ、というようにさらに処理され、走査の間に印刷するために、印刷エンジン18内の印刷バッファに送られる。印刷バッファの画素データは、使用される特定の走査式印字ヘッドに関して特別に配置される。例えば、印刷バッファの画素データの配置は走査式印字ヘッドのノズルの形状に依存する。
【0012】
ビットマップの帯バッファ16は、統計学的に2つのフルカラー帯についてメモリを割当てられている。画像プロセッサ14が、帯バッファ16の一組のCMY平面にラスタ化を行い、一方で、印刷エンジン18による使用のために、バッファ16の他の組のCMY平面の画素データが処理されることができる。
【0013】
ページ・レイアウト20の例は、1インチあたり300ドット(dpi)のプリンタとして示されている。1つの例で、1ページあたり25の帯があり、それぞれの帯は高さが128ドットおよび幅が2,450ドットである。図2は、オブジェクトおよびテキスト22が印刷される印刷ページ21を示す。破線23は帯の境界を表している。
【0014】
言語パーサー10は、ページ上のオブジェクトの位置に基づいて、表示リスト12の適当な帯リスト13を識別し、そのオブジェクトの情報をその帯リスト13に関して札付けされたデータ・ブロック24にコピーする。それぞれのデータ・ブロック24は、例えば512バイトである。データ・ブロック24は連結(linked)リストを形成し、それぞれのデータ・ブロック24は、処理される次のデータ・ブロック24を識別する。1つの帯について必要とされるデータ・ブロック24の数は、その帯に印刷される画像の複雑さに依存する。帯の境界を越えるオブジェクトは、帯の限界に応じて切り取られる下位のオブジェクトに分割される。オブジェクトがホスト・コンピュータからプリンタに伝送される順序は、オブジェクトがページ上に現れる順序である必要はない。言語パーサー10が、この位置決め作用を実行するからである。
【0015】
画像プロセッサ14は、それぞれのデータ・ブロック24を連続して処理する。プロセッサ14はそれぞれのオブジェクトの操作コードを見て、シアン、マゼンタおよび黄(C,M,Y)のビットマップの画像28 (カラー印刷の場合)、または1つのモノクロの画像30(モノクロ印刷の場合)にそれをラスタ化する。ラスタ化されたデータは、帯バッファ16に格納される。上述したように、このラスタ化されたデータは、印刷エンジン18のフォーマッタによって、実際の印刷のためにさらに処理される。
【0016】
【発明が解決しようとする課題】
上記のことから分かるように、表示リスト12によって費やされるメモリの量は、まさにページ記述の複雑さに比例する。ある極端に複雑なページのために、表示リスト12は潜在的に非常に大きくなり、メモリを使い尽くすことがありうる。
【0017】
例えばHP DeskJet1600Cのようなプリンタ設計では、メモリ拡張技法(MEt)を使用することによって、メモリ競合の問題をある程度軽減する。MEtは、データをフォーマットするプロセスのそれぞれの段階で用いられる、それぞれのメモリ最適化技法を含む。MEtが多く使用される段階の1つは、表示リスト12を解析し、組み立てる時である。ある帯の複雑さが所定の閾値以上であると検出される場合はいつも、必要であれば従来のメモリ拡張技法を用いて、帯が先にラスタ化され、圧縮される。ここで、圧縮されたデータが帯リストに格納される。これは帯を格納するのに必要なメモリの量を削減し、現在不使用の表示リスト・ブロックを解放する。これは、1つの帯に関するメモリの使用に上限を設ける。
【0018】
ヒューレット・パッカード社の新世代のプリンタは、600dpiの解像度の印刷を提供している。これは、ドット密度を300dpiのプリンタの4倍まで増加させる。ビットマップの帯バッファ16のメモリ・サイズを単純に4倍に増やし、同時に画像を処理するハードウェア/ソフトウェアの複雑さを増加させることは、比較的費用がかかる。従ってプリンタのメモリをより効率的に使用して、印刷するための画像データを処理する革新的な設計が必要とされている。また画素の解像度が増大されることによって、処理機能がさほど遅くならないことが望まれる。
【0019】
【課題を解決するための手段】
印刷されるページを完全な帯(full swath)に区分し、それぞれの帯が1単位として処理される従来の表示リスト配置に代わって、本発明は、それぞれの帯が複数のゾーン(すなわちタイル)に区分され、それぞれのゾーンが別々の単位として処理される表示リストを使用する。
【0020】
表示リストに入るオブジェクトは、パーサーによって、ゾーンの水平および垂直の境界に応じて切り取られる。表示リストの個々のゾーンは、画像プロセッサによって最終的にラスタ化され、ラスタ化された多くのゾーンは、ビットマップ・バッファ(実際に1つのメモリの一部分)に一時的に格納される。
【0021】
1つの帯についてラスタ化されたビットを格納する従来技術のバッファでは、一般に、2つの完全な帯のためのバッファ容量が使用される。格納される帯の一方は、印刷エンジンによってアクセスされ、格納される帯の他方は、表示リストからデータをラスタ化するときに画像プロセッサによってアクセスされる。従来の技法が、従来技術の300dpiプリンタの2倍の解像度(例えば600dpi)をもつプリンタに適用されるとすると、帯の静的バッファ容量は4倍に増やされなければならない。しかし本発明を使用すれば、帯あたり4つのゾーンを仮定すると、印刷エンジンおよび画像プロセッサを支援する典型的なケースで、たった5つのビットマップ・バッファのゾーンが割り当てられればよい。これは、従来の技法を使用する場合の2つの完全な帯の容量と比較して、たった1.25の帯のビットマップ・メモリ容量になる。600dpiのプリンタの場合、この技法によって約400Kバイトのメモリが節約される。
【0022】
さらに、従来技術の設計では、表示リストの完全な帯の複雑さを、あらかじめ決められた閾値と比較して、その帯をラスタ化し、必要ならば表示リスト・メモリの節約のために圧縮するべきか決定する。プリンタの解像度が2倍にされるならば、1つの帯の複雑さの閾値は4倍に大きくなり、結果として非常に大きい表示リスト・メモリをもたらす。それぞれの帯を4つのゾーンに分割することによって、それぞれのゾーンの複雑さの閾値は、より低い解像度のプリンタにおけるそれぞれの帯の複雑さの閾値と同じになりうる。これは、必要とされる表示リストのサイズを減少させる。
【0023】
さらに、1つの完全な帯ではなく1つのゾーンが1単位として処理されるので、画像プロセッサは、表示リストの内容をゾーン・バッファに格納するために、ラスタ化されたデータに変換し、1平面のモノクロまたは3平面のCMYカラーのタイルを、たとえこれらのタイルが同じ帯にあっても、印刷エンジンに渡すことができる。1つの平面タイルを処理するためにかかる時間はより少ないので、これは性能を改善する。従って1つの帯の中で0、1および3平面のタイルを混合することが可能であり、結果として、より少数の画素が印刷エンジンによって描画され、回転され、コピーされ、削除されるので、より速いスループットをもたらす。
【0024】
この発明では、ページあたり任意の数のゾーンを利用することができる。
【0025】
従って本発明は、表示リスト、および印刷のためにラスタ化される画素を格納するビットマップ・バッファの両方において、膨大なメモリの節約になる。
【0026】
【発明の実施の形態】
上述したように、本発明によって、プリンタまたは他の表示装置のページ記憶メモリ(すなわち表示リスト)およびビットマップ・メモリは、同じ解像度をもつ従来の表示装置の容量と比較して相対的に小さな容量をもつことが可能である。
【0027】
図3は、ホスト・コンピュータからページ記述言語(PDL)コマンドおよびデータを受け取り、印刷(または他の表示)エンジンによる使用のために、このPDL情報をラスタ化された画素データに最終的に変換する新しいプリンタまたは他の表示装置の関係する部分を示す。印刷(または他の表示)エンジンは、従来のインクジェット・プリンタ、ファクシミリ機械、プロッタ、複写機、CRT、LCD画面、または他の装置の印刷エンジンでありうる。
【0028】
図3は、印刷される長円形32、長方形34および任意の形状のオブジェクト36をもつ、結果の印刷されたページ30の例を示す。長方形34はモノクロの中間調の画像と仮定され、一方、形状32および36は、CMYインクの組合せを必要とするカラー画像であると仮定される。ページ30は、ゾーン0ないし99に分割されて示されているが、これらのゾーンの境界はページ上に印刷されない。
【0029】
ページ30に印刷されるオブジェクトをそれらの特性、位置、その他とともに格納する表示リスト40は、それぞれのゾーンの512バイト/ブロックのデータ・ブロック42に格納されるデータをもつように示されている。それぞれのゾーンについて表示リスト40に必要とされるメモリは、一般に、特定のゾーンに印刷される画像の複雑さに関連する。例えば1つのゾーンが空である場合、表示リスト40のメモリはそのゾーンについて利用されない。従って、ゾーンあたりのブロック42の数は一定ではない。パターン記述(例えば文字)を繰り返すのではなく、単純に前のパターンの位置を識別し、コピー・コマンドを発行するなどの、表示リスト・メモリを浪費しない従来の技法を利用することができることが当業者には理解されるであろう。
【0030】
ブロック42は連結リストに配置され、1つのゾーンに関係するそれぞれのブロック42が連続的に読み取られる。
【0031】
図示の目的として、ユーザーは、ホスト・コンピュータ48に特定のパターンの形状32、34および36を構築し、媒体にこの画像を印刷する一連の印刷を始めると仮定する。
【0032】
ホスト・コンピュータ48に前もってプログラムされたプリンタ・ドライバ・ルーチンをある時は使用して、特定のプリンタを応用プログラムとインターフェースする。本発明はプリンタ自身の中で完全に実行されるので、本発明に適応させるためにプリンタ・ドライバを特別に修正する必要はない。しかし、本発明を使用する場合にそのような修正がプリンタの性能を改善するならば、要望に応じてプリンタ・ドライバを修正することもありえることを理解されたい。
【0033】
ホスト・コンピュータ48のPDL出力はプリンタへ伝送される。好ましい実施例で、PDLはPCL-5形式である。プリンタで使用されるPCL-5のフォーマッタの構造は、到来するPCL-5データ・ストリームに基づいて言語パーサー50によって生成される、オブジェクトの表示リストの構造に基づく。パーサー50は発明に従って、データ・ストリームのコマンドを認識し、適当なデータおよび操作コードを生成する。パーサー50の出力は、プリンタに位置するメモリに、表示リスト40として格納される。
【0034】
表示リスト40は、プリンタのより大きいメモリの一部分を含むことができ、離散的な成分である必要はない。例えばメモリは、プリンタへの命令をも格納する動的メモリ(DRAM)でありえる。ページ記述が完了し、ページが閉じられるまで、表示リスト40は大きくなり続ける。表示リスト40のオブジェクト(例えばオブジェクト32、34および36)は、オブジェクトがページに現れる上から下へという順に、コンピュータ48によって伝送される必要はない。
【0035】
表示リスト40のオブジェクトは、1平面のモノクロ・タイルまたは3平面のCMYタイル(ゾーンあたり1タイル)に最終的にラスタ化される。そして更に処理し、例えば黒、シアン、マゼンタおよび黄のインクジェット印字ヘッドによって実際に印刷するために、印刷エンジンに渡される。表示リスト40は、基本のオブジェクトの定義ではなく、描画プロセスにおいて表示リストのオブジェクトの性質を特徴づける表面色、パターンおよび他の性質(例えばラスタ操作)のような、特定の属性を受け取る。状態の変化は、典型的に、それらが影響を及ぼすオブジェクトより前に表示リスト40に入れられる。このような一般的な表示リストのフォーマットはよく知られており、これ以上詳しくは説明しない。ページ記述言語または他の同様の高級言語を処理する表示装置の技術の当業者には、図1に示したような既存の装置はすでに良く知られているであろう。従って、ここでの説明は、主に従来の装置と本発明の間の違いに注目する。
【0036】
パーサー50は、ホスト・コンピュータ48からPDLデータを受け取ると、オブジェクトが印刷されるページ上の1つまたは複数の適当なゾーン(ゾーン0からゾーン99)を選び、オブジェクトの情報は、操作コードの識別子およびゾーンの識別子とともにデータ・ブロック42にコピーされる。
【0037】
パーサー50によってユニークに生成された操作コードの識別子は、表示リストのオブジェクトの型を識別する。表示リストのオブジェクトの例は、長方形、水平ベクトル、垂直ベクトル、急勾配のベクトル、勾配の低いベクトル、小さなベクトル、テキスト特徴、表面色、論理的作用素および切り取りウィンドウを含む。これらのオブジェクトは、パックされたビット・フィールド構造によって定義され、512バイトのデータ・ブロック42にコピーされる。それぞれの構造は、オブジェクトを識別する4ないし8ビットの操作コードから始まる。画像プロセッサ58は、表示リスト40をアンパックし、オブジェクトのグループ情報について最初の4ビット、およびオブジェクトの型について次の4ビットを調べる。画像プロセッサ58は、その操作コードに基づいて、完全なオブジェクトの定義を読み取るために何バイトをアンパックすべきか知る。長方形の操作コード・フィールドの例は、以下で与えられる。
【0038】
【表1】
オブジェクトの型 - 長方形 ( 7バイト )
一次の操作コード :4ビット (多角形グループ)
二次の操作コード :4ビット (長方形)
y :8ビット (ゾーンの最上部からの距離)
x :16ビット (ゾーンの左端からの距離)
幅 :14ビット (ゾーンの画素の長方形の幅)
高さ :10ビット (ゾーンの長方形の高さ)
データ・ブロック42の情報は次のデータ・ブロック42のアドレスを識別し、ブロック42は連結リストを形成する。別のゾーンにわたるオブジェクトは、ゾーンの限界に応じて切り取られる下位のオブジェクトに分割される。例えば、大きな複数ゾーンの長方形は、より小さな多数の長方形に分割される。1つのゾーンのオブジェクトの位置を識別する操作コードは、そのゾーンの境界に基準を置く。特定のゾーンと関係するデータ・ブロック42の数は、もちろんそのゾーン内で印刷される情報の実際の複雑さに関係する。
【0039】
表示リスト・メモリのサイズは制限されているので、発明の好ましい実施例は、1つのゾーンの画像の複雑さを決定する手段を含む。この複雑さがある閾値を越える場合、そのデータは、ラスタ化された画像に先に変換され、必要であれば従来の圧縮技法を使用して圧縮される。そしてこの圧縮されたラスタ画像は、表示リスト40の対応するデータに取って代わり、必要に応じて他のゾーンによる使用のためにデータ・ブロック42を解放する。具体的には、複雑さの閾値の回路またはアルゴリズム54が、個々のゾーンのデータを分析し、その表示データに必要なメモリが一定の複雑さの閾値を越えるかどうか決定する。閾値を越えないならば、表示リスト40上に実行される行為は何もない。閾値を越える場合、ラスタ化回路/アルゴリズム56は、そのゾーンの表示データをラスタ化し、必要であればランレングス符号化のような従来の圧縮技法を使用して、データを圧縮する。そして圧縮されたデータは、対応するゾーンについて表示リスト40に書き込まれる。このようなラスタ化および圧縮は、1つのゾーンに必要とされるメモリの上限を設け、全体のページ情報を格納するとき、表示リスト40がメモリを使い尽くさないようにする。
【0040】
機能ブロック54および56によって実行されるメモリ拡張技法(MEt)ルーチンの好ましい実施例が、後述の図4でより十分に記述される。
【0041】
表示リスト40が全体のページについて情報を格納すると、それぞれのゾーンと関係付けられたデータは、それぞれのゾーンの情報をラスタ化するように、画像プロセッサ58によって連続して処理される。画像プロセッサ58で用いられるラスタ化のプロセスは、ここで特定されない限り、PDLを処理するプリンタですでに使用されている従来の技法に依存してもよい。
【0042】
画像プロセッサ58は、ポインタ(0-99)を使用して、それぞれのゾーンの位置を連続して要求し、そのゾーンについてのデータが表示リスト40に存在するかどうか決定する。
【0043】
画像データを含むゾーンだけが処理される。ゾーンがデータを含まない場合、印刷エンジン70は、印刷が要求されている次のゾーンにスキップするように制御される。また紙輸送機構は、印刷が再開される次の位置に紙シートを送るように制御されうる。
【0044】
1つのゾーンのラスタ化された画像プロセッサ58の出力は、5つの静的ゾーン・バッファ61ないし65(実際、1つのメモリ・チップの一部分)の1つに格納される。それぞれのゾーン・バッファ61ないし65は、ページ30上の1つのゾーン内のそれぞれのドット位置に対応する位置をもつ、モノクロまたはCMYカラーのタイルのためのビットマップ・メモリである。それぞれのバッファ61ないし65のサイズは、もちろん、1つのページのゾーンの数に依存する。1つのゾーンの高さは、印刷エンジン70によって一度の走査で印刷される1つの帯と同じである必要はない。バッファ61ないし65は通常、画像プロセッサ58および印刷エンジン70の両方によってアクセスされるので、必要なバッファの数は、ページ30を横切るゾーンの数と画像処理速度に依存する。好ましい実施例で、使用されるゾーン・バッファの数(すなわち5)は、ページ30を横切るゾーンの数よりも1つ多い。
【0045】
印刷エンジン70は、ゾーン・バッファのデータを、プリント用カートリッジASICがアクセスできるフォーマットで印刷バッファにコピーしなければならない。典型的に、印刷制御データ(4つのゾーンのデータ)の完全な走査(すなわち帯)が完全にフォーマットされ、印刷エンジンの印刷バッファに格納されたちょうど後に、印刷エンジン70の走査式印字ヘッドがページ30の幅を横切って走査する。典型的には、ASICを使用して、印刷バッファに格納する画素データの処理を実行する。印刷バッファの画素データの構成は、使用される個々の走査式印字ヘッドに依存する。印刷エンジン70は典型的に、1つの帯すなわち本例の4つのゾーンのすべての画素データを格納するために必要な印刷バッファ・メモリのサイズを必要とする。
【0046】
多くの場合、帯全部がまず初めにフォーマッタによって印刷バッファにロードされるまで、印刷エンジン70の印字ヘッドは帯を印刷し始めることができない。従って4つのゾーン・バッファ(例えば62ないし65)が印刷エンジン70によって拘束され、印刷エンジンの印刷バッファに格納するように画素データが処理されうる。これは、画像プロセッサ58がこの先使用するゾーン・バッファの5分の1に対する非常に短い時間である。これは、並行に実行する異なるタスクの間の遅れをまさに最小限にすることになる。従って、1帯あたり4つのゾーンがある例では、たった5つのバッファ61ないし65が必要と考えられる(すなわち完全な帯より1つ多い)。この時、最大4つのゾーン・バッファが印刷エンジン70による使用のためにアクセスされ、残りの1つまたは複数のバッファが画像プロセッサ58によって書き込まれる。
【0047】
好ましい実施例において、既存のプリンタの印刷エンジン70は、プリンタが本発明を組み入れるように修正される場合でも、基本的に変更されないままである。
【0048】
カラー・プリンタでは、それぞれのバッファ61ないし65は3平面のメモリから成り、1つの平面はシアン、マゼンタおよび黄の原色のそれぞれに対応する。黒のインクだけを使用するゾーンのモノクロ画像は、このラスタ化されたモノクロ画像を格納するために、バッファ61ないし65における1平面のみを必要とする。
【0049】
ゾーン・バッファ61ないし65のためのメモリは、メモリ・マネージャによって制御される。ゾーンがモノクロとして表示リスト40にタグ付けされている場合、1平面のバッファが画像プロセッサ58によってリクエストされ、そうでない場合、3平面のバッファがリクエストされる。印刷エンジン70のフォーマッタがゾーン・バッファ61ないし65のデータを処理するとき、最上部のオフセット、左のオフセット、次元および平面形式のようなものを記述するヘッダを一緒に送る。平面形式のフィールドは、そのゾーンについて印刷される画素がCMYであるかまたは黒であるか示す。印刷エンジン70は、ゾーン・バッファ61ないし65からデータを検索するとき、この情報に基づいて1または3平面のデータを捜す。
【0050】
ラスタ化されたデータが走査式印字ヘッドのために適切にフォーマットされると、印刷エンジン70は、走査式印字ヘッドの個々のインク噴出要素を選択的に活動させる、あるいは、表示画面または他の表示装置の任意のフォーマットの適当な画素要素を選択的に制御することができる。バッファ61ないし65は、通常、画像プロセッサ58および印刷エンジン70によって連続的にアクセスされる。印刷エンジンまたは他の表示型式のエンジンのために画素データをフォーマットすることは従来から行われており、当業者にはすでに知られている。
【0051】
ラスタ化されたデータを格納するために、図3のゾーン・バッファ61ないし65を使用するのではなく従来の技法が使用されるとすると、図1のバッファ16に関して述べたように、2本の完全な帯に等しい容量の帯バッファ・メモリが必要とされる。しかし上述の例の本発明を使用すれば、たった1.25本の帯の容量だけが必要とされる。600dpiでは、このメモリの節約は、すべての3平面について400Kバイト以上になる。
【0052】
走査式印字ヘッドをもつプリンタの1つの例は、本譲受人に譲渡され、ここで参照として取り入れられる米国特許第5,408,746号の「Datum Formation for Improved Alignment of Multiple Nozzle Members In a Printer」に記述されている。
【0053】
図4は、図3の機能ブロック54および56によって実行される好ましいメモリ拡張技法(MEt)ルーチンを示す。図4に示すMEtのプロセスは、全体の表示リスト40を格納するために十分なメモリ空間が存在することを保証しようとする。
【0054】
第一のステップでは、閾値規準がそれぞれのゾーンについて初期化される。この閾値規準は、1つのゾーンによる使用のために許容される、最大数のデータ・ブロック42でありうる。個々のゾーンだけが処理されるので、帯あたり4つのゾーンが使用されると仮定すると、この閾値規準は、帯全体のデータを閾値と比較しなければならない従来のプリンタによって使用される値の4分の1でありうる。
【0055】
次のステップで、パーサー50は上述のようにホスト・コンピュータ48からのPCLデータを、表示リスト40に格納するためのデータに変換して、表示リスト40を組み立てる。
【0056】
あるゾーンについて、オブジェクトの情報を格納するために必要とされるデータ・ブロックすなわち表示リスト(DL)・ブロックの数は、そのゾーンの閾値と比較される。これらのDLブロックの数がゾーンの閾値を越えない場合、表示リスト40の組立が次のゾーンについて続けられる。
【0057】
あるゾーンのDLブロック数がそのゾーンの閾値を越える場合は、メモリ空間がそのゾーンのデータを更に処理するために割り当てられているかどうか決定される。それがこのプロセスの1回目の繰返しである場合、割り当てられているメモリは存在しない。このメモリは典型的にはメインのプリンタ・メモリで見つけられ、また表示リスト40によって使用される。
【0058】
これがMEtプロセスの1回目の繰り返しであるとすると、ここでゾーンのメモリが割り当てられる。そのようなメモリが利用可能であれば、そのゾーンのDLブロックのオブジェクトの情報がラスタ化される。そしてラスタ化されたブロックは、最も使用最近度の低い(least recently used;LRU)チェーンに入れられる。表示リスト40の組立の終了に向けて、ここで、全体の表示リスト40を格納するための十分なメモリを保証するために、先に格納されたデータの圧縮が必要であると決定される場合、このLRUチェーンが関連するようになる。
【0059】
ここでメモリに格納されたラスタ化されたデータは、オリジナルのオブジェクトの情報に代わって使用されるので、オリジナルのDLブロックが解放される。
【0060】
そしてゾーンの現在のサイズを考慮に入れるために、そのゾーンのゾーン閾値が引き下げられる。そのゾーンに格納されるデータが更に到来するとき、引き下げられた閾値が新しいデータに当てられる。そして、そのゾーンの次のデータがこの引き下げられた閾値を越える場合、図4で述べたMEtプロセスが必要に応じて繰り返される。
【0061】
あるゾーンについてDLブロックの数が閾値を越えて、利用可能なゾーン・メモリがすでにメモリに存在すると決定される場合、このゾーンのデータはラスタ化され、利用可能なゾーン・メモリに格納される。LRUチェーンは使用の新たな順序に適応させるように調整され、オリジナルのDLブロックが解放される。そしてそのゾーンについて、ゾーンの閾値が調整される。
【0062】
表示リスト40が完成する前にメモリが使い尽くされると判断される場合、それに応じてゾーンの閾値をさらに引き下げることができる。
【0063】
あるゾーンについて、DLブロックの数がゾーン閾値を越え、ラスタ化されるデータを格納するに十分なメモリが利用可能でないと決定される場合、ゾーン・バッファ61ないし65が、ラスタ化された画素データを格納するために一時的に使用されなければならない。
【0064】
そのような場合、格納されるラスタ化されたデータは、ランレングス符号化を使用して圧縮される。好ましい実施例において、水平および垂直のランレングス符号化は、隣接する行の間に変化が存在するかどうか決定するデルタ行(delta row)符号化とともに使用される。
【0065】
そして、元々このゾーンのデータを含んでいたDLブロックが解放される。表示リスト40のメモリに、圧縮されたデータのための空間が割り当てられる。この空間は、表示リスト40のメモリ内で連続していることが好ましい。連続した空間が見つかると、圧縮されたデータは連続したDLブロックに格納され、ゾーンの閾値がそれに応じて調整される。
【0066】
表示リスト40のメモリに連続した空間が見つからない場合、メモリの中のいくつかのより小さいブロックが割り当てられ、圧縮されたデータは、断片的なチェーンでメモリにコピーされる。そしてゾーンの閾値が調整される。
【0067】
表示リスト40の組立の終了に向かって、圧縮されたデータを格納するにはメモリが不充分であることがわかると、最も使用最近度の低い(LRU)DLブロックのデータがラスタ化され、圧縮されて、メモリ空間を自由にする。そのような状況で、ゾーン閾値は、表示リスト40の全体をメモリに格納するために必要とされるレベルにまで引き下げられる。
【0068】
特定のMEtプロセスを述べたが、そのようなプロセスは本発明を実行するために必要なものではない。
【0069】
発明を用いることによって、ラスタ化された画素データを格納するためのビットマップ・メモリのバッファのサイズの減少に加えて、表示リスト・メモリのサイズもまた、従来の表示リスト・メモリのサイズより減少させることができる。なぜなら、例えばゾーンは完全な帯の4分の1であるので、閾値回路54(図3)によって使用されるそれぞれのゾーンの複雑さの閾値は、従来の完全な帯の複雑さの閾値のたった4分の1であるからである。従ってこの複雑さの閾値は、600dpiのプリンタでは、300dpiの完全な帯の閾値とほぼ同じ閾値になる。これは、1つの完全な帯のメモリ・サイズの上限ではなく、1つのゾーンのメモリ・サイズの上限を設ける。1つの帯において印刷されるものは複雑に変化すると仮定されるので、帯の中で複雑さの閾値を越えるあるゾーンが、従来のラスタ化および圧縮の装置56を使用して先にラスタ化され、圧縮される一方、同じ帯の他のゾーンは複雑さの閾値を越えないこともありうる。このように、帯の中のそれぞれのゾーンを互いに独立して扱うことによって、1ページを横切って複雑さが大きく変化する複雑なグラフィックス描画において、メモリを大量に節約することができる。
【0070】
さらに、1つの帯の全データではなく、1つのゾーンのデータだけを処理すればよいので、従来の技法を使用するときよりも処理の複雑さが軽減される。これは、それぞれの操作の間により少ない画素が描画され、配置され、コピーされ、削除されればよいので、より速いスループットをもたらす。
【0071】
さらに、1つの帯を複数のゾーンに区分することは、1つの帯において0、1および3平面のゾーンを混合することを可能にし、より少数の画素を描画し、回転し、コピーし、削除するので、それぞれの帯についての処理の量を削減し、より速いスループットをもたらす。
【0072】
1つのゾーンの画素の高さが、印字ヘッドの一回の走査の画素の高さよりも小さい場合、ゾーン・バッファ61ないし65に格納される複数のラスタ画像は、印字ヘッドのそれぞれの走査に先立って、印刷エンジン70によってフォーマットされる必要がある。
【0073】
それぞれの図で使用される、ぺージあたりの帯の数、帯あたりのドットの数、データ・ブロックのサイズ、およびゾーン・バッファ61ないし65のサイズおよび数の例は、図示の目的のためだけであることを理解されたい。これらの値は、ページ・サイズ、解像度および他の設計要素によって変更されうる。例えば、1つのゾーンのサイズ、画像プロセッサ58の速度、および印刷エンジン70の速度に依存して、ゾーン・バッファの数は2から10またはそれ以上の範囲をとりうる。しかしゾーン・バッファの数は、通常、完全な帯を格納するのに必要とされるゾーンの数よりも1つ多いが、これは従来の印刷エンジンを使用することを仮定している。タイルの粒状性(granurality)は、構造全体に影響を及ぼすことなく、その幅および高さを変えることによって変更することができる。しかしあるサイズ以下のタイルに関して利益を減少させる、それぞれのタイルに関連する表示リストの総経費(overhead)が存在する。
【0074】
ゾーン・バッファは1つのメモリの一部分であり、メモリのアドレスは個々のゾーンに割り当てられることに理解されたい。表示リストのブロック42のサイズは固定される必要はなく、任意のサイズの可変長ブロックであってよい。
【0075】
本発明は例として次の実施態様を含む。
【0076】
(1)表示装置(70)に1つまたは複数のオブジェクト(32,34,36)を表示するページ記述言語の表示命令を受け取るステップと、
上記1つまたは複数のオブジェクトが表示される媒体(30)のゾーン(0-99)を識別し、上記媒体にわたる2次元の配列の上記ゾーンからなるそれぞれのゾーンに、表示されるオブジェクトを割り当てるステップと、
オブジェクトが位置するそれぞれの上記ゾーンについて、上記オブジェクトを記述するオブジェクトの記述を、表示リスト(40)に格納するステップと、
それぞれの上記ゾーンについて表示データをラスタ化するために、オブジェクトが位置するそれぞれの上記ゾーンについて、上記表示リストの表示データを処理する(58)ステップと、
上記表示リストからラスタ化された表示データを、ビットマップ・メモリ(61-65)に格納するステップと、
上記媒体に上記オブジェクトを表示する表示装置(70)への適用のために、上記ビットマップ・メモリ内の上記ラスタ化された表示データをアドレスするステップと、
を含む方法。
【0077】
(2)上記1つまたは複数のオブジェクト(32, 34, 36)を上記媒体に表示するために、上記表示装置(70)は上記媒体(30)を横切って走査方向に走査し、上記走査方向で上記媒体を横切るゾーン(0-3)の数がNであり、上記ラスタ化された表示データを格納するために割り当てられる上記ビットマップ・メモリ(61-65)が、Nゾーンに必要とされるよりも多く、2Nゾーンに必要とされるよりも少ない、上記(1)の方法。
(3)上記ビットマップ・メモリ(61-65)が、N+1のゾーンに割り当てられる空間をもつ、上記(2)の方法。
(4)それぞれの上記ゾーン(0-99)についてオブジェクトの記述を上記表示リスト(40)に格納する上記ステップが、オブジェクト(32,34,36)が位置するそれぞれの上記ゾーンについて、上記オブジェクトを記述するオブジェクトの記述を、表示リスト・メモリの所定のバイト数のデータ・ブロック(42)に格納することを含み、ゾーンの中の表示される1つまたは複数のオブジェクトの位置はそのゾーンの境界に基準をおく、上記(1)、(2)または(3)の方法。
(5)上記表示リスト(40)の表示データを処理する上記ステップが、オブジェクト(32,34,36)が位置するそれぞれの上記ゾーン(0-99)について、上記表示リストのデータをアドレスすることを含み、データは媒体(30)上のゾーンと同じ連続する順にアドレスされる、上記(1)、(2)、(3)または(4)の方法。
【0078】
(6)それぞれの上記ゾーン(0-99)の上記表示リスト(40)のデータは、特定のゾーン内のオブジェクト(32,34,36)がモノクロであるかカラーであるか示し、
そのゾーンの上記オブジェクトがカラーである場合、そのゾーンについて3組のビットマップ・データが上記ビットマップ・メモリ(61-65)に格納され、1組は上記表示装置(70)によって表示されうるそれぞれの原色の色に関し、
上記ゾーンの上記オブジェクトがモノクロである場合、そのゾーンについて1組のビットマップ・データが上記ビットマップ・メモリに格納され、
そのゾーンに表示されるオブジェクトがない場合、上記ビットマップ・メモリに格納されるそのゾーンのオブジェクト記述データは存在せず、従って上記ビットマップ・メモリは、上記媒体を横切って表示されるオブジェクトに依存して、複数のゾーンについて0、1または3組のビットマップ・データの任意の組み合わせを格納する、
上記(1)ないし(5)のいずれかの方法。
【0079】
(7)上記表示装置(70)は、1つまたは複数の走査式印字ヘッドをもつプリンタであって、上記ビットマップ・メモリ(61-65)内の上記ラスタ化された表示データをアドレスする上記ステップが、
上記ラスタ化された表示データを印刷バッファ・メモリに格納するために、上記ビットマップ・メモリにフォーマットするステップを含み、上記印刷バッファ・メモリのデータを使用して、上記媒体を横切る上記印字ヘッドの少なくとも一回の走査について上記1つまたは複数の走査式印字ヘッドを制御し、
上記印字ヘッドの走査方向において、上記ビットマップ・メモリの上記媒体(30)を横切るゾーン(0-3)のビットマップ・データは、上記媒体を横切るそれらのゾーンの印刷されるオブジェクトに依存して、1つのゾーンについてデータを含まない、または1つのゾーンについて1組のモノクロのデータを含む、または1つのゾーンについて3組の原色カラーデータを含む、またはそれらの任意の組み合わせを含む、上記(1)ないし(6)のいずれかの方法。
【0080】
(8)さらに、
1つのゾーン(0-99)についてオブジェクトの情報を格納するに必要な記憶空間の量を制限するために、上記表示リスト(40)に格納する表示データに関してメモリ拡張を実行するステップを含み、上記メモリ拡張が、1つのゾーンのオブジェクトの情報を格納するために使用されるメモリが、閾値を越えるかどうか決定するステップと、
上記オブジェクトの情報が上記閾値を越える場合、上記ゾーン内のオブジェクトをラスタ化するステップと、
ラスタ化されたデータを、上記ゾーン内の上記オブジェクトに対応する上記表示リストに格納するステップと、
を実行する、上記(1)ないし(7)のいずれかの方法。
【0081】
(9)1つのゾーン(0-99)の上記ラスタ化されたデータを格納するために、上記ビットマップ・メモリ(61-65)に空間を割り当てるステップを含み、ラスタ化されたデータを上記表示リスト(40)に格納する上記ステップが、上記ビットマップ・メモリからの圧縮されたラスタ化データを上記表示リストに格納する、上記(1)ないし(8)のいずれかの方法。
【0082】
(10)表示装置(70)に1つまたは複数のオブジェクト(32,34,36)を表示するために、ページ記述言語の表示命令を受け取る受信器と、
上記1つまたは複数のオブジェクトが表示される媒体(30)上の、上記媒体にわたる2次元の配列のゾーンからなるゾーン(0-99)を識別し、表示されるオブジェクトをそれらのそれぞれのゾーンに割り当てるための、上記受信器に接続されるパーサー(50)と、
オブジェクトが位置するそれぞれの上記ゾーンについて、上記パーサーによって生成される上記オブジェクトを記述するオブジェクト記述を格納する表示リスト・メモリ(40)と、
上記それぞれのゾーンについて表示データをラスタ化するために、オブジェクトが位置するそれぞれの上記ゾーンについて、上記表示リスト・メモリの表示データを処理する画像プロセッサ(58)と、
それぞれの上記ゾーンについて、上記表示リスト・メモリに基づくラスタ化された表示データを格納するために、上記画像プロセッサに接続されるビットマップ・メモリ(61-65)と、
上記ビットマップ・メモリ内の上記ラスタ化された表示データをアドレスし、上記ラスタ化された表示データを、上記媒体に上記オブジェクトを表示する表示装置による使用のためのフォーマットにするフォーマッタ(70)と、
を含む装置。
【0083】
【発明の効果】
本発明によれば、ページのそれぞれの帯を複数のゾーンに分割し、印刷する画素データの処理をゾーンごとに行うことによって、1つの帯に関する処理の量を減らし、必要とされる表示リスト・メモリおよびビットマップ・メモリの容量を減少させることができる。
【図面の簡単な説明】
【図1】関連する表示リストのメモリ構造、画像プロセッサおよび帯バッファをもつ典型的な300dpiのプリンタのページ・レイアウトを示すブロック図。
【図2】一定の形状が印刷され、帯の境界が破線で示される、印刷されるページを示す図。
【図3】発明に従う表示装置の関連する構成要素を示すブロック図。
【図4】発明の好ましい実施例に従って、表示リストに必要なメモリを減少させるために使用される、多様なメモリ拡張技法(MEt)ステップを記述するフローチャート。
【符号の説明】
30 ページ
40 表示リスト
42 ブロック
48 ホスト・コンピュータ
50 パーサー
58 画像プロセッサ
61−65 ゾーン・バッファ
70 印刷エンジン
【発明の属する技術分野】
この発明は画像処理に関し、特に表示リストを生成し、使用する方法に関する。
【0002】
【従来の技術】
多くの型式のプリンタ(例えばHP DeskJet 1200Cプリンタ)では、ホスト・コンピュータからプリンタへの制御および表示の情報は、高水準ページ記述言語(page description language;PDL)で与えられ、プリンタでラスタ・スキャン型式のフォーマットに変換される。そしてプリンタは、媒体に印刷するために、ラスタ・スキャン・フォーマットのデータを印刷エンジンに適用する。ホスト・コンピュータではなくプリンタが高水準のコマンドの処理を行うので、コンピュータはより速くユーザーを支援することができる。
【0003】
HP DeskJet 1200Cは、黒のペン、シアン(cyan)のペン、マゼンタ(magenta)のペンおよび黄のペンを使用するカラー・インクジェット型式のプリンタである。ペンは、媒体を横切って走査するキャリッジに配置され、テキスト、ベクトル・グラフィックスまたは写真のような画像の、帯(swath)またはバンドを印刷する。それぞれの帯が印刷されたあと、媒体は、走査の方向と垂直な方向に向きが変えられる。黒のインクまたはカラーのインクの液滴は、走査式(scanning)インクジェット印字ヘッドによって、媒体上にドットまたは画素を形成するように選択的に放出される。これらのドットは近接した間隔であるか、あるいは重なっており、個々のドットは互いに区別することができない。多くの色は、シアン、マゼンタおよび黄のインクの多様な組合せによって生成される。
【0004】
プリンタに伝送されるページ記述言語は、表示される形状を、座標、および長方形、ベクトル、円および多角形のようなプリミティブを使用して記述する。テキストは、特徴の外観を記述するというよりはむしろ、特徴、位置およびフォントを示すことによって記述される。またページ記述言語は、形状を特定の背景パターンまたは色にコピーするというような、形状に実施される操作を識別する。複雑さが閾値を越えるとき、ラスタ・スキャン・フォーマットでのそのような伝送が高級言語と関連して許容されるけれども、このようなページ記述言語は、印刷されるそれぞれの画素がラスタ・スキャンの順にプリンタに伝送され、フレーム・バッファに格納される単純な画素毎の記述とは対照的ではある。
【0005】
言語パーサー(parser;言語分析装置)は、後述されるように、PDL命令のいくつかの処理を実行して、印刷されるオブジェクト(対象)およびそれらの属性を表示リストに格納する。表示リストは、帯ごとの色、パターン、論理操作および他の記述というような属性を追跡する。表示リスト構造は米国特許第5,250,940号、5,058,042号および4,694,405号の明細書で述べられている。表示装置で用いられる従来の構成要素の詳細を付け加え、従来技術の技能のレベルを伝えるためにこれを参照として取り入れる。
【0006】
そして画像プロセッサは、印刷エンジンで印刷するために、表示リストのオブジェクトをラスタ化する。Anthony Parkhurst等による「Connectivity of the HP DeskJet 1200C Printer」(Hewlett-Packard Journal, 1994年2月, ページ85-97)に、ホスト・コンピュータおよびHP DeskJet 1200Cカラー・プリンタの間の良く知られたインターフェースが記述されている。この論文をここで参照として取り入れる。このようなインターフェースは、他のプリンタで使用されるインターフェースと同類である。
【0007】
よく知られたページ記述言語の1つはPCL-5C言語であり、「PCL 5 Printer Language Technical Reference Manual」(Manual Part No.5961-0509, 1992年)という題目のヒューレット・パッカード社の刊行物で述べられており、ここで参照として取り入れる。グラフィックス・プログラムを開発しているプログラマは、表示される画像を定義するために、このようなPCL-5言語を使用することができる。他のページ記述言語は、ポストスクリプト(Postscript)やHP-GL/2を含む。
【0008】
プリンタで必要とされる表示リスト・メモリの量、およびページを良好に描画し、印刷するためにかかる時間は、まさにページ記述の複雑さに比例する。HP DeskJet 1200Cの記憶容量は2メガバイトであるが、より複雑なグラフィックスのために最高26メガバイトまで拡張が可能である。
【0009】
図1は、ホスト・コンピュータからの高水準のPDLデータ・ストリームを、印刷エンジンへの簡単なデータ・ストリームに変換する、プリンタの重要な要素を示している。
【0010】
プリンタの言語パーサー10は入ってくるPDLデータ・ストリームを走査し、データ・ストリームのコマンドを認識し、リクエストされた機能を実行する。これらの機能は、例えばページ上のオブジェクトの記述ならびに位置、およびそのオブジェクトに実行される操作に関連する。またパーサー10は、リクエストされたテキストの特徴のビットマップを生成することができる。パーサー10の出力は、表示リスト12に格納される。
【0011】
表示リスト12は、印刷されるページを記述するメモリの中のデータから構成される。データは整列した帯リスト13に区分され、1つの帯リスト13はそのページに印刷される一つ一つのバンドに対応し、それぞれの帯リストはそのバンドに属する印刷されるべきすべてのオブジェクトを保持する。表示リスト12のページ記述が完了すると、帯リスト13は画像プロセッサ14によって連続的に処理され、ビットマップの帯バッファ16に格納するためにラスタ・データの水平バンドに描画される。そしてビットマップの画素データは、フォーマッタによって回転され、シフトされ、というようにさらに処理され、走査の間に印刷するために、印刷エンジン18内の印刷バッファに送られる。印刷バッファの画素データは、使用される特定の走査式印字ヘッドに関して特別に配置される。例えば、印刷バッファの画素データの配置は走査式印字ヘッドのノズルの形状に依存する。
【0012】
ビットマップの帯バッファ16は、統計学的に2つのフルカラー帯についてメモリを割当てられている。画像プロセッサ14が、帯バッファ16の一組のCMY平面にラスタ化を行い、一方で、印刷エンジン18による使用のために、バッファ16の他の組のCMY平面の画素データが処理されることができる。
【0013】
ページ・レイアウト20の例は、1インチあたり300ドット(dpi)のプリンタとして示されている。1つの例で、1ページあたり25の帯があり、それぞれの帯は高さが128ドットおよび幅が2,450ドットである。図2は、オブジェクトおよびテキスト22が印刷される印刷ページ21を示す。破線23は帯の境界を表している。
【0014】
言語パーサー10は、ページ上のオブジェクトの位置に基づいて、表示リスト12の適当な帯リスト13を識別し、そのオブジェクトの情報をその帯リスト13に関して札付けされたデータ・ブロック24にコピーする。それぞれのデータ・ブロック24は、例えば512バイトである。データ・ブロック24は連結(linked)リストを形成し、それぞれのデータ・ブロック24は、処理される次のデータ・ブロック24を識別する。1つの帯について必要とされるデータ・ブロック24の数は、その帯に印刷される画像の複雑さに依存する。帯の境界を越えるオブジェクトは、帯の限界に応じて切り取られる下位のオブジェクトに分割される。オブジェクトがホスト・コンピュータからプリンタに伝送される順序は、オブジェクトがページ上に現れる順序である必要はない。言語パーサー10が、この位置決め作用を実行するからである。
【0015】
画像プロセッサ14は、それぞれのデータ・ブロック24を連続して処理する。プロセッサ14はそれぞれのオブジェクトの操作コードを見て、シアン、マゼンタおよび黄(C,M,Y)のビットマップの画像28 (カラー印刷の場合)、または1つのモノクロの画像30(モノクロ印刷の場合)にそれをラスタ化する。ラスタ化されたデータは、帯バッファ16に格納される。上述したように、このラスタ化されたデータは、印刷エンジン18のフォーマッタによって、実際の印刷のためにさらに処理される。
【0016】
【発明が解決しようとする課題】
上記のことから分かるように、表示リスト12によって費やされるメモリの量は、まさにページ記述の複雑さに比例する。ある極端に複雑なページのために、表示リスト12は潜在的に非常に大きくなり、メモリを使い尽くすことがありうる。
【0017】
例えばHP DeskJet1600Cのようなプリンタ設計では、メモリ拡張技法(MEt)を使用することによって、メモリ競合の問題をある程度軽減する。MEtは、データをフォーマットするプロセスのそれぞれの段階で用いられる、それぞれのメモリ最適化技法を含む。MEtが多く使用される段階の1つは、表示リスト12を解析し、組み立てる時である。ある帯の複雑さが所定の閾値以上であると検出される場合はいつも、必要であれば従来のメモリ拡張技法を用いて、帯が先にラスタ化され、圧縮される。ここで、圧縮されたデータが帯リストに格納される。これは帯を格納するのに必要なメモリの量を削減し、現在不使用の表示リスト・ブロックを解放する。これは、1つの帯に関するメモリの使用に上限を設ける。
【0018】
ヒューレット・パッカード社の新世代のプリンタは、600dpiの解像度の印刷を提供している。これは、ドット密度を300dpiのプリンタの4倍まで増加させる。ビットマップの帯バッファ16のメモリ・サイズを単純に4倍に増やし、同時に画像を処理するハードウェア/ソフトウェアの複雑さを増加させることは、比較的費用がかかる。従ってプリンタのメモリをより効率的に使用して、印刷するための画像データを処理する革新的な設計が必要とされている。また画素の解像度が増大されることによって、処理機能がさほど遅くならないことが望まれる。
【0019】
【課題を解決するための手段】
印刷されるページを完全な帯(full swath)に区分し、それぞれの帯が1単位として処理される従来の表示リスト配置に代わって、本発明は、それぞれの帯が複数のゾーン(すなわちタイル)に区分され、それぞれのゾーンが別々の単位として処理される表示リストを使用する。
【0020】
表示リストに入るオブジェクトは、パーサーによって、ゾーンの水平および垂直の境界に応じて切り取られる。表示リストの個々のゾーンは、画像プロセッサによって最終的にラスタ化され、ラスタ化された多くのゾーンは、ビットマップ・バッファ(実際に1つのメモリの一部分)に一時的に格納される。
【0021】
1つの帯についてラスタ化されたビットを格納する従来技術のバッファでは、一般に、2つの完全な帯のためのバッファ容量が使用される。格納される帯の一方は、印刷エンジンによってアクセスされ、格納される帯の他方は、表示リストからデータをラスタ化するときに画像プロセッサによってアクセスされる。従来の技法が、従来技術の300dpiプリンタの2倍の解像度(例えば600dpi)をもつプリンタに適用されるとすると、帯の静的バッファ容量は4倍に増やされなければならない。しかし本発明を使用すれば、帯あたり4つのゾーンを仮定すると、印刷エンジンおよび画像プロセッサを支援する典型的なケースで、たった5つのビットマップ・バッファのゾーンが割り当てられればよい。これは、従来の技法を使用する場合の2つの完全な帯の容量と比較して、たった1.25の帯のビットマップ・メモリ容量になる。600dpiのプリンタの場合、この技法によって約400Kバイトのメモリが節約される。
【0022】
さらに、従来技術の設計では、表示リストの完全な帯の複雑さを、あらかじめ決められた閾値と比較して、その帯をラスタ化し、必要ならば表示リスト・メモリの節約のために圧縮するべきか決定する。プリンタの解像度が2倍にされるならば、1つの帯の複雑さの閾値は4倍に大きくなり、結果として非常に大きい表示リスト・メモリをもたらす。それぞれの帯を4つのゾーンに分割することによって、それぞれのゾーンの複雑さの閾値は、より低い解像度のプリンタにおけるそれぞれの帯の複雑さの閾値と同じになりうる。これは、必要とされる表示リストのサイズを減少させる。
【0023】
さらに、1つの完全な帯ではなく1つのゾーンが1単位として処理されるので、画像プロセッサは、表示リストの内容をゾーン・バッファに格納するために、ラスタ化されたデータに変換し、1平面のモノクロまたは3平面のCMYカラーのタイルを、たとえこれらのタイルが同じ帯にあっても、印刷エンジンに渡すことができる。1つの平面タイルを処理するためにかかる時間はより少ないので、これは性能を改善する。従って1つの帯の中で0、1および3平面のタイルを混合することが可能であり、結果として、より少数の画素が印刷エンジンによって描画され、回転され、コピーされ、削除されるので、より速いスループットをもたらす。
【0024】
この発明では、ページあたり任意の数のゾーンを利用することができる。
【0025】
従って本発明は、表示リスト、および印刷のためにラスタ化される画素を格納するビットマップ・バッファの両方において、膨大なメモリの節約になる。
【0026】
【発明の実施の形態】
上述したように、本発明によって、プリンタまたは他の表示装置のページ記憶メモリ(すなわち表示リスト)およびビットマップ・メモリは、同じ解像度をもつ従来の表示装置の容量と比較して相対的に小さな容量をもつことが可能である。
【0027】
図3は、ホスト・コンピュータからページ記述言語(PDL)コマンドおよびデータを受け取り、印刷(または他の表示)エンジンによる使用のために、このPDL情報をラスタ化された画素データに最終的に変換する新しいプリンタまたは他の表示装置の関係する部分を示す。印刷(または他の表示)エンジンは、従来のインクジェット・プリンタ、ファクシミリ機械、プロッタ、複写機、CRT、LCD画面、または他の装置の印刷エンジンでありうる。
【0028】
図3は、印刷される長円形32、長方形34および任意の形状のオブジェクト36をもつ、結果の印刷されたページ30の例を示す。長方形34はモノクロの中間調の画像と仮定され、一方、形状32および36は、CMYインクの組合せを必要とするカラー画像であると仮定される。ページ30は、ゾーン0ないし99に分割されて示されているが、これらのゾーンの境界はページ上に印刷されない。
【0029】
ページ30に印刷されるオブジェクトをそれらの特性、位置、その他とともに格納する表示リスト40は、それぞれのゾーンの512バイト/ブロックのデータ・ブロック42に格納されるデータをもつように示されている。それぞれのゾーンについて表示リスト40に必要とされるメモリは、一般に、特定のゾーンに印刷される画像の複雑さに関連する。例えば1つのゾーンが空である場合、表示リスト40のメモリはそのゾーンについて利用されない。従って、ゾーンあたりのブロック42の数は一定ではない。パターン記述(例えば文字)を繰り返すのではなく、単純に前のパターンの位置を識別し、コピー・コマンドを発行するなどの、表示リスト・メモリを浪費しない従来の技法を利用することができることが当業者には理解されるであろう。
【0030】
ブロック42は連結リストに配置され、1つのゾーンに関係するそれぞれのブロック42が連続的に読み取られる。
【0031】
図示の目的として、ユーザーは、ホスト・コンピュータ48に特定のパターンの形状32、34および36を構築し、媒体にこの画像を印刷する一連の印刷を始めると仮定する。
【0032】
ホスト・コンピュータ48に前もってプログラムされたプリンタ・ドライバ・ルーチンをある時は使用して、特定のプリンタを応用プログラムとインターフェースする。本発明はプリンタ自身の中で完全に実行されるので、本発明に適応させるためにプリンタ・ドライバを特別に修正する必要はない。しかし、本発明を使用する場合にそのような修正がプリンタの性能を改善するならば、要望に応じてプリンタ・ドライバを修正することもありえることを理解されたい。
【0033】
ホスト・コンピュータ48のPDL出力はプリンタへ伝送される。好ましい実施例で、PDLはPCL-5形式である。プリンタで使用されるPCL-5のフォーマッタの構造は、到来するPCL-5データ・ストリームに基づいて言語パーサー50によって生成される、オブジェクトの表示リストの構造に基づく。パーサー50は発明に従って、データ・ストリームのコマンドを認識し、適当なデータおよび操作コードを生成する。パーサー50の出力は、プリンタに位置するメモリに、表示リスト40として格納される。
【0034】
表示リスト40は、プリンタのより大きいメモリの一部分を含むことができ、離散的な成分である必要はない。例えばメモリは、プリンタへの命令をも格納する動的メモリ(DRAM)でありえる。ページ記述が完了し、ページが閉じられるまで、表示リスト40は大きくなり続ける。表示リスト40のオブジェクト(例えばオブジェクト32、34および36)は、オブジェクトがページに現れる上から下へという順に、コンピュータ48によって伝送される必要はない。
【0035】
表示リスト40のオブジェクトは、1平面のモノクロ・タイルまたは3平面のCMYタイル(ゾーンあたり1タイル)に最終的にラスタ化される。そして更に処理し、例えば黒、シアン、マゼンタおよび黄のインクジェット印字ヘッドによって実際に印刷するために、印刷エンジンに渡される。表示リスト40は、基本のオブジェクトの定義ではなく、描画プロセスにおいて表示リストのオブジェクトの性質を特徴づける表面色、パターンおよび他の性質(例えばラスタ操作)のような、特定の属性を受け取る。状態の変化は、典型的に、それらが影響を及ぼすオブジェクトより前に表示リスト40に入れられる。このような一般的な表示リストのフォーマットはよく知られており、これ以上詳しくは説明しない。ページ記述言語または他の同様の高級言語を処理する表示装置の技術の当業者には、図1に示したような既存の装置はすでに良く知られているであろう。従って、ここでの説明は、主に従来の装置と本発明の間の違いに注目する。
【0036】
パーサー50は、ホスト・コンピュータ48からPDLデータを受け取ると、オブジェクトが印刷されるページ上の1つまたは複数の適当なゾーン(ゾーン0からゾーン99)を選び、オブジェクトの情報は、操作コードの識別子およびゾーンの識別子とともにデータ・ブロック42にコピーされる。
【0037】
パーサー50によってユニークに生成された操作コードの識別子は、表示リストのオブジェクトの型を識別する。表示リストのオブジェクトの例は、長方形、水平ベクトル、垂直ベクトル、急勾配のベクトル、勾配の低いベクトル、小さなベクトル、テキスト特徴、表面色、論理的作用素および切り取りウィンドウを含む。これらのオブジェクトは、パックされたビット・フィールド構造によって定義され、512バイトのデータ・ブロック42にコピーされる。それぞれの構造は、オブジェクトを識別する4ないし8ビットの操作コードから始まる。画像プロセッサ58は、表示リスト40をアンパックし、オブジェクトのグループ情報について最初の4ビット、およびオブジェクトの型について次の4ビットを調べる。画像プロセッサ58は、その操作コードに基づいて、完全なオブジェクトの定義を読み取るために何バイトをアンパックすべきか知る。長方形の操作コード・フィールドの例は、以下で与えられる。
【0038】
【表1】
オブジェクトの型 - 長方形 ( 7バイト )
一次の操作コード :4ビット (多角形グループ)
二次の操作コード :4ビット (長方形)
y :8ビット (ゾーンの最上部からの距離)
x :16ビット (ゾーンの左端からの距離)
幅 :14ビット (ゾーンの画素の長方形の幅)
高さ :10ビット (ゾーンの長方形の高さ)
データ・ブロック42の情報は次のデータ・ブロック42のアドレスを識別し、ブロック42は連結リストを形成する。別のゾーンにわたるオブジェクトは、ゾーンの限界に応じて切り取られる下位のオブジェクトに分割される。例えば、大きな複数ゾーンの長方形は、より小さな多数の長方形に分割される。1つのゾーンのオブジェクトの位置を識別する操作コードは、そのゾーンの境界に基準を置く。特定のゾーンと関係するデータ・ブロック42の数は、もちろんそのゾーン内で印刷される情報の実際の複雑さに関係する。
【0039】
表示リスト・メモリのサイズは制限されているので、発明の好ましい実施例は、1つのゾーンの画像の複雑さを決定する手段を含む。この複雑さがある閾値を越える場合、そのデータは、ラスタ化された画像に先に変換され、必要であれば従来の圧縮技法を使用して圧縮される。そしてこの圧縮されたラスタ画像は、表示リスト40の対応するデータに取って代わり、必要に応じて他のゾーンによる使用のためにデータ・ブロック42を解放する。具体的には、複雑さの閾値の回路またはアルゴリズム54が、個々のゾーンのデータを分析し、その表示データに必要なメモリが一定の複雑さの閾値を越えるかどうか決定する。閾値を越えないならば、表示リスト40上に実行される行為は何もない。閾値を越える場合、ラスタ化回路/アルゴリズム56は、そのゾーンの表示データをラスタ化し、必要であればランレングス符号化のような従来の圧縮技法を使用して、データを圧縮する。そして圧縮されたデータは、対応するゾーンについて表示リスト40に書き込まれる。このようなラスタ化および圧縮は、1つのゾーンに必要とされるメモリの上限を設け、全体のページ情報を格納するとき、表示リスト40がメモリを使い尽くさないようにする。
【0040】
機能ブロック54および56によって実行されるメモリ拡張技法(MEt)ルーチンの好ましい実施例が、後述の図4でより十分に記述される。
【0041】
表示リスト40が全体のページについて情報を格納すると、それぞれのゾーンと関係付けられたデータは、それぞれのゾーンの情報をラスタ化するように、画像プロセッサ58によって連続して処理される。画像プロセッサ58で用いられるラスタ化のプロセスは、ここで特定されない限り、PDLを処理するプリンタですでに使用されている従来の技法に依存してもよい。
【0042】
画像プロセッサ58は、ポインタ(0-99)を使用して、それぞれのゾーンの位置を連続して要求し、そのゾーンについてのデータが表示リスト40に存在するかどうか決定する。
【0043】
画像データを含むゾーンだけが処理される。ゾーンがデータを含まない場合、印刷エンジン70は、印刷が要求されている次のゾーンにスキップするように制御される。また紙輸送機構は、印刷が再開される次の位置に紙シートを送るように制御されうる。
【0044】
1つのゾーンのラスタ化された画像プロセッサ58の出力は、5つの静的ゾーン・バッファ61ないし65(実際、1つのメモリ・チップの一部分)の1つに格納される。それぞれのゾーン・バッファ61ないし65は、ページ30上の1つのゾーン内のそれぞれのドット位置に対応する位置をもつ、モノクロまたはCMYカラーのタイルのためのビットマップ・メモリである。それぞれのバッファ61ないし65のサイズは、もちろん、1つのページのゾーンの数に依存する。1つのゾーンの高さは、印刷エンジン70によって一度の走査で印刷される1つの帯と同じである必要はない。バッファ61ないし65は通常、画像プロセッサ58および印刷エンジン70の両方によってアクセスされるので、必要なバッファの数は、ページ30を横切るゾーンの数と画像処理速度に依存する。好ましい実施例で、使用されるゾーン・バッファの数(すなわち5)は、ページ30を横切るゾーンの数よりも1つ多い。
【0045】
印刷エンジン70は、ゾーン・バッファのデータを、プリント用カートリッジASICがアクセスできるフォーマットで印刷バッファにコピーしなければならない。典型的に、印刷制御データ(4つのゾーンのデータ)の完全な走査(すなわち帯)が完全にフォーマットされ、印刷エンジンの印刷バッファに格納されたちょうど後に、印刷エンジン70の走査式印字ヘッドがページ30の幅を横切って走査する。典型的には、ASICを使用して、印刷バッファに格納する画素データの処理を実行する。印刷バッファの画素データの構成は、使用される個々の走査式印字ヘッドに依存する。印刷エンジン70は典型的に、1つの帯すなわち本例の4つのゾーンのすべての画素データを格納するために必要な印刷バッファ・メモリのサイズを必要とする。
【0046】
多くの場合、帯全部がまず初めにフォーマッタによって印刷バッファにロードされるまで、印刷エンジン70の印字ヘッドは帯を印刷し始めることができない。従って4つのゾーン・バッファ(例えば62ないし65)が印刷エンジン70によって拘束され、印刷エンジンの印刷バッファに格納するように画素データが処理されうる。これは、画像プロセッサ58がこの先使用するゾーン・バッファの5分の1に対する非常に短い時間である。これは、並行に実行する異なるタスクの間の遅れをまさに最小限にすることになる。従って、1帯あたり4つのゾーンがある例では、たった5つのバッファ61ないし65が必要と考えられる(すなわち完全な帯より1つ多い)。この時、最大4つのゾーン・バッファが印刷エンジン70による使用のためにアクセスされ、残りの1つまたは複数のバッファが画像プロセッサ58によって書き込まれる。
【0047】
好ましい実施例において、既存のプリンタの印刷エンジン70は、プリンタが本発明を組み入れるように修正される場合でも、基本的に変更されないままである。
【0048】
カラー・プリンタでは、それぞれのバッファ61ないし65は3平面のメモリから成り、1つの平面はシアン、マゼンタおよび黄の原色のそれぞれに対応する。黒のインクだけを使用するゾーンのモノクロ画像は、このラスタ化されたモノクロ画像を格納するために、バッファ61ないし65における1平面のみを必要とする。
【0049】
ゾーン・バッファ61ないし65のためのメモリは、メモリ・マネージャによって制御される。ゾーンがモノクロとして表示リスト40にタグ付けされている場合、1平面のバッファが画像プロセッサ58によってリクエストされ、そうでない場合、3平面のバッファがリクエストされる。印刷エンジン70のフォーマッタがゾーン・バッファ61ないし65のデータを処理するとき、最上部のオフセット、左のオフセット、次元および平面形式のようなものを記述するヘッダを一緒に送る。平面形式のフィールドは、そのゾーンについて印刷される画素がCMYであるかまたは黒であるか示す。印刷エンジン70は、ゾーン・バッファ61ないし65からデータを検索するとき、この情報に基づいて1または3平面のデータを捜す。
【0050】
ラスタ化されたデータが走査式印字ヘッドのために適切にフォーマットされると、印刷エンジン70は、走査式印字ヘッドの個々のインク噴出要素を選択的に活動させる、あるいは、表示画面または他の表示装置の任意のフォーマットの適当な画素要素を選択的に制御することができる。バッファ61ないし65は、通常、画像プロセッサ58および印刷エンジン70によって連続的にアクセスされる。印刷エンジンまたは他の表示型式のエンジンのために画素データをフォーマットすることは従来から行われており、当業者にはすでに知られている。
【0051】
ラスタ化されたデータを格納するために、図3のゾーン・バッファ61ないし65を使用するのではなく従来の技法が使用されるとすると、図1のバッファ16に関して述べたように、2本の完全な帯に等しい容量の帯バッファ・メモリが必要とされる。しかし上述の例の本発明を使用すれば、たった1.25本の帯の容量だけが必要とされる。600dpiでは、このメモリの節約は、すべての3平面について400Kバイト以上になる。
【0052】
走査式印字ヘッドをもつプリンタの1つの例は、本譲受人に譲渡され、ここで参照として取り入れられる米国特許第5,408,746号の「Datum Formation for Improved Alignment of Multiple Nozzle Members In a Printer」に記述されている。
【0053】
図4は、図3の機能ブロック54および56によって実行される好ましいメモリ拡張技法(MEt)ルーチンを示す。図4に示すMEtのプロセスは、全体の表示リスト40を格納するために十分なメモリ空間が存在することを保証しようとする。
【0054】
第一のステップでは、閾値規準がそれぞれのゾーンについて初期化される。この閾値規準は、1つのゾーンによる使用のために許容される、最大数のデータ・ブロック42でありうる。個々のゾーンだけが処理されるので、帯あたり4つのゾーンが使用されると仮定すると、この閾値規準は、帯全体のデータを閾値と比較しなければならない従来のプリンタによって使用される値の4分の1でありうる。
【0055】
次のステップで、パーサー50は上述のようにホスト・コンピュータ48からのPCLデータを、表示リスト40に格納するためのデータに変換して、表示リスト40を組み立てる。
【0056】
あるゾーンについて、オブジェクトの情報を格納するために必要とされるデータ・ブロックすなわち表示リスト(DL)・ブロックの数は、そのゾーンの閾値と比較される。これらのDLブロックの数がゾーンの閾値を越えない場合、表示リスト40の組立が次のゾーンについて続けられる。
【0057】
あるゾーンのDLブロック数がそのゾーンの閾値を越える場合は、メモリ空間がそのゾーンのデータを更に処理するために割り当てられているかどうか決定される。それがこのプロセスの1回目の繰返しである場合、割り当てられているメモリは存在しない。このメモリは典型的にはメインのプリンタ・メモリで見つけられ、また表示リスト40によって使用される。
【0058】
これがMEtプロセスの1回目の繰り返しであるとすると、ここでゾーンのメモリが割り当てられる。そのようなメモリが利用可能であれば、そのゾーンのDLブロックのオブジェクトの情報がラスタ化される。そしてラスタ化されたブロックは、最も使用最近度の低い(least recently used;LRU)チェーンに入れられる。表示リスト40の組立の終了に向けて、ここで、全体の表示リスト40を格納するための十分なメモリを保証するために、先に格納されたデータの圧縮が必要であると決定される場合、このLRUチェーンが関連するようになる。
【0059】
ここでメモリに格納されたラスタ化されたデータは、オリジナルのオブジェクトの情報に代わって使用されるので、オリジナルのDLブロックが解放される。
【0060】
そしてゾーンの現在のサイズを考慮に入れるために、そのゾーンのゾーン閾値が引き下げられる。そのゾーンに格納されるデータが更に到来するとき、引き下げられた閾値が新しいデータに当てられる。そして、そのゾーンの次のデータがこの引き下げられた閾値を越える場合、図4で述べたMEtプロセスが必要に応じて繰り返される。
【0061】
あるゾーンについてDLブロックの数が閾値を越えて、利用可能なゾーン・メモリがすでにメモリに存在すると決定される場合、このゾーンのデータはラスタ化され、利用可能なゾーン・メモリに格納される。LRUチェーンは使用の新たな順序に適応させるように調整され、オリジナルのDLブロックが解放される。そしてそのゾーンについて、ゾーンの閾値が調整される。
【0062】
表示リスト40が完成する前にメモリが使い尽くされると判断される場合、それに応じてゾーンの閾値をさらに引き下げることができる。
【0063】
あるゾーンについて、DLブロックの数がゾーン閾値を越え、ラスタ化されるデータを格納するに十分なメモリが利用可能でないと決定される場合、ゾーン・バッファ61ないし65が、ラスタ化された画素データを格納するために一時的に使用されなければならない。
【0064】
そのような場合、格納されるラスタ化されたデータは、ランレングス符号化を使用して圧縮される。好ましい実施例において、水平および垂直のランレングス符号化は、隣接する行の間に変化が存在するかどうか決定するデルタ行(delta row)符号化とともに使用される。
【0065】
そして、元々このゾーンのデータを含んでいたDLブロックが解放される。表示リスト40のメモリに、圧縮されたデータのための空間が割り当てられる。この空間は、表示リスト40のメモリ内で連続していることが好ましい。連続した空間が見つかると、圧縮されたデータは連続したDLブロックに格納され、ゾーンの閾値がそれに応じて調整される。
【0066】
表示リスト40のメモリに連続した空間が見つからない場合、メモリの中のいくつかのより小さいブロックが割り当てられ、圧縮されたデータは、断片的なチェーンでメモリにコピーされる。そしてゾーンの閾値が調整される。
【0067】
表示リスト40の組立の終了に向かって、圧縮されたデータを格納するにはメモリが不充分であることがわかると、最も使用最近度の低い(LRU)DLブロックのデータがラスタ化され、圧縮されて、メモリ空間を自由にする。そのような状況で、ゾーン閾値は、表示リスト40の全体をメモリに格納するために必要とされるレベルにまで引き下げられる。
【0068】
特定のMEtプロセスを述べたが、そのようなプロセスは本発明を実行するために必要なものではない。
【0069】
発明を用いることによって、ラスタ化された画素データを格納するためのビットマップ・メモリのバッファのサイズの減少に加えて、表示リスト・メモリのサイズもまた、従来の表示リスト・メモリのサイズより減少させることができる。なぜなら、例えばゾーンは完全な帯の4分の1であるので、閾値回路54(図3)によって使用されるそれぞれのゾーンの複雑さの閾値は、従来の完全な帯の複雑さの閾値のたった4分の1であるからである。従ってこの複雑さの閾値は、600dpiのプリンタでは、300dpiの完全な帯の閾値とほぼ同じ閾値になる。これは、1つの完全な帯のメモリ・サイズの上限ではなく、1つのゾーンのメモリ・サイズの上限を設ける。1つの帯において印刷されるものは複雑に変化すると仮定されるので、帯の中で複雑さの閾値を越えるあるゾーンが、従来のラスタ化および圧縮の装置56を使用して先にラスタ化され、圧縮される一方、同じ帯の他のゾーンは複雑さの閾値を越えないこともありうる。このように、帯の中のそれぞれのゾーンを互いに独立して扱うことによって、1ページを横切って複雑さが大きく変化する複雑なグラフィックス描画において、メモリを大量に節約することができる。
【0070】
さらに、1つの帯の全データではなく、1つのゾーンのデータだけを処理すればよいので、従来の技法を使用するときよりも処理の複雑さが軽減される。これは、それぞれの操作の間により少ない画素が描画され、配置され、コピーされ、削除されればよいので、より速いスループットをもたらす。
【0071】
さらに、1つの帯を複数のゾーンに区分することは、1つの帯において0、1および3平面のゾーンを混合することを可能にし、より少数の画素を描画し、回転し、コピーし、削除するので、それぞれの帯についての処理の量を削減し、より速いスループットをもたらす。
【0072】
1つのゾーンの画素の高さが、印字ヘッドの一回の走査の画素の高さよりも小さい場合、ゾーン・バッファ61ないし65に格納される複数のラスタ画像は、印字ヘッドのそれぞれの走査に先立って、印刷エンジン70によってフォーマットされる必要がある。
【0073】
それぞれの図で使用される、ぺージあたりの帯の数、帯あたりのドットの数、データ・ブロックのサイズ、およびゾーン・バッファ61ないし65のサイズおよび数の例は、図示の目的のためだけであることを理解されたい。これらの値は、ページ・サイズ、解像度および他の設計要素によって変更されうる。例えば、1つのゾーンのサイズ、画像プロセッサ58の速度、および印刷エンジン70の速度に依存して、ゾーン・バッファの数は2から10またはそれ以上の範囲をとりうる。しかしゾーン・バッファの数は、通常、完全な帯を格納するのに必要とされるゾーンの数よりも1つ多いが、これは従来の印刷エンジンを使用することを仮定している。タイルの粒状性(granurality)は、構造全体に影響を及ぼすことなく、その幅および高さを変えることによって変更することができる。しかしあるサイズ以下のタイルに関して利益を減少させる、それぞれのタイルに関連する表示リストの総経費(overhead)が存在する。
【0074】
ゾーン・バッファは1つのメモリの一部分であり、メモリのアドレスは個々のゾーンに割り当てられることに理解されたい。表示リストのブロック42のサイズは固定される必要はなく、任意のサイズの可変長ブロックであってよい。
【0075】
本発明は例として次の実施態様を含む。
【0076】
(1)表示装置(70)に1つまたは複数のオブジェクト(32,34,36)を表示するページ記述言語の表示命令を受け取るステップと、
上記1つまたは複数のオブジェクトが表示される媒体(30)のゾーン(0-99)を識別し、上記媒体にわたる2次元の配列の上記ゾーンからなるそれぞれのゾーンに、表示されるオブジェクトを割り当てるステップと、
オブジェクトが位置するそれぞれの上記ゾーンについて、上記オブジェクトを記述するオブジェクトの記述を、表示リスト(40)に格納するステップと、
それぞれの上記ゾーンについて表示データをラスタ化するために、オブジェクトが位置するそれぞれの上記ゾーンについて、上記表示リストの表示データを処理する(58)ステップと、
上記表示リストからラスタ化された表示データを、ビットマップ・メモリ(61-65)に格納するステップと、
上記媒体に上記オブジェクトを表示する表示装置(70)への適用のために、上記ビットマップ・メモリ内の上記ラスタ化された表示データをアドレスするステップと、
を含む方法。
【0077】
(2)上記1つまたは複数のオブジェクト(32, 34, 36)を上記媒体に表示するために、上記表示装置(70)は上記媒体(30)を横切って走査方向に走査し、上記走査方向で上記媒体を横切るゾーン(0-3)の数がNであり、上記ラスタ化された表示データを格納するために割り当てられる上記ビットマップ・メモリ(61-65)が、Nゾーンに必要とされるよりも多く、2Nゾーンに必要とされるよりも少ない、上記(1)の方法。
(3)上記ビットマップ・メモリ(61-65)が、N+1のゾーンに割り当てられる空間をもつ、上記(2)の方法。
(4)それぞれの上記ゾーン(0-99)についてオブジェクトの記述を上記表示リスト(40)に格納する上記ステップが、オブジェクト(32,34,36)が位置するそれぞれの上記ゾーンについて、上記オブジェクトを記述するオブジェクトの記述を、表示リスト・メモリの所定のバイト数のデータ・ブロック(42)に格納することを含み、ゾーンの中の表示される1つまたは複数のオブジェクトの位置はそのゾーンの境界に基準をおく、上記(1)、(2)または(3)の方法。
(5)上記表示リスト(40)の表示データを処理する上記ステップが、オブジェクト(32,34,36)が位置するそれぞれの上記ゾーン(0-99)について、上記表示リストのデータをアドレスすることを含み、データは媒体(30)上のゾーンと同じ連続する順にアドレスされる、上記(1)、(2)、(3)または(4)の方法。
【0078】
(6)それぞれの上記ゾーン(0-99)の上記表示リスト(40)のデータは、特定のゾーン内のオブジェクト(32,34,36)がモノクロであるかカラーであるか示し、
そのゾーンの上記オブジェクトがカラーである場合、そのゾーンについて3組のビットマップ・データが上記ビットマップ・メモリ(61-65)に格納され、1組は上記表示装置(70)によって表示されうるそれぞれの原色の色に関し、
上記ゾーンの上記オブジェクトがモノクロである場合、そのゾーンについて1組のビットマップ・データが上記ビットマップ・メモリに格納され、
そのゾーンに表示されるオブジェクトがない場合、上記ビットマップ・メモリに格納されるそのゾーンのオブジェクト記述データは存在せず、従って上記ビットマップ・メモリは、上記媒体を横切って表示されるオブジェクトに依存して、複数のゾーンについて0、1または3組のビットマップ・データの任意の組み合わせを格納する、
上記(1)ないし(5)のいずれかの方法。
【0079】
(7)上記表示装置(70)は、1つまたは複数の走査式印字ヘッドをもつプリンタであって、上記ビットマップ・メモリ(61-65)内の上記ラスタ化された表示データをアドレスする上記ステップが、
上記ラスタ化された表示データを印刷バッファ・メモリに格納するために、上記ビットマップ・メモリにフォーマットするステップを含み、上記印刷バッファ・メモリのデータを使用して、上記媒体を横切る上記印字ヘッドの少なくとも一回の走査について上記1つまたは複数の走査式印字ヘッドを制御し、
上記印字ヘッドの走査方向において、上記ビットマップ・メモリの上記媒体(30)を横切るゾーン(0-3)のビットマップ・データは、上記媒体を横切るそれらのゾーンの印刷されるオブジェクトに依存して、1つのゾーンについてデータを含まない、または1つのゾーンについて1組のモノクロのデータを含む、または1つのゾーンについて3組の原色カラーデータを含む、またはそれらの任意の組み合わせを含む、上記(1)ないし(6)のいずれかの方法。
【0080】
(8)さらに、
1つのゾーン(0-99)についてオブジェクトの情報を格納するに必要な記憶空間の量を制限するために、上記表示リスト(40)に格納する表示データに関してメモリ拡張を実行するステップを含み、上記メモリ拡張が、1つのゾーンのオブジェクトの情報を格納するために使用されるメモリが、閾値を越えるかどうか決定するステップと、
上記オブジェクトの情報が上記閾値を越える場合、上記ゾーン内のオブジェクトをラスタ化するステップと、
ラスタ化されたデータを、上記ゾーン内の上記オブジェクトに対応する上記表示リストに格納するステップと、
を実行する、上記(1)ないし(7)のいずれかの方法。
【0081】
(9)1つのゾーン(0-99)の上記ラスタ化されたデータを格納するために、上記ビットマップ・メモリ(61-65)に空間を割り当てるステップを含み、ラスタ化されたデータを上記表示リスト(40)に格納する上記ステップが、上記ビットマップ・メモリからの圧縮されたラスタ化データを上記表示リストに格納する、上記(1)ないし(8)のいずれかの方法。
【0082】
(10)表示装置(70)に1つまたは複数のオブジェクト(32,34,36)を表示するために、ページ記述言語の表示命令を受け取る受信器と、
上記1つまたは複数のオブジェクトが表示される媒体(30)上の、上記媒体にわたる2次元の配列のゾーンからなるゾーン(0-99)を識別し、表示されるオブジェクトをそれらのそれぞれのゾーンに割り当てるための、上記受信器に接続されるパーサー(50)と、
オブジェクトが位置するそれぞれの上記ゾーンについて、上記パーサーによって生成される上記オブジェクトを記述するオブジェクト記述を格納する表示リスト・メモリ(40)と、
上記それぞれのゾーンについて表示データをラスタ化するために、オブジェクトが位置するそれぞれの上記ゾーンについて、上記表示リスト・メモリの表示データを処理する画像プロセッサ(58)と、
それぞれの上記ゾーンについて、上記表示リスト・メモリに基づくラスタ化された表示データを格納するために、上記画像プロセッサに接続されるビットマップ・メモリ(61-65)と、
上記ビットマップ・メモリ内の上記ラスタ化された表示データをアドレスし、上記ラスタ化された表示データを、上記媒体に上記オブジェクトを表示する表示装置による使用のためのフォーマットにするフォーマッタ(70)と、
を含む装置。
【0083】
【発明の効果】
本発明によれば、ページのそれぞれの帯を複数のゾーンに分割し、印刷する画素データの処理をゾーンごとに行うことによって、1つの帯に関する処理の量を減らし、必要とされる表示リスト・メモリおよびビットマップ・メモリの容量を減少させることができる。
【図面の簡単な説明】
【図1】関連する表示リストのメモリ構造、画像プロセッサおよび帯バッファをもつ典型的な300dpiのプリンタのページ・レイアウトを示すブロック図。
【図2】一定の形状が印刷され、帯の境界が破線で示される、印刷されるページを示す図。
【図3】発明に従う表示装置の関連する構成要素を示すブロック図。
【図4】発明の好ましい実施例に従って、表示リストに必要なメモリを減少させるために使用される、多様なメモリ拡張技法(MEt)ステップを記述するフローチャート。
【符号の説明】
30 ページ
40 表示リスト
42 ブロック
48 ホスト・コンピュータ
50 パーサー
58 画像プロセッサ
61−65 ゾーン・バッファ
70 印刷エンジン
Claims (10)
- 印刷装置に1つまたは複数のオブジェクトを印刷するページ記述言語の印刷命令を受け取るステップと、
前記1つまたは複数のオブジェクトが表示される媒体上の複数のゾーンを識別し、前記媒体にわたる2次元の配列からなる各ゾーンに、印刷されるオブジェクトを割り当てるステップと、を含み、前記配列の各行は印字ヘッドの走査方向に複数の前記ゾーンを含み、前記配列の各列は印字ヘッドの走査方向の垂直方向に複数の前記ゾーンを含み、
前記オブジェクトが割り当てられる前記各ゾーンについて、前記オブジェクトを記述するオブジェクト記述を表示リストに格納するステップと、
オブジェクトが割り当てられた前記各ゾーンについて前記表示リスト内の印刷データを処理して、前記各ゾーンについて印刷データを順次ラスタ化するステップと、
前記表示リストからのラスタ化された印刷データをゾーンごとに順次ビットマップ・メモリに格納するステップと、
前記媒体に前記オブジェクトを印刷する印刷装置に送るために、前記ビットマップ・メモリ内の前記ラスタ化された印刷データを順次アドレス指定するステップと、を含み、複数の前記ゾーンのうちの1つに関して前記ラスタ化が行われる間に、複数の前記ゾーンのうちの他の1つに関して前記アドレス指定が行われる、方法。 - 前記表示装置は、前記媒体を走査方向に走査して前記1つまたは複数のオブジェクトを前記媒体に表示し、
前記走査方向における前記媒体の端から端までのゾーンの数がNであり、
前記ラスタ化された表示データを格納するために割り当てられる前記ビットマップ・メモリは、N個のゾーンに必要とされる量よりも多いが2N個のゾーンに必要とされる量よりも少ない、請求項1に記載の方法。 - 前記ビットマップ・メモリは、N+1個のゾーンに割り当てられた空間を持つ、請求項2に記載の方法。
- 前記オブジェクト記述を表示リストに格納するステップは、オブジェクトが置かれる前記各ゾーンについて、前記オブジェクトを記述するオブジェクト記述を表示リスト・メモリ内の所定のバイト数のデータ・ブロックに格納することを含み、
ゾーンの中に表示される1つまたは複数のオブジェクトの位置はそのゾーンの境界を基準とする、請求項1ないし3の何れか1項に記載の方法。 - 前記表示リスト内の表示データを処理するステップは、オブジェクトが置かれる前記各ゾーンについて前記表示リスト内のデータをアドレス指定することを含み、このデータは媒体上のゾーンの順序と同じ連続順でアドレス指定される、請求項1ないし4の何れか1項に記載の方法。
- 前記各ゾーンについての前記表示リスト内のデータは、特定のゾーン内のオブジェクトがモノクロであるかカラーであるかを指定し、
そのゾーンにおけるオブジェクトがカラーであるときは、各組が前記表示装置によって表示することができる原色についての組である3組のビットマップ・データがそのゾーンについて前記ビットマップ・メモリに格納され、
そのゾーンにおけるオブジェクトがモノクロであるときは、1組のビットマップ・データがそのゾーンについて前記ビットマップ・メモリに格納され、
そのゾーンに表示するべきオブジェクトがないときは、そのゾーンについて前記ビットマップ・メモリに格納されるオブジェクト記述データは存在せず、前記ビットマップ・メモリは、前記媒体にわたって表示されるオブジェクトに依存して、複数のゾーンについて0組、1組または3組のビットマップ・データの任意の組み合わせを格納する、
請求項1ないし5の何れか1項に記載の方法。 - 前記表示装置は、1つまたは複数の走査式印字ヘッドをもつプリンタであり、
前記ビットマップ・メモリ内のラスタ化された表示データをアドレス指定するステップは、印刷バッファ・メモリに格納するために、前記ビットマップ・メモリ内の前記ラスタ化された表示データをフォーマットするステップを含み、前記印刷バッファ・メモリ内のデータは、前記媒体を横切る前記印字ヘッドの少なくとも一回の走査について前記1つまたは複数の走査式印字ヘッドを制御するために使用され、
前記印字ヘッドの走査方向における前記媒体の端から端までのゾーンについての前記ビットマップ・メモリ内のビットマップ・データは、前記媒体のそれらのゾーンに印刷するべきオブジェクトに応じて、ゾーンについてのデータが無いか、1つのゾーンについての1組のモノクロのデータを含むか、1つのゾーンについての3組の原色カラーデータを含むか、またはそれらの任意の組み合わせの何れかを含む、請求項1ないし6の何れか1項に記載の方法。 - 1つのゾーンについてオブジェクト情報を格納するために必要な記憶空間の量を制限するために、前記表示リスト内に格納する表示データに関してメモリ拡張を実行するステップをさらに含み、
前記メモリ拡張は、
1つのゾーンについてのオブジェクト情報を格納するために使用されるメモリが閾値を越えるか否かを決定するステップと、
前記オブジェクト情報が前記閾値を越えたとき、前記ゾーン内のオブジェクトをラスタ化するステップと、
ラスタ化されたデータを前記ゾーン内の前記オブジェクトに対応する前記表示リスト内に格納するステップと、
を実行する、請求項1ないし7の何れか1項に記載の方法。 - 1つのゾーンについて前記ラスタ化されたデータを格納するために前記ビットマップ・メモリに空間を割り当てるステップをさらに含み、
前記ラスタ化されたデータを表示リストに格納するステップは、前記ビットマップ・メモリからの圧縮されたラスタ化データを前記表示リスト内に格納することを含む、請求項1ないし8の何れか1項に記載の方法。 - ページ記述言語の表示命令を受け取って印刷装置に1つまたは複数のオブジェクトを印刷するための受信器と、
前記1つまたは複数のオブジェクトが印刷される媒体上にあり媒体の端から端までの2次元の配列からなる複数のゾーンを識別し、印刷されるオブジェクトを各ゾーンに割り当てる、前記受信器に接続されるパーサーと、を備え、前記配列の各行が印字ヘッドの走査方向に複数の前記ゾーンを含み、前記配列の各列が印字ヘッドの走査方向の垂直方向に複数の前記ゾーンを含み、
前記オブジェクトが割り当てられる前記各ゾーンについて前記パーサーによって生成される、前記オブジェクトを記述するオブジェクト記述を格納する表示リスト・メモリと、
オブジェクトが割り当てられた前記各ゾーンについて前記表示リスト・メモリ内の印刷データを処理して、前記各ゾーンについて印刷データを順次ラスタ化する画像プロセッサと、
前記各ゾーンについての前記表示リスト・メモリからのラスタ化された印刷データをゾーンごとに順次格納する、前記画像プロセッサに接続されるビットマップ・メモリと、
前記ビットマップ・メモリ内の前記ラスタ化された印刷データを順次アドレス指定し、前記媒体に前記オブジェクトを印刷する印刷装置が使用するために、前記ラスタ化された印刷データをフォーマット内に配置するフォーマッタと、を含み、複数の前記ゾーンのうちの1つに関して前記ラスタ化が行われる間に、複数の前記ゾーンのうちの他の1つに関して前記アドレス指定が行われる、装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US51863495A | 1995-08-23 | 1995-08-23 | |
US518,634 | 1995-08-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0958069A JPH0958069A (ja) | 1997-03-04 |
JP3753263B2 true JP3753263B2 (ja) | 2006-03-08 |
Family
ID=24064816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18582196A Expired - Fee Related JP3753263B2 (ja) | 1995-08-23 | 1996-07-16 | 画像を処理する方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5805174A (ja) |
EP (1) | EP0764918B1 (ja) |
JP (1) | JP3753263B2 (ja) |
KR (1) | KR100432307B1 (ja) |
CN (1) | CN1105369C (ja) |
DE (1) | DE69625760T2 (ja) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU4585797A (en) * | 1996-09-24 | 1998-04-17 | Colorage, Inc. | Adaptive block image compression |
US5923820A (en) * | 1997-01-23 | 1999-07-13 | Lexmark International, Inc. | Method and apparatus for compacting swath data for printers |
JPH11203061A (ja) | 1998-01-12 | 1999-07-30 | Fuji Xerox Co Ltd | 画像処理装置、出力装置、画像処理システムおよび画像処理方法 |
US5995117A (en) * | 1998-02-19 | 1999-11-30 | Tektronix, Inc. | Rasterization control method |
US6018400A (en) * | 1998-05-05 | 2000-01-25 | Hewlett-Packard Company | Laser printer employing overlapped color plane processing |
FR2801396B1 (fr) * | 1999-11-22 | 2002-11-08 | Canon Kk | Convertion en mode point de donnees numeriques |
JP3406557B2 (ja) * | 2000-02-18 | 2003-05-12 | パナソニック コミュニケーションズ株式会社 | 複合機 |
US7450114B2 (en) | 2000-04-14 | 2008-11-11 | Picsel (Research) Limited | User interface systems and methods for manipulating and viewing digital documents |
US7055095B1 (en) | 2000-04-14 | 2006-05-30 | Picsel Research Limited | Systems and methods for digital document processing |
US7576730B2 (en) | 2000-04-14 | 2009-08-18 | Picsel (Research) Limited | User interface systems and methods for viewing and manipulating digital documents |
US6781600B2 (en) | 2000-04-14 | 2004-08-24 | Picsel Technologies Limited | Shape processor |
DE10117035B4 (de) | 2000-04-27 | 2006-08-17 | Hewlett-Packard Development Co., L.P., Houston | Drucktechnik zum Verbergen von Bandgrenzen-Banderscheinungen |
AUPQ995700A0 (en) * | 2000-09-07 | 2000-09-28 | Canon Kabushiki Kaisha | Method and apparatus for printing computer generated images |
JP4184631B2 (ja) * | 2001-06-28 | 2008-11-19 | 株式会社沖データ | 印刷制御方法及び上位・印刷装置 |
AU2002320804B2 (en) * | 2001-12-21 | 2004-12-02 | Canon Kabushiki Kaisha | Print System with Dynamic Address Generation for Print Data |
US7324229B2 (en) * | 2002-04-10 | 2008-01-29 | Texas Instruments Incorporated | Rendering in a printer using bands |
KR20040002032A (ko) * | 2002-06-29 | 2004-01-07 | 주식회사 케이티 | 행단위 서브-샘플링을 통한 래스터 맵 데이터 액세스 속도향상 방법 |
US7289243B2 (en) * | 2002-08-07 | 2007-10-30 | Lexmark International, Inc. | Apparatus and method for data compression optimized by print head architecture |
US8045215B2 (en) * | 2002-10-18 | 2011-10-25 | Hewlett-Packard Development Company, L.P. | Printer object list resolutions |
US20040246502A1 (en) * | 2003-06-09 | 2004-12-09 | Jacobsen Dana A. | Rendering sub-sections |
US7835030B2 (en) * | 2004-03-26 | 2010-11-16 | Lexmark International, Inc. | Processing print jobs |
US7859716B2 (en) * | 2004-03-26 | 2010-12-28 | Lexmark International, Inc. | Optimizing to-be-printed objects during print job processing |
US20050213142A1 (en) * | 2004-03-26 | 2005-09-29 | Clark Raymond E | Optimization techniques during processing of print jobs |
US7817302B2 (en) * | 2004-03-26 | 2010-10-19 | Lexmark International, Inc. | Optimizing raster operation functions during print job processing |
US7385729B2 (en) * | 2004-03-26 | 2008-06-10 | Lexmark International, Inc. | Optimization techniques during processing of print jobs |
JP2006067577A (ja) | 2004-08-26 | 2006-03-09 | Oce Technologies Bv | 装置で画像をレンダリングするために、メモリに記憶される画像データを処理する方法、機器、およびコンピュータプログラム製品 |
EP1638049A3 (en) * | 2004-08-26 | 2006-11-02 | Océ-Technologies B.V. | Method, apparatus and computer program product for processing image data stored on a memory for rendering an image on a device |
US7880750B2 (en) * | 2005-01-06 | 2011-02-01 | Zenographics, Inc. | Digital image processing with inherent compression |
US7817307B2 (en) | 2005-01-06 | 2010-10-19 | Zenographics, Inc. | Digital image processing without rasterization |
US7515285B2 (en) * | 2005-09-26 | 2009-04-07 | Kabushiki Kaisha Toshiba | Method and apparatus for image processing |
US8208169B2 (en) | 2006-05-24 | 2012-06-26 | Lexmark International, Inc. | Method and system for rendering a transparent object in an image |
WO2009099446A1 (en) * | 2008-02-08 | 2009-08-13 | Hewlett-Packard Development Company, L.P. | Printing method using multiple processors |
JP5279332B2 (ja) * | 2008-04-28 | 2013-09-04 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
US8243313B2 (en) | 2009-05-26 | 2012-08-14 | Infoprint Solutions Company Llc | Cache optimization mechanism |
US8767240B1 (en) | 2011-01-28 | 2014-07-01 | Marvell International Ltd. | Method and apparatus for encoding data to perform real-time rendering |
US20120218277A1 (en) * | 2011-02-25 | 2012-08-30 | ST-Ericcson SA | Display list mechanism and scalable display engine structures |
JP2014002591A (ja) * | 2012-06-19 | 2014-01-09 | Canon Inc | 画像処理装置、画像処理方法、コンピュータプログラム |
US8766986B1 (en) | 2012-06-22 | 2014-07-01 | Google Inc. | Efficient caching and drawing of objects whose rendering properties change frequently |
CN104216914B (zh) * | 2013-06-04 | 2017-09-15 | Sap欧洲公司 | 大容量数据传输 |
US9818051B2 (en) * | 2016-01-29 | 2017-11-14 | Ricoh Company, Ltd. | Rotation and clipping mechanism |
US10472867B2 (en) * | 2016-12-15 | 2019-11-12 | GM Global Technology Operations LLC | System and method for controlling a vehicle door lock system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4723211A (en) * | 1984-08-30 | 1988-02-02 | International Business Machines Corp. | Editing of a superblock data structure |
US4694405A (en) * | 1985-07-09 | 1987-09-15 | Office Automation Systems, Inc. | Laser printer controller data alignment device |
US5058042A (en) * | 1989-04-03 | 1991-10-15 | Hewlett-Packard Company | Method for employing a hierarchical display list in global rendering |
US5063608A (en) * | 1989-11-03 | 1991-11-05 | Datacube Inc. | Adaptive zonal coder |
CA2028701C (en) * | 1989-11-15 | 2001-04-24 | Yitshak Birk | Method and apparatus for pipelined parallel rasterization |
US5509115A (en) * | 1990-08-08 | 1996-04-16 | Peerless Systems Corporation | Method and apparatus for displaying a page with graphics information on a continuous synchronous raster output device |
JP3110746B2 (ja) * | 1990-10-09 | 2000-11-20 | キヤノン株式会社 | 画像処理方法 |
US5250940A (en) * | 1991-01-18 | 1993-10-05 | National Semiconductor Corporation | Multi-mode home terminal system that utilizes a single embedded general purpose/DSP processor and a single random access memory |
US5319748A (en) * | 1992-04-30 | 1994-06-07 | Ricoh Company, Ltd. | Method and apparatus to manage picture and pageset for document processing |
US5295235A (en) * | 1992-02-14 | 1994-03-15 | Steve Newman | Polygon engine for updating computer graphic display employing compressed bit map data |
US5594860A (en) * | 1995-01-27 | 1997-01-14 | Varis Corporation | Method for banding and rasterizing an image in a multiprocessor printing system |
-
1996
- 1996-07-16 JP JP18582196A patent/JP3753263B2/ja not_active Expired - Fee Related
- 1996-08-09 DE DE69625760T patent/DE69625760T2/de not_active Expired - Fee Related
- 1996-08-09 EP EP96305861A patent/EP0764918B1/en not_active Expired - Lifetime
- 1996-08-20 KR KR1019960034343A patent/KR100432307B1/ko not_active IP Right Cessation
- 1996-08-23 CN CN96111484A patent/CN1105369C/zh not_active Expired - Fee Related
-
1997
- 1997-10-17 US US08/953,223 patent/US5805174A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR970012110A (ko) | 1997-03-29 |
EP0764918A2 (en) | 1997-03-26 |
CN1148223A (zh) | 1997-04-23 |
CN1105369C (zh) | 2003-04-09 |
EP0764918B1 (en) | 2003-01-15 |
DE69625760T2 (de) | 2003-11-06 |
JPH0958069A (ja) | 1997-03-04 |
KR100432307B1 (ko) | 2004-08-06 |
US5805174A (en) | 1998-09-08 |
EP0764918A3 (en) | 1998-01-14 |
DE69625760D1 (de) | 2003-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3753263B2 (ja) | 画像を処理する方法 | |
EP0887763B1 (en) | Method and apparatus for building bitmap data in a printer | |
EP0654759B1 (en) | Printing apparatus | |
EP0597571B1 (en) | Method and apparatus for processing data for a visual-output device with reduced buffer memory requirements | |
US20090147310A1 (en) | Image processing method and apparatus for reprinting with a desired binding width having different print settings | |
US6323958B1 (en) | Printing apparatus | |
US5852679A (en) | Image processing apparatus and method | |
US8339667B2 (en) | Optimizing to-be printed objects during print job processing | |
US5778160A (en) | Liquid ink printing system having region-dependent image processing | |
US5835122A (en) | Printing apparatus and method capable of selectively printing with a plurality of resolutions | |
EP0398681B1 (en) | Output apparatus | |
JPH1166327A (ja) | 画像処理方法および画像処理装置および記録媒体 | |
KR100477777B1 (ko) | 래스터 오브젝트를 생성하기 위한 방법, 시스템, 정보저장 매체, 및 컴퓨터 판독가능 매체 | |
US6310693B1 (en) | Printing control apparatus and method, and printing system for reducing processing overhead | |
EP0886243B1 (en) | Printer with procedure for pattern tiling and scaling | |
JPH0918732A (ja) | 情報処理装置及びその方法 | |
JPH08139953A (ja) | 印刷装置及び印刷方法 | |
JP3686490B2 (ja) | プリンタドライバのアーキテクチャのための可変2値化処理を使用するシステムおよび方法 | |
JP2885215B2 (ja) | プリンタ装置 | |
JP3968989B2 (ja) | 画像処理装置、画像処理方法および画像処理プログラムを記録した記憶媒体 | |
JP2006140597A (ja) | 印刷制御装置、印刷制御方法、コンピュータプログラム及び記憶媒体 | |
JPH08130618A (ja) | 印刷装置及び印刷方法 | |
JP2003173446A (ja) | 画像処理装置、画像処理システム、画像処理方法、記憶媒体、及びプログラム | |
JPH08307677A (ja) | 多値画像を印刷可能なページプリンタ | |
JPH0535879A (ja) | ベクトル画像描画装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050117 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051208 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |