JPH1035055A - 印刷方法 - Google Patents

印刷方法

Info

Publication number
JPH1035055A
JPH1035055A JP9063574A JP6357497A JPH1035055A JP H1035055 A JPH1035055 A JP H1035055A JP 9063574 A JP9063574 A JP 9063574A JP 6357497 A JP6357497 A JP 6357497A JP H1035055 A JPH1035055 A JP H1035055A
Authority
JP
Japan
Prior art keywords
pattern
fill area
memory
fill
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9063574A
Other languages
English (en)
Other versions
JP3311956B2 (ja
Inventor
Russell Campbell
ラッセル・キャモベル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH1035055A publication Critical patent/JPH1035055A/ja
Application granted granted Critical
Publication of JP3311956B2 publication Critical patent/JP3311956B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0065Page or partial page composition

Landscapes

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

Abstract

(57)【要約】 【課題】 ディジタルプリンタが印刷パターン画像を生
成する方法を改良し、そのようなパターン化画像の生成
に関連するメモリの使用度を低減させる。 【解決手段】ステップ32で、少なくとも一部のオーバ
レイパターンを用いて印刷すべき少なくとも1つのフィ
ル領域を画定することを含む。次にステップ34で、一
部のオーバレイビットマップパターンがメモリから読み
取られる。ステップ36で、フィル領域サブセットを画
定する少なくとも1つ、好ましくは2つの境界点が提供
される。ステップ38で、メモリから読み取られたオー
バレイビットマップの部分がフィル領域サブセットに適
用される。ステップ40で、オーバレイビットマップが
適用された部分を含むフィル領域サブセットが、上記で
新しい宛先30としても参照された、少なくとも一部の
印刷画像を画定するデータを記憶する出力バッファに書
き込まれる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、印刷方法に関し、
たとえば、ディジタルプリンタにおいて、印刷媒体上に
印刷画像を生成するようにディジタルプリンタを操作す
る方法に適用し得る。
【0002】
【従来の技術】ディジタルプリンタは、高品質および高
精度のフルカラー画像を生成することができる。そのよ
うなプリンタは、ホストプロセッサ上で動作するアプリ
ケーションプログラムとプリンタとの間のインタフェー
スとして働くプリンタドライバプログラムによって制御
される。
【0003】プリンタによって生成されるある種の画像
はパターンを含む。パターンは、背景または充填文字と
みなすことができる。パターンは通常、印刷媒体上に印
刷画像の一部として現れるいわゆるオブジェクトまたは
ソースに適用される。
【0004】
【発明が解決しようとする課題】プリンタでは、パター
ンは、パターン自体を形成する複数の画素の「オン」状
態または「オフ」状態を定義するデータを記憶するメモ
リビットマップによって定義される。従来、パターンを
定義するメモリビットマップは、印刷すべきページの幅
に関連する幅全体にわたって事前に複製する必要があっ
た。これは、パターン化すべきソースまたはオブジェク
トの位置が不明であったからである。したがって、パタ
ーンがオブジェクト内の固有の位置に現れるようにする
には、そのパターンに対応するメモリビットマップ全体
を、幅方向には物理ページ全体にわたって広げ、垂直方
向には最小で1パターンタイル高さだけ広げる必要があ
った。一例を挙げると、パターンの高さが0.5インチ
(1.27cm)である場合、600dpiプリンタで
は、それぞれ、幅が約6000画素である、約300行
をページ全体にわたって複製する必要がある。1200
dpiプリンタでは、ビットマップを事前に複製するた
めのメモリ要件はずっと大きい。事前に複製されたこの
ビットマップをタイル済みパターンとも呼ぶ。言うまで
もなく、パターンに対応するメモリビットマップを事前
に複製するには大量のメモリが必要である。他の例を挙
げると、48画素x48画素パターンのメモリビットマ
ップは、288バイトからその量の約13倍、すなわち
4Kに拡張する必要がある。同様に、1インチ(2.5
4cm)四方のパターンは45Kから約370Kに拡張
する必要がある。
【0005】このようなことから、本発明は、ディジタ
ルプリンタが印刷パターン画像を生成する方法を改良
し、そのようなパターン化画像の生成に関連するメモリ
の使用度を低減させる必要から行われたものである。
【0006】
【課題を解決するための手段】そこで、本発明は、印刷
媒体上に印刷画像を生成するプリンタを操作する印刷方
法であって、前記プリンタが、少なくとも一部が印刷媒
体上に印刷画像を印刷する際に使用されるオーバレイパ
ターンを画定するオーバレイパターンビットマップを保
持する少なくとも1つのメモリと、印刷画像を生成する
ために使用される画像データを処理する画像プロセッサ
とを備えており、前記印刷方法が、少なくとも一部のオ
ーバレイパターンを用いて印刷すべき少なくとも1つの
フィル領域を画定するフィル領域画定工程と、少なくと
も一部のオーバレイパターンビットマップを前記メモリ
から読み取るオーバレイパターンビットマップ読取り工
程と、少なくとも一部のフィル領域をフィルし、その内
部に現れる印刷画像を画定するように働くフィル領域サ
ブセットを部分的に画定する少なくとも1つの境界点を
与えるフィル領域サブセット画定工程と、メモリから読
み取られたオーバレイパターンビットマップの前記少な
くとも一部を前記フィル領域サブセットに適用するフィ
ル領域サブセット適用工程と、少なくとも一部の印刷画
像を画定するデータを記憶する出力バッファに前記フィ
ル領域サブセットを書き込むフィル領域サブセット書込
み工程とを含むことで上述の課題を解決する。このよう
な構成によって、実際に必要とされるパターンの部分し
か印刷画像を与えず、ページの幅全体にわたって全パタ
ーン高を事前に複写することを不要にすることができ、
メモリ容量を軽減することができる。
【0007】
【発明の実施の形態】次に、本発明の好適な実施の形態
を図面を参照しながら説明する。
【0008】プリンタシステム 図1において、ディジタルプリンタ10は、プロセッサ
12と、プリントエンジン14と、入出力ポート16と
を含む。これらはすべて、バス18によって接続され
る。プリントエンジン14は、動作時に、一定の速度で
動作し、この動作に追従する速度でビデオラスタ印刷デ
ータを得なければならないレーザプリンタを備える。
【0009】ランダムアクセスメモリ(RAM)20お
よび読取り専用メモリ(ROM)22もバス18に接続
され、プリンタ、特にプリントエンジン14を操作する
ための手順およびその他の必要なデータを含む。プリン
タ10の動作は、本出願人の米国特許第5479587
号公報に詳しく記載されており、この特許公報に開示内
容は引用によって本明細書に組み込まれる。
【0010】本実施の形態は、特定のパターンがどこに
現れる必要があるかを判定し、必要なパターンを正しい
量だけ生成し、次いで、ユーザから指定されたページに
アンカされた用紙などの印刷媒体上の所望の位置にその
ようなパターンを印刷することによって、パターン化画
像の印刷に関連するプリンタメモリ消費量を低減させ
る。上記で使用した「アンカ」の語は、ユーザ定義開始
点を意味する。すなわち、本実施の形態は、ユーザから
の指定に応じてページ上のいわばどこにでも特定のパタ
ーンをアンカすることができるので、融通性を向上させ
る。その後、パターンの必要な部分のみが生成され、印
刷媒体上にレンダリングされる。このため、基本パター
ンタイルがページ全体をカバーするのでないかぎり、従
来とは異なり、パターンを事前にページ全体にわたって
複製することは不要になる。
【0011】図2は、上記の利点を達成する一方法を示
す概略ブロック図を示す。具体的には、画像プロセッサ
12が、3つの入力、すなわちソース24と、パターン
26と、古い宛先28を受け取る。ソース24は、印刷
媒体上に印刷画像として現れるオブジェクトに関する境
界点を与えるアブストラクションである。ソースは、一
部のオーバレイパターンでフィルされるいわゆるフィル
領域を画定する。パターン26は、オーバレイパターン
を画定するオーバレイパターンビットマップの少なくと
も一部を表す。オーバレイパターンビットマップは、プ
リンタのメモリに存在することができ、下記で詳しく説
明する印刷パターン化画像を生成するために読み取るこ
とができる。古い宛先28は、プリンタによって構築さ
れ、プリンタが印刷画像を印刷するのを助けるいわゆる
ストリップを表す。宛先またはストリップは、当業者に
は理解されるように、印刷されるページ上に暗い領域ま
たは明るい領域を生成するようにレーザを変調するため
に使用される複数のビットを保持するバッファを画定す
る。画像プロセッサ12は、ソース24、パターン2
6、古い宛先28に基づいて、新しい宛先30を出力と
して画定するように動作する。新しい宛先30は、印刷
媒体上に一部の印刷画像を生成するためにプリンタによ
って使用されるデータを記憶する出力バッファである。
前述の入力が本実施の形態を例示するためのものにすぎ
ず、本実施の形態を制限するものではない。たとえば、
当業者には理解されるように、上記のことは、3つの入
力を使用するのでROP3と呼ばれるラスタ動作を示
す。しかし、他の数の入力を使用する他のラスタ動作が
ある。そのような他のラスタ動作を本実施の形態と共に
使用することは、本実施の形態および範囲内である。カ
ラー印刷は、このような単色方法を拡張することによっ
て行うことができる。
【0012】図3は、本実施の形態を実施する好ましい
方法を示すハイレベルブロック図を示す。この方法は、
ステップ32で、少なくとも一部のオーバレイパターン
を用いて印刷すべき少なくとも1つのフィル領域を画定
することを含む。フィル領域は、前述のように図2のソ
ース24に対応する。フィル領域は、印刷媒体上に一部
の印刷画像として現れるときに特定の形状を有すること
ができる。そのような形状には、卵形や、楕円形や、三
角形や、正方形や、長方形や、プリンタ動作のためにフ
ィル領域を適切に画定することができる1組のベクトル
によって記述された他の適当な形状が含まれる。本実施
の形態の通常のフィル領域は、密閉領域を形成する1組
の1つまたは複数のベクトルによって画定される。ドー
ナツ形など、内部の穴を有する複雑な形状はまず、内部
の穴を有さない基本幾何形状に分解される。しかし、そ
のような閉鎖形状が本実施の形態を制限するものではな
く、他のソースを画定する他の非閉鎖形状も本発明の趣
旨および範囲内である。オーバレイパターンは、プリン
タ10内のRAM20やROM22などのメモリ位置に
記憶または保持されたオーバレイパターンビットマップ
によって画定される。
【0013】次にステップ34で、一部のオーバレイビ
ットマップパターンがメモリから読み取られる。読み取
られるオーバレイビットマップパターンの部分は、ビッ
トマップの単一の行または単一の行の少なくとも一部で
あることが好ましい。下記に詳しく説明するように、効
率を向上させるために、オーバレイパターンビットマッ
プから読み取られる行の部分は、マルチビットワード、
好ましくは32ビットワードを含む。ステップ36で、
フィル領域サブセットを画定する少なくとも1つ、好ま
しくは2つの境界点が提供される。フィル領域サブセッ
トは、フィル領域の一部(1つの水平行であってよく、
そうであることが好ましい)をフィルするように働き、
その内部に現れる印刷画像の一部を画定する。次にステ
ップ38で、メモリから読み取られたオーバレイビット
マップの部分がフィル領域サブセットに適用される。ス
テップ40で、オーバレイビットマップが適用された部
分を含むフィル領域サブセットが、上記で新しい宛先3
0としても参照された、少なくとも一部の印刷画像を画
定するデータを記憶する出力バッファに書き込まれる。
最後にステップ42で、ステップ40で画定された出力
バッファの内容が、印刷画像を印刷するために転送され
る。出力バッファの内容を転送するステップが、出力バ
ッファを、印刷を行うために画像プロセッサまたはRO
Pに入力されるパターンとして使用する。ステップ32
ないし42のプロセスは、ソース領域全体がパターンで
描画またはフィルされるまで、ソース内の後に続く他の
行に関して繰り返される。
【0014】画素ごとのコピーモデル: 図4は、図3
に示した画素ごとの方法の実施の形態を示す。図4と、
画素ごとのコピーモデルに関する下記の説明が、後述の
32ビットワードコピーモデルの理解を助けるために記
載されている。
【0015】図4は、オーバレイパターンビットマップ
44を示す。ビットマップ44は、高さhと幅wとを有
する。ビットマップ44は、印刷媒体上に印刷画像を印
刷する際に使用されるオーバレイパターンを画定する。
ソースまたはオブジェクト46が示されており、これ
は、プリンタ制御言語による命令に応じて一部のオーバ
レイパターンを用いて印刷すべきフィル領域48を画定
する。前述のように、ソース46は、パターンを形成す
るための開始点および停止点を画定する境界点を与える
アブストラクションである。1フルページ幅の出力行5
0が与えられ、点52、54でソース46と交差する。
ソース46および出力行50は一対の境界点52、54
を決定する。印刷されるページ上では、これらの境界点
間に一部のパターンが現れる。境界点52、54間のセ
グメント、この場合は行セグメントは、少なくとも一部
のフィル領域48をフィルするフィル領域サブセット5
8を画定する。境界点52、54の情報を用いて、ソー
スまたはフィル領域の未処理行を撮像するために画像プ
ロセッサによって必要とされる複製パターンの行の部分
を作成するために使用されるパターン構成要素を構築す
ることができる。
【0016】ソースの領域の上方に同じパターンタイル
を表示または印刷する概念に必須のものとして、「アン
カ」の概念がある。アンカ点は、タイルを中心点からす
べての方向へ構築するための単一の点とみなすことがで
きるので、パターン原点と呼ばれることもある。この点
で、問題が、パターンタイルまたはオーバレイパターン
ビットマップから単一の出力行50として複製しなけれ
ばならない単一の水平行に分化したので、垂直アンカリ
ングの詳細については論じない。垂直アンカリングは、
これらの特定の行を選択するために使用された。
【0017】水平アンカリングプロセスを詳しく論じれ
ば、本実施の形態の方法が、特定の行に対してプリンタ
が行わなければならない作業の量を最小限に抑えること
に関するものである。一例として、タイリングプロセス
が、タイルを垂直方向に積み重ねるプロセスであると仮
定する。さらに、パターンタイル上のアンカ点がパター
ンタイルの左上隅であると仮定する。52にあるソース
交差点の右側の第1のアンカX点を見つけた方法が想起
される。図4で、この点は点53で表されている。これ
は、オーバレイパターンビットマップの点49にある画
素がコピーされる点である。オーバレイパターンビット
マップの点49の右側の画素は、行50上の53の右側
にコピーされる。53の左側の画素は、47の近くの1
番右の画素からコピーされる。
【0018】前述のプロセスは、水平アンカXを使用す
る方法を示しているが、出力行上の点52から開始し、
54にある画素がコピーされるまでできるだけ高速に右
方向へ進むより高速な左右動作向けに最適化する必要が
ある。したがって、好ましい実施の形態は、適当な代数
マッピングを使用して、どの画素45を52にコピーす
べきかを調べ、点47での終わりに達するまでオーバレ
イパターンビットマップの画素の右方向への読取りと画
素の出力行50へのコピーを継続し、点47に達した時
点で、読取りを49での読取り行の始めにラップバック
することである。
【0019】ソース46を、58に示したフィル領域サ
ブセット、すなわち水平ストリップなど、複数のフィル
領域サブセットに分解することが好ましい。そのような
サブセットは、ソース46の頂部からソース46の底部
へ動作するように画定することができる。各フィル領域
サブセットは、1組の境界点、点、長さによって画定さ
れ、あるいはパターンの特定の部分が印刷媒体上のどこ
で現れるかを判定するために使用される他のフィルサブ
セット定義によって画定される。フィル領域サブセット
用の各1組の境界点または他の定義が判定され、次い
で、オーバレイパターンビットマップが対応する部分
が、前述のように適用される。そうする際に、一部の印
刷画像を画定する画像データが生成され、出力バンドバ
ッファに書き込まれ、その後、出力バンドバッファを使
用して印刷媒体上にパターン化画像が印刷される。
【0020】前述の方法は、実際に必要とされるパター
ンの部分しか与えず、ページの幅全体にわたって全パタ
ーン高を事前に複写することを不要にするので有利であ
る。必要なパターンの部分は、フィル領域48に対応す
る。というのは、これは、画像が印刷される際に一部の
オーバレイパターンを保持する領域だからである。さら
に、この方法は、1出力行50用のプリンタメモリしか
必要とせず、それに対して従来、レーザ印刷プロセスの
下で用紙が移動するには、オーバレイパターンビットマ
ップ内のあらゆる行を事前に複製しておかなければなら
なかったので、h倍(hとはオーバレイパターンビット
マップの高さである)大きなメモリバッファが必要であ
った。これはかなりの節約である。高さ0.5インチの
パターンタイルの場合、高さ0.5インチのパターンを
フィルするには高さhが600行になるので、1200
dpiではメモリが600分の1に節約される。
【0021】ワードコピーモデル 前述の画素ごとのコピーモデルは、印刷媒体上にパター
ンを印刷するための一概念を示す。下記の議論は、いく
つかの点で画素ごとのコピーモデルに類似する好ましい
32ビットワードコピーモデルについて説明するもので
ある。この方法は、当業者には理解されるように、32
ビットを一度にコピーし書き込むことに関連するニュア
ンスおよび特殊要件のためにプログラミングの複雑さが
増大するので、いくつかの点で異なる。
【0022】効率的にフィル領域サブセットを処理し、
印刷媒体上に印刷パターン化画像をレンダリングするに
は、複数の画素を一度に読み取らなければならない。図
5ないし図11は、オーバレイパターンビットマップ4
4から32ビットワードが読み取られるシステムを示
す。しかし、32ビット以外の長さを有するワードを使
用できることが理解されよう。32ビットワードなど、
より大きな長さを有するワードを読み取ることによっ
て、オーバレイパターンビットマップ44の幅が32で
割り切れないことから問題が生じる。また、オーバレイ
パターンビットマップから最初に読み取るべきワードか
ら得た第1のワード内の座標(s座標と呼ばれる)が、
宛先に最初に書き込むべきワード内の座標(d座標と呼
ばれる)に等しくないときに他の問題が発生することが
ある。これらの問題を図5ないし図11で扱い後述す
る。
【0023】これらの問題、およびそのような問題に対
する好ましい1つの解決策を論じる前に、いくつかの基
本的な定義について述べる。図6ないし図11は、前述
の問題に関する基本フローチャートを示す。フローチャ
ートは、当業者には理解できる広く使用され受け入れら
れているプログラミング言語であるCプログラミング言
語で記述されている。
【0024】基本定義 図5は、本実施の形態の好ましい一態様を実施するため
に使用される様々なレジスタおよびポインタの形のいく
つかの基本定義要素を示す。この節では、引用符を使用
して、識別される様々なワードを識別する。後続の節で
は、引用符を排除する。オーバレイパターンビットマッ
プを44で示す。オーバレイパターンビットマップ44
は、入力タイルビットマップと呼ぶことも、あるいはパ
ターンメモリブロックと呼ぶこともできる。前述のよう
に、オーバレイパターンビットマップは、印刷媒体上に
印刷画像を印刷する際に使用されるオーバレイパターン
を画定する。「W_origin」は、いわゆるスター
トアップスクラッチメモリの2つのワードに続く出力行
50の始めを指し示すポインタである。図5のW_or
iginおよびその他のポインタは、4で割り切れるバ
イトアドレスを指し示すワードパターンである。「Rs
tart」は、ビットマップ44の行の始めを指し示
す。「R ポインタレジスタ」(あるいは、図5では
「R ptr レジスタ」)は、入力行内の次の読取り
ワードを指し示す。「*R」は、入力行から読み取られ
るポインタアドレスにあるメモリ内のデータを表す。
「W ポインタレジスタ」(あるいは図5では「W p
tr レジスタ」)は、パターン複製行内の次の書込み
ワードを指し示す。「*W」は、出力行に書き込まれる
ポインタアドレスにあるメモリ内のデータを表す。「R
end ポインタレジスタ」(あるいは図5では「Re
nd ptr レジスタ」)は、入力行から最後に読み
取るべきワードを指し示す。「Wend ポインタレジ
スタ」(あるいは図5では「Wend ptr レジス
タ」)は、特定のパスに関するパターン複製行内の最後
の書込みワードを指し示す。
【0025】「l レジスタ」は、メモリの「*R」か
ら得た32ビット読取り入力を保持する一次レジスタで
ある。「C レジスタ」は、後述の桁上げ処理ケースに
関する桁上げ読取り入力を保持する一次レジスタであ
る。「N レジスタ」は、num_carry_bit
s、すなわち桁上げ中の「C レジスタ」の左側のビッ
トの数を保持する。
【0026】変数が32ビット符号なし整数として入力
されるCプログラミング言語に関する他のいくつかの規
約を下記に示す。「>>」は、右にシフトし、左から零
をドラグすることを意味する。「<<」は、左にシフト
し、右から零をドラグすることを意味する。「l>>
N」は、「l レジスタ」を右にNビットだけシフトす
ることを意味する。この場合、Nは「N レジスタ」の
内容である。すべての変数は、符号なしで「入力され
る」とみなされ、したがってシフト演算では常に、シフ
トの方向の反対側から零ビットがドラグされる。この
(l>>N)ケースでは、零ビットが左側からドラグさ
れる。同様に、「1<<N」は、「l レジスタ」を左
にNビットだけシフトし、右から零ビットをドラグする
ことを意味する。「&」は、AND論理演算を示す。
「%」は、モジュラス演算であり、通常の整数除算の後
に単純な余りを生成する。
【0027】括弧を使用すると、括弧内の演算が強制的
に、外側の演算よりも前に実行される。Cの場合と同様
に、乗算および除算は加算および減算よりも優先順位が
高く、したがって大部分のケースでは、シフト計算中の
カウント(Count)フィールドが1組の括弧によっ
て囲まれる。たとえば、「l<<(32−N)」では、
まずNレジスタ内の値が32から減じられ、次いでlが
左にNレジスタ内の値だけシフトされる。
【0028】前述のように、「R」はリードポインタで
あり、32ビットメモリ位置にあるメモリを指し示す。
「R」は、メモリアドレスとみなすことができる。
「R」が指し示すメモリに記憶されている実際の2進値
は、「*R」で表される。したがって、「R」はポイン
タであり、「*R」はメモリの内容を表す。同様に、
「W」はライトポインタであり、メモリにおいて、書込
み動作が完了した後に内容が「*W」になるメモリ内の
ワードを指し示す。したがって、「W」はポインタであ
り、「*W」は書き込まれるメモリ内容を表す。「*
R」または「*W」の後に「++」が現れるときは、読
取り動作または書込み動作の後にそれぞれのポインタが
1ワードだけ増分されることを意味する。これらのポイ
ンタを増分することによって、ポインタは読取り空間お
よび書込み空間を迅速に移動する。通常、数式の左側に
「*W」または「*W++」が現れ、メモリに何が書き
込まれるかを示し、数式の右側に「*R」または「*R
++」が現れ、メモリからどの値が読み取られるかを示
す。論理演算子「OR」が使用されると、2つの32ビ
ットレジスタに対するビットごとの論理OR演算を意味
する。この2つの32ビットレジスタのうちの1つまた
は複数はCPU内の一次レジスタであってよい。等号の
右側の計算が最初に実行され、次いで結果が、数式の左
側に示されたレジスタ位置またはメモリ位置に入れられ
る。したがって、数式内の等号はプット(put)演算
を示す。たとえば、X=Y+1は、Yレジスタ(または
Yメモリ値)に1を加え、次いで結果をXレジスタ(ま
たはメモリ位置)に書き込むことを示す。宛先が必要と
されないとき、宛先および等号は存在しない。多くの場
合、コンパイラは、レジスタの値を記憶するためにレジ
スタ位置を使用するか、あるいはメモリ位置を使用する
かを決定する。Cでは、コンパイラが、指定されたいく
つかの変数用にレジスタを使用することを、要求するこ
とができる。どの変数をレジスタとして実施すべきか
(あるいは、それらの変数をいつレジスタとして実施す
べきか)の適切な選択は、コンパイラを最適化すること
によって制御することも、プログラマによって制御する
こともできる。定義要素について述べたが、次に図6な
いし図11を参照して32ビットワードコピーモデルに
ついて詳しく説明する。
【0029】図6は、1行の複製パターンを作成する3
2ビットワードコピーモデルをグローバルに説明するフ
ローチャートである。図6内の様々なステップは、それ
によって実行される演算を詳しく説明するために他の図
(図7ないし図11)に枝分かれする。たとえば、ステ
ップ100は、本実施の形態を実施するコンピュータプ
ログラム用のいくつかの有用な変数を定義する変数設定
手順について説明する図7に詳しく記載されている。ス
テップ114は、第1の読取りワード内の第1ビットが
宛先の第1の書込みビット(d)に合致し、あるいは合
致しない状況に関する図8に詳しく記載されている。ス
テップ118は、入力タイル全体にわたる読取りパスの
終わりに桁上げの量を変更することも、あるいはシフト
の量を変更することもできないことを意味する、タイル
幅が32の倍数であるケースについて説明する図9に詳
しく記載されている。ステップ128は、タイル幅のワ
ード読取り間にビットを桁上げする必要がないケースに
ついて説明する図10に詳しく記載されている。ステッ
プ126は、各ワード読取り動作ごとにビットが桁上げ
される逆のケースについて説明する図11に詳しく記載
されている。桁上げケースでは、図11に示したよう
に、桁上げビットの数が累積し、32ビット桁上げレジ
スタに保持できる数以上になることがある。
【0030】後に続く説明では、図6を参照し、図6の
説明を進めるにつれて、詳しい説明の対象である前述の
各ステップに出会うたびに、そのステップについて説明
する。
【0031】セットアップ変数 図6の第1のステップは、ステップ100に示されてお
り、選択された変数が定義される変数セットアップステ
ップを含む。このような変数は、図7、すなわち変数セ
ットアップ手順について説明するフローチャートに詳し
く記載されている。具体的には、図7を参照すると分か
るように、ステップ200ではいくつかの変数が定義さ
れる。ルーチン入力クリップ_x1および右_x2、す
なわちソースが必要な未処理宛先行に交差するインクル
ーシブデバイス空間画素座標と、Rstart、すなわ
ち開始ワードポインタが与えられた場合、ステップ20
0では、いくつかの有用なワード指向の読取り開始/終
了座標および書込み開始/終了座標ならびに読取り開始
/終了ポインタおよび書込み開始/終了ポインタが算出
される。具体的には、クリップ_x1_ワード、右_x
2_ワード、ポインタRendMinus、W、Wen
dが初期設定される。ステップ210で、アンカXは、
パターンタイル内の指定された位置が固定される宛先座
標空間内の座標である。この位置は多くの場合、タイル
の左上隅であるが、タイル上の任意の点であってよい。
この場合、アンカされるタイル上の点として左上隅を使
用する。ステップ210ないし218を参照し、ページ
上の1番左の印刷可能ドットに画素座標零を使用する例
について説明する。パターンに関して指定されたアンカ
Xとクリップ_X1は、ステップ210でそれぞれの相
対座標を検討することによって簡略化される様々なラッ
プアラウンドケースを有する。どちらのケースでも、ス
テップ212および214では、入力タイル行読取りに
関する相対開始位置mod_xが算出される。次いでス
テップ216で、読取りおよび書込みのための第1の3
2ビットワード内の相対ビット座標、それぞれ、sおよ
びdが算出される。s値が零である場合は、読取りワー
ド内の最上位左側ビットが使用されることを意味する。
ステップ218で、ビット_デルタ、すなわち読取りワ
ードと書込みワードとの間のビットの相対シフトが算出
される。リードポインタRおよび残存ビット数(Rem
ainBits)、すなわち初期リードポインタ、およ
び読取りタイル行の終わりにあるダングリングビットの
数も算出される。たとえば、タイル幅が33である場
合、第1のワードの終わりから1ビットがダングルする
ので、残存ビット数は1である。
【0032】図6に戻ると分かるように、ステップ10
0で変数セットアップステップが完了すると、ステップ
110で、ビット_デルタと残存ビット数が共に零であ
るかどうかを判定する試験が行われる。この2つが共に
零である場合、ステップ112で、標準コピーライブラ
リを使用することを含め、任意の数の方法で簡単なコピ
ーを行うことができる。これは、最も簡単なケース、す
なわち、タイルの1番右のワードがコピーされるまで3
2ビットワードの読み書きを行い、十分な出力が生成さ
れるまでこのプロセスを繰り返すループである。ステッ
プ112の一実施の形態は、ステップ520を、上向き
にステップ500に戻るループで置換することによって
図10に示した実施の形態でよい。WがWendポイン
タを越える位置へ進んだかどうかを判定するために実行
される試験を通じて十分な出力が生成される。一方、ス
テップ110での答えが「no」である場合、方法は、
s−dケースと呼ばれるステップ114へ進む。
【0033】S−Dケース ステップ114のs−dケースは、図8に詳しく記載さ
れている。ステップ300ないし320に記載した計算
では、初期条件がより容易に理解されるように行に対す
る処理の開始条件が簡略化される。ステップ310で第
1の読取りワード内の相対開始読取りビットsが第1の
d書込みビット番号に合致する場合、ステップ312
で、sおよびdを零に設定することによって問題が簡略
化され、図示した変数を適切に初期設定することを除い
て他の処理は必要とされない。しかし、ステップ310
で、sがdよりも大きいと判定された場合、ステップ3
14で、sがdの値だけ調整され、dが調整され、クリ
ップ_x1が、クリップ_x1=(クリップ_x1_ワ
ード<<5)に整合するように調整される。桁上げレジ
スタはC=(*R++)<<sに初期設定される。これ
は、Rが指し示すメモリのワード(たとえば、*R)が
読み取られ、次いで左にs値だけシフトされ、結果がC
レジスタ内に置かれることを示す。++は、Rポインタ
が事後増分されることを示す。また、桁上げビットの数
は32−sに設定される。なぜなら、これは、このケー
スに関して桁上げされる、Cレジスタの左側の部分のビ
ットの数であるからである。Cレジスタ内の右側の未使
用ビットは零状態に維持される。
【0034】ステップ310で、sがdよりも小さい場
合、ステップ316で、dが値sだけ調整され、sが零
になり、クリップ_x1が図示したように再計算され
る。次いで、下記のステップが実行される。Rポインタ
からlをロードし、l=*R++を用いてRを増分し、
次に、*W++=(l>>d)を用いて書き込みを行
う。この場合、lレジスタの値を、右にd値だけシフト
した後、Wが指し示すアドレスに書き込む。また、C=
l<<(32−d)を用いてCを初期設定する。すなわ
ち、lを左に値(32−d)だけシフトする。最後に、
Nをdの値に設定する。ステップ318で、Rポインタ
がRendMinus値を超えているかどうかを判定す
る検査が行われる。そうである場合、ステップ320に
示した特殊狭ケース調整が行われる。そうでない場合、
s−dケースは完了する。
【0035】再び図6を参照すると分かるように、ステ
ップ114の後に、ステップ116で、残存ビット数が
零に等しいかどうかを判定する検査が行われる。答えが
「yes」である場合、ステップ118でイーブンタイ
ル幅桁上げケースが実施される。ステップ118の完全
イーブン幅桁上げケースは、図9に詳しく記載されてい
る。
【0036】イーブンタイル幅桁上げケース: イーブ
ン幅桁上げケースは、画素単位のタイル幅が32の単純
整数倍数であることを意味する。可能なタイル幅の例
は、32画素、64画素、96画素などである。そのよ
うなタイル幅を有することは、入力タイル全体にわたる
読取りパスの終わりに桁上げの量を変更することも、あ
るいはシフトの量を変更することもできないことを意味
する。これらを変更することができないのは、そうする
ためのダングリングビットがないからである。したがっ
て、桁上げレジスタCの内容は、桁上げビットNの数と
同様に、ルーピングの間変化しない。CおよびNが一定
であるため、このケースは、後述の桁上げケースと比べ
て比較的簡単である。
【0037】ステップ400で、RendMinus
は、Rend、すなわち最後に読み取られるワードを越
えた点に増分される。これは、イーブン読取り停止シー
ケンスを利用した簡略化である。ワードの終わりでダン
グルしているビットがないので、ワード読取りループに
対する事前の警告は必要とされない。RendMinu
sを調整した後、すべての読取りは、RがRendMi
nusまたは(R<RendMinus)よりも小さい
条件に関するものになる。ステップ410で、WがWe
nd以下であり、かつリードポインタRが、タイルの終
わりを越えた位置を読み取ることなしに4つのワードを
読み取れるほど左に寄っているかどうかを調べる検査が
行われる。このパスに関してタイル幅全体にわたって少
なくとも4回の読取りが残っているとき、ステップ41
2で、4回の非常に高速の読取りと書込みの組合せが実
行される。ステップ412は、4(クワッド)ステップ
高速桁上げコピーと呼ばれる。使用中のプロセッサおよ
びコンパイラに対して経験的または理論的な分析を実行
して、ステップ412などのクワッドステップを実行す
ることによって処理が高速化するか、それとも低速化す
るかを判定できる。クワッドステッププロセスによって
CPUシステムが低速化する場合、クワッドステッププ
ロセスは使用されず、ステップ416と同様に単一ステ
ップ処理が行われる。同じ分析が、フローチャート内で
クワッドステップが示されている他の以後のケースに適
用される。命令キャッシュを有するある種のプロセッサ
では、理論に基づいて、クワッドステップによって処理
を高速化するかどうかを選択することができる。クワッ
ドステップの方が高速であるとき、その理由の一部は通
常、ループ終了に関するルーピングオーバヘッドのコス
トが、複数の演算を使用することによって削減されるこ
とである。ステップ412のようにクワッドステップ処
理を実行する際、出力は最大で3つの全ワードだけWe
ndを越えてスキッドすることができる。したがって、
クワッドステップ方法またはクワッドステップ方法を拡
張した方法を使用する際は、スキッドによって他の論理
関数に属するバッファを侵害しないように、バッファの
右側の部分に余分の「スキッド」書込みバッファ空間を
設けなければならない。
【0038】具体的にボックス412を参照すると分か
るように、タイルの右側のワードが4ワード以内のと
き、各ステップはステップ416の単一ステップとまっ
たく同じである。各ステップを下記に示す。 ・l=*R++ Rポインタレジスタが指し示すメモリからlレジスタを
ロードし、次いでRポインタを増分する。 ・*W++=C OR(l>>N) 宛先パターン空間において書込みレジスタWが指し示す
位置に、Cレジスタと、lレジスタを右にNビットだけ
シフトすることとの論理OR組合せを書き込む。この場
合、Nは、Cまたは桁上げレジスタで使用されるビット
の数である。この場合、OR関数は、Cの上位Nビット
をlレジスタの(32−N)ビットと組み合わせる方法
である。Cと(l>>N)の単純32ビット符号なし整
数ADDなど、これを行う他の方法がある。ADDが有
効であるのは、Cレジスタの右側の(32−N)ビット
が零であり、lが符号なし整数のときに(l>>N)の
左側のNビットが零であるからである。したがって、O
R関数は、Cと(l>>N)を組み合わせる方法の一例
に過ぎない。 ・C=l<<(32−N) Cレジスタの新しい値は、lレジスタを値(32−N)
だけシフトした値である。この点で、Nが31よりも大
きいことはあり得ない。
【0039】ステップ410での答えが「no」である
場合、ステップ414および416で、タイルに関する
このパスに対する読取り動作の残りのワードが終了す
る。ステップ418で、Rポインタレジスタは、Rst
artにある入力タイル行の左側の開始位置の点に再ロ
ードされる。ステップ420で、十分な書込みが行われ
たかどうかを判定する検査が行われる。そうでない場
合、ステップ410および412でのクワッドステップ
またはステップ414および416での単一ステップ、
あるいはその両方からなる次の1組のステップに戻るル
ープが形成される。ステップ420でW>Wendのと
き、ステップ422で、ソースとの交差座標でパターン
の読取りを開始するために画像プロセッサによって使用
されるワードポインタアドレスの値が返される。このア
ドレスは(W_origin+クリップ_x1_ワー
ド)である。
【0040】再び図6を参照すると、ステップ116
で、残存ビット数が零ではないとき、多くの場合、ステ
ップ126の桁上げ処理を含む、ループ120ないし1
30の処理を行わなければならない。ある種のパスで
は、条件によって、ステップ128に示した非桁上げケ
ースが生じることがある。ステップ124で、単にNレ
ジスタ内の値を検査することによって、桁上げ処理が必
要かどうかの検査が行われる。Nが零である場合、Cレ
ジスタ内に桁上げ使用ビットはなく、より高速な非桁上
げ処理を使用することができる。ステップ128の非桁
上げ処理ケースは、図10に詳しく記載されている。
【0041】非桁上げ処理 Rポインタが有効なタイル入力のフル32ビットワード
を指し示している間はタイル幅の読取り間にビットを桁
上げする必要がないので、非桁上げ処理は桁上げケース
よりも簡単である。クワッドステップと単一ステップ
(ステップ500ないし514)の構成は、完全イーブ
ン幅桁上げケースの場合と同じであり、この場合、前述
のクワッドステップ最適化を組み込むことの相対的な利
点の判定に関して同じ留意事項が適用される。ステップ
514で、入力がRポインタ(値は*Rである)から読
み取られ、Wが指し示す出力メモリ位置への書込みが行
われる(*Wで示される)ことに留意されたい。その
後、WポインタとRポインタの両方が、++ポストフィ
ックスで示されたように増分される。ステップ516
で、ダングルしている残存ビット数部分を除いて、タイ
ル幅全体にわたるこの特定のスワッシュが完了したかど
うかを調べる検査が行われる。ステップ516でWポイ
ンタをWendポインタと比較することによって、複製
が完了したかどうかを調べる検査が行われる。完了した
場合、前述のようにサブルーチン全体が終了する。サブ
ルーチンは、図6のステップ122への即時リターンま
たは分岐を使用する。ルーチンがまだ終了していない場
合、ステップ520で、タイルの最後のワードからダン
グルしている残存ビット数をCレジスタにロードするこ
とによって桁上げ処理が再開する。また、Nが残存ビッ
ト数値に等しい値に設定される。
【0042】図6に戻ると分かるように、ステップ12
4での答えが「yes」である場合、ステップ126で
桁上げ処理を行わなければならない。桁上げ処理パス
は、図11に詳しく記載されている。
【0043】桁上げ処理 桁上げビットの数が累積し、32ビット桁上げレジスタ
に保持できる数以上になることがあるので、桁上げ処理
は最も複雑なケースである。
【0044】ステップ600ないし614は、完全イー
ブン幅桁上げケース(ステップ410ないし416)に
関して上記で説明したものと同じである。そのような動
作に関係する上記の議論を参照する。ステップ616
で、出力の書込みが終了したかどうかを判定する検査が
行われる。ステップ616での答えがyesである場
合、ただちに図6のステップ122に戻る。そうでない
場合、ステップ618で、桁上げレジスタに新しいダン
グリングビットが追加される。ステップ618で、Rポ
インタが指し示す位置にあるメモリの値(*R>>N)
と古いCレジスタ・ビット(1番左のビットのうちのN
個のビットのみが有意である)のORから次のCレジス
タが算出される。次いで、値オーシフトに、後で使用さ
れる値32−Nが代入される。オーバシフトは、ステッ
プ618での処理を開始する未使用ビットの数である。
残存ビット数は、次のパスで桁上げしなければならない
余分なビットの数、すなわち現パスを完了するためにタ
イルの終わりから読み取られるダングリング量であるの
で、新しいNは、古い値+残存ビット数に等しい値に設
定される。ステップ620には、2つの可能なケースが
ある。すなわち、Nが31ビットを超えてオーバフロー
しているケースと、オーバフローしていないケースであ
る。新しいNが32ビットである場合、桁上げレジスタ
は満杯であり、ただちにメモリに書き込みクリアするこ
とができる。Nが32を超えている場合も、桁上げレジ
スタをメモリに書き込まなければならず、ステップ62
8で新しい桁上げレジスタが再計算される。簡単に言え
ば、ステップ620で、ステップ622でCが書き込ま
れるかどうかを判定する検査が行われる。ステップ62
2でCが書き込まれる場合、Nが、N=N−32を含む
ステップ622の同じ演算の一部として適切に調整され
る。ステップ620でNが32よりも小さい場合、オー
バフロー条件がないので、桁上げレジスタを書き込まず
に処理が継続し、入力タイルを横切る次のスワッシュ読
取りで桁上げレジスタを次の桁上げ処理ケースに移さな
ければならない。ステップ624でNの検査を行う。N
が零である場合、次のパスでは桁上げがないので、ステ
ップ626でCが零に設定される。そうでない場合、ス
テップ628で、C=*R<<オーバシフトによってオ
ーバフロービットが読み込まれ、オーバフロービットが
Cレジスタの左側に置かれ、それによって図6のステッ
プ130へ移ることができる。ステップ130で、ステ
ップ120でのタイルを読み取る次のパスのために、読
取りタイルの左側のR=Rstartから読取りが開始
される。
【0045】最後に、図示した方法の拡張方法がある。
この方法は、ソースの幅が十分に大きく(たとえば、適
切に選択されたしきい値を超える)、使用中のROP
が、単にパターン入力を直接、出力ビデオバンドにコピ
ーする効果を有する、いくつかのケースの画像処理作業
を低減させる。この場合、前述の動作を宛先ビデオバッ
ファに直接書き込むように変更し、それによって画像処
理ステップをなくすることができる。停止中のスキッド
が右座標の内側で制限されるようにアルゴリズムを調整
する必要がある。また、開始処理と終了処理の両方を、
正確な画素座標で開始し終了するように変更する必要が
ある。
【0046】コストモデル 前述の実施の形態は、固有のプリンタメモリの節約のた
めに有用である。これは、従来のシステムとは異なり、
パターンを事前にページ幅全体にわたって複製する必要
がないからである。このため、貴重なメモリが節約され
る。レーザプリンタなど、ある種のディジタルプリンタ
が、一定の速度での印刷プロセスを通じて用紙などの印
刷媒体を移動する。この速度は、開始時から終了時まで
維持される。したがって、過去には、パターンを事前に
ページ幅全体にわたって複製し、プリンタ、特にレーザ
プリンタが、実行すべき十分な作業を有するようにする
ことが好都合になった。こうすることによって、プリン
タの実行すべき作業がなくなり、それによって機能停止
とみなすことのできるいわゆるパントが生じることがな
くなった。したがって、用紙の印刷を開始する前にプリ
ンタの作業を構築することが通例になった。十分な作業
が構築された後、用紙の印刷が開始された。
【0047】本実施の形態を用いた場合、パターン処理
がリアルタイムで行われ、同時に、それに遅れないよう
にレーザが動作する。レーザが遅れないように動作する
には、どのようにプリンタメモリとリアルタイム処理要
件との間の最良の兼ね合いを得るかに関して判定を下す
必要がある。
【0048】パターンを複製し、同時に、それに遅れな
いようにレーザが動作することの1つの欠点は、このプ
ロセスでは画像プロセッサ時間がかかることである。増
分コストが高すぎる場合、それによって、画像プロセッ
サの処理が出力ビデオタスクについていけなくなり、い
わゆる印刷オーバランまたはパントが生じる。そのよう
なミスプリントは、パターン処理の速度を最適化し、プ
リントオーバランを発生させるビデオバンドバッファを
事前にラスタ処理することによって回避することができ
る。下記では、過度に多くのビデオバンドを事前にラス
タ処理することによってメモリを浪費することなしにパ
ンドの可能性をなくするためにはどのビデオストリップ
を事前にラスタ処理する必要があるかを厳密に判定する
方法について論じる。
【0049】レーザプリンタ内のリアルタイム印刷プロ
セスを2つのタスク間の競合とみなすことが一般的であ
る。適切に動作するプリンタでは、常に画像プロセッサ
タスクがDMA出力タスクよりも前に終了するので、印
刷オーバランが生じることはない。あらゆるビデオバン
ドを一方的に事前にラスタ処理することによって印刷オ
ーバランを回避することは、(圧縮を用いた場合でも)
ビデオDMAバッファに対して過度に多くの貴重なプリ
ンタメモリが消費されるので望ましくない。ラスタ処理
済みビデオバッファの数を最小限に抑えることができる
ようにする1つのプロセスが開発され、米国特許第51
29049号公報で開示されている。この開示は、引用
によって本明細書に明示的に組み込まれる。これは、米
国特許第5479587号公報で、圧縮および経験的画
像プロセッサコスト測定に関して拡張された。
【0050】後述の好ましいモデルは、画像プロセッサ
タスクが常に、過度のプリンタメモリを使用せずにビデ
オDMAよりも前に終了するように、最小数のビデオD
MAバンドバッファが事前にラスタ処理されるようにす
る手段を提供することに関する。
【0051】次に、本実施の形態によるパターン処理用
の好ましいコストモデルについて説明する。これは、メ
モリ使用度とパンド回避との間の最良のバランスを達成
するように設計された正確で簡単なモデルを提供する。
【0052】コスト=オーバヘッド+(オブジェクト幅
*幅コスト)+(複製*複製コスト) 上記のモデルでは、オーバヘッド、幅コスト、複製コス
トの3つのパラメータが考慮されている。このモデル
は、印刷オーバランまたはいわゆるパンドを回避するに
はどの行またはストリップまたはフィル領域サブセット
を事前にラスタ処理する必要があるかを識別するため
に、行ごと(フィル領域サブセットごと)にリアルタイ
ム処理要件を評価する。オーバヘッドとは、演算に関連
するオーバヘッド時間要件を考慮するパラメータであ
る。幅コストパラメータ(オブジェクト幅と幅コストの
積)とは、特定の幅を有するオブジェクトの処理に関連
する時間の量を考慮するものである。複製コストパラメ
ータ(複製と複製コストの積)とは、ルーピングの決定
に関連する時間を考慮するものである。この3つのパラ
メータは、ワードケースに関する経験的測定によって求
められ、前述のより高速な経路を回避する。高速経路を
改良するために拡張を施すことができるが、これは通
常、プリンタのメモリ切れ状態を回避する手段の場合を
除いて不要である。前述のモデルによれば、発生するコ
ストを使用して、印刷オーバランを回避するにはどのス
トリップを事前にラスタ処理する必要があるかを判定す
ることができる。これは、発生するコストを既知のしき
い値と比較することによって好都合に求めることができ
る。
【0053】どのストリップを事前にラスタ処理する必
要があるかを判定するだけでなく、このモデルを使用し
て、事前ラスタ処理と事前タイリングとの間の兼ね合い
を図ることができる。たとえば、特定のページが構築さ
れている間に、パターンを適用すべき最大ソースまたは
最大フィル領域が記録される。最大幅とは、事前タイリ
ングに使用される幅のことである。多数のケースで、こ
の幅は、物理ページ幅よりもずっと小さい。したがっ
て、事前タイリングを使用するケースでも、最も複雑な
ページにおいてメモリ要件がかなり低くなることもあ
る。
【0054】したがって、前述のコストモデルは、印刷
媒体上に印刷すべきパターンの作成時にレーザ動作に遅
れないようにするうえで好適である。
【0055】ベクトルパターン 前述の説明では、ビットマップパターンメモリブロック
44が必要であった。いくつかのケースでは、長方形の
ビットマップを1組のベクトルフィルコマンドによって
記述することができる。1組のベクトルフィルコマンド
が十分に簡単なものである場合、パターンメモリブロッ
クの作成をスキップし、従来開示されているのと同じタ
イプのビギン−スキップ−リピートステップを拡張する
ことによって直接、書込みパターン複製行を作成するこ
とができる。そのようなベクトルフィルパターンは、本
発明を適用する1つの異なる手段として含められる。
【0056】以下、本発明の実施の形態を要約して挙げ
る。
【0057】1. 印刷媒体上に印刷画像を生成するプ
リンタを操作する印刷方法であって、前記プリンタが、
少なくとも一部が印刷媒体上に印刷画像を印刷する際に
使用されるオーバレイパターンを画定するオーバレイパ
ターンビットマップを保持する少なくとも1つのメモリ
と、印刷画像を生成するために使用される画像データを
処理する画像プロセッサとを備えており、前記印刷方法
が、少なくとも一部のオーバレイパターンを用いて印刷
すべき少なくとも1つのフィル領域を画定するフィル領
域画定工程と、少なくとも一部のオーバレイパターンビ
ットマップを前記メモリから読み取るオーバレイパター
ンビットマップ読取り工程と、少なくとも一部のフィル
領域をフィルし、その内部に現れる印刷画像を画定する
ように働くフィル領域サブセットを部分的に画定する少
なくとも1つの境界点を与えるフィル領域サブセット画
定工程と、メモリから読み取られたオーバレイパターン
ビットマップの前記少なくとも一部を前記フィル領域サ
ブセットに適用するフィル領域サブセット適用工程と、
少なくとも一部の印刷画像を画定するデータを記憶する
出力バッファに前記フィル領域サブセットを書き込むフ
ィル領域サブセット書込み工程とを含む印刷方法。
【0058】2. さらに、フィル領域サブセットを処
理するために必要な時間が、事前に定義されたしきい値
を超えるかどうかを判定し、そうである場合、前記フィ
ル領域サブセットを事前にラスタ処理する判定工程を含
む上記1記載の印刷方法。
【0059】3. さらに、フィル領域を含む複数のフ
ィル領域サブセットを処理するために必要な時間が、事
前に定義されたしきい値を超えるかどうかを判定し、そ
うである場合、前記事前に定義されたしきい値を超える
フィル領域サブセットを事前にラスタ処理する判定工程
を含む上記1記載の印刷方法。
【0060】4. 前記フィル領域サブセットが、2つ
の境界点によって画定され、メモリから読み取られた前
記少なくとも一部のオーバレイパターンビット・マップ
が、前記フィル領域サブセットに適用された際にほぼ前
記境界点内に収まるように寸法付けされる上記1記載の
印刷方法。
【0061】5. 前記フィル領域が、複数のフィル領
域サブセットを備え、前記オーバレイパターンビットマ
ップ読取り工程、フィル領域サブセット画定工程、フィ
ル領域サブセット適用工程およびフィル領域サブセット
書込み工程が、少なくとも一部のオーバレイパターンを
含むフィル領域を画定するために少なくとも大部分の前
記フィル領域サブセットに対して実行される上記1記載
の印刷方法。
【0062】6. 前記フィル領域が、複数のフィル領
域サブセットを備え、少なくとも大部分のフィル領域サ
ブセットが、2つの境界点によって画定され、前記オー
バレイパターンビットマップ読取り工程、フィル領域サ
ブセット画定工程、フィル領域サブセット適用工程およ
びフィル領域サブセット書込み工程が、少なくとも一部
のオーバレイパターンを含むフィル領域を画定するため
に少なくとも大部分の前記フィル領域サブセットに対し
て実行される上記1記載の印刷方法。
【0063】7. さらに、少なくとも一部の印刷画像
を印刷するために前記出力バッファの内容を転送する転
送工程を含む上記1記載の印刷方法。
【0064】8. 前記フィル領域が、複数のフィル領
域サブセットを備え、前記オーバレイパターンビットマ
ップ読取り工程、フィル領域サブセット画定工程、フィ
ル領域サブセット適用工程およびフィル領域サブセット
書込み工程が、少なくとも一部のオーバレイパターンを
含むフィル領域を画定するために少なくとも大部分の前
記フィル領域サブセットに対して実行され、前記印刷方
法がさらに、少なくとも一部の印刷画像を印刷するため
に前記出力バッファの内容を転送する転送工程を含む上
記1記載の印刷方法。
【0065】9. 前記フィル領域が、複数のフィル領
域サブセットを備え、少なくとも大部分のフィル領域サ
ブセットが、2つの境界点によって画定され、前記オー
バレイパターンビットマップ読取り工程、フィル領域サ
ブセット画定工程、フィル領域サブセット適用工程およ
びフィル領域サブセット書込み工程が、少なくとも一部
のオーバレイパターンを含むフィル領域を画定するため
に少なくとも大部分の前記フィル領域サブセットに対し
て実行され、前記印刷方法がさらに、少なくとも一部の
印刷画像を印刷するために前記出力バッファの内容を転
送する転送工程を含む上記1記載の印刷方法。
【0066】10. 前記フィル領域サブセットが、前
記少なくとも1つのフィル領域内で延びる行を含む上記
1記載の印刷方法。
【0067】11. 前記オーバレイパターンビットマ
ップ読取り工程が、オーバレイパターンビットマップか
ら少なくとも1つのマルチビットワードを読み取る工程
を含む上記1記載の印刷方法。
【0068】12. 前記オーバレイパターンビットマ
ップ読取り工程が、少なくとも一部の32ビットワード
を読み取る工程を含む上記1記載の印刷方法。
【0069】13. さらに、前記出力バッファをRO
P画像プロセッサ動作への入力パターン行として使用し
て、印刷または表示される宛先ビットマップを生成する
工程を含む上記1記載の印刷方法。
【0070】14. ビデオバンド上の1組の出力パタ
ーン行の作成に関連する画像プロセッサコストを推定す
る工程を含む上記1記載の印刷方法。
【0071】15. さらに、推定モデルを画像処理コ
ストのモデルの一部として使用し、特定のビデオバンド
が、印刷オーバラン条件を回避するために事前ラスタ処
理を必要とするかどうかを判定する工程を含む上記1記
載の印刷方法。
【0072】16. 前記出力バッファが、宛先ビデオ
バッファを備える上記1記載の印刷方法。
【0073】
【発明の効果】以上説明したように本発明は、オーバレ
イパターンを用いて印刷すべき少なくとも1つのフィル
領域を画定し、オーバレイパターンビットマップをメモ
リから読み取り、フィル領域をフィルし、その内部に現
れる印刷画像を画定するように働くフィル領域サブセッ
トを部分的に画定する境界点を与え、メモリから読み取
られたオーバレイパターンビットマップの一部をフィル
領域サブセットに適用し、印刷画像を画定するデータを
記憶する出力バッファにフィル領域サブセットを書き込
むことで、デジタルプリンタが印刷パターン画像を生成
する方法を改良で、そのようなパターン化画像の生成に
関連するメモリの使用度を低減させることができるよう
になる。
【図面の簡単な説明】
【図1】本発明の実施の形態のデジタルプリンタのハイ
レベルブロック図である。
【図2】本実施の形態の画像プロセッサの入出力関係を
示すブロック図である。
【図3】本実施の形態の全体的な処理の流れ図である。
【図4】本実施の形態の32ビットワードコピーモデル
が動作するための概念を示すために使用される画素ごと
のコピーモデルを示す図である。
【図5】本実施の形態の32ビットワードコピーモデル
を実施する際に使用される様々な定義要素を示す図であ
る。
【図6】本実施の形態の32ビットワードコピーモデル
を示す流れ図である。
【図7】本実施の形態の可変セットアップ手順について
説明する流れ図である。
【図8】本実施の形態のs−dケースについて説明する
流れ図である。
【図9】本実施の形態のイーブン幅桁上げケースについ
て説明する流れ図である。
【図10】本実施の形態の桁上げなし処理ケースについ
て説明する流れ図である。
【図11】本実施の形態の桁上げ処理ケースについて説
明する流れ図である。
【符号の説明】
10 デジタルプリンタ 12 画像プロセッサ 14 プリントエンジン 16 入出力ポート 18 バス 20 RAM 22 ROM

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 印刷媒体上に印刷画像を生成するプリン
    タを操作する印刷方法であって、前記プリンタが、少な
    くとも一部が印刷媒体上に印刷画像を印刷する際に使用
    されるオーバレイパターンを画定するオーバレイパター
    ンビットマップを保持する少なくとも1つのメモリと、
    印刷画像を生成するために使用される画像データを処理
    する画像プロセッサとを備えており、前記印刷方法が、 少なくとも一部のオーバレイパターンを用いて印刷すべ
    き少なくとも1つのフィル領域を画定するフィル領域画
    定工程と、 少なくとも一部のオーバレイパターンビットマップを前
    記メモリから読み取るオーバレイパターンビットマップ
    読取り工程と、 少なくとも一部のフィル領域をフィルし、その内部に現
    れる印刷画像を画定するように働くフィル領域サブセッ
    トを部分的に画定する少なくとも1つの境界点を与える
    フィル領域サブセット画定工程と、 メモリから読み取られたオーバレイパターンビットマッ
    プの前記少なくとも一部を前記フィル領域サブセットに
    適用するフィル領域サブセット適用工程と、 少なくとも一部の印刷画像を画定するデータを記憶する
    出力バッファに前記フィル領域サブセットを書き込むフ
    ィル領域サブセット書込み工程とを含むことを特徴とす
    る印刷方法。
JP06357497A 1996-04-24 1997-03-17 印刷方法 Expired - Fee Related JP3311956B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/637,060 US5852711A (en) 1996-04-24 1996-04-24 Efficient pattern use in printers
US637-060 1996-04-24

Publications (2)

Publication Number Publication Date
JPH1035055A true JPH1035055A (ja) 1998-02-10
JP3311956B2 JP3311956B2 (ja) 2002-08-05

Family

ID=24554375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06357497A Expired - Fee Related JP3311956B2 (ja) 1996-04-24 1997-03-17 印刷方法

Country Status (4)

Country Link
US (1) US5852711A (ja)
EP (1) EP0803837B1 (ja)
JP (1) JP3311956B2 (ja)
DE (1) DE69634073T2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881226A (en) * 1996-10-28 1999-03-09 Veneklase; Brian J. Computer security system
US6971027B1 (en) * 1999-04-01 2005-11-29 Veneklase Brian J Computer security system
US6850338B1 (en) 2000-05-12 2005-02-01 International Business Machines Corporation Method, system, program, and data structure for generating raster objects
US6894796B1 (en) 2000-05-12 2005-05-17 International Business Machines Corporation Method, system, and logic for selecting line work and control data for a pixel from multiple objects of line work data provided for the pixel
US6449328B1 (en) 2000-05-15 2002-09-10 International Business Machines Corporation Method and apparatus for shifting data from registers
US6961134B1 (en) 2000-05-15 2005-11-01 International Business Machines Corporation Method, system, and logic using multiplexers to select data for pixels from multiple objects
US7394568B1 (en) 2000-05-15 2008-07-01 Infoprint Solutions Company Llc Method, system, and logic for selecting pixel data from multiple objects
US6804411B1 (en) * 2000-05-15 2004-10-12 International Business Machines Corporation Method, system, and program for decompressing and aligning line work data from multiple objects
US7130073B2 (en) * 2002-05-10 2006-10-31 Texas Instruments Incorporated Efficient storage and rendering of patterns in a printer

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5129049A (en) 1991-05-16 1992-07-07 Hewlett-Packard Company Method and apparatus for preventing print overruns
US5204916A (en) * 1991-08-06 1993-04-20 Eastman Kodak Company Tile-oriented technique for collectively performing image rotation, scaling and digital halftone screening
US5479587A (en) 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
US5539865A (en) * 1992-11-10 1996-07-23 Adobe Systems, Inc. Method and apparatus for processing data for a visual-output device with reduced buffer memory requirements
US5602976A (en) * 1993-02-23 1997-02-11 Adobe Systems Incorporated Method and apparatus for saving printer memory
JP3554034B2 (ja) * 1994-09-02 2004-08-11 キヤノン株式会社 カラー印刷装置及びその方法

Also Published As

Publication number Publication date
DE69634073T2 (de) 2006-03-02
EP0803837B1 (en) 2004-12-22
EP0803837A3 (en) 2000-12-20
DE69634073D1 (de) 2005-01-27
US5852711A (en) 1998-12-22
EP0803837A2 (en) 1997-10-29
JP3311956B2 (ja) 2002-08-05

Similar Documents

Publication Publication Date Title
US5003496A (en) Page memory control in a raster image processor
EP0764918B1 (en) Display list architecture having two dimensional array of zones
US5808600A (en) Character pattern forming method and apparatus
JP3311956B2 (ja) 印刷方法
JPH0345076A (ja) 画像データの処理方式
US5146554A (en) Page memory control in a raster image processor employed for digital halftoning
EP0229539B1 (en) Color plotter controller
JP2013505854A (ja) 印刷可能なラスタ画像ファイルを作成する方法
JP3159837B2 (ja) グラフィックス言語に基づく画像処理方法及び装置
US6091418A (en) Printer with procedure for pattern tiling and scaling
US5708763A (en) Tiling for bit map image
JP5079341B2 (ja) 印刷データ処理装置
US20040111665A1 (en) Information processing apparatus, image formation apparatus, drawing processing method, and computer product
JP3728183B2 (ja) 印刷制御装置および描画制御装置およびデータ処理方法および記憶媒体
US7369277B2 (en) Image processing apparatus, drawing processing method, and computer program
JP2004334533A (ja) 画像処理装置および画像処理方法
JP2004358722A (ja) 画像処理装置、描画データ処理方法及び該方法を実行するためのプログラム
JP2002024840A (ja) 描画処理装置
JP3591096B2 (ja) ページプリンタの制御方法
JP2003283816A (ja) 画像処理装置及び画像出力システム
JPH06152998A (ja) ハーフトーン出力方式
JPH09309233A (ja) 画像形成装置及び画像形成方法
JPH0492987A (ja) 画像形成装置
JPH08258378A (ja) 印刷装置および印刷装置のバンド描画方法
JPH08216462A (ja) 印刷装置およびその制御方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees